diff --git a/.cargo/config-release.toml b/.cargo/config-release.toml new file mode 100644 index 0000000000..faab5e6c57 --- /dev/null +++ b/.cargo/config-release.toml @@ -0,0 +1,11 @@ +# This is a config file used by Docker build process when building release version of drive-abci. +# Hopefully it can be removed once profile-rustflags is stabilized, see https://github.com/rust-lang/cargo/issues/10271 + +[target.aarch64-unknown-linux-musl] +rustflags = ["-C", "target-feature=-crt-static"] + +[target.x86_64-unknown-linux-musl] +rustflags = ["-C", "target-feature=-crt-static"] + +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..f64e6c0580 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,59 @@ +# Use the official VS Code base image for dev containers +FROM mcr.microsoft.com/devcontainers/base:ubuntu + +# Install dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + libssl-dev \ + pkg-config \ + clang \ + cmake \ + llvm \ + curl \ + gnupg \ + lsb-release \ + software-properties-common \ + unzip + +# Switch to clang +RUN rm /usr/bin/cc && ln -s /usr/bin/clang /usr/bin/cc + +# Install protoc - protobuf compiler +# The one shipped with Alpine does not work +ARG TARGETARCH +ARG PROTOC_VERSION=25.2 +RUN if [[ "$TARGETARCH" == "arm64" ]] ; then export PROTOC_ARCH=aarch_64; else export PROTOC_ARCH=x86_64; fi; \ + curl -Ls https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-${PROTOC_ARCH}.zip \ + -o /tmp/protoc.zip && \ + unzip -qd /opt/protoc /tmp/protoc.zip && \ + rm /tmp/protoc.zip && \ + ln -s /opt/protoc/bin/protoc /usr/bin/ + +# Install protoc v25.2+ +RUN curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protoc-25.2-linux-x86_64.zip \ + && unzip protoc-25.2-linux-x86_64.zip -d /usr/local \ + && rm protoc-25.2-linux-x86_64.zip + +# Switch to vscode user +USER vscode + +ENV CARGO_HOME=/home/vscode/.cargo +ENV PATH=$CARGO_HOME/bin:$PATH + +# TODO: It doesn't sharing PATH between stages, so we need "source $HOME/.cargo/env" everywhere +COPY rust-toolchain.toml . +RUN TOOLCHAIN_VERSION="$(grep channel rust-toolchain.toml | awk '{print $3}' | tr -d '"')" && \ + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ + --profile minimal \ + -y \ + --default-toolchain "${TOOLCHAIN_VERSION}" \ + --target wasm32-unknown-unknown + +# Install wasm-bindgen-cli in the same profile as other components, to sacrifice some performance & disk space to gain +# better build caching +RUN if [[ -z "${SCCACHE_MEMCACHED}" ]] ; then unset SCCACHE_MEMCACHED ; fi ; \ + RUSTFLAGS="-C target-feature=-crt-static" \ + # Meanwhile if you want to update wasm-bindgen you also need to update version in: + # - packages/wasm-dpp/Cargo.toml + # - packages/wasm-dpp/scripts/build-wasm.sh + cargo install wasm-bindgen-cli@0.2.86 --locked diff --git a/.devcontainer/devcontainer-build.json b/.devcontainer/devcontainer-build.json new file mode 100644 index 0000000000..df88d65934 --- /dev/null +++ b/.devcontainer/devcontainer-build.json @@ -0,0 +1,73 @@ +{ + "name": "Dash Platform Dev Container", + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, + "customizations": { + "vscode": { + "settings": {}, + "extensions": [ + "arcanis.vscode-zipfs", + "chrmarti.regex", + "davidanson.vscode-markdownlint", + "ms-vscode.cmake-tools", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "vadimcn.vscode-lldb", + "rust-lang.rust-analyzer", + "tamasfe.even-better-toml", + "zhangyue.rust-mod-generator", + "ms-azuretools.vscode-docker" + ] + } + }, + "remoteUser": "vscode", + "mounts": [ + { + "source": "devcontainer-platform-cargo-registry-index-${devcontainerId}", + "target": "/home/vscode/.cargo/registry", + "type": "volume" + }, + { + "source": "devcontainer-platform-cargo-registry-cache-${devcontainerId}", + "target": "/home/vscode/.cargo/registry/cache", + "type": "volume" + }, + { + "source": "devcontainer-platform-cargo-git-db-${devcontainerId}", + "target": "/home/vscode/.cargo/git/db", + "type": "volume" + }, + { + "source": "devcontainer-platform-target-${devcontainerId}", + "target": "${containerWorkspaceFolder}/target", + "type": "volume" + } + ], + "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": "true", + "username": "vscode", + "userUid": "1000", + "userGid": "1000", + "upgradePackages": "true" + }, + "ghcr.io/devcontainers/features/git:1": { + "version": "latest", + "ppa": "false" + }, + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers/features/node:1": { + "version": 20, + "installYarnUsingApt": false + }, + "ghcr.io/eitsupi/devcontainer-features/jq-likes:2": {}, + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/schlich/devcontainer-features/starship:0": {}, + }, + "postCreateCommand": { + "git-safe": "git config --global --add safe.directory ${containerWorkspaceFolder}", + "cargo-permissions": "sudo chown -R vscode:vscode /home/vscode/.cargo ${containerWorkspaceFolder}/target" + } +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..586571ba2b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Dash Platform Dev Container", + "image": "ghcr.io/dashpay/platform/devcontainer:0.1.0" +} diff --git a/.github/workflows/prebuild-devcontainers.yml b/.github/workflows/prebuild-devcontainers.yml new file mode 100644 index 0000000000..794fa3d4a5 --- /dev/null +++ b/.github/workflows/prebuild-devcontainers.yml @@ -0,0 +1,58 @@ +name: Prebuild Dev Containers + +on: + push: + paths: + - '.devcontainer/**' + - '.github/workflows/prebuild-devcontainers.yml' + - rust-toolchain.toml + - Dockerfile + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build and push devcontainer + runs-on: ["self-hosted", "linux", "x64", "ubuntu-platform"] + timeout-minutes: 60 + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Setup Node.JS + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install skopeo + run: | + sudo apt-get update + sudo apt-get install -y skopeo + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + with: + use: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: dashpay + password: ${{ secrets.GHCR_TOKEN }} + + - name: Build and push Platform devcontainer + uses: devcontainers/ci@v0.3 + with: + imageName: ghcr.io/dashpay/platform/devcontainer + imageTag: 0.1.0 + platform: linux/amd64,linux/arm64 + configFile: .devcontainer/devcontainer-build.json + push: always + cacheFrom: ghcr.io/dashpay/platform/devcontainer diff --git a/.github/workflows/release-docker-image.yml b/.github/workflows/release-docker-image.yml index a8ed8273ca..5c56ade272 100644 --- a/.github/workflows/release-docker-image.yml +++ b/.github/workflows/release-docker-image.yml @@ -17,8 +17,16 @@ on: type: string description: Image target. i.e. drive-abci, dapi required: true + tag: + type: string + description: Image tag, i.e. v0.1.0; note it can be inherited from 'workflow_dispatch' event + default: ${{ github.event.inputs.tag || github.event.release.tag_name }} + cargo_profile: + type: string + description: Cargo profile. i.e. release, dev + default: release env: - DIGEST_NAME: digests-${{ inputs.image_org }}-${{ inputs.image_name }}-${{ github.sha }} + DIGEST_NAME: digests-${{ inputs.image_org }}-${{ inputs.image_name }}-${{ inputs.tag }}-${{ inputs.cargo_profile }}-${{ github.sha }} DIGEST_DIR_PATH: /tmp/digests jobs: @@ -29,9 +37,9 @@ jobs: strategy: matrix: include: - - runner: [ "self-hosted", "linux", "x64", "ubuntu-platform" ] + - runner: ["self-hosted", "linux", "x64", "ubuntu-platform"] platform: linux/amd64 - - runner: [ "self-hosted", "linux", "arm64", "ubuntu-platform" ] + - runner: ["self-hosted", "linux", "arm64", "ubuntu-platform"] platform: linux/arm64 steps: - name: Check out repo @@ -52,10 +60,10 @@ jobs: with: image_name: ${{ inputs.image_name }} image_org: ${{ inputs.image_org }} - image_version: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || github.event.release.tag_name }} + image_version: ${{ inputs.tag }} target: ${{ inputs.target }} platform: ${{ matrix.platform }} - cargo_profile: release + cargo_profile: ${{ inputs.cargo_profile }} dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} region: ${{ secrets.AWS_REGION }} @@ -92,29 +100,17 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Get image version - uses: actions/github-script@v6 - id: version - with: - result-encoding: string - script: | - return ( - context.eventName === 'workflow_dispatch' - ? '${{ github.event.inputs.tag }}' - : context.payload.release.tag_name - ); - - name: Set suffix uses: actions/github-script@v6 id: suffix with: result-encoding: string script: | - const fullTag = '${{ steps.version.outputs.result }}'; + const fullTag = '${{ inputs.tag }}'; if (fullTag.includes('-')) { - const [, fullSuffix] = fullTag.split('-'); - const [suffix] = fullSuffix.split('.'); - return `-${suffix}`; + const suffixes = fullTag.split('-').slice(1); + const firstElements = suffixes.map(suffix => suffix.split('.')[0]); + return `-${firstElements.join('-')}`; } else { return ''; } @@ -125,10 +121,10 @@ jobs: with: images: ${{ inputs.image_org }}/${{ inputs.image_name }} tags: | - type=match,pattern=v(\d+),group=1,value=${{ steps.version.outputs.result }} - type=match,pattern=v(\d+.\d+),group=1,value=${{ steps.version.outputs.result }} - type=match,pattern=v(\d+.\d+.\d+),group=1,value=${{ steps.version.outputs.result }} - type=match,pattern=v(.*),group=1,value=${{ steps.version.outputs.result }},suffix= + type=match,pattern=v(.*),group=1,value=${{ inputs.tag }},priority=910,suffix= + type=match,pattern=v(\d+),group=1,value=${{ inputs.tag }} + type=match,pattern=v(\d+.\d+),group=1,value=${{ inputs.tag }} + type=match,pattern=v(\d+.\d+.\d+),group=1,value=${{ inputs.tag }} flavor: | suffix=${{ steps.suffix.outputs.result }},onlatest=true latest=${{ github.event_name == 'release' }} @@ -138,7 +134,6 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Create manifest list and push working-directory: ${{ env.DIGEST_DIR_PATH }} run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 036e6ac49c..dba5d592f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,10 @@ on: tag: description: "Version (i.e. v0.22.3-pre.2)" required: true + only_drive: + type: boolean + description: Only build Drive image + default: false concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -17,7 +21,7 @@ concurrency: jobs: release-npm: name: Release NPM packages - runs-on: [ "self-hosted", "linux", "arm64", "ubuntu-platform" ] + runs-on: ["self-hosted", "linux", "arm64", "ubuntu-platform"] timeout-minutes: 15 if: github.event_name != 'workflow_dispatch' steps: @@ -81,7 +85,7 @@ jobs: with: result-encoding: string script: | - const fullTag = context.payload.release.tag_name; + const fullTag = "${{ inputs.tag }}" || context.payload.release.tag_name; if (fullTag.includes('-')) { const [, fullSuffix] = fullTag.split('-'); const [suffix] = fullSuffix.split('.'); @@ -96,10 +100,15 @@ jobs: with: result-encoding: string script: | - const tag = context.payload.release.tag_name; + const tag = "${{ inputs.tag }}" || context.payload.release.tag_name; const [, major, minor] = tag.match(/^v([0-9]+)\.([0-9]+)/); return (tag.includes('-') ? `${major}.${minor}-${{steps.suffix.outputs.result}}` : 'latest'); + - name: Show NPM release tag + run: | + echo "NPM suffix: ${{ steps.suffix.outputs.result }}" + echo "NPM release tag: ${{ steps.tag.outputs.result }}" + - name: Configure NPM auth token run: yarn config set npmAuthToken ${{ secrets.NPM_TOKEN }} @@ -136,9 +145,23 @@ jobs: image_org: dashpay image_name: drive target: drive-abci + tag: ${{ inputs.tag || github.event.release.tag_name }} + + release-drive-image-debug: + name: Release Drive debug image + secrets: inherit + uses: ./.github/workflows/release-docker-image.yml + with: + name: Drive + image_org: dashpay + image_name: drive + target: drive-abci + cargo_profile: dev + tag: ${{ inputs.tag || github.event.release.tag_name }}-debug release-dapi-image: name: Release DAPI image + if: ${{ !inputs.only_drive }} secrets: inherit uses: ./.github/workflows/release-docker-image.yml with: @@ -146,9 +169,11 @@ jobs: image_org: dashpay image_name: dapi target: dapi + tag: ${{ inputs.tag || github.event.release.tag_name }} release-test-suite-image: name: Release Test Suite image + if: ${{ !inputs.only_drive }} secrets: inherit uses: ./.github/workflows/release-docker-image.yml with: @@ -156,20 +181,24 @@ jobs: image_org: dashpay image_name: platform-test-suite target: test-suite + tag: ${{ inputs.tag || github.event.release.tag_name }} release-dashmate-helper-image: name: Release Dashmate Helper image secrets: inherit + if: ${{ !inputs.only_drive }} uses: ./.github/workflows/release-docker-image.yml with: name: Dashmate Helper image_org: dashpay image_name: dashmate-helper target: dashmate-helper + tag: ${{ inputs.tag || github.event.release.tag_name }} release-dashmate-packages: name: Release Dashmate packages runs-on: ${{ matrix.os }} + if: ${{ !inputs.only_drive }} needs: release-npm permissions: id-token: write # s3 cache @@ -185,12 +214,12 @@ jobs: - package_type: deb os: ubuntu-22.04 - package_type: macos - os: macos-12 + os: macos-14 steps: - name: Check out repo uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 0 - name: Configure AWS credentials and bucket region uses: aws-actions/configure-aws-credentials@v4 @@ -213,9 +242,11 @@ jobs: - name: Install macOS build deps if: runner.os == 'macOS' run: | - brew install llvm docker colima coreutils - colima start - echo "/usr/local/opt/llvm/bin" >> $GITHUB_PATH + brew install llvm coreutils + + - name: Set up Docker for macOS + if: runner.os == 'macOS' + uses: docker-practice/actions-setup-docker@master - name: Install the Apple certificate if: runner.os == 'macOS' @@ -249,7 +280,7 @@ jobs: - name: Create package env: - OSX_KEYCHAIN: $RUNNER_TEMP/app-signing.keychain-db + OSX_KEYCHAIN: ${{ runner.temp }}/app-signing.keychain-db run: "${GITHUB_WORKSPACE}/scripts/pack_dashmate.sh ${{ matrix.package_type }}" - name: Upload artifacts to action summary diff --git a/.pnp.cjs b/.pnp.cjs index 3cc896d26c..fe35a836e4 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2678,7 +2678,7 @@ const RAW_RUNTIME_STATE = ["url", "npm:0.11.3"],\ ["util", "npm:0.12.4"],\ ["wasm-x11-hash", "npm:0.0.2"],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"],\ ["webpack-cli", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:4.9.1"],\ ["winston", "npm:3.3.3"]\ ],\ @@ -2991,7 +2991,7 @@ const RAW_RUNTIME_STATE = ["url", "npm:0.11.3"],\ ["utf-8-validate", "npm:5.0.9"],\ ["util", "npm:0.12.4"],\ - ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1"],\ + ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.94.0"],\ ["ws", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:8.17.1"]\ ],\ "linkType": "SOFT"\ @@ -3079,7 +3079,7 @@ const RAW_RUNTIME_STATE = ["url", "npm:0.11.3"],\ ["util", "npm:0.12.4"],\ ["wasm-x11-hash", "npm:0.0.2"],\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"],\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"],\ ["webpack-cli", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:4.9.1"],\ ["winston", "npm:3.3.3"]\ ],\ @@ -3141,7 +3141,7 @@ const RAW_RUNTIME_STATE = ["url", "npm:0.11.3"],\ ["util", "npm:0.12.4"],\ ["varint", "npm:6.0.0"],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"],\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"],\ ["webpack-cli", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:4.9.1"]\ ],\ "linkType": "SOFT"\ @@ -3459,6 +3459,16 @@ const RAW_RUNTIME_STATE = ["@jridgewell/trace-mapping", "npm:0.3.18"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.3.5", {\ + "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip/node_modules/@jridgewell/gen-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/gen-mapping", "npm:0.3.5"],\ + ["@jridgewell/set-array", "npm:1.2.1"],\ + ["@jridgewell/sourcemap-codec", "npm:1.4.14"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/resolve-uri", [\ @@ -3468,6 +3478,13 @@ const RAW_RUNTIME_STATE = ["@jridgewell/resolve-uri", "npm:3.1.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.1.2", {\ + "packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip/node_modules/@jridgewell/resolve-uri/",\ + "packageDependencies": [\ + ["@jridgewell/resolve-uri", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/set-array", [\ @@ -3477,6 +3494,13 @@ const RAW_RUNTIME_STATE = ["@jridgewell/set-array", "npm:1.1.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.2.1", {\ + "packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip/node_modules/@jridgewell/set-array/",\ + "packageDependencies": [\ + ["@jridgewell/set-array", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/source-map", [\ @@ -3488,6 +3512,15 @@ const RAW_RUNTIME_STATE = ["@jridgewell/trace-mapping", "npm:0.3.18"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.3.6", {\ + "packageLocation": "./.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip/node_modules/@jridgewell/source-map/",\ + "packageDependencies": [\ + ["@jridgewell/source-map", "npm:0.3.6"],\ + ["@jridgewell/gen-mapping", "npm:0.3.5"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/sourcemap-codec", [\ @@ -3497,6 +3530,13 @@ const RAW_RUNTIME_STATE = ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.5.0", {\ + "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip/node_modules/@jridgewell/sourcemap-codec/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@jridgewell/trace-mapping", [\ @@ -3509,6 +3549,15 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:0.3.25", {\ + "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip/node_modules/@jridgewell/trace-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@jridgewell/resolve-uri", "npm:3.1.2"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:0.3.9", {\ "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-83deafb8e7.zip/node_modules/@jridgewell/trace-mapping/",\ "packageDependencies": [\ @@ -4622,26 +4671,6 @@ const RAW_RUNTIME_STATE = ["@types/json-schema", "npm:7.0.15"]\ ],\ "linkType": "HARD"\ - }],\ - ["npm:8.2.0", {\ - "packageLocation": "./.yarn/cache/@types-eslint-npm-8.2.0-971aa21b00-1e8100311e.zip/node_modules/@types/eslint/",\ - "packageDependencies": [\ - ["@types/eslint", "npm:8.2.0"],\ - ["@types/estree", "npm:0.0.51"],\ - ["@types/json-schema", "npm:7.0.15"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/eslint-scope", [\ - ["npm:3.7.4", {\ - "packageLocation": "./.yarn/cache/@types-eslint-scope-npm-3.7.4-c11d226d71-ea6a9363e9.zip/node_modules/@types/eslint-scope/",\ - "packageDependencies": [\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/eslint", "npm:8.2.0"],\ - ["@types/estree", "npm:0.0.51"]\ - ],\ - "linkType": "HARD"\ }]\ ]],\ ["@types/estree", [\ @@ -4651,6 +4680,13 @@ const RAW_RUNTIME_STATE = ["@types/estree", "npm:0.0.51"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.5", {\ + "packageLocation": "./.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-7de6d928dd.zip/node_modules/@types/estree/",\ + "packageDependencies": [\ + ["@types/estree", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@types/expect", [\ @@ -5174,171 +5210,171 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@webassemblyjs/ast", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-28cc949e2e.zip/node_modules/@webassemblyjs/ast/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.12.1-3ff9ea1c0e-a775b05594.zip/node_modules/@webassemblyjs/ast/",\ "packageDependencies": [\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-numbers", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"]\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-numbers", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/floating-point-hex-parser", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip/node_modules/@webassemblyjs/floating-point-hex-parser/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip/node_modules/@webassemblyjs/floating-point-hex-parser/",\ "packageDependencies": [\ - ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.1"]\ + ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/helper-api-error", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip/node_modules/@webassemblyjs/helper-api-error/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip/node_modules/@webassemblyjs/helper-api-error/",\ "packageDependencies": [\ - ["@webassemblyjs/helper-api-error", "npm:1.11.1"]\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/helper-buffer", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip/node_modules/@webassemblyjs/helper-buffer/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-helper-buffer-npm-1.12.1-d025434a45-1d8705daa4.zip/node_modules/@webassemblyjs/helper-buffer/",\ "packageDependencies": [\ - ["@webassemblyjs/helper-buffer", "npm:1.11.1"]\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/helper-numbers", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-cbe5b456fa.zip/node_modules/@webassemblyjs/helper-numbers/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-9ffd258ad8.zip/node_modules/@webassemblyjs/helper-numbers/",\ "packageDependencies": [\ - ["@webassemblyjs/helper-numbers", "npm:1.11.1"],\ - ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.1"],\ - ["@webassemblyjs/helper-api-error", "npm:1.11.1"],\ + ["@webassemblyjs/helper-numbers", "npm:1.11.6"],\ + ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.6"],\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"],\ ["@xtuc/long", "npm:4.2.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/helper-wasm-bytecode", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-009b494010.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-4ebf03e9c1.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/",\ "packageDependencies": [\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"]\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/helper-wasm-section", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-dd6eee9f73.zip/node_modules/@webassemblyjs/helper-wasm-section/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.12.1-cd0e2f1eab-e91e6b2811.zip/node_modules/@webassemblyjs/helper-wasm-section/",\ "packageDependencies": [\ - ["@webassemblyjs/helper-wasm-section", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-buffer", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-gen", "npm:1.11.1"]\ + ["@webassemblyjs/helper-wasm-section", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/ieee754", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip/node_modules/@webassemblyjs/ieee754/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip/node_modules/@webassemblyjs/ieee754/",\ "packageDependencies": [\ - ["@webassemblyjs/ieee754", "npm:1.11.1"],\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ ["@xtuc/ieee754", "npm:1.2.0"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/leb128", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-85beb7156f.zip/node_modules/@webassemblyjs/leb128/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-ec3b72db0e.zip/node_modules/@webassemblyjs/leb128/",\ "packageDependencies": [\ - ["@webassemblyjs/leb128", "npm:1.11.1"],\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ ["@xtuc/long", "npm:4.2.2"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/utf8", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-b93e57912d.zip/node_modules/@webassemblyjs/utf8/",\ + ["npm:1.11.6", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-361a537bd6.zip/node_modules/@webassemblyjs/utf8/",\ "packageDependencies": [\ - ["@webassemblyjs/utf8", "npm:1.11.1"]\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/wasm-edit", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6a029ae21c.zip/node_modules/@webassemblyjs/wasm-edit/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-edit-npm-1.12.1-727bec592a-5678ae02db.zip/node_modules/@webassemblyjs/wasm-edit/",\ "packageDependencies": [\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-buffer", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-section", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-gen", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-opt", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ - ["@webassemblyjs/wast-printer", "npm:1.11.1"]\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-section", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-opt", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ + ["@webassemblyjs/wast-printer", "npm:1.12.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/wasm-gen", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-5da040e780.zip/node_modules/@webassemblyjs/wasm-gen/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-gen-npm-1.12.1-bbe22ad265-ec45bd50e8.zip/node_modules/@webassemblyjs/wasm-gen/",\ "packageDependencies": [\ - ["@webassemblyjs/wasm-gen", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"],\ - ["@webassemblyjs/ieee754", "npm:1.11.1"],\ - ["@webassemblyjs/leb128", "npm:1.11.1"],\ - ["@webassemblyjs/utf8", "npm:1.11.1"]\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/wasm-opt", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-00f85d1f76.zip/node_modules/@webassemblyjs/wasm-opt/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-opt-npm-1.12.1-450c932de6-21f25ae109.zip/node_modules/@webassemblyjs/wasm-opt/",\ "packageDependencies": [\ - ["@webassemblyjs/wasm-opt", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-buffer", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-gen", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"]\ + ["@webassemblyjs/wasm-opt", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/wasm-parser", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-cc6de8f4d9.zip/node_modules/@webassemblyjs/wasm-parser/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-parser-npm-1.12.1-54a7a19806-f7311685b7.zip/node_modules/@webassemblyjs/wasm-parser/",\ "packageDependencies": [\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/helper-api-error", "npm:1.11.1"],\ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.1"],\ - ["@webassemblyjs/ieee754", "npm:1.11.1"],\ - ["@webassemblyjs/leb128", "npm:1.11.1"],\ - ["@webassemblyjs/utf8", "npm:1.11.1"]\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["@webassemblyjs/wast-printer", [\ - ["npm:1.11.1", {\ - "packageLocation": "./.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-bd1cf7a063.zip/node_modules/@webassemblyjs/wast-printer/",\ + ["npm:1.12.1", {\ + "packageLocation": "./.yarn/cache/@webassemblyjs-wast-printer-npm-1.12.1-e75655c7ff-1a6a4b6bc4.zip/node_modules/@webassemblyjs/wast-printer/",\ "packageDependencies": [\ - ["@webassemblyjs/wast-printer", "npm:1.11.1"],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ + ["@webassemblyjs/wast-printer", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ ["@xtuc/long", "npm:4.2.2"]\ ],\ "linkType": "HARD"\ @@ -5358,7 +5394,7 @@ const RAW_RUNTIME_STATE = ["@webpack-cli/configtest", "virtual:0249f7ceb5542d6b732af2b44f9fcd16c60be8b8440f0f3abc6a5de67aabcff731bc3bc83f3067ab2f9037661176f001f89208fcea9e8962835fd43d0aabe88a#npm:1.1.0"],\ ["@types/webpack", null],\ ["@types/webpack-cli", null],\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"],\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"],\ ["webpack-cli", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:4.9.1"]\ ],\ "packagePeers": [\ @@ -5375,7 +5411,7 @@ const RAW_RUNTIME_STATE = ["@webpack-cli/configtest", "virtual:16885aa8448c33477ea2cd730ac3a5bbbcb89a3f570f5364364e7dc5830b16f19367cec64b723cc62ddb3078b4ee0f0ce5d244584279bc98369c8ee9e5959a27#npm:1.1.0"],\ ["@types/webpack", null],\ ["@types/webpack-cli", null],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"],\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"],\ ["webpack-cli", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:4.9.1"]\ ],\ "packagePeers": [\ @@ -5392,7 +5428,7 @@ const RAW_RUNTIME_STATE = ["@webpack-cli/configtest", "virtual:7fc88da9d00679384dc013444a3b1ed8ef8395fcad9d046790a1851d5db985e5ee052061731f87c5475e4bf20a92d69ea1a1a287c0d76d7b1a6bf97010c63532#npm:1.1.0"],\ ["@types/webpack", null],\ ["@types/webpack-cli", null],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"],\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"],\ ["webpack-cli", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:4.9.1"]\ ],\ "packagePeers": [\ @@ -5409,7 +5445,7 @@ const RAW_RUNTIME_STATE = ["@webpack-cli/configtest", "virtual:b37ef7cf98ceabe8c7b789a7db3f0a5f3444d083afa5f0e3ab570292e74eff241f890fadbf245a134b2ebfcba326b1782124a4dd4f16ca7cdb6091dd9a987c04#npm:1.1.0"],\ ["@types/webpack", null],\ ["@types/webpack-cli", null],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"],\ ["webpack-cli", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:4.9.1"]\ ],\ "packagePeers": [\ @@ -5783,20 +5819,27 @@ const RAW_RUNTIME_STATE = ["acorn", "npm:8.11.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:8.12.1", {\ + "packageLocation": "./.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.12.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ - ["acorn-import-assertions", [\ - ["npm:1.8.0", {\ - "packageLocation": "./.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-d61a8a1c1e.zip/node_modules/acorn-import-assertions/",\ + ["acorn-import-attributes", [\ + ["npm:1.9.5", {\ + "packageLocation": "./.yarn/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-8bfbfbb6e2.zip/node_modules/acorn-import-attributes/",\ "packageDependencies": [\ - ["acorn-import-assertions", "npm:1.8.0"]\ + ["acorn-import-attributes", "npm:1.9.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0", {\ - "packageLocation": "./.yarn/__virtual__/acorn-import-assertions-virtual-9009cc8977/0/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-d61a8a1c1e.zip/node_modules/acorn-import-assertions/",\ + ["virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5", {\ + "packageLocation": "./.yarn/__virtual__/acorn-import-attributes-virtual-7759da536e/0/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-8bfbfbb6e2.zip/node_modules/acorn-import-attributes/",\ "packageDependencies": [\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ ["@types/acorn", null],\ ["acorn", "npm:8.11.2"]\ ],\ @@ -5958,12 +6001,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:8704647575acf2f5b19fccfcb0acebacd9c94259ebe9afcfaf4c053812fd896f10775930ee5a5949e20833a61503d2cd22aa259cbe69729f6a192de4bf43dc00#npm:3.5.2", {\ - "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-8b373d3ee8/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-d57c9d5bf8.zip/node_modules/ajv-keywords/",\ + ["virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-7d79801060/0/cache/ajv-keywords-npm-5.1.0-ee670a3944-5021f96ab7.zip/node_modules/ajv-keywords/",\ "packageDependencies": [\ - ["ajv-keywords", "virtual:8704647575acf2f5b19fccfcb0acebacd9c94259ebe9afcfaf4c053812fd896f10775930ee5a5949e20833a61503d2cd22aa259cbe69729f6a192de4bf43dc00#npm:3.5.2"],\ + ["ajv-keywords", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0"],\ ["@types/ajv", null],\ - ["ajv", "npm:6.12.6"]\ + ["ajv", "npm:8.12.0"],\ + ["fast-deep-equal", "npm:3.1.3"]\ ],\ "packagePeers": [\ "@types/ajv",\ @@ -5971,13 +6015,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0", {\ - "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-7d79801060/0/cache/ajv-keywords-npm-5.1.0-ee670a3944-5021f96ab7.zip/node_modules/ajv-keywords/",\ + ["virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2", {\ + "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-80fc73abbe/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-d57c9d5bf8.zip/node_modules/ajv-keywords/",\ "packageDependencies": [\ - ["ajv-keywords", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0"],\ + ["ajv-keywords", "virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2"],\ ["@types/ajv", null],\ - ["ajv", "npm:8.12.0"],\ - ["fast-deep-equal", "npm:3.1.3"]\ + ["ajv", "npm:6.12.6"]\ ],\ "packagePeers": [\ "@types/ajv",\ @@ -6476,7 +6519,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["find-cache-dir", "npm:4.0.0"],\ ["schema-utils", "npm:4.2.0"],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"]\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"]\ ],\ "packagePeers": [\ "@babel/core",\ @@ -6726,20 +6769,22 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["body-parser", [\ - ["npm:1.19.0", {\ - "packageLocation": "./.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-6ed5f3f42f.zip/node_modules/body-parser/",\ + ["npm:1.20.3", {\ + "packageLocation": "./.yarn/cache/body-parser-npm-1.20.3-c7b184cd14-8723e3d7a6.zip/node_modules/body-parser/",\ "packageDependencies": [\ - ["body-parser", "npm:1.19.0"],\ - ["bytes", "npm:3.1.0"],\ - ["content-type", "npm:1.0.4"],\ - ["debug", "virtual:6e177cabfad012f413f9c41366539c04d8701f0567119998690ab02224012faa99ec3a16b9f74f4d7920ab472c12b3e70f47f8f143239c06d0e2569e60ed9f62#npm:2.6.9"],\ - ["depd", "npm:1.1.2"],\ - ["http-errors", "npm:1.7.2"],\ + ["body-parser", "npm:1.20.3"],\ + ["bytes", "npm:3.1.2"],\ + ["content-type", "npm:1.0.5"],\ + ["debug", "virtual:c7b184cd14c02e3ce555ab1875e60cf5033c617e17d82c4c02ea822101d3c817f48bf25a766b4d4335742dc5c9c14c2e88a57ed955a56c4ad0613899f82f5618#npm:2.6.9"],\ + ["depd", "npm:2.0.0"],\ + ["destroy", "npm:1.2.0"],\ + ["http-errors", "npm:2.0.0"],\ ["iconv-lite", "npm:0.4.24"],\ - ["on-finished", "npm:2.3.0"],\ + ["on-finished", "npm:2.4.1"],\ ["qs", "npm:6.11.0"],\ - ["raw-body", "npm:2.4.0"],\ - ["type-is", "npm:1.6.18"]\ + ["raw-body", "npm:2.5.2"],\ + ["type-is", "npm:1.6.18"],\ + ["unpipe", "npm:1.0.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -6898,6 +6943,17 @@ const RAW_RUNTIME_STATE = ["update-browserslist-db", "virtual:cccae6d74e613cbaceb4c608cb01004dea3f5ca235673f5c541d60f516ef320907d258256abf63eac9b8704e23cf5d52eb19f2a57a07471accc943ea645de308#npm:1.0.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.23.3", {\ + "packageLocation": "./.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip/node_modules/browserslist/",\ + "packageDependencies": [\ + ["browserslist", "npm:4.23.3"],\ + ["caniuse-lite", "npm:1.0.30001653"],\ + ["electron-to-chromium", "npm:1.5.13"],\ + ["node-releases", "npm:2.0.18"],\ + ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["bs58", [\ @@ -7023,10 +7079,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["bytes", [\ - ["npm:3.1.0", {\ - "packageLocation": "./.yarn/cache/bytes-npm-3.1.0-19c5b15405-7c3b21c5d9.zip/node_modules/bytes/",\ + ["npm:3.1.2", {\ + "packageLocation": "./.yarn/cache/bytes-npm-3.1.2-28b8643004-a10abf2ba7.zip/node_modules/bytes/",\ "packageDependencies": [\ - ["bytes", "npm:3.1.0"]\ + ["bytes", "npm:3.1.2"]\ ],\ "linkType": "HARD"\ }]\ @@ -7187,6 +7243,13 @@ const RAW_RUNTIME_STATE = ["caniuse-lite", "npm:1.0.30001561"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.30001653", {\ + "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001653-f5f1782475-cd9b1c0fe0.zip/node_modules/caniuse-lite/",\ + "packageDependencies": [\ + ["caniuse-lite", "npm:1.0.30001653"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["capital-case", [\ @@ -7931,7 +7994,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/connect-npm-3.7.0-25ccb085cc-f94818b198.zip/node_modules/connect/",\ "packageDependencies": [\ ["connect", "npm:3.7.0"],\ - ["debug", "virtual:6e177cabfad012f413f9c41366539c04d8701f0567119998690ab02224012faa99ec3a16b9f74f4d7920ab472c12b3e70f47f8f143239c06d0e2569e60ed9f62#npm:2.6.9"],\ + ["debug", "virtual:c7b184cd14c02e3ce555ab1875e60cf5033c617e17d82c4c02ea822101d3c817f48bf25a766b4d4335742dc5c9c14c2e88a57ed955a56c4ad0613899f82f5618#npm:2.6.9"],\ ["finalhandler", "npm:1.1.2"],\ ["parseurl", "npm:1.3.3"],\ ["utils-merge", "npm:1.0.1"]\ @@ -7977,6 +8040,13 @@ const RAW_RUNTIME_STATE = ["content-type", "npm:1.0.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.5", {\ + "packageLocation": "./.yarn/cache/content-type-npm-1.0.5-3e037bf9ab-585847d98d.zip/node_modules/content-type/",\ + "packageDependencies": [\ + ["content-type", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["conventional-changelog", [\ @@ -8199,10 +8269,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["cookie", [\ - ["npm:0.4.1", {\ - "packageLocation": "./.yarn/cache/cookie-npm-0.4.1-cc5e2ebb42-0f2defd60a.zip/node_modules/cookie/",\ + ["npm:0.7.1", {\ + "packageLocation": "./.yarn/cache/cookie-npm-0.7.1-f01524ff99-aec6a6aa07.zip/node_modules/cookie/",\ "packageDependencies": [\ - ["cookie", "npm:0.4.1"]\ + ["cookie", "npm:0.7.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -8466,7 +8536,7 @@ const RAW_RUNTIME_STATE = ["typescript", "patch:typescript@npm%3A3.9.10#optional!builtin::version=3.9.10&hash=3bd3d3"],\ ["url", "npm:0.11.3"],\ ["util", "npm:0.12.4"],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"],\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"],\ ["webpack-cli", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:4.9.1"],\ ["winston", "npm:3.3.3"]\ ],\ @@ -8640,12 +8710,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:6e177cabfad012f413f9c41366539c04d8701f0567119998690ab02224012faa99ec3a16b9f74f4d7920ab472c12b3e70f47f8f143239c06d0e2569e60ed9f62#npm:2.6.9", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-53242bdd6a/0/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip/node_modules/debug/",\ + ["virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-e443f3d004/0/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:6e177cabfad012f413f9c41366539c04d8701f0567119998690ab02224012faa99ec3a16b9f74f4d7920ab472c12b3e70f47f8f143239c06d0e2569e60ed9f62#npm:2.6.9"],\ + ["debug", "virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5"],\ ["@types/supports-color", null],\ - ["ms", "npm:2.0.0"],\ + ["ms", "npm:2.1.2"],\ ["supports-color", null]\ ],\ "packagePeers": [\ @@ -8654,13 +8724,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-e443f3d004/0/cache/debug-npm-4.3.5-b5001f59b7-cb6eab424c.zip/node_modules/debug/",\ + ["virtual:87db25c7c5e6b25bbc12571091cdabc648b79d427ab445d1714ccfdcdfb3265c9de6561ca760cc3de470037cbedf3af4be56ba3b684b3a1c01d4c9c2fd55a741#npm:4.3.4", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-762d08cbe9/0/cache/debug-npm-4.3.4-4513954577-0073c3bcbd.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:7a0505537f63825f62aaaf982168c2b7c1e816756656d44af98202b8d07990e163024e7dadf5587aa11d691887401ca8792ff06467da4d479c747705c9e87544#npm:4.3.5"],\ + ["debug", "virtual:87db25c7c5e6b25bbc12571091cdabc648b79d427ab445d1714ccfdcdfb3265c9de6561ca760cc3de470037cbedf3af4be56ba3b684b3a1c01d4c9c2fd55a741#npm:4.3.4"],\ ["@types/supports-color", null],\ ["ms", "npm:2.1.2"],\ - ["supports-color", null]\ + ["supports-color", "npm:8.1.1"]\ ],\ "packagePeers": [\ "@types/supports-color",\ @@ -8668,13 +8738,13 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:87db25c7c5e6b25bbc12571091cdabc648b79d427ab445d1714ccfdcdfb3265c9de6561ca760cc3de470037cbedf3af4be56ba3b684b3a1c01d4c9c2fd55a741#npm:4.3.4", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-762d08cbe9/0/cache/debug-npm-4.3.4-4513954577-0073c3bcbd.zip/node_modules/debug/",\ + ["virtual:c7b184cd14c02e3ce555ab1875e60cf5033c617e17d82c4c02ea822101d3c817f48bf25a766b4d4335742dc5c9c14c2e88a57ed955a56c4ad0613899f82f5618#npm:2.6.9", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-ce39f1817a/0/cache/debug-npm-2.6.9-7d4cb597dc-e07005f2b4.zip/node_modules/debug/",\ "packageDependencies": [\ - ["debug", "virtual:87db25c7c5e6b25bbc12571091cdabc648b79d427ab445d1714ccfdcdfb3265c9de6561ca760cc3de470037cbedf3af4be56ba3b684b3a1c01d4c9c2fd55a741#npm:4.3.4"],\ + ["debug", "virtual:c7b184cd14c02e3ce555ab1875e60cf5033c617e17d82c4c02ea822101d3c817f48bf25a766b4d4335742dc5c9c14c2e88a57ed955a56c4ad0613899f82f5618#npm:2.6.9"],\ ["@types/supports-color", null],\ - ["ms", "npm:2.1.2"],\ - ["supports-color", "npm:8.1.1"]\ + ["ms", "npm:2.0.0"],\ + ["supports-color", null]\ ],\ "packagePeers": [\ "@types/supports-color",\ @@ -8872,13 +8942,6 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["depd", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip/node_modules/depd/",\ - "packageDependencies": [\ - ["depd", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/depd-npm-2.0.0-b6c51a4b43-c0c8ff3607.zip/node_modules/depd/",\ "packageDependencies": [\ @@ -8907,6 +8970,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["destroy", [\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip/node_modules/destroy/",\ + "packageDependencies": [\ + ["destroy", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["dezalgo", [\ ["npm:1.0.3", {\ "packageLocation": "./.yarn/cache/dezalgo-npm-1.0.3-e2bc978ebd-960f4b6230.zip/node_modules/dezalgo/",\ @@ -9204,6 +9276,13 @@ const RAW_RUNTIME_STATE = ["electron-to-chromium", "npm:1.4.581"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.5.13", {\ + "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.5.13-be9902b49c-b3de6dbca6.zip/node_modules/electron-to-chromium/",\ + "packageDependencies": [\ + ["electron-to-chromium", "npm:1.5.13"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["elliptic", [\ @@ -9286,7 +9365,7 @@ const RAW_RUNTIME_STATE = ["@types/node", "npm:18.16.1"],\ ["accepts", "npm:1.3.7"],\ ["base64id", "npm:2.0.0"],\ - ["cookie", "npm:0.4.1"],\ + ["cookie", "npm:0.7.1"],\ ["cors", "npm:2.8.5"],\ ["debug", "virtual:4b12ba5111caf7e8338099bdbc7cb046a9f8e079a44e74d0c03dca469876e3071ebbe671c5e90ae6b78ae33e22c205fa5ed32169a4aabd1404b13c56d09986e1#npm:4.3.4"],\ ["engine.io-parser", "npm:5.0.4"],\ @@ -9313,6 +9392,15 @@ const RAW_RUNTIME_STATE = ["tapable", "npm:2.2.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.17.1", {\ + "packageLocation": "./.yarn/cache/enhanced-resolve-npm-5.17.1-296305b69f-e8e03cb7a4.zip/node_modules/enhanced-resolve/",\ + "packageDependencies": [\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["graceful-fs", "npm:4.2.10"],\ + ["tapable", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["enquirer", [\ @@ -9439,10 +9527,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["es-module-lexer", [\ - ["npm:0.9.3", {\ - "packageLocation": "./.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-c3e39465d0.zip/node_modules/es-module-lexer/",\ + ["npm:1.5.4", {\ + "packageLocation": "./.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-f29c7c97a5.zip/node_modules/es-module-lexer/",\ "packageDependencies": [\ - ["es-module-lexer", "npm:0.9.3"]\ + ["es-module-lexer", "npm:1.5.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -9525,6 +9613,13 @@ const RAW_RUNTIME_STATE = ["escalade", "npm:3.1.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.1.2", {\ + "packageLocation": "./.yarn/cache/escalade-npm-3.1.2-5826d31cf8-a1e07fea2f.zip/node_modules/escalade/",\ + "packageDependencies": [\ + ["escalade", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["escape-html", [\ @@ -10358,7 +10453,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-351e99a889.zip/node_modules/finalhandler/",\ "packageDependencies": [\ ["finalhandler", "npm:1.1.2"],\ - ["debug", "virtual:6e177cabfad012f413f9c41366539c04d8701f0567119998690ab02224012faa99ec3a16b9f74f4d7920ab472c12b3e70f47f8f143239c06d0e2569e60ed9f62#npm:2.6.9"],\ + ["debug", "virtual:c7b184cd14c02e3ce555ab1875e60cf5033c617e17d82c4c02ea822101d3c817f48bf25a766b4d4335742dc5c9c14c2e88a57ed955a56c4ad0613899f82f5618#npm:2.6.9"],\ ["encodeurl", "npm:1.0.2"],\ ["escape-html", "npm:1.0.3"],\ ["on-finished", "npm:2.3.0"],\ @@ -11093,6 +11188,13 @@ const RAW_RUNTIME_STATE = ["graceful-fs", "npm:4.2.10"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.2.11", {\ + "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip/node_modules/graceful-fs/",\ + "packageDependencies": [\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["grapheme-splitter", [\ @@ -11392,15 +11494,15 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["http-errors", [\ - ["npm:1.7.2", {\ - "packageLocation": "./.yarn/cache/http-errors-npm-1.7.2-67163ae1df-cf8da344b1.zip/node_modules/http-errors/",\ + ["npm:2.0.0", {\ + "packageLocation": "./.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip/node_modules/http-errors/",\ "packageDependencies": [\ - ["http-errors", "npm:1.7.2"],\ - ["depd", "npm:1.1.2"],\ - ["inherits", "npm:2.0.3"],\ - ["setprototypeof", "npm:1.1.1"],\ - ["statuses", "npm:1.5.0"],\ - ["toidentifier", "npm:1.0.0"]\ + ["http-errors", "npm:2.0.0"],\ + ["depd", "npm:2.0.0"],\ + ["inherits", "npm:2.0.4"],\ + ["setprototypeof", "npm:1.2.0"],\ + ["statuses", "npm:2.0.1"],\ + ["toidentifier", "npm:1.0.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -11683,13 +11785,6 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["npm:2.0.3", {\ - "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-401e64b080-8771303d66.zip/node_modules/inherits/",\ - "packageDependencies": [\ - ["inherits", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:2.0.4", {\ "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-c66b3957a0-cd45e923be.zip/node_modules/inherits/",\ "packageDependencies": [\ @@ -12746,7 +12841,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["karma", "npm:6.4.3"],\ ["@colors/colors", "npm:1.5.0"],\ - ["body-parser", "npm:1.19.0"],\ + ["body-parser", "npm:1.20.3"],\ ["braces", "npm:3.0.2"],\ ["chokidar", "npm:3.5.3"],\ ["connect", "npm:3.7.0"],\ @@ -12898,7 +12993,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["glob", "npm:7.2.3"],\ ["minimatch", "npm:3.1.2"],\ - ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1"],\ + ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.94.0"],\ ["webpack-merge", "npm:4.2.2"]\ ],\ "packagePeers": [\ @@ -12914,7 +13009,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["glob", "npm:7.2.3"],\ ["minimatch", "npm:3.1.2"],\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"],\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"],\ ["webpack-merge", "npm:4.2.2"]\ ],\ "packagePeers": [\ @@ -12930,7 +13025,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["glob", "npm:7.2.3"],\ ["minimatch", "npm:3.1.2"],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"],\ ["webpack-merge", "npm:4.2.2"]\ ],\ "packagePeers": [\ @@ -12946,7 +13041,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["glob", "npm:7.2.3"],\ ["minimatch", "npm:3.1.2"],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"],\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"],\ ["webpack-merge", "npm:4.2.2"]\ ],\ "packagePeers": [\ @@ -12962,7 +13057,7 @@ const RAW_RUNTIME_STATE = ["@types/webpack", null],\ ["glob", "npm:7.2.3"],\ ["minimatch", "npm:3.1.2"],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"],\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"],\ ["webpack-merge", "npm:4.2.2"]\ ],\ "packagePeers": [\ @@ -14472,7 +14567,7 @@ const RAW_RUNTIME_STATE = ["@sinonjs/fake-timers", "npm:10.3.0"],\ ["@sinonjs/text-encoding", "npm:0.7.1"],\ ["just-extend", "npm:4.2.1"],\ - ["path-to-regexp", "npm:1.8.0"]\ + ["path-to-regexp", "npm:1.9.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -14593,6 +14688,13 @@ const RAW_RUNTIME_STATE = ["node-releases", "npm:2.0.13"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.18", {\ + "packageLocation": "./.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip/node_modules/node-releases/",\ + "packageDependencies": [\ + ["node-releases", "npm:2.0.18"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["nodeforage", [\ @@ -15076,6 +15178,14 @@ const RAW_RUNTIME_STATE = ["ee-first", "npm:1.1.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.4.1", {\ + "packageLocation": "./.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip/node_modules/on-finished/",\ + "packageDependencies": [\ + ["on-finished", "npm:2.4.1"],\ + ["ee-first", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["once", [\ @@ -15668,10 +15778,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["path-to-regexp", [\ - ["npm:1.8.0", {\ - "packageLocation": "./.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-45a01690f7.zip/node_modules/path-to-regexp/",\ + ["npm:1.9.0", {\ + "packageLocation": "./.yarn/cache/path-to-regexp-npm-1.9.0-723549d8d9-67f0f4823f.zip/node_modules/path-to-regexp/",\ "packageDependencies": [\ - ["path-to-regexp", "npm:1.8.0"],\ + ["path-to-regexp", "npm:1.9.0"],\ ["isarray", "npm:0.0.1"]\ ],\ "linkType": "HARD"\ @@ -15724,6 +15834,13 @@ const RAW_RUNTIME_STATE = ["picocolors", "npm:1.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.0.1", {\ + "packageLocation": "./.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip/node_modules/picocolors/",\ + "packageDependencies": [\ + ["picocolors", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["picomatch", [\ @@ -16254,12 +16371,12 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["raw-body", [\ - ["npm:2.4.0", {\ - "packageLocation": "./.yarn/cache/raw-body-npm-2.4.0-14d9d633af-aa2c506055.zip/node_modules/raw-body/",\ + ["npm:2.5.2", {\ + "packageLocation": "./.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-863b5171e1.zip/node_modules/raw-body/",\ "packageDependencies": [\ - ["raw-body", "npm:2.4.0"],\ - ["bytes", "npm:3.1.0"],\ - ["http-errors", "npm:1.7.2"],\ + ["raw-body", "npm:2.5.2"],\ + ["bytes", "npm:3.1.2"],\ + ["http-errors", "npm:2.0.0"],\ ["iconv-lite", "npm:0.4.24"],\ ["unpipe", "npm:1.0.0"]\ ],\ @@ -16921,7 +17038,17 @@ const RAW_RUNTIME_STATE = ["schema-utils", "npm:3.1.1"],\ ["@types/json-schema", "npm:7.0.15"],\ ["ajv", "npm:6.12.6"],\ - ["ajv-keywords", "virtual:8704647575acf2f5b19fccfcb0acebacd9c94259ebe9afcfaf4c053812fd896f10775930ee5a5949e20833a61503d2cd22aa259cbe69729f6a192de4bf43dc00#npm:3.5.2"]\ + ["ajv-keywords", "virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.3.0", {\ + "packageLocation": "./.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-2c7bbb1da9.zip/node_modules/schema-utils/",\ + "packageDependencies": [\ + ["schema-utils", "npm:3.3.0"],\ + ["@types/json-schema", "npm:7.0.15"],\ + ["ajv", "npm:6.12.6"],\ + ["ajv-keywords", "virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2"]\ ],\ "linkType": "HARD"\ }],\ @@ -16994,6 +17121,14 @@ const RAW_RUNTIME_STATE = ["randombytes", "npm:2.1.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:6.0.2", {\ + "packageLocation": "./.yarn/cache/serialize-javascript-npm-6.0.2-cc09461d45-445a420a6f.zip/node_modules/serialize-javascript/",\ + "packageDependencies": [\ + ["serialize-javascript", "npm:6.0.2"],\ + ["randombytes", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["set-blocking", [\ @@ -17040,10 +17175,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["setprototypeof", [\ - ["npm:1.1.1", {\ - "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-b8fcf5b4b8.zip/node_modules/setprototypeof/",\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip/node_modules/setprototypeof/",\ "packageDependencies": [\ - ["setprototypeof", "npm:1.1.1"]\ + ["setprototypeof", "npm:1.2.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -17690,6 +17825,13 @@ const RAW_RUNTIME_STATE = ["statuses", "npm:1.5.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip/node_modules/statuses/",\ + "packageDependencies": [\ + ["statuses", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["stream-browserify", [\ @@ -18124,9 +18266,27 @@ const RAW_RUNTIME_STATE = ["source-map-support", "npm:0.5.21"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.31.6", {\ + "packageLocation": "./.yarn/cache/terser-npm-5.31.6-535b99d333-78057c5802.zip/node_modules/terser/",\ + "packageDependencies": [\ + ["terser", "npm:5.31.6"],\ + ["@jridgewell/source-map", "npm:0.3.6"],\ + ["acorn", "npm:8.12.1"],\ + ["commander", "npm:2.20.3"],\ + ["source-map-support", "npm:0.5.21"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["terser-webpack-plugin", [\ + ["npm:5.3.10", {\ + "packageLocation": "./.yarn/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ + "packageDependencies": [\ + ["terser-webpack-plugin", "npm:5.3.10"]\ + ],\ + "linkType": "SOFT"\ + }],\ ["npm:5.3.3", {\ "packageLocation": "./.yarn/cache/terser-webpack-plugin-npm-5.3.3-659a8e4514-db2bc0e570.zip/node_modules/terser-webpack-plugin/",\ "packageDependencies": [\ @@ -18134,11 +18294,11 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ - ["virtual:2a3d558ccb76dd3ab11b6ed4ba45a56a4c8ede48a0f5bce78e9f369869629c0ab3fdd420246c54134f91e3f10302373527dda29ebc24d5a11b3ceb41128ccfad#npm:5.3.3", {\ - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-7b10d7bddb/0/cache/terser-webpack-plugin-npm-5.3.3-659a8e4514-db2bc0e570.zip/node_modules/terser-webpack-plugin/",\ + ["virtual:620b2dfb2a454269dad12b14bcd9610a5949ae4402ebe39906c40e87c2a6d96794802458f1dd1dc0771d101b936776159f596807770febc97e9f19c3d593ce28#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-30c73072bb/0/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ "packageDependencies": [\ - ["terser-webpack-plugin", "virtual:2a3d558ccb76dd3ab11b6ed4ba45a56a4c8ede48a0f5bce78e9f369869629c0ab3fdd420246c54134f91e3f10302373527dda29ebc24d5a11b3ceb41128ccfad#npm:5.3.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.18"],\ + ["terser-webpack-plugin", "virtual:620b2dfb2a454269dad12b14bcd9610a5949ae4402ebe39906c40e87c2a6d96794802458f1dd1dc0771d101b936776159f596807770febc97e9f19c3d593ce28#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ ["@swc/core", null],\ ["@types/esbuild", null],\ ["@types/swc__core", null],\ @@ -18147,10 +18307,10 @@ const RAW_RUNTIME_STATE = ["esbuild", null],\ ["jest-worker", "npm:27.5.1"],\ ["schema-utils", "npm:3.1.1"],\ - ["serialize-javascript", "npm:6.0.0"],\ - ["terser", "npm:5.14.2"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.31.6"],\ ["uglify-js", null],\ - ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1"]\ + ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.94.0"]\ ],\ "packagePeers": [\ "@swc/core",\ @@ -18164,11 +18324,11 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:42f4a899ff66a92a935fae1e8403ae89d87f8a151c8c0f294f5e2ee8bca90964f194c289f6f47a8333ea1d64884bb4ea4c5aea65e0aa5a8603494f665e284ad3#npm:5.3.3", {\ - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-520d9753e1/0/cache/terser-webpack-plugin-npm-5.3.3-659a8e4514-db2bc0e570.zip/node_modules/terser-webpack-plugin/",\ + ["virtual:7bd93570c5d84736c13a223c581c6a110a422284c96923702acd4a2b154b5a6d0e0cc886101d925773c05b4b1eddf96701f1308dc290c0e99695f881c63c6570#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-f7b5f4e5a8/0/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ "packageDependencies": [\ - ["terser-webpack-plugin", "virtual:42f4a899ff66a92a935fae1e8403ae89d87f8a151c8c0f294f5e2ee8bca90964f194c289f6f47a8333ea1d64884bb4ea4c5aea65e0aa5a8603494f665e284ad3#npm:5.3.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.18"],\ + ["terser-webpack-plugin", "virtual:7bd93570c5d84736c13a223c581c6a110a422284c96923702acd4a2b154b5a6d0e0cc886101d925773c05b4b1eddf96701f1308dc290c0e99695f881c63c6570#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ ["@swc/core", null],\ ["@types/esbuild", null],\ ["@types/swc__core", null],\ @@ -18177,10 +18337,10 @@ const RAW_RUNTIME_STATE = ["esbuild", null],\ ["jest-worker", "npm:27.5.1"],\ ["schema-utils", "npm:3.1.1"],\ - ["serialize-javascript", "npm:6.0.0"],\ - ["terser", "npm:5.14.2"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.31.6"],\ ["uglify-js", null],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"]\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"]\ ],\ "packagePeers": [\ "@swc/core",\ @@ -18194,11 +18354,11 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:5.3.3", {\ - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-00677cea6c/0/cache/terser-webpack-plugin-npm-5.3.3-659a8e4514-db2bc0e570.zip/node_modules/terser-webpack-plugin/",\ + ["virtual:905383bbe64c71ce6c95c9f55f98098af8f091dba1addd3de3a70c380414a85254622f9263413882da6f88f8a0bb953a82859605007084e0a6da8d5f8e3376f7#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-9f3e20f6e2/0/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ "packageDependencies": [\ - ["terser-webpack-plugin", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:5.3.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.18"],\ + ["terser-webpack-plugin", "virtual:905383bbe64c71ce6c95c9f55f98098af8f091dba1addd3de3a70c380414a85254622f9263413882da6f88f8a0bb953a82859605007084e0a6da8d5f8e3376f7#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ ["@swc/core", null],\ ["@types/esbuild", null],\ ["@types/swc__core", null],\ @@ -18207,10 +18367,40 @@ const RAW_RUNTIME_STATE = ["esbuild", null],\ ["jest-worker", "npm:27.5.1"],\ ["schema-utils", "npm:3.1.1"],\ - ["serialize-javascript", "npm:6.0.0"],\ - ["terser", "npm:5.14.2"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.31.6"],\ + ["uglify-js", null],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"]\ + ],\ + "packagePeers": [\ + "@swc/core",\ + "@types/esbuild",\ + "@types/swc__core",\ + "@types/uglify-js",\ + "@types/webpack",\ + "esbuild",\ + "uglify-js",\ + "webpack"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-b893485bee/0/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ + "packageDependencies": [\ + ["terser-webpack-plugin", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@swc/core", null],\ + ["@types/esbuild", null],\ + ["@types/swc__core", null],\ + ["@types/uglify-js", null],\ + ["@types/webpack", null],\ + ["esbuild", null],\ + ["jest-worker", "npm:27.5.1"],\ + ["schema-utils", "npm:3.1.1"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.31.6"],\ ["uglify-js", null],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"]\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"]\ ],\ "packagePeers": [\ "@swc/core",\ @@ -18240,7 +18430,7 @@ const RAW_RUNTIME_STATE = ["serialize-javascript", "npm:6.0.0"],\ ["terser", "npm:5.14.2"],\ ["uglify-js", null],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"]\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"]\ ],\ "packagePeers": [\ "@swc/core",\ @@ -18254,11 +18444,11 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:d33ae3339557a5a7f9578102570f67e936a4c1af78c1322b63541bc89dc24f419318f0ddd4e3241021a7e0be1ce717f7ffe8cc168317f38d8d886f6915b6482d#npm:5.3.3", {\ - "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-9f9f9cad8b/0/cache/terser-webpack-plugin-npm-5.3.3-659a8e4514-db2bc0e570.zip/node_modules/terser-webpack-plugin/",\ + ["virtual:afe22926728b8743eebfc3aab3003b5f4824c540183774886aaa2d6f1fe7dfb7a73d92d9b4d1499d3b6b0a5c20146855288f801ee62790954226bb740fb12c82#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-1897de7568/0/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip/node_modules/terser-webpack-plugin/",\ "packageDependencies": [\ - ["terser-webpack-plugin", "virtual:d33ae3339557a5a7f9578102570f67e936a4c1af78c1322b63541bc89dc24f419318f0ddd4e3241021a7e0be1ce717f7ffe8cc168317f38d8d886f6915b6482d#npm:5.3.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.18"],\ + ["terser-webpack-plugin", "virtual:afe22926728b8743eebfc3aab3003b5f4824c540183774886aaa2d6f1fe7dfb7a73d92d9b4d1499d3b6b0a5c20146855288f801ee62790954226bb740fb12c82#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ ["@swc/core", null],\ ["@types/esbuild", null],\ ["@types/swc__core", null],\ @@ -18267,10 +18457,10 @@ const RAW_RUNTIME_STATE = ["esbuild", null],\ ["jest-worker", "npm:27.5.1"],\ ["schema-utils", "npm:3.1.1"],\ - ["serialize-javascript", "npm:6.0.0"],\ - ["terser", "npm:5.14.2"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.31.6"],\ ["uglify-js", null],\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"]\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"]\ ],\ "packagePeers": [\ "@swc/core",\ @@ -18436,10 +18626,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["toidentifier", [\ - ["npm:1.0.0", {\ - "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-199e6bfca1.zip/node_modules/toidentifier/",\ + ["npm:1.0.1", {\ + "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip/node_modules/toidentifier/",\ "packageDependencies": [\ - ["toidentifier", "npm:1.0.0"]\ + ["toidentifier", "npm:1.0.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -18541,7 +18731,7 @@ const RAW_RUNTIME_STATE = ["semver", "npm:7.5.3"],\ ["source-map", "npm:0.7.4"],\ ["typescript", "patch:typescript@npm%3A3.9.10#optional!builtin::version=3.9.10&hash=3bd3d3"],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"]\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -18563,7 +18753,7 @@ const RAW_RUNTIME_STATE = ["semver", "npm:7.5.3"],\ ["source-map", "npm:0.7.4"],\ ["typescript", "patch:typescript@npm%3A3.9.10#optional!builtin::version=3.9.10&hash=3bd3d3"],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"]\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -19211,6 +19401,28 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "npm:1.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0", {\ + "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-e5d722ea57/0/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "virtual:4e727c7b5b033f8d5ac7299f9860cb61f5802656f7b4fea2accd32d68dc1a767387a6d23f0724065d3c65e61cb31b9eec2438ae937ce36e7602b4586ede55af6#npm:1.1.0"],\ + ["@types/browserslist", null],\ + ["browserslist", "npm:4.23.3"],\ + ["escalade", "npm:3.1.2"],\ + ["picocolors", "npm:1.0.1"]\ + ],\ + "packagePeers": [\ + "@types/browserslist",\ + "browserslist"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:cccae6d74e613cbaceb4c608cb01004dea3f5ca235673f5c541d60f516ef320907d258256abf63eac9b8704e23cf5d52eb19f2a57a07471accc943ea645de308#npm:1.0.13", {\ "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-1935275eaa/0/cache/update-browserslist-db-npm-1.0.13-ea7b8ee24d-9074b4ef34.zip/node_modules/update-browserslist-db/",\ "packageDependencies": [\ @@ -19466,10 +19678,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["watchpack", [\ - ["npm:2.4.0", {\ - "packageLocation": "./.yarn/cache/watchpack-npm-2.4.0-7ec4b9cc65-4280b45bc4.zip/node_modules/watchpack/",\ + ["npm:2.4.2", {\ + "packageLocation": "./.yarn/cache/watchpack-npm-2.4.2-3e587d5d5b-6bd4c051d9.zip/node_modules/watchpack/",\ "packageDependencies": [\ - ["watchpack", "npm:2.4.0"],\ + ["watchpack", "npm:2.4.2"],\ ["glob-to-regexp", "npm:0.4.1"],\ ["graceful-fs", "npm:4.2.10"]\ ],\ @@ -19496,41 +19708,40 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["webpack", [\ - ["npm:5.76.1", {\ - "packageLocation": "./.yarn/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["npm:5.94.0", {\ + "packageLocation": "./.yarn/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "npm:5.76.1"]\ + ["webpack", "npm:5.94.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1", {\ - "packageLocation": "./.yarn/__virtual__/webpack-virtual-2a3d558ccb/0/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-620b2dfb2a/0/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.76.1"],\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/estree", "npm:0.0.51"],\ + ["webpack", "virtual:01938c2be4835443e5a304e2b117c575220e96e8b7cedeb0f48d79264590b4c4babc6d1fea6367f522b1ca0149d795b42f2ab89c34a6ffe3c20f0a8cbb8b4453#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.5"],\ ["@types/webpack-cli", null],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ ["acorn", "npm:8.11.2"],\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ - ["browserslist", "npm:4.22.1"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ + ["browserslist", "npm:4.23.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ - ["enhanced-resolve", "npm:5.15.0"],\ - ["es-module-lexer", "npm:0.9.3"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ ["eslint-scope", "npm:5.1.1"],\ ["events", "npm:3.3.0"],\ ["glob-to-regexp", "npm:0.4.1"],\ - ["graceful-fs", "npm:4.2.10"],\ + ["graceful-fs", "npm:4.2.11"],\ ["json-parse-even-better-errors", "npm:2.3.1"],\ ["loader-runner", "npm:4.2.0"],\ ["mime-types", "npm:2.1.34"],\ ["neo-async", "npm:2.6.2"],\ - ["schema-utils", "npm:3.1.1"],\ + ["schema-utils", "npm:3.3.0"],\ ["tapable", "npm:2.2.1"],\ - ["terser-webpack-plugin", "virtual:2a3d558ccb76dd3ab11b6ed4ba45a56a4c8ede48a0f5bce78e9f369869629c0ab3fdd420246c54134f91e3f10302373527dda29ebc24d5a11b3ceb41128ccfad#npm:5.3.3"],\ - ["watchpack", "npm:2.4.0"],\ + ["terser-webpack-plugin", "virtual:620b2dfb2a454269dad12b14bcd9610a5949ae4402ebe39906c40e87c2a6d96794802458f1dd1dc0771d101b936776159f596807770febc97e9f19c3d593ce28#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ ["webpack-cli", null],\ ["webpack-sources", "npm:3.2.3"]\ ],\ @@ -19540,34 +19751,33 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1", {\ - "packageLocation": "./.yarn/__virtual__/webpack-virtual-d33ae33395/0/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-afe2292672/0/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"],\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/estree", "npm:0.0.51"],\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.5"],\ ["@types/webpack-cli", null],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ ["acorn", "npm:8.11.2"],\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ - ["browserslist", "npm:4.22.1"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ + ["browserslist", "npm:4.23.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ - ["enhanced-resolve", "npm:5.15.0"],\ - ["es-module-lexer", "npm:0.9.3"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ ["eslint-scope", "npm:5.1.1"],\ ["events", "npm:3.3.0"],\ ["glob-to-regexp", "npm:0.4.1"],\ - ["graceful-fs", "npm:4.2.10"],\ + ["graceful-fs", "npm:4.2.11"],\ ["json-parse-even-better-errors", "npm:2.3.1"],\ ["loader-runner", "npm:4.2.0"],\ ["mime-types", "npm:2.1.34"],\ ["neo-async", "npm:2.6.2"],\ - ["schema-utils", "npm:3.1.1"],\ + ["schema-utils", "npm:3.3.0"],\ ["tapable", "npm:2.2.1"],\ - ["terser-webpack-plugin", "virtual:d33ae3339557a5a7f9578102570f67e936a4c1af78c1322b63541bc89dc24f419318f0ddd4e3241021a7e0be1ce717f7ffe8cc168317f38d8d886f6915b6482d#npm:5.3.3"],\ - ["watchpack", "npm:2.4.0"],\ + ["terser-webpack-plugin", "virtual:afe22926728b8743eebfc3aab3003b5f4824c540183774886aaa2d6f1fe7dfb7a73d92d9b4d1499d3b6b0a5c20146855288f801ee62790954226bb740fb12c82#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ ["webpack-cli", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:4.9.1"],\ ["webpack-sources", "npm:3.2.3"]\ ],\ @@ -19577,34 +19787,33 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1", {\ - "packageLocation": "./.yarn/__virtual__/webpack-virtual-42f4a899ff/0/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-905383bbe6/0/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"],\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/estree", "npm:0.0.51"],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.5"],\ ["@types/webpack-cli", null],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ ["acorn", "npm:8.11.2"],\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ - ["browserslist", "npm:4.22.1"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ + ["browserslist", "npm:4.23.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ - ["enhanced-resolve", "npm:5.15.0"],\ - ["es-module-lexer", "npm:0.9.3"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ ["eslint-scope", "npm:5.1.1"],\ ["events", "npm:3.3.0"],\ ["glob-to-regexp", "npm:0.4.1"],\ - ["graceful-fs", "npm:4.2.10"],\ + ["graceful-fs", "npm:4.2.11"],\ ["json-parse-even-better-errors", "npm:2.3.1"],\ ["loader-runner", "npm:4.2.0"],\ ["mime-types", "npm:2.1.34"],\ ["neo-async", "npm:2.6.2"],\ - ["schema-utils", "npm:3.1.1"],\ + ["schema-utils", "npm:3.3.0"],\ ["tapable", "npm:2.2.1"],\ - ["terser-webpack-plugin", "virtual:42f4a899ff66a92a935fae1e8403ae89d87f8a151c8c0f294f5e2ee8bca90964f194c289f6f47a8333ea1d64884bb4ea4c5aea65e0aa5a8603494f665e284ad3#npm:5.3.3"],\ - ["watchpack", "npm:2.4.0"],\ + ["terser-webpack-plugin", "virtual:905383bbe64c71ce6c95c9f55f98098af8f091dba1addd3de3a70c380414a85254622f9263413882da6f88f8a0bb953a82859605007084e0a6da8d5f8e3376f7#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ ["webpack-cli", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:4.9.1"],\ ["webpack-sources", "npm:3.2.3"]\ ],\ @@ -19614,34 +19823,33 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1", {\ - "packageLocation": "./.yarn/__virtual__/webpack-virtual-0ff9a68c00/0/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-7bd93570c5/0/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"],\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/estree", "npm:0.0.51"],\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.5"],\ ["@types/webpack-cli", null],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ ["acorn", "npm:8.11.2"],\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ - ["browserslist", "npm:4.22.1"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ + ["browserslist", "npm:4.23.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ - ["enhanced-resolve", "npm:5.15.0"],\ - ["es-module-lexer", "npm:0.9.3"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ ["eslint-scope", "npm:5.1.1"],\ ["events", "npm:3.3.0"],\ ["glob-to-regexp", "npm:0.4.1"],\ - ["graceful-fs", "npm:4.2.10"],\ + ["graceful-fs", "npm:4.2.11"],\ ["json-parse-even-better-errors", "npm:2.3.1"],\ ["loader-runner", "npm:4.2.0"],\ ["mime-types", "npm:2.1.34"],\ ["neo-async", "npm:2.6.2"],\ - ["schema-utils", "npm:3.1.1"],\ + ["schema-utils", "npm:3.3.0"],\ ["tapable", "npm:2.2.1"],\ - ["terser-webpack-plugin", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.3.3"],\ - ["watchpack", "npm:2.4.0"],\ + ["terser-webpack-plugin", "virtual:7bd93570c5d84736c13a223c581c6a110a422284c96923702acd4a2b154b5a6d0e0cc886101d925773c05b4b1eddf96701f1308dc290c0e99695f881c63c6570#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ ["webpack-cli", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:4.9.1"],\ ["webpack-sources", "npm:3.2.3"]\ ],\ @@ -19651,34 +19859,33 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1", {\ - "packageLocation": "./.yarn/__virtual__/webpack-virtual-a1758743d2/0/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip/node_modules/webpack/",\ + ["virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-9644477017/0/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip/node_modules/webpack/",\ "packageDependencies": [\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"],\ - ["@types/eslint-scope", "npm:3.7.4"],\ - ["@types/estree", "npm:0.0.51"],\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.5"],\ ["@types/webpack-cli", null],\ - ["@webassemblyjs/ast", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-edit", "npm:1.11.1"],\ - ["@webassemblyjs/wasm-parser", "npm:1.11.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ ["acorn", "npm:8.11.2"],\ - ["acorn-import-assertions", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:1.8.0"],\ - ["browserslist", "npm:4.22.1"],\ + ["acorn-import-attributes", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:1.9.5"],\ + ["browserslist", "npm:4.23.3"],\ ["chrome-trace-event", "npm:1.0.3"],\ - ["enhanced-resolve", "npm:5.15.0"],\ - ["es-module-lexer", "npm:0.9.3"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ ["eslint-scope", "npm:5.1.1"],\ ["events", "npm:3.3.0"],\ ["glob-to-regexp", "npm:0.4.1"],\ - ["graceful-fs", "npm:4.2.10"],\ + ["graceful-fs", "npm:4.2.11"],\ ["json-parse-even-better-errors", "npm:2.3.1"],\ ["loader-runner", "npm:4.2.0"],\ ["mime-types", "npm:2.1.34"],\ ["neo-async", "npm:2.6.2"],\ - ["schema-utils", "npm:3.1.1"],\ + ["schema-utils", "npm:3.3.0"],\ ["tapable", "npm:2.2.1"],\ - ["terser-webpack-plugin", "virtual:a1758743d243877493a02719691b2bf5513261873450aca581311be1ead841af63c0be982c400355949a0dcad332960c6e3ed3885051f0427d191c70a7fc9856#npm:5.3.3"],\ - ["watchpack", "npm:2.4.0"],\ + ["terser-webpack-plugin", "virtual:9644477017df2e32be56d4a1c7fe5ac5a3e402b2dbf0f12e92d05353a79eef964913f8eba76831dcc035bd99e7745cec85de81787c8c846ec7e2635108519296#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ ["webpack-cli", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:4.9.1"],\ ["webpack-sources", "npm:3.2.3"]\ ],\ @@ -19719,7 +19926,7 @@ const RAW_RUNTIME_STATE = ["import-local", "npm:3.0.3"],\ ["interpret", "npm:2.2.0"],\ ["rechoir", "npm:0.7.1"],\ - ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.76.1"],\ + ["webpack", "virtual:45f214395bc38640da4dc5e940482d5df0572c5384e0262802601d1973e71077ec8bbd76b77eafa4c0550b706b664abd84d63fd67a5897139f0b2675530fc84f#npm:5.94.0"],\ ["webpack-bundle-analyzer", null],\ ["webpack-dev-server", null],\ ["webpack-merge", "npm:5.8.0"]\ @@ -19760,7 +19967,7 @@ const RAW_RUNTIME_STATE = ["import-local", "npm:3.0.3"],\ ["interpret", "npm:2.2.0"],\ ["rechoir", "npm:0.7.1"],\ - ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.76.1"],\ + ["webpack", "virtual:8f25fc90e0fb5fd89843707863857591fa8c52f9f33eadced4bf404b1871d91959f7bb86948ae0e1b53ee94d491ef8fde9c0b58b39c9490c0d0fa6c931945f97#npm:5.94.0"],\ ["webpack-bundle-analyzer", null],\ ["webpack-dev-server", null],\ ["webpack-merge", "npm:5.8.0"]\ @@ -19801,7 +20008,7 @@ const RAW_RUNTIME_STATE = ["import-local", "npm:3.0.3"],\ ["interpret", "npm:2.2.0"],\ ["rechoir", "npm:0.7.1"],\ - ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.76.1"],\ + ["webpack", "virtual:ad53cff31b1dbd4927a99e71702e3b8b10338636eaff010987c27c9ccea2d52af36900a9e36a4231cbb6e5464248ccc9c1da5d1d24d9b0f4f95660296b1060a6#npm:5.94.0"],\ ["webpack-bundle-analyzer", null],\ ["webpack-dev-server", null],\ ["webpack-merge", "npm:5.8.0"]\ @@ -19842,7 +20049,7 @@ const RAW_RUNTIME_STATE = ["import-local", "npm:3.0.3"],\ ["interpret", "npm:2.2.0"],\ ["rechoir", "npm:0.7.1"],\ - ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.76.1"],\ + ["webpack", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:5.94.0"],\ ["webpack-bundle-analyzer", null],\ ["webpack-dev-server", null],\ ["webpack-merge", "npm:5.8.0"]\ diff --git a/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip b/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip new file mode 100644 index 0000000000..18c8d136e5 Binary files /dev/null and b/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-81587b3c4d.zip differ diff --git a/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip new file mode 100644 index 0000000000..4b56ea4a83 Binary files /dev/null and b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-97106439d7.zip differ diff --git a/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip b/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip new file mode 100644 index 0000000000..8a72fc72df Binary files /dev/null and b/.yarn/cache/@jridgewell-set-array-npm-1.2.1-2312928209-832e513a85.zip differ diff --git a/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip b/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip new file mode 100644 index 0000000000..7490e22fe4 Binary files /dev/null and b/.yarn/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-0a9aca9320.zip differ diff --git a/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip b/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip new file mode 100644 index 0000000000..2190c972ac Binary files /dev/null and b/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-4ed6123217.zip differ diff --git a/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip new file mode 100644 index 0000000000..7e430802c7 Binary files /dev/null and b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-dced32160a.zip differ diff --git a/.yarn/cache/@types-eslint-npm-8.2.0-971aa21b00-1e8100311e.zip b/.yarn/cache/@types-eslint-npm-8.2.0-971aa21b00-1e8100311e.zip deleted file mode 100644 index eac2d26153..0000000000 Binary files a/.yarn/cache/@types-eslint-npm-8.2.0-971aa21b00-1e8100311e.zip and /dev/null differ diff --git a/.yarn/cache/@types-eslint-scope-npm-3.7.4-c11d226d71-ea6a9363e9.zip b/.yarn/cache/@types-eslint-scope-npm-3.7.4-c11d226d71-ea6a9363e9.zip deleted file mode 100644 index 6ae839b303..0000000000 Binary files a/.yarn/cache/@types-eslint-scope-npm-3.7.4-c11d226d71-ea6a9363e9.zip and /dev/null differ diff --git a/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-7de6d928dd.zip b/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-7de6d928dd.zip new file mode 100644 index 0000000000..022b94a110 Binary files /dev/null and b/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-7de6d928dd.zip differ diff --git a/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-28cc949e2e.zip b/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-28cc949e2e.zip deleted file mode 100644 index 4099aaf62a..0000000000 Binary files a/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-28cc949e2e.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-ast-npm-1.12.1-3ff9ea1c0e-a775b05594.zip b/.yarn/cache/@webassemblyjs-ast-npm-1.12.1-3ff9ea1c0e-a775b05594.zip new file mode 100644 index 0000000000..b83e0cc81c Binary files /dev/null and b/.yarn/cache/@webassemblyjs-ast-npm-1.12.1-3ff9ea1c0e-a775b05594.zip differ diff --git a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip deleted file mode 100644 index 9b03be9439..0000000000 Binary files a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip new file mode 100644 index 0000000000..fd95d6494f Binary files /dev/null and b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip deleted file mode 100644 index 28665e752b..0000000000 Binary files a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip new file mode 100644 index 0000000000..d0697f2835 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip deleted file mode 100644 index c4c06dd687..0000000000 Binary files a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.12.1-d025434a45-1d8705daa4.zip b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.12.1-d025434a45-1d8705daa4.zip new file mode 100644 index 0000000000..d7eccb73d4 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.12.1-d025434a45-1d8705daa4.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-cbe5b456fa.zip b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-cbe5b456fa.zip deleted file mode 100644 index 704a9f3ad4..0000000000 Binary files a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-cbe5b456fa.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-9ffd258ad8.zip b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-9ffd258ad8.zip new file mode 100644 index 0000000000..bf882f93ff Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-9ffd258ad8.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-009b494010.zip b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-009b494010.zip deleted file mode 100644 index 5769ab3244..0000000000 Binary files a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-009b494010.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-4ebf03e9c1.zip b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-4ebf03e9c1.zip new file mode 100644 index 0000000000..8f3fedc5ae Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-4ebf03e9c1.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-dd6eee9f73.zip b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-dd6eee9f73.zip deleted file mode 100644 index 744065f37d..0000000000 Binary files a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-dd6eee9f73.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.12.1-cd0e2f1eab-e91e6b2811.zip b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.12.1-cd0e2f1eab-e91e6b2811.zip new file mode 100644 index 0000000000..a17936e54f Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.12.1-cd0e2f1eab-e91e6b2811.zip differ diff --git a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip deleted file mode 100644 index fd9e4c5e99..0000000000 Binary files a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip new file mode 100644 index 0000000000..bd1b9c0996 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip differ diff --git a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-85beb7156f.zip b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-85beb7156f.zip deleted file mode 100644 index 2de90a27be..0000000000 Binary files a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-85beb7156f.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-ec3b72db0e.zip b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-ec3b72db0e.zip new file mode 100644 index 0000000000..34a356012e Binary files /dev/null and b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-ec3b72db0e.zip differ diff --git a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-b93e57912d.zip b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-b93e57912d.zip deleted file mode 100644 index f1744da535..0000000000 Binary files a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-b93e57912d.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-361a537bd6.zip b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-361a537bd6.zip new file mode 100644 index 0000000000..0ef6c31a37 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-361a537bd6.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6a029ae21c.zip b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6a029ae21c.zip deleted file mode 100644 index bf0c7b6790..0000000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6a029ae21c.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.12.1-727bec592a-5678ae02db.zip b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.12.1-727bec592a-5678ae02db.zip new file mode 100644 index 0000000000..3ed22347d9 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.12.1-727bec592a-5678ae02db.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-5da040e780.zip b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-5da040e780.zip deleted file mode 100644 index 7ddbb1ee21..0000000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-5da040e780.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.12.1-bbe22ad265-ec45bd50e8.zip b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.12.1-bbe22ad265-ec45bd50e8.zip new file mode 100644 index 0000000000..f7fe6004bf Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.12.1-bbe22ad265-ec45bd50e8.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-00f85d1f76.zip b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-00f85d1f76.zip deleted file mode 100644 index 63c068a03b..0000000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-00f85d1f76.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.12.1-450c932de6-21f25ae109.zip b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.12.1-450c932de6-21f25ae109.zip new file mode 100644 index 0000000000..2acb870f1d Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.12.1-450c932de6-21f25ae109.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-cc6de8f4d9.zip b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-cc6de8f4d9.zip deleted file mode 100644 index 7ed1ed71f4..0000000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-cc6de8f4d9.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.12.1-54a7a19806-f7311685b7.zip b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.12.1-54a7a19806-f7311685b7.zip new file mode 100644 index 0000000000..bef03f214c Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.12.1-54a7a19806-f7311685b7.zip differ diff --git a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-bd1cf7a063.zip b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-bd1cf7a063.zip deleted file mode 100644 index faf786d884..0000000000 Binary files a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-bd1cf7a063.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.12.1-e75655c7ff-1a6a4b6bc4.zip b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.12.1-e75655c7ff-1a6a4b6bc4.zip new file mode 100644 index 0000000000..a9fadd9588 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.12.1-e75655c7ff-1a6a4b6bc4.zip differ diff --git a/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-d61a8a1c1e.zip b/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-d61a8a1c1e.zip deleted file mode 100644 index f250bf3528..0000000000 Binary files a/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-d61a8a1c1e.zip and /dev/null differ diff --git a/.yarn/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-8bfbfbb6e2.zip b/.yarn/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-8bfbfbb6e2.zip new file mode 100644 index 0000000000..9a210b13db Binary files /dev/null and b/.yarn/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-8bfbfbb6e2.zip differ diff --git a/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip b/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip new file mode 100644 index 0000000000..2dddbcfdd1 Binary files /dev/null and b/.yarn/cache/acorn-npm-8.12.1-610871d57c-d08c2d122b.zip differ diff --git a/.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-6ed5f3f42f.zip b/.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-6ed5f3f42f.zip deleted file mode 100644 index f91e00e077..0000000000 Binary files a/.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-6ed5f3f42f.zip and /dev/null differ diff --git a/.yarn/cache/body-parser-npm-1.20.3-c7b184cd14-8723e3d7a6.zip b/.yarn/cache/body-parser-npm-1.20.3-c7b184cd14-8723e3d7a6.zip new file mode 100644 index 0000000000..20637461b0 Binary files /dev/null and b/.yarn/cache/body-parser-npm-1.20.3-c7b184cd14-8723e3d7a6.zip differ diff --git a/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip b/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip new file mode 100644 index 0000000000..d21d642f4c Binary files /dev/null and b/.yarn/cache/browserslist-npm-4.23.3-4e727c7b5b-e266d18c6c.zip differ diff --git a/.yarn/cache/bytes-npm-3.1.0-19c5b15405-7c3b21c5d9.zip b/.yarn/cache/bytes-npm-3.1.0-19c5b15405-7c3b21c5d9.zip deleted file mode 100644 index a459fadbe5..0000000000 Binary files a/.yarn/cache/bytes-npm-3.1.0-19c5b15405-7c3b21c5d9.zip and /dev/null differ diff --git a/.yarn/cache/bytes-npm-3.1.2-28b8643004-a10abf2ba7.zip b/.yarn/cache/bytes-npm-3.1.2-28b8643004-a10abf2ba7.zip new file mode 100644 index 0000000000..37db2fe4b7 Binary files /dev/null and b/.yarn/cache/bytes-npm-3.1.2-28b8643004-a10abf2ba7.zip differ diff --git a/.yarn/cache/caniuse-lite-npm-1.0.30001653-f5f1782475-cd9b1c0fe0.zip b/.yarn/cache/caniuse-lite-npm-1.0.30001653-f5f1782475-cd9b1c0fe0.zip new file mode 100644 index 0000000000..32907ffe79 Binary files /dev/null and b/.yarn/cache/caniuse-lite-npm-1.0.30001653-f5f1782475-cd9b1c0fe0.zip differ diff --git a/.yarn/cache/content-type-npm-1.0.5-3e037bf9ab-585847d98d.zip b/.yarn/cache/content-type-npm-1.0.5-3e037bf9ab-585847d98d.zip new file mode 100644 index 0000000000..55809c7162 Binary files /dev/null and b/.yarn/cache/content-type-npm-1.0.5-3e037bf9ab-585847d98d.zip differ diff --git a/.yarn/cache/cookie-npm-0.4.1-cc5e2ebb42-0f2defd60a.zip b/.yarn/cache/cookie-npm-0.4.1-cc5e2ebb42-0f2defd60a.zip deleted file mode 100644 index 2796ed2bc9..0000000000 Binary files a/.yarn/cache/cookie-npm-0.4.1-cc5e2ebb42-0f2defd60a.zip and /dev/null differ diff --git a/.yarn/cache/cookie-npm-0.7.1-f01524ff99-aec6a6aa07.zip b/.yarn/cache/cookie-npm-0.7.1-f01524ff99-aec6a6aa07.zip new file mode 100644 index 0000000000..26c6c93fd8 Binary files /dev/null and b/.yarn/cache/cookie-npm-0.7.1-f01524ff99-aec6a6aa07.zip differ diff --git a/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip b/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip deleted file mode 100644 index a4e9f77896..0000000000 Binary files a/.yarn/cache/depd-npm-1.1.2-b0c8414da7-2ed6966fc1.zip and /dev/null differ diff --git a/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip b/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip new file mode 100644 index 0000000000..3bc30ea4d8 Binary files /dev/null and b/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip differ diff --git a/.yarn/cache/electron-to-chromium-npm-1.5.13-be9902b49c-b3de6dbca6.zip b/.yarn/cache/electron-to-chromium-npm-1.5.13-be9902b49c-b3de6dbca6.zip new file mode 100644 index 0000000000..dfac92cfc1 Binary files /dev/null and b/.yarn/cache/electron-to-chromium-npm-1.5.13-be9902b49c-b3de6dbca6.zip differ diff --git a/.yarn/cache/enhanced-resolve-npm-5.17.1-296305b69f-e8e03cb7a4.zip b/.yarn/cache/enhanced-resolve-npm-5.17.1-296305b69f-e8e03cb7a4.zip new file mode 100644 index 0000000000..0f2dcc5c27 Binary files /dev/null and b/.yarn/cache/enhanced-resolve-npm-5.17.1-296305b69f-e8e03cb7a4.zip differ diff --git a/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-c3e39465d0.zip b/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-c3e39465d0.zip deleted file mode 100644 index d9f55de3c6..0000000000 Binary files a/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-c3e39465d0.zip and /dev/null differ diff --git a/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-f29c7c97a5.zip b/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-f29c7c97a5.zip new file mode 100644 index 0000000000..893d7007ba Binary files /dev/null and b/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-f29c7c97a5.zip differ diff --git a/.yarn/cache/escalade-npm-3.1.2-5826d31cf8-a1e07fea2f.zip b/.yarn/cache/escalade-npm-3.1.2-5826d31cf8-a1e07fea2f.zip new file mode 100644 index 0000000000..c59ddcfc09 Binary files /dev/null and b/.yarn/cache/escalade-npm-3.1.2-5826d31cf8-a1e07fea2f.zip differ diff --git a/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip b/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip new file mode 100644 index 0000000000..6243042771 Binary files /dev/null and b/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-bf152d0ed1.zip differ diff --git a/.yarn/cache/http-errors-npm-1.7.2-67163ae1df-cf8da344b1.zip b/.yarn/cache/http-errors-npm-1.7.2-67163ae1df-cf8da344b1.zip deleted file mode 100644 index 408a57291e..0000000000 Binary files a/.yarn/cache/http-errors-npm-1.7.2-67163ae1df-cf8da344b1.zip and /dev/null differ diff --git a/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip b/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip new file mode 100644 index 0000000000..aa9494e34d Binary files /dev/null and b/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-0e7f76ee8f.zip differ diff --git a/.yarn/cache/inherits-npm-2.0.3-401e64b080-8771303d66.zip b/.yarn/cache/inherits-npm-2.0.3-401e64b080-8771303d66.zip deleted file mode 100644 index 4c1ad083ce..0000000000 Binary files a/.yarn/cache/inherits-npm-2.0.3-401e64b080-8771303d66.zip and /dev/null differ diff --git a/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip b/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip new file mode 100644 index 0000000000..47073a11d2 Binary files /dev/null and b/.yarn/cache/node-releases-npm-2.0.18-51abc46668-241e5fa955.zip differ diff --git a/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip b/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip new file mode 100644 index 0000000000..2c02624576 Binary files /dev/null and b/.yarn/cache/on-finished-npm-2.4.1-907af70f88-8e81472c50.zip differ diff --git a/.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-45a01690f7.zip b/.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-45a01690f7.zip deleted file mode 100644 index ad2d8036af..0000000000 Binary files a/.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-45a01690f7.zip and /dev/null differ diff --git a/.yarn/cache/path-to-regexp-npm-1.9.0-723549d8d9-67f0f4823f.zip b/.yarn/cache/path-to-regexp-npm-1.9.0-723549d8d9-67f0f4823f.zip new file mode 100644 index 0000000000..f5b77bd000 Binary files /dev/null and b/.yarn/cache/path-to-regexp-npm-1.9.0-723549d8d9-67f0f4823f.zip differ diff --git a/.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip b/.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip new file mode 100644 index 0000000000..21041b39e9 Binary files /dev/null and b/.yarn/cache/picocolors-npm-1.0.1-39442f3da8-fa68166d1f.zip differ diff --git a/.yarn/cache/raw-body-npm-2.4.0-14d9d633af-aa2c506055.zip b/.yarn/cache/raw-body-npm-2.4.0-14d9d633af-aa2c506055.zip deleted file mode 100644 index a4cdebd776..0000000000 Binary files a/.yarn/cache/raw-body-npm-2.4.0-14d9d633af-aa2c506055.zip and /dev/null differ diff --git a/.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-863b5171e1.zip b/.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-863b5171e1.zip new file mode 100644 index 0000000000..1e3aceaded Binary files /dev/null and b/.yarn/cache/raw-body-npm-2.5.2-5cb9dfebc1-863b5171e1.zip differ diff --git a/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-2c7bbb1da9.zip b/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-2c7bbb1da9.zip new file mode 100644 index 0000000000..61388e5155 Binary files /dev/null and b/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-2c7bbb1da9.zip differ diff --git a/.yarn/cache/serialize-javascript-npm-6.0.2-cc09461d45-445a420a6f.zip b/.yarn/cache/serialize-javascript-npm-6.0.2-cc09461d45-445a420a6f.zip new file mode 100644 index 0000000000..7478beee20 Binary files /dev/null and b/.yarn/cache/serialize-javascript-npm-6.0.2-cc09461d45-445a420a6f.zip differ diff --git a/.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-b8fcf5b4b8.zip b/.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-b8fcf5b4b8.zip deleted file mode 100644 index 73ad3ae35a..0000000000 Binary files a/.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-b8fcf5b4b8.zip and /dev/null differ diff --git a/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip b/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip new file mode 100644 index 0000000000..ea426181ff Binary files /dev/null and b/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-fde1630422.zip differ diff --git a/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip b/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip new file mode 100644 index 0000000000..d54195d67f Binary files /dev/null and b/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip differ diff --git a/.yarn/cache/terser-npm-5.31.6-535b99d333-78057c5802.zip b/.yarn/cache/terser-npm-5.31.6-535b99d333-78057c5802.zip new file mode 100644 index 0000000000..55f76d05ce Binary files /dev/null and b/.yarn/cache/terser-npm-5.31.6-535b99d333-78057c5802.zip differ diff --git a/.yarn/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip b/.yarn/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip new file mode 100644 index 0000000000..d2b8871f54 Binary files /dev/null and b/.yarn/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-fb1c2436ae.zip differ diff --git a/.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-199e6bfca1.zip b/.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-199e6bfca1.zip deleted file mode 100644 index 27ee34cbcc..0000000000 Binary files a/.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-199e6bfca1.zip and /dev/null differ diff --git a/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip b/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip new file mode 100644 index 0000000000..595363e93b Binary files /dev/null and b/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip differ diff --git a/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip b/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip new file mode 100644 index 0000000000..068c0ccb74 Binary files /dev/null and b/.yarn/cache/update-browserslist-db-npm-1.1.0-3d2cb7d955-d70b9efeaf.zip differ diff --git a/.yarn/cache/watchpack-npm-2.4.0-7ec4b9cc65-4280b45bc4.zip b/.yarn/cache/watchpack-npm-2.4.0-7ec4b9cc65-4280b45bc4.zip deleted file mode 100644 index ef42a75c32..0000000000 Binary files a/.yarn/cache/watchpack-npm-2.4.0-7ec4b9cc65-4280b45bc4.zip and /dev/null differ diff --git a/.yarn/cache/watchpack-npm-2.4.2-3e587d5d5b-6bd4c051d9.zip b/.yarn/cache/watchpack-npm-2.4.2-3e587d5d5b-6bd4c051d9.zip new file mode 100644 index 0000000000..f5cc36805a Binary files /dev/null and b/.yarn/cache/watchpack-npm-2.4.2-3e587d5d5b-6bd4c051d9.zip differ diff --git a/.yarn/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip b/.yarn/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip deleted file mode 100644 index 2d5321e5fc..0000000000 Binary files a/.yarn/cache/webpack-npm-5.76.1-9aeb64c072-68010fc44a.zip and /dev/null differ diff --git a/.yarn/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip b/.yarn/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip new file mode 100644 index 0000000000..441f0ab80b Binary files /dev/null and b/.yarn/cache/webpack-npm-5.94.0-d1e43de389-648449c5fb.zip differ diff --git a/.yarnrc.yml b/.yarnrc.yml index 5023b0d81d..dd002648b0 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -14,8 +14,8 @@ npmAuditExcludePackages: - "@grpc/grpc-js" # TODO: Remove when gRPC stack is updated - "@humanwhocodes/config-array" # TODO: Update eslint - "@humanwhocodes/object-schema" # TODO: Update eslint - - elliptic # TODO: Update elliptic when fix for 1098397 is released - micromatch # TODO: remove when new micromatch will be released https://github.com/advisories/GHSA-952p-6rrq-rcjv + - eslint # TODO: Update eslint https://github.com/dashpay/platform/issues/2212 packageExtensions: "@dashevo/protobufjs@*": diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a720210b6..4972a7f5a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,378 @@ +## [1.4.0-dev.5](https://github.com/dashpay/platform/compare/v1.4.0-dev.4...v1.4.0-dev.5) (2024-10-07) + + +### ⚠ BREAKING CHANGES + +* **platform:** add owner keys to identities, fixed verification of use of owner keys (#2215) + +### Features + +* **dpp:** add a convenience method to get the public key data for a private key depending on the key type ([#2214](https://github.com/dashpay/platform/issues/2214)) +* **platform:** add owner keys to identities, fixed verification of use of owner keys ([#2215](https://github.com/dashpay/platform/issues/2215)) + +## [1.4.0-dev.4](https://github.com/dashpay/platform/compare/v1.4.0-dev.3...v1.4.0-dev.4) (2024-10-05) + + +### Features + +* **sdk:** enable withdrawals v1 in JS SDK ([#2201](https://github.com/dashpay/platform/issues/2201)) +* start network with latest version if genesis version not set ([#2206](https://github.com/dashpay/platform/issues/2206)) + + +### Bug Fixes + +* cookie accepts cookie name, path, and domain with out of bounds characters ([#2211](https://github.com/dashpay/platform/issues/2211)) +* **drive:** set sign height when rebroadcasting ([#2210](https://github.com/dashpay/platform/issues/2210)) +* **sdk:** small sdk improvements and fixes for v1.4 ([#2200](https://github.com/dashpay/platform/issues/2200)) + + +### Code Refactoring + +* **drive:** remove duplicated withdrawal amount validation ([#2191](https://github.com/dashpay/platform/issues/2191)) + + +### Miscellaneous Chores + +* bump GroveDB dependency ([#2196](https://github.com/dashpay/platform/issues/2196)) +* **drive:** improve withdrawal logging ([#2203](https://github.com/dashpay/platform/issues/2203)) +* **drive:** logs and metrics for withdrawal daily limit ([#2192](https://github.com/dashpay/platform/issues/2192)) +* **release:** replace colima with native docker in macOS builds ([#2188](https://github.com/dashpay/platform/issues/2188)) + + +### Tests + +* **test-suite:** enable withdrawal tests ([#2202](https://github.com/dashpay/platform/issues/2202)) + +## [1.4.0-dev.2](https://github.com/dashpay/platform/compare/v1.4.0-dev.1...v1.4.0-dev.2) (2024-09-30) + + +### ⚠ BREAKING CHANGES + +* **platform:** matched withdrawal fees to actual processing cost (#2186) +* **platform:** withdrawal automatic retries after core rejection (#2185) +* **platform:** withdrawal limits (#2182) + +### Features + +* **dashmate:** collect docker stats in the doctor command ([#2180](https://github.com/dashpay/platform/issues/2180)) +* **dashmate:** validate external IP ([#2183](https://github.com/dashpay/platform/issues/2183)) +* **platform:** matched withdrawal fees to actual processing cost ([#2186](https://github.com/dashpay/platform/issues/2186)) +* **platform:** withdrawal automatic retries after core rejection ([#2185](https://github.com/dashpay/platform/issues/2185)) +* **platform:** withdrawal limits ([#2182](https://github.com/dashpay/platform/issues/2182)) +* **sdk:** get node status ([#2139](https://github.com/dashpay/platform/issues/2139)) + + +### Build System + +* devcontainer support ([#2179](https://github.com/dashpay/platform/issues/2179)) + + +### Continuous Integration + +* prebuild dev containers ([#2184](https://github.com/dashpay/platform/issues/2184)) + +## [1.4.0-dev.1](https://github.com/dashpay/platform/compare/v1.3.0...v1.4.0-dev.1) (2024-09-27) + + +### ⚠ BREAKING CHANGES + +* **sdk:** change default network to mainnet (#2161) +* **dashmate:** confirm a node reset (#2160) +* **platform:** withdrawals polishing and fixes for mainnet (#2166) +* **platform:** do not switch to oldest quorums in validator set update (#2167) + +### Features + +* **dashmate:** confirm a node reset ([#2160](https://github.com/dashpay/platform/issues/2160)) +* **platform:** do not switch to oldest quorums in validator set update ([#2167](https://github.com/dashpay/platform/issues/2167)) +* **platform:** get current quorum info ([#2168](https://github.com/dashpay/platform/issues/2168)) +* **platform:** withdrawals polishing and fixes for mainnet ([#2166](https://github.com/dashpay/platform/issues/2166)) +* **sdk:** change default network to mainnet ([#2161](https://github.com/dashpay/platform/issues/2161)) + + +### Bug Fixes + +* **dapi:** getStatus cache invalidation ([#2155](https://github.com/dashpay/platform/issues/2155)) +* **dapi:** invalid mainnet seed ports ([#2173](https://github.com/dashpay/platform/issues/2173)) +* **dashmate:** cannot read properties of undefined (reading 'expires') ([#2164](https://github.com/dashpay/platform/issues/2164)) +* **dashmate:** colors[updated] is not a function ([#2157](https://github.com/dashpay/platform/issues/2157)) +* **dashmate:** doctor fails collecting to big logs ([#2158](https://github.com/dashpay/platform/issues/2158)) +* **dashmate:** port marks as closed if ipv6 is not disabled ([#2162](https://github.com/dashpay/platform/issues/2162)) +* **dashmate:** remove confusing short flag name ([#2165](https://github.com/dashpay/platform/issues/2165)) + + +### Continuous integration + +* build dashmate package on macos14 + + +### Documentation + +* **dashmate:** document logging configuration ([#2156](https://github.com/dashpay/platform/issues/2156)) + + +### Tests + +* **dashmate:** e2e tests failing due to DKG interval check ([#2171](https://github.com/dashpay/platform/issues/2171)) + + +### Miscellaneous Chores + +* **dashmate:** do not call mint on masternodes ([#2172](https://github.com/dashpay/platform/issues/2172)) +* **platform:** protocol version 4 creation ([#2153](https://github.com/dashpay/platform/issues/2153)) + + +## [1.3.0](https://github.com/dashpay/platform/compare/v1.2.0...v1.3.0) (2024-09-19) + +### Features + +* **platform:** query many identity balances at a time ([#2112](https://github.com/dashpay/platform/pull/2112)) +* **platform:** query block count per Evonode proposed in any given epoch ([#2114](https://github.com/dashpay/platform/pull/2114)) +* **platform:** contests on testnet/devnet/local should take less time ([#2115](https://github.com/dashpay/platform/pull/2115)) +* **dapi:** implement getIdentityBalance ([#2105](https://github.com/dashpay/platform/pull/2105)) +* **dashmate:** doctor diagnostic ([#2085](https://github.com/dashpay/platform/pull/2085)) +* **dashmate:** enhance core logging configuration ([#2121](https://github.com/dashpay/platform/pull/2121)) +* **platform:** support Tenderdash upgrade ([#2136](https://github.com/dashpay/platform/pull/2136)) + +### Bug Fixes + +* **sdk:** use proofs when waiting for asset lock ([#2067](https://github.com/dashpay/platform/pull/2067)) +* **platform:** contested username distribution ([#2118](https://github.com/dashpay/platform/pull/2118)) +* **drive-abci:** require 75 percent of active, not total hpmns ([#2127](https://github.com/dashpay/platform/pull/2127)) +* **drive-abci:** cleanup of later contests on testnet only ([#2134](https://github.com/dashpay/platform/pull/2134)) +* **platform:** contested username time fix ([#2137](https://github.com/dashpay/platform/pull/2137)) +* **dashmate:** invalid debug core log path ([#2143](https://github.com/dashpay/platform/pull/2143)) +* **tests:** fix upgrade tests because of 51% limit on v1 ([#2151](https://github.com/dashpay/platform/pull/2151)) +* **platform:** add limits to identity balances and proposed block counts queries ([#2148](https://github.com/dashpay/platform/pull/2148)) +* body-parser vulnerability ([#2119](https://github.com/dashpay/platform/pull/2119)) + +### Miscellaneous Chores + +* add change base branch script ([#2082](https://github.com/dashpay/platform/pull/2082)) +* emergency version upgrade to v1.3 Protocol Version 2 ([#2138](https://github.com/dashpay/platform/pull/2138)) +* disable config from testnet propagates network test ([#2149](https://github.com/dashpay/platform/pull/2149)) +* **js-sdk** connect to mainnet by default ([#2146](https://github.com/dashpay/platform/pull/2146)) + +### Build System + +* cache Rust dependencies build as a docker layer ([#1900](https://github.com/dashpay/platform/pull/1900)) +* **drive-abci:** debug docker image with grovedb visualizer and tokio console ([#2012](https://github.com/dashpay/platform/pull/2012)) +* **dashmate:** update tenderdash image to fix-wrong-proposer-at-round ([#2140](https://github.com/dashpay/platform/pull/2140)) +* bump rs-tenderdash-abci to 1.2.0+1.3.0 ([#2147](https://github.com/dashpay/platform/pull/2147)) + +### ⚠ BREAKING CHANGES + +* **platform:** contested username distribution ([#2118](https://github.com/dashpay/platform/pull/2118)) +* **platform:** contests on testnet/devnet/local should take less time ([#2115](https://github.com/dashpay/platform/pull/2115)) +* **dashmate:** docker logs rotation ([#2125](https://github.com/dashpay/platform/pull/2125)) + +**Full Changelog**: [https://github.com/dashpay/platform/compare/v1.2.0...v1.3.0](https://github.com/dashpay/platform/compare/v1.2.0...v1.3.0) + +## [1.3.0-dev.7](https://github.com/dashpay/platform/compare/v1.3.0-dev.6...v1.3.0-dev.7) (2024-09-18) + + +### Bug Fixes + +* **dashmate:** invalid debug core log path ([#2143](https://github.com/dashpay/platform/issues/2143)) + + +### Miscellaneous Chores + +* change Upgrade 4 Epochs Later ([#2144](https://github.com/dashpay/platform/issues/2144)) + +## [1.3.0-dev.6](https://github.com/dashpay/platform/compare/v1.3.0-dev.5...v1.3.0-dev.6) (2024-09-18) + + +### ⚠ BREAKING CHANGES + +* **platform:** support Tenderdash upgrade (#2136) +* **platform:** contested username time fix (#2137) +* **platform:** emergency version upgrade to v1.3 Protocol Version 2 (#2138) +* +### Bug Fixes + +* **platform:** contested username time fix ([#2137](https://github.com/dashpay/platform/issues/2137)) + +## [1.3.0-dev.5](https://github.com/dashpay/platform/compare/v1.3.0-dev.4...v1.3.0-dev.5) (2024-09-16) + + +### Bug Fixes + +* **drive-abci:** cleanup of later contests on testnet only ([#2134](https://github.com/dashpay/platform/issues/2134)) + +## [1.3.0-dev.4](https://github.com/dashpay/platform/compare/v1.3.0-dev.3...v1.3.0-dev.4) (2024-09-16) + + +### Bug Fixes + +* require75p of active not total hpmns ([#2129](https://github.com/dashpay/platform/issues/2129)) + +## [1.3.0-dev.3](https://github.com/dashpay/platform/compare/v1.3.0-dev.2...v1.3.0-dev.3) (2024-09-16) + + +### Bug Fixes + +* **drive-abci:** require 75 percent of active, not total hpmns ([#2127](https://github.com/dashpay/platform/issues/2127)) + +## [1.3.0-dev.2](https://github.com/dashpay/platform/compare/v1.3.0-dev.1...v1.3.0-dev.2) (2024-09-16) + + +### ⚠ BREAKING CHANGES + +* **platform:** contests on testnet should take less time (#2115) +* **platform:** contested username distribution (#2118) + +### Features + +* **platform:** contests on testnet should take less time ([#2115](https://github.com/dashpay/platform/issues/2115)) + + +### Bug Fixes + +* body-parser vulnerability ([#2119](https://github.com/dashpay/platform/issues/2119)) +* **platform:** contested username distribution ([#2118](https://github.com/dashpay/platform/issues/2118)) + + +### Miscellaneous Chores + +* **dashmate:** update platform images to `1-dev` ([#2120](https://github.com/dashpay/platform/issues/2120)) + + +### Styles + +* **dapi:** better api for identities balances ([#2122](https://github.com/dashpay/platform/issues/2122)) + +## [1.3.0-dev.1](https://github.com/dashpay/platform/compare/v1.2.0...v1.3.0-dev.1) (2024-09-12) + + +### Features + +* query block count per Evonode proposed in any given epoch ([#2114](https://github.com/dashpay/platform/issues/2114)) +* query many identity balances at a time ([#2112](https://github.com/dashpay/platform/issues/2112)) + + +### Bug Fixes + +* **sdk:** use proofs when waiting for asset lock ([#2067](https://github.com/dashpay/platform/issues/2067)) + + +### Build System + +* cache Rust dependencies build as a docker layer ([#1900](https://github.com/dashpay/platform/issues/1900)) +* **drive-abci:** debug docker image with grovedb visualizer and tokio console ([#2012](https://github.com/dashpay/platform/issues/2012)) + + +### Miscellaneous Chores + +* add change base branch script ([#2082](https://github.com/dashpay/platform/issues/2082)) +* creation of protocol V2 ([#2104](https://github.com/dashpay/platform/issues/2104)) + +## [1.2.0](https://github.com/dashpay/platform/compare/v1.1.1...v1.2.0) (2024-08-30) + + +### Features + +* **dapi:** serve even if tenderdash is not connected ([#2086](https://github.com/dashpay/platform/issues/2086)) +* **dashmate:** validate SSL certificate files ([#2089](https://github.com/dashpay/platform/issues/2089)) +* platform status endpoint ([#2088](https://github.com/dashpay/platform/issues/2088)) +* script to check which nodes are updated to v1.1 ([#2083](https://github.com/dashpay/platform/issues/2083)) + + +### Bug Fixes + +* **dashmate:** docker-compose version is obsolete ([#2073](https://github.com/dashpay/platform/issues/2073)) +* replay issue when round is 0 on replay. ([#2091](https://github.com/dashpay/platform/issues/2091)) +* security vulnerability in webpack ([#2090](https://github.com/dashpay/platform/issues/2090)) + + +### Miscellaneous Chores + +* **dashmate:** update tenderdash version ([#2093](https://github.com/dashpay/platform/issues/2093)) +* **dashmate:** update tenderdash version to 1.2.0 ([#2078](https://github.com/dashpay/platform/issues/2078)) +* update rust to 1.80 ([#2070](https://github.com/dashpay/platform/issues/2070)) + + + +## [1.2.0-rc.1](https://github.com/dashpay/platform/compare/v1.1.1...v1.2.0-rc.1) (2024-08-30) + + +### Features + +* **dapi:** serve even if tenderdash is not connected ([#2086](https://github.com/dashpay/platform/issues/2086)) +* **dashmate:** validate SSL certificate files ([#2089](https://github.com/dashpay/platform/issues/2089)) +* platform status endpoint ([#2088](https://github.com/dashpay/platform/issues/2088)) +* script to check which nodes are updated to v1.1 ([#2083](https://github.com/dashpay/platform/issues/2083)) + + +### Bug Fixes + +* **dashmate:** docker-compose version is obsolete ([#2073](https://github.com/dashpay/platform/issues/2073)) +* replay issue when round is 0 on replay. ([#2091](https://github.com/dashpay/platform/issues/2091)) +* security vulnerability in webpack ([#2090](https://github.com/dashpay/platform/issues/2090)) + + +### Miscellaneous Chores + +* **dashmate:** update tenderdash version ([#2093](https://github.com/dashpay/platform/issues/2093)) +* **dashmate:** update tenderdash version to 1.2.0 ([#2078](https://github.com/dashpay/platform/issues/2078)) +* update rust to 1.80 ([#2070](https://github.com/dashpay/platform/issues/2070)) + +### [1.1.1](https://github.com/dashpay/platform/compare/v1.1.0...v1.1.1) (2024-08-25) + + +### Features + +* **dashmate:** update testnet config ([#2079](https://github.com/dashpay/platform/issues/2079)) + + +### Miscellaneous Chores + +* **dashmate:** update tenderdash version to 1.2.0 ([#2078](https://github.com/dashpay/platform/issues/2078)) + + +## [1.1.0](https://github.com/dashpay/platform/compare/v1.1.0-dev.1...v1.1.0) (2024-08-24) + + +### ⚠ BREAKING CHANGES + +* **drive:** just in time fee update fixes (#2075) +* do not allow contested documents for the first three epochs (#2066) +* **drive-abci:** fix wrong fields in dash top level domain (#2065) +* **platform:** fix reference of items between epochs (#2064) +* **sdk:** mock sdk cannot find quorum keys in offline mode (#2061) +* **sdk:** overflow when using &&sdk in DapiRequestExecutor (#2060) + +### Features + +* **dashmate:** add `dashmate doctor` command ([#2024](https://github.com/dashpay/platform/issues/2024)) +* **dashmate:** compress doctor report and other improvements ([#2071](https://github.com/dashpay/platform/issues/2071)) +* **dashmate:** configure proposer and tx limits ([#2057](https://github.com/dashpay/platform/issues/2057)) +* **dpp:** function for getting enabled matching public keys in identities ([#2052](https://github.com/dashpay/platform/issues/2052)) +* where clauses recognize nested properties + + +### Bug Fixes + +* add back the matches on system properties +* **dapi:** getTotalCreditsOnPlatform missing parts ([#2059](https://github.com/dashpay/platform/issues/2059)) +* **dashmate:** core reindex command not working ([#2054](https://github.com/dashpay/platform/issues/2054)) +* **dashmate:** the reset platform command doesn't remove data ([#2053](https://github.com/dashpay/platform/issues/2053)) +* **drive-abci:** fix wrong fields in dash top level domain ([#2065](https://github.com/dashpay/platform/issues/2065)) +* **drive:** just in time fee update fixes ([#2075](https://github.com/dashpay/platform/issues/2075)) +* **platform:** fix reference of items between epochs ([#2064](https://github.com/dashpay/platform/issues/2064)) +* **sdk:** mock sdk cannot find quorum keys in offline mode ([#2061](https://github.com/dashpay/platform/issues/2061)) +* **sdk:** overflow when using &&sdk in DapiRequestExecutor ([#2060](https://github.com/dashpay/platform/issues/2060)) + + +### Code Refactoring + +* rename getTotalCreditsOnPlatform ([#2056](https://github.com/dashpay/platform/issues/2056)) + + +### Miscellaneous Chores + +* do not allow contested documents for the first three epochs ([#2066](https://github.com/dashpay/platform/issues/2066)) + ## [1.1.0-dev.1](https://github.com/dashpay/platform/compare/v1.0.2...v1.1.0-dev.1) (2024-08-13) @@ -552,14 +927,14 @@ There are multiple breaking changes that make previously created state invalid: * make strategy start identities a new struct ([#1764](https://github.com/dashpay/platform/issues/1764)) * updated descriptions and function names in strategy tests plus readme file ([#1785](https://github.com/dashpay/platform/issues/1785)) - + ### Miscellaneous Chores * **dashmate:** readme fixes ([#1624](https://github.com/dashpay/platform/issues/1624)) * fix npm audit for follow-redirects package ([#1781](https://github.com/dashpay/platform/issues/1781)) * **dapi:** use broadcast_tx instead of deprecated broadcast_tx_sync ([#1775](https://github.com/dashpay/platform/issues/1775)) - + ### Build System @@ -803,6 +1178,14 @@ There are multiple breaking changes that make previously created state invalid: * automatic clippy fixes ([#1528](https://github.com/dashpay/platform/issues/1528), [#1602](https://github.com/dashpay/platform/issues/1602)) + +### [0.25.22](https://github.com/dashpay/platform/compare/v0.25.21...v0.25.22) (2024-01-19) + + +### Bug Fixes + +* **dashmate:** dapi kills host machine on container stop ([#1670](https://github.com/dashpay/platform/issues/1670)) + ### [0.25.21](https://github.com/dashpay/platform/compare/v0.25.20...v0.25.21) (2023-12-28) diff --git a/Cargo.lock b/Cargo.lock index 5249f3ed14..3d147a6518 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,9 +218,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", @@ -266,6 +266,34 @@ dependencies = [ "paste", ] +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core 0.3.4", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "axum" version = "0.7.5" @@ -273,14 +301,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.4.3", "axum-macros", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-util", "itoa", "matchit", @@ -301,6 +329,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "axum-core" version = "0.4.3" @@ -310,8 +355,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -703,7 +748,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "check-features" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "toml", ] @@ -876,9 +921,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86ed14aa9c9f927213c6e4f3ef75faaad3406134efe84ba2cb7983431d5f0931" dependencies = [ "futures-core", - "prost", - "prost-types", - "tonic", + "prost 0.13.1", + "prost-types 0.13.1", + "tonic 0.12.1", "tracing-core", ] @@ -895,14 +940,14 @@ dependencies = [ "hdrhistogram", "humantime", "hyper-util", - "prost", - "prost-types", + "prost 0.13.1", + "prost-types 0.13.1", "serde", "serde_json", "thread_local", "tokio", "tokio-stream", - "tonic", + "tonic 0.12.1", "tracing", "tracing-core", "tracing-subscriber", @@ -1081,23 +1126,23 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "dapi-grpc-macros", "futures-core", "platform-version", - "prost", + "prost 0.13.1", "serde", "serde_bytes", "serde_json", "tenderdash-proto", - "tonic", - "tonic-build", + "tonic 0.12.1", + "tonic-build 0.12.1", ] [[package]] name = "dapi-grpc-macros" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "dapi-grpc", "heck 0.5.0", @@ -1142,7 +1187,7 @@ dependencies = [ [[package]] name = "dash-sdk" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "arc-swap", "async-trait", @@ -1163,7 +1208,7 @@ dependencies = [ "envy", "futures", "hex", - "http", + "http 1.1.0", "lru", "pollster", "rs-dapi-client", @@ -1242,7 +1287,7 @@ dependencies = [ [[package]] name = "dashpay-contract" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -1252,7 +1297,7 @@ dependencies = [ [[package]] name = "data-contracts" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "dashpay-contract", "dpns-contract", @@ -1267,9 +1312,9 @@ dependencies = [ [[package]] name = "delegate" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b" +checksum = "5060bb0febb73fa907273f8a7ed17ab4bf831d585eac835b28ec24a1e2460956" dependencies = [ "proc-macro2", "quote", @@ -1383,7 +1428,7 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dpns-contract" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -1393,7 +1438,7 @@ dependencies = [ [[package]] name = "dpp" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "anyhow", "assert_matches", @@ -1445,9 +1490,10 @@ dependencies = [ [[package]] name = "drive" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "arc-swap", + "assert_matches", "base64 0.22.1", "bincode", "bs58", @@ -1460,6 +1506,7 @@ dependencies = [ "enum-map", "grovedb", "grovedb-costs", + "grovedb-epoch-based-storage-flags", "grovedb-path", "grovedb-storage", "grovedb-version", @@ -1484,13 +1531,14 @@ dependencies = [ [[package]] name = "drive-abci" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "arc-swap", "assert_matches", "async-trait", "base64 0.22.1", "bincode", + "bs58", "chrono", "ciborium 0.2.0", "clap", @@ -1514,7 +1562,7 @@ dependencies = [ "metrics-exporter-prometheus", "mockall", "platform-version", - "prost", + "prost 0.13.1", "rand", "regex", "reopen", @@ -1538,7 +1586,7 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "bincode", "dapi-grpc", @@ -1765,7 +1813,7 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "feature-flags-contract" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -1998,10 +2046,11 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "grovedb" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d91e8f87926c834c7338d0c69a48816c043e0cddf0062a8a567483db2fb1e24" dependencies = [ - "axum", + "axum 0.7.5", "bincode", "bitvec", "blake3", @@ -2025,15 +2074,30 @@ dependencies = [ "tempfile", "thiserror", "tokio", + "tokio-util", "tower-http", "zip-extensions", ] [[package]] name = "grovedb-costs" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360f7c8d3b20beafcbf3cde8754bbcfd201ae2a30ec7594a4b9678fd2fa3c7a8" +dependencies = [ + "integer-encoding", + "intmap", + "thiserror", +] + +[[package]] +name = "grovedb-epoch-based-storage-flags" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acec1b6962d99d7b079c0fd1532cd3a2c83a3d659ffd9fcf02edda4599334bb4" dependencies = [ + "grovedb-costs", + "hex", "integer-encoding", "intmap", "thiserror", @@ -2041,8 +2105,9 @@ dependencies = [ [[package]] name = "grovedb-merk" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72057865f239fdd24f92eaa8668acc0d618da168f330546577a62eda1701210e" dependencies = [ "bincode", "blake3", @@ -2066,13 +2131,15 @@ dependencies = [ [[package]] name = "grovedb-path" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d96cc6106e5ca88e548d66f130b877b664da78be226dfdba555fc210f8508f4" [[package]] name = "grovedb-storage" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1c9b59bc9fa7123b8485f87f88a886dd109e7aff5f34a29a3812cb64eb897ff" dependencies = [ "blake3", "grovedb-costs", @@ -2090,8 +2157,9 @@ dependencies = [ [[package]] name = "grovedb-version" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4be0c1a1ef97068fe93212e7b6f349e0b44a9fc90063c8c28e110cfb8c2fcb2" dependencies = [ "thiserror", "versioned-feature-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2099,8 +2167,9 @@ dependencies = [ [[package]] name = "grovedb-visualize" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5865f4335eb99644512a7d80d6b1698ba1099a8268fdfd3ffb1a3a32dcb4af28" dependencies = [ "hex", "itertools 0.12.1", @@ -2108,13 +2177,33 @@ dependencies = [ [[package]] name = "grovedbg-types" -version = "1.0.0" -source = "git+https://github.com/dashpay/grovedb?rev=2c14841e95b4222d489f0655c85238bc05267b91#2c14841e95b4222d489f0655c85238bc05267b91" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921b9a29facf9d3f0de667cd1da083a34695ede9e7bfacd74bb5bd29f8f7c178" dependencies = [ "serde", "serde_with 3.9.0", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.4.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.6" @@ -2126,7 +2215,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.1.0", "indexmap 2.4.0", "slab", "tokio", @@ -2245,6 +2334,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -2256,6 +2356,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -2263,7 +2374,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -2274,8 +2385,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -2291,7 +2402,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" dependencies = [ - "http", + "http 1.1.0", "serde", ] @@ -2313,6 +2424,30 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.4.1" @@ -2322,9 +2457,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -2341,8 +2476,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", - "hyper", + "http 1.1.0", + "hyper 1.4.1", "hyper-util", "log", "rustls", @@ -2353,13 +2488,25 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.30", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "hyper-timeout" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper", + "hyper 1.4.1", "hyper-util", "pin-project-lite", "tokio", @@ -2374,7 +2521,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-util", "native-tls", "tokio", @@ -2391,9 +2538,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", "pin-project-lite", "socket2", "tokio", @@ -2583,7 +2730,7 @@ dependencies = [ [[package]] name = "json-schema-compatibility-validator" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "assert_matches", "json-patch", @@ -2741,7 +2888,7 @@ dependencies = [ [[package]] name = "masternode-reward-shares-contract" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "platform-value", "platform-version", @@ -2788,7 +2935,7 @@ checksum = "b4f0c8427b39666bf970460908b213ec09b3b350f20c0c2eabcbba51704a08e6" dependencies = [ "base64 0.22.1", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-rustls", "hyper-util", "indexmap 2.4.0", @@ -3328,7 +3475,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platform-serialization" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "bincode", "platform-version", @@ -3336,7 +3483,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "proc-macro2", "quote", @@ -3346,7 +3493,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "base64 0.22.1", "bincode", @@ -3367,7 +3514,7 @@ dependencies = [ [[package]] name = "platform-value-convertible" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "quote", "syn 2.0.75", @@ -3375,7 +3522,7 @@ dependencies = [ [[package]] name = "platform-version" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "bincode", "grovedb-version", @@ -3386,7 +3533,7 @@ dependencies = [ [[package]] name = "platform-versioning" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "proc-macro2", "quote", @@ -3476,9 +3623,9 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", "yansi", @@ -3545,6 +3692,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + [[package]] name = "prost" version = "0.13.1" @@ -3552,7 +3709,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.13.1", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.75", + "tempfile", ] [[package]] @@ -3569,13 +3747,26 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost", - "prost-types", + "prost 0.13.1", + "prost-types 0.13.1", "regex", "syn 2.0.75", "tempfile", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "prost-derive" version = "0.13.1" @@ -3589,13 +3780,22 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + [[package]] name = "prost-types" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2" dependencies = [ - "prost", + "prost 0.13.1", ] [[package]] @@ -3790,11 +3990,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-rustls", "hyper-tls", "hyper-util", @@ -3878,7 +4078,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "backon", "chrono", @@ -4167,9 +4367,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "b3b863381a05ffefbc82571a2d893edf47b27fb0ebedbf582c39640e51abebef" dependencies = [ "indexmap 2.4.0", "itoa", @@ -4347,7 +4547,7 @@ checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" [[package]] name = "simple-signer" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "base64 0.22.1", "bincode", @@ -4413,7 +4613,7 @@ dependencies = [ [[package]] name = "strategy-tests" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "bincode", "dpp", @@ -4582,13 +4782,14 @@ dependencies = [ [[package]] name = "tenderdash-abci" -version = "1.1.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?rev=662d28cde76b7c67cec03acc247263b1a6f87485#662d28cde76b7c67cec03acc247263b1a6f87485" +version = "1.2.0+1.3.0" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.2.0+1.3.0#79b1bcc141f8285fe9b5022f8288b4c49ddfbb0c" dependencies = [ "bytes", "futures", "hex", "lhash", + "prost 0.12.6", "semver", "serde_json", "tenderdash-proto", @@ -4603,33 +4804,33 @@ dependencies = [ [[package]] name = "tenderdash-proto" -version = "1.1.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?rev=662d28cde76b7c67cec03acc247263b1a6f87485#662d28cde76b7c67cec03acc247263b1a6f87485" +version = "1.2.0+1.3.0" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.2.0+1.3.0#79b1bcc141f8285fe9b5022f8288b4c49ddfbb0c" dependencies = [ "bytes", "chrono", - "derive_more 1.0.0", + "derive_more 0.99.18", "flex-error", "num-derive", "num-traits", - "prost", + "prost 0.12.6", "serde", "subtle-encoding", "tenderdash-proto-compiler", "time", - "tonic", + "tonic 0.11.0", ] [[package]] name = "tenderdash-proto-compiler" -version = "1.1.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?rev=662d28cde76b7c67cec03acc247263b1a6f87485#662d28cde76b7c67cec03acc247263b1a6f87485" +version = "1.2.0+1.3.0" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.2.0+1.3.0#79b1bcc141f8285fe9b5022f8288b4c49ddfbb0c" dependencies = [ "fs_extra", - "prost-build", + "prost-build 0.12.6", "regex", "tempfile", - "tonic-build", + "tonic-build 0.11.0", "ureq", "walkdir", "zip 2.2.0", @@ -4685,18 +4886,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -4771,9 +4972,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -4788,6 +4989,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.4.0" @@ -4846,9 +5057,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -4913,6 +5124,33 @@ dependencies = [ "winnow 0.6.18", ] +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum 0.6.20", + "base64 0.21.7", + "bytes", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-timeout 0.4.1", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tonic" version = "0.12.1" @@ -4921,19 +5159,19 @@ checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.7.5", "base64 0.22.1", "bytes", - "h2", - "http", - "http-body", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", - "hyper-timeout", + "hyper 1.4.1", + "hyper-timeout 0.5.1", "hyper-util", "percent-encoding", "pin-project", - "prost", + "prost 0.13.1", "rustls-native-certs", "rustls-pemfile", "socket2", @@ -4947,6 +5185,19 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build 0.12.6", + "quote", + "syn 2.0.75", +] + [[package]] name = "tonic-build" version = "0.12.1" @@ -4955,7 +5206,7 @@ checksum = "568392c5a2bd0020723e3f387891176aabafe36fd9fcd074ad309dfa0c8eb964" dependencies = [ "prettyplease", "proc-macro2", - "prost-build", + "prost-build 0.13.1", "quote", "syn 2.0.75", ] @@ -4988,8 +5239,8 @@ dependencies = [ "bitflags 2.6.0", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "http-range-header", "httpdate", @@ -5332,7 +5583,7 @@ checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" [[package]] name = "wasm-dpp" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "anyhow", "async-trait", @@ -5634,7 +5885,7 @@ dependencies = [ [[package]] name = "withdrawals-contract" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" dependencies = [ "num_enum 0.5.11", "platform-value", @@ -5656,9 +5907,9 @@ dependencies = [ [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "zerocopy" diff --git a/Dockerfile b/Dockerfile index fafa8b5f15..5039a062b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -154,9 +154,10 @@ FROM deps-${RUSTC_WRAPPER:-base} AS deps ARG SCCACHE_S3_KEY_PREFIX ENV SCCACHE_S3_KEY_PREFIX=${SCCACHE_S3_KEY_PREFIX}/${TARGETARCH}/linux-musl +WORKDIR /platform + # Install wasm-bindgen-cli in the same profile as other components, to sacrifice some performance & disk space to gain # better build caching -WORKDIR /platform RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \ --mount=type=cache,sharing=shared,id=cargo_registry_cache,target=${CARGO_HOME}/registry/cache \ --mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \ @@ -170,16 +171,16 @@ RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOM # Meanwhile if you want to update wasm-bindgen you also need to update version in: # - packages/wasm-dpp/Cargo.toml # - packages/wasm-dpp/scripts/build-wasm.sh - cargo install --profile "$CARGO_BUILD_PROFILE" wasm-bindgen-cli@0.2.86 + cargo install --profile "$CARGO_BUILD_PROFILE" wasm-bindgen-cli@0.2.86 cargo-chef@0.1.67 --locked # -# LOAD SOURCES +# Rust build planner to speed up builds # -FROM deps as sources - +FROM deps AS build-planner WORKDIR /platform - COPY . . +RUN source $HOME/.cargo/env && \ + cargo chef prepare --recipe-path recipe.json # Workaround: as we cache dapi-grpc, its build.rs is not rerun, so we need to touch it RUN touch /platform/packages/dapi-grpc/build.rs @@ -188,35 +189,90 @@ RUN touch /platform/packages/dapi-grpc/build.rs # STAGE: BUILD RS-DRIVE-ABCI # # This will prebuild majority of dependencies -FROM sources AS build-drive-abci +FROM deps AS build-drive-abci + +SHELL ["/bin/bash", "-o", "pipefail","-e", "-x", "-c"] ARG SCCACHE_S3_KEY_PREFIX ENV SCCACHE_S3_KEY_PREFIX=${SCCACHE_S3_KEY_PREFIX}/${TARGETARCH}/linux-musl +WORKDIR /platform + +COPY --from=build-planner /platform/recipe.json recipe.json + +# Build dependencies - this is the caching Docker layer! +RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \ + --mount=type=cache,sharing=shared,id=cargo_registry_cache,target=${CARGO_HOME}/registry/cache \ + --mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \ + --mount=type=cache,sharing=shared,id=target_${TARGETARCH},target=/platform/target \ + source $HOME/.cargo/env && \ + export SCCACHE_SERVER_PORT=$((RANDOM+1025)) && \ + if [[ -z "${SCCACHE_MEMCACHED}" ]] ; then unset SCCACHE_MEMCACHED ; fi ; \ + cargo chef cook \ + --recipe-path recipe.json \ + --profile "$CARGO_BUILD_PROFILE" \ + --package drive-abci \ + --locked && \ + if [[ "${RUSTC_WRAPPER}" == "sccache" ]] ; then sccache --show-stats; fi + +COPY . . + RUN mkdir /artifacts +# Build Drive ABCI RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \ --mount=type=cache,sharing=shared,id=cargo_registry_cache,target=${CARGO_HOME}/registry/cache \ --mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \ --mount=type=cache,sharing=shared,id=target_${TARGETARCH},target=/platform/target \ source $HOME/.cargo/env && \ export SCCACHE_SERVER_PORT=$((RANDOM+1025)) && \ + if [[ "${CARGO_BUILD_PROFILE}" == "release" ]] ; then \ + mv .cargo/config-release.toml .cargo/config.toml && \ + export OUT_DIRECTORY=release ; \ + else \ + export FEATURES_FLAG="--features=console,grovedbg" ; \ + export OUT_DIRECTORY=debug ; \ + + fi && \ if [[ -z "${SCCACHE_MEMCACHED}" ]] ; then unset SCCACHE_MEMCACHED ; fi ; \ cargo build \ - --profile "$CARGO_BUILD_PROFILE" \ + --profile "${CARGO_BUILD_PROFILE}" \ --package drive-abci \ + ${FEATURES_FLAG} \ --locked && \ - cp /platform/target/*/drive-abci /artifacts/ && \ + cp /platform/target/${OUT_DIRECTORY}/drive-abci /artifacts/ && \ if [[ "${RUSTC_WRAPPER}" == "sccache" ]] ; then sccache --show-stats; fi # # STAGE: BUILD JAVASCRIPT INTERMEDIATE IMAGE # -FROM sources AS build-js +FROM deps AS build-js ARG SCCACHE_S3_KEY_PREFIX ENV SCCACHE_S3_KEY_PREFIX=${SCCACHE_S3_KEY_PREFIX}/wasm/wasm32 +WORKDIR /platform + +COPY --from=build-planner /platform/recipe.json recipe.json + +# Build dependencies - this is the caching Docker layer! +RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \ + --mount=type=cache,sharing=shared,id=cargo_registry_cache,target=${CARGO_HOME}/registry/cache \ + --mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \ + --mount=type=cache,sharing=shared,id=target_${TARGETARCH},target=/platform/target \ + source $HOME/.cargo/env && \ + export SCCACHE_SERVER_PORT=$((RANDOM+1025)) && \ + if [[ -z "${SCCACHE_MEMCACHED}" ]] ; then unset SCCACHE_MEMCACHED ; fi ; \ + cargo chef cook \ + --recipe-path recipe.json \ + --profile "$CARGO_BUILD_PROFILE" \ + --package wasm-dpp \ + --target wasm32-unknown-unknown \ + --locked && \ + if [[ "${RUSTC_WRAPPER}" == "sccache" ]] ; then sccache --show-stats; fi + +COPY . . + RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOME}/registry/index \ --mount=type=cache,sharing=shared,id=cargo_registry_cache,target=${CARGO_HOME}/registry/cache \ --mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \ diff --git a/README.md b/README.md index 45689c393c..fd688fbc88 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ this repository may be used on the following networks: - [x] **Development networks** ([**devnets**](https://dashplatform.readme.io/docs/reference-glossary#devnet)) - [x] [**Testnet**](https://dashplatform.readme.io/docs/reference-glossary#testnet) -- [ ] [Mainnet](https://dashplatform.readme.io/docs/reference-glossary#mainnet) +- [x] [Mainnet](https://dashplatform.readme.io/docs/reference-glossary#mainnet) ## FAQ diff --git a/package.json b/package.json index 27ece170ae..71948e1ad3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/platform", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "private": true, "scripts": { "setup": "yarn install && yarn run build && yarn run configure", @@ -89,7 +89,10 @@ "node-gyp": "10.0.1", "follow-redirects": "^1.15.5", "socks": "^2.8.1", - "ws": "^8.17.1" + "ws": "^8.17.1", + "body-parser": "^1.20.3", + "path-to-regexp": "^1.9.0", + "cookie": "^0.7.0" }, "dependencies": { "node-gyp": "^10.0.1" diff --git a/packages/bench-suite/package.json b/packages/bench-suite/package.json index ed536f8cd4..3a823e438c 100644 --- a/packages/bench-suite/package.json +++ b/packages/bench-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/bench-suite", "private": true, - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Dash Platform benchmark tool", "scripts": { "bench": "node ./bin/bench.js", diff --git a/packages/check-features/Cargo.toml b/packages/check-features/Cargo.toml index 5df36ccaf8..7ca97f3972 100644 --- a/packages/check-features/Cargo.toml +++ b/packages/check-features/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "check-features" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/dapi-grpc/Cargo.toml b/packages/dapi-grpc/Cargo.toml index 82f27986b1..b55f9f489d 100644 --- a/packages/dapi-grpc/Cargo.toml +++ b/packages/dapi-grpc/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "dapi-grpc" description = "GRPC client for Dash Platform" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" authors = [ "Samuel Westrich ", "Igor Markin ", @@ -42,7 +42,7 @@ tonic = { version = "0.12", features = [ serde = { version = "1.0.197", optional = true, features = ["derive"] } serde_bytes = { version = "0.11.12", optional = true } serde_json = { version = "1.0", optional = true } -tenderdash-proto = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.1.0", tag = "v1.1.0", default-features = false, features = [ +tenderdash-proto = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.2.0+1.3.0", tag = "v1.2.0+1.3.0", default-features = false, features = [ "grpc", ] } dapi-grpc-macros = { path = "../rs-dapi-grpc-macros" } diff --git a/packages/dapi-grpc/build.rs b/packages/dapi-grpc/build.rs index 0b613a8c12..f70b685fbd 100644 --- a/packages/dapi-grpc/build.rs +++ b/packages/dapi-grpc/build.rs @@ -47,13 +47,14 @@ fn configure_platform(mut platform: MappingConfig) -> MappingConfig { // Derive features for versioned messages // // "GetConsensusParamsRequest" is excluded as this message does not support proofs - const VERSIONED_REQUESTS: [&str; 26] = [ + const VERSIONED_REQUESTS: [&str; 30] = [ "GetDataContractHistoryRequest", "GetDataContractRequest", "GetDataContractsRequest", "GetDocumentsRequest", "GetIdentitiesByPublicKeyHashesRequest", "GetIdentitiesRequest", + "GetIdentitiesBalancesRequest", "GetIdentityNonceRequest", "GetIdentityContractNonceRequest", "GetIdentityBalanceAndRevisionRequest", @@ -74,16 +75,24 @@ fn configure_platform(mut platform: MappingConfig) -> MappingConfig { "GetContestedResourceIdentityVotesRequest", "GetVotePollsByEndDateRequest", "GetTotalCreditsInPlatformRequest", + "GetEvonodesProposedEpochBlocksByIdsRequest", + "GetEvonodesProposedEpochBlocksByRangeRequest", + "GetStatusRequest", ]; - // "GetConsensusParamsResponse" is excluded as this message does not support proofs - const VERSIONED_RESPONSES: [&str; 27] = [ + // The following responses are excluded as they don't support proofs: + // - "GetConsensusParamsResponse" + // - "GetStatusResponse" + // + // "GetEvonodesProposedEpochBlocksResponse" is used for 2 Requests + const VERSIONED_RESPONSES: [&str; 29] = [ "GetDataContractHistoryResponse", "GetDataContractResponse", "GetDataContractsResponse", "GetDocumentsResponse", "GetIdentitiesByPublicKeyHashesResponse", "GetIdentitiesResponse", + "GetIdentitiesBalancesResponse", "GetIdentityBalanceAndRevisionResponse", "GetIdentityBalanceResponse", "GetIdentityNonceResponse", @@ -105,6 +114,7 @@ fn configure_platform(mut platform: MappingConfig) -> MappingConfig { "GetContestedResourceIdentityVotesResponse", "GetVotePollsByEndDateResponse", "GetTotalCreditsInPlatformResponse", + "GetEvonodesProposedEpochBlocksResponse", ]; check_unique(&VERSIONED_REQUESTS).expect("VERSIONED_REQUESTS"); @@ -207,6 +217,7 @@ impl MappingConfig { /// /// * `protobuf_file` - Path to the protobuf file to use as input. /// * `out_dir` - Output directory where subdirectories for generated files will be created. + /// /// Depending on the features, either `client`, `server` or `client_server` subdirectory /// will be created inside `out_dir`. fn new(protobuf_file: PathBuf, out_dir: PathBuf) -> Self { 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 908976e250..26cf1818f9 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 @@ -232,6 +232,37 @@ org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceResponse> getGetI return getGetIdentityBalanceMethod; } + private static volatile io.grpc.MethodDescriptor getGetIdentitiesBalancesMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "getIdentitiesBalances", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetIdentitiesBalancesMethod() { + io.grpc.MethodDescriptor getGetIdentitiesBalancesMethod; + if ((getGetIdentitiesBalancesMethod = PlatformGrpc.getGetIdentitiesBalancesMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getGetIdentitiesBalancesMethod = PlatformGrpc.getGetIdentitiesBalancesMethod) == null) { + PlatformGrpc.getGetIdentitiesBalancesMethod = getGetIdentitiesBalancesMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getIdentitiesBalances")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("getIdentitiesBalances")) + .build(); + } + } + } + return getGetIdentitiesBalancesMethod; + } + private static volatile io.grpc.MethodDescriptor getGetIdentityBalanceAndRevisionMethod; @@ -263,6 +294,68 @@ org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRespon return getGetIdentityBalanceAndRevisionMethod; } + private static volatile io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByIdsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "getEvonodesProposedEpochBlocksByIds", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByIdsMethod() { + io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByIdsMethod; + if ((getGetEvonodesProposedEpochBlocksByIdsMethod = PlatformGrpc.getGetEvonodesProposedEpochBlocksByIdsMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getGetEvonodesProposedEpochBlocksByIdsMethod = PlatformGrpc.getGetEvonodesProposedEpochBlocksByIdsMethod) == null) { + PlatformGrpc.getGetEvonodesProposedEpochBlocksByIdsMethod = getGetEvonodesProposedEpochBlocksByIdsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getEvonodesProposedEpochBlocksByIds")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("getEvonodesProposedEpochBlocksByIds")) + .build(); + } + } + } + return getGetEvonodesProposedEpochBlocksByIdsMethod; + } + + private static volatile io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByRangeMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "getEvonodesProposedEpochBlocksByRange", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByRangeMethod() { + io.grpc.MethodDescriptor getGetEvonodesProposedEpochBlocksByRangeMethod; + if ((getGetEvonodesProposedEpochBlocksByRangeMethod = PlatformGrpc.getGetEvonodesProposedEpochBlocksByRangeMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getGetEvonodesProposedEpochBlocksByRangeMethod = PlatformGrpc.getGetEvonodesProposedEpochBlocksByRangeMethod) == null) { + PlatformGrpc.getGetEvonodesProposedEpochBlocksByRangeMethod = getGetEvonodesProposedEpochBlocksByRangeMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getEvonodesProposedEpochBlocksByRange")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("getEvonodesProposedEpochBlocksByRange")) + .build(); + } + } + } + return getGetEvonodesProposedEpochBlocksByRangeMethod; + } + private static volatile io.grpc.MethodDescriptor getGetProofsMethod; @@ -852,6 +945,68 @@ org.dash.platform.dapi.v0.PlatformOuterClass.GetPathElementsResponse> getGetPath return getGetPathElementsMethod; } + private static volatile io.grpc.MethodDescriptor getGetStatusMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "getStatus", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetStatusMethod() { + io.grpc.MethodDescriptor getGetStatusMethod; + if ((getGetStatusMethod = PlatformGrpc.getGetStatusMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getGetStatusMethod = PlatformGrpc.getGetStatusMethod) == null) { + PlatformGrpc.getGetStatusMethod = getGetStatusMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getStatus")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("getStatus")) + .build(); + } + } + } + return getGetStatusMethod; + } + + private static volatile io.grpc.MethodDescriptor getGetCurrentQuorumsInfoMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "getCurrentQuorumsInfo", + requestType = org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest.class, + responseType = org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetCurrentQuorumsInfoMethod() { + io.grpc.MethodDescriptor getGetCurrentQuorumsInfoMethod; + if ((getGetCurrentQuorumsInfoMethod = PlatformGrpc.getGetCurrentQuorumsInfoMethod) == null) { + synchronized (PlatformGrpc.class) { + if ((getGetCurrentQuorumsInfoMethod = PlatformGrpc.getGetCurrentQuorumsInfoMethod) == null) { + PlatformGrpc.getGetCurrentQuorumsInfoMethod = getGetCurrentQuorumsInfoMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "getCurrentQuorumsInfo")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoResponse.getDefaultInstance())) + .setSchemaDescriptor(new PlatformMethodDescriptorSupplier("getCurrentQuorumsInfo")) + .build(); + } + } + } + return getGetCurrentQuorumsInfoMethod; + } + /** * Creates a new async stub that supports all call types for the service */ @@ -949,6 +1104,13 @@ public void getIdentityBalance(org.dash.platform.dapi.v0.PlatformOuterClass.GetI io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetIdentityBalanceMethod(), responseObserver); } + /** + */ + public void getIdentitiesBalances(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetIdentitiesBalancesMethod(), responseObserver); + } + /** */ public void getIdentityBalanceAndRevision(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRequest request, @@ -956,6 +1118,20 @@ public void getIdentityBalanceAndRevision(org.dash.platform.dapi.v0.PlatformOute io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetIdentityBalanceAndRevisionMethod(), responseObserver); } + /** + */ + public void getEvonodesProposedEpochBlocksByIds(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetEvonodesProposedEpochBlocksByIdsMethod(), responseObserver); + } + + /** + */ + public void getEvonodesProposedEpochBlocksByRange(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetEvonodesProposedEpochBlocksByRangeMethod(), responseObserver); + } + /** */ public void getProofs(org.dash.platform.dapi.v0.PlatformOuterClass.GetProofsRequest request, @@ -1104,6 +1280,20 @@ public void getPathElements(org.dash.platform.dapi.v0.PlatformOuterClass.GetPath io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetPathElementsMethod(), responseObserver); } + /** + */ + public void getStatus(org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetStatusMethod(), responseObserver); + } + + /** + */ + public void getCurrentQuorumsInfo(org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetCurrentQuorumsInfoMethod(), responseObserver); + } + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) .addMethod( @@ -1155,6 +1345,13 @@ public void getPathElements(org.dash.platform.dapi.v0.PlatformOuterClass.GetPath org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceRequest, org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceResponse>( this, METHODID_GET_IDENTITY_BALANCE))) + .addMethod( + getGetIdentitiesBalancesMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesResponse>( + this, METHODID_GET_IDENTITIES_BALANCES))) .addMethod( getGetIdentityBalanceAndRevisionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall( @@ -1162,6 +1359,20 @@ public void getPathElements(org.dash.platform.dapi.v0.PlatformOuterClass.GetPath org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRequest, org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionResponse>( this, METHODID_GET_IDENTITY_BALANCE_AND_REVISION))) + .addMethod( + getGetEvonodesProposedEpochBlocksByIdsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse>( + this, METHODID_GET_EVONODES_PROPOSED_EPOCH_BLOCKS_BY_IDS))) + .addMethod( + getGetEvonodesProposedEpochBlocksByRangeMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse>( + this, METHODID_GET_EVONODES_PROPOSED_EPOCH_BLOCKS_BY_RANGE))) .addMethod( getGetProofsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall( @@ -1295,6 +1506,20 @@ public void getPathElements(org.dash.platform.dapi.v0.PlatformOuterClass.GetPath org.dash.platform.dapi.v0.PlatformOuterClass.GetPathElementsRequest, org.dash.platform.dapi.v0.PlatformOuterClass.GetPathElementsResponse>( this, METHODID_GET_PATH_ELEMENTS))) + .addMethod( + getGetStatusMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusResponse>( + this, METHODID_GET_STATUS))) + .addMethod( + getGetCurrentQuorumsInfoMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest, + org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoResponse>( + this, METHODID_GET_CURRENT_QUORUMS_INFO))) .build(); } } @@ -1369,6 +1594,14 @@ public void getIdentityBalance(org.dash.platform.dapi.v0.PlatformOuterClass.GetI getChannel().newCall(getGetIdentityBalanceMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void getIdentitiesBalances(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetIdentitiesBalancesMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void getIdentityBalanceAndRevision(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRequest request, @@ -1377,6 +1610,22 @@ public void getIdentityBalanceAndRevision(org.dash.platform.dapi.v0.PlatformOute getChannel().newCall(getGetIdentityBalanceAndRevisionMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void getEvonodesProposedEpochBlocksByIds(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetEvonodesProposedEpochBlocksByIdsMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getEvonodesProposedEpochBlocksByRange(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetEvonodesProposedEpochBlocksByRangeMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void getProofs(org.dash.platform.dapi.v0.PlatformOuterClass.GetProofsRequest request, @@ -1543,6 +1792,22 @@ public void getPathElements(org.dash.platform.dapi.v0.PlatformOuterClass.GetPath io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetPathElementsMethod(), getCallOptions()), request, responseObserver); } + + /** + */ + public void getStatus(org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetStatusMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getCurrentQuorumsInfo(org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetCurrentQuorumsInfoMethod(), getCallOptions()), request, responseObserver); + } } /** @@ -1608,6 +1873,13 @@ public org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceResponse g getChannel(), getGetIdentityBalanceMethod(), getCallOptions(), request); } + /** + */ + public org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesResponse getIdentitiesBalances(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetIdentitiesBalancesMethod(), getCallOptions(), request); + } + /** */ public org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionResponse getIdentityBalanceAndRevision(org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRequest request) { @@ -1615,6 +1887,20 @@ public org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisio getChannel(), getGetIdentityBalanceAndRevisionMethod(), getCallOptions(), request); } + /** + */ + public org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse getEvonodesProposedEpochBlocksByIds(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetEvonodesProposedEpochBlocksByIdsMethod(), getCallOptions(), request); + } + + /** + */ + public org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksResponse getEvonodesProposedEpochBlocksByRange(org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetEvonodesProposedEpochBlocksByRangeMethod(), getCallOptions(), request); + } + /** */ public org.dash.platform.dapi.v0.PlatformOuterClass.GetProofsResponse getProofs(org.dash.platform.dapi.v0.PlatformOuterClass.GetProofsRequest request) { @@ -1762,6 +2048,20 @@ public org.dash.platform.dapi.v0.PlatformOuterClass.GetPathElementsResponse getP return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetPathElementsMethod(), getCallOptions(), request); } + + /** + */ + public org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusResponse getStatus(org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetStatusMethod(), getCallOptions(), request); + } + + /** + */ + public org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoResponse getCurrentQuorumsInfo(org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetCurrentQuorumsInfoMethod(), getCallOptions(), request); + } } /** @@ -1834,6 +2134,14 @@ public com.google.common.util.concurrent.ListenableFuture getIdentitiesBalances( + org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetIdentitiesBalancesMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture getIdentityBalanceAndRevision( @@ -1842,6 +2150,22 @@ public com.google.common.util.concurrent.ListenableFuture getEvonodesProposedEpochBlocksByIds( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetEvonodesProposedEpochBlocksByIdsMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture getEvonodesProposedEpochBlocksByRange( + org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetEvonodesProposedEpochBlocksByRangeMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture getProofs( @@ -2008,6 +2332,22 @@ public com.google.common.util.concurrent.ListenableFuture getStatus( + org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetStatusMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture getCurrentQuorumsInfo( + org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetCurrentQuorumsInfoMethod(), getCallOptions()), request); + } } private static final int METHODID_BROADCAST_STATE_TRANSITION = 0; @@ -2017,26 +2357,31 @@ public com.google.common.util.concurrent.ListenableFuture implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -2083,10 +2428,22 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv serviceImpl.getIdentityBalance((org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_GET_IDENTITIES_BALANCES: + serviceImpl.getIdentitiesBalances((org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentitiesBalancesRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; case METHODID_GET_IDENTITY_BALANCE_AND_REVISION: serviceImpl.getIdentityBalanceAndRevision((org.dash.platform.dapi.v0.PlatformOuterClass.GetIdentityBalanceAndRevisionRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_GET_EVONODES_PROPOSED_EPOCH_BLOCKS_BY_IDS: + serviceImpl.getEvonodesProposedEpochBlocksByIds((org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByIdsRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_GET_EVONODES_PROPOSED_EPOCH_BLOCKS_BY_RANGE: + serviceImpl.getEvonodesProposedEpochBlocksByRange((org.dash.platform.dapi.v0.PlatformOuterClass.GetEvonodesProposedEpochBlocksByRangeRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; case METHODID_GET_PROOFS: serviceImpl.getProofs((org.dash.platform.dapi.v0.PlatformOuterClass.GetProofsRequest) request, (io.grpc.stub.StreamObserver) responseObserver); @@ -2163,6 +2520,14 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv serviceImpl.getPathElements((org.dash.platform.dapi.v0.PlatformOuterClass.GetPathElementsRequest) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_GET_STATUS: + serviceImpl.getStatus((org.dash.platform.dapi.v0.PlatformOuterClass.GetStatusRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_GET_CURRENT_QUORUMS_INFO: + serviceImpl.getCurrentQuorumsInfo((org.dash.platform.dapi.v0.PlatformOuterClass.GetCurrentQuorumsInfoRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; default: throw new AssertionError(); } @@ -2231,7 +2596,10 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getGetIdentityNonceMethod()) .addMethod(getGetIdentityContractNonceMethod()) .addMethod(getGetIdentityBalanceMethod()) + .addMethod(getGetIdentitiesBalancesMethod()) .addMethod(getGetIdentityBalanceAndRevisionMethod()) + .addMethod(getGetEvonodesProposedEpochBlocksByIdsMethod()) + .addMethod(getGetEvonodesProposedEpochBlocksByRangeMethod()) .addMethod(getGetProofsMethod()) .addMethod(getGetDataContractMethod()) .addMethod(getGetDataContractHistoryMethod()) @@ -2251,6 +2619,8 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getGetPrefundedSpecializedBalanceMethod()) .addMethod(getGetTotalCreditsInPlatformMethod()) .addMethod(getGetPathElementsMethod()) + .addMethod(getGetStatusMethod()) + .addMethod(getGetCurrentQuorumsInfoMethod()) .build(); } } diff --git a/packages/dapi-grpc/clients/platform/v0/nodejs/PlatformPromiseClient.js b/packages/dapi-grpc/clients/platform/v0/nodejs/PlatformPromiseClient.js index e7606a52bc..a6190b4ac7 100644 --- a/packages/dapi-grpc/clients/platform/v0/nodejs/PlatformPromiseClient.js +++ b/packages/dapi-grpc/clients/platform/v0/nodejs/PlatformPromiseClient.js @@ -60,6 +60,10 @@ const { GetIdentityKeysResponse: PBJSGetIdentityKeysResponse, GetTotalCreditsInPlatformRequest: PBJSGetTotalCreditsInPlatformRequest, GetTotalCreditsInPlatformResponse: PBJSGetTotalCreditsInPlatformResponse, + GetStatusRequest: PBJSGetStatusRequest, + GetStatusResponse: PBJSGetStatusResponse, + GetIdentityBalanceRequest: PBJSGetIdentityBalanceRequest, + GetIdentityBalanceResponse: PBJSGetIdentityBalanceResponse, }, }, }, @@ -85,6 +89,8 @@ const { GetIdentityNonceResponse: ProtocGetIdentityNonceResponse, GetIdentityKeysResponse: ProtocGetIdentityKeysResponse, GetTotalCreditsInPlatformResponse: ProtocGetTotalCreditsInPlatformResponse, + GetStatusResponse: ProtocGetStatusResponse, + GetIdentityBalanceResponse: ProtocGetIdentityBalanceResponse, } = require('./platform_protoc'); const getPlatformDefinition = require('../../../../lib/getPlatformDefinition'); @@ -179,6 +185,14 @@ class PlatformPromiseClient { this.client.getTotalCreditsInPlatform.bind(this.client), ); + this.client.getStatus = promisify( + this.client.getStatus.bind(this.client), + ); + + this.client.getIdentityBalance = promisify( + this.client.getIdentityBalance.bind(this.client), + ); + this.protocolVersion = undefined; } @@ -726,6 +740,64 @@ class PlatformPromiseClient { ); } + getStatus( + getStatusRequest, + metadata = {}, + options = {}, + ) { + if (!isObject(metadata)) { + throw new Error('metadata must be an object'); + } + + return this.client.getStatus( + getStatusRequest, + convertObjectToMetadata(metadata), + { + interceptors: [ + jsonToProtobufInterceptorFactory( + jsonToProtobufFactory( + ProtocGetStatusResponse, + PBJSGetStatusResponse, + ), + protobufToJsonFactory( + PBJSGetStatusRequest, + ), + ), + ], + ...options, + }, + ); + } + + getIdentityBalance( + getIdentityBalanceRequest, + metadata = {}, + options = {}, + ) { + if (!isObject(metadata)) { + throw new Error('metadata must be an object'); + } + + return this.client.getIdentityBalance( + getIdentityBalanceRequest, + convertObjectToMetadata(metadata), + { + interceptors: [ + jsonToProtobufInterceptorFactory( + jsonToProtobufFactory( + ProtocGetIdentityBalanceResponse, + PBJSGetIdentityBalanceResponse, + ), + protobufToJsonFactory( + PBJSGetIdentityBalanceRequest, + ), + ), + ], + ...options, + }, + ); + } + /** * @param {string} protocolVersion */ 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 d01a3839fe..1818a68889 100644 --- a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js +++ b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_pbjs.js @@ -317,6 +317,39 @@ $root.org = (function() { * @variation 2 */ + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getIdentitiesBalances}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef getIdentitiesBalancesCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} [response] GetIdentitiesBalancesResponse + */ + + /** + * Calls getIdentitiesBalances. + * @function getIdentitiesBalances + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest} request GetIdentitiesBalancesRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.getIdentitiesBalancesCallback} callback Node-style callback called with the error, if any, and GetIdentitiesBalancesResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.getIdentitiesBalances = function getIdentitiesBalances(request, callback) { + return this.rpcCall(getIdentitiesBalances, $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest, $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse, request, callback); + }, "name", { value: "getIdentitiesBalances" }); + + /** + * Calls getIdentitiesBalances. + * @function getIdentitiesBalances + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest} request GetIdentitiesBalancesRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getIdentityBalanceAndRevision}. * @memberof org.dash.platform.dapi.v0.Platform @@ -350,6 +383,72 @@ $root.org = (function() { * @variation 2 */ + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getEvonodesProposedEpochBlocksByIds}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef getEvonodesProposedEpochBlocksByIdsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} [response] GetEvonodesProposedEpochBlocksResponse + */ + + /** + * Calls getEvonodesProposedEpochBlocksByIds. + * @function getEvonodesProposedEpochBlocksByIds + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest} request GetEvonodesProposedEpochBlocksByIdsRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.getEvonodesProposedEpochBlocksByIdsCallback} callback Node-style callback called with the error, if any, and GetEvonodesProposedEpochBlocksResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.getEvonodesProposedEpochBlocksByIds = function getEvonodesProposedEpochBlocksByIds(request, callback) { + return this.rpcCall(getEvonodesProposedEpochBlocksByIds, $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest, $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse, request, callback); + }, "name", { value: "getEvonodesProposedEpochBlocksByIds" }); + + /** + * Calls getEvonodesProposedEpochBlocksByIds. + * @function getEvonodesProposedEpochBlocksByIds + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest} request GetEvonodesProposedEpochBlocksByIdsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getEvonodesProposedEpochBlocksByRange}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef getEvonodesProposedEpochBlocksByRangeCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} [response] GetEvonodesProposedEpochBlocksResponse + */ + + /** + * Calls getEvonodesProposedEpochBlocksByRange. + * @function getEvonodesProposedEpochBlocksByRange + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest} request GetEvonodesProposedEpochBlocksByRangeRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.getEvonodesProposedEpochBlocksByRangeCallback} callback Node-style callback called with the error, if any, and GetEvonodesProposedEpochBlocksResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.getEvonodesProposedEpochBlocksByRange = function getEvonodesProposedEpochBlocksByRange(request, callback) { + return this.rpcCall(getEvonodesProposedEpochBlocksByRange, $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest, $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse, request, callback); + }, "name", { value: "getEvonodesProposedEpochBlocksByRange" }); + + /** + * Calls getEvonodesProposedEpochBlocksByRange. + * @function getEvonodesProposedEpochBlocksByRange + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest} request GetEvonodesProposedEpochBlocksByRangeRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getProofs}. * @memberof org.dash.platform.dapi.v0.Platform @@ -977,6 +1076,72 @@ $root.org = (function() { * @variation 2 */ + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getStatus}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef getStatusCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.GetStatusResponse} [response] GetStatusResponse + */ + + /** + * Calls getStatus. + * @function getStatus + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetStatusRequest} request GetStatusRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.getStatusCallback} callback Node-style callback called with the error, if any, and GetStatusResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.getStatus = function getStatus(request, callback) { + return this.rpcCall(getStatus, $root.org.dash.platform.dapi.v0.GetStatusRequest, $root.org.dash.platform.dapi.v0.GetStatusResponse, request, callback); + }, "name", { value: "getStatus" }); + + /** + * Calls getStatus. + * @function getStatus + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetStatusRequest} request GetStatusRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link org.dash.platform.dapi.v0.Platform#getCurrentQuorumsInfo}. + * @memberof org.dash.platform.dapi.v0.Platform + * @typedef getCurrentQuorumsInfoCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} [response] GetCurrentQuorumsInfoResponse + */ + + /** + * Calls getCurrentQuorumsInfo. + * @function getCurrentQuorumsInfo + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest} request GetCurrentQuorumsInfoRequest message or plain object + * @param {org.dash.platform.dapi.v0.Platform.getCurrentQuorumsInfoCallback} callback Node-style callback called with the error, if any, and GetCurrentQuorumsInfoResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Platform.prototype.getCurrentQuorumsInfo = function getCurrentQuorumsInfo(request, callback) { + return this.rpcCall(getCurrentQuorumsInfo, $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest, $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse, request, callback); + }, "name", { value: "getCurrentQuorumsInfo" }); + + /** + * Calls getCurrentQuorumsInfo. + * @function getCurrentQuorumsInfo + * @memberof org.dash.platform.dapi.v0.Platform + * @instance + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest} request GetCurrentQuorumsInfoRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return Platform; })(); @@ -11202,24 +11367,24 @@ $root.org = (function() { return GetIdentitiesContractKeysResponse; })(); - v0.GetProofsRequest = (function() { + v0.GetEvonodesProposedEpochBlocksByIdsRequest = (function() { /** - * Properties of a GetProofsRequest. + * Properties of a GetEvonodesProposedEpochBlocksByIdsRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetProofsRequest - * @property {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0|null} [v0] GetProofsRequest v0 + * @interface IGetEvonodesProposedEpochBlocksByIdsRequest + * @property {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0|null} [v0] GetEvonodesProposedEpochBlocksByIdsRequest v0 */ /** - * Constructs a new GetProofsRequest. + * Constructs a new GetEvonodesProposedEpochBlocksByIdsRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProofsRequest. - * @implements IGetProofsRequest + * @classdesc Represents a GetEvonodesProposedEpochBlocksByIdsRequest. + * @implements IGetEvonodesProposedEpochBlocksByIdsRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetProofsRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest=} [properties] Properties to set */ - function GetProofsRequest(properties) { + function GetEvonodesProposedEpochBlocksByIdsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11227,89 +11392,89 @@ $root.org = (function() { } /** - * GetProofsRequest v0. - * @member {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * GetEvonodesProposedEpochBlocksByIdsRequest v0. + * @member {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @instance */ - GetProofsRequest.prototype.v0 = null; + GetEvonodesProposedEpochBlocksByIdsRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProofsRequest version. + * GetEvonodesProposedEpochBlocksByIdsRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @instance */ - Object.defineProperty(GetProofsRequest.prototype, "version", { + Object.defineProperty(GetEvonodesProposedEpochBlocksByIdsRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProofsRequest instance using the specified properties. + * Creates a new GetEvonodesProposedEpochBlocksByIdsRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest instance + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} GetEvonodesProposedEpochBlocksByIdsRequest instance */ - GetProofsRequest.create = function create(properties) { - return new GetProofsRequest(properties); + GetEvonodesProposedEpochBlocksByIdsRequest.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksByIdsRequest(properties); }; /** - * Encodes the specified GetProofsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.verify|verify} messages. + * Encodes the specified GetEvonodesProposedEpochBlocksByIdsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsRequest} message GetProofsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest} message GetEvonodesProposedEpochBlocksByIdsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsRequest.encode = function encode(message, writer) { + GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest.GetProofsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProofsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.verify|verify} messages. + * Encodes the specified GetEvonodesProposedEpochBlocksByIdsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsRequest} message GetProofsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByIdsRequest} message GetEvonodesProposedEpochBlocksByIdsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetEvonodesProposedEpochBlocksByIdsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProofsRequest message from the specified reader or buffer. + * Decodes a GetEvonodesProposedEpochBlocksByIdsRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @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.GetProofsRequest} GetProofsRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} GetEvonodesProposedEpochBlocksByIdsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsRequest.decode = function decode(reader, length) { + GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -11320,37 +11485,37 @@ $root.org = (function() { }; /** - * Decodes a GetProofsRequest message from the specified reader or buffer, length delimited. + * Decodes a GetEvonodesProposedEpochBlocksByIdsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} GetEvonodesProposedEpochBlocksByIdsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsRequest.decodeDelimited = function decodeDelimited(reader) { + GetEvonodesProposedEpochBlocksByIdsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProofsRequest message. + * Verifies a GetEvonodesProposedEpochBlocksByIdsRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProofsRequest.verify = function verify(message) { + GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest.GetProofsRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -11359,40 +11524,40 @@ $root.org = (function() { }; /** - * Creates a GetProofsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetEvonodesProposedEpochBlocksByIdsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} GetEvonodesProposedEpochBlocksByIdsRequest */ - GetProofsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest) + GetEvonodesProposedEpochBlocksByIdsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProofsRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetEvonodesProposedEpochBlocksByIdsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest} message GetProofsRequest + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} message GetEvonodesProposedEpochBlocksByIdsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProofsRequest.toObject = function toObject(message, options) { + GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest.GetProofsRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -11400,41 +11565,37 @@ $root.org = (function() { }; /** - * Converts this GetProofsRequest to JSON. + * Converts this GetEvonodesProposedEpochBlocksByIdsRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest * @instance * @returns {Object.} JSON object */ - GetProofsRequest.prototype.toJSON = function toJSON() { + GetEvonodesProposedEpochBlocksByIdsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProofsRequest.GetProofsRequestV0 = (function() { + GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 = (function() { /** - * Properties of a GetProofsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest - * @interface IGetProofsRequestV0 - * @property {Array.|null} [identities] GetProofsRequestV0 identities - * @property {Array.|null} [contracts] GetProofsRequestV0 contracts - * @property {Array.|null} [documents] GetProofsRequestV0 documents - * @property {Array.|null} [votes] GetProofsRequestV0 votes + * Properties of a GetEvonodesProposedEpochBlocksByIdsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest + * @interface IGetEvonodesProposedEpochBlocksByIdsRequestV0 + * @property {number|null} [epoch] GetEvonodesProposedEpochBlocksByIdsRequestV0 epoch + * @property {Array.|null} [ids] GetEvonodesProposedEpochBlocksByIdsRequestV0 ids + * @property {boolean|null} [prove] GetEvonodesProposedEpochBlocksByIdsRequestV0 prove */ /** - * Constructs a new GetProofsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest - * @classdesc Represents a GetProofsRequestV0. - * @implements IGetProofsRequestV0 + * Constructs a new GetEvonodesProposedEpochBlocksByIdsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest + * @classdesc Represents a GetEvonodesProposedEpochBlocksByIdsRequestV0. + * @implements IGetEvonodesProposedEpochBlocksByIdsRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0=} [properties] Properties to set */ - function GetProofsRequestV0(properties) { - this.identities = []; - this.contracts = []; - this.documents = []; - this.votes = []; + function GetEvonodesProposedEpochBlocksByIdsRequestV0(properties) { + this.ids = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -11442,126 +11603,104 @@ $root.org = (function() { } /** - * GetProofsRequestV0 identities. - * @member {Array.} identities - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @instance - */ - GetProofsRequestV0.prototype.identities = $util.emptyArray; - - /** - * GetProofsRequestV0 contracts. - * @member {Array.} contracts - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * GetEvonodesProposedEpochBlocksByIdsRequestV0 epoch. + * @member {number} epoch + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @instance */ - GetProofsRequestV0.prototype.contracts = $util.emptyArray; + GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.epoch = 0; /** - * GetProofsRequestV0 documents. - * @member {Array.} documents - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * GetEvonodesProposedEpochBlocksByIdsRequestV0 ids. + * @member {Array.} ids + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @instance */ - GetProofsRequestV0.prototype.documents = $util.emptyArray; + GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.ids = $util.emptyArray; /** - * GetProofsRequestV0 votes. - * @member {Array.} votes - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * GetEvonodesProposedEpochBlocksByIdsRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @instance */ - GetProofsRequestV0.prototype.votes = $util.emptyArray; + GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.prove = false; /** - * Creates a new GetProofsRequestV0 instance using the specified properties. + * Creates a new GetEvonodesProposedEpochBlocksByIdsRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} GetEvonodesProposedEpochBlocksByIdsRequestV0 instance */ - GetProofsRequestV0.create = function create(properties) { - return new GetProofsRequestV0(properties); + GetEvonodesProposedEpochBlocksByIdsRequestV0.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksByIdsRequestV0(properties); }; /** - * Encodes the specified GetProofsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.verify|verify} messages. + * Encodes the specified GetEvonodesProposedEpochBlocksByIdsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0} message GetProofsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0} message GetEvonodesProposedEpochBlocksByIdsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsRequestV0.encode = function encode(message, writer) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.identities != null && message.identities.length) - for (var i = 0; i < message.identities.length; ++i) - $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.encode(message.identities[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.contracts != null && message.contracts.length) - for (var i = 0; i < message.contracts.length; ++i) - $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.encode(message.contracts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.documents != null && message.documents.length) - for (var i = 0; i < message.documents.length; ++i) - $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.encode(message.documents[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.votes != null && message.votes.length) - for (var i = 0; i < message.votes.length; ++i) - $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.encode(message.votes[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.epoch != null && Object.hasOwnProperty.call(message, "epoch")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.epoch); + if (message.ids != null && message.ids.length) + for (var i = 0; i < message.ids.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.ids[i]); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.prove); return writer; }; /** - * Encodes the specified GetProofsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.verify|verify} messages. + * Encodes the specified GetEvonodesProposedEpochBlocksByIdsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0} message GetProofsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.IGetEvonodesProposedEpochBlocksByIdsRequestV0} message GetEvonodesProposedEpochBlocksByIdsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProofsRequestV0 message from the specified reader or buffer. + * Decodes a GetEvonodesProposedEpochBlocksByIdsRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @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.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} GetEvonodesProposedEpochBlocksByIdsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsRequestV0.decode = function decode(reader, length) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.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.GetProofsRequest.GetProofsRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.identities && message.identities.length)) - message.identities = []; - message.identities.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.decode(reader, reader.uint32())); + message.epoch = reader.uint32(); break; case 2: - if (!(message.contracts && message.contracts.length)) - message.contracts = []; - message.contracts.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.decode(reader, reader.uint32())); + if (!(message.ids && message.ids.length)) + message.ids = []; + message.ids.push(reader.bytes()); break; case 3: - if (!(message.documents && message.documents.length)) - message.documents = []; - message.documents.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.decode(reader, reader.uint32())); - break; - case 4: - if (!(message.votes && message.votes.length)) - message.votes = []; - message.votes.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.decode(reader, reader.uint32())); + message.prove = reader.bool(); break; default: reader.skipType(tag & 7); @@ -11572,329 +11711,711 @@ $root.org = (function() { }; /** - * Decodes a GetProofsRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetEvonodesProposedEpochBlocksByIdsRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} GetEvonodesProposedEpochBlocksByIdsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProofsRequestV0 message. + * Verifies a GetEvonodesProposedEpochBlocksByIdsRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProofsRequestV0.verify = function verify(message) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.identities != null && message.hasOwnProperty("identities")) { - if (!Array.isArray(message.identities)) - return "identities: array expected"; - for (var i = 0; i < message.identities.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify(message.identities[i]); - if (error) - return "identities." + error; - } - } - if (message.contracts != null && message.hasOwnProperty("contracts")) { - if (!Array.isArray(message.contracts)) - return "contracts: array expected"; - for (var i = 0; i < message.contracts.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify(message.contracts[i]); - if (error) - return "contracts." + error; - } - } - if (message.documents != null && message.hasOwnProperty("documents")) { - if (!Array.isArray(message.documents)) - return "documents: array expected"; - for (var i = 0; i < message.documents.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify(message.documents[i]); - if (error) - return "documents." + error; - } - } - if (message.votes != null && message.hasOwnProperty("votes")) { - if (!Array.isArray(message.votes)) - return "votes: array expected"; - for (var i = 0; i < message.votes.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify(message.votes[i]); - if (error) - return "votes." + error; - } + if (message.epoch != null && message.hasOwnProperty("epoch")) + if (!$util.isInteger(message.epoch)) + return "epoch: integer expected"; + if (message.ids != null && message.hasOwnProperty("ids")) { + if (!Array.isArray(message.ids)) + return "ids: array expected"; + for (var i = 0; i < message.ids.length; ++i) + if (!(message.ids[i] && typeof message.ids[i].length === "number" || $util.isString(message.ids[i]))) + return "ids: buffer[] expected"; } + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; return null; }; /** - * Creates a GetProofsRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetEvonodesProposedEpochBlocksByIdsRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} GetEvonodesProposedEpochBlocksByIdsRequestV0 */ - GetProofsRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0) + GetEvonodesProposedEpochBlocksByIdsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0(); - if (object.identities) { - if (!Array.isArray(object.identities)) - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities: array expected"); - message.identities = []; - for (var i = 0; i < object.identities.length; ++i) { - if (typeof object.identities[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities: object expected"); - message.identities[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.fromObject(object.identities[i]); - } - } - if (object.contracts) { - if (!Array.isArray(object.contracts)) - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts: array expected"); - message.contracts = []; - for (var i = 0; i < object.contracts.length; ++i) { - if (typeof object.contracts[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts: object expected"); - message.contracts[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.fromObject(object.contracts[i]); - } - } - if (object.documents) { - if (!Array.isArray(object.documents)) - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents: array expected"); - message.documents = []; - for (var i = 0; i < object.documents.length; ++i) { - if (typeof object.documents[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents: object expected"); - message.documents[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.fromObject(object.documents[i]); - } - } - if (object.votes) { - if (!Array.isArray(object.votes)) - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes: array expected"); - message.votes = []; - for (var i = 0; i < object.votes.length; ++i) { - if (typeof object.votes[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes: object expected"); - message.votes[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.fromObject(object.votes[i]); - } + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0(); + if (object.epoch != null) + message.epoch = object.epoch >>> 0; + if (object.ids) { + if (!Array.isArray(object.ids)) + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.ids: array expected"); + message.ids = []; + for (var i = 0; i < object.ids.length; ++i) + if (typeof object.ids[i] === "string") + $util.base64.decode(object.ids[i], message.ids[i] = $util.newBuffer($util.base64.length(object.ids[i])), 0); + else if (object.ids[i].length >= 0) + message.ids[i] = object.ids[i]; } + if (object.prove != null) + message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetProofsRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetEvonodesProposedEpochBlocksByIdsRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message GetProofsRequestV0 + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} message GetEvonodesProposedEpochBlocksByIdsRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProofsRequestV0.toObject = function toObject(message, options) { + GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.identities = []; - object.contracts = []; - object.documents = []; - object.votes = []; - } - if (message.identities && message.identities.length) { - object.identities = []; - for (var j = 0; j < message.identities.length; ++j) - object.identities[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(message.identities[j], options); - } - if (message.contracts && message.contracts.length) { - object.contracts = []; - for (var j = 0; j < message.contracts.length; ++j) - object.contracts[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(message.contracts[j], options); - } - if (message.documents && message.documents.length) { - object.documents = []; - for (var j = 0; j < message.documents.length; ++j) - object.documents[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject(message.documents[j], options); + if (options.arrays || options.defaults) + object.ids = []; + if (options.defaults) { + object.epoch = 0; + object.prove = false; } - if (message.votes && message.votes.length) { - object.votes = []; - for (var j = 0; j < message.votes.length; ++j) - object.votes[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(message.votes[j], options); + if (message.epoch != null && message.hasOwnProperty("epoch")) + object.epoch = message.epoch; + if (message.ids && message.ids.length) { + object.ids = []; + for (var j = 0; j < message.ids.length; ++j) + object.ids[j] = options.bytes === String ? $util.base64.encode(message.ids[j], 0, message.ids[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.ids[j]) : message.ids[j]; } + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; return object; }; /** - * Converts this GetProofsRequestV0 to JSON. + * Converts this GetEvonodesProposedEpochBlocksByIdsRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 * @instance * @returns {Object.} JSON object */ - GetProofsRequestV0.prototype.toJSON = function toJSON() { + GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProofsRequestV0.DocumentRequest = (function() { + return GetEvonodesProposedEpochBlocksByIdsRequestV0; + })(); - /** - * Properties of a DocumentRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @interface IDocumentRequest - * @property {Uint8Array|null} [contractId] DocumentRequest contractId - * @property {string|null} [documentType] DocumentRequest documentType - * @property {boolean|null} [documentTypeKeepsHistory] DocumentRequest documentTypeKeepsHistory - * @property {Uint8Array|null} [documentId] DocumentRequest documentId - * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus|null} [documentContestedStatus] DocumentRequest documentContestedStatus - */ + return GetEvonodesProposedEpochBlocksByIdsRequest; + })(); - /** - * Constructs a new DocumentRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @classdesc Represents a DocumentRequest. - * @implements IDocumentRequest - * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest=} [properties] Properties to set - */ - function DocumentRequest(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]]; - } + v0.GetEvonodesProposedEpochBlocksResponse = (function() { - /** - * DocumentRequest contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @instance - */ - DocumentRequest.prototype.contractId = $util.newBuffer([]); + /** + * Properties of a GetEvonodesProposedEpochBlocksResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetEvonodesProposedEpochBlocksResponse + * @property {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0|null} [v0] GetEvonodesProposedEpochBlocksResponse v0 + */ - /** - * DocumentRequest documentType. - * @member {string} documentType - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @instance - */ - DocumentRequest.prototype.documentType = ""; + /** + * Constructs a new GetEvonodesProposedEpochBlocksResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetEvonodesProposedEpochBlocksResponse. + * @implements IGetEvonodesProposedEpochBlocksResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksResponse=} [properties] Properties to set + */ + function GetEvonodesProposedEpochBlocksResponse(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]]; + } - /** - * DocumentRequest documentTypeKeepsHistory. - * @member {boolean} documentTypeKeepsHistory - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @instance - */ - DocumentRequest.prototype.documentTypeKeepsHistory = false; + /** + * GetEvonodesProposedEpochBlocksResponse v0. + * @member {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @instance + */ + GetEvonodesProposedEpochBlocksResponse.prototype.v0 = null; - /** - * DocumentRequest documentId. - * @member {Uint8Array} documentId - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @instance - */ - DocumentRequest.prototype.documentId = $util.newBuffer([]); + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * DocumentRequest documentContestedStatus. - * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} documentContestedStatus - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @instance - */ - DocumentRequest.prototype.documentContestedStatus = 0; + /** + * GetEvonodesProposedEpochBlocksResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @instance + */ + Object.defineProperty(GetEvonodesProposedEpochBlocksResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Creates a new DocumentRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest instance - */ - DocumentRequest.create = function create(properties) { - return new DocumentRequest(properties); - }; + /** + * Creates a new GetEvonodesProposedEpochBlocksResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} GetEvonodesProposedEpochBlocksResponse instance + */ + GetEvonodesProposedEpochBlocksResponse.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksResponse(properties); + }; - /** - * Encodes the specified DocumentRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest} message DocumentRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DocumentRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - if (message.documentType != null && Object.hasOwnProperty.call(message, "documentType")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentType); - if (message.documentTypeKeepsHistory != null && Object.hasOwnProperty.call(message, "documentTypeKeepsHistory")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.documentTypeKeepsHistory); - if (message.documentId != null && Object.hasOwnProperty.call(message, "documentId")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.documentId); - if (message.documentContestedStatus != null && Object.hasOwnProperty.call(message, "documentContestedStatus")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.documentContestedStatus); + /** + * Encodes the specified GetEvonodesProposedEpochBlocksResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksResponse} message GetEvonodesProposedEpochBlocksResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksResponse.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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetEvonodesProposedEpochBlocksResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksResponse} message GetEvonodesProposedEpochBlocksResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetEvonodesProposedEpochBlocksResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @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.GetEvonodesProposedEpochBlocksResponse} GetEvonodesProposedEpochBlocksResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksResponse.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.GetEvonodesProposedEpochBlocksResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetEvonodesProposedEpochBlocksResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} GetEvonodesProposedEpochBlocksResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetEvonodesProposedEpochBlocksResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetEvonodesProposedEpochBlocksResponse.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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetEvonodesProposedEpochBlocksResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} GetEvonodesProposedEpochBlocksResponse + */ + GetEvonodesProposedEpochBlocksResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetEvonodesProposedEpochBlocksResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} message GetEvonodesProposedEpochBlocksResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetEvonodesProposedEpochBlocksResponse.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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetEvonodesProposedEpochBlocksResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @instance + * @returns {Object.} JSON object + */ + GetEvonodesProposedEpochBlocksResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 = (function() { + + /** + * Properties of a GetEvonodesProposedEpochBlocksResponseV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @interface IGetEvonodesProposedEpochBlocksResponseV0 + * @property {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks|null} [evonodesProposedBlockCountsInfo] GetEvonodesProposedEpochBlocksResponseV0 evonodesProposedBlockCountsInfo + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetEvonodesProposedEpochBlocksResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetEvonodesProposedEpochBlocksResponseV0 metadata + */ + + /** + * Constructs a new GetEvonodesProposedEpochBlocksResponseV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse + * @classdesc Represents a GetEvonodesProposedEpochBlocksResponseV0. + * @implements IGetEvonodesProposedEpochBlocksResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0=} [properties] Properties to set + */ + function GetEvonodesProposedEpochBlocksResponseV0(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]]; + } + + /** + * GetEvonodesProposedEpochBlocksResponseV0 evonodesProposedBlockCountsInfo. + * @member {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks|null|undefined} evonodesProposedBlockCountsInfo + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @instance + */ + GetEvonodesProposedEpochBlocksResponseV0.prototype.evonodesProposedBlockCountsInfo = null; + + /** + * GetEvonodesProposedEpochBlocksResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @instance + */ + GetEvonodesProposedEpochBlocksResponseV0.prototype.proof = null; + + /** + * GetEvonodesProposedEpochBlocksResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @instance + */ + GetEvonodesProposedEpochBlocksResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetEvonodesProposedEpochBlocksResponseV0 result. + * @member {"evonodesProposedBlockCountsInfo"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @instance + */ + Object.defineProperty(GetEvonodesProposedEpochBlocksResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["evonodesProposedBlockCountsInfo", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetEvonodesProposedEpochBlocksResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} GetEvonodesProposedEpochBlocksResponseV0 instance + */ + GetEvonodesProposedEpochBlocksResponseV0.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksResponseV0(properties); + }; + + /** + * Encodes the specified GetEvonodesProposedEpochBlocksResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0} message GetEvonodesProposedEpochBlocksResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.evonodesProposedBlockCountsInfo != null && Object.hasOwnProperty.call(message, "evonodesProposedBlockCountsInfo")) + $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.encode(message.evonodesProposedBlockCountsInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetEvonodesProposedEpochBlocksResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.IGetEvonodesProposedEpochBlocksResponseV0} message GetEvonodesProposedEpochBlocksResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetEvonodesProposedEpochBlocksResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} GetEvonodesProposedEpochBlocksResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksResponseV0.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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.evonodesProposedBlockCountsInfo = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.decode(reader, reader.uint32()); + break; + case 2: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetEvonodesProposedEpochBlocksResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} GetEvonodesProposedEpochBlocksResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetEvonodesProposedEpochBlocksResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetEvonodesProposedEpochBlocksResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.evonodesProposedBlockCountsInfo != null && message.hasOwnProperty("evonodesProposedBlockCountsInfo")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.verify(message.evonodesProposedBlockCountsInfo); + if (error) + return "evonodesProposedBlockCountsInfo." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetEvonodesProposedEpochBlocksResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} GetEvonodesProposedEpochBlocksResponseV0 + */ + GetEvonodesProposedEpochBlocksResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0(); + if (object.evonodesProposedBlockCountsInfo != null) { + if (typeof object.evonodesProposedBlockCountsInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.evonodesProposedBlockCountsInfo: object expected"); + message.evonodesProposedBlockCountsInfo = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.fromObject(object.evonodesProposedBlockCountsInfo); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetEvonodesProposedEpochBlocksResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} message GetEvonodesProposedEpochBlocksResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetEvonodesProposedEpochBlocksResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.evonodesProposedBlockCountsInfo != null && message.hasOwnProperty("evonodesProposedBlockCountsInfo")) { + object.evonodesProposedBlockCountsInfo = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject(message.evonodesProposedBlockCountsInfo, options); + if (options.oneofs) + object.result = "evonodesProposedBlockCountsInfo"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetEvonodesProposedEpochBlocksResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetEvonodesProposedEpochBlocksResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks = (function() { + + /** + * Properties of an EvonodeProposedBlocks. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @interface IEvonodeProposedBlocks + * @property {Uint8Array|null} [proTxHash] EvonodeProposedBlocks proTxHash + * @property {number|Long|null} [count] EvonodeProposedBlocks count + */ + + /** + * Constructs a new EvonodeProposedBlocks. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @classdesc Represents an EvonodeProposedBlocks. + * @implements IEvonodeProposedBlocks + * @constructor + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodeProposedBlocks=} [properties] Properties to set + */ + function EvonodeProposedBlocks(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]]; + } + + /** + * EvonodeProposedBlocks proTxHash. + * @member {Uint8Array} proTxHash + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks + * @instance + */ + EvonodeProposedBlocks.prototype.proTxHash = $util.newBuffer([]); + + /** + * EvonodeProposedBlocks count. + * @member {number|Long} count + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks + * @instance + */ + EvonodeProposedBlocks.prototype.count = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new EvonodeProposedBlocks instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodeProposedBlocks=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} EvonodeProposedBlocks instance + */ + EvonodeProposedBlocks.create = function create(properties) { + return new EvonodeProposedBlocks(properties); + }; + + /** + * Encodes the specified EvonodeProposedBlocks message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodeProposedBlocks} message EvonodeProposedBlocks message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EvonodeProposedBlocks.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.proTxHash != null && Object.hasOwnProperty.call(message, "proTxHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.proTxHash); + if (message.count != null && Object.hasOwnProperty.call(message, "count")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.count); return writer; }; /** - * Encodes the specified DocumentRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify|verify} messages. + * Encodes the specified EvonodeProposedBlocks message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest} message DocumentRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodeProposedBlocks} message EvonodeProposedBlocks message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DocumentRequest.encodeDelimited = function encodeDelimited(message, writer) { + EvonodeProposedBlocks.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DocumentRequest message from the specified reader or buffer. + * Decodes an EvonodeProposedBlocks message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} EvonodeProposedBlocks * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DocumentRequest.decode = function decode(reader, length) { + EvonodeProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contractId = reader.bytes(); + message.proTxHash = reader.bytes(); break; case 2: - message.documentType = reader.string(); - break; - case 3: - message.documentTypeKeepsHistory = reader.bool(); - break; - case 4: - message.documentId = reader.bytes(); - break; - case 5: - message.documentContestedStatus = reader.int32(); + message.count = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -11905,193 +12426,140 @@ $root.org = (function() { }; /** - * Decodes a DocumentRequest message from the specified reader or buffer, length delimited. + * Decodes an EvonodeProposedBlocks message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} EvonodeProposedBlocks * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DocumentRequest.decodeDelimited = function decodeDelimited(reader) { + EvonodeProposedBlocks.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DocumentRequest message. + * Verifies an EvonodeProposedBlocks message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DocumentRequest.verify = function verify(message) { + EvonodeProposedBlocks.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - if (message.documentType != null && message.hasOwnProperty("documentType")) - if (!$util.isString(message.documentType)) - return "documentType: string expected"; - if (message.documentTypeKeepsHistory != null && message.hasOwnProperty("documentTypeKeepsHistory")) - if (typeof message.documentTypeKeepsHistory !== "boolean") - return "documentTypeKeepsHistory: boolean expected"; - if (message.documentId != null && message.hasOwnProperty("documentId")) - if (!(message.documentId && typeof message.documentId.length === "number" || $util.isString(message.documentId))) - return "documentId: buffer expected"; - if (message.documentContestedStatus != null && message.hasOwnProperty("documentContestedStatus")) - switch (message.documentContestedStatus) { - default: - return "documentContestedStatus: enum value expected"; - case 0: - case 1: - case 2: - break; - } + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + if (!(message.proTxHash && typeof message.proTxHash.length === "number" || $util.isString(message.proTxHash))) + return "proTxHash: buffer expected"; + if (message.count != null && message.hasOwnProperty("count")) + if (!$util.isInteger(message.count) && !(message.count && $util.isInteger(message.count.low) && $util.isInteger(message.count.high))) + return "count: integer|Long expected"; return null; }; /** - * Creates a DocumentRequest message from a plain object. Also converts values to their respective internal types. + * Creates an EvonodeProposedBlocks message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} EvonodeProposedBlocks */ - DocumentRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest) + EvonodeProposedBlocks.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - if (object.documentType != null) - message.documentType = String(object.documentType); - if (object.documentTypeKeepsHistory != null) - message.documentTypeKeepsHistory = Boolean(object.documentTypeKeepsHistory); - if (object.documentId != null) - if (typeof object.documentId === "string") - $util.base64.decode(object.documentId, message.documentId = $util.newBuffer($util.base64.length(object.documentId)), 0); - else if (object.documentId.length >= 0) - message.documentId = object.documentId; - switch (object.documentContestedStatus) { - case "NOT_CONTESTED": - case 0: - message.documentContestedStatus = 0; - break; - case "MAYBE_CONTESTED": - case 1: - message.documentContestedStatus = 1; - break; - case "CONTESTED": - case 2: - message.documentContestedStatus = 2; - break; - } + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks(); + if (object.proTxHash != null) + if (typeof object.proTxHash === "string") + $util.base64.decode(object.proTxHash, message.proTxHash = $util.newBuffer($util.base64.length(object.proTxHash)), 0); + else if (object.proTxHash.length >= 0) + message.proTxHash = object.proTxHash; + if (object.count != null) + if ($util.Long) + (message.count = $util.Long.fromValue(object.count)).unsigned = true; + else if (typeof object.count === "string") + message.count = parseInt(object.count, 10); + else if (typeof object.count === "number") + message.count = object.count; + else if (typeof object.count === "object") + message.count = new $util.LongBits(object.count.low >>> 0, object.count.high >>> 0).toNumber(true); return message; }; /** - * Creates a plain object from a DocumentRequest message. Also converts values to other types if specified. + * Creates a plain object from an EvonodeProposedBlocks message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message DocumentRequest + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} message EvonodeProposedBlocks * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DocumentRequest.toObject = function toObject(message, options) { + EvonodeProposedBlocks.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { if (options.bytes === String) - object.contractId = ""; - else { - object.contractId = []; - if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); - } - object.documentType = ""; - object.documentTypeKeepsHistory = false; - if (options.bytes === String) - object.documentId = ""; + object.proTxHash = ""; else { - object.documentId = []; + object.proTxHash = []; if (options.bytes !== Array) - object.documentId = $util.newBuffer(object.documentId); + object.proTxHash = $util.newBuffer(object.proTxHash); } - object.documentContestedStatus = options.enums === String ? "NOT_CONTESTED" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.count = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.count = options.longs === String ? "0" : 0; } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - if (message.documentType != null && message.hasOwnProperty("documentType")) - object.documentType = message.documentType; - if (message.documentTypeKeepsHistory != null && message.hasOwnProperty("documentTypeKeepsHistory")) - object.documentTypeKeepsHistory = message.documentTypeKeepsHistory; - if (message.documentId != null && message.hasOwnProperty("documentId")) - object.documentId = options.bytes === String ? $util.base64.encode(message.documentId, 0, message.documentId.length) : options.bytes === Array ? Array.prototype.slice.call(message.documentId) : message.documentId; - if (message.documentContestedStatus != null && message.hasOwnProperty("documentContestedStatus")) - object.documentContestedStatus = options.enums === String ? $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus[message.documentContestedStatus] : message.documentContestedStatus; + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + object.proTxHash = options.bytes === String ? $util.base64.encode(message.proTxHash, 0, message.proTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.proTxHash) : message.proTxHash; + if (message.count != null && message.hasOwnProperty("count")) + if (typeof message.count === "number") + object.count = options.longs === String ? String(message.count) : message.count; + else + object.count = options.longs === String ? $util.Long.prototype.toString.call(message.count) : options.longs === Number ? new $util.LongBits(message.count.low >>> 0, message.count.high >>> 0).toNumber(true) : message.count; return object; }; /** - * Converts this DocumentRequest to JSON. + * Converts this EvonodeProposedBlocks to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks * @instance * @returns {Object.} JSON object */ - DocumentRequest.prototype.toJSON = function toJSON() { + EvonodeProposedBlocks.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * DocumentContestedStatus enum. - * @name org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus - * @enum {number} - * @property {number} NOT_CONTESTED=0 NOT_CONTESTED value - * @property {number} MAYBE_CONTESTED=1 MAYBE_CONTESTED value - * @property {number} CONTESTED=2 CONTESTED value - */ - DocumentRequest.DocumentContestedStatus = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "NOT_CONTESTED"] = 0; - values[valuesById[1] = "MAYBE_CONTESTED"] = 1; - values[valuesById[2] = "CONTESTED"] = 2; - return values; - })(); - - return DocumentRequest; + return EvonodeProposedBlocks; })(); - GetProofsRequestV0.IdentityRequest = (function() { + GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks = (function() { /** - * Properties of an IdentityRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @interface IIdentityRequest - * @property {Uint8Array|null} [identityId] IdentityRequest identityId - * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type|null} [requestType] IdentityRequest requestType + * Properties of an EvonodesProposedBlocks. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @interface IEvonodesProposedBlocks + * @property {Array.|null} [evonodesProposedBlockCounts] EvonodesProposedBlocks evonodesProposedBlockCounts */ /** - * Constructs a new IdentityRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @classdesc Represents an IdentityRequest. - * @implements IIdentityRequest + * Constructs a new EvonodesProposedBlocks. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 + * @classdesc Represents an EvonodesProposedBlocks. + * @implements IEvonodesProposedBlocks * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks=} [properties] Properties to set */ - function IdentityRequest(properties) { + function EvonodesProposedBlocks(properties) { + this.evonodesProposedBlockCounts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -12099,88 +12567,78 @@ $root.org = (function() { } /** - * IdentityRequest identityId. - * @member {Uint8Array} identityId - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * EvonodesProposedBlocks evonodesProposedBlockCounts. + * @member {Array.} evonodesProposedBlockCounts + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @instance */ - IdentityRequest.prototype.identityId = $util.newBuffer([]); + EvonodesProposedBlocks.prototype.evonodesProposedBlockCounts = $util.emptyArray; /** - * IdentityRequest requestType. - * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} requestType - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest - * @instance - */ - IdentityRequest.prototype.requestType = 0; - - /** - * Creates a new IdentityRequest instance using the specified properties. + * Creates a new EvonodesProposedBlocks instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest instance + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} EvonodesProposedBlocks instance */ - IdentityRequest.create = function create(properties) { - return new IdentityRequest(properties); + EvonodesProposedBlocks.create = function create(properties) { + return new EvonodesProposedBlocks(properties); }; /** - * Encodes the specified IdentityRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify|verify} messages. + * Encodes the specified EvonodesProposedBlocks message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest} message IdentityRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks} message EvonodesProposedBlocks message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IdentityRequest.encode = function encode(message, writer) { + EvonodesProposedBlocks.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identityId); - if (message.requestType != null && Object.hasOwnProperty.call(message, "requestType")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.requestType); + if (message.evonodesProposedBlockCounts != null && message.evonodesProposedBlockCounts.length) + for (var i = 0; i < message.evonodesProposedBlockCounts.length; ++i) + $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.encode(message.evonodesProposedBlockCounts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified IdentityRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify|verify} messages. + * Encodes the specified EvonodesProposedBlocks message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest} message IdentityRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.IEvonodesProposedBlocks} message EvonodesProposedBlocks message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - IdentityRequest.encodeDelimited = function encodeDelimited(message, writer) { + EvonodesProposedBlocks.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an IdentityRequest message from the specified reader or buffer. + * Decodes an EvonodesProposedBlocks message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} EvonodesProposedBlocks * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IdentityRequest.decode = function decode(reader, length) { + EvonodesProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.IdentityRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.identityId = reader.bytes(); - break; - case 2: - message.requestType = reader.int32(); + if (!(message.evonodesProposedBlockCounts && message.evonodesProposedBlockCounts.length)) + message.evonodesProposedBlockCounts = []; + message.evonodesProposedBlockCounts.push($root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -12191,983 +12649,738 @@ $root.org = (function() { }; /** - * Decodes an IdentityRequest message from the specified reader or buffer, length delimited. + * Decodes an EvonodesProposedBlocks message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} EvonodesProposedBlocks * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - IdentityRequest.decodeDelimited = function decodeDelimited(reader) { + EvonodesProposedBlocks.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an IdentityRequest message. + * Verifies an EvonodesProposedBlocks message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - IdentityRequest.verify = function verify(message) { + EvonodesProposedBlocks.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.identityId != null && message.hasOwnProperty("identityId")) - if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) - return "identityId: buffer expected"; - if (message.requestType != null && message.hasOwnProperty("requestType")) - switch (message.requestType) { - default: - return "requestType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - break; + if (message.evonodesProposedBlockCounts != null && message.hasOwnProperty("evonodesProposedBlockCounts")) { + if (!Array.isArray(message.evonodesProposedBlockCounts)) + return "evonodesProposedBlockCounts: array expected"; + for (var i = 0; i < message.evonodesProposedBlockCounts.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.verify(message.evonodesProposedBlockCounts[i]); + if (error) + return "evonodesProposedBlockCounts." + error; } + } return null; }; /** - * Creates an IdentityRequest message from a plain object. Also converts values to their respective internal types. + * Creates an EvonodesProposedBlocks message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} EvonodesProposedBlocks */ - IdentityRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest) + EvonodesProposedBlocks.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest(); - if (object.identityId != null) - if (typeof object.identityId === "string") - $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); - else if (object.identityId.length >= 0) - message.identityId = object.identityId; - switch (object.requestType) { - case "FULL_IDENTITY": - case 0: - message.requestType = 0; - break; - case "BALANCE": - case 1: - message.requestType = 1; - break; - case "KEYS": - case 2: - message.requestType = 2; - break; - case "REVISION": - case 3: - message.requestType = 3; - break; + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks(); + if (object.evonodesProposedBlockCounts) { + if (!Array.isArray(object.evonodesProposedBlockCounts)) + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.evonodesProposedBlockCounts: array expected"); + message.evonodesProposedBlockCounts = []; + for (var i = 0; i < object.evonodesProposedBlockCounts.length; ++i) { + if (typeof object.evonodesProposedBlockCounts[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.evonodesProposedBlockCounts: object expected"); + message.evonodesProposedBlockCounts[i] = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.fromObject(object.evonodesProposedBlockCounts[i]); + } } return message; }; /** - * Creates a plain object from an IdentityRequest message. Also converts values to other types if specified. + * Creates a plain object from an EvonodesProposedBlocks message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message IdentityRequest + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} message EvonodesProposedBlocks * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - IdentityRequest.toObject = function toObject(message, options) { + EvonodesProposedBlocks.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.identityId = ""; - else { - object.identityId = []; - if (options.bytes !== Array) - object.identityId = $util.newBuffer(object.identityId); - } - object.requestType = options.enums === String ? "FULL_IDENTITY" : 0; + if (options.arrays || options.defaults) + object.evonodesProposedBlockCounts = []; + if (message.evonodesProposedBlockCounts && message.evonodesProposedBlockCounts.length) { + object.evonodesProposedBlockCounts = []; + for (var j = 0; j < message.evonodesProposedBlockCounts.length; ++j) + object.evonodesProposedBlockCounts[j] = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject(message.evonodesProposedBlockCounts[j], options); } - if (message.identityId != null && message.hasOwnProperty("identityId")) - object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; - if (message.requestType != null && message.hasOwnProperty("requestType")) - object.requestType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type[message.requestType] : message.requestType; return object; }; /** - * Converts this IdentityRequest to JSON. + * Converts this EvonodesProposedBlocks to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks * @instance * @returns {Object.} JSON object */ - IdentityRequest.prototype.toJSON = function toJSON() { + EvonodesProposedBlocks.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * Type enum. - * @name org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type - * @enum {number} - * @property {number} FULL_IDENTITY=0 FULL_IDENTITY value - * @property {number} BALANCE=1 BALANCE value - * @property {number} KEYS=2 KEYS value - * @property {number} REVISION=3 REVISION value - */ - IdentityRequest.Type = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "FULL_IDENTITY"] = 0; - values[valuesById[1] = "BALANCE"] = 1; - values[valuesById[2] = "KEYS"] = 2; - values[valuesById[3] = "REVISION"] = 3; - return values; - })(); - - return IdentityRequest; + return EvonodesProposedBlocks; })(); - GetProofsRequestV0.ContractRequest = (function() { + return GetEvonodesProposedEpochBlocksResponseV0; + })(); - /** - * Properties of a ContractRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @interface IContractRequest - * @property {Uint8Array|null} [contractId] ContractRequest contractId - */ + return GetEvonodesProposedEpochBlocksResponse; + })(); - /** - * Constructs a new ContractRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @classdesc Represents a ContractRequest. - * @implements IContractRequest - * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest=} [properties] Properties to set - */ - function ContractRequest(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]]; - } + v0.GetEvonodesProposedEpochBlocksByRangeRequest = (function() { - /** - * ContractRequest contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @instance - */ - ContractRequest.prototype.contractId = $util.newBuffer([]); + /** + * Properties of a GetEvonodesProposedEpochBlocksByRangeRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetEvonodesProposedEpochBlocksByRangeRequest + * @property {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0|null} [v0] GetEvonodesProposedEpochBlocksByRangeRequest v0 + */ - /** - * Creates a new ContractRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest instance - */ - ContractRequest.create = function create(properties) { - return new ContractRequest(properties); - }; + /** + * Constructs a new GetEvonodesProposedEpochBlocksByRangeRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetEvonodesProposedEpochBlocksByRangeRequest. + * @implements IGetEvonodesProposedEpochBlocksByRangeRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest=} [properties] Properties to set + */ + function GetEvonodesProposedEpochBlocksByRangeRequest(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]]; + } - /** - * Encodes the specified ContractRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest} message ContractRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContractRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - return writer; - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequest v0. + * @member {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequest.prototype.v0 = null; - /** - * Encodes the specified ContractRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest} message ContractRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContractRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Decodes a ContractRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @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.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContractRequest.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.GetProofsRequest.GetProofsRequestV0.ContractRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.contractId = reader.bytes(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @instance + */ + Object.defineProperty(GetEvonodesProposedEpochBlocksByRangeRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Decodes a ContractRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContractRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a new GetEvonodesProposedEpochBlocksByRangeRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} GetEvonodesProposedEpochBlocksByRangeRequest instance + */ + GetEvonodesProposedEpochBlocksByRangeRequest.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksByRangeRequest(properties); + }; - /** - * Verifies a ContractRequest message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ContractRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - return null; - }; + /** + * Encodes the specified GetEvonodesProposedEpochBlocksByRangeRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest} message GetEvonodesProposedEpochBlocksByRangeRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Creates a ContractRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest - */ - ContractRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - return message; - }; + /** + * Encodes the specified GetEvonodesProposedEpochBlocksByRangeRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetEvonodesProposedEpochBlocksByRangeRequest} message GetEvonodesProposedEpochBlocksByRangeRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksByRangeRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a plain object from a ContractRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message ContractRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ContractRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - if (options.bytes === String) - object.contractId = ""; - else { - object.contractId = []; - if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); - } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - return object; - }; + /** + * Decodes a GetEvonodesProposedEpochBlocksByRangeRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @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.GetEvonodesProposedEpochBlocksByRangeRequest} GetEvonodesProposedEpochBlocksByRangeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Converts this ContractRequest to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest - * @instance - * @returns {Object.} JSON object - */ - ContractRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a GetEvonodesProposedEpochBlocksByRangeRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} GetEvonodesProposedEpochBlocksByRangeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksByRangeRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - return ContractRequest; - })(); + /** + * Verifies a GetEvonodesProposedEpochBlocksByRangeRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; - GetProofsRequestV0.VoteStatusRequest = (function() { + /** + * Creates a GetEvonodesProposedEpochBlocksByRangeRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} GetEvonodesProposedEpochBlocksByRangeRequest + */ + GetEvonodesProposedEpochBlocksByRangeRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.fromObject(object.v0); + } + return message; + }; - /** - * Properties of a VoteStatusRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @interface IVoteStatusRequest - * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest|null} [contestedResourceVoteStatusRequest] VoteStatusRequest contestedResourceVoteStatusRequest - */ + /** + * Creates a plain object from a GetEvonodesProposedEpochBlocksByRangeRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} message GetEvonodesProposedEpochBlocksByRangeRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; - /** - * Constructs a new VoteStatusRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 - * @classdesc Represents a VoteStatusRequest. - * @implements IVoteStatusRequest - * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest=} [properties] Properties to set - */ - function VoteStatusRequest(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]]; - } + /** + * Converts this GetEvonodesProposedEpochBlocksByRangeRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @instance + * @returns {Object.} JSON object + */ + GetEvonodesProposedEpochBlocksByRangeRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * VoteStatusRequest contestedResourceVoteStatusRequest. - * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest|null|undefined} contestedResourceVoteStatusRequest - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @instance - */ - VoteStatusRequest.prototype.contestedResourceVoteStatusRequest = null; + GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 = (function() { - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Properties of a GetEvonodesProposedEpochBlocksByRangeRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @interface IGetEvonodesProposedEpochBlocksByRangeRequestV0 + * @property {number|null} [epoch] GetEvonodesProposedEpochBlocksByRangeRequestV0 epoch + * @property {number|null} [limit] GetEvonodesProposedEpochBlocksByRangeRequestV0 limit + * @property {Uint8Array|null} [startAfter] GetEvonodesProposedEpochBlocksByRangeRequestV0 startAfter + * @property {Uint8Array|null} [startAt] GetEvonodesProposedEpochBlocksByRangeRequestV0 startAt + * @property {boolean|null} [prove] GetEvonodesProposedEpochBlocksByRangeRequestV0 prove + */ - /** - * VoteStatusRequest requestType. - * @member {"contestedResourceVoteStatusRequest"|undefined} requestType - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @instance - */ - Object.defineProperty(VoteStatusRequest.prototype, "requestType", { - get: $util.oneOfGetter($oneOfFields = ["contestedResourceVoteStatusRequest"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Constructs a new GetEvonodesProposedEpochBlocksByRangeRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest + * @classdesc Represents a GetEvonodesProposedEpochBlocksByRangeRequestV0. + * @implements IGetEvonodesProposedEpochBlocksByRangeRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0=} [properties] Properties to set + */ + function GetEvonodesProposedEpochBlocksByRangeRequestV0(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 VoteStatusRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest instance - */ - VoteStatusRequest.create = function create(properties) { - return new VoteStatusRequest(properties); - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 epoch. + * @member {number} epoch + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.epoch = 0; - /** - * Encodes the specified VoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest} message VoteStatusRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - VoteStatusRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contestedResourceVoteStatusRequest != null && Object.hasOwnProperty.call(message, "contestedResourceVoteStatusRequest")) - $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.encode(message.contestedResourceVoteStatusRequest, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified VoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest} message VoteStatusRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - VoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 limit. + * @member {number} limit + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.limit = 0; - /** - * Decodes a VoteStatusRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - VoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 startAfter. + * @member {Uint8Array} startAfter + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.startAfter = $util.newBuffer([]); - /** - * Decodes a VoteStatusRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - VoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 startAt. + * @member {Uint8Array} startAt + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.startAt = $util.newBuffer([]); - /** - * Verifies a VoteStatusRequest message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - VoteStatusRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.contestedResourceVoteStatusRequest != null && message.hasOwnProperty("contestedResourceVoteStatusRequest")) { - properties.requestType = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify(message.contestedResourceVoteStatusRequest); - if (error) - return "contestedResourceVoteStatusRequest." + error; - } - } - return null; - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.prove = false; - /** - * Creates a VoteStatusRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest - */ - VoteStatusRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest(); - if (object.contestedResourceVoteStatusRequest != null) { - if (typeof object.contestedResourceVoteStatusRequest !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.contestedResourceVoteStatusRequest: object expected"); - message.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.fromObject(object.contestedResourceVoteStatusRequest); - } - return message; - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Creates a plain object from a VoteStatusRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message VoteStatusRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - VoteStatusRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.contestedResourceVoteStatusRequest != null && message.hasOwnProperty("contestedResourceVoteStatusRequest")) { - object.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(message.contestedResourceVoteStatusRequest, options); - if (options.oneofs) - object.requestType = "contestedResourceVoteStatusRequest"; - } - return object; - }; + /** + * GetEvonodesProposedEpochBlocksByRangeRequestV0 start. + * @member {"startAfter"|"startAt"|undefined} start + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + */ + Object.defineProperty(GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype, "start", { + get: $util.oneOfGetter($oneOfFields = ["startAfter", "startAt"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Converts this VoteStatusRequest to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @instance - * @returns {Object.} JSON object - */ - VoteStatusRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a new GetEvonodesProposedEpochBlocksByRangeRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} GetEvonodesProposedEpochBlocksByRangeRequestV0 instance + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.create = function create(properties) { + return new GetEvonodesProposedEpochBlocksByRangeRequestV0(properties); + }; - VoteStatusRequest.ContestedResourceVoteStatusRequest = (function() { + /** + * Encodes the specified GetEvonodesProposedEpochBlocksByRangeRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0} message GetEvonodesProposedEpochBlocksByRangeRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.epoch != null && Object.hasOwnProperty.call(message, "epoch")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.epoch); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.limit); + if (message.startAfter != null && Object.hasOwnProperty.call(message, "startAfter")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.startAfter); + if (message.startAt != null && Object.hasOwnProperty.call(message, "startAt")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.startAt); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.prove); + return writer; + }; - /** - * Properties of a ContestedResourceVoteStatusRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @interface IContestedResourceVoteStatusRequest - * @property {Uint8Array|null} [contractId] ContestedResourceVoteStatusRequest contractId - * @property {string|null} [documentTypeName] ContestedResourceVoteStatusRequest documentTypeName - * @property {string|null} [indexName] ContestedResourceVoteStatusRequest indexName - * @property {Array.|null} [indexValues] ContestedResourceVoteStatusRequest indexValues - * @property {Uint8Array|null} [voterIdentifier] ContestedResourceVoteStatusRequest voterIdentifier - */ + /** + * Encodes the specified GetEvonodesProposedEpochBlocksByRangeRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.IGetEvonodesProposedEpochBlocksByRangeRequestV0} message GetEvonodesProposedEpochBlocksByRangeRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new ContestedResourceVoteStatusRequest. - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest - * @classdesc Represents a ContestedResourceVoteStatusRequest. - * @implements IContestedResourceVoteStatusRequest - * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest=} [properties] Properties to set - */ - function ContestedResourceVoteStatusRequest(properties) { - this.indexValues = []; - 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]]; + /** + * Decodes a GetEvonodesProposedEpochBlocksByRangeRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.epoch = reader.uint32(); + break; + case 2: + message.limit = reader.uint32(); + break; + case 3: + message.startAfter = reader.bytes(); + break; + case 4: + message.startAt = reader.bytes(); + break; + case 5: + message.prove = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; } + } + return message; + }; - /** - * ContestedResourceVoteStatusRequest contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - */ - ContestedResourceVoteStatusRequest.prototype.contractId = $util.newBuffer([]); + /** + * Decodes a GetEvonodesProposedEpochBlocksByRangeRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * ContestedResourceVoteStatusRequest documentTypeName. - * @member {string} documentTypeName - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - */ - ContestedResourceVoteStatusRequest.prototype.documentTypeName = ""; + /** + * Verifies a GetEvonodesProposedEpochBlocksByRangeRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.epoch != null && message.hasOwnProperty("epoch")) + if (!$util.isInteger(message.epoch)) + return "epoch: integer expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit)) + return "limit: integer expected"; + if (message.startAfter != null && message.hasOwnProperty("startAfter")) { + properties.start = 1; + if (!(message.startAfter && typeof message.startAfter.length === "number" || $util.isString(message.startAfter))) + return "startAfter: buffer expected"; + } + if (message.startAt != null && message.hasOwnProperty("startAt")) { + if (properties.start === 1) + return "start: multiple values"; + properties.start = 1; + if (!(message.startAt && typeof message.startAt.length === "number" || $util.isString(message.startAt))) + return "startAt: buffer expected"; + } + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; - /** - * ContestedResourceVoteStatusRequest indexName. - * @member {string} indexName - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - */ - ContestedResourceVoteStatusRequest.prototype.indexName = ""; + /** + * Creates a GetEvonodesProposedEpochBlocksByRangeRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} GetEvonodesProposedEpochBlocksByRangeRequestV0 + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0(); + if (object.epoch != null) + message.epoch = object.epoch >>> 0; + if (object.limit != null) + message.limit = object.limit >>> 0; + if (object.startAfter != null) + if (typeof object.startAfter === "string") + $util.base64.decode(object.startAfter, message.startAfter = $util.newBuffer($util.base64.length(object.startAfter)), 0); + else if (object.startAfter.length >= 0) + message.startAfter = object.startAfter; + if (object.startAt != null) + if (typeof object.startAt === "string") + $util.base64.decode(object.startAt, message.startAt = $util.newBuffer($util.base64.length(object.startAt)), 0); + else if (object.startAt.length >= 0) + message.startAt = object.startAt; + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; - /** - * ContestedResourceVoteStatusRequest indexValues. - * @member {Array.} indexValues - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - */ - ContestedResourceVoteStatusRequest.prototype.indexValues = $util.emptyArray; + /** + * Creates a plain object from a GetEvonodesProposedEpochBlocksByRangeRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} message GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.epoch = 0; + object.limit = 0; + object.prove = false; + } + if (message.epoch != null && message.hasOwnProperty("epoch")) + object.epoch = message.epoch; + if (message.limit != null && message.hasOwnProperty("limit")) + object.limit = message.limit; + if (message.startAfter != null && message.hasOwnProperty("startAfter")) { + object.startAfter = options.bytes === String ? $util.base64.encode(message.startAfter, 0, message.startAfter.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAfter) : message.startAfter; + if (options.oneofs) + object.start = "startAfter"; + } + if (message.startAt != null && message.hasOwnProperty("startAt")) { + object.startAt = options.bytes === String ? $util.base64.encode(message.startAt, 0, message.startAt.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAt) : message.startAt; + if (options.oneofs) + object.start = "startAt"; + } + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; - /** - * ContestedResourceVoteStatusRequest voterIdentifier. - * @member {Uint8Array} voterIdentifier - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - */ - ContestedResourceVoteStatusRequest.prototype.voterIdentifier = $util.newBuffer([]); + /** + * Converts this GetEvonodesProposedEpochBlocksByRangeRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Creates a new ContestedResourceVoteStatusRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest instance - */ - ContestedResourceVoteStatusRequest.create = function create(properties) { - return new ContestedResourceVoteStatusRequest(properties); - }; + return GetEvonodesProposedEpochBlocksByRangeRequestV0; + })(); - /** - * Encodes the specified ContestedResourceVoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceVoteStatusRequest.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); - if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); - if (message.indexValues != null && message.indexValues.length) - for (var i = 0; i < message.indexValues.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); - if (message.voterIdentifier != null && Object.hasOwnProperty.call(message, "voterIdentifier")) - writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.voterIdentifier); - return writer; - }; + return GetEvonodesProposedEpochBlocksByRangeRequest; + })(); - /** - * Encodes the specified ContestedResourceVoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceVoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + v0.GetIdentitiesBalancesRequest = (function() { - /** - * Decodes a ContestedResourceVoteStatusRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceVoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.contractId = reader.bytes(); - break; - case 2: - message.documentTypeName = reader.string(); - break; - case 3: - message.indexName = reader.string(); - break; - case 4: - if (!(message.indexValues && message.indexValues.length)) - message.indexValues = []; - message.indexValues.push(reader.bytes()); - break; - case 5: - message.voterIdentifier = reader.bytes(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Properties of a GetIdentitiesBalancesRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetIdentitiesBalancesRequest + * @property {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0|null} [v0] GetIdentitiesBalancesRequest v0 + */ - /** - * Decodes a ContestedResourceVoteStatusRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceVoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ContestedResourceVoteStatusRequest message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ContestedResourceVoteStatusRequest.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - if (!$util.isString(message.documentTypeName)) - return "documentTypeName: string expected"; - if (message.indexName != null && message.hasOwnProperty("indexName")) - if (!$util.isString(message.indexName)) - return "indexName: string expected"; - if (message.indexValues != null && message.hasOwnProperty("indexValues")) { - if (!Array.isArray(message.indexValues)) - return "indexValues: array expected"; - for (var i = 0; i < message.indexValues.length; ++i) - if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) - return "indexValues: buffer[] expected"; - } - if (message.voterIdentifier != null && message.hasOwnProperty("voterIdentifier")) - if (!(message.voterIdentifier && typeof message.voterIdentifier.length === "number" || $util.isString(message.voterIdentifier))) - return "voterIdentifier: buffer expected"; - return null; - }; - - /** - * Creates a ContestedResourceVoteStatusRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest - */ - ContestedResourceVoteStatusRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - if (object.documentTypeName != null) - message.documentTypeName = String(object.documentTypeName); - if (object.indexName != null) - message.indexName = String(object.indexName); - if (object.indexValues) { - if (!Array.isArray(object.indexValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.indexValues: array expected"); - message.indexValues = []; - for (var i = 0; i < object.indexValues.length; ++i) - if (typeof object.indexValues[i] === "string") - $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); - else if (object.indexValues[i].length >= 0) - message.indexValues[i] = object.indexValues[i]; - } - if (object.voterIdentifier != null) - if (typeof object.voterIdentifier === "string") - $util.base64.decode(object.voterIdentifier, message.voterIdentifier = $util.newBuffer($util.base64.length(object.voterIdentifier)), 0); - else if (object.voterIdentifier.length >= 0) - message.voterIdentifier = object.voterIdentifier; - return message; - }; - - /** - * Creates a plain object from a ContestedResourceVoteStatusRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @static - * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ContestedResourceVoteStatusRequest.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.indexValues = []; - if (options.defaults) { - if (options.bytes === String) - object.contractId = ""; - else { - object.contractId = []; - if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); - } - object.documentTypeName = ""; - object.indexName = ""; - if (options.bytes === String) - object.voterIdentifier = ""; - else { - object.voterIdentifier = []; - if (options.bytes !== Array) - object.voterIdentifier = $util.newBuffer(object.voterIdentifier); - } - } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - object.documentTypeName = message.documentTypeName; - if (message.indexName != null && message.hasOwnProperty("indexName")) - object.indexName = message.indexName; - if (message.indexValues && message.indexValues.length) { - object.indexValues = []; - for (var j = 0; j < message.indexValues.length; ++j) - object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; - } - if (message.voterIdentifier != null && message.hasOwnProperty("voterIdentifier")) - object.voterIdentifier = options.bytes === String ? $util.base64.encode(message.voterIdentifier, 0, message.voterIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.voterIdentifier) : message.voterIdentifier; - return object; - }; - - /** - * Converts this ContestedResourceVoteStatusRequest to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest - * @instance - * @returns {Object.} JSON object - */ - ContestedResourceVoteStatusRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return ContestedResourceVoteStatusRequest; - })(); - - return VoteStatusRequest; - })(); - - return GetProofsRequestV0; - })(); - - return GetProofsRequest; - })(); - - v0.GetProofsResponse = (function() { - - /** - * Properties of a GetProofsResponse. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetProofsResponse - * @property {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0|null} [v0] GetProofsResponse v0 - */ - - /** - * Constructs a new GetProofsResponse. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProofsResponse. - * @implements IGetProofsResponse - * @constructor - * @param {org.dash.platform.dapi.v0.IGetProofsResponse=} [properties] Properties to set - */ - function GetProofsResponse(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]]; - } + /** + * Constructs a new GetIdentitiesBalancesRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetIdentitiesBalancesRequest. + * @implements IGetIdentitiesBalancesRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest=} [properties] Properties to set + */ + function GetIdentitiesBalancesRequest(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]]; + } /** - * GetProofsResponse v0. - * @member {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * GetIdentitiesBalancesRequest v0. + * @member {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @instance */ - GetProofsResponse.prototype.v0 = null; + GetIdentitiesBalancesRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProofsResponse version. + * GetIdentitiesBalancesRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @instance */ - Object.defineProperty(GetProofsResponse.prototype, "version", { + Object.defineProperty(GetIdentitiesBalancesRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProofsResponse instance using the specified properties. + * Creates a new GetIdentitiesBalancesRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse instance + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} GetIdentitiesBalancesRequest instance */ - GetProofsResponse.create = function create(properties) { - return new GetProofsResponse(properties); + GetIdentitiesBalancesRequest.create = function create(properties) { + return new GetIdentitiesBalancesRequest(properties); }; /** - * Encodes the specified GetProofsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsResponse} message GetProofsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest} message GetIdentitiesBalancesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsResponse.encode = function encode(message, writer) { + GetIdentitiesBalancesRequest.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.GetProofsResponse.GetProofsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProofsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProofsResponse} message GetProofsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesRequest} message GetIdentitiesBalancesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentitiesBalancesRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProofsResponse message from the specified reader or buffer. + * Decodes a GetIdentitiesBalancesRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @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.GetProofsResponse} GetProofsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} GetIdentitiesBalancesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsResponse.decode = function decode(reader, length) { + GetIdentitiesBalancesRequest.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.GetProofsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -13178,37 +13391,37 @@ $root.org = (function() { }; /** - * Decodes a GetProofsResponse message from the specified reader or buffer, length delimited. + * Decodes a GetIdentitiesBalancesRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} GetIdentitiesBalancesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsResponse.decodeDelimited = function decodeDelimited(reader) { + GetIdentitiesBalancesRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProofsResponse message. + * Verifies a GetIdentitiesBalancesRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProofsResponse.verify = function verify(message) { + GetIdentitiesBalancesRequest.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.GetProofsResponse.GetProofsResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -13217,40 +13430,40 @@ $root.org = (function() { }; /** - * Creates a GetProofsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentitiesBalancesRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} GetIdentitiesBalancesRequest */ - GetProofsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsResponse) + GetIdentitiesBalancesRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProofsResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentitiesBalancesRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @static - * @param {org.dash.platform.dapi.v0.GetProofsResponse} message GetProofsResponse + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} message GetIdentitiesBalancesRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProofsResponse.toObject = function toObject(message, options) { + GetIdentitiesBalancesRequest.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.GetProofsResponse.GetProofsResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -13258,35 +13471,36 @@ $root.org = (function() { }; /** - * Converts this GetProofsResponse to JSON. + * Converts this GetIdentitiesBalancesRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest * @instance * @returns {Object.} JSON object */ - GetProofsResponse.prototype.toJSON = function toJSON() { + GetIdentitiesBalancesRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProofsResponse.GetProofsResponseV0 = (function() { + GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 = (function() { /** - * Properties of a GetProofsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProofsResponse - * @interface IGetProofsResponseV0 - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProofsResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProofsResponseV0 metadata + * Properties of a GetIdentitiesBalancesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest + * @interface IGetIdentitiesBalancesRequestV0 + * @property {Array.|null} [ids] GetIdentitiesBalancesRequestV0 ids + * @property {boolean|null} [prove] GetIdentitiesBalancesRequestV0 prove */ /** - * Constructs a new GetProofsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProofsResponse - * @classdesc Represents a GetProofsResponseV0. - * @implements IGetProofsResponseV0 + * Constructs a new GetIdentitiesBalancesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest + * @classdesc Represents a GetIdentitiesBalancesRequestV0. + * @implements IGetIdentitiesBalancesRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0=} [properties] Properties to set */ - function GetProofsResponseV0(properties) { + function GetIdentitiesBalancesRequestV0(properties) { + this.ids = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13294,102 +13508,91 @@ $root.org = (function() { } /** - * GetProofsResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 - * @instance - */ - GetProofsResponseV0.prototype.proof = null; - - /** - * GetProofsResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * GetIdentitiesBalancesRequestV0 ids. + * @member {Array.} ids + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @instance */ - GetProofsResponseV0.prototype.metadata = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + GetIdentitiesBalancesRequestV0.prototype.ids = $util.emptyArray; /** - * GetProofsResponseV0 result. - * @member {"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * GetIdentitiesBalancesRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @instance */ - Object.defineProperty(GetProofsResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + GetIdentitiesBalancesRequestV0.prototype.prove = false; /** - * Creates a new GetProofsResponseV0 instance using the specified properties. + * Creates a new GetIdentitiesBalancesRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} GetIdentitiesBalancesRequestV0 instance */ - GetProofsResponseV0.create = function create(properties) { - return new GetProofsResponseV0(properties); + GetIdentitiesBalancesRequestV0.create = function create(properties) { + return new GetIdentitiesBalancesRequestV0(properties); }; /** - * Encodes the specified GetProofsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0} message GetProofsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0} message GetIdentitiesBalancesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsResponseV0.encode = function encode(message, writer) { + GetIdentitiesBalancesRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.ids != null && message.ids.length) + for (var i = 0; i < message.ids.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ids[i]); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); return writer; }; /** - * Encodes the specified GetProofsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0} message GetProofsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.IGetIdentitiesBalancesRequestV0} message GetIdentitiesBalancesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProofsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentitiesBalancesRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProofsResponseV0 message from the specified reader or buffer. + * Decodes a GetIdentitiesBalancesRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @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.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} GetIdentitiesBalancesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsResponseV0.decode = function decode(reader, length) { + GetIdentitiesBalancesRequestV0.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.GetProofsResponse.GetProofsResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + if (!(message.ids && message.ids.length)) + message.ids = []; + message.ids.push(reader.bytes()); break; case 2: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + message.prove = reader.bool(); break; default: reader.skipType(tag & 7); @@ -13400,134 +13603,134 @@ $root.org = (function() { }; /** - * Decodes a GetProofsResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetIdentitiesBalancesRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} GetIdentitiesBalancesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProofsResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetIdentitiesBalancesRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProofsResponseV0 message. + * Verifies a GetIdentitiesBalancesRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProofsResponseV0.verify = function verify(message) { + GetIdentitiesBalancesRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.proof != null && message.hasOwnProperty("proof")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; + if (message.ids != null && message.hasOwnProperty("ids")) { + if (!Array.isArray(message.ids)) + return "ids: array expected"; + for (var i = 0; i < message.ids.length; ++i) + if (!(message.ids[i] && typeof message.ids[i].length === "number" || $util.isString(message.ids[i]))) + return "ids: buffer[] expected"; } + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; return null; }; /** - * Creates a GetProofsResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentitiesBalancesRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} GetIdentitiesBalancesRequestV0 */ - GetProofsResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0) + GetIdentitiesBalancesRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0(); - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0(); + if (object.ids) { + if (!Array.isArray(object.ids)) + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.ids: array expected"); + message.ids = []; + for (var i = 0; i < object.ids.length; ++i) + if (typeof object.ids[i] === "string") + $util.base64.decode(object.ids[i], message.ids[i] = $util.newBuffer($util.base64.length(object.ids[i])), 0); + else if (object.ids[i].length >= 0) + message.ids[i] = object.ids[i]; } + if (object.prove != null) + message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetProofsResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentitiesBalancesRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message GetProofsResponseV0 + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} message GetIdentitiesBalancesRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProofsResponseV0.toObject = function toObject(message, options) { + GetIdentitiesBalancesRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.ids = []; if (options.defaults) - object.metadata = null; - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + object.prove = false; + if (message.ids && message.ids.length) { + object.ids = []; + for (var j = 0; j < message.ids.length; ++j) + object.ids[j] = options.bytes === String ? $util.base64.encode(message.ids[j], 0, message.ids[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.ids[j]) : message.ids[j]; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; return object; }; /** - * Converts this GetProofsResponseV0 to JSON. + * Converts this GetIdentitiesBalancesRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 * @instance * @returns {Object.} JSON object */ - GetProofsResponseV0.prototype.toJSON = function toJSON() { + GetIdentitiesBalancesRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetProofsResponseV0; + return GetIdentitiesBalancesRequestV0; })(); - return GetProofsResponse; + return GetIdentitiesBalancesRequest; })(); - v0.GetDataContractRequest = (function() { + v0.GetIdentitiesBalancesResponse = (function() { /** - * Properties of a GetDataContractRequest. + * Properties of a GetIdentitiesBalancesResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractRequest - * @property {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0|null} [v0] GetDataContractRequest v0 + * @interface IGetIdentitiesBalancesResponse + * @property {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0|null} [v0] GetIdentitiesBalancesResponse v0 */ /** - * Constructs a new GetDataContractRequest. + * Constructs a new GetIdentitiesBalancesResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractRequest. - * @implements IGetDataContractRequest + * @classdesc Represents a GetIdentitiesBalancesResponse. + * @implements IGetIdentitiesBalancesResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesResponse=} [properties] Properties to set */ - function GetDataContractRequest(properties) { + function GetIdentitiesBalancesResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13535,89 +13738,89 @@ $root.org = (function() { } /** - * GetDataContractRequest v0. - * @member {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * GetIdentitiesBalancesResponse v0. + * @member {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @instance */ - GetDataContractRequest.prototype.v0 = null; + GetIdentitiesBalancesResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractRequest version. + * GetIdentitiesBalancesResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @instance */ - Object.defineProperty(GetDataContractRequest.prototype, "version", { + Object.defineProperty(GetIdentitiesBalancesResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractRequest instance using the specified properties. + * Creates a new GetIdentitiesBalancesResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest instance + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} GetIdentitiesBalancesResponse instance */ - GetDataContractRequest.create = function create(properties) { - return new GetDataContractRequest(properties); + GetIdentitiesBalancesResponse.create = function create(properties) { + return new GetIdentitiesBalancesResponse(properties); }; /** - * Encodes the specified GetDataContractRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractRequest} message GetDataContractRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesResponse} message GetIdentitiesBalancesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractRequest.encode = function encode(message, writer) { + GetIdentitiesBalancesResponse.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.GetDataContractRequest.GetDataContractRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractRequest} message GetDataContractRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentitiesBalancesResponse} message GetIdentitiesBalancesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentitiesBalancesResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractRequest message from the specified reader or buffer. + * Decodes a GetIdentitiesBalancesResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @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.GetDataContractRequest} GetDataContractRequest + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} GetIdentitiesBalancesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractRequest.decode = function decode(reader, length) { + GetIdentitiesBalancesResponse.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.GetDataContractRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -13628,37 +13831,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractRequest message from the specified reader or buffer, length delimited. + * Decodes a GetIdentitiesBalancesResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} GetIdentitiesBalancesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractRequest.decodeDelimited = function decodeDelimited(reader) { + GetIdentitiesBalancesResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractRequest message. + * Verifies a GetIdentitiesBalancesResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractRequest.verify = function verify(message) { + GetIdentitiesBalancesResponse.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.GetDataContractRequest.GetDataContractRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -13667,40 +13870,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentitiesBalancesResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} GetIdentitiesBalancesResponse */ - GetDataContractRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractRequest) + GetIdentitiesBalancesResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentitiesBalancesResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @static - * @param {org.dash.platform.dapi.v0.GetDataContractRequest} message GetDataContractRequest + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} message GetIdentitiesBalancesResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractRequest.toObject = function toObject(message, options) { + GetIdentitiesBalancesResponse.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.GetDataContractRequest.GetDataContractRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -13708,35 +13911,36 @@ $root.org = (function() { }; /** - * Converts this GetDataContractRequest to JSON. + * Converts this GetIdentitiesBalancesResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse * @instance * @returns {Object.} JSON object */ - GetDataContractRequest.prototype.toJSON = function toJSON() { + GetIdentitiesBalancesResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractRequest.GetDataContractRequestV0 = (function() { + GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 = (function() { /** - * Properties of a GetDataContractRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest - * @interface IGetDataContractRequestV0 - * @property {Uint8Array|null} [id] GetDataContractRequestV0 id - * @property {boolean|null} [prove] GetDataContractRequestV0 prove + * Properties of a GetIdentitiesBalancesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse + * @interface IGetIdentitiesBalancesResponseV0 + * @property {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances|null} [identitiesBalances] GetIdentitiesBalancesResponseV0 identitiesBalances + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetIdentitiesBalancesResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetIdentitiesBalancesResponseV0 metadata */ /** - * Constructs a new GetDataContractRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest - * @classdesc Represents a GetDataContractRequestV0. - * @implements IGetDataContractRequestV0 + * Constructs a new GetIdentitiesBalancesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse + * @classdesc Represents a GetIdentitiesBalancesResponseV0. + * @implements IGetIdentitiesBalancesResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0=} [properties] Properties to set */ - function GetDataContractRequestV0(properties) { + function GetIdentitiesBalancesResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13744,88 +13948,115 @@ $root.org = (function() { } /** - * GetDataContractRequestV0 id. - * @member {Uint8Array} id - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * GetIdentitiesBalancesResponseV0 identitiesBalances. + * @member {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances|null|undefined} identitiesBalances + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @instance */ - GetDataContractRequestV0.prototype.id = $util.newBuffer([]); + GetIdentitiesBalancesResponseV0.prototype.identitiesBalances = null; /** - * GetDataContractRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * GetIdentitiesBalancesResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @instance */ - GetDataContractRequestV0.prototype.prove = false; + GetIdentitiesBalancesResponseV0.prototype.proof = null; /** - * Creates a new GetDataContractRequestV0 instance using the specified properties. + * GetIdentitiesBalancesResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @instance + */ + GetIdentitiesBalancesResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetIdentitiesBalancesResponseV0 result. + * @member {"identitiesBalances"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @instance + */ + Object.defineProperty(GetIdentitiesBalancesResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["identitiesBalances", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetIdentitiesBalancesResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} GetIdentitiesBalancesResponseV0 instance */ - GetDataContractRequestV0.create = function create(properties) { - return new GetDataContractRequestV0(properties); + GetIdentitiesBalancesResponseV0.create = function create(properties) { + return new GetIdentitiesBalancesResponseV0(properties); }; /** - * Encodes the specified GetDataContractRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0} message GetDataContractRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0} message GetIdentitiesBalancesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractRequestV0.encode = function encode(message, writer) { + GetIdentitiesBalancesResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + if (message.identitiesBalances != null && Object.hasOwnProperty.call(message, "identitiesBalances")) + $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.encode(message.identitiesBalances, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.verify|verify} messages. + * Encodes the specified GetIdentitiesBalancesResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0} message GetDataContractRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.IGetIdentitiesBalancesResponseV0} message GetIdentitiesBalancesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentitiesBalancesResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractRequestV0 message from the specified reader or buffer. + * Decodes a GetIdentitiesBalancesResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @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.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} GetIdentitiesBalancesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractRequestV0.decode = function decode(reader, length) { + GetIdentitiesBalancesResponseV0.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.GetDataContractRequest.GetDataContractRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.bytes(); + message.identitiesBalances = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.decode(reader, reader.uint32()); break; case 2: - message.prove = reader.bool(); + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -13836,128 +14067,595 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetIdentitiesBalancesResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} GetIdentitiesBalancesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetIdentitiesBalancesResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractRequestV0 message. + * Verifies a GetIdentitiesBalancesResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractRequestV0.verify = function verify(message) { + GetIdentitiesBalancesResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) - return "id: buffer expected"; - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; - return null; - }; - - /** - * Creates a GetDataContractRequestV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 - */ - GetDataContractRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0(); - if (object.id != null) - if (typeof object.id === "string") - $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); - else if (object.id.length >= 0) - message.id = object.id; - if (object.prove != null) - message.prove = Boolean(object.prove); + var properties = {}; + if (message.identitiesBalances != null && message.hasOwnProperty("identitiesBalances")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.verify(message.identitiesBalances); + if (error) + return "identitiesBalances." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetIdentitiesBalancesResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} GetIdentitiesBalancesResponseV0 + */ + GetIdentitiesBalancesResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0(); + if (object.identitiesBalances != null) { + if (typeof object.identitiesBalances !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.identitiesBalances: object expected"); + message.identitiesBalances = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.fromObject(object.identitiesBalances); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } return message; }; /** - * Creates a plain object from a GetDataContractRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentitiesBalancesResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message GetDataContractRequestV0 + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} message GetIdentitiesBalancesResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractRequestV0.toObject = function toObject(message, options) { + GetIdentitiesBalancesResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.id = ""; - else { - object.id = []; - if (options.bytes !== Array) - object.id = $util.newBuffer(object.id); - } - object.prove = false; + if (options.defaults) + object.metadata = null; + if (message.identitiesBalances != null && message.hasOwnProperty("identitiesBalances")) { + object.identitiesBalances = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.toObject(message.identitiesBalances, options); + if (options.oneofs) + object.result = "identitiesBalances"; } - if (message.id != null && message.hasOwnProperty("id")) - object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this GetDataContractRequestV0 to JSON. + * Converts this GetIdentitiesBalancesResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 * @instance * @returns {Object.} JSON object */ - GetDataContractRequestV0.prototype.toJSON = function toJSON() { + GetIdentitiesBalancesResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetDataContractRequestV0; + GetIdentitiesBalancesResponseV0.IdentityBalance = (function() { + + /** + * Properties of an IdentityBalance. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @interface IIdentityBalance + * @property {Uint8Array|null} [identityId] IdentityBalance identityId + * @property {number|Long|null} [balance] IdentityBalance balance + */ + + /** + * Constructs a new IdentityBalance. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @classdesc Represents an IdentityBalance. + * @implements IIdentityBalance + * @constructor + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentityBalance=} [properties] Properties to set + */ + function IdentityBalance(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]]; + } + + /** + * IdentityBalance identityId. + * @member {Uint8Array} identityId + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @instance + */ + IdentityBalance.prototype.identityId = $util.newBuffer([]); + + /** + * IdentityBalance balance. + * @member {number|Long} balance + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @instance + */ + IdentityBalance.prototype.balance = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new IdentityBalance instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentityBalance=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} IdentityBalance instance + */ + IdentityBalance.create = function create(properties) { + return new IdentityBalance(properties); + }; + + /** + * Encodes the specified IdentityBalance message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentityBalance} message IdentityBalance message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentityBalance.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identityId); + if (message.balance != null && Object.hasOwnProperty.call(message, "balance")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.balance); + return writer; + }; + + /** + * Encodes the specified IdentityBalance message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentityBalance} message IdentityBalance message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentityBalance.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an IdentityBalance message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} IdentityBalance + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.identityId = reader.bytes(); + break; + case 2: + message.balance = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an IdentityBalance message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} IdentityBalance + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentityBalance.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an IdentityBalance message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + IdentityBalance.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.identityId != null && message.hasOwnProperty("identityId")) + if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) + return "identityId: buffer expected"; + if (message.balance != null && message.hasOwnProperty("balance")) + if (!$util.isInteger(message.balance) && !(message.balance && $util.isInteger(message.balance.low) && $util.isInteger(message.balance.high))) + return "balance: integer|Long expected"; + return null; + }; + + /** + * Creates an IdentityBalance message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} IdentityBalance + */ + IdentityBalance.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance(); + if (object.identityId != null) + if (typeof object.identityId === "string") + $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); + else if (object.identityId.length >= 0) + message.identityId = object.identityId; + if (object.balance != null) + if ($util.Long) + (message.balance = $util.Long.fromValue(object.balance)).unsigned = true; + else if (typeof object.balance === "string") + message.balance = parseInt(object.balance, 10); + else if (typeof object.balance === "number") + message.balance = object.balance; + else if (typeof object.balance === "object") + message.balance = new $util.LongBits(object.balance.low >>> 0, object.balance.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from an IdentityBalance message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} message IdentityBalance + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + IdentityBalance.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.identityId = ""; + else { + object.identityId = []; + if (options.bytes !== Array) + object.identityId = $util.newBuffer(object.identityId); + } + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.balance = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.balance = options.longs === String ? "0" : 0; + } + if (message.identityId != null && message.hasOwnProperty("identityId")) + object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; + if (message.balance != null && message.hasOwnProperty("balance")) + if (typeof message.balance === "number") + object.balance = options.longs === String ? String(message.balance) : message.balance; + else + object.balance = options.longs === String ? $util.Long.prototype.toString.call(message.balance) : options.longs === Number ? new $util.LongBits(message.balance.low >>> 0, message.balance.high >>> 0).toNumber(true) : message.balance; + return object; + }; + + /** + * Converts this IdentityBalance to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance + * @instance + * @returns {Object.} JSON object + */ + IdentityBalance.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return IdentityBalance; + })(); + + GetIdentitiesBalancesResponseV0.IdentitiesBalances = (function() { + + /** + * Properties of an IdentitiesBalances. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @interface IIdentitiesBalances + * @property {Array.|null} [entries] IdentitiesBalances entries + */ + + /** + * Constructs a new IdentitiesBalances. + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 + * @classdesc Represents an IdentitiesBalances. + * @implements IIdentitiesBalances + * @constructor + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances=} [properties] Properties to set + */ + function IdentitiesBalances(properties) { + this.entries = []; + 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]]; + } + + /** + * IdentitiesBalances entries. + * @member {Array.} entries + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @instance + */ + IdentitiesBalances.prototype.entries = $util.emptyArray; + + /** + * Creates a new IdentitiesBalances instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} IdentitiesBalances instance + */ + IdentitiesBalances.create = function create(properties) { + return new IdentitiesBalances(properties); + }; + + /** + * Encodes the specified IdentitiesBalances message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances} message IdentitiesBalances message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentitiesBalances.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.entries != null && message.entries.length) + for (var i = 0; i < message.entries.length; ++i) + $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified IdentitiesBalances message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IIdentitiesBalances} message IdentitiesBalances message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentitiesBalances.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an IdentitiesBalances message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} IdentitiesBalances + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.entries && message.entries.length)) + message.entries = []; + message.entries.push($root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an IdentitiesBalances message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} IdentitiesBalances + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentitiesBalances.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an IdentitiesBalances message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + IdentitiesBalances.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.entries != null && message.hasOwnProperty("entries")) { + if (!Array.isArray(message.entries)) + return "entries: array expected"; + for (var i = 0; i < message.entries.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.verify(message.entries[i]); + if (error) + return "entries." + error; + } + } + return null; + }; + + /** + * Creates an IdentitiesBalances message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} IdentitiesBalances + */ + IdentitiesBalances.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances(); + if (object.entries) { + if (!Array.isArray(object.entries)) + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.entries: array expected"); + message.entries = []; + for (var i = 0; i < object.entries.length; ++i) { + if (typeof object.entries[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.entries: object expected"); + message.entries[i] = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.fromObject(object.entries[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an IdentitiesBalances message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @static + * @param {org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} message IdentitiesBalances + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + IdentitiesBalances.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.entries = []; + if (message.entries && message.entries.length) { + object.entries = []; + for (var j = 0; j < message.entries.length; ++j) + object.entries[j] = $root.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.toObject(message.entries[j], options); + } + return object; + }; + + /** + * Converts this IdentitiesBalances to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances + * @instance + * @returns {Object.} JSON object + */ + IdentitiesBalances.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return IdentitiesBalances; + })(); + + return GetIdentitiesBalancesResponseV0; })(); - return GetDataContractRequest; + return GetIdentitiesBalancesResponse; })(); - v0.GetDataContractResponse = (function() { + v0.GetProofsRequest = (function() { /** - * Properties of a GetDataContractResponse. + * Properties of a GetProofsRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractResponse - * @property {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0|null} [v0] GetDataContractResponse v0 + * @interface IGetProofsRequest + * @property {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0|null} [v0] GetProofsRequest v0 */ /** - * Constructs a new GetDataContractResponse. + * Constructs a new GetProofsRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractResponse. - * @implements IGetDataContractResponse + * @classdesc Represents a GetProofsRequest. + * @implements IGetProofsRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetProofsRequest=} [properties] Properties to set */ - function GetDataContractResponse(properties) { + function GetProofsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -13965,89 +14663,89 @@ $root.org = (function() { } /** - * GetDataContractResponse v0. - * @member {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * GetProofsRequest v0. + * @member {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @instance */ - GetDataContractResponse.prototype.v0 = null; + GetProofsRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractResponse version. + * GetProofsRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @instance */ - Object.defineProperty(GetDataContractResponse.prototype, "version", { + Object.defineProperty(GetProofsRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractResponse instance using the specified properties. + * Creates a new GetProofsRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse instance + * @param {org.dash.platform.dapi.v0.IGetProofsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest instance */ - GetDataContractResponse.create = function create(properties) { - return new GetDataContractResponse(properties); + GetProofsRequest.create = function create(properties) { + return new GetProofsRequest(properties); }; /** - * Encodes the specified GetDataContractResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.verify|verify} messages. + * Encodes the specified GetProofsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractResponse} message GetDataContractResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProofsRequest} message GetProofsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractResponse.encode = function encode(message, writer) { + GetProofsRequest.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.GetDataContractResponse.GetDataContractResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.verify|verify} messages. + * Encodes the specified GetProofsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractResponse} message GetDataContractResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProofsRequest} message GetProofsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetProofsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractResponse message from the specified reader or buffer. + * Decodes a GetProofsRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @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.GetDataContractResponse} GetDataContractResponse + * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractResponse.decode = function decode(reader, length) { + GetProofsRequest.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.GetDataContractResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProofsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14058,37 +14756,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractResponse message from the specified reader or buffer, length delimited. + * Decodes a GetProofsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse + * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractResponse.decodeDelimited = function decodeDelimited(reader) { + GetProofsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractResponse message. + * Verifies a GetProofsRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractResponse.verify = function verify(message) { + GetProofsRequest.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.GetDataContractResponse.GetDataContractResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -14097,40 +14795,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetProofsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse + * @returns {org.dash.platform.dapi.v0.GetProofsRequest} GetProofsRequest */ - GetDataContractResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractResponse) + GetProofsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetProofsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @static - * @param {org.dash.platform.dapi.v0.GetDataContractResponse} message GetDataContractResponse + * @param {org.dash.platform.dapi.v0.GetProofsRequest} message GetProofsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractResponse.toObject = function toObject(message, options) { + GetProofsRequest.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.GetDataContractResponse.GetDataContractResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -14138,36 +14836,41 @@ $root.org = (function() { }; /** - * Converts this GetDataContractResponse to JSON. + * Converts this GetProofsRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @memberof org.dash.platform.dapi.v0.GetProofsRequest * @instance * @returns {Object.} JSON object */ - GetDataContractResponse.prototype.toJSON = function toJSON() { + GetProofsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractResponse.GetDataContractResponseV0 = (function() { + GetProofsRequest.GetProofsRequestV0 = (function() { /** - * Properties of a GetDataContractResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse - * @interface IGetDataContractResponseV0 - * @property {Uint8Array|null} [dataContract] GetDataContractResponseV0 dataContract - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractResponseV0 metadata + * Properties of a GetProofsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @interface IGetProofsRequestV0 + * @property {Array.|null} [identities] GetProofsRequestV0 identities + * @property {Array.|null} [contracts] GetProofsRequestV0 contracts + * @property {Array.|null} [documents] GetProofsRequestV0 documents + * @property {Array.|null} [votes] GetProofsRequestV0 votes */ /** - * Constructs a new GetDataContractResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse - * @classdesc Represents a GetDataContractResponseV0. - * @implements IGetDataContractResponseV0 + * Constructs a new GetProofsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest + * @classdesc Represents a GetProofsRequestV0. + * @implements IGetProofsRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0=} [properties] Properties to set */ - function GetDataContractResponseV0(properties) { + function GetProofsRequestV0(properties) { + this.identities = []; + this.contracts = []; + this.documents = []; + this.votes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14175,115 +14878,126 @@ $root.org = (function() { } /** - * GetDataContractResponseV0 dataContract. - * @member {Uint8Array} dataContract - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * GetProofsRequestV0 identities. + * @member {Array.} identities + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @instance */ - GetDataContractResponseV0.prototype.dataContract = $util.newBuffer([]); + GetProofsRequestV0.prototype.identities = $util.emptyArray; /** - * GetDataContractResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * GetProofsRequestV0 contracts. + * @member {Array.} contracts + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @instance */ - GetDataContractResponseV0.prototype.proof = null; + GetProofsRequestV0.prototype.contracts = $util.emptyArray; /** - * GetDataContractResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * GetProofsRequestV0 documents. + * @member {Array.} documents + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @instance */ - GetDataContractResponseV0.prototype.metadata = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + GetProofsRequestV0.prototype.documents = $util.emptyArray; /** - * GetDataContractResponseV0 result. - * @member {"dataContract"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * GetProofsRequestV0 votes. + * @member {Array.} votes + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @instance */ - Object.defineProperty(GetDataContractResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["dataContract", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + GetProofsRequestV0.prototype.votes = $util.emptyArray; /** - * Creates a new GetDataContractResponseV0 instance using the specified properties. + * Creates a new GetProofsRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 instance */ - GetDataContractResponseV0.create = function create(properties) { - return new GetDataContractResponseV0(properties); + GetProofsRequestV0.create = function create(properties) { + return new GetProofsRequestV0(properties); }; /** - * Encodes the specified GetDataContractResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.verify|verify} messages. + * Encodes the specified GetProofsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0} message GetDataContractResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0} message GetProofsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractResponseV0.encode = function encode(message, writer) { + GetProofsRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataContract != null && Object.hasOwnProperty.call(message, "dataContract")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.dataContract); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.identities != null && message.identities.length) + for (var i = 0; i < message.identities.length; ++i) + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.encode(message.identities[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contracts != null && message.contracts.length) + for (var i = 0; i < message.contracts.length; ++i) + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.encode(message.contracts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.documents != null && message.documents.length) + for (var i = 0; i < message.documents.length; ++i) + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.encode(message.documents[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.votes != null && message.votes.length) + for (var i = 0; i < message.votes.length; ++i) + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.encode(message.votes[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.verify|verify} messages. + * Encodes the specified GetProofsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0} message GetDataContractResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProofsRequest.IGetProofsRequestV0} message GetProofsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetProofsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractResponseV0 message from the specified reader or buffer. + * Decodes a GetProofsRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @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.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractResponseV0.decode = function decode(reader, length) { + GetProofsRequestV0.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.GetDataContractResponse.GetDataContractResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dataContract = reader.bytes(); + if (!(message.identities && message.identities.length)) + message.identities = []; + message.identities.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.decode(reader, reader.uint32())); break; case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + if (!(message.contracts && message.contracts.length)) + message.contracts = []; + message.contracts.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.decode(reader, reader.uint32())); break; case 3: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + if (!(message.documents && message.documents.length)) + message.documents = []; + message.documents.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.decode(reader, reader.uint32())); + break; + case 4: + if (!(message.votes && message.votes.length)) + message.votes = []; + message.votes.push($root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -14294,241 +15008,6375 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetProofsRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetProofsRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractResponseV0 message. + * Verifies a GetProofsRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractResponseV0.verify = function verify(message) { + GetProofsRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.dataContract != null && message.hasOwnProperty("dataContract")) { - properties.result = 1; - if (!(message.dataContract && typeof message.dataContract.length === "number" || $util.isString(message.dataContract))) - return "dataContract: buffer expected"; + if (message.identities != null && message.hasOwnProperty("identities")) { + if (!Array.isArray(message.identities)) + return "identities: array expected"; + for (var i = 0; i < message.identities.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify(message.identities[i]); + if (error) + return "identities." + error; + } } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (message.contracts != null && message.hasOwnProperty("contracts")) { + if (!Array.isArray(message.contracts)) + return "contracts: array expected"; + for (var i = 0; i < message.contracts.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify(message.contracts[i]); if (error) - return "proof." + error; + return "contracts." + error; } } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; + if (message.documents != null && message.hasOwnProperty("documents")) { + if (!Array.isArray(message.documents)) + return "documents: array expected"; + for (var i = 0; i < message.documents.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify(message.documents[i]); + if (error) + return "documents." + error; + } + } + if (message.votes != null && message.hasOwnProperty("votes")) { + if (!Array.isArray(message.votes)) + return "votes: array expected"; + for (var i = 0; i < message.votes.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify(message.votes[i]); + if (error) + return "votes." + error; + } } return null; }; /** - * Creates a GetDataContractResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetProofsRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} GetProofsRequestV0 */ - GetDataContractResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0) + GetProofsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0(); - if (object.dataContract != null) - if (typeof object.dataContract === "string") - $util.base64.decode(object.dataContract, message.dataContract = $util.newBuffer($util.base64.length(object.dataContract)), 0); - else if (object.dataContract.length >= 0) - message.dataContract = object.dataContract; - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0(); + if (object.identities) { + if (!Array.isArray(object.identities)) + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities: array expected"); + message.identities = []; + for (var i = 0; i < object.identities.length; ++i) { + if (typeof object.identities[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities: object expected"); + message.identities[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.fromObject(object.identities[i]); + } } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + if (object.contracts) { + if (!Array.isArray(object.contracts)) + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts: array expected"); + message.contracts = []; + for (var i = 0; i < object.contracts.length; ++i) { + if (typeof object.contracts[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts: object expected"); + message.contracts[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.fromObject(object.contracts[i]); + } + } + if (object.documents) { + if (!Array.isArray(object.documents)) + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents: array expected"); + message.documents = []; + for (var i = 0; i < object.documents.length; ++i) { + if (typeof object.documents[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents: object expected"); + message.documents[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.fromObject(object.documents[i]); + } + } + if (object.votes) { + if (!Array.isArray(object.votes)) + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes: array expected"); + message.votes = []; + for (var i = 0; i < object.votes.length; ++i) { + if (typeof object.votes[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes: object expected"); + message.votes[i] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.fromObject(object.votes[i]); + } } return message; }; /** - * Creates a plain object from a GetDataContractResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetProofsRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message GetDataContractResponseV0 + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message GetProofsRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractResponseV0.toObject = function toObject(message, options) { + GetProofsRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.metadata = null; - if (message.dataContract != null && message.hasOwnProperty("dataContract")) { - object.dataContract = options.bytes === String ? $util.base64.encode(message.dataContract, 0, message.dataContract.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataContract) : message.dataContract; - if (options.oneofs) - object.result = "dataContract"; + if (options.arrays || options.defaults) { + object.identities = []; + object.contracts = []; + object.documents = []; + object.votes = []; } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + if (message.identities && message.identities.length) { + object.identities = []; + for (var j = 0; j < message.identities.length; ++j) + object.identities[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(message.identities[j], options); + } + if (message.contracts && message.contracts.length) { + object.contracts = []; + for (var j = 0; j < message.contracts.length; ++j) + object.contracts[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(message.contracts[j], options); + } + if (message.documents && message.documents.length) { + object.documents = []; + for (var j = 0; j < message.documents.length; ++j) + object.documents[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject(message.documents[j], options); + } + if (message.votes && message.votes.length) { + object.votes = []; + for (var j = 0; j < message.votes.length; ++j) + object.votes[j] = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(message.votes[j], options); } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this GetDataContractResponseV0 to JSON. + * Converts this GetProofsRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 * @instance * @returns {Object.} JSON object */ - GetDataContractResponseV0.prototype.toJSON = function toJSON() { + GetProofsRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetDataContractResponseV0; - })(); - - return GetDataContractResponse; - })(); + GetProofsRequestV0.DocumentRequest = (function() { - v0.GetDataContractsRequest = (function() { + /** + * Properties of a DocumentRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @interface IDocumentRequest + * @property {Uint8Array|null} [contractId] DocumentRequest contractId + * @property {string|null} [documentType] DocumentRequest documentType + * @property {boolean|null} [documentTypeKeepsHistory] DocumentRequest documentTypeKeepsHistory + * @property {Uint8Array|null} [documentId] DocumentRequest documentId + * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus|null} [documentContestedStatus] DocumentRequest documentContestedStatus + */ - /** - * Properties of a GetDataContractsRequest. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractsRequest - * @property {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0|null} [v0] GetDataContractsRequest v0 - */ + /** + * Constructs a new DocumentRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @classdesc Represents a DocumentRequest. + * @implements IDocumentRequest + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest=} [properties] Properties to set + */ + function DocumentRequest(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]]; + } - /** - * Constructs a new GetDataContractsRequest. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractsRequest. - * @implements IGetDataContractsRequest - * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest=} [properties] Properties to set - */ - function GetDataContractsRequest(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]]; - } + /** + * DocumentRequest contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + */ + DocumentRequest.prototype.contractId = $util.newBuffer([]); - /** - * GetDataContractsRequest v0. - * @member {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @instance - */ - GetDataContractsRequest.prototype.v0 = null; + /** + * DocumentRequest documentType. + * @member {string} documentType + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + */ + DocumentRequest.prototype.documentType = ""; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * DocumentRequest documentTypeKeepsHistory. + * @member {boolean} documentTypeKeepsHistory + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + */ + DocumentRequest.prototype.documentTypeKeepsHistory = false; - /** - * GetDataContractsRequest version. - * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @instance - */ - Object.defineProperty(GetDataContractsRequest.prototype, "version", { - get: $util.oneOfGetter($oneOfFields = ["v0"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * DocumentRequest documentId. + * @member {Uint8Array} documentId + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + */ + DocumentRequest.prototype.documentId = $util.newBuffer([]); - /** - * Creates a new GetDataContractsRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest instance - */ - GetDataContractsRequest.create = function create(properties) { - return new GetDataContractsRequest(properties); - }; + /** + * DocumentRequest documentContestedStatus. + * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} documentContestedStatus + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + */ + DocumentRequest.prototype.documentContestedStatus = 0; - /** - * Encodes the specified GetDataContractsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest} message GetDataContractsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetDataContractsRequest.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.GetDataContractsRequest.GetDataContractsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Creates a new DocumentRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest instance + */ + DocumentRequest.create = function create(properties) { + return new DocumentRequest(properties); + }; - /** - * Encodes the specified GetDataContractsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest} message GetDataContractsRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetDataContractsRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified DocumentRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest} message DocumentRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DocumentRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + if (message.documentType != null && Object.hasOwnProperty.call(message, "documentType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentType); + if (message.documentTypeKeepsHistory != null && Object.hasOwnProperty.call(message, "documentTypeKeepsHistory")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.documentTypeKeepsHistory); + if (message.documentId != null && Object.hasOwnProperty.call(message, "documentId")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.documentId); + if (message.documentContestedStatus != null && Object.hasOwnProperty.call(message, "documentContestedStatus")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.documentContestedStatus); + return writer; + }; - /** - * Decodes a GetDataContractsRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @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.GetDataContractsRequest} GetDataContractsRequest - * @throws {Error} If the payload is not a reader or valid buffer + /** + * Encodes the specified DocumentRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IDocumentRequest} message DocumentRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DocumentRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DocumentRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contractId = reader.bytes(); + break; + case 2: + message.documentType = reader.string(); + break; + case 3: + message.documentTypeKeepsHistory = reader.bool(); + break; + case 4: + message.documentId = reader.bytes(); + break; + case 5: + message.documentContestedStatus = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DocumentRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DocumentRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DocumentRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DocumentRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + if (message.documentType != null && message.hasOwnProperty("documentType")) + if (!$util.isString(message.documentType)) + return "documentType: string expected"; + if (message.documentTypeKeepsHistory != null && message.hasOwnProperty("documentTypeKeepsHistory")) + if (typeof message.documentTypeKeepsHistory !== "boolean") + return "documentTypeKeepsHistory: boolean expected"; + if (message.documentId != null && message.hasOwnProperty("documentId")) + if (!(message.documentId && typeof message.documentId.length === "number" || $util.isString(message.documentId))) + return "documentId: buffer expected"; + if (message.documentContestedStatus != null && message.hasOwnProperty("documentContestedStatus")) + switch (message.documentContestedStatus) { + default: + return "documentContestedStatus: enum value expected"; + case 0: + case 1: + case 2: + break; + } + return null; + }; + + /** + * Creates a DocumentRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} DocumentRequest + */ + DocumentRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + if (object.documentType != null) + message.documentType = String(object.documentType); + if (object.documentTypeKeepsHistory != null) + message.documentTypeKeepsHistory = Boolean(object.documentTypeKeepsHistory); + if (object.documentId != null) + if (typeof object.documentId === "string") + $util.base64.decode(object.documentId, message.documentId = $util.newBuffer($util.base64.length(object.documentId)), 0); + else if (object.documentId.length >= 0) + message.documentId = object.documentId; + switch (object.documentContestedStatus) { + case "NOT_CONTESTED": + case 0: + message.documentContestedStatus = 0; + break; + case "MAYBE_CONTESTED": + case 1: + message.documentContestedStatus = 1; + break; + case "CONTESTED": + case 2: + message.documentContestedStatus = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a DocumentRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message DocumentRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DocumentRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + object.documentType = ""; + object.documentTypeKeepsHistory = false; + if (options.bytes === String) + object.documentId = ""; + else { + object.documentId = []; + if (options.bytes !== Array) + object.documentId = $util.newBuffer(object.documentId); + } + object.documentContestedStatus = options.enums === String ? "NOT_CONTESTED" : 0; + } + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + if (message.documentType != null && message.hasOwnProperty("documentType")) + object.documentType = message.documentType; + if (message.documentTypeKeepsHistory != null && message.hasOwnProperty("documentTypeKeepsHistory")) + object.documentTypeKeepsHistory = message.documentTypeKeepsHistory; + if (message.documentId != null && message.hasOwnProperty("documentId")) + object.documentId = options.bytes === String ? $util.base64.encode(message.documentId, 0, message.documentId.length) : options.bytes === Array ? Array.prototype.slice.call(message.documentId) : message.documentId; + if (message.documentContestedStatus != null && message.hasOwnProperty("documentContestedStatus")) + object.documentContestedStatus = options.enums === String ? $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus[message.documentContestedStatus] : message.documentContestedStatus; + return object; + }; + + /** + * Converts this DocumentRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest + * @instance + * @returns {Object.} JSON object + */ + DocumentRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * DocumentContestedStatus enum. + * @name org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus + * @enum {number} + * @property {number} NOT_CONTESTED=0 NOT_CONTESTED value + * @property {number} MAYBE_CONTESTED=1 MAYBE_CONTESTED value + * @property {number} CONTESTED=2 CONTESTED value + */ + DocumentRequest.DocumentContestedStatus = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "NOT_CONTESTED"] = 0; + values[valuesById[1] = "MAYBE_CONTESTED"] = 1; + values[valuesById[2] = "CONTESTED"] = 2; + return values; + })(); + + return DocumentRequest; + })(); + + GetProofsRequestV0.IdentityRequest = (function() { + + /** + * Properties of an IdentityRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @interface IIdentityRequest + * @property {Uint8Array|null} [identityId] IdentityRequest identityId + * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type|null} [requestType] IdentityRequest requestType + */ + + /** + * Constructs a new IdentityRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @classdesc Represents an IdentityRequest. + * @implements IIdentityRequest + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest=} [properties] Properties to set + */ + function IdentityRequest(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]]; + } + + /** + * IdentityRequest identityId. + * @member {Uint8Array} identityId + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @instance + */ + IdentityRequest.prototype.identityId = $util.newBuffer([]); + + /** + * IdentityRequest requestType. + * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} requestType + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @instance + */ + IdentityRequest.prototype.requestType = 0; + + /** + * Creates a new IdentityRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest instance + */ + IdentityRequest.create = function create(properties) { + return new IdentityRequest(properties); + }; + + /** + * Encodes the specified IdentityRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest} message IdentityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentityRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identityId); + if (message.requestType != null && Object.hasOwnProperty.call(message, "requestType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.requestType); + return writer; + }; + + /** + * Encodes the specified IdentityRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IIdentityRequest} message IdentityRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + IdentityRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an IdentityRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentityRequest.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.GetProofsRequest.GetProofsRequestV0.IdentityRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.identityId = reader.bytes(); + break; + case 2: + message.requestType = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an IdentityRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + IdentityRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an IdentityRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + IdentityRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.identityId != null && message.hasOwnProperty("identityId")) + if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) + return "identityId: buffer expected"; + if (message.requestType != null && message.hasOwnProperty("requestType")) + switch (message.requestType) { + default: + return "requestType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + return null; + }; + + /** + * Creates an IdentityRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} IdentityRequest + */ + IdentityRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest(); + if (object.identityId != null) + if (typeof object.identityId === "string") + $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); + else if (object.identityId.length >= 0) + message.identityId = object.identityId; + switch (object.requestType) { + case "FULL_IDENTITY": + case 0: + message.requestType = 0; + break; + case "BALANCE": + case 1: + message.requestType = 1; + break; + case "KEYS": + case 2: + message.requestType = 2; + break; + case "REVISION": + case 3: + message.requestType = 3; + break; + } + return message; + }; + + /** + * Creates a plain object from an IdentityRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message IdentityRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + IdentityRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.identityId = ""; + else { + object.identityId = []; + if (options.bytes !== Array) + object.identityId = $util.newBuffer(object.identityId); + } + object.requestType = options.enums === String ? "FULL_IDENTITY" : 0; + } + if (message.identityId != null && message.hasOwnProperty("identityId")) + object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; + if (message.requestType != null && message.hasOwnProperty("requestType")) + object.requestType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type[message.requestType] : message.requestType; + return object; + }; + + /** + * Converts this IdentityRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest + * @instance + * @returns {Object.} JSON object + */ + IdentityRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Type enum. + * @name org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type + * @enum {number} + * @property {number} FULL_IDENTITY=0 FULL_IDENTITY value + * @property {number} BALANCE=1 BALANCE value + * @property {number} KEYS=2 KEYS value + * @property {number} REVISION=3 REVISION value + */ + IdentityRequest.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FULL_IDENTITY"] = 0; + values[valuesById[1] = "BALANCE"] = 1; + values[valuesById[2] = "KEYS"] = 2; + values[valuesById[3] = "REVISION"] = 3; + return values; + })(); + + return IdentityRequest; + })(); + + GetProofsRequestV0.ContractRequest = (function() { + + /** + * Properties of a ContractRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @interface IContractRequest + * @property {Uint8Array|null} [contractId] ContractRequest contractId + */ + + /** + * Constructs a new ContractRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @classdesc Represents a ContractRequest. + * @implements IContractRequest + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest=} [properties] Properties to set + */ + function ContractRequest(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]]; + } + + /** + * ContractRequest contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @instance + */ + ContractRequest.prototype.contractId = $util.newBuffer([]); + + /** + * Creates a new ContractRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest instance + */ + ContractRequest.create = function create(properties) { + return new ContractRequest(properties); + }; + + /** + * Encodes the specified ContractRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest} message ContractRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContractRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + return writer; + }; + + /** + * Encodes the specified ContractRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IContractRequest} message ContractRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContractRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ContractRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @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.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContractRequest.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.GetProofsRequest.GetProofsRequestV0.ContractRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contractId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ContractRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContractRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ContractRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ContractRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + return null; + }; + + /** + * Creates a ContractRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} ContractRequest + */ + ContractRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + return message; + }; + + /** + * Creates a plain object from a ContractRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message ContractRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ContractRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + return object; + }; + + /** + * Converts this ContractRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest + * @instance + * @returns {Object.} JSON object + */ + ContractRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ContractRequest; + })(); + + GetProofsRequestV0.VoteStatusRequest = (function() { + + /** + * Properties of a VoteStatusRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @interface IVoteStatusRequest + * @property {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest|null} [contestedResourceVoteStatusRequest] VoteStatusRequest contestedResourceVoteStatusRequest + */ + + /** + * Constructs a new VoteStatusRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0 + * @classdesc Represents a VoteStatusRequest. + * @implements IVoteStatusRequest + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest=} [properties] Properties to set + */ + function VoteStatusRequest(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]]; + } + + /** + * VoteStatusRequest contestedResourceVoteStatusRequest. + * @member {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest|null|undefined} contestedResourceVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @instance + */ + VoteStatusRequest.prototype.contestedResourceVoteStatusRequest = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * VoteStatusRequest requestType. + * @member {"contestedResourceVoteStatusRequest"|undefined} requestType + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @instance + */ + Object.defineProperty(VoteStatusRequest.prototype, "requestType", { + get: $util.oneOfGetter($oneOfFields = ["contestedResourceVoteStatusRequest"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new VoteStatusRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest instance + */ + VoteStatusRequest.create = function create(properties) { + return new VoteStatusRequest(properties); + }; + + /** + * Encodes the specified VoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest} message VoteStatusRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VoteStatusRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contestedResourceVoteStatusRequest != null && Object.hasOwnProperty.call(message, "contestedResourceVoteStatusRequest")) + $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.encode(message.contestedResourceVoteStatusRequest, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified VoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IVoteStatusRequest} message VoteStatusRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a VoteStatusRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a VoteStatusRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a VoteStatusRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + VoteStatusRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.contestedResourceVoteStatusRequest != null && message.hasOwnProperty("contestedResourceVoteStatusRequest")) { + properties.requestType = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify(message.contestedResourceVoteStatusRequest); + if (error) + return "contestedResourceVoteStatusRequest." + error; + } + } + return null; + }; + + /** + * Creates a VoteStatusRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} VoteStatusRequest + */ + VoteStatusRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest(); + if (object.contestedResourceVoteStatusRequest != null) { + if (typeof object.contestedResourceVoteStatusRequest !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.contestedResourceVoteStatusRequest: object expected"); + message.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.fromObject(object.contestedResourceVoteStatusRequest); + } + return message; + }; + + /** + * Creates a plain object from a VoteStatusRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message VoteStatusRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + VoteStatusRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.contestedResourceVoteStatusRequest != null && message.hasOwnProperty("contestedResourceVoteStatusRequest")) { + object.contestedResourceVoteStatusRequest = $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(message.contestedResourceVoteStatusRequest, options); + if (options.oneofs) + object.requestType = "contestedResourceVoteStatusRequest"; + } + return object; + }; + + /** + * Converts this VoteStatusRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @instance + * @returns {Object.} JSON object + */ + VoteStatusRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + VoteStatusRequest.ContestedResourceVoteStatusRequest = (function() { + + /** + * Properties of a ContestedResourceVoteStatusRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @interface IContestedResourceVoteStatusRequest + * @property {Uint8Array|null} [contractId] ContestedResourceVoteStatusRequest contractId + * @property {string|null} [documentTypeName] ContestedResourceVoteStatusRequest documentTypeName + * @property {string|null} [indexName] ContestedResourceVoteStatusRequest indexName + * @property {Array.|null} [indexValues] ContestedResourceVoteStatusRequest indexValues + * @property {Uint8Array|null} [voterIdentifier] ContestedResourceVoteStatusRequest voterIdentifier + */ + + /** + * Constructs a new ContestedResourceVoteStatusRequest. + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest + * @classdesc Represents a ContestedResourceVoteStatusRequest. + * @implements IContestedResourceVoteStatusRequest + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest=} [properties] Properties to set + */ + function ContestedResourceVoteStatusRequest(properties) { + this.indexValues = []; + 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]]; + } + + /** + * ContestedResourceVoteStatusRequest contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + */ + ContestedResourceVoteStatusRequest.prototype.contractId = $util.newBuffer([]); + + /** + * ContestedResourceVoteStatusRequest documentTypeName. + * @member {string} documentTypeName + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + */ + ContestedResourceVoteStatusRequest.prototype.documentTypeName = ""; + + /** + * ContestedResourceVoteStatusRequest indexName. + * @member {string} indexName + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + */ + ContestedResourceVoteStatusRequest.prototype.indexName = ""; + + /** + * ContestedResourceVoteStatusRequest indexValues. + * @member {Array.} indexValues + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + */ + ContestedResourceVoteStatusRequest.prototype.indexValues = $util.emptyArray; + + /** + * ContestedResourceVoteStatusRequest voterIdentifier. + * @member {Uint8Array} voterIdentifier + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + */ + ContestedResourceVoteStatusRequest.prototype.voterIdentifier = $util.newBuffer([]); + + /** + * Creates a new ContestedResourceVoteStatusRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest instance + */ + ContestedResourceVoteStatusRequest.create = function create(properties) { + return new ContestedResourceVoteStatusRequest(properties); + }; + + /** + * Encodes the specified ContestedResourceVoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContestedResourceVoteStatusRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); + if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); + if (message.indexValues != null && message.indexValues.length) + for (var i = 0; i < message.indexValues.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); + if (message.voterIdentifier != null && Object.hasOwnProperty.call(message, "voterIdentifier")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.voterIdentifier); + return writer; + }; + + /** + * Encodes the specified ContestedResourceVoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.IContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContestedResourceVoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ContestedResourceVoteStatusRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContestedResourceVoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contractId = reader.bytes(); + break; + case 2: + message.documentTypeName = reader.string(); + break; + case 3: + message.indexName = reader.string(); + break; + case 4: + if (!(message.indexValues && message.indexValues.length)) + message.indexValues = []; + message.indexValues.push(reader.bytes()); + break; + case 5: + message.voterIdentifier = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ContestedResourceVoteStatusRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContestedResourceVoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ContestedResourceVoteStatusRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ContestedResourceVoteStatusRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + if (!$util.isString(message.documentTypeName)) + return "documentTypeName: string expected"; + if (message.indexName != null && message.hasOwnProperty("indexName")) + if (!$util.isString(message.indexName)) + return "indexName: string expected"; + if (message.indexValues != null && message.hasOwnProperty("indexValues")) { + if (!Array.isArray(message.indexValues)) + return "indexValues: array expected"; + for (var i = 0; i < message.indexValues.length; ++i) + if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) + return "indexValues: buffer[] expected"; + } + if (message.voterIdentifier != null && message.hasOwnProperty("voterIdentifier")) + if (!(message.voterIdentifier && typeof message.voterIdentifier.length === "number" || $util.isString(message.voterIdentifier))) + return "voterIdentifier: buffer expected"; + return null; + }; + + /** + * Creates a ContestedResourceVoteStatusRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} ContestedResourceVoteStatusRequest + */ + ContestedResourceVoteStatusRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + if (object.documentTypeName != null) + message.documentTypeName = String(object.documentTypeName); + if (object.indexName != null) + message.indexName = String(object.indexName); + if (object.indexValues) { + if (!Array.isArray(object.indexValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.indexValues: array expected"); + message.indexValues = []; + for (var i = 0; i < object.indexValues.length; ++i) + if (typeof object.indexValues[i] === "string") + $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); + else if (object.indexValues[i].length >= 0) + message.indexValues[i] = object.indexValues[i]; + } + if (object.voterIdentifier != null) + if (typeof object.voterIdentifier === "string") + $util.base64.decode(object.voterIdentifier, message.voterIdentifier = $util.newBuffer($util.base64.length(object.voterIdentifier)), 0); + else if (object.voterIdentifier.length >= 0) + message.voterIdentifier = object.voterIdentifier; + return message; + }; + + /** + * Creates a plain object from a ContestedResourceVoteStatusRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @static + * @param {org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message ContestedResourceVoteStatusRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ContestedResourceVoteStatusRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.indexValues = []; + if (options.defaults) { + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + object.documentTypeName = ""; + object.indexName = ""; + if (options.bytes === String) + object.voterIdentifier = ""; + else { + object.voterIdentifier = []; + if (options.bytes !== Array) + object.voterIdentifier = $util.newBuffer(object.voterIdentifier); + } + } + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + object.documentTypeName = message.documentTypeName; + if (message.indexName != null && message.hasOwnProperty("indexName")) + object.indexName = message.indexName; + if (message.indexValues && message.indexValues.length) { + object.indexValues = []; + for (var j = 0; j < message.indexValues.length; ++j) + object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; + } + if (message.voterIdentifier != null && message.hasOwnProperty("voterIdentifier")) + object.voterIdentifier = options.bytes === String ? $util.base64.encode(message.voterIdentifier, 0, message.voterIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.voterIdentifier) : message.voterIdentifier; + return object; + }; + + /** + * Converts this ContestedResourceVoteStatusRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest + * @instance + * @returns {Object.} JSON object + */ + ContestedResourceVoteStatusRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ContestedResourceVoteStatusRequest; + })(); + + return VoteStatusRequest; + })(); + + return GetProofsRequestV0; + })(); + + return GetProofsRequest; + })(); + + v0.GetProofsResponse = (function() { + + /** + * Properties of a GetProofsResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetProofsResponse + * @property {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0|null} [v0] GetProofsResponse v0 + */ + + /** + * Constructs a new GetProofsResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetProofsResponse. + * @implements IGetProofsResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetProofsResponse=} [properties] Properties to set + */ + function GetProofsResponse(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]]; + } + + /** + * GetProofsResponse v0. + * @member {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @instance + */ + GetProofsResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetProofsResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @instance + */ + Object.defineProperty(GetProofsResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetProofsResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetProofsResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse instance + */ + GetProofsResponse.create = function create(properties) { + return new GetProofsResponse(properties); + }; + + /** + * Encodes the specified GetProofsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetProofsResponse} message GetProofsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetProofsResponse.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.GetProofsResponse.GetProofsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetProofsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetProofsResponse} message GetProofsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetProofsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetProofsResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @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.GetProofsResponse} GetProofsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetProofsResponse.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.GetProofsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetProofsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetProofsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetProofsResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetProofsResponse.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.GetProofsResponse.GetProofsResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetProofsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsResponse} GetProofsResponse + */ + GetProofsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetProofsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @static + * @param {org.dash.platform.dapi.v0.GetProofsResponse} message GetProofsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetProofsResponse.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.GetProofsResponse.GetProofsResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetProofsResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @instance + * @returns {Object.} JSON object + */ + GetProofsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetProofsResponse.GetProofsResponseV0 = (function() { + + /** + * Properties of a GetProofsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @interface IGetProofsResponseV0 + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProofsResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProofsResponseV0 metadata + */ + + /** + * Constructs a new GetProofsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProofsResponse + * @classdesc Represents a GetProofsResponseV0. + * @implements IGetProofsResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0=} [properties] Properties to set + */ + function GetProofsResponseV0(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]]; + } + + /** + * GetProofsResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @instance + */ + GetProofsResponseV0.prototype.proof = null; + + /** + * GetProofsResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @instance + */ + GetProofsResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetProofsResponseV0 result. + * @member {"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @instance + */ + Object.defineProperty(GetProofsResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetProofsResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 instance + */ + GetProofsResponseV0.create = function create(properties) { + return new GetProofsResponseV0(properties); + }; + + /** + * Encodes the specified GetProofsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0} message GetProofsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetProofsResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetProofsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProofsResponse.IGetProofsResponseV0} message GetProofsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetProofsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetProofsResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @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.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetProofsResponseV0.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.GetProofsResponse.GetProofsResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 2: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetProofsResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetProofsResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetProofsResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetProofsResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.proof != null && message.hasOwnProperty("proof")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetProofsResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} GetProofsResponseV0 + */ + GetProofsResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0(); + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetProofsResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message GetProofsResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetProofsResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetProofsResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetProofsResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetProofsResponseV0; + })(); + + return GetProofsResponse; + })(); + + v0.GetDataContractRequest = (function() { + + /** + * Properties of a GetDataContractRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractRequest + * @property {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0|null} [v0] GetDataContractRequest v0 + */ + + /** + * Constructs a new GetDataContractRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractRequest. + * @implements IGetDataContractRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractRequest=} [properties] Properties to set + */ + function GetDataContractRequest(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]]; + } + + /** + * GetDataContractRequest v0. + * @member {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @instance + */ + GetDataContractRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @instance + */ + Object.defineProperty(GetDataContractRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest instance + */ + GetDataContractRequest.create = function create(properties) { + return new GetDataContractRequest(properties); + }; + + /** + * Encodes the specified GetDataContractRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractRequest} message GetDataContractRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractRequest.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.GetDataContractRequest.GetDataContractRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractRequest} message GetDataContractRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @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.GetDataContractRequest} GetDataContractRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractRequest.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.GetDataContractRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractRequest.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.GetDataContractRequest.GetDataContractRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest} GetDataContractRequest + */ + GetDataContractRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractRequest} message GetDataContractRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractRequest.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.GetDataContractRequest.GetDataContractRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @instance + * @returns {Object.} JSON object + */ + GetDataContractRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractRequest.GetDataContractRequestV0 = (function() { + + /** + * Properties of a GetDataContractRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @interface IGetDataContractRequestV0 + * @property {Uint8Array|null} [id] GetDataContractRequestV0 id + * @property {boolean|null} [prove] GetDataContractRequestV0 prove + */ + + /** + * Constructs a new GetDataContractRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest + * @classdesc Represents a GetDataContractRequestV0. + * @implements IGetDataContractRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0=} [properties] Properties to set + */ + function GetDataContractRequestV0(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]]; + } + + /** + * GetDataContractRequestV0 id. + * @member {Uint8Array} id + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @instance + */ + GetDataContractRequestV0.prototype.id = $util.newBuffer([]); + + /** + * GetDataContractRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @instance + */ + GetDataContractRequestV0.prototype.prove = false; + + /** + * Creates a new GetDataContractRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 instance + */ + GetDataContractRequestV0.create = function create(properties) { + return new GetDataContractRequestV0(properties); + }; + + /** + * Encodes the specified GetDataContractRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0} message GetDataContractRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + return writer; + }; + + /** + * Encodes the specified GetDataContractRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractRequest.IGetDataContractRequestV0} message GetDataContractRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @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.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractRequestV0.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.GetDataContractRequest.GetDataContractRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.bytes(); + break; + case 2: + message.prove = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) + return "id: buffer expected"; + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; + + /** + * Creates a GetDataContractRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} GetDataContractRequestV0 + */ + GetDataContractRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0(); + if (object.id != null) + if (typeof object.id === "string") + $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); + else if (object.id.length >= 0) + message.id = object.id; + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; + + /** + * Creates a plain object from a GetDataContractRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message GetDataContractRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.id = ""; + else { + object.id = []; + if (options.bytes !== Array) + object.id = $util.newBuffer(object.id); + } + object.prove = false; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; + + /** + * Converts this GetDataContractRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDataContractRequestV0; + })(); + + return GetDataContractRequest; + })(); + + v0.GetDataContractResponse = (function() { + + /** + * Properties of a GetDataContractResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractResponse + * @property {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0|null} [v0] GetDataContractResponse v0 + */ + + /** + * Constructs a new GetDataContractResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractResponse. + * @implements IGetDataContractResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractResponse=} [properties] Properties to set + */ + function GetDataContractResponse(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]]; + } + + /** + * GetDataContractResponse v0. + * @member {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @instance + */ + GetDataContractResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @instance + */ + Object.defineProperty(GetDataContractResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse instance + */ + GetDataContractResponse.create = function create(properties) { + return new GetDataContractResponse(properties); + }; + + /** + * Encodes the specified GetDataContractResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractResponse} message GetDataContractResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractResponse.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.GetDataContractResponse.GetDataContractResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractResponse} message GetDataContractResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @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.GetDataContractResponse} GetDataContractResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractResponse.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.GetDataContractResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractResponse.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.GetDataContractResponse.GetDataContractResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse} GetDataContractResponse + */ + GetDataContractResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractResponse} message GetDataContractResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractResponse.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.GetDataContractResponse.GetDataContractResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @instance + * @returns {Object.} JSON object + */ + GetDataContractResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractResponse.GetDataContractResponseV0 = (function() { + + /** + * Properties of a GetDataContractResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @interface IGetDataContractResponseV0 + * @property {Uint8Array|null} [dataContract] GetDataContractResponseV0 dataContract + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractResponseV0 metadata + */ + + /** + * Constructs a new GetDataContractResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse + * @classdesc Represents a GetDataContractResponseV0. + * @implements IGetDataContractResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0=} [properties] Properties to set + */ + function GetDataContractResponseV0(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]]; + } + + /** + * GetDataContractResponseV0 dataContract. + * @member {Uint8Array} dataContract + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @instance + */ + GetDataContractResponseV0.prototype.dataContract = $util.newBuffer([]); + + /** + * GetDataContractResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @instance + */ + GetDataContractResponseV0.prototype.proof = null; + + /** + * GetDataContractResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @instance + */ + GetDataContractResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractResponseV0 result. + * @member {"dataContract"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @instance + */ + Object.defineProperty(GetDataContractResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["dataContract", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 instance + */ + GetDataContractResponseV0.create = function create(properties) { + return new GetDataContractResponseV0(properties); + }; + + /** + * Encodes the specified GetDataContractResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0} message GetDataContractResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContract != null && Object.hasOwnProperty.call(message, "dataContract")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.dataContract); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractResponse.IGetDataContractResponseV0} message GetDataContractResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @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.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractResponseV0.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.GetDataContractResponse.GetDataContractResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dataContract = reader.bytes(); + break; + case 2: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataContract != null && message.hasOwnProperty("dataContract")) { + properties.result = 1; + if (!(message.dataContract && typeof message.dataContract.length === "number" || $util.isString(message.dataContract))) + return "dataContract: buffer expected"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetDataContractResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} GetDataContractResponseV0 + */ + GetDataContractResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0(); + if (object.dataContract != null) + if (typeof object.dataContract === "string") + $util.base64.decode(object.dataContract, message.dataContract = $util.newBuffer($util.base64.length(object.dataContract)), 0); + else if (object.dataContract.length >= 0) + message.dataContract = object.dataContract; + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message GetDataContractResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.dataContract != null && message.hasOwnProperty("dataContract")) { + object.dataContract = options.bytes === String ? $util.base64.encode(message.dataContract, 0, message.dataContract.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataContract) : message.dataContract; + if (options.oneofs) + object.result = "dataContract"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetDataContractResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDataContractResponseV0; + })(); + + return GetDataContractResponse; + })(); + + v0.GetDataContractsRequest = (function() { + + /** + * Properties of a GetDataContractsRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractsRequest + * @property {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0|null} [v0] GetDataContractsRequest v0 + */ + + /** + * Constructs a new GetDataContractsRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractsRequest. + * @implements IGetDataContractsRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest=} [properties] Properties to set + */ + function GetDataContractsRequest(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]]; + } + + /** + * GetDataContractsRequest v0. + * @member {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @instance + */ + GetDataContractsRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractsRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @instance + */ + Object.defineProperty(GetDataContractsRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractsRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest instance + */ + GetDataContractsRequest.create = function create(properties) { + return new GetDataContractsRequest(properties); + }; + + /** + * Encodes the specified GetDataContractsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest} message GetDataContractsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsRequest.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.GetDataContractsRequest.GetDataContractsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsRequest} message GetDataContractsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractsRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @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.GetDataContractsRequest} GetDataContractsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsRequest.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.GetDataContractsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractsRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractsRequest.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.GetDataContractsRequest.GetDataContractsRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest + */ + GetDataContractsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest} message GetDataContractsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractsRequest.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.GetDataContractsRequest.GetDataContractsRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractsRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @instance + * @returns {Object.} JSON object + */ + GetDataContractsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractsRequest.GetDataContractsRequestV0 = (function() { + + /** + * Properties of a GetDataContractsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @interface IGetDataContractsRequestV0 + * @property {Array.|null} [ids] GetDataContractsRequestV0 ids + * @property {boolean|null} [prove] GetDataContractsRequestV0 prove + */ + + /** + * Constructs a new GetDataContractsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @classdesc Represents a GetDataContractsRequestV0. + * @implements IGetDataContractsRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0=} [properties] Properties to set + */ + function GetDataContractsRequestV0(properties) { + this.ids = []; + 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]]; + } + + /** + * GetDataContractsRequestV0 ids. + * @member {Array.} ids + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @instance + */ + GetDataContractsRequestV0.prototype.ids = $util.emptyArray; + + /** + * GetDataContractsRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @instance + */ + GetDataContractsRequestV0.prototype.prove = false; + + /** + * Creates a new GetDataContractsRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 instance + */ + GetDataContractsRequestV0.create = function create(properties) { + return new GetDataContractsRequestV0(properties); + }; + + /** + * Encodes the specified GetDataContractsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0} message GetDataContractsRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ids != null && message.ids.length) + for (var i = 0; i < message.ids.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ids[i]); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + return writer; + }; + + /** + * Encodes the specified GetDataContractsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0} message GetDataContractsRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractsRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @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.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsRequestV0.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.GetDataContractsRequest.GetDataContractsRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.ids && message.ids.length)) + message.ids = []; + message.ids.push(reader.bytes()); + break; + case 2: + message.prove = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractsRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractsRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractsRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ids != null && message.hasOwnProperty("ids")) { + if (!Array.isArray(message.ids)) + return "ids: array expected"; + for (var i = 0; i < message.ids.length; ++i) + if (!(message.ids[i] && typeof message.ids[i].length === "number" || $util.isString(message.ids[i]))) + return "ids: buffer[] expected"; + } + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; + + /** + * Creates a GetDataContractsRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + */ + GetDataContractsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0(); + if (object.ids) { + if (!Array.isArray(object.ids)) + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.ids: array expected"); + message.ids = []; + for (var i = 0; i < object.ids.length; ++i) + if (typeof object.ids[i] === "string") + $util.base64.decode(object.ids[i], message.ids[i] = $util.newBuffer($util.base64.length(object.ids[i])), 0); + else if (object.ids[i].length >= 0) + message.ids[i] = object.ids[i]; + } + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; + + /** + * Creates a plain object from a GetDataContractsRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message GetDataContractsRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractsRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.ids = []; + if (options.defaults) + object.prove = false; + if (message.ids && message.ids.length) { + object.ids = []; + for (var j = 0; j < message.ids.length; ++j) + object.ids[j] = options.bytes === String ? $util.base64.encode(message.ids[j], 0, message.ids[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.ids[j]) : message.ids[j]; + } + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; + + /** + * Converts this GetDataContractsRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractsRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDataContractsRequestV0; + })(); + + return GetDataContractsRequest; + })(); + + v0.GetDataContractsResponse = (function() { + + /** + * Properties of a GetDataContractsResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractsResponse + * @property {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0|null} [v0] GetDataContractsResponse v0 + */ + + /** + * Constructs a new GetDataContractsResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractsResponse. + * @implements IGetDataContractsResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse=} [properties] Properties to set + */ + function GetDataContractsResponse(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]]; + } + + /** + * GetDataContractsResponse v0. + * @member {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @instance + */ + GetDataContractsResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractsResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @instance + */ + Object.defineProperty(GetDataContractsResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractsResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse instance + */ + GetDataContractsResponse.create = function create(properties) { + return new GetDataContractsResponse(properties); + }; + + /** + * Encodes the specified GetDataContractsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse} message GetDataContractsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsResponse.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.GetDataContractsResponse.GetDataContractsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse} message GetDataContractsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractsResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @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.GetDataContractsResponse} GetDataContractsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsResponse.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.GetDataContractsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractsResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractsResponse.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.GetDataContractsResponse.GetDataContractsResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse + */ + GetDataContractsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse} message GetDataContractsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractsResponse.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.GetDataContractsResponse.GetDataContractsResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractsResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @instance + * @returns {Object.} JSON object + */ + GetDataContractsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractsResponse.DataContractEntry = (function() { + + /** + * Properties of a DataContractEntry. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @interface IDataContractEntry + * @property {Uint8Array|null} [identifier] DataContractEntry identifier + * @property {google.protobuf.IBytesValue|null} [dataContract] DataContractEntry dataContract + */ + + /** + * Constructs a new DataContractEntry. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @classdesc Represents a DataContractEntry. + * @implements IDataContractEntry + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry=} [properties] Properties to set + */ + function DataContractEntry(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]]; + } + + /** + * DataContractEntry identifier. + * @member {Uint8Array} identifier + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @instance + */ + DataContractEntry.prototype.identifier = $util.newBuffer([]); + + /** + * DataContractEntry dataContract. + * @member {google.protobuf.IBytesValue|null|undefined} dataContract + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @instance + */ + DataContractEntry.prototype.dataContract = null; + + /** + * Creates a new DataContractEntry instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry instance + */ + DataContractEntry.create = function create(properties) { + return new DataContractEntry(properties); + }; + + /** + * Encodes the specified DataContractEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry} message DataContractEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractEntry.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identifier); + if (message.dataContract != null && Object.hasOwnProperty.call(message, "dataContract")) + $root.google.protobuf.BytesValue.encode(message.dataContract, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DataContractEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry} message DataContractEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractEntry.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DataContractEntry message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @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.GetDataContractsResponse.DataContractEntry} DataContractEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractEntry.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.GetDataContractsResponse.DataContractEntry(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.identifier = reader.bytes(); + break; + case 2: + message.dataContract = $root.google.protobuf.BytesValue.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DataContractEntry message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractEntry.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataContractEntry message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataContractEntry.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.identifier != null && message.hasOwnProperty("identifier")) + if (!(message.identifier && typeof message.identifier.length === "number" || $util.isString(message.identifier))) + return "identifier: buffer expected"; + if (message.dataContract != null && message.hasOwnProperty("dataContract")) { + var error = $root.google.protobuf.BytesValue.verify(message.dataContract); + if (error) + return "dataContract." + error; + } + return null; + }; + + /** + * Creates a DataContractEntry message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry + */ + DataContractEntry.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry(); + if (object.identifier != null) + if (typeof object.identifier === "string") + $util.base64.decode(object.identifier, message.identifier = $util.newBuffer($util.base64.length(object.identifier)), 0); + else if (object.identifier.length >= 0) + message.identifier = object.identifier; + if (object.dataContract != null) { + if (typeof object.dataContract !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.dataContract: object expected"); + message.dataContract = $root.google.protobuf.BytesValue.fromObject(object.dataContract); + } + return message; + }; + + /** + * Creates a plain object from a DataContractEntry message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message DataContractEntry + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataContractEntry.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.identifier = ""; + else { + object.identifier = []; + if (options.bytes !== Array) + object.identifier = $util.newBuffer(object.identifier); + } + object.dataContract = null; + } + if (message.identifier != null && message.hasOwnProperty("identifier")) + object.identifier = options.bytes === String ? $util.base64.encode(message.identifier, 0, message.identifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.identifier) : message.identifier; + if (message.dataContract != null && message.hasOwnProperty("dataContract")) + object.dataContract = $root.google.protobuf.BytesValue.toObject(message.dataContract, options); + return object; + }; + + /** + * Converts this DataContractEntry to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @instance + * @returns {Object.} JSON object + */ + DataContractEntry.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DataContractEntry; + })(); + + GetDataContractsResponse.DataContracts = (function() { + + /** + * Properties of a DataContracts. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @interface IDataContracts + * @property {Array.|null} [dataContractEntries] DataContracts dataContractEntries + */ + + /** + * Constructs a new DataContracts. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @classdesc Represents a DataContracts. + * @implements IDataContracts + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts=} [properties] Properties to set + */ + function DataContracts(properties) { + this.dataContractEntries = []; + 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]]; + } + + /** + * DataContracts dataContractEntries. + * @member {Array.} dataContractEntries + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @instance + */ + DataContracts.prototype.dataContractEntries = $util.emptyArray; + + /** + * Creates a new DataContracts instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts instance + */ + DataContracts.create = function create(properties) { + return new DataContracts(properties); + }; + + /** + * Encodes the specified DataContracts message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts} message DataContracts message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContracts.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContractEntries != null && message.dataContractEntries.length) + for (var i = 0; i < message.dataContractEntries.length; ++i) + $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.encode(message.dataContractEntries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DataContracts message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts} message DataContracts message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContracts.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DataContracts message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @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.GetDataContractsResponse.DataContracts} DataContracts + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContracts.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.GetDataContractsResponse.DataContracts(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dataContractEntries && message.dataContractEntries.length)) + message.dataContractEntries = []; + message.dataContractEntries.push($root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DataContracts message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContracts.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataContracts message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataContracts.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dataContractEntries != null && message.hasOwnProperty("dataContractEntries")) { + if (!Array.isArray(message.dataContractEntries)) + return "dataContractEntries: array expected"; + for (var i = 0; i < message.dataContractEntries.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify(message.dataContractEntries[i]); + if (error) + return "dataContractEntries." + error; + } + } + return null; + }; + + /** + * Creates a DataContracts message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts + */ + DataContracts.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts(); + if (object.dataContractEntries) { + if (!Array.isArray(object.dataContractEntries)) + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.dataContractEntries: array expected"); + message.dataContractEntries = []; + for (var i = 0; i < object.dataContractEntries.length; ++i) { + if (typeof object.dataContractEntries[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.dataContractEntries: object expected"); + message.dataContractEntries[i] = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.fromObject(object.dataContractEntries[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a DataContracts message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message DataContracts + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataContracts.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dataContractEntries = []; + if (message.dataContractEntries && message.dataContractEntries.length) { + object.dataContractEntries = []; + for (var j = 0; j < message.dataContractEntries.length; ++j) + object.dataContractEntries[j] = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(message.dataContractEntries[j], options); + } + return object; + }; + + /** + * Converts this DataContracts to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @instance + * @returns {Object.} JSON object + */ + DataContracts.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DataContracts; + })(); + + GetDataContractsResponse.GetDataContractsResponseV0 = (function() { + + /** + * Properties of a GetDataContractsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @interface IGetDataContractsResponseV0 + * @property {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts|null} [dataContracts] GetDataContractsResponseV0 dataContracts + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractsResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractsResponseV0 metadata + */ + + /** + * Constructs a new GetDataContractsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @classdesc Represents a GetDataContractsResponseV0. + * @implements IGetDataContractsResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0=} [properties] Properties to set + */ + function GetDataContractsResponseV0(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]]; + } + + /** + * GetDataContractsResponseV0 dataContracts. + * @member {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts|null|undefined} dataContracts + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @instance + */ + GetDataContractsResponseV0.prototype.dataContracts = null; + + /** + * GetDataContractsResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @instance + */ + GetDataContractsResponseV0.prototype.proof = null; + + /** + * GetDataContractsResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @instance + */ + GetDataContractsResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractsResponseV0 result. + * @member {"dataContracts"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @instance + */ + Object.defineProperty(GetDataContractsResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["dataContracts", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractsResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 instance + */ + GetDataContractsResponseV0.create = function create(properties) { + return new GetDataContractsResponseV0(properties); + }; + + /** + * Encodes the specified GetDataContractsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0} message GetDataContractsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContracts != null && Object.hasOwnProperty.call(message, "dataContracts")) + $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.encode(message.dataContracts, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0} message GetDataContractsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractsResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @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.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsResponseV0.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.GetDataContractsResponse.GetDataContractsResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.decode(reader, reader.uint32()); + break; + case 2: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractsResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractsResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractsResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractsResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataContracts != null && message.hasOwnProperty("dataContracts")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify(message.dataContracts); + if (error) + return "dataContracts." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetDataContractsResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + */ + GetDataContractsResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0(); + if (object.dataContracts != null) { + if (typeof object.dataContracts !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.dataContracts: object expected"); + message.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.fromObject(object.dataContracts); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractsResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message GetDataContractsResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractsResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.dataContracts != null && message.hasOwnProperty("dataContracts")) { + object.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(message.dataContracts, options); + if (options.oneofs) + object.result = "dataContracts"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetDataContractsResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractsResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDataContractsResponseV0; + })(); + + return GetDataContractsResponse; + })(); + + v0.GetDataContractHistoryRequest = (function() { + + /** + * Properties of a GetDataContractHistoryRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractHistoryRequest + * @property {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0|null} [v0] GetDataContractHistoryRequest v0 + */ + + /** + * Constructs a new GetDataContractHistoryRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractHistoryRequest. + * @implements IGetDataContractHistoryRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest=} [properties] Properties to set + */ + function GetDataContractHistoryRequest(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]]; + } + + /** + * GetDataContractHistoryRequest v0. + * @member {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @instance + */ + GetDataContractHistoryRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractHistoryRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @instance + */ + Object.defineProperty(GetDataContractHistoryRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractHistoryRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest instance + */ + GetDataContractHistoryRequest.create = function create(properties) { + return new GetDataContractHistoryRequest(properties); + }; + + /** + * Encodes the specified GetDataContractHistoryRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest} message GetDataContractHistoryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractHistoryRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest} message GetDataContractHistoryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractHistoryRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @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.GetDataContractHistoryRequest} GetDataContractHistoryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryRequest.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.GetDataContractHistoryRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractHistoryRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractHistoryRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractHistoryRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractHistoryRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest + */ + GetDataContractHistoryRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractHistoryRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} message GetDataContractHistoryRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractHistoryRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractHistoryRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @instance + * @returns {Object.} JSON object + */ + GetDataContractHistoryRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 = (function() { + + /** + * Properties of a GetDataContractHistoryRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @interface IGetDataContractHistoryRequestV0 + * @property {Uint8Array|null} [id] GetDataContractHistoryRequestV0 id + * @property {google.protobuf.IUInt32Value|null} [limit] GetDataContractHistoryRequestV0 limit + * @property {google.protobuf.IUInt32Value|null} [offset] GetDataContractHistoryRequestV0 offset + * @property {number|Long|null} [startAtMs] GetDataContractHistoryRequestV0 startAtMs + * @property {boolean|null} [prove] GetDataContractHistoryRequestV0 prove + */ + + /** + * Constructs a new GetDataContractHistoryRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @classdesc Represents a GetDataContractHistoryRequestV0. + * @implements IGetDataContractHistoryRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0=} [properties] Properties to set + */ + function GetDataContractHistoryRequestV0(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]]; + } + + /** + * GetDataContractHistoryRequestV0 id. + * @member {Uint8Array} id + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + */ + GetDataContractHistoryRequestV0.prototype.id = $util.newBuffer([]); + + /** + * GetDataContractHistoryRequestV0 limit. + * @member {google.protobuf.IUInt32Value|null|undefined} limit + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + */ + GetDataContractHistoryRequestV0.prototype.limit = null; + + /** + * GetDataContractHistoryRequestV0 offset. + * @member {google.protobuf.IUInt32Value|null|undefined} offset + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + */ + GetDataContractHistoryRequestV0.prototype.offset = null; + + /** + * GetDataContractHistoryRequestV0 startAtMs. + * @member {number|Long} startAtMs + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + */ + GetDataContractHistoryRequestV0.prototype.startAtMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * GetDataContractHistoryRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + */ + GetDataContractHistoryRequestV0.prototype.prove = false; + + /** + * Creates a new GetDataContractHistoryRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 instance + */ + GetDataContractHistoryRequestV0.create = function create(properties) { + return new GetDataContractHistoryRequestV0(properties); + }; + + /** + * Encodes the specified GetDataContractHistoryRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + $root.google.protobuf.UInt32Value.encode(message.limit, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) + $root.google.protobuf.UInt32Value.encode(message.offset, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.startAtMs != null && Object.hasOwnProperty.call(message, "startAtMs")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.startAtMs); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.prove); + return writer; + }; + + /** + * Encodes the specified GetDataContractHistoryRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractHistoryRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.bytes(); + break; + case 2: + message.limit = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); + break; + case 3: + message.offset = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); + break; + case 4: + message.startAtMs = reader.uint64(); + break; + case 5: + message.prove = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractHistoryRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractHistoryRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractHistoryRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) + return "id: buffer expected"; + if (message.limit != null && message.hasOwnProperty("limit")) { + var error = $root.google.protobuf.UInt32Value.verify(message.limit); + if (error) + return "limit." + error; + } + if (message.offset != null && message.hasOwnProperty("offset")) { + var error = $root.google.protobuf.UInt32Value.verify(message.offset); + if (error) + return "offset." + error; + } + if (message.startAtMs != null && message.hasOwnProperty("startAtMs")) + if (!$util.isInteger(message.startAtMs) && !(message.startAtMs && $util.isInteger(message.startAtMs.low) && $util.isInteger(message.startAtMs.high))) + return "startAtMs: integer|Long expected"; + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; + + /** + * Creates a GetDataContractHistoryRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + */ + GetDataContractHistoryRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0(); + if (object.id != null) + if (typeof object.id === "string") + $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); + else if (object.id.length >= 0) + message.id = object.id; + if (object.limit != null) { + if (typeof object.limit !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.limit: object expected"); + message.limit = $root.google.protobuf.UInt32Value.fromObject(object.limit); + } + if (object.offset != null) { + if (typeof object.offset !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.offset: object expected"); + message.offset = $root.google.protobuf.UInt32Value.fromObject(object.offset); + } + if (object.startAtMs != null) + if ($util.Long) + (message.startAtMs = $util.Long.fromValue(object.startAtMs)).unsigned = true; + else if (typeof object.startAtMs === "string") + message.startAtMs = parseInt(object.startAtMs, 10); + else if (typeof object.startAtMs === "number") + message.startAtMs = object.startAtMs; + else if (typeof object.startAtMs === "object") + message.startAtMs = new $util.LongBits(object.startAtMs.low >>> 0, object.startAtMs.high >>> 0).toNumber(true); + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; + + /** + * Creates a plain object from a GetDataContractHistoryRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractHistoryRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.id = ""; + else { + object.id = []; + if (options.bytes !== Array) + object.id = $util.newBuffer(object.id); + } + object.limit = null; + object.offset = null; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.startAtMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.startAtMs = options.longs === String ? "0" : 0; + object.prove = false; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; + if (message.limit != null && message.hasOwnProperty("limit")) + object.limit = $root.google.protobuf.UInt32Value.toObject(message.limit, options); + if (message.offset != null && message.hasOwnProperty("offset")) + object.offset = $root.google.protobuf.UInt32Value.toObject(message.offset, options); + if (message.startAtMs != null && message.hasOwnProperty("startAtMs")) + if (typeof message.startAtMs === "number") + object.startAtMs = options.longs === String ? String(message.startAtMs) : message.startAtMs; + else + object.startAtMs = options.longs === String ? $util.Long.prototype.toString.call(message.startAtMs) : options.longs === Number ? new $util.LongBits(message.startAtMs.low >>> 0, message.startAtMs.high >>> 0).toNumber(true) : message.startAtMs; + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; + + /** + * Converts this GetDataContractHistoryRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractHistoryRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDataContractHistoryRequestV0; + })(); + + return GetDataContractHistoryRequest; + })(); + + v0.GetDataContractHistoryResponse = (function() { + + /** + * Properties of a GetDataContractHistoryResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDataContractHistoryResponse + * @property {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0|null} [v0] GetDataContractHistoryResponse v0 + */ + + /** + * Constructs a new GetDataContractHistoryResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDataContractHistoryResponse. + * @implements IGetDataContractHistoryResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse=} [properties] Properties to set + */ + function GetDataContractHistoryResponse(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]]; + } + + /** + * GetDataContractHistoryResponse v0. + * @member {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @instance + */ + GetDataContractHistoryResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractHistoryResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @instance + */ + Object.defineProperty(GetDataContractHistoryResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractHistoryResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse instance + */ + GetDataContractHistoryResponse.create = function create(properties) { + return new GetDataContractHistoryResponse(properties); + }; + + /** + * Encodes the specified GetDataContractHistoryResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse} message GetDataContractHistoryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractHistoryResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse} message GetDataContractHistoryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractHistoryResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @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.GetDataContractHistoryResponse} GetDataContractHistoryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryResponse.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.GetDataContractHistoryResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractHistoryResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractHistoryResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractHistoryResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDataContractHistoryResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse + */ + GetDataContractHistoryResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractHistoryResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message GetDataContractHistoryResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractHistoryResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDataContractHistoryResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @instance + * @returns {Object.} JSON object + */ + GetDataContractHistoryResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 = (function() { + + /** + * Properties of a GetDataContractHistoryResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @interface IGetDataContractHistoryResponseV0 + * @property {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory|null} [dataContractHistory] GetDataContractHistoryResponseV0 dataContractHistory + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractHistoryResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractHistoryResponseV0 metadata + */ + + /** + * Constructs a new GetDataContractHistoryResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @classdesc Represents a GetDataContractHistoryResponseV0. + * @implements IGetDataContractHistoryResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0=} [properties] Properties to set + */ + function GetDataContractHistoryResponseV0(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]]; + } + + /** + * GetDataContractHistoryResponseV0 dataContractHistory. + * @member {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory|null|undefined} dataContractHistory + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @instance + */ + GetDataContractHistoryResponseV0.prototype.dataContractHistory = null; + + /** + * GetDataContractHistoryResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @instance + */ + GetDataContractHistoryResponseV0.prototype.proof = null; + + /** + * GetDataContractHistoryResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @instance + */ + GetDataContractHistoryResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataContractHistoryResponseV0 result. + * @member {"dataContractHistory"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @instance + */ + Object.defineProperty(GetDataContractHistoryResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["dataContractHistory", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataContractHistoryResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 instance + */ + GetDataContractHistoryResponseV0.create = function create(properties) { + return new GetDataContractHistoryResponseV0(properties); + }; + + /** + * Encodes the specified GetDataContractHistoryResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContractHistory != null && Object.hasOwnProperty.call(message, "dataContractHistory")) + $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.encode(message.dataContractHistory, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDataContractHistoryResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataContractHistoryResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDataContractHistoryResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryResponseV0.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.decode(reader, reader.uint32()); + break; + case 2: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDataContractHistoryResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataContractHistoryResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDataContractHistoryResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataContractHistoryResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataContractHistory != null && message.hasOwnProperty("dataContractHistory")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify(message.dataContractHistory); + if (error) + return "dataContractHistory." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetDataContractHistoryResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 + */ + GetDataContractHistoryResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0(); + if (object.dataContractHistory != null) { + if (typeof object.dataContractHistory !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.dataContractHistory: object expected"); + message.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.fromObject(object.dataContractHistory); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetDataContractHistoryResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDataContractHistoryResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.dataContractHistory != null && message.hasOwnProperty("dataContractHistory")) { + object.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(message.dataContractHistory, options); + if (options.oneofs) + object.result = "dataContractHistory"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetDataContractHistoryResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetDataContractHistoryResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDataContractHistoryResponseV0.DataContractHistoryEntry = (function() { + + /** + * Properties of a DataContractHistoryEntry. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @interface IDataContractHistoryEntry + * @property {number|Long|null} [date] DataContractHistoryEntry date + * @property {Uint8Array|null} [value] DataContractHistoryEntry value + */ + + /** + * Constructs a new DataContractHistoryEntry. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @classdesc Represents a DataContractHistoryEntry. + * @implements IDataContractHistoryEntry + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry=} [properties] Properties to set + */ + function DataContractHistoryEntry(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]]; + } + + /** + * DataContractHistoryEntry date. + * @member {number|Long} date + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @instance + */ + DataContractHistoryEntry.prototype.date = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * DataContractHistoryEntry value. + * @member {Uint8Array} value + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @instance + */ + DataContractHistoryEntry.prototype.value = $util.newBuffer([]); + + /** + * Creates a new DataContractHistoryEntry instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry instance + */ + DataContractHistoryEntry.create = function create(properties) { + return new DataContractHistoryEntry(properties); + }; + + /** + * Encodes the specified DataContractHistoryEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry} message DataContractHistoryEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractHistoryEntry.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.date != null && Object.hasOwnProperty.call(message, "date")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.date); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value); + return writer; + }; + + /** + * Encodes the specified DataContractHistoryEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry} message DataContractHistoryEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractHistoryEntry.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DataContractHistoryEntry message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractHistoryEntry.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.date = reader.uint64(); + break; + case 2: + message.value = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DataContractHistoryEntry message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractHistoryEntry.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataContractHistoryEntry message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataContractHistoryEntry.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.date != null && message.hasOwnProperty("date")) + if (!$util.isInteger(message.date) && !(message.date && $util.isInteger(message.date.low) && $util.isInteger(message.date.high))) + return "date: integer|Long expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) + return "value: buffer expected"; + return null; + }; + + /** + * Creates a DataContractHistoryEntry message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry + */ + DataContractHistoryEntry.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry(); + if (object.date != null) + if ($util.Long) + (message.date = $util.Long.fromValue(object.date)).unsigned = true; + else if (typeof object.date === "string") + message.date = parseInt(object.date, 10); + else if (typeof object.date === "number") + message.date = object.date; + else if (typeof object.date === "object") + message.date = new $util.LongBits(object.date.low >>> 0, object.date.high >>> 0).toNumber(true); + if (object.value != null) + if (typeof object.value === "string") + $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); + else if (object.value.length >= 0) + message.value = object.value; + return message; + }; + + /** + * Creates a plain object from a DataContractHistoryEntry message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message DataContractHistoryEntry + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataContractHistoryEntry.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.date = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.date = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.value = ""; + else { + object.value = []; + if (options.bytes !== Array) + object.value = $util.newBuffer(object.value); + } + } + if (message.date != null && message.hasOwnProperty("date")) + if (typeof message.date === "number") + object.date = options.longs === String ? String(message.date) : message.date; + else + object.date = options.longs === String ? $util.Long.prototype.toString.call(message.date) : options.longs === Number ? new $util.LongBits(message.date.low >>> 0, message.date.high >>> 0).toNumber(true) : message.date; + if (message.value != null && message.hasOwnProperty("value")) + object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; + return object; + }; + + /** + * Converts this DataContractHistoryEntry to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry + * @instance + * @returns {Object.} JSON object + */ + DataContractHistoryEntry.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DataContractHistoryEntry; + })(); + + GetDataContractHistoryResponseV0.DataContractHistory = (function() { + + /** + * Properties of a DataContractHistory. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @interface IDataContractHistory + * @property {Array.|null} [dataContractEntries] DataContractHistory dataContractEntries + */ + + /** + * Constructs a new DataContractHistory. + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @classdesc Represents a DataContractHistory. + * @implements IDataContractHistory + * @constructor + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory=} [properties] Properties to set + */ + function DataContractHistory(properties) { + this.dataContractEntries = []; + 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]]; + } + + /** + * DataContractHistory dataContractEntries. + * @member {Array.} dataContractEntries + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @instance + */ + DataContractHistory.prototype.dataContractEntries = $util.emptyArray; + + /** + * Creates a new DataContractHistory instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory instance + */ + DataContractHistory.create = function create(properties) { + return new DataContractHistory(properties); + }; + + /** + * Encodes the specified DataContractHistory message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory} message DataContractHistory message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractHistory.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContractEntries != null && message.dataContractEntries.length) + for (var i = 0; i < message.dataContractEntries.length; ++i) + $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.encode(message.dataContractEntries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DataContractHistory message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory} message DataContractHistory message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataContractHistory.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DataContractHistory message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractHistory.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.dataContractEntries && message.dataContractEntries.length)) + message.dataContractEntries = []; + message.dataContractEntries.push($root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DataContractHistory message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataContractHistory.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataContractHistory message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataContractHistory.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dataContractEntries != null && message.hasOwnProperty("dataContractEntries")) { + if (!Array.isArray(message.dataContractEntries)) + return "dataContractEntries: array expected"; + for (var i = 0; i < message.dataContractEntries.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify(message.dataContractEntries[i]); + if (error) + return "dataContractEntries." + error; + } + } + return null; + }; + + /** + * Creates a DataContractHistory message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory + */ + DataContractHistory.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory(); + if (object.dataContractEntries) { + if (!Array.isArray(object.dataContractEntries)) + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.dataContractEntries: array expected"); + message.dataContractEntries = []; + for (var i = 0; i < object.dataContractEntries.length; ++i) { + if (typeof object.dataContractEntries[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.dataContractEntries: object expected"); + message.dataContractEntries[i] = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.fromObject(object.dataContractEntries[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a DataContractHistory message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @static + * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message DataContractHistory + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataContractHistory.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.dataContractEntries = []; + if (message.dataContractEntries && message.dataContractEntries.length) { + object.dataContractEntries = []; + for (var j = 0; j < message.dataContractEntries.length; ++j) + object.dataContractEntries[j] = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(message.dataContractEntries[j], options); + } + return object; + }; + + /** + * Converts this DataContractHistory to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory + * @instance + * @returns {Object.} JSON object + */ + DataContractHistory.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DataContractHistory; + })(); + + return GetDataContractHistoryResponseV0; + })(); + + return GetDataContractHistoryResponse; + })(); + + v0.GetDocumentsRequest = (function() { + + /** + * Properties of a GetDocumentsRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDocumentsRequest + * @property {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0|null} [v0] GetDocumentsRequest v0 + */ + + /** + * Constructs a new GetDocumentsRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDocumentsRequest. + * @implements IGetDocumentsRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest=} [properties] Properties to set + */ + function GetDocumentsRequest(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]]; + } + + /** + * GetDocumentsRequest v0. + * @member {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @instance + */ + GetDocumentsRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDocumentsRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @instance + */ + Object.defineProperty(GetDocumentsRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDocumentsRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest instance + */ + GetDocumentsRequest.create = function create(properties) { + return new GetDocumentsRequest(properties); + }; + + /** + * Encodes the specified GetDocumentsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest} message GetDocumentsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDocumentsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest} message GetDocumentsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDocumentsRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @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.GetDocumentsRequest} GetDocumentsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDocumentsRequest.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.GetDocumentsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDocumentsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDocumentsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDocumentsRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDocumentsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetDocumentsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest + */ + GetDocumentsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDocumentsRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetDocumentsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest} message GetDocumentsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDocumentsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetDocumentsRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @instance + * @returns {Object.} JSON object + */ + GetDocumentsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDocumentsRequest.GetDocumentsRequestV0 = (function() { + + /** + * Properties of a GetDocumentsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @interface IGetDocumentsRequestV0 + * @property {Uint8Array|null} [dataContractId] GetDocumentsRequestV0 dataContractId + * @property {string|null} [documentType] GetDocumentsRequestV0 documentType + * @property {Uint8Array|null} [where] GetDocumentsRequestV0 where + * @property {Uint8Array|null} [orderBy] GetDocumentsRequestV0 orderBy + * @property {number|null} [limit] GetDocumentsRequestV0 limit + * @property {Uint8Array|null} [startAfter] GetDocumentsRequestV0 startAfter + * @property {Uint8Array|null} [startAt] GetDocumentsRequestV0 startAt + * @property {boolean|null} [prove] GetDocumentsRequestV0 prove + */ + + /** + * Constructs a new GetDocumentsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @classdesc Represents a GetDocumentsRequestV0. + * @implements IGetDocumentsRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0=} [properties] Properties to set + */ + function GetDocumentsRequestV0(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]]; + } + + /** + * GetDocumentsRequestV0 dataContractId. + * @member {Uint8Array} dataContractId + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.dataContractId = $util.newBuffer([]); + + /** + * GetDocumentsRequestV0 documentType. + * @member {string} documentType + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.documentType = ""; + + /** + * GetDocumentsRequestV0 where. + * @member {Uint8Array} where + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.where = $util.newBuffer([]); + + /** + * GetDocumentsRequestV0 orderBy. + * @member {Uint8Array} orderBy + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.orderBy = $util.newBuffer([]); + + /** + * GetDocumentsRequestV0 limit. + * @member {number} limit + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.limit = 0; + + /** + * GetDocumentsRequestV0 startAfter. + * @member {Uint8Array} startAfter + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.startAfter = $util.newBuffer([]); + + /** + * GetDocumentsRequestV0 startAt. + * @member {Uint8Array} startAt + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.startAt = $util.newBuffer([]); + + /** + * GetDocumentsRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + GetDocumentsRequestV0.prototype.prove = false; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDocumentsRequestV0 start. + * @member {"startAfter"|"startAt"|undefined} start + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + */ + Object.defineProperty(GetDocumentsRequestV0.prototype, "start", { + get: $util.oneOfGetter($oneOfFields = ["startAfter", "startAt"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDocumentsRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 instance + */ + GetDocumentsRequestV0.create = function create(properties) { + return new GetDocumentsRequestV0(properties); + }; + + /** + * Encodes the specified GetDocumentsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0} message GetDocumentsRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dataContractId != null && Object.hasOwnProperty.call(message, "dataContractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.dataContractId); + if (message.documentType != null && Object.hasOwnProperty.call(message, "documentType")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentType); + if (message.where != null && Object.hasOwnProperty.call(message, "where")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.where); + if (message.orderBy != null && Object.hasOwnProperty.call(message, "orderBy")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.orderBy); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.limit); + if (message.startAfter != null && Object.hasOwnProperty.call(message, "startAfter")) + writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.startAfter); + if (message.startAt != null && Object.hasOwnProperty.call(message, "startAt")) + writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.startAt); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 8, wireType 0 =*/64).bool(message.prove); + return writer; + }; + + /** + * Encodes the specified GetDocumentsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0} message GetDocumentsRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDocumentsRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @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.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDocumentsRequestV0.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.GetDocumentsRequest.GetDocumentsRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dataContractId = reader.bytes(); + break; + case 2: + message.documentType = reader.string(); + break; + case 3: + message.where = reader.bytes(); + break; + case 4: + message.orderBy = reader.bytes(); + break; + case 5: + message.limit = reader.uint32(); + break; + case 6: + message.startAfter = reader.bytes(); + break; + case 7: + message.startAt = reader.bytes(); + break; + case 8: + message.prove = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetDocumentsRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDocumentsRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetDocumentsRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDocumentsRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.dataContractId != null && message.hasOwnProperty("dataContractId")) + if (!(message.dataContractId && typeof message.dataContractId.length === "number" || $util.isString(message.dataContractId))) + return "dataContractId: buffer expected"; + if (message.documentType != null && message.hasOwnProperty("documentType")) + if (!$util.isString(message.documentType)) + return "documentType: string expected"; + if (message.where != null && message.hasOwnProperty("where")) + if (!(message.where && typeof message.where.length === "number" || $util.isString(message.where))) + return "where: buffer expected"; + if (message.orderBy != null && message.hasOwnProperty("orderBy")) + if (!(message.orderBy && typeof message.orderBy.length === "number" || $util.isString(message.orderBy))) + return "orderBy: buffer expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit)) + return "limit: integer expected"; + if (message.startAfter != null && message.hasOwnProperty("startAfter")) { + properties.start = 1; + if (!(message.startAfter && typeof message.startAfter.length === "number" || $util.isString(message.startAfter))) + return "startAfter: buffer expected"; + } + if (message.startAt != null && message.hasOwnProperty("startAt")) { + if (properties.start === 1) + return "start: multiple values"; + properties.start = 1; + if (!(message.startAt && typeof message.startAt.length === "number" || $util.isString(message.startAt))) + return "startAt: buffer expected"; + } + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; + + /** + * Creates a GetDocumentsRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + */ + GetDocumentsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0(); + if (object.dataContractId != null) + if (typeof object.dataContractId === "string") + $util.base64.decode(object.dataContractId, message.dataContractId = $util.newBuffer($util.base64.length(object.dataContractId)), 0); + else if (object.dataContractId.length >= 0) + message.dataContractId = object.dataContractId; + if (object.documentType != null) + message.documentType = String(object.documentType); + if (object.where != null) + if (typeof object.where === "string") + $util.base64.decode(object.where, message.where = $util.newBuffer($util.base64.length(object.where)), 0); + else if (object.where.length >= 0) + message.where = object.where; + if (object.orderBy != null) + if (typeof object.orderBy === "string") + $util.base64.decode(object.orderBy, message.orderBy = $util.newBuffer($util.base64.length(object.orderBy)), 0); + else if (object.orderBy.length >= 0) + message.orderBy = object.orderBy; + if (object.limit != null) + message.limit = object.limit >>> 0; + if (object.startAfter != null) + if (typeof object.startAfter === "string") + $util.base64.decode(object.startAfter, message.startAfter = $util.newBuffer($util.base64.length(object.startAfter)), 0); + else if (object.startAfter.length >= 0) + message.startAfter = object.startAfter; + if (object.startAt != null) + if (typeof object.startAt === "string") + $util.base64.decode(object.startAt, message.startAt = $util.newBuffer($util.base64.length(object.startAt)), 0); + else if (object.startAt.length >= 0) + message.startAt = object.startAt; + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; + + /** + * Creates a plain object from a GetDocumentsRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message GetDocumentsRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDocumentsRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.dataContractId = ""; + else { + object.dataContractId = []; + if (options.bytes !== Array) + object.dataContractId = $util.newBuffer(object.dataContractId); + } + object.documentType = ""; + if (options.bytes === String) + object.where = ""; + else { + object.where = []; + if (options.bytes !== Array) + object.where = $util.newBuffer(object.where); + } + if (options.bytes === String) + object.orderBy = ""; + else { + object.orderBy = []; + if (options.bytes !== Array) + object.orderBy = $util.newBuffer(object.orderBy); + } + object.limit = 0; + object.prove = false; + } + if (message.dataContractId != null && message.hasOwnProperty("dataContractId")) + object.dataContractId = options.bytes === String ? $util.base64.encode(message.dataContractId, 0, message.dataContractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataContractId) : message.dataContractId; + if (message.documentType != null && message.hasOwnProperty("documentType")) + object.documentType = message.documentType; + if (message.where != null && message.hasOwnProperty("where")) + object.where = options.bytes === String ? $util.base64.encode(message.where, 0, message.where.length) : options.bytes === Array ? Array.prototype.slice.call(message.where) : message.where; + if (message.orderBy != null && message.hasOwnProperty("orderBy")) + object.orderBy = options.bytes === String ? $util.base64.encode(message.orderBy, 0, message.orderBy.length) : options.bytes === Array ? Array.prototype.slice.call(message.orderBy) : message.orderBy; + if (message.limit != null && message.hasOwnProperty("limit")) + object.limit = message.limit; + if (message.startAfter != null && message.hasOwnProperty("startAfter")) { + object.startAfter = options.bytes === String ? $util.base64.encode(message.startAfter, 0, message.startAfter.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAfter) : message.startAfter; + if (options.oneofs) + object.start = "startAfter"; + } + if (message.startAt != null && message.hasOwnProperty("startAt")) { + object.startAt = options.bytes === String ? $util.base64.encode(message.startAt, 0, message.startAt.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAt) : message.startAt; + if (options.oneofs) + object.start = "startAt"; + } + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; + + /** + * Converts this GetDocumentsRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetDocumentsRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetDocumentsRequestV0; + })(); + + return GetDocumentsRequest; + })(); + + v0.GetDocumentsResponse = (function() { + + /** + * Properties of a GetDocumentsResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetDocumentsResponse + * @property {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0|null} [v0] GetDocumentsResponse v0 + */ + + /** + * Constructs a new GetDocumentsResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetDocumentsResponse. + * @implements IGetDocumentsResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse=} [properties] Properties to set + */ + function GetDocumentsResponse(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]]; + } + + /** + * GetDocumentsResponse v0. + * @member {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @instance + */ + GetDocumentsResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDocumentsResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @instance + */ + Object.defineProperty(GetDocumentsResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDocumentsResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse instance + */ + GetDocumentsResponse.create = function create(properties) { + return new GetDocumentsResponse(properties); + }; + + /** + * Encodes the specified GetDocumentsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse} message GetDocumentsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsResponse.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.GetDocumentsResponse.GetDocumentsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetDocumentsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse} message GetDocumentsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDocumentsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetDocumentsResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @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.GetDocumentsResponse} GetDocumentsResponse + * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsRequest.decode = function decode(reader, length) { + GetDocumentsResponse.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.GetDataContractsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14539,37 +21387,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractsRequest message from the specified reader or buffer, length delimited. + * Decodes a GetDocumentsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsRequest.decodeDelimited = function decodeDelimited(reader) { + GetDocumentsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractsRequest message. + * Verifies a GetDocumentsResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractsRequest.verify = function verify(message) { + GetDocumentsResponse.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.GetDataContractsRequest.GetDataContractsRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -14578,40 +21426,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetDocumentsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest} GetDataContractsRequest + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse */ - GetDataContractsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsRequest) + GetDocumentsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractsRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetDocumentsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest} message GetDataContractsRequest + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse} message GetDocumentsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractsRequest.toObject = function toObject(message, options) { + GetDocumentsResponse.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.GetDataContractsRequest.GetDataContractsRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -14619,36 +21467,36 @@ $root.org = (function() { }; /** - * Converts this GetDataContractsRequest to JSON. + * Converts this GetDocumentsResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse * @instance * @returns {Object.} JSON object */ - GetDataContractsRequest.prototype.toJSON = function toJSON() { + GetDocumentsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractsRequest.GetDataContractsRequestV0 = (function() { + GetDocumentsResponse.GetDocumentsResponseV0 = (function() { /** - * Properties of a GetDataContractsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @interface IGetDataContractsRequestV0 - * @property {Array.|null} [ids] GetDataContractsRequestV0 ids - * @property {boolean|null} [prove] GetDataContractsRequestV0 prove + * Properties of a GetDocumentsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @interface IGetDocumentsResponseV0 + * @property {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments|null} [documents] GetDocumentsResponseV0 documents + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDocumentsResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDocumentsResponseV0 metadata */ /** - * Constructs a new GetDataContractsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest - * @classdesc Represents a GetDataContractsRequestV0. - * @implements IGetDataContractsRequestV0 + * Constructs a new GetDocumentsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @classdesc Represents a GetDocumentsResponseV0. + * @implements IGetDocumentsResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0=} [properties] Properties to set */ - function GetDataContractsRequestV0(properties) { - this.ids = []; + function GetDocumentsResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14656,91 +21504,115 @@ $root.org = (function() { } /** - * GetDataContractsRequestV0 ids. - * @member {Array.} ids - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * GetDocumentsResponseV0 documents. + * @member {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments|null|undefined} documents + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @instance */ - GetDataContractsRequestV0.prototype.ids = $util.emptyArray; + GetDocumentsResponseV0.prototype.documents = null; /** - * GetDataContractsRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * GetDocumentsResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @instance */ - GetDataContractsRequestV0.prototype.prove = false; + GetDocumentsResponseV0.prototype.proof = null; /** - * Creates a new GetDataContractsRequestV0 instance using the specified properties. + * GetDocumentsResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @instance + */ + GetDocumentsResponseV0.prototype.metadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDocumentsResponseV0 result. + * @member {"documents"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @instance + */ + Object.defineProperty(GetDocumentsResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["documents", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDocumentsResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 instance */ - GetDataContractsRequestV0.create = function create(properties) { - return new GetDataContractsRequestV0(properties); + GetDocumentsResponseV0.create = function create(properties) { + return new GetDocumentsResponseV0(properties); }; /** - * Encodes the specified GetDataContractsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.verify|verify} messages. + * Encodes the specified GetDocumentsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0} message GetDataContractsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0} message GetDocumentsResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsRequestV0.encode = function encode(message, writer) { + GetDocumentsResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.ids != null && message.ids.length) - for (var i = 0; i < message.ids.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ids[i]); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + if (message.documents != null && Object.hasOwnProperty.call(message, "documents")) + $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.encode(message.documents, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.verify|verify} messages. + * Encodes the specified GetDocumentsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.IGetDataContractsRequestV0} message GetDataContractsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0} message GetDocumentsResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetDocumentsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractsRequestV0 message from the specified reader or buffer. + * Decodes a GetDocumentsResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @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.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsRequestV0.decode = function decode(reader, length) { + GetDocumentsResponseV0.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.GetDataContractsRequest.GetDataContractsRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.ids && message.ids.length)) - message.ids = []; - message.ids.push(reader.bytes()); + message.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.decode(reader, reader.uint32()); break; case 2: - message.prove = reader.bool(); + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14751,134 +21623,360 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractsRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetDocumentsResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetDocumentsResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractsRequestV0 message. + * Verifies a GetDocumentsResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractsRequestV0.verify = function verify(message) { + GetDocumentsResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.ids != null && message.hasOwnProperty("ids")) { - if (!Array.isArray(message.ids)) - return "ids: array expected"; - for (var i = 0; i < message.ids.length; ++i) - if (!(message.ids[i] && typeof message.ids[i].length === "number" || $util.isString(message.ids[i]))) - return "ids: buffer[] expected"; + var properties = {}; + if (message.documents != null && message.hasOwnProperty("documents")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify(message.documents); + if (error) + return "documents." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; } - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; return null; }; /** - * Creates a GetDataContractsRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetDocumentsResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} GetDataContractsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 */ - GetDataContractsRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0) + GetDocumentsResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0(); - if (object.ids) { - if (!Array.isArray(object.ids)) - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.ids: array expected"); - message.ids = []; - for (var i = 0; i < object.ids.length; ++i) - if (typeof object.ids[i] === "string") - $util.base64.decode(object.ids[i], message.ids[i] = $util.newBuffer($util.base64.length(object.ids[i])), 0); - else if (object.ids[i].length >= 0) - message.ids[i] = object.ids[i]; + var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0(); + if (object.documents != null) { + if (typeof object.documents !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.documents: object expected"); + message.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.fromObject(object.documents); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } - if (object.prove != null) - message.prove = Boolean(object.prove); return message; }; - /** - * Creates a plain object from a GetDataContractsRequestV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message GetDataContractsRequestV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetDataContractsRequestV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.ids = []; - if (options.defaults) - object.prove = false; - if (message.ids && message.ids.length) { - object.ids = []; - for (var j = 0; j < message.ids.length; ++j) - object.ids[j] = options.bytes === String ? $util.base64.encode(message.ids[j], 0, message.ids[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.ids[j]) : message.ids[j]; - } - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; - return object; - }; + /** + * Creates a plain object from a GetDocumentsResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} message GetDocumentsResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetDocumentsResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.documents != null && message.hasOwnProperty("documents")) { + object.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(message.documents, options); + if (options.oneofs) + object.result = "documents"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetDocumentsResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetDocumentsResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetDocumentsResponseV0.Documents = (function() { + + /** + * Properties of a Documents. + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @interface IDocuments + * @property {Array.|null} [documents] Documents documents + */ + + /** + * Constructs a new Documents. + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @classdesc Represents a Documents. + * @implements IDocuments + * @constructor + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments=} [properties] Properties to set + */ + function Documents(properties) { + this.documents = []; + 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]]; + } + + /** + * Documents documents. + * @member {Array.} documents + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @instance + */ + Documents.prototype.documents = $util.emptyArray; + + /** + * Creates a new Documents instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents instance + */ + Documents.create = function create(properties) { + return new Documents(properties); + }; + + /** + * Encodes the specified Documents message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments} message Documents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Documents.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.documents != null && message.documents.length) + for (var i = 0; i < message.documents.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.documents[i]); + return writer; + }; + + /** + * Encodes the specified Documents message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments} message Documents message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Documents.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Documents message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Documents.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.documents && message.documents.length)) + message.documents = []; + message.documents.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Documents message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Documents.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Documents message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Documents.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.documents != null && message.hasOwnProperty("documents")) { + if (!Array.isArray(message.documents)) + return "documents: array expected"; + for (var i = 0; i < message.documents.length; ++i) + if (!(message.documents[i] && typeof message.documents[i].length === "number" || $util.isString(message.documents[i]))) + return "documents: buffer[] expected"; + } + return null; + }; + + /** + * Creates a Documents message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents + */ + Documents.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents(); + if (object.documents) { + if (!Array.isArray(object.documents)) + throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.documents: array expected"); + message.documents = []; + for (var i = 0; i < object.documents.length; ++i) + if (typeof object.documents[i] === "string") + $util.base64.decode(object.documents[i], message.documents[i] = $util.newBuffer($util.base64.length(object.documents[i])), 0); + else if (object.documents[i].length >= 0) + message.documents[i] = object.documents[i]; + } + return message; + }; + + /** + * Creates a plain object from a Documents message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @static + * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message Documents + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Documents.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.documents = []; + if (message.documents && message.documents.length) { + object.documents = []; + for (var j = 0; j < message.documents.length; ++j) + object.documents[j] = options.bytes === String ? $util.base64.encode(message.documents[j], 0, message.documents[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.documents[j]) : message.documents[j]; + } + return object; + }; + + /** + * Converts this Documents to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents + * @instance + * @returns {Object.} JSON object + */ + Documents.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetDataContractsRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetDataContractsRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return Documents; + })(); - return GetDataContractsRequestV0; + return GetDocumentsResponseV0; })(); - return GetDataContractsRequest; + return GetDocumentsResponse; })(); - v0.GetDataContractsResponse = (function() { + v0.GetIdentityByPublicKeyHashRequest = (function() { /** - * Properties of a GetDataContractsResponse. + * Properties of a GetIdentityByPublicKeyHashRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractsResponse - * @property {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0|null} [v0] GetDataContractsResponse v0 + * @interface IGetIdentityByPublicKeyHashRequest + * @property {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0|null} [v0] GetIdentityByPublicKeyHashRequest v0 */ /** - * Constructs a new GetDataContractsResponse. + * Constructs a new GetIdentityByPublicKeyHashRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractsResponse. - * @implements IGetDataContractsResponse + * @classdesc Represents a GetIdentityByPublicKeyHashRequest. + * @implements IGetIdentityByPublicKeyHashRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest=} [properties] Properties to set */ - function GetDataContractsResponse(properties) { + function GetIdentityByPublicKeyHashRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14886,89 +21984,89 @@ $root.org = (function() { } /** - * GetDataContractsResponse v0. - * @member {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * GetIdentityByPublicKeyHashRequest v0. + * @member {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @instance */ - GetDataContractsResponse.prototype.v0 = null; + GetIdentityByPublicKeyHashRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractsResponse version. + * GetIdentityByPublicKeyHashRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @instance */ - Object.defineProperty(GetDataContractsResponse.prototype, "version", { + Object.defineProperty(GetIdentityByPublicKeyHashRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractsResponse instance using the specified properties. + * Creates a new GetIdentityByPublicKeyHashRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse instance + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest instance */ - GetDataContractsResponse.create = function create(properties) { - return new GetDataContractsResponse(properties); + GetIdentityByPublicKeyHashRequest.create = function create(properties) { + return new GetIdentityByPublicKeyHashRequest(properties); }; /** - * Encodes the specified GetDataContractsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse} message GetDataContractsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsResponse.encode = function encode(message, writer) { + GetIdentityByPublicKeyHashRequest.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.GetDataContractsResponse.GetDataContractsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractsResponse} message GetDataContractsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentityByPublicKeyHashRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractsResponse message from the specified reader or buffer. + * Decodes a GetIdentityByPublicKeyHashRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @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.GetDataContractsResponse} GetDataContractsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsResponse.decode = function decode(reader, length) { + GetIdentityByPublicKeyHashRequest.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.GetDataContractsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -14979,37 +22077,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractsResponse message from the specified reader or buffer, length delimited. + * Decodes a GetIdentityByPublicKeyHashRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsResponse.decodeDelimited = function decodeDelimited(reader) { + GetIdentityByPublicKeyHashRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractsResponse message. + * Verifies a GetIdentityByPublicKeyHashRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractsResponse.verify = function verify(message) { + GetIdentityByPublicKeyHashRequest.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.GetDataContractsResponse.GetDataContractsResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -15018,40 +22116,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentityByPublicKeyHashRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse} GetDataContractsResponse + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest */ - GetDataContractsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse) + GetIdentityByPublicKeyHashRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractsResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentityByPublicKeyHashRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse} message GetDataContractsResponse + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractsResponse.toObject = function toObject(message, options) { + GetIdentityByPublicKeyHashRequest.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.GetDataContractsResponse.GetDataContractsResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -15059,35 +22157,35 @@ $root.org = (function() { }; /** - * Converts this GetDataContractsResponse to JSON. + * Converts this GetIdentityByPublicKeyHashRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest * @instance * @returns {Object.} JSON object */ - GetDataContractsResponse.prototype.toJSON = function toJSON() { + GetIdentityByPublicKeyHashRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractsResponse.DataContractEntry = (function() { + GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 = (function() { /** - * Properties of a DataContractEntry. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @interface IDataContractEntry - * @property {Uint8Array|null} [identifier] DataContractEntry identifier - * @property {google.protobuf.IBytesValue|null} [dataContract] DataContractEntry dataContract + * Properties of a GetIdentityByPublicKeyHashRequestV0. + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @interface IGetIdentityByPublicKeyHashRequestV0 + * @property {Uint8Array|null} [publicKeyHash] GetIdentityByPublicKeyHashRequestV0 publicKeyHash + * @property {boolean|null} [prove] GetIdentityByPublicKeyHashRequestV0 prove */ /** - * Constructs a new DataContractEntry. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @classdesc Represents a DataContractEntry. - * @implements IDataContractEntry + * Constructs a new GetIdentityByPublicKeyHashRequestV0. + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @classdesc Represents a GetIdentityByPublicKeyHashRequestV0. + * @implements IGetIdentityByPublicKeyHashRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0=} [properties] Properties to set */ - function DataContractEntry(properties) { + function GetIdentityByPublicKeyHashRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -15095,302 +22193,88 @@ $root.org = (function() { } /** - * DataContractEntry identifier. - * @member {Uint8Array} identifier - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * GetIdentityByPublicKeyHashRequestV0 publicKeyHash. + * @member {Uint8Array} publicKeyHash + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @instance */ - DataContractEntry.prototype.identifier = $util.newBuffer([]); + GetIdentityByPublicKeyHashRequestV0.prototype.publicKeyHash = $util.newBuffer([]); /** - * DataContractEntry dataContract. - * @member {google.protobuf.IBytesValue|null|undefined} dataContract - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * GetIdentityByPublicKeyHashRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @instance */ - DataContractEntry.prototype.dataContract = null; + GetIdentityByPublicKeyHashRequestV0.prototype.prove = false; /** - * Creates a new DataContractEntry instance using the specified properties. + * Creates a new GetIdentityByPublicKeyHashRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry instance + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 instance */ - DataContractEntry.create = function create(properties) { - return new DataContractEntry(properties); + GetIdentityByPublicKeyHashRequestV0.create = function create(properties) { + return new GetIdentityByPublicKeyHashRequestV0(properties); }; /** - * Encodes the specified DataContractEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry} message DataContractEntry message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DataContractEntry.encode = function encode(message, writer) { + GetIdentityByPublicKeyHashRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identifier); - if (message.dataContract != null && Object.hasOwnProperty.call(message, "dataContract")) - $root.google.protobuf.BytesValue.encode(message.dataContract, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.publicKeyHash != null && Object.hasOwnProperty.call(message, "publicKeyHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.publicKeyHash); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); return writer; }; /** - * Encodes the specified DataContractEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContractEntry} message DataContractEntry message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DataContractEntry.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentityByPublicKeyHashRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DataContractEntry message from the specified reader or buffer. + * Decodes a GetIdentityByPublicKeyHashRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @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.GetDataContractsResponse.DataContractEntry} DataContractEntry + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DataContractEntry.decode = function decode(reader, length) { + GetIdentityByPublicKeyHashRequestV0.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.GetDataContractsResponse.DataContractEntry(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.identifier = reader.bytes(); + message.publicKeyHash = reader.bytes(); break; case 2: - message.dataContract = $root.google.protobuf.BytesValue.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a DataContractEntry message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContractEntry.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a DataContractEntry message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DataContractEntry.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.identifier != null && message.hasOwnProperty("identifier")) - if (!(message.identifier && typeof message.identifier.length === "number" || $util.isString(message.identifier))) - return "identifier: buffer expected"; - if (message.dataContract != null && message.hasOwnProperty("dataContract")) { - var error = $root.google.protobuf.BytesValue.verify(message.dataContract); - if (error) - return "dataContract." + error; - } - return null; - }; - - /** - * Creates a DataContractEntry message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} DataContractEntry - */ - DataContractEntry.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry(); - if (object.identifier != null) - if (typeof object.identifier === "string") - $util.base64.decode(object.identifier, message.identifier = $util.newBuffer($util.base64.length(object.identifier)), 0); - else if (object.identifier.length >= 0) - message.identifier = object.identifier; - if (object.dataContract != null) { - if (typeof object.dataContract !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.dataContract: object expected"); - message.dataContract = $root.google.protobuf.BytesValue.fromObject(object.dataContract); - } - return message; - }; - - /** - * Creates a plain object from a DataContractEntry message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message DataContractEntry - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DataContractEntry.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.identifier = ""; - else { - object.identifier = []; - if (options.bytes !== Array) - object.identifier = $util.newBuffer(object.identifier); - } - object.dataContract = null; - } - if (message.identifier != null && message.hasOwnProperty("identifier")) - object.identifier = options.bytes === String ? $util.base64.encode(message.identifier, 0, message.identifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.identifier) : message.identifier; - if (message.dataContract != null && message.hasOwnProperty("dataContract")) - object.dataContract = $root.google.protobuf.BytesValue.toObject(message.dataContract, options); - return object; - }; - - /** - * Converts this DataContractEntry to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry - * @instance - * @returns {Object.} JSON object - */ - DataContractEntry.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return DataContractEntry; - })(); - - GetDataContractsResponse.DataContracts = (function() { - - /** - * Properties of a DataContracts. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @interface IDataContracts - * @property {Array.|null} [dataContractEntries] DataContracts dataContractEntries - */ - - /** - * Constructs a new DataContracts. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @classdesc Represents a DataContracts. - * @implements IDataContracts - * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts=} [properties] Properties to set - */ - function DataContracts(properties) { - this.dataContractEntries = []; - 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]]; - } - - /** - * DataContracts dataContractEntries. - * @member {Array.} dataContractEntries - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts - * @instance - */ - DataContracts.prototype.dataContractEntries = $util.emptyArray; - - /** - * Creates a new DataContracts instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts instance - */ - DataContracts.create = function create(properties) { - return new DataContracts(properties); - }; - - /** - * Encodes the specified DataContracts message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts} message DataContracts message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContracts.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dataContractEntries != null && message.dataContractEntries.length) - for (var i = 0; i < message.dataContractEntries.length; ++i) - $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.encode(message.dataContractEntries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified DataContracts message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts} message DataContracts message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContracts.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a DataContracts message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts - * @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.GetDataContractsResponse.DataContracts} DataContracts - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContracts.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.GetDataContractsResponse.DataContracts(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.dataContractEntries && message.dataContractEntries.length)) - message.dataContractEntries = []; - message.dataContractEntries.push($root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.decode(reader, reader.uint32())); + message.prove = reader.bool(); break; default: reader.skipType(tag & 7); @@ -15401,126 +22285,338 @@ $root.org = (function() { }; /** - * Decodes a DataContracts message from the specified reader or buffer, length delimited. + * Decodes a GetIdentityByPublicKeyHashRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DataContracts.decodeDelimited = function decodeDelimited(reader) { + GetIdentityByPublicKeyHashRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DataContracts message. + * Verifies a GetIdentityByPublicKeyHashRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DataContracts.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dataContractEntries != null && message.hasOwnProperty("dataContractEntries")) { - if (!Array.isArray(message.dataContractEntries)) - return "dataContractEntries: array expected"; - for (var i = 0; i < message.dataContractEntries.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.verify(message.dataContractEntries[i]); - if (error) - return "dataContractEntries." + error; - } - } + */ + GetIdentityByPublicKeyHashRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.publicKeyHash != null && message.hasOwnProperty("publicKeyHash")) + if (!(message.publicKeyHash && typeof message.publicKeyHash.length === "number" || $util.isString(message.publicKeyHash))) + return "publicKeyHash: buffer expected"; + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; return null; }; /** - * Creates a DataContracts message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentityByPublicKeyHashRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} DataContracts + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 */ - DataContracts.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts) + GetIdentityByPublicKeyHashRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts(); - if (object.dataContractEntries) { - if (!Array.isArray(object.dataContractEntries)) - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.dataContractEntries: array expected"); - message.dataContractEntries = []; - for (var i = 0; i < object.dataContractEntries.length; ++i) { - if (typeof object.dataContractEntries[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.dataContractEntries: object expected"); - message.dataContractEntries[i] = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.fromObject(object.dataContractEntries[i]); - } - } + var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0(); + if (object.publicKeyHash != null) + if (typeof object.publicKeyHash === "string") + $util.base64.decode(object.publicKeyHash, message.publicKeyHash = $util.newBuffer($util.base64.length(object.publicKeyHash)), 0); + else if (object.publicKeyHash.length >= 0) + message.publicKeyHash = object.publicKeyHash; + if (object.prove != null) + message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a DataContracts message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentityByPublicKeyHashRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message DataContracts + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - DataContracts.toObject = function toObject(message, options) { + GetIdentityByPublicKeyHashRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.dataContractEntries = []; - if (message.dataContractEntries && message.dataContractEntries.length) { - object.dataContractEntries = []; - for (var j = 0; j < message.dataContractEntries.length; ++j) - object.dataContractEntries[j] = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(message.dataContractEntries[j], options); + if (options.defaults) { + if (options.bytes === String) + object.publicKeyHash = ""; + else { + object.publicKeyHash = []; + if (options.bytes !== Array) + object.publicKeyHash = $util.newBuffer(object.publicKeyHash); + } + object.prove = false; } + if (message.publicKeyHash != null && message.hasOwnProperty("publicKeyHash")) + object.publicKeyHash = options.bytes === String ? $util.base64.encode(message.publicKeyHash, 0, message.publicKeyHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.publicKeyHash) : message.publicKeyHash; + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; return object; }; /** - * Converts this DataContracts to JSON. + * Converts this GetIdentityByPublicKeyHashRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 * @instance * @returns {Object.} JSON object */ - DataContracts.prototype.toJSON = function toJSON() { + GetIdentityByPublicKeyHashRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return DataContracts; + return GetIdentityByPublicKeyHashRequestV0; })(); - GetDataContractsResponse.GetDataContractsResponseV0 = (function() { + return GetIdentityByPublicKeyHashRequest; + })(); + + v0.GetIdentityByPublicKeyHashResponse = (function() { + + /** + * Properties of a GetIdentityByPublicKeyHashResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetIdentityByPublicKeyHashResponse + * @property {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0|null} [v0] GetIdentityByPublicKeyHashResponse v0 + */ + + /** + * Constructs a new GetIdentityByPublicKeyHashResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetIdentityByPublicKeyHashResponse. + * @implements IGetIdentityByPublicKeyHashResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse=} [properties] Properties to set + */ + function GetIdentityByPublicKeyHashResponse(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]]; + } + + /** + * GetIdentityByPublicKeyHashResponse v0. + * @member {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @instance + */ + GetIdentityByPublicKeyHashResponse.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetIdentityByPublicKeyHashResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @instance + */ + Object.defineProperty(GetIdentityByPublicKeyHashResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetIdentityByPublicKeyHashResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse instance + */ + GetIdentityByPublicKeyHashResponse.create = function create(properties) { + return new GetIdentityByPublicKeyHashResponse(properties); + }; + + /** + * Encodes the specified GetIdentityByPublicKeyHashResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetIdentityByPublicKeyHashResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetIdentityByPublicKeyHashResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetIdentityByPublicKeyHashResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetIdentityByPublicKeyHashResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @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.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetIdentityByPublicKeyHashResponse.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.GetIdentityByPublicKeyHashResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetIdentityByPublicKeyHashResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetIdentityByPublicKeyHashResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetIdentityByPublicKeyHashResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetIdentityByPublicKeyHashResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; + + /** + * Creates a GetIdentityByPublicKeyHashResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + */ + GetIdentityByPublicKeyHashResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.fromObject(object.v0); + } + return message; + }; + + /** + * Creates a plain object from a GetIdentityByPublicKeyHashResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @static + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetIdentityByPublicKeyHashResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; + + /** + * Converts this GetIdentityByPublicKeyHashResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @instance + * @returns {Object.} JSON object + */ + GetIdentityByPublicKeyHashResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 = (function() { /** - * Properties of a GetDataContractsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @interface IGetDataContractsResponseV0 - * @property {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts|null} [dataContracts] GetDataContractsResponseV0 dataContracts - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractsResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractsResponseV0 metadata + * Properties of a GetIdentityByPublicKeyHashResponseV0. + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @interface IGetIdentityByPublicKeyHashResponseV0 + * @property {Uint8Array|null} [identity] GetIdentityByPublicKeyHashResponseV0 identity + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetIdentityByPublicKeyHashResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetIdentityByPublicKeyHashResponseV0 metadata */ /** - * Constructs a new GetDataContractsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse - * @classdesc Represents a GetDataContractsResponseV0. - * @implements IGetDataContractsResponseV0 + * Constructs a new GetIdentityByPublicKeyHashResponseV0. + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @classdesc Represents a GetIdentityByPublicKeyHashResponseV0. + * @implements IGetIdentityByPublicKeyHashResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0=} [properties] Properties to set */ - function GetDataContractsResponseV0(properties) { + function GetIdentityByPublicKeyHashResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -15528,69 +22624,69 @@ $root.org = (function() { } /** - * GetDataContractsResponseV0 dataContracts. - * @member {org.dash.platform.dapi.v0.GetDataContractsResponse.IDataContracts|null|undefined} dataContracts - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * GetIdentityByPublicKeyHashResponseV0 identity. + * @member {Uint8Array} identity + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @instance */ - GetDataContractsResponseV0.prototype.dataContracts = null; + GetIdentityByPublicKeyHashResponseV0.prototype.identity = $util.newBuffer([]); /** - * GetDataContractsResponseV0 proof. + * GetIdentityByPublicKeyHashResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @instance */ - GetDataContractsResponseV0.prototype.proof = null; + GetIdentityByPublicKeyHashResponseV0.prototype.proof = null; /** - * GetDataContractsResponseV0 metadata. + * GetIdentityByPublicKeyHashResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @instance */ - GetDataContractsResponseV0.prototype.metadata = null; + GetIdentityByPublicKeyHashResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractsResponseV0 result. - * @member {"dataContracts"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * GetIdentityByPublicKeyHashResponseV0 result. + * @member {"identity"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @instance */ - Object.defineProperty(GetDataContractsResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["dataContracts", "proof"]), + Object.defineProperty(GetIdentityByPublicKeyHashResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["identity", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractsResponseV0 instance using the specified properties. + * Creates a new GetIdentityByPublicKeyHashResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 instance */ - GetDataContractsResponseV0.create = function create(properties) { - return new GetDataContractsResponseV0(properties); + GetIdentityByPublicKeyHashResponseV0.create = function create(properties) { + return new GetIdentityByPublicKeyHashResponseV0(properties); }; /** - * Encodes the specified GetDataContractsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0} message GetDataContractsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsResponseV0.encode = function encode(message, writer) { + GetIdentityByPublicKeyHashResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataContracts != null && Object.hasOwnProperty.call(message, "dataContracts")) - $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.encode(message.dataContracts, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.identity != null && Object.hasOwnProperty.call(message, "identity")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identity); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -15599,38 +22695,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetDataContractsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.verify|verify} messages. + * Encodes the specified GetIdentityByPublicKeyHashResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.IGetDataContractsResponseV0} message GetDataContractsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetIdentityByPublicKeyHashResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractsResponseV0 message from the specified reader or buffer. + * Decodes a GetIdentityByPublicKeyHashResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @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.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsResponseV0.decode = function decode(reader, length) { + GetIdentityByPublicKeyHashResponseV0.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.GetDataContractsResponse.GetDataContractsResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.decode(reader, reader.uint32()); + message.identity = reader.bytes(); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -15647,40 +22743,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractsResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetIdentityByPublicKeyHashResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractsResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetIdentityByPublicKeyHashResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractsResponseV0 message. + * Verifies a GetIdentityByPublicKeyHashResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractsResponseV0.verify = function verify(message) { + GetIdentityByPublicKeyHashResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.dataContracts != null && message.hasOwnProperty("dataContracts")) { + if (message.identity != null && message.hasOwnProperty("identity")) { properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.verify(message.dataContracts); - if (error) - return "dataContracts." + error; - } + if (!(message.identity && typeof message.identity.length === "number" || $util.isString(message.identity))) + return "identity: buffer expected"; } if (message.proof != null && message.hasOwnProperty("proof")) { if (properties.result === 1) @@ -15701,54 +22794,54 @@ $root.org = (function() { }; /** - * Creates a GetDataContractsResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetIdentityByPublicKeyHashResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} GetDataContractsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 */ - GetDataContractsResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0) + GetIdentityByPublicKeyHashResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0(); - if (object.dataContracts != null) { - if (typeof object.dataContracts !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.dataContracts: object expected"); - message.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.fromObject(object.dataContracts); - } + var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0(); + if (object.identity != null) + if (typeof object.identity === "string") + $util.base64.decode(object.identity, message.identity = $util.newBuffer($util.base64.length(object.identity)), 0); + else if (object.identity.length >= 0) + message.identity = object.identity; if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetDataContractsResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetIdentityByPublicKeyHashResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message GetDataContractsResponseV0 + * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractsResponseV0.toObject = function toObject(message, options) { + GetIdentityByPublicKeyHashResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.metadata = null; - if (message.dataContracts != null && message.hasOwnProperty("dataContracts")) { - object.dataContracts = $root.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(message.dataContracts, options); + if (message.identity != null && message.hasOwnProperty("identity")) { + object.identity = options.bytes === String ? $util.base64.encode(message.identity, 0, message.identity.length) : options.bytes === Array ? Array.prototype.slice.call(message.identity) : message.identity; if (options.oneofs) - object.result = "dataContracts"; + object.result = "identity"; } if (message.proof != null && message.hasOwnProperty("proof")) { object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); @@ -15761,40 +22854,40 @@ $root.org = (function() { }; /** - * Converts this GetDataContractsResponseV0 to JSON. + * Converts this GetIdentityByPublicKeyHashResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 * @instance * @returns {Object.} JSON object */ - GetDataContractsResponseV0.prototype.toJSON = function toJSON() { + GetIdentityByPublicKeyHashResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetDataContractsResponseV0; + return GetIdentityByPublicKeyHashResponseV0; })(); - return GetDataContractsResponse; + return GetIdentityByPublicKeyHashResponse; })(); - v0.GetDataContractHistoryRequest = (function() { + v0.WaitForStateTransitionResultRequest = (function() { /** - * Properties of a GetDataContractHistoryRequest. + * Properties of a WaitForStateTransitionResultRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractHistoryRequest - * @property {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0|null} [v0] GetDataContractHistoryRequest v0 + * @interface IWaitForStateTransitionResultRequest + * @property {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0|null} [v0] WaitForStateTransitionResultRequest v0 */ /** - * Constructs a new GetDataContractHistoryRequest. + * Constructs a new WaitForStateTransitionResultRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractHistoryRequest. - * @implements IGetDataContractHistoryRequest + * @classdesc Represents a WaitForStateTransitionResultRequest. + * @implements IWaitForStateTransitionResultRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest=} [properties] Properties to set */ - function GetDataContractHistoryRequest(properties) { + function WaitForStateTransitionResultRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -15802,89 +22895,89 @@ $root.org = (function() { } /** - * GetDataContractHistoryRequest v0. - * @member {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * WaitForStateTransitionResultRequest v0. + * @member {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @instance */ - GetDataContractHistoryRequest.prototype.v0 = null; + WaitForStateTransitionResultRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractHistoryRequest version. + * WaitForStateTransitionResultRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @instance */ - Object.defineProperty(GetDataContractHistoryRequest.prototype, "version", { + Object.defineProperty(WaitForStateTransitionResultRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractHistoryRequest instance using the specified properties. + * Creates a new WaitForStateTransitionResultRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest instance + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest instance */ - GetDataContractHistoryRequest.create = function create(properties) { - return new GetDataContractHistoryRequest(properties); + WaitForStateTransitionResultRequest.create = function create(properties) { + return new WaitForStateTransitionResultRequest(properties); }; /** - * Encodes the specified GetDataContractHistoryRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest} message GetDataContractHistoryRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryRequest.encode = function encode(message, writer) { + WaitForStateTransitionResultRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractHistoryRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryRequest} message GetDataContractHistoryRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryRequest.encodeDelimited = function encodeDelimited(message, writer) { + WaitForStateTransitionResultRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractHistoryRequest message from the specified reader or buffer. + * Decodes a WaitForStateTransitionResultRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @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.GetDataContractHistoryRequest} GetDataContractHistoryRequest + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryRequest.decode = function decode(reader, length) { + WaitForStateTransitionResultRequest.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.GetDataContractHistoryRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -15895,37 +22988,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractHistoryRequest message from the specified reader or buffer, length delimited. + * Decodes a WaitForStateTransitionResultRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryRequest.decodeDelimited = function decodeDelimited(reader) { + WaitForStateTransitionResultRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractHistoryRequest message. + * Verifies a WaitForStateTransitionResultRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractHistoryRequest.verify = function verify(message) { + WaitForStateTransitionResultRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -15934,40 +23027,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractHistoryRequest message from a plain object. Also converts values to their respective internal types. + * Creates a WaitForStateTransitionResultRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} GetDataContractHistoryRequest + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest */ - GetDataContractHistoryRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest) + WaitForStateTransitionResultRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest(); + var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractHistoryRequest message. Also converts values to other types if specified. + * Creates a plain object from a WaitForStateTransitionResultRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest} message GetDataContractHistoryRequest + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractHistoryRequest.toObject = function toObject(message, options) { + WaitForStateTransitionResultRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -15975,38 +23068,35 @@ $root.org = (function() { }; /** - * Converts this GetDataContractHistoryRequest to JSON. + * Converts this WaitForStateTransitionResultRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest * @instance * @returns {Object.} JSON object */ - GetDataContractHistoryRequest.prototype.toJSON = function toJSON() { + WaitForStateTransitionResultRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 = (function() { + WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 = (function() { /** - * Properties of a GetDataContractHistoryRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest - * @interface IGetDataContractHistoryRequestV0 - * @property {Uint8Array|null} [id] GetDataContractHistoryRequestV0 id - * @property {google.protobuf.IUInt32Value|null} [limit] GetDataContractHistoryRequestV0 limit - * @property {google.protobuf.IUInt32Value|null} [offset] GetDataContractHistoryRequestV0 offset - * @property {number|Long|null} [startAtMs] GetDataContractHistoryRequestV0 startAtMs - * @property {boolean|null} [prove] GetDataContractHistoryRequestV0 prove + * Properties of a WaitForStateTransitionResultRequestV0. + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @interface IWaitForStateTransitionResultRequestV0 + * @property {Uint8Array|null} [stateTransitionHash] WaitForStateTransitionResultRequestV0 stateTransitionHash + * @property {boolean|null} [prove] WaitForStateTransitionResultRequestV0 prove */ /** - * Constructs a new GetDataContractHistoryRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest - * @classdesc Represents a GetDataContractHistoryRequestV0. - * @implements IGetDataContractHistoryRequestV0 + * Constructs a new WaitForStateTransitionResultRequestV0. + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @classdesc Represents a WaitForStateTransitionResultRequestV0. + * @implements IWaitForStateTransitionResultRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0=} [properties] Properties to set */ - function GetDataContractHistoryRequestV0(properties) { + function WaitForStateTransitionResultRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -16014,126 +23104,87 @@ $root.org = (function() { } /** - * GetDataContractHistoryRequestV0 id. - * @member {Uint8Array} id - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 - * @instance - */ - GetDataContractHistoryRequestV0.prototype.id = $util.newBuffer([]); - - /** - * GetDataContractHistoryRequestV0 limit. - * @member {google.protobuf.IUInt32Value|null|undefined} limit - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 - * @instance - */ - GetDataContractHistoryRequestV0.prototype.limit = null; - - /** - * GetDataContractHistoryRequestV0 offset. - * @member {google.protobuf.IUInt32Value|null|undefined} offset - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 - * @instance - */ - GetDataContractHistoryRequestV0.prototype.offset = null; - - /** - * GetDataContractHistoryRequestV0 startAtMs. - * @member {number|Long} startAtMs - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * WaitForStateTransitionResultRequestV0 stateTransitionHash. + * @member {Uint8Array} stateTransitionHash + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @instance */ - GetDataContractHistoryRequestV0.prototype.startAtMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + WaitForStateTransitionResultRequestV0.prototype.stateTransitionHash = $util.newBuffer([]); /** - * GetDataContractHistoryRequestV0 prove. + * WaitForStateTransitionResultRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @instance */ - GetDataContractHistoryRequestV0.prototype.prove = false; + WaitForStateTransitionResultRequestV0.prototype.prove = false; /** - * Creates a new GetDataContractHistoryRequestV0 instance using the specified properties. + * Creates a new WaitForStateTransitionResultRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 instance + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 instance */ - GetDataContractHistoryRequestV0.create = function create(properties) { - return new GetDataContractHistoryRequestV0(properties); + WaitForStateTransitionResultRequestV0.create = function create(properties) { + return new WaitForStateTransitionResultRequestV0(properties); }; /** - * Encodes the specified GetDataContractHistoryRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryRequestV0.encode = function encode(message, writer) { + WaitForStateTransitionResultRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - $root.google.protobuf.UInt32Value.encode(message.limit, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - $root.google.protobuf.UInt32Value.encode(message.offset, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.startAtMs != null && Object.hasOwnProperty.call(message, "startAtMs")) - writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.startAtMs); + if (message.stateTransitionHash != null && Object.hasOwnProperty.call(message, "stateTransitionHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.stateTransitionHash); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.prove); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); return writer; }; /** - * Encodes the specified GetDataContractHistoryRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.IGetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + WaitForStateTransitionResultRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractHistoryRequestV0 message from the specified reader or buffer. + * Decodes a WaitForStateTransitionResultRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryRequestV0.decode = function decode(reader, length) { + WaitForStateTransitionResultRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.bytes(); + message.stateTransitionHash = reader.bytes(); break; case 2: - message.limit = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); - break; - case 3: - message.offset = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); - break; - case 4: - message.startAtMs = reader.uint64(); - break; - case 5: message.prove = reader.bool(); break; default: @@ -16145,48 +23196,35 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractHistoryRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a WaitForStateTransitionResultRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryRequestV0.decodeDelimited = function decodeDelimited(reader) { + WaitForStateTransitionResultRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractHistoryRequestV0 message. + * Verifies a WaitForStateTransitionResultRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractHistoryRequestV0.verify = function verify(message) { + WaitForStateTransitionResultRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) - return "id: buffer expected"; - if (message.limit != null && message.hasOwnProperty("limit")) { - var error = $root.google.protobuf.UInt32Value.verify(message.limit); - if (error) - return "limit." + error; - } - if (message.offset != null && message.hasOwnProperty("offset")) { - var error = $root.google.protobuf.UInt32Value.verify(message.offset); - if (error) - return "offset." + error; - } - if (message.startAtMs != null && message.hasOwnProperty("startAtMs")) - if (!$util.isInteger(message.startAtMs) && !(message.startAtMs && $util.isInteger(message.startAtMs.low) && $util.isInteger(message.startAtMs.high))) - return "startAtMs: integer|Long expected"; + if (message.stateTransitionHash != null && message.hasOwnProperty("stateTransitionHash")) + if (!(message.stateTransitionHash && typeof message.stateTransitionHash.length === "number" || $util.isString(message.stateTransitionHash))) + return "stateTransitionHash: buffer expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -16194,127 +23232,92 @@ $root.org = (function() { }; /** - * Creates a GetDataContractHistoryRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a WaitForStateTransitionResultRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} GetDataContractHistoryRequestV0 + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 */ - GetDataContractHistoryRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0) + WaitForStateTransitionResultRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0(); - if (object.id != null) - if (typeof object.id === "string") - $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); - else if (object.id.length >= 0) - message.id = object.id; - if (object.limit != null) { - if (typeof object.limit !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.limit: object expected"); - message.limit = $root.google.protobuf.UInt32Value.fromObject(object.limit); - } - if (object.offset != null) { - if (typeof object.offset !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.offset: object expected"); - message.offset = $root.google.protobuf.UInt32Value.fromObject(object.offset); - } - if (object.startAtMs != null) - if ($util.Long) - (message.startAtMs = $util.Long.fromValue(object.startAtMs)).unsigned = true; - else if (typeof object.startAtMs === "string") - message.startAtMs = parseInt(object.startAtMs, 10); - else if (typeof object.startAtMs === "number") - message.startAtMs = object.startAtMs; - else if (typeof object.startAtMs === "object") - message.startAtMs = new $util.LongBits(object.startAtMs.low >>> 0, object.startAtMs.high >>> 0).toNumber(true); + var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0(); + if (object.stateTransitionHash != null) + if (typeof object.stateTransitionHash === "string") + $util.base64.decode(object.stateTransitionHash, message.stateTransitionHash = $util.newBuffer($util.base64.length(object.stateTransitionHash)), 0); + else if (object.stateTransitionHash.length >= 0) + message.stateTransitionHash = object.stateTransitionHash; if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetDataContractHistoryRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a WaitForStateTransitionResultRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message GetDataContractHistoryRequestV0 + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractHistoryRequestV0.toObject = function toObject(message, options) { + WaitForStateTransitionResultRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { if (options.bytes === String) - object.id = ""; + object.stateTransitionHash = ""; else { - object.id = []; + object.stateTransitionHash = []; if (options.bytes !== Array) - object.id = $util.newBuffer(object.id); + object.stateTransitionHash = $util.newBuffer(object.stateTransitionHash); } - object.limit = null; - object.offset = null; - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.startAtMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.startAtMs = options.longs === String ? "0" : 0; object.prove = false; } - if (message.id != null && message.hasOwnProperty("id")) - object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; - if (message.limit != null && message.hasOwnProperty("limit")) - object.limit = $root.google.protobuf.UInt32Value.toObject(message.limit, options); - if (message.offset != null && message.hasOwnProperty("offset")) - object.offset = $root.google.protobuf.UInt32Value.toObject(message.offset, options); - if (message.startAtMs != null && message.hasOwnProperty("startAtMs")) - if (typeof message.startAtMs === "number") - object.startAtMs = options.longs === String ? String(message.startAtMs) : message.startAtMs; - else - object.startAtMs = options.longs === String ? $util.Long.prototype.toString.call(message.startAtMs) : options.longs === Number ? new $util.LongBits(message.startAtMs.low >>> 0, message.startAtMs.high >>> 0).toNumber(true) : message.startAtMs; + if (message.stateTransitionHash != null && message.hasOwnProperty("stateTransitionHash")) + object.stateTransitionHash = options.bytes === String ? $util.base64.encode(message.stateTransitionHash, 0, message.stateTransitionHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.stateTransitionHash) : message.stateTransitionHash; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetDataContractHistoryRequestV0 to JSON. + * Converts this WaitForStateTransitionResultRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 * @instance * @returns {Object.} JSON object */ - GetDataContractHistoryRequestV0.prototype.toJSON = function toJSON() { + WaitForStateTransitionResultRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetDataContractHistoryRequestV0; + return WaitForStateTransitionResultRequestV0; })(); - return GetDataContractHistoryRequest; + return WaitForStateTransitionResultRequest; })(); - v0.GetDataContractHistoryResponse = (function() { + v0.WaitForStateTransitionResultResponse = (function() { /** - * Properties of a GetDataContractHistoryResponse. + * Properties of a WaitForStateTransitionResultResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDataContractHistoryResponse - * @property {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0|null} [v0] GetDataContractHistoryResponse v0 + * @interface IWaitForStateTransitionResultResponse + * @property {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0|null} [v0] WaitForStateTransitionResultResponse v0 */ /** - * Constructs a new GetDataContractHistoryResponse. + * Constructs a new WaitForStateTransitionResultResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDataContractHistoryResponse. - * @implements IGetDataContractHistoryResponse + * @classdesc Represents a WaitForStateTransitionResultResponse. + * @implements IWaitForStateTransitionResultResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse=} [properties] Properties to set */ - function GetDataContractHistoryResponse(properties) { + function WaitForStateTransitionResultResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -16322,89 +23325,89 @@ $root.org = (function() { } /** - * GetDataContractHistoryResponse v0. - * @member {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * WaitForStateTransitionResultResponse v0. + * @member {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @instance */ - GetDataContractHistoryResponse.prototype.v0 = null; + WaitForStateTransitionResultResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractHistoryResponse version. + * WaitForStateTransitionResultResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @instance */ - Object.defineProperty(GetDataContractHistoryResponse.prototype, "version", { + Object.defineProperty(WaitForStateTransitionResultResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractHistoryResponse instance using the specified properties. + * Creates a new WaitForStateTransitionResultResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse instance + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse instance */ - GetDataContractHistoryResponse.create = function create(properties) { - return new GetDataContractHistoryResponse(properties); + WaitForStateTransitionResultResponse.create = function create(properties) { + return new WaitForStateTransitionResultResponse(properties); }; /** - * Encodes the specified GetDataContractHistoryResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse} message GetDataContractHistoryResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryResponse.encode = function encode(message, writer) { + WaitForStateTransitionResultResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDataContractHistoryResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDataContractHistoryResponse} message GetDataContractHistoryResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryResponse.encodeDelimited = function encodeDelimited(message, writer) { + WaitForStateTransitionResultResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractHistoryResponse message from the specified reader or buffer. + * Decodes a WaitForStateTransitionResultResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @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.GetDataContractHistoryResponse} GetDataContractHistoryResponse + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryResponse.decode = function decode(reader, length) { + WaitForStateTransitionResultResponse.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.GetDataContractHistoryResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -16415,37 +23418,37 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractHistoryResponse message from the specified reader or buffer, length delimited. + * Decodes a WaitForStateTransitionResultResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryResponse.decodeDelimited = function decodeDelimited(reader) { + WaitForStateTransitionResultResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractHistoryResponse message. + * Verifies a WaitForStateTransitionResultResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDataContractHistoryResponse.verify = function verify(message) { + WaitForStateTransitionResultResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -16454,40 +23457,40 @@ $root.org = (function() { }; /** - * Creates a GetDataContractHistoryResponse message from a plain object. Also converts values to their respective internal types. + * Creates a WaitForStateTransitionResultResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} GetDataContractHistoryResponse + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse */ - GetDataContractHistoryResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse) + WaitForStateTransitionResultResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse(); + var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDataContractHistoryResponse message. Also converts values to other types if specified. + * Creates a plain object from a WaitForStateTransitionResultResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message GetDataContractHistoryResponse + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDataContractHistoryResponse.toObject = function toObject(message, options) { + WaitForStateTransitionResultResponse.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -16495,36 +23498,36 @@ $root.org = (function() { }; /** - * Converts this GetDataContractHistoryResponse to JSON. + * Converts this WaitForStateTransitionResultResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse * @instance * @returns {Object.} JSON object */ - GetDataContractHistoryResponse.prototype.toJSON = function toJSON() { + WaitForStateTransitionResultResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 = (function() { + WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 = (function() { /** - * Properties of a GetDataContractHistoryResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse - * @interface IGetDataContractHistoryResponseV0 - * @property {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory|null} [dataContractHistory] GetDataContractHistoryResponseV0 dataContractHistory - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDataContractHistoryResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDataContractHistoryResponseV0 metadata + * Properties of a WaitForStateTransitionResultResponseV0. + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @interface IWaitForStateTransitionResultResponseV0 + * @property {org.dash.platform.dapi.v0.IStateTransitionBroadcastError|null} [error] WaitForStateTransitionResultResponseV0 error + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] WaitForStateTransitionResultResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] WaitForStateTransitionResultResponseV0 metadata */ /** - * Constructs a new GetDataContractHistoryResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse - * @classdesc Represents a GetDataContractHistoryResponseV0. - * @implements IGetDataContractHistoryResponseV0 + * Constructs a new WaitForStateTransitionResultResponseV0. + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @classdesc Represents a WaitForStateTransitionResultResponseV0. + * @implements IWaitForStateTransitionResultResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0=} [properties] Properties to set */ - function GetDataContractHistoryResponseV0(properties) { + function WaitForStateTransitionResultResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -16532,69 +23535,69 @@ $root.org = (function() { } /** - * GetDataContractHistoryResponseV0 dataContractHistory. - * @member {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory|null|undefined} dataContractHistory - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * WaitForStateTransitionResultResponseV0 error. + * @member {org.dash.platform.dapi.v0.IStateTransitionBroadcastError|null|undefined} error + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @instance */ - GetDataContractHistoryResponseV0.prototype.dataContractHistory = null; + WaitForStateTransitionResultResponseV0.prototype.error = null; /** - * GetDataContractHistoryResponseV0 proof. + * WaitForStateTransitionResultResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @instance */ - GetDataContractHistoryResponseV0.prototype.proof = null; + WaitForStateTransitionResultResponseV0.prototype.proof = null; /** - * GetDataContractHistoryResponseV0 metadata. + * WaitForStateTransitionResultResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @instance */ - GetDataContractHistoryResponseV0.prototype.metadata = null; + WaitForStateTransitionResultResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDataContractHistoryResponseV0 result. - * @member {"dataContractHistory"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * WaitForStateTransitionResultResponseV0 result. + * @member {"error"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @instance */ - Object.defineProperty(GetDataContractHistoryResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["dataContractHistory", "proof"]), + Object.defineProperty(WaitForStateTransitionResultResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["error", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDataContractHistoryResponseV0 instance using the specified properties. + * Creates a new WaitForStateTransitionResultResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 instance + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 instance */ - GetDataContractHistoryResponseV0.create = function create(properties) { - return new GetDataContractHistoryResponseV0(properties); + WaitForStateTransitionResultResponseV0.create = function create(properties) { + return new WaitForStateTransitionResultResponseV0(properties); }; /** - * Encodes the specified GetDataContractHistoryResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryResponseV0.encode = function encode(message, writer) { + WaitForStateTransitionResultResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataContractHistory != null && Object.hasOwnProperty.call(message, "dataContractHistory")) - $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.encode(message.dataContractHistory, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.error != null && Object.hasOwnProperty.call(message, "error")) + $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.encode(message.error, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -16603,38 +23606,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetDataContractHistoryResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.verify|verify} messages. + * Encodes the specified WaitForStateTransitionResultResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.IGetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDataContractHistoryResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + WaitForStateTransitionResultResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDataContractHistoryResponseV0 message from the specified reader or buffer. + * Decodes a WaitForStateTransitionResultResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryResponseV0.decode = function decode(reader, length) { + WaitForStateTransitionResultResponseV0.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.decode(reader, reader.uint32()); + message.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -16651,595 +23654,154 @@ $root.org = (function() { }; /** - * Decodes a GetDataContractHistoryResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a WaitForStateTransitionResultResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDataContractHistoryResponseV0.decodeDelimited = function decodeDelimited(reader) { + WaitForStateTransitionResultResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDataContractHistoryResponseV0 message. + * Verifies a WaitForStateTransitionResultResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 * @static * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetDataContractHistoryResponseV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.dataContractHistory != null && message.hasOwnProperty("dataContractHistory")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify(message.dataContractHistory); - if (error) - return "dataContractHistory." + error; - } - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } - return null; - }; - - /** - * Creates a GetDataContractHistoryResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} GetDataContractHistoryResponseV0 - */ - GetDataContractHistoryResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0(); - if (object.dataContractHistory != null) { - if (typeof object.dataContractHistory !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.dataContractHistory: object expected"); - message.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.fromObject(object.dataContractHistory); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; - }; - - /** - * Creates a plain object from a GetDataContractHistoryResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message GetDataContractHistoryResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetDataContractHistoryResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.dataContractHistory != null && message.hasOwnProperty("dataContractHistory")) { - object.dataContractHistory = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(message.dataContractHistory, options); - if (options.oneofs) - object.result = "dataContractHistory"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; - - /** - * Converts this GetDataContractHistoryResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetDataContractHistoryResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetDataContractHistoryResponseV0.DataContractHistoryEntry = (function() { - - /** - * Properties of a DataContractHistoryEntry. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @interface IDataContractHistoryEntry - * @property {number|Long|null} [date] DataContractHistoryEntry date - * @property {Uint8Array|null} [value] DataContractHistoryEntry value - */ - - /** - * Constructs a new DataContractHistoryEntry. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @classdesc Represents a DataContractHistoryEntry. - * @implements IDataContractHistoryEntry - * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry=} [properties] Properties to set - */ - function DataContractHistoryEntry(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]]; - } - - /** - * DataContractHistoryEntry date. - * @member {number|Long} date - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @instance - */ - DataContractHistoryEntry.prototype.date = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - - /** - * DataContractHistoryEntry value. - * @member {Uint8Array} value - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @instance - */ - DataContractHistoryEntry.prototype.value = $util.newBuffer([]); - - /** - * Creates a new DataContractHistoryEntry instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry instance - */ - DataContractHistoryEntry.create = function create(properties) { - return new DataContractHistoryEntry(properties); - }; - - /** - * Encodes the specified DataContractHistoryEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry} message DataContractHistoryEntry message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContractHistoryEntry.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.date != null && Object.hasOwnProperty.call(message, "date")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.date); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value); - return writer; - }; - - /** - * Encodes the specified DataContractHistoryEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistoryEntry} message DataContractHistoryEntry message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContractHistoryEntry.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a DataContractHistoryEntry message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContractHistoryEntry.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.date = reader.uint64(); - break; - case 2: - message.value = reader.bytes(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a DataContractHistoryEntry message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContractHistoryEntry.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a DataContractHistoryEntry message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DataContractHistoryEntry.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.date != null && message.hasOwnProperty("date")) - if (!$util.isInteger(message.date) && !(message.date && $util.isInteger(message.date.low) && $util.isInteger(message.date.high))) - return "date: integer|Long expected"; - if (message.value != null && message.hasOwnProperty("value")) - if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) - return "value: buffer expected"; - return null; - }; - - /** - * Creates a DataContractHistoryEntry message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} DataContractHistoryEntry - */ - DataContractHistoryEntry.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry(); - if (object.date != null) - if ($util.Long) - (message.date = $util.Long.fromValue(object.date)).unsigned = true; - else if (typeof object.date === "string") - message.date = parseInt(object.date, 10); - else if (typeof object.date === "number") - message.date = object.date; - else if (typeof object.date === "object") - message.date = new $util.LongBits(object.date.low >>> 0, object.date.high >>> 0).toNumber(true); - if (object.value != null) - if (typeof object.value === "string") - $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); - else if (object.value.length >= 0) - message.value = object.value; - return message; - }; - - /** - * Creates a plain object from a DataContractHistoryEntry message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message DataContractHistoryEntry - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DataContractHistoryEntry.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.date = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.date = options.longs === String ? "0" : 0; - if (options.bytes === String) - object.value = ""; - else { - object.value = []; - if (options.bytes !== Array) - object.value = $util.newBuffer(object.value); - } - } - if (message.date != null && message.hasOwnProperty("date")) - if (typeof message.date === "number") - object.date = options.longs === String ? String(message.date) : message.date; - else - object.date = options.longs === String ? $util.Long.prototype.toString.call(message.date) : options.longs === Number ? new $util.LongBits(message.date.low >>> 0, message.date.high >>> 0).toNumber(true) : message.date; - if (message.value != null && message.hasOwnProperty("value")) - object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; - return object; - }; - - /** - * Converts this DataContractHistoryEntry to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry - * @instance - * @returns {Object.} JSON object - */ - DataContractHistoryEntry.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return DataContractHistoryEntry; - })(); - - GetDataContractHistoryResponseV0.DataContractHistory = (function() { - - /** - * Properties of a DataContractHistory. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @interface IDataContractHistory - * @property {Array.|null} [dataContractEntries] DataContractHistory dataContractEntries - */ - - /** - * Constructs a new DataContractHistory. - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 - * @classdesc Represents a DataContractHistory. - * @implements IDataContractHistory - * @constructor - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory=} [properties] Properties to set - */ - function DataContractHistory(properties) { - this.dataContractEntries = []; - 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]]; - } - - /** - * DataContractHistory dataContractEntries. - * @member {Array.} dataContractEntries - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @instance - */ - DataContractHistory.prototype.dataContractEntries = $util.emptyArray; - - /** - * Creates a new DataContractHistory instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory instance - */ - DataContractHistory.create = function create(properties) { - return new DataContractHistory(properties); - }; - - /** - * Encodes the specified DataContractHistory message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory} message DataContractHistory message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContractHistory.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.dataContractEntries != null && message.dataContractEntries.length) - for (var i = 0; i < message.dataContractEntries.length; ++i) - $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.encode(message.dataContractEntries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified DataContractHistory message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.IDataContractHistory} message DataContractHistory message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DataContractHistory.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a DataContractHistory message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContractHistory.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.dataContractEntries && message.dataContractEntries.length)) - message.dataContractEntries = []; - message.dataContractEntries.push($root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a DataContractHistory message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DataContractHistory.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a DataContractHistory message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DataContractHistory.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.dataContractEntries != null && message.hasOwnProperty("dataContractEntries")) { - if (!Array.isArray(message.dataContractEntries)) - return "dataContractEntries: array expected"; - for (var i = 0; i < message.dataContractEntries.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.verify(message.dataContractEntries[i]); - if (error) - return "dataContractEntries." + error; - } + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WaitForStateTransitionResultResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.error != null && message.hasOwnProperty("error")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.verify(message.error); + if (error) + return "error." + error; } - return null; - }; - - /** - * Creates a DataContractHistory message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} DataContractHistory - */ - DataContractHistory.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory(); - if (object.dataContractEntries) { - if (!Array.isArray(object.dataContractEntries)) - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.dataContractEntries: array expected"); - message.dataContractEntries = []; - for (var i = 0; i < object.dataContractEntries.length; ++i) { - if (typeof object.dataContractEntries[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.dataContractEntries: object expected"); - message.dataContractEntries[i] = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.fromObject(object.dataContractEntries[i]); - } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; } - return message; - }; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; - /** - * Creates a plain object from a DataContractHistory message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @static - * @param {org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message DataContractHistory - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DataContractHistory.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.dataContractEntries = []; - if (message.dataContractEntries && message.dataContractEntries.length) { - object.dataContractEntries = []; - for (var j = 0; j < message.dataContractEntries.length; ++j) - object.dataContractEntries[j] = $root.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(message.dataContractEntries[j], options); - } + /** + * Creates a WaitForStateTransitionResultResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 + */ + WaitForStateTransitionResultResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0) return object; - }; + var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0(); + if (object.error != null) { + if (typeof object.error !== "object") + throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.error: object expected"); + message.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.fromObject(object.error); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; - /** - * Converts this DataContractHistory to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory - * @instance - * @returns {Object.} JSON object - */ - DataContractHistory.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a WaitForStateTransitionResultResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WaitForStateTransitionResultResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.error != null && message.hasOwnProperty("error")) { + object.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(message.error, options); + if (options.oneofs) + object.result = "error"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; - return DataContractHistory; - })(); + /** + * Converts this WaitForStateTransitionResultResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @instance + * @returns {Object.} JSON object + */ + WaitForStateTransitionResultResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetDataContractHistoryResponseV0; + return WaitForStateTransitionResultResponseV0; })(); - return GetDataContractHistoryResponse; + return WaitForStateTransitionResultResponse; })(); - v0.GetDocumentsRequest = (function() { + v0.GetConsensusParamsRequest = (function() { /** - * Properties of a GetDocumentsRequest. + * Properties of a GetConsensusParamsRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDocumentsRequest - * @property {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0|null} [v0] GetDocumentsRequest v0 + * @interface IGetConsensusParamsRequest + * @property {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0|null} [v0] GetConsensusParamsRequest v0 */ /** - * Constructs a new GetDocumentsRequest. + * Constructs a new GetConsensusParamsRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDocumentsRequest. - * @implements IGetDocumentsRequest + * @classdesc Represents a GetConsensusParamsRequest. + * @implements IGetConsensusParamsRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest=} [properties] Properties to set */ - function GetDocumentsRequest(properties) { + function GetConsensusParamsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17247,89 +23809,89 @@ $root.org = (function() { } /** - * GetDocumentsRequest v0. - * @member {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * GetConsensusParamsRequest v0. + * @member {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @instance */ - GetDocumentsRequest.prototype.v0 = null; + GetConsensusParamsRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDocumentsRequest version. + * GetConsensusParamsRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @instance */ - Object.defineProperty(GetDocumentsRequest.prototype, "version", { + Object.defineProperty(GetConsensusParamsRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDocumentsRequest instance using the specified properties. + * Creates a new GetConsensusParamsRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest instance + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest instance */ - GetDocumentsRequest.create = function create(properties) { - return new GetDocumentsRequest(properties); + GetConsensusParamsRequest.create = function create(properties) { + return new GetConsensusParamsRequest(properties); }; /** - * Encodes the specified GetDocumentsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.verify|verify} messages. + * Encodes the specified GetConsensusParamsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest} message GetDocumentsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest} message GetConsensusParamsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsRequest.encode = function encode(message, writer) { + GetConsensusParamsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDocumentsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.verify|verify} messages. + * Encodes the specified GetConsensusParamsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsRequest} message GetDocumentsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest} message GetConsensusParamsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetConsensusParamsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDocumentsRequest message from the specified reader or buffer. + * Decodes a GetConsensusParamsRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @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.GetDocumentsRequest} GetDocumentsRequest + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsRequest.decode = function decode(reader, length) { + GetConsensusParamsRequest.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.GetDocumentsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -17340,37 +23902,37 @@ $root.org = (function() { }; /** - * Decodes a GetDocumentsRequest message from the specified reader or buffer, length delimited. + * Decodes a GetConsensusParamsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsRequest.decodeDelimited = function decodeDelimited(reader) { + GetConsensusParamsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDocumentsRequest message. + * Verifies a GetConsensusParamsRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDocumentsRequest.verify = function verify(message) { + GetConsensusParamsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -17379,40 +23941,40 @@ $root.org = (function() { }; /** - * Creates a GetDocumentsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetConsensusParamsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest} GetDocumentsRequest + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest */ - GetDocumentsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsRequest) + GetConsensusParamsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDocumentsRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDocumentsRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetConsensusParamsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest} message GetDocumentsRequest + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest} message GetConsensusParamsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDocumentsRequest.toObject = function toObject(message, options) { + GetConsensusParamsRequest.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.GetDocumentsRequest.GetDocumentsRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -17420,41 +23982,35 @@ $root.org = (function() { }; /** - * Converts this GetDocumentsRequest to JSON. + * Converts this GetConsensusParamsRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest * @instance * @returns {Object.} JSON object */ - GetDocumentsRequest.prototype.toJSON = function toJSON() { + GetConsensusParamsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDocumentsRequest.GetDocumentsRequestV0 = (function() { + GetConsensusParamsRequest.GetConsensusParamsRequestV0 = (function() { /** - * Properties of a GetDocumentsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest - * @interface IGetDocumentsRequestV0 - * @property {Uint8Array|null} [dataContractId] GetDocumentsRequestV0 dataContractId - * @property {string|null} [documentType] GetDocumentsRequestV0 documentType - * @property {Uint8Array|null} [where] GetDocumentsRequestV0 where - * @property {Uint8Array|null} [orderBy] GetDocumentsRequestV0 orderBy - * @property {number|null} [limit] GetDocumentsRequestV0 limit - * @property {Uint8Array|null} [startAfter] GetDocumentsRequestV0 startAfter - * @property {Uint8Array|null} [startAt] GetDocumentsRequestV0 startAt - * @property {boolean|null} [prove] GetDocumentsRequestV0 prove + * Properties of a GetConsensusParamsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @interface IGetConsensusParamsRequestV0 + * @property {number|null} [height] GetConsensusParamsRequestV0 height + * @property {boolean|null} [prove] GetConsensusParamsRequestV0 prove */ /** - * Constructs a new GetDocumentsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest - * @classdesc Represents a GetDocumentsRequestV0. - * @implements IGetDocumentsRequestV0 + * Constructs a new GetConsensusParamsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @classdesc Represents a GetConsensusParamsRequestV0. + * @implements IGetConsensusParamsRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0=} [properties] Properties to set */ - function GetDocumentsRequestV0(properties) { + function GetConsensusParamsRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17462,179 +24018,87 @@ $root.org = (function() { } /** - * GetDocumentsRequestV0 dataContractId. - * @member {Uint8Array} dataContractId - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.dataContractId = $util.newBuffer([]); - - /** - * GetDocumentsRequestV0 documentType. - * @member {string} documentType - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.documentType = ""; - - /** - * GetDocumentsRequestV0 where. - * @member {Uint8Array} where - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.where = $util.newBuffer([]); - - /** - * GetDocumentsRequestV0 orderBy. - * @member {Uint8Array} orderBy - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.orderBy = $util.newBuffer([]); - - /** - * GetDocumentsRequestV0 limit. - * @member {number} limit - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.limit = 0; - - /** - * GetDocumentsRequestV0 startAfter. - * @member {Uint8Array} startAfter - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.startAfter = $util.newBuffer([]); - - /** - * GetDocumentsRequestV0 startAt. - * @member {Uint8Array} startAt - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * GetConsensusParamsRequestV0 height. + * @member {number} height + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @instance */ - GetDocumentsRequestV0.prototype.startAt = $util.newBuffer([]); + GetConsensusParamsRequestV0.prototype.height = 0; /** - * GetDocumentsRequestV0 prove. + * GetConsensusParamsRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 - * @instance - */ - GetDocumentsRequestV0.prototype.prove = false; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * GetDocumentsRequestV0 start. - * @member {"startAfter"|"startAt"|undefined} start - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @instance */ - Object.defineProperty(GetDocumentsRequestV0.prototype, "start", { - get: $util.oneOfGetter($oneOfFields = ["startAfter", "startAt"]), - set: $util.oneOfSetter($oneOfFields) - }); + GetConsensusParamsRequestV0.prototype.prove = false; /** - * Creates a new GetDocumentsRequestV0 instance using the specified properties. + * Creates a new GetConsensusParamsRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 instance */ - GetDocumentsRequestV0.create = function create(properties) { - return new GetDocumentsRequestV0(properties); + GetConsensusParamsRequestV0.create = function create(properties) { + return new GetConsensusParamsRequestV0(properties); }; /** - * Encodes the specified GetDocumentsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.verify|verify} messages. + * Encodes the specified GetConsensusParamsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0} message GetDocumentsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsRequestV0.encode = function encode(message, writer) { + GetConsensusParamsRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.dataContractId != null && Object.hasOwnProperty.call(message, "dataContractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.dataContractId); - if (message.documentType != null && Object.hasOwnProperty.call(message, "documentType")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentType); - if (message.where != null && Object.hasOwnProperty.call(message, "where")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.where); - if (message.orderBy != null && Object.hasOwnProperty.call(message, "orderBy")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.orderBy); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.limit); - if (message.startAfter != null && Object.hasOwnProperty.call(message, "startAfter")) - writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.startAfter); - if (message.startAt != null && Object.hasOwnProperty.call(message, "startAt")) - writer.uint32(/* id 7, wireType 2 =*/58).bytes(message.startAt); + if (message.height != null && Object.hasOwnProperty.call(message, "height")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.height); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 8, wireType 0 =*/64).bool(message.prove); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); return writer; }; /** - * Encodes the specified GetDocumentsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.verify|verify} messages. + * Encodes the specified GetConsensusParamsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.IGetDocumentsRequestV0} message GetDocumentsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetConsensusParamsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDocumentsRequestV0 message from the specified reader or buffer. + * Decodes a GetConsensusParamsRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @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.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsRequestV0.decode = function decode(reader, length) { + GetConsensusParamsRequestV0.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.GetDocumentsRequest.GetDocumentsRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dataContractId = reader.bytes(); + message.height = reader.int32(); break; case 2: - message.documentType = reader.string(); - break; - case 3: - message.where = reader.bytes(); - break; - case 4: - message.orderBy = reader.bytes(); - break; - case 5: - message.limit = reader.uint32(); - break; - case 6: - message.startAfter = reader.bytes(); - break; - case 7: - message.startAt = reader.bytes(); - break; - case 8: message.prove = reader.bool(); break; default: @@ -17646,60 +24110,35 @@ $root.org = (function() { }; /** - * Decodes a GetDocumentsRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetConsensusParamsRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetConsensusParamsRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDocumentsRequestV0 message. + * Verifies a GetConsensusParamsRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDocumentsRequestV0.verify = function verify(message) { + GetConsensusParamsRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.dataContractId != null && message.hasOwnProperty("dataContractId")) - if (!(message.dataContractId && typeof message.dataContractId.length === "number" || $util.isString(message.dataContractId))) - return "dataContractId: buffer expected"; - if (message.documentType != null && message.hasOwnProperty("documentType")) - if (!$util.isString(message.documentType)) - return "documentType: string expected"; - if (message.where != null && message.hasOwnProperty("where")) - if (!(message.where && typeof message.where.length === "number" || $util.isString(message.where))) - return "where: buffer expected"; - if (message.orderBy != null && message.hasOwnProperty("orderBy")) - if (!(message.orderBy && typeof message.orderBy.length === "number" || $util.isString(message.orderBy))) - return "orderBy: buffer expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit)) - return "limit: integer expected"; - if (message.startAfter != null && message.hasOwnProperty("startAfter")) { - properties.start = 1; - if (!(message.startAfter && typeof message.startAfter.length === "number" || $util.isString(message.startAfter))) - return "startAfter: buffer expected"; - } - if (message.startAt != null && message.hasOwnProperty("startAt")) { - if (properties.start === 1) - return "start: multiple values"; - properties.start = 1; - if (!(message.startAt && typeof message.startAt.length === "number" || $util.isString(message.startAt))) - return "startAt: buffer expected"; - } + if (message.height != null && message.hasOwnProperty("height")) + if (!$util.isInteger(message.height)) + return "height: integer expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -17707,150 +24146,83 @@ $root.org = (function() { }; /** - * Creates a GetDocumentsRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetConsensusParamsRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} GetDocumentsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 */ - GetDocumentsRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0) + GetConsensusParamsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0(); - if (object.dataContractId != null) - if (typeof object.dataContractId === "string") - $util.base64.decode(object.dataContractId, message.dataContractId = $util.newBuffer($util.base64.length(object.dataContractId)), 0); - else if (object.dataContractId.length >= 0) - message.dataContractId = object.dataContractId; - if (object.documentType != null) - message.documentType = String(object.documentType); - if (object.where != null) - if (typeof object.where === "string") - $util.base64.decode(object.where, message.where = $util.newBuffer($util.base64.length(object.where)), 0); - else if (object.where.length >= 0) - message.where = object.where; - if (object.orderBy != null) - if (typeof object.orderBy === "string") - $util.base64.decode(object.orderBy, message.orderBy = $util.newBuffer($util.base64.length(object.orderBy)), 0); - else if (object.orderBy.length >= 0) - message.orderBy = object.orderBy; - if (object.limit != null) - message.limit = object.limit >>> 0; - if (object.startAfter != null) - if (typeof object.startAfter === "string") - $util.base64.decode(object.startAfter, message.startAfter = $util.newBuffer($util.base64.length(object.startAfter)), 0); - else if (object.startAfter.length >= 0) - message.startAfter = object.startAfter; - if (object.startAt != null) - if (typeof object.startAt === "string") - $util.base64.decode(object.startAt, message.startAt = $util.newBuffer($util.base64.length(object.startAt)), 0); - else if (object.startAt.length >= 0) - message.startAt = object.startAt; + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0(); + if (object.height != null) + message.height = object.height | 0; if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetDocumentsRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetConsensusParamsRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message GetDocumentsRequestV0 + * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDocumentsRequestV0.toObject = function toObject(message, options) { + GetConsensusParamsRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - if (options.bytes === String) - object.dataContractId = ""; - else { - object.dataContractId = []; - if (options.bytes !== Array) - object.dataContractId = $util.newBuffer(object.dataContractId); - } - object.documentType = ""; - if (options.bytes === String) - object.where = ""; - else { - object.where = []; - if (options.bytes !== Array) - object.where = $util.newBuffer(object.where); - } - if (options.bytes === String) - object.orderBy = ""; - else { - object.orderBy = []; - if (options.bytes !== Array) - object.orderBy = $util.newBuffer(object.orderBy); - } - object.limit = 0; + object.height = 0; object.prove = false; } - if (message.dataContractId != null && message.hasOwnProperty("dataContractId")) - object.dataContractId = options.bytes === String ? $util.base64.encode(message.dataContractId, 0, message.dataContractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataContractId) : message.dataContractId; - if (message.documentType != null && message.hasOwnProperty("documentType")) - object.documentType = message.documentType; - if (message.where != null && message.hasOwnProperty("where")) - object.where = options.bytes === String ? $util.base64.encode(message.where, 0, message.where.length) : options.bytes === Array ? Array.prototype.slice.call(message.where) : message.where; - if (message.orderBy != null && message.hasOwnProperty("orderBy")) - object.orderBy = options.bytes === String ? $util.base64.encode(message.orderBy, 0, message.orderBy.length) : options.bytes === Array ? Array.prototype.slice.call(message.orderBy) : message.orderBy; - if (message.limit != null && message.hasOwnProperty("limit")) - object.limit = message.limit; - if (message.startAfter != null && message.hasOwnProperty("startAfter")) { - object.startAfter = options.bytes === String ? $util.base64.encode(message.startAfter, 0, message.startAfter.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAfter) : message.startAfter; - if (options.oneofs) - object.start = "startAfter"; - } - if (message.startAt != null && message.hasOwnProperty("startAt")) { - object.startAt = options.bytes === String ? $util.base64.encode(message.startAt, 0, message.startAt.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAt) : message.startAt; - if (options.oneofs) - object.start = "startAt"; - } + if (message.height != null && message.hasOwnProperty("height")) + object.height = message.height; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetDocumentsRequestV0 to JSON. + * Converts this GetConsensusParamsRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 * @instance * @returns {Object.} JSON object */ - GetDocumentsRequestV0.prototype.toJSON = function toJSON() { + GetConsensusParamsRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetDocumentsRequestV0; + return GetConsensusParamsRequestV0; })(); - return GetDocumentsRequest; + return GetConsensusParamsRequest; })(); - v0.GetDocumentsResponse = (function() { + v0.GetConsensusParamsResponse = (function() { /** - * Properties of a GetDocumentsResponse. + * Properties of a GetConsensusParamsResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetDocumentsResponse - * @property {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0|null} [v0] GetDocumentsResponse v0 + * @interface IGetConsensusParamsResponse + * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0|null} [v0] GetConsensusParamsResponse v0 */ /** - * Constructs a new GetDocumentsResponse. + * Constructs a new GetConsensusParamsResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetDocumentsResponse. - * @implements IGetDocumentsResponse + * @classdesc Represents a GetConsensusParamsResponse. + * @implements IGetConsensusParamsResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse=} [properties] Properties to set */ - function GetDocumentsResponse(properties) { + function GetConsensusParamsResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -17858,89 +24230,89 @@ $root.org = (function() { } /** - * GetDocumentsResponse v0. - * @member {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * GetConsensusParamsResponse v0. + * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @instance */ - GetDocumentsResponse.prototype.v0 = null; + GetConsensusParamsResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetDocumentsResponse version. + * GetConsensusParamsResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @instance */ - Object.defineProperty(GetDocumentsResponse.prototype, "version", { + Object.defineProperty(GetConsensusParamsResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetDocumentsResponse instance using the specified properties. + * Creates a new GetConsensusParamsResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse instance + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse instance */ - GetDocumentsResponse.create = function create(properties) { - return new GetDocumentsResponse(properties); + GetConsensusParamsResponse.create = function create(properties) { + return new GetConsensusParamsResponse(properties); }; /** - * Encodes the specified GetDocumentsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.verify|verify} messages. + * Encodes the specified GetConsensusParamsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse} message GetDocumentsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse} message GetConsensusParamsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsResponse.encode = function encode(message, writer) { + GetConsensusParamsResponse.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.GetDocumentsResponse.GetDocumentsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetDocumentsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.verify|verify} messages. + * Encodes the specified GetConsensusParamsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetDocumentsResponse} message GetDocumentsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse} message GetConsensusParamsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetConsensusParamsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDocumentsResponse message from the specified reader or buffer. + * Decodes a GetConsensusParamsResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @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.GetDocumentsResponse} GetDocumentsResponse + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsResponse.decode = function decode(reader, length) { + GetConsensusParamsResponse.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.GetDocumentsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -17951,37 +24323,37 @@ $root.org = (function() { }; /** - * Decodes a GetDocumentsResponse message from the specified reader or buffer, length delimited. + * Decodes a GetConsensusParamsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsResponse.decodeDelimited = function decodeDelimited(reader) { + GetConsensusParamsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDocumentsResponse message. + * Verifies a GetConsensusParamsResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDocumentsResponse.verify = function verify(message) { + GetConsensusParamsResponse.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.GetDocumentsResponse.GetDocumentsResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -17990,40 +24362,40 @@ $root.org = (function() { }; /** - * Creates a GetDocumentsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetConsensusParamsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse} GetDocumentsResponse + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse */ - GetDocumentsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse) + GetConsensusParamsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetDocumentsResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetConsensusParamsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse} message GetDocumentsResponse + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse} message GetConsensusParamsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDocumentsResponse.toObject = function toObject(message, options) { + GetConsensusParamsResponse.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.GetDocumentsResponse.GetDocumentsResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -18031,36 +24403,36 @@ $root.org = (function() { }; /** - * Converts this GetDocumentsResponse to JSON. + * Converts this GetConsensusParamsResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse * @instance * @returns {Object.} JSON object */ - GetDocumentsResponse.prototype.toJSON = function toJSON() { + GetConsensusParamsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDocumentsResponse.GetDocumentsResponseV0 = (function() { + GetConsensusParamsResponse.ConsensusParamsBlock = (function() { /** - * Properties of a GetDocumentsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse - * @interface IGetDocumentsResponseV0 - * @property {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments|null} [documents] GetDocumentsResponseV0 documents - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetDocumentsResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetDocumentsResponseV0 metadata + * Properties of a ConsensusParamsBlock. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @interface IConsensusParamsBlock + * @property {string|null} [maxBytes] ConsensusParamsBlock maxBytes + * @property {string|null} [maxGas] ConsensusParamsBlock maxGas + * @property {string|null} [timeIotaMs] ConsensusParamsBlock timeIotaMs */ /** - * Constructs a new GetDocumentsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse - * @classdesc Represents a GetDocumentsResponseV0. - * @implements IGetDocumentsResponseV0 + * Constructs a new ConsensusParamsBlock. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @classdesc Represents a ConsensusParamsBlock. + * @implements IConsensusParamsBlock * @constructor - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock=} [properties] Properties to set */ - function GetDocumentsResponseV0(properties) { + function ConsensusParamsBlock(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18068,115 +24440,333 @@ $root.org = (function() { } /** - * GetDocumentsResponseV0 documents. - * @member {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments|null|undefined} documents - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * ConsensusParamsBlock maxBytes. + * @member {string} maxBytes + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock * @instance */ - GetDocumentsResponseV0.prototype.documents = null; + ConsensusParamsBlock.prototype.maxBytes = ""; /** - * GetDocumentsResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * ConsensusParamsBlock maxGas. + * @member {string} maxGas + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock * @instance */ - GetDocumentsResponseV0.prototype.proof = null; + ConsensusParamsBlock.prototype.maxGas = ""; /** - * GetDocumentsResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * ConsensusParamsBlock timeIotaMs. + * @member {string} timeIotaMs + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock * @instance */ - GetDocumentsResponseV0.prototype.metadata = null; + ConsensusParamsBlock.prototype.timeIotaMs = ""; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Creates a new ConsensusParamsBlock instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock instance + */ + ConsensusParamsBlock.create = function create(properties) { + return new ConsensusParamsBlock(properties); + }; /** - * GetDocumentsResponseV0 result. - * @member {"documents"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * Encodes the specified ConsensusParamsBlock message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock} message ConsensusParamsBlock message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConsensusParamsBlock.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.maxBytes != null && Object.hasOwnProperty.call(message, "maxBytes")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.maxBytes); + if (message.maxGas != null && Object.hasOwnProperty.call(message, "maxGas")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.maxGas); + if (message.timeIotaMs != null && Object.hasOwnProperty.call(message, "timeIotaMs")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.timeIotaMs); + return writer; + }; + + /** + * Encodes the specified ConsensusParamsBlock message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock} message ConsensusParamsBlock message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ConsensusParamsBlock.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ConsensusParamsBlock message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @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.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConsensusParamsBlock.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.GetConsensusParamsResponse.ConsensusParamsBlock(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.maxBytes = reader.string(); + break; + case 2: + message.maxGas = reader.string(); + break; + case 3: + message.timeIotaMs = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ConsensusParamsBlock message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ConsensusParamsBlock.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ConsensusParamsBlock message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ConsensusParamsBlock.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) + if (!$util.isString(message.maxBytes)) + return "maxBytes: string expected"; + if (message.maxGas != null && message.hasOwnProperty("maxGas")) + if (!$util.isString(message.maxGas)) + return "maxGas: string expected"; + if (message.timeIotaMs != null && message.hasOwnProperty("timeIotaMs")) + if (!$util.isString(message.timeIotaMs)) + return "timeIotaMs: string expected"; + return null; + }; + + /** + * Creates a ConsensusParamsBlock message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock + */ + ConsensusParamsBlock.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock(); + if (object.maxBytes != null) + message.maxBytes = String(object.maxBytes); + if (object.maxGas != null) + message.maxGas = String(object.maxGas); + if (object.timeIotaMs != null) + message.timeIotaMs = String(object.timeIotaMs); + return message; + }; + + /** + * Creates a plain object from a ConsensusParamsBlock message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message ConsensusParamsBlock + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ConsensusParamsBlock.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.maxBytes = ""; + object.maxGas = ""; + object.timeIotaMs = ""; + } + if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) + object.maxBytes = message.maxBytes; + if (message.maxGas != null && message.hasOwnProperty("maxGas")) + object.maxGas = message.maxGas; + if (message.timeIotaMs != null && message.hasOwnProperty("timeIotaMs")) + object.timeIotaMs = message.timeIotaMs; + return object; + }; + + /** + * Converts this ConsensusParamsBlock to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock * @instance + * @returns {Object.} JSON object */ - Object.defineProperty(GetDocumentsResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["documents", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + ConsensusParamsBlock.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ConsensusParamsBlock; + })(); + + GetConsensusParamsResponse.ConsensusParamsEvidence = (function() { /** - * Creates a new GetDocumentsResponseV0 instance using the specified properties. + * Properties of a ConsensusParamsEvidence. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @interface IConsensusParamsEvidence + * @property {string|null} [maxAgeNumBlocks] ConsensusParamsEvidence maxAgeNumBlocks + * @property {string|null} [maxAgeDuration] ConsensusParamsEvidence maxAgeDuration + * @property {string|null} [maxBytes] ConsensusParamsEvidence maxBytes + */ + + /** + * Constructs a new ConsensusParamsEvidence. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @classdesc Represents a ConsensusParamsEvidence. + * @implements IConsensusParamsEvidence + * @constructor + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence=} [properties] Properties to set + */ + function ConsensusParamsEvidence(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]]; + } + + /** + * ConsensusParamsEvidence maxAgeNumBlocks. + * @member {string} maxAgeNumBlocks + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @instance + */ + ConsensusParamsEvidence.prototype.maxAgeNumBlocks = ""; + + /** + * ConsensusParamsEvidence maxAgeDuration. + * @member {string} maxAgeDuration + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @instance + */ + ConsensusParamsEvidence.prototype.maxAgeDuration = ""; + + /** + * ConsensusParamsEvidence maxBytes. + * @member {string} maxBytes + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @instance + */ + ConsensusParamsEvidence.prototype.maxBytes = ""; + + /** + * Creates a new ConsensusParamsEvidence instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence instance */ - GetDocumentsResponseV0.create = function create(properties) { - return new GetDocumentsResponseV0(properties); + ConsensusParamsEvidence.create = function create(properties) { + return new ConsensusParamsEvidence(properties); }; /** - * Encodes the specified GetDocumentsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.verify|verify} messages. + * Encodes the specified ConsensusParamsEvidence message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0} message GetDocumentsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence} message ConsensusParamsEvidence message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsResponseV0.encode = function encode(message, writer) { + ConsensusParamsEvidence.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.documents != null && Object.hasOwnProperty.call(message, "documents")) - $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.encode(message.documents, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.maxAgeNumBlocks != null && Object.hasOwnProperty.call(message, "maxAgeNumBlocks")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.maxAgeNumBlocks); + if (message.maxAgeDuration != null && Object.hasOwnProperty.call(message, "maxAgeDuration")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.maxAgeDuration); + if (message.maxBytes != null && Object.hasOwnProperty.call(message, "maxBytes")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.maxBytes); return writer; }; /** - * Encodes the specified GetDocumentsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.verify|verify} messages. + * Encodes the specified ConsensusParamsEvidence message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.IGetDocumentsResponseV0} message GetDocumentsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence} message ConsensusParamsEvidence message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetDocumentsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + ConsensusParamsEvidence.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetDocumentsResponseV0 message from the specified reader or buffer. + * Decodes a ConsensusParamsEvidence message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @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.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsResponseV0.decode = function decode(reader, length) { + ConsensusParamsEvidence.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.GetDocumentsResponse.GetDocumentsResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.decode(reader, reader.uint32()); + message.maxAgeNumBlocks = reader.string(); break; case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + message.maxAgeDuration = reader.string(); break; case 3: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + message.maxBytes = reader.string(); break; default: reader.skipType(tag & 7); @@ -18187,360 +24777,347 @@ $root.org = (function() { }; /** - * Decodes a GetDocumentsResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a ConsensusParamsEvidence message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDocumentsResponseV0.decodeDelimited = function decodeDelimited(reader) { + ConsensusParamsEvidence.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetDocumentsResponseV0 message. + * Verifies a ConsensusParamsEvidence message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDocumentsResponseV0.verify = function verify(message) { + ConsensusParamsEvidence.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.documents != null && message.hasOwnProperty("documents")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify(message.documents); - if (error) - return "documents." + error; - } - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } + if (message.maxAgeNumBlocks != null && message.hasOwnProperty("maxAgeNumBlocks")) + if (!$util.isString(message.maxAgeNumBlocks)) + return "maxAgeNumBlocks: string expected"; + if (message.maxAgeDuration != null && message.hasOwnProperty("maxAgeDuration")) + if (!$util.isString(message.maxAgeDuration)) + return "maxAgeDuration: string expected"; + if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) + if (!$util.isString(message.maxBytes)) + return "maxBytes: string expected"; return null; }; /** - * Creates a GetDocumentsResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a ConsensusParamsEvidence message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} GetDocumentsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence */ - GetDocumentsResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0) + ConsensusParamsEvidence.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence) return object; - var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0(); - if (object.documents != null) { - if (typeof object.documents !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.documents: object expected"); - message.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.fromObject(object.documents); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence(); + if (object.maxAgeNumBlocks != null) + message.maxAgeNumBlocks = String(object.maxAgeNumBlocks); + if (object.maxAgeDuration != null) + message.maxAgeDuration = String(object.maxAgeDuration); + if (object.maxBytes != null) + message.maxBytes = String(object.maxBytes); return message; }; /** - * Creates a plain object from a GetDocumentsResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a ConsensusParamsEvidence message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} message GetDocumentsResponseV0 + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message ConsensusParamsEvidence * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetDocumentsResponseV0.toObject = function toObject(message, options) { + ConsensusParamsEvidence.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) - object.metadata = null; - if (message.documents != null && message.hasOwnProperty("documents")) { - object.documents = $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(message.documents, options); - if (options.oneofs) - object.result = "documents"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + if (options.defaults) { + object.maxAgeNumBlocks = ""; + object.maxAgeDuration = ""; + object.maxBytes = ""; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + if (message.maxAgeNumBlocks != null && message.hasOwnProperty("maxAgeNumBlocks")) + object.maxAgeNumBlocks = message.maxAgeNumBlocks; + if (message.maxAgeDuration != null && message.hasOwnProperty("maxAgeDuration")) + object.maxAgeDuration = message.maxAgeDuration; + if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) + object.maxBytes = message.maxBytes; return object; }; /** - * Converts this GetDocumentsResponseV0 to JSON. + * Converts this ConsensusParamsEvidence to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence * @instance * @returns {Object.} JSON object */ - GetDocumentsResponseV0.prototype.toJSON = function toJSON() { + ConsensusParamsEvidence.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetDocumentsResponseV0.Documents = (function() { + return ConsensusParamsEvidence; + })(); - /** - * Properties of a Documents. - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 - * @interface IDocuments - * @property {Array.|null} [documents] Documents documents - */ + GetConsensusParamsResponse.GetConsensusParamsResponseV0 = (function() { - /** - * Constructs a new Documents. - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0 - * @classdesc Represents a Documents. - * @implements IDocuments - * @constructor - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments=} [properties] Properties to set - */ - function Documents(properties) { - this.documents = []; - 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]]; - } + /** + * Properties of a GetConsensusParamsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @interface IGetConsensusParamsResponseV0 + * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock|null} [block] GetConsensusParamsResponseV0 block + * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence|null} [evidence] GetConsensusParamsResponseV0 evidence + */ - /** - * Documents documents. - * @member {Array.} documents - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @instance - */ - Documents.prototype.documents = $util.emptyArray; + /** + * Constructs a new GetConsensusParamsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @classdesc Represents a GetConsensusParamsResponseV0. + * @implements IGetConsensusParamsResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0=} [properties] Properties to set + */ + function GetConsensusParamsResponseV0(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 Documents instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents instance - */ - Documents.create = function create(properties) { - return new Documents(properties); - }; + /** + * GetConsensusParamsResponseV0 block. + * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock|null|undefined} block + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @instance + */ + GetConsensusParamsResponseV0.prototype.block = null; - /** - * Encodes the specified Documents message. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments} message Documents message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Documents.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.documents != null && message.documents.length) - for (var i = 0; i < message.documents.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.documents[i]); - return writer; - }; + /** + * GetConsensusParamsResponseV0 evidence. + * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence|null|undefined} evidence + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @instance + */ + GetConsensusParamsResponseV0.prototype.evidence = null; - /** - * Encodes the specified Documents message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.IDocuments} message Documents message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Documents.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new GetConsensusParamsResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 instance + */ + GetConsensusParamsResponseV0.create = function create(properties) { + return new GetConsensusParamsResponseV0(properties); + }; - /** - * Decodes a Documents message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Documents.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.documents && message.documents.length)) - message.documents = []; - message.documents.push(reader.bytes()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified GetConsensusParamsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetConsensusParamsResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.block != null && Object.hasOwnProperty.call(message, "block")) + $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.encode(message.block, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.evidence != null && Object.hasOwnProperty.call(message, "evidence")) + $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.encode(message.evidence, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Decodes a Documents message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Documents.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified GetConsensusParamsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetConsensusParamsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies a Documents message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Documents.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.documents != null && message.hasOwnProperty("documents")) { - if (!Array.isArray(message.documents)) - return "documents: array expected"; - for (var i = 0; i < message.documents.length; ++i) - if (!(message.documents[i] && typeof message.documents[i].length === "number" || $util.isString(message.documents[i]))) - return "documents: buffer[] expected"; + /** + * Decodes a GetConsensusParamsResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @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.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetConsensusParamsResponseV0.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.GetConsensusParamsResponse.GetConsensusParamsResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.decode(reader, reader.uint32()); + break; + case 2: + message.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } - return null; - }; + } + return message; + }; - /** - * Creates a Documents message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} Documents - */ - Documents.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents(); - if (object.documents) { - if (!Array.isArray(object.documents)) - throw TypeError(".org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.documents: array expected"); - message.documents = []; - for (var i = 0; i < object.documents.length; ++i) - if (typeof object.documents[i] === "string") - $util.base64.decode(object.documents[i], message.documents[i] = $util.newBuffer($util.base64.length(object.documents[i])), 0); - else if (object.documents[i].length >= 0) - message.documents[i] = object.documents[i]; - } - return message; - }; + /** + * Decodes a GetConsensusParamsResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetConsensusParamsResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a plain object from a Documents message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @static - * @param {org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message Documents - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Documents.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.documents = []; - if (message.documents && message.documents.length) { - object.documents = []; - for (var j = 0; j < message.documents.length; ++j) - object.documents[j] = options.bytes === String ? $util.base64.encode(message.documents[j], 0, message.documents[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.documents[j]) : message.documents[j]; - } + /** + * Verifies a GetConsensusParamsResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetConsensusParamsResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.block != null && message.hasOwnProperty("block")) { + var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify(message.block); + if (error) + return "block." + error; + } + if (message.evidence != null && message.hasOwnProperty("evidence")) { + var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify(message.evidence); + if (error) + return "evidence." + error; + } + return null; + }; + + /** + * Creates a GetConsensusParamsResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 + */ + GetConsensusParamsResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0) return object; - }; + var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0(); + if (object.block != null) { + if (typeof object.block !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.block: object expected"); + message.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.fromObject(object.block); + } + if (object.evidence != null) { + if (typeof object.evidence !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.evidence: object expected"); + message.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.fromObject(object.evidence); + } + return message; + }; - /** - * Converts this Documents to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents - * @instance - * @returns {Object.} JSON object - */ - Documents.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a GetConsensusParamsResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetConsensusParamsResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.block = null; + object.evidence = null; + } + if (message.block != null && message.hasOwnProperty("block")) + object.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(message.block, options); + if (message.evidence != null && message.hasOwnProperty("evidence")) + object.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(message.evidence, options); + return object; + }; - return Documents; - })(); + /** + * Converts this GetConsensusParamsResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetConsensusParamsResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetDocumentsResponseV0; + return GetConsensusParamsResponseV0; })(); - return GetDocumentsResponse; + return GetConsensusParamsResponse; })(); - v0.GetIdentityByPublicKeyHashRequest = (function() { + v0.GetProtocolVersionUpgradeStateRequest = (function() { /** - * Properties of a GetIdentityByPublicKeyHashRequest. + * Properties of a GetProtocolVersionUpgradeStateRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetIdentityByPublicKeyHashRequest - * @property {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0|null} [v0] GetIdentityByPublicKeyHashRequest v0 + * @interface IGetProtocolVersionUpgradeStateRequest + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0|null} [v0] GetProtocolVersionUpgradeStateRequest v0 */ /** - * Constructs a new GetIdentityByPublicKeyHashRequest. + * Constructs a new GetProtocolVersionUpgradeStateRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetIdentityByPublicKeyHashRequest. - * @implements IGetIdentityByPublicKeyHashRequest + * @classdesc Represents a GetProtocolVersionUpgradeStateRequest. + * @implements IGetProtocolVersionUpgradeStateRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest=} [properties] Properties to set */ - function GetIdentityByPublicKeyHashRequest(properties) { + function GetProtocolVersionUpgradeStateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18548,89 +25125,89 @@ $root.org = (function() { } /** - * GetIdentityByPublicKeyHashRequest v0. - * @member {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * GetProtocolVersionUpgradeStateRequest v0. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @instance */ - GetIdentityByPublicKeyHashRequest.prototype.v0 = null; + GetProtocolVersionUpgradeStateRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetIdentityByPublicKeyHashRequest version. + * GetProtocolVersionUpgradeStateRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @instance */ - Object.defineProperty(GetIdentityByPublicKeyHashRequest.prototype, "version", { + Object.defineProperty(GetProtocolVersionUpgradeStateRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetIdentityByPublicKeyHashRequest instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeStateRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest instance + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest instance */ - GetIdentityByPublicKeyHashRequest.create = function create(properties) { - return new GetIdentityByPublicKeyHashRequest(properties); + GetProtocolVersionUpgradeStateRequest.create = function create(properties) { + return new GetProtocolVersionUpgradeStateRequest(properties); }; /** - * Encodes the specified GetIdentityByPublicKeyHashRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashRequest.encode = function encode(message, writer) { + GetProtocolVersionUpgradeStateRequest.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetIdentityByPublicKeyHashRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeStateRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetIdentityByPublicKeyHashRequest message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeStateRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @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.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashRequest.decode = function decode(reader, length) { + GetProtocolVersionUpgradeStateRequest.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.GetIdentityByPublicKeyHashRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -18641,37 +25218,37 @@ $root.org = (function() { }; /** - * Decodes a GetIdentityByPublicKeyHashRequest message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeStateRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashRequest.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeStateRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetIdentityByPublicKeyHashRequest message. + * Verifies a GetProtocolVersionUpgradeStateRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetIdentityByPublicKeyHashRequest.verify = function verify(message) { + GetProtocolVersionUpgradeStateRequest.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -18680,40 +25257,40 @@ $root.org = (function() { }; /** - * Creates a GetIdentityByPublicKeyHashRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeStateRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} GetIdentityByPublicKeyHashRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest */ - GetIdentityByPublicKeyHashRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest) + GetProtocolVersionUpgradeStateRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetIdentityByPublicKeyHashRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeStateRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message GetIdentityByPublicKeyHashRequest + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetIdentityByPublicKeyHashRequest.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeStateRequest.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -18721,35 +25298,34 @@ $root.org = (function() { }; /** - * Converts this GetIdentityByPublicKeyHashRequest to JSON. + * Converts this GetProtocolVersionUpgradeStateRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest * @instance * @returns {Object.} JSON object */ - GetIdentityByPublicKeyHashRequest.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeStateRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 = (function() { + GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 = (function() { /** - * Properties of a GetIdentityByPublicKeyHashRequestV0. - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest - * @interface IGetIdentityByPublicKeyHashRequestV0 - * @property {Uint8Array|null} [publicKeyHash] GetIdentityByPublicKeyHashRequestV0 publicKeyHash - * @property {boolean|null} [prove] GetIdentityByPublicKeyHashRequestV0 prove + * Properties of a GetProtocolVersionUpgradeStateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @interface IGetProtocolVersionUpgradeStateRequestV0 + * @property {boolean|null} [prove] GetProtocolVersionUpgradeStateRequestV0 prove */ /** - * Constructs a new GetIdentityByPublicKeyHashRequestV0. - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest - * @classdesc Represents a GetIdentityByPublicKeyHashRequestV0. - * @implements IGetIdentityByPublicKeyHashRequestV0 + * Constructs a new GetProtocolVersionUpgradeStateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @classdesc Represents a GetProtocolVersionUpgradeStateRequestV0. + * @implements IGetProtocolVersionUpgradeStateRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0=} [properties] Properties to set */ - function GetIdentityByPublicKeyHashRequestV0(properties) { + function GetProtocolVersionUpgradeStateRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18757,87 +25333,74 @@ $root.org = (function() { } /** - * GetIdentityByPublicKeyHashRequestV0 publicKeyHash. - * @member {Uint8Array} publicKeyHash - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 - * @instance - */ - GetIdentityByPublicKeyHashRequestV0.prototype.publicKeyHash = $util.newBuffer([]); - - /** - * GetIdentityByPublicKeyHashRequestV0 prove. + * GetProtocolVersionUpgradeStateRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @instance */ - GetIdentityByPublicKeyHashRequestV0.prototype.prove = false; + GetProtocolVersionUpgradeStateRequestV0.prototype.prove = false; /** - * Creates a new GetIdentityByPublicKeyHashRequestV0 instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeStateRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 instance */ - GetIdentityByPublicKeyHashRequestV0.create = function create(properties) { - return new GetIdentityByPublicKeyHashRequestV0(properties); + GetProtocolVersionUpgradeStateRequestV0.create = function create(properties) { + return new GetProtocolVersionUpgradeStateRequestV0(properties); }; /** - * Encodes the specified GetIdentityByPublicKeyHashRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashRequestV0.encode = function encode(message, writer) { + GetProtocolVersionUpgradeStateRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.publicKeyHash != null && Object.hasOwnProperty.call(message, "publicKeyHash")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.publicKeyHash); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.prove); return writer; }; /** - * Encodes the specified GetIdentityByPublicKeyHashRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.IGetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeStateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetIdentityByPublicKeyHashRequestV0 message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeStateRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashRequestV0.decode = function decode(reader, length) { + GetProtocolVersionUpgradeStateRequestV0.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.publicKeyHash = reader.bytes(); - break; - case 2: message.prove = reader.bool(); break; default: @@ -18849,35 +25412,32 @@ $root.org = (function() { }; /** - * Decodes a GetIdentityByPublicKeyHashRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeStateRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeStateRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetIdentityByPublicKeyHashRequestV0 message. + * Verifies a GetProtocolVersionUpgradeStateRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetIdentityByPublicKeyHashRequestV0.verify = function verify(message) { + GetProtocolVersionUpgradeStateRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.publicKeyHash != null && message.hasOwnProperty("publicKeyHash")) - if (!(message.publicKeyHash && typeof message.publicKeyHash.length === "number" || $util.isString(message.publicKeyHash))) - return "publicKeyHash: buffer expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -18885,92 +25445,77 @@ $root.org = (function() { }; /** - * Creates a GetIdentityByPublicKeyHashRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeStateRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} GetIdentityByPublicKeyHashRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 */ - GetIdentityByPublicKeyHashRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0) + GetProtocolVersionUpgradeStateRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0(); - if (object.publicKeyHash != null) - if (typeof object.publicKeyHash === "string") - $util.base64.decode(object.publicKeyHash, message.publicKeyHash = $util.newBuffer($util.base64.length(object.publicKeyHash)), 0); - else if (object.publicKeyHash.length >= 0) - message.publicKeyHash = object.publicKeyHash; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0(); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetIdentityByPublicKeyHashRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeStateRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message GetIdentityByPublicKeyHashRequestV0 + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetIdentityByPublicKeyHashRequestV0.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeStateRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.publicKeyHash = ""; - else { - object.publicKeyHash = []; - if (options.bytes !== Array) - object.publicKeyHash = $util.newBuffer(object.publicKeyHash); - } + if (options.defaults) object.prove = false; - } - if (message.publicKeyHash != null && message.hasOwnProperty("publicKeyHash")) - object.publicKeyHash = options.bytes === String ? $util.base64.encode(message.publicKeyHash, 0, message.publicKeyHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.publicKeyHash) : message.publicKeyHash; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetIdentityByPublicKeyHashRequestV0 to JSON. + * Converts this GetProtocolVersionUpgradeStateRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 * @instance * @returns {Object.} JSON object */ - GetIdentityByPublicKeyHashRequestV0.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeStateRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetIdentityByPublicKeyHashRequestV0; + return GetProtocolVersionUpgradeStateRequestV0; })(); - return GetIdentityByPublicKeyHashRequest; + return GetProtocolVersionUpgradeStateRequest; })(); - v0.GetIdentityByPublicKeyHashResponse = (function() { + v0.GetProtocolVersionUpgradeStateResponse = (function() { /** - * Properties of a GetIdentityByPublicKeyHashResponse. + * Properties of a GetProtocolVersionUpgradeStateResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetIdentityByPublicKeyHashResponse - * @property {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0|null} [v0] GetIdentityByPublicKeyHashResponse v0 + * @interface IGetProtocolVersionUpgradeStateResponse + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0|null} [v0] GetProtocolVersionUpgradeStateResponse v0 */ /** - * Constructs a new GetIdentityByPublicKeyHashResponse. + * Constructs a new GetProtocolVersionUpgradeStateResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetIdentityByPublicKeyHashResponse. - * @implements IGetIdentityByPublicKeyHashResponse + * @classdesc Represents a GetProtocolVersionUpgradeStateResponse. + * @implements IGetProtocolVersionUpgradeStateResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse=} [properties] Properties to set */ - function GetIdentityByPublicKeyHashResponse(properties) { + function GetProtocolVersionUpgradeStateResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -18978,89 +25523,89 @@ $root.org = (function() { } /** - * GetIdentityByPublicKeyHashResponse v0. - * @member {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * GetProtocolVersionUpgradeStateResponse v0. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @instance */ - GetIdentityByPublicKeyHashResponse.prototype.v0 = null; + GetProtocolVersionUpgradeStateResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetIdentityByPublicKeyHashResponse version. + * GetProtocolVersionUpgradeStateResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @instance */ - Object.defineProperty(GetIdentityByPublicKeyHashResponse.prototype, "version", { + Object.defineProperty(GetProtocolVersionUpgradeStateResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetIdentityByPublicKeyHashResponse instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeStateResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse instance + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse instance */ - GetIdentityByPublicKeyHashResponse.create = function create(properties) { - return new GetIdentityByPublicKeyHashResponse(properties); + GetProtocolVersionUpgradeStateResponse.create = function create(properties) { + return new GetProtocolVersionUpgradeStateResponse(properties); }; /** - * Encodes the specified GetIdentityByPublicKeyHashResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashResponse.encode = function encode(message, writer) { + GetProtocolVersionUpgradeStateResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetIdentityByPublicKeyHashResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeStateResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetIdentityByPublicKeyHashResponse message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeStateResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @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.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashResponse.decode = function decode(reader, length) { + GetProtocolVersionUpgradeStateResponse.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.GetIdentityByPublicKeyHashResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -19071,37 +25616,37 @@ $root.org = (function() { }; /** - * Decodes a GetIdentityByPublicKeyHashResponse message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeStateResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashResponse.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeStateResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetIdentityByPublicKeyHashResponse message. + * Verifies a GetProtocolVersionUpgradeStateResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetIdentityByPublicKeyHashResponse.verify = function verify(message) { + GetProtocolVersionUpgradeStateResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -19110,40 +25655,40 @@ $root.org = (function() { }; /** - * Creates a GetIdentityByPublicKeyHashResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeStateResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} GetIdentityByPublicKeyHashResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse */ - GetIdentityByPublicKeyHashResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse) + GetProtocolVersionUpgradeStateResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetIdentityByPublicKeyHashResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeStateResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message GetIdentityByPublicKeyHashResponse + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetIdentityByPublicKeyHashResponse.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeStateResponse.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -19151,36 +25696,36 @@ $root.org = (function() { }; /** - * Converts this GetIdentityByPublicKeyHashResponse to JSON. + * Converts this GetProtocolVersionUpgradeStateResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse * @instance * @returns {Object.} JSON object */ - GetIdentityByPublicKeyHashResponse.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeStateResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 = (function() { + GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 = (function() { /** - * Properties of a GetIdentityByPublicKeyHashResponseV0. - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse - * @interface IGetIdentityByPublicKeyHashResponseV0 - * @property {Uint8Array|null} [identity] GetIdentityByPublicKeyHashResponseV0 identity - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetIdentityByPublicKeyHashResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetIdentityByPublicKeyHashResponseV0 metadata + * Properties of a GetProtocolVersionUpgradeStateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @interface IGetProtocolVersionUpgradeStateResponseV0 + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions|null} [versions] GetProtocolVersionUpgradeStateResponseV0 versions + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProtocolVersionUpgradeStateResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProtocolVersionUpgradeStateResponseV0 metadata */ /** - * Constructs a new GetIdentityByPublicKeyHashResponseV0. - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse - * @classdesc Represents a GetIdentityByPublicKeyHashResponseV0. - * @implements IGetIdentityByPublicKeyHashResponseV0 + * Constructs a new GetProtocolVersionUpgradeStateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @classdesc Represents a GetProtocolVersionUpgradeStateResponseV0. + * @implements IGetProtocolVersionUpgradeStateResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0=} [properties] Properties to set */ - function GetIdentityByPublicKeyHashResponseV0(properties) { + function GetProtocolVersionUpgradeStateResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19188,69 +25733,69 @@ $root.org = (function() { } /** - * GetIdentityByPublicKeyHashResponseV0 identity. - * @member {Uint8Array} identity - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * GetProtocolVersionUpgradeStateResponseV0 versions. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions|null|undefined} versions + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @instance */ - GetIdentityByPublicKeyHashResponseV0.prototype.identity = $util.newBuffer([]); + GetProtocolVersionUpgradeStateResponseV0.prototype.versions = null; /** - * GetIdentityByPublicKeyHashResponseV0 proof. + * GetProtocolVersionUpgradeStateResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @instance */ - GetIdentityByPublicKeyHashResponseV0.prototype.proof = null; + GetProtocolVersionUpgradeStateResponseV0.prototype.proof = null; /** - * GetIdentityByPublicKeyHashResponseV0 metadata. + * GetProtocolVersionUpgradeStateResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @instance */ - GetIdentityByPublicKeyHashResponseV0.prototype.metadata = null; + GetProtocolVersionUpgradeStateResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetIdentityByPublicKeyHashResponseV0 result. - * @member {"identity"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * GetProtocolVersionUpgradeStateResponseV0 result. + * @member {"versions"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @instance */ - Object.defineProperty(GetIdentityByPublicKeyHashResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["identity", "proof"]), + Object.defineProperty(GetProtocolVersionUpgradeStateResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["versions", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetIdentityByPublicKeyHashResponseV0 instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeStateResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 instance */ - GetIdentityByPublicKeyHashResponseV0.create = function create(properties) { - return new GetIdentityByPublicKeyHashResponseV0(properties); + GetProtocolVersionUpgradeStateResponseV0.create = function create(properties) { + return new GetProtocolVersionUpgradeStateResponseV0(properties); }; /** - * Encodes the specified GetIdentityByPublicKeyHashResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashResponseV0.encode = function encode(message, writer) { + GetProtocolVersionUpgradeStateResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.identity != null && Object.hasOwnProperty.call(message, "identity")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identity); + if (message.versions != null && Object.hasOwnProperty.call(message, "versions")) + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.encode(message.versions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -19259,38 +25804,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetIdentityByPublicKeyHashResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeStateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.IGetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetIdentityByPublicKeyHashResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeStateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetIdentityByPublicKeyHashResponseV0 message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeStateResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashResponseV0.decode = function decode(reader, length) { + GetProtocolVersionUpgradeStateResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.identity = reader.bytes(); + message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -19307,37 +25852,40 @@ $root.org = (function() { }; /** - * Decodes a GetIdentityByPublicKeyHashResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeStateResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetIdentityByPublicKeyHashResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeStateResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetIdentityByPublicKeyHashResponseV0 message. + * Verifies a GetProtocolVersionUpgradeStateResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetIdentityByPublicKeyHashResponseV0.verify = function verify(message) { + GetProtocolVersionUpgradeStateResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.identity != null && message.hasOwnProperty("identity")) { + if (message.versions != null && message.hasOwnProperty("versions")) { properties.result = 1; - if (!(message.identity && typeof message.identity.length === "number" || $util.isString(message.identity))) - return "identity: buffer expected"; + { + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify(message.versions); + if (error) + return "versions." + error; + } } if (message.proof != null && message.hasOwnProperty("proof")) { if (properties.result === 1) @@ -19358,100 +25906,518 @@ $root.org = (function() { }; /** - * Creates a GetIdentityByPublicKeyHashResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeStateResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} GetIdentityByPublicKeyHashResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 */ - GetIdentityByPublicKeyHashResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0) + GetProtocolVersionUpgradeStateResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0(); - if (object.identity != null) - if (typeof object.identity === "string") - $util.base64.decode(object.identity, message.identity = $util.newBuffer($util.base64.length(object.identity)), 0); - else if (object.identity.length >= 0) - message.identity = object.identity; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0(); + if (object.versions != null) { + if (typeof object.versions !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.versions: object expected"); + message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.fromObject(object.versions); + } if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; - /** - * Creates a plain object from a GetIdentityByPublicKeyHashResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message GetIdentityByPublicKeyHashResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetIdentityByPublicKeyHashResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.identity != null && message.hasOwnProperty("identity")) { - object.identity = options.bytes === String ? $util.base64.encode(message.identity, 0, message.identity.length) : options.bytes === Array ? Array.prototype.slice.call(message.identity) : message.identity; - if (options.oneofs) - object.result = "identity"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; + /** + * Creates a plain object from a GetProtocolVersionUpgradeStateResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetProtocolVersionUpgradeStateResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.versions != null && message.hasOwnProperty("versions")) { + object.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(message.versions, options); + if (options.oneofs) + object.result = "versions"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetProtocolVersionUpgradeStateResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetProtocolVersionUpgradeStateResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetProtocolVersionUpgradeStateResponseV0.Versions = (function() { + + /** + * Properties of a Versions. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @interface IVersions + * @property {Array.|null} [versions] Versions versions + */ + + /** + * Constructs a new Versions. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @classdesc Represents a Versions. + * @implements IVersions + * @constructor + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions=} [properties] Properties to set + */ + function Versions(properties) { + this.versions = []; + 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]]; + } + + /** + * Versions versions. + * @member {Array.} versions + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @instance + */ + Versions.prototype.versions = $util.emptyArray; + + /** + * Creates a new Versions instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions instance + */ + Versions.create = function create(properties) { + return new Versions(properties); + }; + + /** + * Encodes the specified Versions message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions} message Versions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Versions.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.versions != null && message.versions.length) + for (var i = 0; i < message.versions.length; ++i) + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.encode(message.versions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Versions message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions} message Versions message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Versions.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Versions message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Versions.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.versions && message.versions.length)) + message.versions = []; + message.versions.push($root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Versions message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Versions.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Versions message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Versions.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.versions != null && message.hasOwnProperty("versions")) { + if (!Array.isArray(message.versions)) + return "versions: array expected"; + for (var i = 0; i < message.versions.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify(message.versions[i]); + if (error) + return "versions." + error; + } + } + return null; + }; + + /** + * Creates a Versions message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions + */ + Versions.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions(); + if (object.versions) { + if (!Array.isArray(object.versions)) + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions: array expected"); + message.versions = []; + for (var i = 0; i < object.versions.length; ++i) { + if (typeof object.versions[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions: object expected"); + message.versions[i] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.fromObject(object.versions[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Versions message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message Versions + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Versions.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.versions = []; + if (message.versions && message.versions.length) { + object.versions = []; + for (var j = 0; j < message.versions.length; ++j) + object.versions[j] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(message.versions[j], options); + } + return object; + }; + + /** + * Converts this Versions to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions + * @instance + * @returns {Object.} JSON object + */ + Versions.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Versions; + })(); + + GetProtocolVersionUpgradeStateResponseV0.VersionEntry = (function() { + + /** + * Properties of a VersionEntry. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @interface IVersionEntry + * @property {number|null} [versionNumber] VersionEntry versionNumber + * @property {number|null} [voteCount] VersionEntry voteCount + */ + + /** + * Constructs a new VersionEntry. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @classdesc Represents a VersionEntry. + * @implements IVersionEntry + * @constructor + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry=} [properties] Properties to set + */ + function VersionEntry(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]]; + } + + /** + * VersionEntry versionNumber. + * @member {number} versionNumber + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @instance + */ + VersionEntry.prototype.versionNumber = 0; + + /** + * VersionEntry voteCount. + * @member {number} voteCount + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @instance + */ + VersionEntry.prototype.voteCount = 0; + + /** + * Creates a new VersionEntry instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry instance + */ + VersionEntry.create = function create(properties) { + return new VersionEntry(properties); + }; + + /** + * Encodes the specified VersionEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry} message VersionEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionEntry.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.versionNumber != null && Object.hasOwnProperty.call(message, "versionNumber")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.versionNumber); + if (message.voteCount != null && Object.hasOwnProperty.call(message, "voteCount")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.voteCount); + return writer; + }; + + /** + * Encodes the specified VersionEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry} message VersionEntry message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionEntry.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a VersionEntry message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionEntry.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.versionNumber = reader.uint32(); + break; + case 2: + message.voteCount = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a VersionEntry message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionEntry.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a VersionEntry message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + VersionEntry.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.versionNumber != null && message.hasOwnProperty("versionNumber")) + if (!$util.isInteger(message.versionNumber)) + return "versionNumber: integer expected"; + if (message.voteCount != null && message.hasOwnProperty("voteCount")) + if (!$util.isInteger(message.voteCount)) + return "voteCount: integer expected"; + return null; + }; + + /** + * Creates a VersionEntry message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + */ + VersionEntry.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry(); + if (object.versionNumber != null) + message.versionNumber = object.versionNumber >>> 0; + if (object.voteCount != null) + message.voteCount = object.voteCount >>> 0; + return message; + }; + + /** + * Creates a plain object from a VersionEntry message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message VersionEntry + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + VersionEntry.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.versionNumber = 0; + object.voteCount = 0; + } + if (message.versionNumber != null && message.hasOwnProperty("versionNumber")) + object.versionNumber = message.versionNumber; + if (message.voteCount != null && message.hasOwnProperty("voteCount")) + object.voteCount = message.voteCount; + return object; + }; + + /** + * Converts this VersionEntry to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @instance + * @returns {Object.} JSON object + */ + VersionEntry.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetIdentityByPublicKeyHashResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetIdentityByPublicKeyHashResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return VersionEntry; + })(); - return GetIdentityByPublicKeyHashResponseV0; + return GetProtocolVersionUpgradeStateResponseV0; })(); - return GetIdentityByPublicKeyHashResponse; + return GetProtocolVersionUpgradeStateResponse; })(); - v0.WaitForStateTransitionResultRequest = (function() { + v0.GetProtocolVersionUpgradeVoteStatusRequest = (function() { /** - * Properties of a WaitForStateTransitionResultRequest. + * Properties of a GetProtocolVersionUpgradeVoteStatusRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IWaitForStateTransitionResultRequest - * @property {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0|null} [v0] WaitForStateTransitionResultRequest v0 + * @interface IGetProtocolVersionUpgradeVoteStatusRequest + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0|null} [v0] GetProtocolVersionUpgradeVoteStatusRequest v0 */ /** - * Constructs a new WaitForStateTransitionResultRequest. + * Constructs a new GetProtocolVersionUpgradeVoteStatusRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a WaitForStateTransitionResultRequest. - * @implements IWaitForStateTransitionResultRequest + * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusRequest. + * @implements IGetProtocolVersionUpgradeVoteStatusRequest * @constructor - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest=} [properties] Properties to set */ - function WaitForStateTransitionResultRequest(properties) { + function GetProtocolVersionUpgradeVoteStatusRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19459,89 +26425,89 @@ $root.org = (function() { } /** - * WaitForStateTransitionResultRequest v0. - * @member {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * GetProtocolVersionUpgradeVoteStatusRequest v0. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @instance */ - WaitForStateTransitionResultRequest.prototype.v0 = null; + GetProtocolVersionUpgradeVoteStatusRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * WaitForStateTransitionResultRequest version. + * GetProtocolVersionUpgradeVoteStatusRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @instance */ - Object.defineProperty(WaitForStateTransitionResultRequest.prototype, "version", { + Object.defineProperty(GetProtocolVersionUpgradeVoteStatusRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new WaitForStateTransitionResultRequest instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeVoteStatusRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest instance + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest instance */ - WaitForStateTransitionResultRequest.create = function create(properties) { - return new WaitForStateTransitionResultRequest(properties); + GetProtocolVersionUpgradeVoteStatusRequest.create = function create(properties) { + return new GetProtocolVersionUpgradeVoteStatusRequest(properties); }; /** - * Encodes the specified WaitForStateTransitionResultRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultRequest.encode = function encode(message, writer) { + GetProtocolVersionUpgradeVoteStatusRequest.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified WaitForStateTransitionResultRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeVoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a WaitForStateTransitionResultRequest message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeVoteStatusRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @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.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultRequest.decode = function decode(reader, length) { + GetProtocolVersionUpgradeVoteStatusRequest.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.WaitForStateTransitionResultRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -19552,37 +26518,37 @@ $root.org = (function() { }; /** - * Decodes a WaitForStateTransitionResultRequest message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeVoteStatusRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultRequest.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeVoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a WaitForStateTransitionResultRequest message. + * Verifies a GetProtocolVersionUpgradeVoteStatusRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitForStateTransitionResultRequest.verify = function verify(message) { + GetProtocolVersionUpgradeVoteStatusRequest.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -19591,40 +26557,40 @@ $root.org = (function() { }; /** - * Creates a WaitForStateTransitionResultRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeVoteStatusRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} WaitForStateTransitionResultRequest + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest */ - WaitForStateTransitionResultRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest) + GetProtocolVersionUpgradeVoteStatusRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a WaitForStateTransitionResultRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message WaitForStateTransitionResultRequest + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - WaitForStateTransitionResultRequest.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeVoteStatusRequest.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -19632,35 +26598,36 @@ $root.org = (function() { }; /** - * Converts this WaitForStateTransitionResultRequest to JSON. + * Converts this GetProtocolVersionUpgradeVoteStatusRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest * @instance * @returns {Object.} JSON object */ - WaitForStateTransitionResultRequest.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeVoteStatusRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 = (function() { + GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 = (function() { /** - * Properties of a WaitForStateTransitionResultRequestV0. - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest - * @interface IWaitForStateTransitionResultRequestV0 - * @property {Uint8Array|null} [stateTransitionHash] WaitForStateTransitionResultRequestV0 stateTransitionHash - * @property {boolean|null} [prove] WaitForStateTransitionResultRequestV0 prove + * Properties of a GetProtocolVersionUpgradeVoteStatusRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @interface IGetProtocolVersionUpgradeVoteStatusRequestV0 + * @property {Uint8Array|null} [startProTxHash] GetProtocolVersionUpgradeVoteStatusRequestV0 startProTxHash + * @property {number|null} [count] GetProtocolVersionUpgradeVoteStatusRequestV0 count + * @property {boolean|null} [prove] GetProtocolVersionUpgradeVoteStatusRequestV0 prove */ /** - * Constructs a new WaitForStateTransitionResultRequestV0. - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest - * @classdesc Represents a WaitForStateTransitionResultRequestV0. - * @implements IWaitForStateTransitionResultRequestV0 + * Constructs a new GetProtocolVersionUpgradeVoteStatusRequestV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusRequestV0. + * @implements IGetProtocolVersionUpgradeVoteStatusRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0=} [properties] Properties to set */ - function WaitForStateTransitionResultRequestV0(properties) { + function GetProtocolVersionUpgradeVoteStatusRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19668,87 +26635,100 @@ $root.org = (function() { } /** - * WaitForStateTransitionResultRequestV0 stateTransitionHash. - * @member {Uint8Array} stateTransitionHash - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * GetProtocolVersionUpgradeVoteStatusRequestV0 startProTxHash. + * @member {Uint8Array} startProTxHash + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @instance */ - WaitForStateTransitionResultRequestV0.prototype.stateTransitionHash = $util.newBuffer([]); + GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.startProTxHash = $util.newBuffer([]); /** - * WaitForStateTransitionResultRequestV0 prove. + * GetProtocolVersionUpgradeVoteStatusRequestV0 count. + * @member {number} count + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @instance + */ + GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.count = 0; + + /** + * GetProtocolVersionUpgradeVoteStatusRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @instance */ - WaitForStateTransitionResultRequestV0.prototype.prove = false; + GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.prove = false; /** - * Creates a new WaitForStateTransitionResultRequestV0 instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeVoteStatusRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 instance */ - WaitForStateTransitionResultRequestV0.create = function create(properties) { - return new WaitForStateTransitionResultRequestV0(properties); + GetProtocolVersionUpgradeVoteStatusRequestV0.create = function create(properties) { + return new GetProtocolVersionUpgradeVoteStatusRequestV0(properties); }; /** - * Encodes the specified WaitForStateTransitionResultRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultRequestV0.encode = function encode(message, writer) { + GetProtocolVersionUpgradeVoteStatusRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.stateTransitionHash != null && Object.hasOwnProperty.call(message, "stateTransitionHash")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.stateTransitionHash); + if (message.startProTxHash != null && Object.hasOwnProperty.call(message, "startProTxHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startProTxHash); + if (message.count != null && Object.hasOwnProperty.call(message, "count")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.count); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.prove); return writer; }; /** - * Encodes the specified WaitForStateTransitionResultRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.IWaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeVoteStatusRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a WaitForStateTransitionResultRequestV0 message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeVoteStatusRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultRequestV0.decode = function decode(reader, length) { + GetProtocolVersionUpgradeVoteStatusRequestV0.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.stateTransitionHash = reader.bytes(); + message.startProTxHash = reader.bytes(); break; case 2: + message.count = reader.uint32(); + break; + case 3: message.prove = reader.bool(); break; default: @@ -19760,35 +26740,38 @@ $root.org = (function() { }; /** - * Decodes a WaitForStateTransitionResultRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeVoteStatusRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeVoteStatusRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a WaitForStateTransitionResultRequestV0 message. + * Verifies a GetProtocolVersionUpgradeVoteStatusRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitForStateTransitionResultRequestV0.verify = function verify(message) { + GetProtocolVersionUpgradeVoteStatusRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.stateTransitionHash != null && message.hasOwnProperty("stateTransitionHash")) - if (!(message.stateTransitionHash && typeof message.stateTransitionHash.length === "number" || $util.isString(message.stateTransitionHash))) - return "stateTransitionHash: buffer expected"; + if (message.startProTxHash != null && message.hasOwnProperty("startProTxHash")) + if (!(message.startProTxHash && typeof message.startProTxHash.length === "number" || $util.isString(message.startProTxHash))) + return "startProTxHash: buffer expected"; + if (message.count != null && message.hasOwnProperty("count")) + if (!$util.isInteger(message.count)) + return "count: integer expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -19796,92 +26779,97 @@ $root.org = (function() { }; /** - * Creates a WaitForStateTransitionResultRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeVoteStatusRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} WaitForStateTransitionResultRequestV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 */ - WaitForStateTransitionResultRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0) + GetProtocolVersionUpgradeVoteStatusRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0(); - if (object.stateTransitionHash != null) - if (typeof object.stateTransitionHash === "string") - $util.base64.decode(object.stateTransitionHash, message.stateTransitionHash = $util.newBuffer($util.base64.length(object.stateTransitionHash)), 0); - else if (object.stateTransitionHash.length >= 0) - message.stateTransitionHash = object.stateTransitionHash; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0(); + if (object.startProTxHash != null) + if (typeof object.startProTxHash === "string") + $util.base64.decode(object.startProTxHash, message.startProTxHash = $util.newBuffer($util.base64.length(object.startProTxHash)), 0); + else if (object.startProTxHash.length >= 0) + message.startProTxHash = object.startProTxHash; + if (object.count != null) + message.count = object.count >>> 0; if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a WaitForStateTransitionResultRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message WaitForStateTransitionResultRequestV0 + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - WaitForStateTransitionResultRequestV0.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { if (options.bytes === String) - object.stateTransitionHash = ""; + object.startProTxHash = ""; else { - object.stateTransitionHash = []; + object.startProTxHash = []; if (options.bytes !== Array) - object.stateTransitionHash = $util.newBuffer(object.stateTransitionHash); + object.startProTxHash = $util.newBuffer(object.startProTxHash); } + object.count = 0; object.prove = false; } - if (message.stateTransitionHash != null && message.hasOwnProperty("stateTransitionHash")) - object.stateTransitionHash = options.bytes === String ? $util.base64.encode(message.stateTransitionHash, 0, message.stateTransitionHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.stateTransitionHash) : message.stateTransitionHash; + if (message.startProTxHash != null && message.hasOwnProperty("startProTxHash")) + object.startProTxHash = options.bytes === String ? $util.base64.encode(message.startProTxHash, 0, message.startProTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.startProTxHash) : message.startProTxHash; + if (message.count != null && message.hasOwnProperty("count")) + object.count = message.count; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this WaitForStateTransitionResultRequestV0 to JSON. + * Converts this GetProtocolVersionUpgradeVoteStatusRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 * @instance * @returns {Object.} JSON object */ - WaitForStateTransitionResultRequestV0.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return WaitForStateTransitionResultRequestV0; + return GetProtocolVersionUpgradeVoteStatusRequestV0; })(); - return WaitForStateTransitionResultRequest; + return GetProtocolVersionUpgradeVoteStatusRequest; })(); - v0.WaitForStateTransitionResultResponse = (function() { + v0.GetProtocolVersionUpgradeVoteStatusResponse = (function() { /** - * Properties of a WaitForStateTransitionResultResponse. + * Properties of a GetProtocolVersionUpgradeVoteStatusResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IWaitForStateTransitionResultResponse - * @property {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0|null} [v0] WaitForStateTransitionResultResponse v0 + * @interface IGetProtocolVersionUpgradeVoteStatusResponse + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0|null} [v0] GetProtocolVersionUpgradeVoteStatusResponse v0 */ /** - * Constructs a new WaitForStateTransitionResultResponse. + * Constructs a new GetProtocolVersionUpgradeVoteStatusResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a WaitForStateTransitionResultResponse. - * @implements IWaitForStateTransitionResultResponse + * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusResponse. + * @implements IGetProtocolVersionUpgradeVoteStatusResponse * @constructor - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse=} [properties] Properties to set */ - function WaitForStateTransitionResultResponse(properties) { + function GetProtocolVersionUpgradeVoteStatusResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -19889,89 +26877,89 @@ $root.org = (function() { } /** - * WaitForStateTransitionResultResponse v0. - * @member {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * GetProtocolVersionUpgradeVoteStatusResponse v0. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @instance */ - WaitForStateTransitionResultResponse.prototype.v0 = null; + GetProtocolVersionUpgradeVoteStatusResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * WaitForStateTransitionResultResponse version. + * GetProtocolVersionUpgradeVoteStatusResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @instance */ - Object.defineProperty(WaitForStateTransitionResultResponse.prototype, "version", { + Object.defineProperty(GetProtocolVersionUpgradeVoteStatusResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new WaitForStateTransitionResultResponse instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeVoteStatusResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse instance + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse instance */ - WaitForStateTransitionResultResponse.create = function create(properties) { - return new WaitForStateTransitionResultResponse(properties); + GetProtocolVersionUpgradeVoteStatusResponse.create = function create(properties) { + return new GetProtocolVersionUpgradeVoteStatusResponse(properties); }; /** - * Encodes the specified WaitForStateTransitionResultResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultResponse.encode = function encode(message, writer) { + GetProtocolVersionUpgradeVoteStatusResponse.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified WaitForStateTransitionResultResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IWaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeVoteStatusResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a WaitForStateTransitionResultResponse message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeVoteStatusResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @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.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultResponse.decode = function decode(reader, length) { + GetProtocolVersionUpgradeVoteStatusResponse.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.WaitForStateTransitionResultResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -19982,37 +26970,37 @@ $root.org = (function() { }; /** - * Decodes a WaitForStateTransitionResultResponse message from the specified reader or buffer, length delimited. + * Decodes a GetProtocolVersionUpgradeVoteStatusResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultResponse.decodeDelimited = function decodeDelimited(reader) { + GetProtocolVersionUpgradeVoteStatusResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a WaitForStateTransitionResultResponse message. + * Verifies a GetProtocolVersionUpgradeVoteStatusResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitForStateTransitionResultResponse.verify = function verify(message) { + GetProtocolVersionUpgradeVoteStatusResponse.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -20021,40 +27009,40 @@ $root.org = (function() { }; /** - * Creates a WaitForStateTransitionResultResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetProtocolVersionUpgradeVoteStatusResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} WaitForStateTransitionResultResponse + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse */ - WaitForStateTransitionResultResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse) + GetProtocolVersionUpgradeVoteStatusResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a WaitForStateTransitionResultResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message WaitForStateTransitionResultResponse + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - WaitForStateTransitionResultResponse.toObject = function toObject(message, options) { + GetProtocolVersionUpgradeVoteStatusResponse.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -20062,36 +27050,36 @@ $root.org = (function() { }; /** - * Converts this WaitForStateTransitionResultResponse to JSON. + * Converts this GetProtocolVersionUpgradeVoteStatusResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse * @instance * @returns {Object.} JSON object */ - WaitForStateTransitionResultResponse.prototype.toJSON = function toJSON() { + GetProtocolVersionUpgradeVoteStatusResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 = (function() { + GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 = (function() { /** - * Properties of a WaitForStateTransitionResultResponseV0. - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse - * @interface IWaitForStateTransitionResultResponseV0 - * @property {org.dash.platform.dapi.v0.IStateTransitionBroadcastError|null} [error] WaitForStateTransitionResultResponseV0 error - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] WaitForStateTransitionResultResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] WaitForStateTransitionResultResponseV0 metadata + * Properties of a GetProtocolVersionUpgradeVoteStatusResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @interface IGetProtocolVersionUpgradeVoteStatusResponseV0 + * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals|null} [versions] GetProtocolVersionUpgradeVoteStatusResponseV0 versions + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProtocolVersionUpgradeVoteStatusResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProtocolVersionUpgradeVoteStatusResponseV0 metadata */ - /** - * Constructs a new WaitForStateTransitionResultResponseV0. - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse - * @classdesc Represents a WaitForStateTransitionResultResponseV0. - * @implements IWaitForStateTransitionResultResponseV0 + /** + * Constructs a new GetProtocolVersionUpgradeVoteStatusResponseV0. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusResponseV0. + * @implements IGetProtocolVersionUpgradeVoteStatusResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0=} [properties] Properties to set */ - function WaitForStateTransitionResultResponseV0(properties) { + function GetProtocolVersionUpgradeVoteStatusResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20099,69 +27087,69 @@ $root.org = (function() { } /** - * WaitForStateTransitionResultResponseV0 error. - * @member {org.dash.platform.dapi.v0.IStateTransitionBroadcastError|null|undefined} error - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * GetProtocolVersionUpgradeVoteStatusResponseV0 versions. + * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals|null|undefined} versions + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @instance */ - WaitForStateTransitionResultResponseV0.prototype.error = null; + GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.versions = null; /** - * WaitForStateTransitionResultResponseV0 proof. + * GetProtocolVersionUpgradeVoteStatusResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @instance */ - WaitForStateTransitionResultResponseV0.prototype.proof = null; + GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.proof = null; /** - * WaitForStateTransitionResultResponseV0 metadata. + * GetProtocolVersionUpgradeVoteStatusResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @instance */ - WaitForStateTransitionResultResponseV0.prototype.metadata = null; + GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * WaitForStateTransitionResultResponseV0 result. - * @member {"error"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * GetProtocolVersionUpgradeVoteStatusResponseV0 result. + * @member {"versions"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @instance */ - Object.defineProperty(WaitForStateTransitionResultResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["error", "proof"]), + Object.defineProperty(GetProtocolVersionUpgradeVoteStatusResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["versions", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new WaitForStateTransitionResultResponseV0 instance using the specified properties. + * Creates a new GetProtocolVersionUpgradeVoteStatusResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 instance */ - WaitForStateTransitionResultResponseV0.create = function create(properties) { - return new WaitForStateTransitionResultResponseV0(properties); + GetProtocolVersionUpgradeVoteStatusResponseV0.create = function create(properties) { + return new GetProtocolVersionUpgradeVoteStatusResponseV0(properties); }; /** - * Encodes the specified WaitForStateTransitionResultResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultResponseV0.encode = function encode(message, writer) { + GetProtocolVersionUpgradeVoteStatusResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.error != null && Object.hasOwnProperty.call(message, "error")) - $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.encode(message.error, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.versions != null && Object.hasOwnProperty.call(message, "versions")) + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.encode(message.versions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -20170,38 +27158,38 @@ $root.org = (function() { }; /** - * Encodes the specified WaitForStateTransitionResultResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.verify|verify} messages. + * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.IWaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WaitForStateTransitionResultResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetProtocolVersionUpgradeVoteStatusResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a WaitForStateTransitionResultResponseV0 message from the specified reader or buffer. + * Decodes a GetProtocolVersionUpgradeVoteStatusResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 * @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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitForStateTransitionResultResponseV0.decode = function decode(reader, length) { + GetProtocolVersionUpgradeVoteStatusResponseV0.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.decode(reader, reader.uint32()); + message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -20213,159 +27201,586 @@ $root.org = (function() { reader.skipType(tag & 7); break; } - } - return message; - }; + } + return message; + }; + + /** + * Decodes a GetProtocolVersionUpgradeVoteStatusResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetProtocolVersionUpgradeVoteStatusResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetProtocolVersionUpgradeVoteStatusResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetProtocolVersionUpgradeVoteStatusResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.versions != null && message.hasOwnProperty("versions")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify(message.versions); + if (error) + return "versions." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetProtocolVersionUpgradeVoteStatusResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 + */ + GetProtocolVersionUpgradeVoteStatusResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0(); + if (object.versions != null) { + if (typeof object.versions !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.versions: object expected"); + message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.fromObject(object.versions); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.versions != null && message.hasOwnProperty("versions")) { + object.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(message.versions, options); + if (options.oneofs) + object.result = "versions"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetProtocolVersionUpgradeVoteStatusResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals = (function() { + + /** + * Properties of a VersionSignals. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @interface IVersionSignals + * @property {Array.|null} [versionSignals] VersionSignals versionSignals + */ + + /** + * Constructs a new VersionSignals. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @classdesc Represents a VersionSignals. + * @implements IVersionSignals + * @constructor + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals=} [properties] Properties to set + */ + function VersionSignals(properties) { + this.versionSignals = []; + 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]]; + } + + /** + * VersionSignals versionSignals. + * @member {Array.} versionSignals + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @instance + */ + VersionSignals.prototype.versionSignals = $util.emptyArray; + + /** + * Creates a new VersionSignals instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals instance + */ + VersionSignals.create = function create(properties) { + return new VersionSignals(properties); + }; + + /** + * Encodes the specified VersionSignals message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals} message VersionSignals message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionSignals.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.versionSignals != null && message.versionSignals.length) + for (var i = 0; i < message.versionSignals.length; ++i) + $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.encode(message.versionSignals[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified VersionSignals message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals} message VersionSignals message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionSignals.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a VersionSignals message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionSignals.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.versionSignals && message.versionSignals.length)) + message.versionSignals = []; + message.versionSignals.push($root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a VersionSignals message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionSignals.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a VersionSignals message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + VersionSignals.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.versionSignals != null && message.hasOwnProperty("versionSignals")) { + if (!Array.isArray(message.versionSignals)) + return "versionSignals: array expected"; + for (var i = 0; i < message.versionSignals.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify(message.versionSignals[i]); + if (error) + return "versionSignals." + error; + } + } + return null; + }; + + /** + * Creates a VersionSignals message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + */ + VersionSignals.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals(); + if (object.versionSignals) { + if (!Array.isArray(object.versionSignals)) + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.versionSignals: array expected"); + message.versionSignals = []; + for (var i = 0; i < object.versionSignals.length; ++i) { + if (typeof object.versionSignals[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.versionSignals: object expected"); + message.versionSignals[i] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.fromObject(object.versionSignals[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a VersionSignals message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message VersionSignals + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + VersionSignals.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.versionSignals = []; + if (message.versionSignals && message.versionSignals.length) { + object.versionSignals = []; + for (var j = 0; j < message.versionSignals.length; ++j) + object.versionSignals[j] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(message.versionSignals[j], options); + } + return object; + }; + + /** + * Converts this VersionSignals to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @instance + * @returns {Object.} JSON object + */ + VersionSignals.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return VersionSignals; + })(); + + GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal = (function() { + + /** + * Properties of a VersionSignal. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @interface IVersionSignal + * @property {Uint8Array|null} [proTxHash] VersionSignal proTxHash + * @property {number|null} [version] VersionSignal version + */ + + /** + * Constructs a new VersionSignal. + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @classdesc Represents a VersionSignal. + * @implements IVersionSignal + * @constructor + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal=} [properties] Properties to set + */ + function VersionSignal(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]]; + } + + /** + * VersionSignal proTxHash. + * @member {Uint8Array} proTxHash + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @instance + */ + VersionSignal.prototype.proTxHash = $util.newBuffer([]); + + /** + * VersionSignal version. + * @member {number} version + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @instance + */ + VersionSignal.prototype.version = 0; + + /** + * Creates a new VersionSignal instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal instance + */ + VersionSignal.create = function create(properties) { + return new VersionSignal(properties); + }; + + /** + * Encodes the specified VersionSignal message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal} message VersionSignal message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionSignal.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.proTxHash != null && Object.hasOwnProperty.call(message, "proTxHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.proTxHash); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.version); + return writer; + }; + + /** + * Encodes the specified VersionSignal message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal} message VersionSignal message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + VersionSignal.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a VersionSignal message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionSignal.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proTxHash = reader.bytes(); + break; + case 2: + message.version = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Decodes a WaitForStateTransitionResultResponseV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - WaitForStateTransitionResultResponseV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a VersionSignal message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + VersionSignal.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a WaitForStateTransitionResultResponseV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - WaitForStateTransitionResultResponseV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.error != null && message.hasOwnProperty("error")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.verify(message.error); - if (error) - return "error." + error; - } - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } - return null; - }; + /** + * Verifies a VersionSignal message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + VersionSignal.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + if (!(message.proTxHash && typeof message.proTxHash.length === "number" || $util.isString(message.proTxHash))) + return "proTxHash: buffer expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isInteger(message.version)) + return "version: integer expected"; + return null; + }; - /** - * Creates a WaitForStateTransitionResultResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} WaitForStateTransitionResultResponseV0 - */ - WaitForStateTransitionResultResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0) + /** + * Creates a VersionSignal message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + */ + VersionSignal.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal(); + if (object.proTxHash != null) + if (typeof object.proTxHash === "string") + $util.base64.decode(object.proTxHash, message.proTxHash = $util.newBuffer($util.base64.length(object.proTxHash)), 0); + else if (object.proTxHash.length >= 0) + message.proTxHash = object.proTxHash; + if (object.version != null) + message.version = object.version >>> 0; + return message; + }; + + /** + * Creates a plain object from a VersionSignal message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @static + * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message VersionSignal + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + VersionSignal.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.proTxHash = ""; + else { + object.proTxHash = []; + if (options.bytes !== Array) + object.proTxHash = $util.newBuffer(object.proTxHash); + } + object.version = 0; + } + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + object.proTxHash = options.bytes === String ? $util.base64.encode(message.proTxHash, 0, message.proTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.proTxHash) : message.proTxHash; + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; return object; - var message = new $root.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0(); - if (object.error != null) { - if (typeof object.error !== "object") - throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.error: object expected"); - message.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.fromObject(object.error); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; - }; + }; - /** - * Creates a plain object from a WaitForStateTransitionResultResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message WaitForStateTransitionResultResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - WaitForStateTransitionResultResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.error != null && message.hasOwnProperty("error")) { - object.error = $root.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(message.error, options); - if (options.oneofs) - object.result = "error"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; + /** + * Converts this VersionSignal to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @instance + * @returns {Object.} JSON object + */ + VersionSignal.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this WaitForStateTransitionResultResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 - * @instance - * @returns {Object.} JSON object - */ - WaitForStateTransitionResultResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return VersionSignal; + })(); - return WaitForStateTransitionResultResponseV0; + return GetProtocolVersionUpgradeVoteStatusResponseV0; })(); - return WaitForStateTransitionResultResponse; + return GetProtocolVersionUpgradeVoteStatusResponse; })(); - v0.GetConsensusParamsRequest = (function() { + v0.GetEpochsInfoRequest = (function() { /** - * Properties of a GetConsensusParamsRequest. + * Properties of a GetEpochsInfoRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetConsensusParamsRequest - * @property {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0|null} [v0] GetConsensusParamsRequest v0 + * @interface IGetEpochsInfoRequest + * @property {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0|null} [v0] GetEpochsInfoRequest v0 */ /** - * Constructs a new GetConsensusParamsRequest. + * Constructs a new GetEpochsInfoRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetConsensusParamsRequest. - * @implements IGetConsensusParamsRequest + * @classdesc Represents a GetEpochsInfoRequest. + * @implements IGetEpochsInfoRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest=} [properties] Properties to set */ - function GetConsensusParamsRequest(properties) { + function GetEpochsInfoRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20373,89 +27788,89 @@ $root.org = (function() { } /** - * GetConsensusParamsRequest v0. - * @member {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * GetEpochsInfoRequest v0. + * @member {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @instance */ - GetConsensusParamsRequest.prototype.v0 = null; + GetEpochsInfoRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetConsensusParamsRequest version. + * GetEpochsInfoRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @instance */ - Object.defineProperty(GetConsensusParamsRequest.prototype, "version", { + Object.defineProperty(GetEpochsInfoRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetConsensusParamsRequest instance using the specified properties. + * Creates a new GetEpochsInfoRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest instance + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest instance */ - GetConsensusParamsRequest.create = function create(properties) { - return new GetConsensusParamsRequest(properties); + GetEpochsInfoRequest.create = function create(properties) { + return new GetEpochsInfoRequest(properties); }; /** - * Encodes the specified GetConsensusParamsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.verify|verify} messages. + * Encodes the specified GetEpochsInfoRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest} message GetConsensusParamsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest} message GetEpochsInfoRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsRequest.encode = function encode(message, writer) { + GetEpochsInfoRequest.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.GetConsensusParamsRequest.GetConsensusParamsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetConsensusParamsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.verify|verify} messages. + * Encodes the specified GetEpochsInfoRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsRequest} message GetConsensusParamsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest} message GetEpochsInfoRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetEpochsInfoRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetConsensusParamsRequest message from the specified reader or buffer. + * Decodes a GetEpochsInfoRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @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.GetConsensusParamsRequest} GetConsensusParamsRequest + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsRequest.decode = function decode(reader, length) { + GetEpochsInfoRequest.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.GetConsensusParamsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -20466,37 +27881,37 @@ $root.org = (function() { }; /** - * Decodes a GetConsensusParamsRequest message from the specified reader or buffer, length delimited. + * Decodes a GetEpochsInfoRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsRequest.decodeDelimited = function decodeDelimited(reader) { + GetEpochsInfoRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetConsensusParamsRequest message. + * Verifies a GetEpochsInfoRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConsensusParamsRequest.verify = function verify(message) { + GetEpochsInfoRequest.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.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -20505,40 +27920,40 @@ $root.org = (function() { }; /** - * Creates a GetConsensusParamsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetEpochsInfoRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest} GetConsensusParamsRequest + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest */ - GetConsensusParamsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest) + GetEpochsInfoRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetConsensusParamsRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetEpochsInfoRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest} message GetConsensusParamsRequest + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest} message GetEpochsInfoRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetConsensusParamsRequest.toObject = function toObject(message, options) { + GetEpochsInfoRequest.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.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -20546,35 +27961,37 @@ $root.org = (function() { }; /** - * Converts this GetConsensusParamsRequest to JSON. + * Converts this GetEpochsInfoRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest * @instance * @returns {Object.} JSON object */ - GetConsensusParamsRequest.prototype.toJSON = function toJSON() { + GetEpochsInfoRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetConsensusParamsRequest.GetConsensusParamsRequestV0 = (function() { + GetEpochsInfoRequest.GetEpochsInfoRequestV0 = (function() { /** - * Properties of a GetConsensusParamsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest - * @interface IGetConsensusParamsRequestV0 - * @property {number|null} [height] GetConsensusParamsRequestV0 height - * @property {boolean|null} [prove] GetConsensusParamsRequestV0 prove + * Properties of a GetEpochsInfoRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @interface IGetEpochsInfoRequestV0 + * @property {google.protobuf.IUInt32Value|null} [startEpoch] GetEpochsInfoRequestV0 startEpoch + * @property {number|null} [count] GetEpochsInfoRequestV0 count + * @property {boolean|null} [ascending] GetEpochsInfoRequestV0 ascending + * @property {boolean|null} [prove] GetEpochsInfoRequestV0 prove */ /** - * Constructs a new GetConsensusParamsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest - * @classdesc Represents a GetConsensusParamsRequestV0. - * @implements IGetConsensusParamsRequestV0 + * Constructs a new GetEpochsInfoRequestV0. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @classdesc Represents a GetEpochsInfoRequestV0. + * @implements IGetEpochsInfoRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0=} [properties] Properties to set */ - function GetConsensusParamsRequestV0(properties) { + function GetEpochsInfoRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20582,87 +27999,113 @@ $root.org = (function() { } /** - * GetConsensusParamsRequestV0 height. - * @member {number} height - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * GetEpochsInfoRequestV0 startEpoch. + * @member {google.protobuf.IUInt32Value|null|undefined} startEpoch + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @instance */ - GetConsensusParamsRequestV0.prototype.height = 0; + GetEpochsInfoRequestV0.prototype.startEpoch = null; /** - * GetConsensusParamsRequestV0 prove. + * GetEpochsInfoRequestV0 count. + * @member {number} count + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @instance + */ + GetEpochsInfoRequestV0.prototype.count = 0; + + /** + * GetEpochsInfoRequestV0 ascending. + * @member {boolean} ascending + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @instance + */ + GetEpochsInfoRequestV0.prototype.ascending = false; + + /** + * GetEpochsInfoRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @instance */ - GetConsensusParamsRequestV0.prototype.prove = false; + GetEpochsInfoRequestV0.prototype.prove = false; /** - * Creates a new GetConsensusParamsRequestV0 instance using the specified properties. + * Creates a new GetEpochsInfoRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 instance */ - GetConsensusParamsRequestV0.create = function create(properties) { - return new GetConsensusParamsRequestV0(properties); + GetEpochsInfoRequestV0.create = function create(properties) { + return new GetEpochsInfoRequestV0(properties); }; /** - * Encodes the specified GetConsensusParamsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify|verify} messages. + * Encodes the specified GetEpochsInfoRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsRequestV0.encode = function encode(message, writer) { + GetEpochsInfoRequestV0.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).int32(message.height); + if (message.startEpoch != null && Object.hasOwnProperty.call(message, "startEpoch")) + $root.google.protobuf.UInt32Value.encode(message.startEpoch, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.count != null && Object.hasOwnProperty.call(message, "count")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.count); + if (message.ascending != null && Object.hasOwnProperty.call(message, "ascending")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.ascending); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.prove); return writer; }; /** - * Encodes the specified GetConsensusParamsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.verify|verify} messages. + * Encodes the specified GetEpochsInfoRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.IGetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetEpochsInfoRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetConsensusParamsRequestV0 message from the specified reader or buffer. + * Decodes a GetEpochsInfoRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @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.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsRequestV0.decode = function decode(reader, length) { + GetEpochsInfoRequestV0.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.GetConsensusParamsRequest.GetConsensusParamsRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.height = reader.int32(); + message.startEpoch = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); break; case 2: + message.count = reader.uint32(); + break; + case 3: + message.ascending = reader.bool(); + break; + case 4: message.prove = reader.bool(); break; default: @@ -20674,35 +28117,43 @@ $root.org = (function() { }; /** - * Decodes a GetConsensusParamsRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetEpochsInfoRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetEpochsInfoRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetConsensusParamsRequestV0 message. + * Verifies a GetEpochsInfoRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConsensusParamsRequestV0.verify = function verify(message) { + GetEpochsInfoRequestV0.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)) - return "height: integer expected"; + if (message.startEpoch != null && message.hasOwnProperty("startEpoch")) { + var error = $root.google.protobuf.UInt32Value.verify(message.startEpoch); + if (error) + return "startEpoch." + error; + } + if (message.count != null && message.hasOwnProperty("count")) + if (!$util.isInteger(message.count)) + return "count: integer expected"; + if (message.ascending != null && message.hasOwnProperty("ascending")) + if (typeof message.ascending !== "boolean") + return "ascending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -20710,83 +28161,96 @@ $root.org = (function() { }; /** - * Creates a GetConsensusParamsRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetEpochsInfoRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} GetConsensusParamsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 */ - GetConsensusParamsRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0) + GetEpochsInfoRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0(); - if (object.height != null) - message.height = object.height | 0; + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0(); + if (object.startEpoch != null) { + if (typeof object.startEpoch !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.startEpoch: object expected"); + message.startEpoch = $root.google.protobuf.UInt32Value.fromObject(object.startEpoch); + } + if (object.count != null) + message.count = object.count >>> 0; + if (object.ascending != null) + message.ascending = Boolean(object.ascending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetConsensusParamsRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetEpochsInfoRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message GetConsensusParamsRequestV0 + * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetConsensusParamsRequestV0.toObject = function toObject(message, options) { + GetEpochsInfoRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.height = 0; + object.startEpoch = null; + object.count = 0; + object.ascending = false; object.prove = false; } - if (message.height != null && message.hasOwnProperty("height")) - object.height = message.height; + if (message.startEpoch != null && message.hasOwnProperty("startEpoch")) + object.startEpoch = $root.google.protobuf.UInt32Value.toObject(message.startEpoch, options); + if (message.count != null && message.hasOwnProperty("count")) + object.count = message.count; + if (message.ascending != null && message.hasOwnProperty("ascending")) + object.ascending = message.ascending; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetConsensusParamsRequestV0 to JSON. + * Converts this GetEpochsInfoRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 * @instance * @returns {Object.} JSON object */ - GetConsensusParamsRequestV0.prototype.toJSON = function toJSON() { + GetEpochsInfoRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetConsensusParamsRequestV0; + return GetEpochsInfoRequestV0; })(); - return GetConsensusParamsRequest; + return GetEpochsInfoRequest; })(); - v0.GetConsensusParamsResponse = (function() { + v0.GetEpochsInfoResponse = (function() { /** - * Properties of a GetConsensusParamsResponse. + * Properties of a GetEpochsInfoResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetConsensusParamsResponse - * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0|null} [v0] GetConsensusParamsResponse v0 + * @interface IGetEpochsInfoResponse + * @property {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0|null} [v0] GetEpochsInfoResponse v0 */ /** - * Constructs a new GetConsensusParamsResponse. + * Constructs a new GetEpochsInfoResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetConsensusParamsResponse. - * @implements IGetConsensusParamsResponse + * @classdesc Represents a GetEpochsInfoResponse. + * @implements IGetEpochsInfoResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse=} [properties] Properties to set */ - function GetConsensusParamsResponse(properties) { + function GetEpochsInfoResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -20794,89 +28258,89 @@ $root.org = (function() { } /** - * GetConsensusParamsResponse v0. - * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * GetEpochsInfoResponse v0. + * @member {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @instance */ - GetConsensusParamsResponse.prototype.v0 = null; + GetEpochsInfoResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetConsensusParamsResponse version. + * GetEpochsInfoResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @instance */ - Object.defineProperty(GetConsensusParamsResponse.prototype, "version", { + Object.defineProperty(GetEpochsInfoResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetConsensusParamsResponse instance using the specified properties. + * Creates a new GetEpochsInfoResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse instance + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse instance */ - GetConsensusParamsResponse.create = function create(properties) { - return new GetConsensusParamsResponse(properties); + GetEpochsInfoResponse.create = function create(properties) { + return new GetEpochsInfoResponse(properties); }; /** - * Encodes the specified GetConsensusParamsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.verify|verify} messages. + * Encodes the specified GetEpochsInfoResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse} message GetConsensusParamsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse} message GetEpochsInfoResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsResponse.encode = function encode(message, writer) { + GetEpochsInfoResponse.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.GetConsensusParamsResponse.GetConsensusParamsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetConsensusParamsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.verify|verify} messages. + * Encodes the specified GetEpochsInfoResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetConsensusParamsResponse} message GetConsensusParamsResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse} message GetEpochsInfoResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetConsensusParamsResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetEpochsInfoResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetConsensusParamsResponse message from the specified reader or buffer. + * Decodes a GetEpochsInfoResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @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.GetConsensusParamsResponse} GetConsensusParamsResponse + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsResponse.decode = function decode(reader, length) { + GetEpochsInfoResponse.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.GetConsensusParamsResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -20887,37 +28351,37 @@ $root.org = (function() { }; /** - * Decodes a GetConsensusParamsResponse message from the specified reader or buffer, length delimited. + * Decodes a GetEpochsInfoResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConsensusParamsResponse.decodeDelimited = function decodeDelimited(reader) { + GetEpochsInfoResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetConsensusParamsResponse message. + * Verifies a GetEpochsInfoResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConsensusParamsResponse.verify = function verify(message) { + GetEpochsInfoResponse.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.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -20926,40 +28390,40 @@ $root.org = (function() { }; /** - * Creates a GetConsensusParamsResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetEpochsInfoResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse} GetConsensusParamsResponse + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse */ - GetConsensusParamsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse) + GetEpochsInfoResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetConsensusParamsResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetEpochsInfoResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse} message GetConsensusParamsResponse + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse} message GetEpochsInfoResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetConsensusParamsResponse.toObject = function toObject(message, options) { + GetEpochsInfoResponse.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.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -20967,36 +28431,36 @@ $root.org = (function() { }; /** - * Converts this GetConsensusParamsResponse to JSON. + * Converts this GetEpochsInfoResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse * @instance * @returns {Object.} JSON object */ - GetConsensusParamsResponse.prototype.toJSON = function toJSON() { + GetEpochsInfoResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetConsensusParamsResponse.ConsensusParamsBlock = (function() { + GetEpochsInfoResponse.GetEpochsInfoResponseV0 = (function() { /** - * Properties of a ConsensusParamsBlock. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @interface IConsensusParamsBlock - * @property {string|null} [maxBytes] ConsensusParamsBlock maxBytes - * @property {string|null} [maxGas] ConsensusParamsBlock maxGas - * @property {string|null} [timeIotaMs] ConsensusParamsBlock timeIotaMs + * Properties of a GetEpochsInfoResponseV0. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @interface IGetEpochsInfoResponseV0 + * @property {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos|null} [epochs] GetEpochsInfoResponseV0 epochs + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetEpochsInfoResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetEpochsInfoResponseV0 metadata */ /** - * Constructs a new ConsensusParamsBlock. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @classdesc Represents a ConsensusParamsBlock. - * @implements IConsensusParamsBlock + * Constructs a new GetEpochsInfoResponseV0. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @classdesc Represents a GetEpochsInfoResponseV0. + * @implements IGetEpochsInfoResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0=} [properties] Properties to set */ - function ConsensusParamsBlock(properties) { + function GetEpochsInfoResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -21004,333 +28468,115 @@ $root.org = (function() { } /** - * ConsensusParamsBlock maxBytes. - * @member {string} maxBytes - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @instance - */ - ConsensusParamsBlock.prototype.maxBytes = ""; - - /** - * ConsensusParamsBlock maxGas. - * @member {string} maxGas - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @instance - */ - ConsensusParamsBlock.prototype.maxGas = ""; - - /** - * ConsensusParamsBlock timeIotaMs. - * @member {string} timeIotaMs - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * GetEpochsInfoResponseV0 epochs. + * @member {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos|null|undefined} epochs + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @instance */ - ConsensusParamsBlock.prototype.timeIotaMs = ""; - - /** - * Creates a new ConsensusParamsBlock instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock instance - */ - ConsensusParamsBlock.create = function create(properties) { - return new ConsensusParamsBlock(properties); - }; - - /** - * Encodes the specified ConsensusParamsBlock message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock} message ConsensusParamsBlock message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConsensusParamsBlock.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.maxBytes != null && Object.hasOwnProperty.call(message, "maxBytes")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.maxBytes); - if (message.maxGas != null && Object.hasOwnProperty.call(message, "maxGas")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.maxGas); - if (message.timeIotaMs != null && Object.hasOwnProperty.call(message, "timeIotaMs")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.timeIotaMs); - return writer; - }; - - /** - * Encodes the specified ConsensusParamsBlock message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock} message ConsensusParamsBlock message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ConsensusParamsBlock.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a ConsensusParamsBlock message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @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.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConsensusParamsBlock.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.GetConsensusParamsResponse.ConsensusParamsBlock(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.maxBytes = reader.string(); - break; - case 2: - message.maxGas = reader.string(); - break; - case 3: - message.timeIotaMs = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ConsensusParamsBlock message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ConsensusParamsBlock.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ConsensusParamsBlock message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ConsensusParamsBlock.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) - if (!$util.isString(message.maxBytes)) - return "maxBytes: string expected"; - if (message.maxGas != null && message.hasOwnProperty("maxGas")) - if (!$util.isString(message.maxGas)) - return "maxGas: string expected"; - if (message.timeIotaMs != null && message.hasOwnProperty("timeIotaMs")) - if (!$util.isString(message.timeIotaMs)) - return "timeIotaMs: string expected"; - return null; - }; - - /** - * Creates a ConsensusParamsBlock message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} ConsensusParamsBlock - */ - ConsensusParamsBlock.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock(); - if (object.maxBytes != null) - message.maxBytes = String(object.maxBytes); - if (object.maxGas != null) - message.maxGas = String(object.maxGas); - if (object.timeIotaMs != null) - message.timeIotaMs = String(object.timeIotaMs); - return message; - }; - - /** - * Creates a plain object from a ConsensusParamsBlock message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message ConsensusParamsBlock - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ConsensusParamsBlock.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.maxBytes = ""; - object.maxGas = ""; - object.timeIotaMs = ""; - } - if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) - object.maxBytes = message.maxBytes; - if (message.maxGas != null && message.hasOwnProperty("maxGas")) - object.maxGas = message.maxGas; - if (message.timeIotaMs != null && message.hasOwnProperty("timeIotaMs")) - object.timeIotaMs = message.timeIotaMs; - return object; - }; + GetEpochsInfoResponseV0.prototype.epochs = null; /** - * Converts this ConsensusParamsBlock to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock + * GetEpochsInfoResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @instance - * @returns {Object.} JSON object - */ - ConsensusParamsBlock.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return ConsensusParamsBlock; - })(); - - GetConsensusParamsResponse.ConsensusParamsEvidence = (function() { - - /** - * Properties of a ConsensusParamsEvidence. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @interface IConsensusParamsEvidence - * @property {string|null} [maxAgeNumBlocks] ConsensusParamsEvidence maxAgeNumBlocks - * @property {string|null} [maxAgeDuration] ConsensusParamsEvidence maxAgeDuration - * @property {string|null} [maxBytes] ConsensusParamsEvidence maxBytes - */ - - /** - * Constructs a new ConsensusParamsEvidence. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @classdesc Represents a ConsensusParamsEvidence. - * @implements IConsensusParamsEvidence - * @constructor - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence=} [properties] Properties to set */ - function ConsensusParamsEvidence(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]]; - } + GetEpochsInfoResponseV0.prototype.proof = null; /** - * ConsensusParamsEvidence maxAgeNumBlocks. - * @member {string} maxAgeNumBlocks - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * GetEpochsInfoResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @instance */ - ConsensusParamsEvidence.prototype.maxAgeNumBlocks = ""; + GetEpochsInfoResponseV0.prototype.metadata = null; - /** - * ConsensusParamsEvidence maxAgeDuration. - * @member {string} maxAgeDuration - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence - * @instance - */ - ConsensusParamsEvidence.prototype.maxAgeDuration = ""; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * ConsensusParamsEvidence maxBytes. - * @member {string} maxBytes - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * GetEpochsInfoResponseV0 result. + * @member {"epochs"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @instance */ - ConsensusParamsEvidence.prototype.maxBytes = ""; + Object.defineProperty(GetEpochsInfoResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["epochs", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); /** - * Creates a new ConsensusParamsEvidence instance using the specified properties. + * Creates a new GetEpochsInfoResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence instance + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 instance */ - ConsensusParamsEvidence.create = function create(properties) { - return new ConsensusParamsEvidence(properties); + GetEpochsInfoResponseV0.create = function create(properties) { + return new GetEpochsInfoResponseV0(properties); }; /** - * Encodes the specified ConsensusParamsEvidence message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify|verify} messages. + * Encodes the specified GetEpochsInfoResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence} message ConsensusParamsEvidence message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConsensusParamsEvidence.encode = function encode(message, writer) { + GetEpochsInfoResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.maxAgeNumBlocks != null && Object.hasOwnProperty.call(message, "maxAgeNumBlocks")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.maxAgeNumBlocks); - if (message.maxAgeDuration != null && Object.hasOwnProperty.call(message, "maxAgeDuration")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.maxAgeDuration); - if (message.maxBytes != null && Object.hasOwnProperty.call(message, "maxBytes")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.maxBytes); + if (message.epochs != null && Object.hasOwnProperty.call(message, "epochs")) + $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.encode(message.epochs, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified ConsensusParamsEvidence message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify|verify} messages. + * Encodes the specified GetEpochsInfoResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence} message ConsensusParamsEvidence message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ConsensusParamsEvidence.encodeDelimited = function encodeDelimited(message, writer) { + GetEpochsInfoResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ConsensusParamsEvidence message from the specified reader or buffer. + * Decodes a GetEpochsInfoResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @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.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConsensusParamsEvidence.decode = function decode(reader, length) { + GetEpochsInfoResponseV0.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.GetConsensusParamsResponse.ConsensusParamsEvidence(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxAgeNumBlocks = reader.string(); + message.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.decode(reader, reader.uint32()); break; case 2: - message.maxAgeDuration = reader.string(); + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); break; case 3: - message.maxBytes = reader.string(); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -21341,347 +28587,688 @@ $root.org = (function() { }; /** - * Decodes a ConsensusParamsEvidence message from the specified reader or buffer, length delimited. + * Decodes a GetEpochsInfoResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ConsensusParamsEvidence.decodeDelimited = function decodeDelimited(reader) { + GetEpochsInfoResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ConsensusParamsEvidence message. + * Verifies a GetEpochsInfoResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ConsensusParamsEvidence.verify = function verify(message) { + GetEpochsInfoResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.maxAgeNumBlocks != null && message.hasOwnProperty("maxAgeNumBlocks")) - if (!$util.isString(message.maxAgeNumBlocks)) - return "maxAgeNumBlocks: string expected"; - if (message.maxAgeDuration != null && message.hasOwnProperty("maxAgeDuration")) - if (!$util.isString(message.maxAgeDuration)) - return "maxAgeDuration: string expected"; - if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) - if (!$util.isString(message.maxBytes)) - return "maxBytes: string expected"; + var properties = {}; + if (message.epochs != null && message.hasOwnProperty("epochs")) { + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify(message.epochs); + if (error) + return "epochs." + error; + } + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; + } + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } return null; }; /** - * Creates a ConsensusParamsEvidence message from a plain object. Also converts values to their respective internal types. + * Creates a GetEpochsInfoResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} ConsensusParamsEvidence + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 */ - ConsensusParamsEvidence.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence) + GetEpochsInfoResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence(); - if (object.maxAgeNumBlocks != null) - message.maxAgeNumBlocks = String(object.maxAgeNumBlocks); - if (object.maxAgeDuration != null) - message.maxAgeDuration = String(object.maxAgeDuration); - if (object.maxBytes != null) - message.maxBytes = String(object.maxBytes); + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0(); + if (object.epochs != null) { + if (typeof object.epochs !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.epochs: object expected"); + message.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.fromObject(object.epochs); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } return message; }; /** - * Creates a plain object from a ConsensusParamsEvidence message. Also converts values to other types if specified. + * Creates a plain object from a GetEpochsInfoResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message ConsensusParamsEvidence + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ConsensusParamsEvidence.toObject = function toObject(message, options) { + GetEpochsInfoResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.maxAgeNumBlocks = ""; - object.maxAgeDuration = ""; - object.maxBytes = ""; + if (options.defaults) + object.metadata = null; + if (message.epochs != null && message.hasOwnProperty("epochs")) { + object.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(message.epochs, options); + if (options.oneofs) + object.result = "epochs"; } - if (message.maxAgeNumBlocks != null && message.hasOwnProperty("maxAgeNumBlocks")) - object.maxAgeNumBlocks = message.maxAgeNumBlocks; - if (message.maxAgeDuration != null && message.hasOwnProperty("maxAgeDuration")) - object.maxAgeDuration = message.maxAgeDuration; - if (message.maxBytes != null && message.hasOwnProperty("maxBytes")) - object.maxBytes = message.maxBytes; + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this ConsensusParamsEvidence to JSON. + * Converts this GetEpochsInfoResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 * @instance * @returns {Object.} JSON object */ - ConsensusParamsEvidence.prototype.toJSON = function toJSON() { + GetEpochsInfoResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ConsensusParamsEvidence; - })(); + GetEpochsInfoResponseV0.EpochInfos = (function() { - GetConsensusParamsResponse.GetConsensusParamsResponseV0 = (function() { + /** + * Properties of an EpochInfos. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @interface IEpochInfos + * @property {Array.|null} [epochInfos] EpochInfos epochInfos + */ - /** - * Properties of a GetConsensusParamsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @interface IGetConsensusParamsResponseV0 - * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock|null} [block] GetConsensusParamsResponseV0 block - * @property {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence|null} [evidence] GetConsensusParamsResponseV0 evidence - */ + /** + * Constructs a new EpochInfos. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @classdesc Represents an EpochInfos. + * @implements IEpochInfos + * @constructor + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos=} [properties] Properties to set + */ + function EpochInfos(properties) { + this.epochInfos = []; + 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]]; + } - /** - * Constructs a new GetConsensusParamsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse - * @classdesc Represents a GetConsensusParamsResponseV0. - * @implements IGetConsensusParamsResponseV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0=} [properties] Properties to set - */ - function GetConsensusParamsResponseV0(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]]; - } + /** + * EpochInfos epochInfos. + * @member {Array.} epochInfos + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @instance + */ + EpochInfos.prototype.epochInfos = $util.emptyArray; - /** - * GetConsensusParamsResponseV0 block. - * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsBlock|null|undefined} block - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @instance - */ - GetConsensusParamsResponseV0.prototype.block = null; + /** + * Creates a new EpochInfos instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos instance + */ + EpochInfos.create = function create(properties) { + return new EpochInfos(properties); + }; - /** - * GetConsensusParamsResponseV0 evidence. - * @member {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IConsensusParamsEvidence|null|undefined} evidence - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @instance - */ - GetConsensusParamsResponseV0.prototype.evidence = null; + /** + * Encodes the specified EpochInfos message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos} message EpochInfos message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EpochInfos.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.epochInfos != null && message.epochInfos.length) + for (var i = 0; i < message.epochInfos.length; ++i) + $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.encode(message.epochInfos[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Creates a new GetConsensusParamsResponseV0 instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 instance - */ - GetConsensusParamsResponseV0.create = function create(properties) { - return new GetConsensusParamsResponseV0(properties); - }; + /** + * Encodes the specified EpochInfos message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos} message EpochInfos message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EpochInfos.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Encodes the specified GetConsensusParamsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetConsensusParamsResponseV0.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.block != null && Object.hasOwnProperty.call(message, "block")) - $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.encode(message.block, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.evidence != null && Object.hasOwnProperty.call(message, "evidence")) - $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.encode(message.evidence, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Decodes an EpochInfos message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EpochInfos.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.epochInfos && message.epochInfos.length)) + message.epochInfos = []; + message.epochInfos.push($root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Encodes the specified GetConsensusParamsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.IGetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetConsensusParamsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Decodes an EpochInfos message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EpochInfos.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EpochInfos message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EpochInfos.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.epochInfos != null && message.hasOwnProperty("epochInfos")) { + if (!Array.isArray(message.epochInfos)) + return "epochInfos: array expected"; + for (var i = 0; i < message.epochInfos.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify(message.epochInfos[i]); + if (error) + return "epochInfos." + error; + } + } + return null; + }; + + /** + * Creates an EpochInfos message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + */ + EpochInfos.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos(); + if (object.epochInfos) { + if (!Array.isArray(object.epochInfos)) + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epochInfos: array expected"); + message.epochInfos = []; + for (var i = 0; i < object.epochInfos.length; ++i) { + if (typeof object.epochInfos[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epochInfos: object expected"); + message.epochInfos[i] = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.fromObject(object.epochInfos[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an EpochInfos message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message EpochInfos + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EpochInfos.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.epochInfos = []; + if (message.epochInfos && message.epochInfos.length) { + object.epochInfos = []; + for (var j = 0; j < message.epochInfos.length; ++j) + object.epochInfos[j] = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(message.epochInfos[j], options); + } + return object; + }; + + /** + * Converts this EpochInfos to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @instance + * @returns {Object.} JSON object + */ + EpochInfos.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return EpochInfos; + })(); + + GetEpochsInfoResponseV0.EpochInfo = (function() { + + /** + * Properties of an EpochInfo. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @interface IEpochInfo + * @property {number|null} [number] EpochInfo number + * @property {number|Long|null} [firstBlockHeight] EpochInfo firstBlockHeight + * @property {number|null} [firstCoreBlockHeight] EpochInfo firstCoreBlockHeight + * @property {number|Long|null} [startTime] EpochInfo startTime + * @property {number|null} [feeMultiplier] EpochInfo feeMultiplier + * @property {number|null} [protocolVersion] EpochInfo protocolVersion + */ + + /** + * Constructs a new EpochInfo. + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @classdesc Represents an EpochInfo. + * @implements IEpochInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo=} [properties] Properties to set + */ + function EpochInfo(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]]; + } + + /** + * EpochInfo number. + * @member {number} number + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.number = 0; + + /** + * EpochInfo firstBlockHeight. + * @member {number|Long} firstBlockHeight + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.firstBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * EpochInfo firstCoreBlockHeight. + * @member {number} firstCoreBlockHeight + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.firstCoreBlockHeight = 0; + + /** + * EpochInfo startTime. + * @member {number|Long} startTime + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.startTime = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * EpochInfo feeMultiplier. + * @member {number} feeMultiplier + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.feeMultiplier = 0; + + /** + * EpochInfo protocolVersion. + * @member {number} protocolVersion + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + */ + EpochInfo.prototype.protocolVersion = 0; + + /** + * Creates a new EpochInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo instance + */ + EpochInfo.create = function create(properties) { + return new EpochInfo(properties); + }; + + /** + * Encodes the specified EpochInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo} message EpochInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EpochInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.number != null && Object.hasOwnProperty.call(message, "number")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.number); + if (message.firstBlockHeight != null && Object.hasOwnProperty.call(message, "firstBlockHeight")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.firstBlockHeight); + if (message.firstCoreBlockHeight != null && Object.hasOwnProperty.call(message, "firstCoreBlockHeight")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.firstCoreBlockHeight); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.startTime); + if (message.feeMultiplier != null && Object.hasOwnProperty.call(message, "feeMultiplier")) + writer.uint32(/* id 5, wireType 1 =*/41).double(message.feeMultiplier); + if (message.protocolVersion != null && Object.hasOwnProperty.call(message, "protocolVersion")) + writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.protocolVersion); + return writer; + }; - /** - * Decodes a GetConsensusParamsResponseV0 message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @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.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetConsensusParamsResponseV0.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.GetConsensusParamsResponse.GetConsensusParamsResponseV0(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.decode(reader, reader.uint32()); - break; - case 2: - message.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Encodes the specified EpochInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo} message EpochInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EpochInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EpochInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EpochInfo.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.number = reader.uint32(); + break; + case 2: + message.firstBlockHeight = reader.uint64(); + break; + case 3: + message.firstCoreBlockHeight = reader.uint32(); + break; + case 4: + message.startTime = reader.uint64(); + break; + case 5: + message.feeMultiplier = reader.double(); + break; + case 6: + message.protocolVersion = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } } - } - return message; - }; + return message; + }; - /** - * Decodes a GetConsensusParamsResponseV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetConsensusParamsResponseV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes an EpochInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EpochInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a GetConsensusParamsResponseV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetConsensusParamsResponseV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.block != null && message.hasOwnProperty("block")) { - var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.verify(message.block); - if (error) - return "block." + error; - } - if (message.evidence != null && message.hasOwnProperty("evidence")) { - var error = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.verify(message.evidence); - if (error) - return "evidence." + error; - } - return null; - }; + /** + * Verifies an EpochInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EpochInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.number != null && message.hasOwnProperty("number")) + if (!$util.isInteger(message.number)) + return "number: integer expected"; + if (message.firstBlockHeight != null && message.hasOwnProperty("firstBlockHeight")) + if (!$util.isInteger(message.firstBlockHeight) && !(message.firstBlockHeight && $util.isInteger(message.firstBlockHeight.low) && $util.isInteger(message.firstBlockHeight.high))) + return "firstBlockHeight: integer|Long expected"; + if (message.firstCoreBlockHeight != null && message.hasOwnProperty("firstCoreBlockHeight")) + if (!$util.isInteger(message.firstCoreBlockHeight)) + return "firstCoreBlockHeight: integer expected"; + if (message.startTime != null && message.hasOwnProperty("startTime")) + if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high))) + return "startTime: integer|Long expected"; + if (message.feeMultiplier != null && message.hasOwnProperty("feeMultiplier")) + if (typeof message.feeMultiplier !== "number") + return "feeMultiplier: number expected"; + if (message.protocolVersion != null && message.hasOwnProperty("protocolVersion")) + if (!$util.isInteger(message.protocolVersion)) + return "protocolVersion: integer expected"; + return null; + }; - /** - * Creates a GetConsensusParamsResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} GetConsensusParamsResponseV0 - */ - GetConsensusParamsResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0) + /** + * Creates an EpochInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + */ + EpochInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo(); + if (object.number != null) + message.number = object.number >>> 0; + if (object.firstBlockHeight != null) + if ($util.Long) + (message.firstBlockHeight = $util.Long.fromValue(object.firstBlockHeight)).unsigned = true; + else if (typeof object.firstBlockHeight === "string") + message.firstBlockHeight = parseInt(object.firstBlockHeight, 10); + else if (typeof object.firstBlockHeight === "number") + message.firstBlockHeight = object.firstBlockHeight; + else if (typeof object.firstBlockHeight === "object") + message.firstBlockHeight = new $util.LongBits(object.firstBlockHeight.low >>> 0, object.firstBlockHeight.high >>> 0).toNumber(true); + if (object.firstCoreBlockHeight != null) + message.firstCoreBlockHeight = object.firstCoreBlockHeight >>> 0; + if (object.startTime != null) + if ($util.Long) + (message.startTime = $util.Long.fromValue(object.startTime)).unsigned = true; + else if (typeof object.startTime === "string") + message.startTime = parseInt(object.startTime, 10); + else if (typeof object.startTime === "number") + message.startTime = object.startTime; + else if (typeof object.startTime === "object") + message.startTime = new $util.LongBits(object.startTime.low >>> 0, object.startTime.high >>> 0).toNumber(true); + if (object.feeMultiplier != null) + message.feeMultiplier = Number(object.feeMultiplier); + if (object.protocolVersion != null) + message.protocolVersion = object.protocolVersion >>> 0; + return message; + }; + + /** + * Creates a plain object from an EpochInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @static + * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message EpochInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EpochInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.number = 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.firstBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.firstBlockHeight = options.longs === String ? "0" : 0; + object.firstCoreBlockHeight = 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.startTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.startTime = options.longs === String ? "0" : 0; + object.feeMultiplier = 0; + object.protocolVersion = 0; + } + if (message.number != null && message.hasOwnProperty("number")) + object.number = message.number; + if (message.firstBlockHeight != null && message.hasOwnProperty("firstBlockHeight")) + if (typeof message.firstBlockHeight === "number") + object.firstBlockHeight = options.longs === String ? String(message.firstBlockHeight) : message.firstBlockHeight; + else + object.firstBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.firstBlockHeight) : options.longs === Number ? new $util.LongBits(message.firstBlockHeight.low >>> 0, message.firstBlockHeight.high >>> 0).toNumber(true) : message.firstBlockHeight; + if (message.firstCoreBlockHeight != null && message.hasOwnProperty("firstCoreBlockHeight")) + object.firstCoreBlockHeight = message.firstCoreBlockHeight; + if (message.startTime != null && message.hasOwnProperty("startTime")) + if (typeof message.startTime === "number") + object.startTime = options.longs === String ? String(message.startTime) : message.startTime; + else + object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber(true) : message.startTime; + if (message.feeMultiplier != null && message.hasOwnProperty("feeMultiplier")) + object.feeMultiplier = options.json && !isFinite(message.feeMultiplier) ? String(message.feeMultiplier) : message.feeMultiplier; + if (message.protocolVersion != null && message.hasOwnProperty("protocolVersion")) + object.protocolVersion = message.protocolVersion; return object; - var message = new $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0(); - if (object.block != null) { - if (typeof object.block !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.block: object expected"); - message.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.fromObject(object.block); - } - if (object.evidence != null) { - if (typeof object.evidence !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.evidence: object expected"); - message.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.fromObject(object.evidence); - } - return message; - }; + }; - /** - * Creates a plain object from a GetConsensusParamsResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message GetConsensusParamsResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetConsensusParamsResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.block = null; - object.evidence = null; - } - if (message.block != null && message.hasOwnProperty("block")) - object.block = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(message.block, options); - if (message.evidence != null && message.hasOwnProperty("evidence")) - object.evidence = $root.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(message.evidence, options); - return object; - }; + /** + * Converts this EpochInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @instance + * @returns {Object.} JSON object + */ + EpochInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetConsensusParamsResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetConsensusParamsResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return EpochInfo; + })(); - return GetConsensusParamsResponseV0; + return GetEpochsInfoResponseV0; })(); - return GetConsensusParamsResponse; + return GetEpochsInfoResponse; })(); - v0.GetProtocolVersionUpgradeStateRequest = (function() { + v0.GetContestedResourcesRequest = (function() { /** - * Properties of a GetProtocolVersionUpgradeStateRequest. + * Properties of a GetContestedResourcesRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetProtocolVersionUpgradeStateRequest - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0|null} [v0] GetProtocolVersionUpgradeStateRequest v0 + * @interface IGetContestedResourcesRequest + * @property {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0|null} [v0] GetContestedResourcesRequest v0 */ /** - * Constructs a new GetProtocolVersionUpgradeStateRequest. + * Constructs a new GetContestedResourcesRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProtocolVersionUpgradeStateRequest. - * @implements IGetProtocolVersionUpgradeStateRequest + * @classdesc Represents a GetContestedResourcesRequest. + * @implements IGetContestedResourcesRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest=} [properties] Properties to set */ - function GetProtocolVersionUpgradeStateRequest(properties) { + function GetContestedResourcesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -21689,89 +29276,89 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeStateRequest v0. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * GetContestedResourcesRequest v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @instance */ - GetProtocolVersionUpgradeStateRequest.prototype.v0 = null; + GetContestedResourcesRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeStateRequest version. + * GetContestedResourcesRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeStateRequest.prototype, "version", { + Object.defineProperty(GetContestedResourcesRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeStateRequest instance using the specified properties. + * Creates a new GetContestedResourcesRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest instance */ - GetProtocolVersionUpgradeStateRequest.create = function create(properties) { - return new GetProtocolVersionUpgradeStateRequest(properties); + GetContestedResourcesRequest.create = function create(properties) { + return new GetContestedResourcesRequest(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeStateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.verify|verify} messages. + * Encodes the specified GetContestedResourcesRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest} message GetContestedResourcesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateRequest.encode = function encode(message, writer) { + GetContestedResourcesRequest.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeStateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.verify|verify} messages. + * Encodes the specified GetContestedResourcesRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest} message GetContestedResourcesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourcesRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeStateRequest message from the specified reader or buffer. + * Decodes a GetContestedResourcesRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @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.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateRequest.decode = function decode(reader, length) { + GetContestedResourcesRequest.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.GetProtocolVersionUpgradeStateRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -21782,37 +29369,37 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeStateRequest message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourcesRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateRequest.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourcesRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeStateRequest message. + * Verifies a GetContestedResourcesRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeStateRequest.verify = function verify(message) { + GetContestedResourcesRequest.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -21821,40 +29408,40 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeStateRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourcesRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} GetProtocolVersionUpgradeStateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest */ - GetProtocolVersionUpgradeStateRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest) + GetContestedResourcesRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeStateRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourcesRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message GetProtocolVersionUpgradeStateRequest + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest} message GetContestedResourcesRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeStateRequest.toObject = function toObject(message, options) { + GetContestedResourcesRequest.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -21862,109 +29449,229 @@ $root.org = (function() { }; /** - * Converts this GetProtocolVersionUpgradeStateRequest to JSON. + * Converts this GetContestedResourcesRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeStateRequest.prototype.toJSON = function toJSON() { + GetContestedResourcesRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 = (function() { + GetContestedResourcesRequest.GetContestedResourcesRequestV0 = (function() { + + /** + * Properties of a GetContestedResourcesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @interface IGetContestedResourcesRequestV0 + * @property {Uint8Array|null} [contractId] GetContestedResourcesRequestV0 contractId + * @property {string|null} [documentTypeName] GetContestedResourcesRequestV0 documentTypeName + * @property {string|null} [indexName] GetContestedResourcesRequestV0 indexName + * @property {Array.|null} [startIndexValues] GetContestedResourcesRequestV0 startIndexValues + * @property {Array.|null} [endIndexValues] GetContestedResourcesRequestV0 endIndexValues + * @property {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo|null} [startAtValueInfo] GetContestedResourcesRequestV0 startAtValueInfo + * @property {number|null} [count] GetContestedResourcesRequestV0 count + * @property {boolean|null} [orderAscending] GetContestedResourcesRequestV0 orderAscending + * @property {boolean|null} [prove] GetContestedResourcesRequestV0 prove + */ + + /** + * Constructs a new GetContestedResourcesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @classdesc Represents a GetContestedResourcesRequestV0. + * @implements IGetContestedResourcesRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0=} [properties] Properties to set + */ + function GetContestedResourcesRequestV0(properties) { + this.startIndexValues = []; + this.endIndexValues = []; + 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]]; + } + + /** + * GetContestedResourcesRequestV0 contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.contractId = $util.newBuffer([]); + + /** + * GetContestedResourcesRequestV0 documentTypeName. + * @member {string} documentTypeName + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.documentTypeName = ""; + + /** + * GetContestedResourcesRequestV0 indexName. + * @member {string} indexName + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.indexName = ""; + + /** + * GetContestedResourcesRequestV0 startIndexValues. + * @member {Array.} startIndexValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.startIndexValues = $util.emptyArray; + + /** + * GetContestedResourcesRequestV0 endIndexValues. + * @member {Array.} endIndexValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.endIndexValues = $util.emptyArray; /** - * Properties of a GetProtocolVersionUpgradeStateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest - * @interface IGetProtocolVersionUpgradeStateRequestV0 - * @property {boolean|null} [prove] GetProtocolVersionUpgradeStateRequestV0 prove + * GetContestedResourcesRequestV0 startAtValueInfo. + * @member {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo|null|undefined} startAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance */ + GetContestedResourcesRequestV0.prototype.startAtValueInfo = null; /** - * Constructs a new GetProtocolVersionUpgradeStateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest - * @classdesc Represents a GetProtocolVersionUpgradeStateRequestV0. - * @implements IGetProtocolVersionUpgradeStateRequestV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0=} [properties] Properties to set + * GetContestedResourcesRequestV0 count. + * @member {number} count + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance */ - function GetProtocolVersionUpgradeStateRequestV0(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]]; - } + GetContestedResourcesRequestV0.prototype.count = 0; /** - * GetProtocolVersionUpgradeStateRequestV0 prove. + * GetContestedResourcesRequestV0 orderAscending. + * @member {boolean} orderAscending + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @instance + */ + GetContestedResourcesRequestV0.prototype.orderAscending = false; + + /** + * GetContestedResourcesRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @instance */ - GetProtocolVersionUpgradeStateRequestV0.prototype.prove = false; + GetContestedResourcesRequestV0.prototype.prove = false; /** - * Creates a new GetProtocolVersionUpgradeStateRequestV0 instance using the specified properties. + * Creates a new GetContestedResourcesRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 instance */ - GetProtocolVersionUpgradeStateRequestV0.create = function create(properties) { - return new GetProtocolVersionUpgradeStateRequestV0(properties); + GetContestedResourcesRequestV0.create = function create(properties) { + return new GetContestedResourcesRequestV0(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeStateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourcesRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateRequestV0.encode = function encode(message, writer) { + GetContestedResourcesRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); + if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); + if (message.startIndexValues != null && message.startIndexValues.length) + for (var i = 0; i < message.startIndexValues.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.startIndexValues[i]); + if (message.endIndexValues != null && message.endIndexValues.length) + for (var i = 0; i < message.endIndexValues.length; ++i) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.endIndexValues[i]); + if (message.startAtValueInfo != null && Object.hasOwnProperty.call(message, "startAtValueInfo")) + $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.encode(message.startAtValueInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.count != null && Object.hasOwnProperty.call(message, "count")) + writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.count); + if (message.orderAscending != null && Object.hasOwnProperty.call(message, "orderAscending")) + writer.uint32(/* id 8, wireType 0 =*/64).bool(message.orderAscending); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.prove); + writer.uint32(/* id 9, wireType 0 =*/72).bool(message.prove); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeStateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourcesRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.IGetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourcesRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeStateRequestV0 message from the specified reader or buffer. + * Decodes a GetContestedResourcesRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateRequestV0.decode = function decode(reader, length) { + GetContestedResourcesRequestV0.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: + message.contractId = reader.bytes(); + break; + case 2: + message.documentTypeName = reader.string(); + break; + case 3: + message.indexName = reader.string(); + break; + case 4: + if (!(message.startIndexValues && message.startIndexValues.length)) + message.startIndexValues = []; + message.startIndexValues.push(reader.bytes()); + break; + case 5: + if (!(message.endIndexValues && message.endIndexValues.length)) + message.endIndexValues = []; + message.endIndexValues.push(reader.bytes()); + break; + case 6: + message.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.decode(reader, reader.uint32()); + break; + case 7: + message.count = reader.uint32(); + break; + case 8: + message.orderAscending = reader.bool(); + break; + case 9: message.prove = reader.bool(); break; default: @@ -21976,32 +29683,66 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeStateRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourcesRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourcesRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeStateRequestV0 message. + * Verifies a GetContestedResourcesRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeStateRequestV0.verify = function verify(message) { + GetContestedResourcesRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + if (!$util.isString(message.documentTypeName)) + return "documentTypeName: string expected"; + if (message.indexName != null && message.hasOwnProperty("indexName")) + if (!$util.isString(message.indexName)) + return "indexName: string expected"; + if (message.startIndexValues != null && message.hasOwnProperty("startIndexValues")) { + if (!Array.isArray(message.startIndexValues)) + return "startIndexValues: array expected"; + for (var i = 0; i < message.startIndexValues.length; ++i) + if (!(message.startIndexValues[i] && typeof message.startIndexValues[i].length === "number" || $util.isString(message.startIndexValues[i]))) + return "startIndexValues: buffer[] expected"; + } + if (message.endIndexValues != null && message.hasOwnProperty("endIndexValues")) { + if (!Array.isArray(message.endIndexValues)) + return "endIndexValues: array expected"; + for (var i = 0; i < message.endIndexValues.length; ++i) + if (!(message.endIndexValues[i] && typeof message.endIndexValues[i].length === "number" || $util.isString(message.endIndexValues[i]))) + return "endIndexValues: buffer[] expected"; + } + if (message.startAtValueInfo != null && message.hasOwnProperty("startAtValueInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify(message.startAtValueInfo); + if (error) + return "startAtValueInfo." + error; + } + if (message.count != null && message.hasOwnProperty("count")) + if (!$util.isInteger(message.count)) + return "count: integer expected"; + if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) + if (typeof message.orderAscending !== "boolean") + return "orderAscending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -22009,77 +29750,373 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeStateRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourcesRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} GetProtocolVersionUpgradeStateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 */ - GetProtocolVersionUpgradeStateRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0) + GetContestedResourcesRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + if (object.documentTypeName != null) + message.documentTypeName = String(object.documentTypeName); + if (object.indexName != null) + message.indexName = String(object.indexName); + if (object.startIndexValues) { + if (!Array.isArray(object.startIndexValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.startIndexValues: array expected"); + message.startIndexValues = []; + for (var i = 0; i < object.startIndexValues.length; ++i) + if (typeof object.startIndexValues[i] === "string") + $util.base64.decode(object.startIndexValues[i], message.startIndexValues[i] = $util.newBuffer($util.base64.length(object.startIndexValues[i])), 0); + else if (object.startIndexValues[i].length >= 0) + message.startIndexValues[i] = object.startIndexValues[i]; + } + if (object.endIndexValues) { + if (!Array.isArray(object.endIndexValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.endIndexValues: array expected"); + message.endIndexValues = []; + for (var i = 0; i < object.endIndexValues.length; ++i) + if (typeof object.endIndexValues[i] === "string") + $util.base64.decode(object.endIndexValues[i], message.endIndexValues[i] = $util.newBuffer($util.base64.length(object.endIndexValues[i])), 0); + else if (object.endIndexValues[i].length >= 0) + message.endIndexValues[i] = object.endIndexValues[i]; + } + if (object.startAtValueInfo != null) { + if (typeof object.startAtValueInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.startAtValueInfo: object expected"); + message.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.fromObject(object.startAtValueInfo); + } + if (object.count != null) + message.count = object.count >>> 0; + if (object.orderAscending != null) + message.orderAscending = Boolean(object.orderAscending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeStateRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourcesRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message GetProtocolVersionUpgradeStateRequestV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeStateRequestV0.toObject = function toObject(message, options) { + GetContestedResourcesRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) + if (options.arrays || options.defaults) { + object.startIndexValues = []; + object.endIndexValues = []; + } + if (options.defaults) { + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + object.documentTypeName = ""; + object.indexName = ""; + object.startAtValueInfo = null; + object.count = 0; + object.orderAscending = false; object.prove = false; + } + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + object.documentTypeName = message.documentTypeName; + if (message.indexName != null && message.hasOwnProperty("indexName")) + object.indexName = message.indexName; + if (message.startIndexValues && message.startIndexValues.length) { + object.startIndexValues = []; + for (var j = 0; j < message.startIndexValues.length; ++j) + object.startIndexValues[j] = options.bytes === String ? $util.base64.encode(message.startIndexValues[j], 0, message.startIndexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.startIndexValues[j]) : message.startIndexValues[j]; + } + if (message.endIndexValues && message.endIndexValues.length) { + object.endIndexValues = []; + for (var j = 0; j < message.endIndexValues.length; ++j) + object.endIndexValues[j] = options.bytes === String ? $util.base64.encode(message.endIndexValues[j], 0, message.endIndexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.endIndexValues[j]) : message.endIndexValues[j]; + } + if (message.startAtValueInfo != null && message.hasOwnProperty("startAtValueInfo")) + object.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(message.startAtValueInfo, options); + if (message.count != null && message.hasOwnProperty("count")) + object.count = message.count; + if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) + object.orderAscending = message.orderAscending; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetProtocolVersionUpgradeStateRequestV0 to JSON. + * Converts this GetContestedResourcesRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeStateRequestV0.prototype.toJSON = function toJSON() { + GetContestedResourcesRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetProtocolVersionUpgradeStateRequestV0; + GetContestedResourcesRequestV0.StartAtValueInfo = (function() { + + /** + * Properties of a StartAtValueInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @interface IStartAtValueInfo + * @property {Uint8Array|null} [startValue] StartAtValueInfo startValue + * @property {boolean|null} [startValueIncluded] StartAtValueInfo startValueIncluded + */ + + /** + * Constructs a new StartAtValueInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @classdesc Represents a StartAtValueInfo. + * @implements IStartAtValueInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo=} [properties] Properties to set + */ + function StartAtValueInfo(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]]; + } + + /** + * StartAtValueInfo startValue. + * @member {Uint8Array} startValue + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @instance + */ + StartAtValueInfo.prototype.startValue = $util.newBuffer([]); + + /** + * StartAtValueInfo startValueIncluded. + * @member {boolean} startValueIncluded + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @instance + */ + StartAtValueInfo.prototype.startValueIncluded = false; + + /** + * Creates a new StartAtValueInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo instance + */ + StartAtValueInfo.create = function create(properties) { + return new StartAtValueInfo(properties); + }; + + /** + * Encodes the specified StartAtValueInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo} message StartAtValueInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtValueInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startValue != null && Object.hasOwnProperty.call(message, "startValue")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startValue); + if (message.startValueIncluded != null && Object.hasOwnProperty.call(message, "startValueIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startValueIncluded); + return writer; + }; + + /** + * Encodes the specified StartAtValueInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo} message StartAtValueInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtValueInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StartAtValueInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtValueInfo.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startValue = reader.bytes(); + break; + case 2: + message.startValueIncluded = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StartAtValueInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtValueInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StartAtValueInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StartAtValueInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startValue != null && message.hasOwnProperty("startValue")) + if (!(message.startValue && typeof message.startValue.length === "number" || $util.isString(message.startValue))) + return "startValue: buffer expected"; + if (message.startValueIncluded != null && message.hasOwnProperty("startValueIncluded")) + if (typeof message.startValueIncluded !== "boolean") + return "startValueIncluded: boolean expected"; + return null; + }; + + /** + * Creates a StartAtValueInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + */ + StartAtValueInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo(); + if (object.startValue != null) + if (typeof object.startValue === "string") + $util.base64.decode(object.startValue, message.startValue = $util.newBuffer($util.base64.length(object.startValue)), 0); + else if (object.startValue.length >= 0) + message.startValue = object.startValue; + if (object.startValueIncluded != null) + message.startValueIncluded = Boolean(object.startValueIncluded); + return message; + }; + + /** + * Creates a plain object from a StartAtValueInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message StartAtValueInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StartAtValueInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.startValue = ""; + else { + object.startValue = []; + if (options.bytes !== Array) + object.startValue = $util.newBuffer(object.startValue); + } + object.startValueIncluded = false; + } + if (message.startValue != null && message.hasOwnProperty("startValue")) + object.startValue = options.bytes === String ? $util.base64.encode(message.startValue, 0, message.startValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValue) : message.startValue; + if (message.startValueIncluded != null && message.hasOwnProperty("startValueIncluded")) + object.startValueIncluded = message.startValueIncluded; + return object; + }; + + /** + * Converts this StartAtValueInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @instance + * @returns {Object.} JSON object + */ + StartAtValueInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StartAtValueInfo; + })(); + + return GetContestedResourcesRequestV0; })(); - return GetProtocolVersionUpgradeStateRequest; + return GetContestedResourcesRequest; })(); - v0.GetProtocolVersionUpgradeStateResponse = (function() { + v0.GetContestedResourcesResponse = (function() { /** - * Properties of a GetProtocolVersionUpgradeStateResponse. + * Properties of a GetContestedResourcesResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetProtocolVersionUpgradeStateResponse - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0|null} [v0] GetProtocolVersionUpgradeStateResponse v0 + * @interface IGetContestedResourcesResponse + * @property {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0|null} [v0] GetContestedResourcesResponse v0 */ /** - * Constructs a new GetProtocolVersionUpgradeStateResponse. + * Constructs a new GetContestedResourcesResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProtocolVersionUpgradeStateResponse. - * @implements IGetProtocolVersionUpgradeStateResponse + * @classdesc Represents a GetContestedResourcesResponse. + * @implements IGetContestedResourcesResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse=} [properties] Properties to set */ - function GetProtocolVersionUpgradeStateResponse(properties) { + function GetContestedResourcesResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22087,89 +30124,89 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeStateResponse v0. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * GetContestedResourcesResponse v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @instance */ - GetProtocolVersionUpgradeStateResponse.prototype.v0 = null; + GetContestedResourcesResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeStateResponse version. + * GetContestedResourcesResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeStateResponse.prototype, "version", { + Object.defineProperty(GetContestedResourcesResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeStateResponse instance using the specified properties. + * Creates a new GetContestedResourcesResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse instance */ - GetProtocolVersionUpgradeStateResponse.create = function create(properties) { - return new GetProtocolVersionUpgradeStateResponse(properties); + GetContestedResourcesResponse.create = function create(properties) { + return new GetContestedResourcesResponse(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeStateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.verify|verify} messages. + * Encodes the specified GetContestedResourcesResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse} message GetContestedResourcesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateResponse.encode = function encode(message, writer) { + GetContestedResourcesResponse.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeStateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.verify|verify} messages. + * Encodes the specified GetContestedResourcesResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse} message GetContestedResourcesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourcesResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeStateResponse message from the specified reader or buffer. + * Decodes a GetContestedResourcesResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @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.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateResponse.decode = function decode(reader, length) { + GetContestedResourcesResponse.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.GetProtocolVersionUpgradeStateResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -22180,37 +30217,37 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeStateResponse message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourcesResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateResponse.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourcesResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeStateResponse message. + * Verifies a GetContestedResourcesResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeStateResponse.verify = function verify(message) { + GetContestedResourcesResponse.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -22219,40 +30256,40 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeStateResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourcesResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} GetProtocolVersionUpgradeStateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse */ - GetProtocolVersionUpgradeStateResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse) + GetContestedResourcesResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeStateResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourcesResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message GetProtocolVersionUpgradeStateResponse + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse} message GetContestedResourcesResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeStateResponse.toObject = function toObject(message, options) { + GetContestedResourcesResponse.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -22260,36 +30297,36 @@ $root.org = (function() { }; /** - * Converts this GetProtocolVersionUpgradeStateResponse to JSON. + * Converts this GetContestedResourcesResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeStateResponse.prototype.toJSON = function toJSON() { + GetContestedResourcesResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 = (function() { + GetContestedResourcesResponse.GetContestedResourcesResponseV0 = (function() { /** - * Properties of a GetProtocolVersionUpgradeStateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse - * @interface IGetProtocolVersionUpgradeStateResponseV0 - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions|null} [versions] GetProtocolVersionUpgradeStateResponseV0 versions - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProtocolVersionUpgradeStateResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProtocolVersionUpgradeStateResponseV0 metadata + * Properties of a GetContestedResourcesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @interface IGetContestedResourcesResponseV0 + * @property {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues|null} [contestedResourceValues] GetContestedResourcesResponseV0 contestedResourceValues + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourcesResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourcesResponseV0 metadata */ /** - * Constructs a new GetProtocolVersionUpgradeStateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse - * @classdesc Represents a GetProtocolVersionUpgradeStateResponseV0. - * @implements IGetProtocolVersionUpgradeStateResponseV0 + * Constructs a new GetContestedResourcesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @classdesc Represents a GetContestedResourcesResponseV0. + * @implements IGetContestedResourcesResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0=} [properties] Properties to set */ - function GetProtocolVersionUpgradeStateResponseV0(properties) { + function GetContestedResourcesResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22297,69 +30334,69 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeStateResponseV0 versions. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions|null|undefined} versions - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * GetContestedResourcesResponseV0 contestedResourceValues. + * @member {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues|null|undefined} contestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @instance */ - GetProtocolVersionUpgradeStateResponseV0.prototype.versions = null; + GetContestedResourcesResponseV0.prototype.contestedResourceValues = null; /** - * GetProtocolVersionUpgradeStateResponseV0 proof. + * GetContestedResourcesResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @instance */ - GetProtocolVersionUpgradeStateResponseV0.prototype.proof = null; + GetContestedResourcesResponseV0.prototype.proof = null; /** - * GetProtocolVersionUpgradeStateResponseV0 metadata. + * GetContestedResourcesResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @instance */ - GetProtocolVersionUpgradeStateResponseV0.prototype.metadata = null; + GetContestedResourcesResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeStateResponseV0 result. - * @member {"versions"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * GetContestedResourcesResponseV0 result. + * @member {"contestedResourceValues"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeStateResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["versions", "proof"]), + Object.defineProperty(GetContestedResourcesResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["contestedResourceValues", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeStateResponseV0 instance using the specified properties. + * Creates a new GetContestedResourcesResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 instance */ - GetProtocolVersionUpgradeStateResponseV0.create = function create(properties) { - return new GetProtocolVersionUpgradeStateResponseV0(properties); + GetContestedResourcesResponseV0.create = function create(properties) { + return new GetContestedResourcesResponseV0(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeStateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourcesResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateResponseV0.encode = function encode(message, writer) { + GetContestedResourcesResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.versions != null && Object.hasOwnProperty.call(message, "versions")) - $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.encode(message.versions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contestedResourceValues != null && Object.hasOwnProperty.call(message, "contestedResourceValues")) + $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.encode(message.contestedResourceValues, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -22368,38 +30405,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetProtocolVersionUpgradeStateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourcesResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.IGetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeStateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourcesResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeStateResponseV0 message from the specified reader or buffer. + * Decodes a GetContestedResourcesResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateResponseV0.decode = function decode(reader, length) { + GetContestedResourcesResponseV0.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.decode(reader, reader.uint32()); + message.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -22416,39 +30453,39 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeStateResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourcesResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeStateResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourcesResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeStateResponseV0 message. + * Verifies a GetContestedResourcesResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeStateResponseV0.verify = function verify(message) { + GetContestedResourcesResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.versions != null && message.hasOwnProperty("versions")) { + if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify(message.versions); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify(message.contestedResourceValues); if (error) - return "versions." + error; + return "contestedResourceValues." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -22470,303 +30507,95 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeStateResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourcesResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} GetProtocolVersionUpgradeStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 */ - GetProtocolVersionUpgradeStateResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0) + GetContestedResourcesResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0(); - if (object.versions != null) { - if (typeof object.versions !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.versions: object expected"); - message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.fromObject(object.versions); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0(); + if (object.contestedResourceValues != null) { + if (typeof object.contestedResourceValues !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.contestedResourceValues: object expected"); + message.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.fromObject(object.contestedResourceValues); } if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeStateResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourcesResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message GetProtocolVersionUpgradeStateResponseV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeStateResponseV0.toObject = function toObject(message, options) { + GetContestedResourcesResponseV0.toObject = function toObject(message, options) { if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.versions != null && message.hasOwnProperty("versions")) { - object.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(message.versions, options); - if (options.oneofs) - object.result = "versions"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; - - /** - * Converts this GetProtocolVersionUpgradeStateResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetProtocolVersionUpgradeStateResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetProtocolVersionUpgradeStateResponseV0.Versions = (function() { - - /** - * Properties of a Versions. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 - * @interface IVersions - * @property {Array.|null} [versions] Versions versions - */ - - /** - * Constructs a new Versions. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 - * @classdesc Represents a Versions. - * @implements IVersions - * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions=} [properties] Properties to set - */ - function Versions(properties) { - this.versions = []; - 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]]; - } - - /** - * Versions versions. - * @member {Array.} versions - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @instance - */ - Versions.prototype.versions = $util.emptyArray; - - /** - * Creates a new Versions instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions instance - */ - Versions.create = function create(properties) { - return new Versions(properties); - }; - - /** - * Encodes the specified Versions message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions} message Versions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Versions.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.versions != null && message.versions.length) - for (var i = 0; i < message.versions.length; ++i) - $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.encode(message.versions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified Versions message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersions} message Versions message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Versions.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a Versions message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Versions.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.versions && message.versions.length)) - message.versions = []; - message.versions.push($root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a Versions message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Versions.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a Versions message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Versions.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.versions != null && message.hasOwnProperty("versions")) { - if (!Array.isArray(message.versions)) - return "versions: array expected"; - for (var i = 0; i < message.versions.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify(message.versions[i]); - if (error) - return "versions." + error; - } - } - return null; - }; - - /** - * Creates a Versions message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} Versions - */ - Versions.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions(); - if (object.versions) { - if (!Array.isArray(object.versions)) - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions: array expected"); - message.versions = []; - for (var i = 0; i < object.versions.length; ++i) { - if (typeof object.versions[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions: object expected"); - message.versions[i] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.fromObject(object.versions[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a Versions message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message Versions - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Versions.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.versions = []; - if (message.versions && message.versions.length) { - object.versions = []; - for (var j = 0; j < message.versions.length; ++j) - object.versions[j] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(message.versions[j], options); - } - return object; - }; - - /** - * Converts this Versions to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions - * @instance - * @returns {Object.} JSON object - */ - Versions.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { + object.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(message.contestedResourceValues, options); + if (options.oneofs) + object.result = "contestedResourceValues"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; - return Versions; - })(); + /** + * Converts this GetContestedResourcesResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetContestedResourcesResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - GetProtocolVersionUpgradeStateResponseV0.VersionEntry = (function() { + GetContestedResourcesResponseV0.ContestedResourceValues = (function() { /** - * Properties of a VersionEntry. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 - * @interface IVersionEntry - * @property {number|null} [versionNumber] VersionEntry versionNumber - * @property {number|null} [voteCount] VersionEntry voteCount + * Properties of a ContestedResourceValues. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @interface IContestedResourceValues + * @property {Array.|null} [contestedResourceValues] ContestedResourceValues contestedResourceValues */ /** - * Constructs a new VersionEntry. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 - * @classdesc Represents a VersionEntry. - * @implements IVersionEntry + * Constructs a new ContestedResourceValues. + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @classdesc Represents a ContestedResourceValues. + * @implements IContestedResourceValues * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues=} [properties] Properties to set */ - function VersionEntry(properties) { + function ContestedResourceValues(properties) { + this.contestedResourceValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22774,88 +30603,78 @@ $root.org = (function() { } /** - * VersionEntry versionNumber. - * @member {number} versionNumber - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry - * @instance - */ - VersionEntry.prototype.versionNumber = 0; - - /** - * VersionEntry voteCount. - * @member {number} voteCount - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * ContestedResourceValues contestedResourceValues. + * @member {Array.} contestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @instance */ - VersionEntry.prototype.voteCount = 0; + ContestedResourceValues.prototype.contestedResourceValues = $util.emptyArray; /** - * Creates a new VersionEntry instance using the specified properties. + * Creates a new ContestedResourceValues instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry instance + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues instance */ - VersionEntry.create = function create(properties) { - return new VersionEntry(properties); + ContestedResourceValues.create = function create(properties) { + return new ContestedResourceValues(properties); }; /** - * Encodes the specified VersionEntry message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify|verify} messages. + * Encodes the specified ContestedResourceValues message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry} message VersionEntry message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues} message ContestedResourceValues message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionEntry.encode = function encode(message, writer) { + ContestedResourceValues.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.versionNumber != null && Object.hasOwnProperty.call(message, "versionNumber")) - writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.versionNumber); - if (message.voteCount != null && Object.hasOwnProperty.call(message, "voteCount")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.voteCount); + if (message.contestedResourceValues != null && message.contestedResourceValues.length) + for (var i = 0; i < message.contestedResourceValues.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contestedResourceValues[i]); return writer; }; /** - * Encodes the specified VersionEntry message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.verify|verify} messages. + * Encodes the specified ContestedResourceValues message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.IVersionEntry} message VersionEntry message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues} message ContestedResourceValues message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionEntry.encodeDelimited = function encodeDelimited(message, writer) { + ContestedResourceValues.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a VersionEntry message from the specified reader or buffer. + * Decodes a ContestedResourceValues message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionEntry.decode = function decode(reader, length) { + ContestedResourceValues.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.versionNumber = reader.uint32(); - break; - case 2: - message.voteCount = reader.uint32(); + if (!(message.contestedResourceValues && message.contestedResourceValues.length)) + message.contestedResourceValues = []; + message.contestedResourceValues.push(reader.bytes()); break; default: reader.skipType(tag & 7); @@ -22866,122 +30685,128 @@ $root.org = (function() { }; /** - * Decodes a VersionEntry message from the specified reader or buffer, length delimited. + * Decodes a ContestedResourceValues message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionEntry.decodeDelimited = function decodeDelimited(reader) { + ContestedResourceValues.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a VersionEntry message. + * Verifies a ContestedResourceValues message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VersionEntry.verify = function verify(message) { + ContestedResourceValues.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.versionNumber != null && message.hasOwnProperty("versionNumber")) - if (!$util.isInteger(message.versionNumber)) - return "versionNumber: integer expected"; - if (message.voteCount != null && message.hasOwnProperty("voteCount")) - if (!$util.isInteger(message.voteCount)) - return "voteCount: integer expected"; + if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { + if (!Array.isArray(message.contestedResourceValues)) + return "contestedResourceValues: array expected"; + for (var i = 0; i < message.contestedResourceValues.length; ++i) + if (!(message.contestedResourceValues[i] && typeof message.contestedResourceValues[i].length === "number" || $util.isString(message.contestedResourceValues[i]))) + return "contestedResourceValues: buffer[] expected"; + } return null; }; /** - * Creates a VersionEntry message from a plain object. Also converts values to their respective internal types. + * Creates a ContestedResourceValues message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} VersionEntry + * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues */ - VersionEntry.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry) + ContestedResourceValues.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry(); - if (object.versionNumber != null) - message.versionNumber = object.versionNumber >>> 0; - if (object.voteCount != null) - message.voteCount = object.voteCount >>> 0; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues(); + if (object.contestedResourceValues) { + if (!Array.isArray(object.contestedResourceValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.contestedResourceValues: array expected"); + message.contestedResourceValues = []; + for (var i = 0; i < object.contestedResourceValues.length; ++i) + if (typeof object.contestedResourceValues[i] === "string") + $util.base64.decode(object.contestedResourceValues[i], message.contestedResourceValues[i] = $util.newBuffer($util.base64.length(object.contestedResourceValues[i])), 0); + else if (object.contestedResourceValues[i].length >= 0) + message.contestedResourceValues[i] = object.contestedResourceValues[i]; + } return message; }; /** - * Creates a plain object from a VersionEntry message. Also converts values to other types if specified. + * Creates a plain object from a ContestedResourceValues message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message VersionEntry + * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message ContestedResourceValues * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - VersionEntry.toObject = function toObject(message, options) { + ContestedResourceValues.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - object.versionNumber = 0; - object.voteCount = 0; + if (options.arrays || options.defaults) + object.contestedResourceValues = []; + if (message.contestedResourceValues && message.contestedResourceValues.length) { + object.contestedResourceValues = []; + for (var j = 0; j < message.contestedResourceValues.length; ++j) + object.contestedResourceValues[j] = options.bytes === String ? $util.base64.encode(message.contestedResourceValues[j], 0, message.contestedResourceValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.contestedResourceValues[j]) : message.contestedResourceValues[j]; } - if (message.versionNumber != null && message.hasOwnProperty("versionNumber")) - object.versionNumber = message.versionNumber; - if (message.voteCount != null && message.hasOwnProperty("voteCount")) - object.voteCount = message.voteCount; return object; }; /** - * Converts this VersionEntry to JSON. + * Converts this ContestedResourceValues to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry + * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues * @instance * @returns {Object.} JSON object */ - VersionEntry.prototype.toJSON = function toJSON() { + ContestedResourceValues.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return VersionEntry; + return ContestedResourceValues; })(); - return GetProtocolVersionUpgradeStateResponseV0; + return GetContestedResourcesResponseV0; })(); - return GetProtocolVersionUpgradeStateResponse; + return GetContestedResourcesResponse; })(); - v0.GetProtocolVersionUpgradeVoteStatusRequest = (function() { + v0.GetVotePollsByEndDateRequest = (function() { /** - * Properties of a GetProtocolVersionUpgradeVoteStatusRequest. + * Properties of a GetVotePollsByEndDateRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetProtocolVersionUpgradeVoteStatusRequest - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0|null} [v0] GetProtocolVersionUpgradeVoteStatusRequest v0 + * @interface IGetVotePollsByEndDateRequest + * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0|null} [v0] GetVotePollsByEndDateRequest v0 */ /** - * Constructs a new GetProtocolVersionUpgradeVoteStatusRequest. + * Constructs a new GetVotePollsByEndDateRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusRequest. - * @implements IGetProtocolVersionUpgradeVoteStatusRequest + * @classdesc Represents a GetVotePollsByEndDateRequest. + * @implements IGetVotePollsByEndDateRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest=} [properties] Properties to set */ - function GetProtocolVersionUpgradeVoteStatusRequest(properties) { + function GetVotePollsByEndDateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22989,89 +30814,89 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeVoteStatusRequest v0. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * GetVotePollsByEndDateRequest v0. + * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @instance */ - GetProtocolVersionUpgradeVoteStatusRequest.prototype.v0 = null; + GetVotePollsByEndDateRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeVoteStatusRequest version. + * GetVotePollsByEndDateRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeVoteStatusRequest.prototype, "version", { + Object.defineProperty(GetVotePollsByEndDateRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeVoteStatusRequest instance using the specified properties. + * Creates a new GetVotePollsByEndDateRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest instance + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest instance */ - GetProtocolVersionUpgradeVoteStatusRequest.create = function create(properties) { - return new GetProtocolVersionUpgradeVoteStatusRequest(properties); + GetVotePollsByEndDateRequest.create = function create(properties) { + return new GetVotePollsByEndDateRequest(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusRequest.encode = function encode(message, writer) { + GetVotePollsByEndDateRequest.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetVotePollsByEndDateRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusRequest message from the specified reader or buffer. + * Decodes a GetVotePollsByEndDateRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @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.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusRequest.decode = function decode(reader, length) { + GetVotePollsByEndDateRequest.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.GetProtocolVersionUpgradeVoteStatusRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -23082,37 +30907,37 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusRequest message from the specified reader or buffer, length delimited. + * Decodes a GetVotePollsByEndDateRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusRequest.decodeDelimited = function decodeDelimited(reader) { + GetVotePollsByEndDateRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeVoteStatusRequest message. + * Verifies a GetVotePollsByEndDateRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeVoteStatusRequest.verify = function verify(message) { + GetVotePollsByEndDateRequest.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -23121,40 +30946,40 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeVoteStatusRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetVotePollsByEndDateRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} GetProtocolVersionUpgradeVoteStatusRequest + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest */ - GetProtocolVersionUpgradeVoteStatusRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest) + GetVotePollsByEndDateRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetVotePollsByEndDateRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message GetProtocolVersionUpgradeVoteStatusRequest + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeVoteStatusRequest.toObject = function toObject(message, options) { + GetVotePollsByEndDateRequest.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -23162,36 +30987,39 @@ $root.org = (function() { }; /** - * Converts this GetProtocolVersionUpgradeVoteStatusRequest to JSON. + * Converts this GetVotePollsByEndDateRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeVoteStatusRequest.prototype.toJSON = function toJSON() { + GetVotePollsByEndDateRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 = (function() { + GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 = (function() { /** - * Properties of a GetProtocolVersionUpgradeVoteStatusRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest - * @interface IGetProtocolVersionUpgradeVoteStatusRequestV0 - * @property {Uint8Array|null} [startProTxHash] GetProtocolVersionUpgradeVoteStatusRequestV0 startProTxHash - * @property {number|null} [count] GetProtocolVersionUpgradeVoteStatusRequestV0 count - * @property {boolean|null} [prove] GetProtocolVersionUpgradeVoteStatusRequestV0 prove + * Properties of a GetVotePollsByEndDateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @interface IGetVotePollsByEndDateRequestV0 + * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo|null} [startTimeInfo] GetVotePollsByEndDateRequestV0 startTimeInfo + * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo|null} [endTimeInfo] GetVotePollsByEndDateRequestV0 endTimeInfo + * @property {number|null} [limit] GetVotePollsByEndDateRequestV0 limit + * @property {number|null} [offset] GetVotePollsByEndDateRequestV0 offset + * @property {boolean|null} [ascending] GetVotePollsByEndDateRequestV0 ascending + * @property {boolean|null} [prove] GetVotePollsByEndDateRequestV0 prove */ /** - * Constructs a new GetProtocolVersionUpgradeVoteStatusRequestV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest - * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusRequestV0. - * @implements IGetProtocolVersionUpgradeVoteStatusRequestV0 + * Constructs a new GetVotePollsByEndDateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @classdesc Represents a GetVotePollsByEndDateRequestV0. + * @implements IGetVotePollsByEndDateRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0=} [properties] Properties to set */ - function GetProtocolVersionUpgradeVoteStatusRequestV0(properties) { + function GetVotePollsByEndDateRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23199,100 +31027,139 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeVoteStatusRequestV0 startProTxHash. - * @member {Uint8Array} startProTxHash - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * GetVotePollsByEndDateRequestV0 startTimeInfo. + * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo|null|undefined} startTimeInfo + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.startProTxHash = $util.newBuffer([]); + GetVotePollsByEndDateRequestV0.prototype.startTimeInfo = null; /** - * GetProtocolVersionUpgradeVoteStatusRequestV0 count. - * @member {number} count - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * GetVotePollsByEndDateRequestV0 endTimeInfo. + * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo|null|undefined} endTimeInfo + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.count = 0; + GetVotePollsByEndDateRequestV0.prototype.endTimeInfo = null; /** - * GetProtocolVersionUpgradeVoteStatusRequestV0 prove. + * GetVotePollsByEndDateRequestV0 limit. + * @member {number} limit + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @instance + */ + GetVotePollsByEndDateRequestV0.prototype.limit = 0; + + /** + * GetVotePollsByEndDateRequestV0 offset. + * @member {number} offset + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @instance + */ + GetVotePollsByEndDateRequestV0.prototype.offset = 0; + + /** + * GetVotePollsByEndDateRequestV0 ascending. + * @member {boolean} ascending + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @instance + */ + GetVotePollsByEndDateRequestV0.prototype.ascending = false; + + /** + * GetVotePollsByEndDateRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.prove = false; + GetVotePollsByEndDateRequestV0.prototype.prove = false; /** - * Creates a new GetProtocolVersionUpgradeVoteStatusRequestV0 instance using the specified properties. + * Creates a new GetVotePollsByEndDateRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 instance */ - GetProtocolVersionUpgradeVoteStatusRequestV0.create = function create(properties) { - return new GetProtocolVersionUpgradeVoteStatusRequestV0(properties); + GetVotePollsByEndDateRequestV0.create = function create(properties) { + return new GetVotePollsByEndDateRequestV0(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusRequestV0.encode = function encode(message, writer) { + GetVotePollsByEndDateRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startProTxHash != null && Object.hasOwnProperty.call(message, "startProTxHash")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startProTxHash); - if (message.count != null && Object.hasOwnProperty.call(message, "count")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.count); + if (message.startTimeInfo != null && Object.hasOwnProperty.call(message, "startTimeInfo")) + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.encode(message.startTimeInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.endTimeInfo != null && Object.hasOwnProperty.call(message, "endTimeInfo")) + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.encode(message.endTimeInfo, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.limit); + if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) + writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.offset); + if (message.ascending != null && Object.hasOwnProperty.call(message, "ascending")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.ascending); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.prove); + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.prove); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.IGetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetVotePollsByEndDateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusRequestV0 message from the specified reader or buffer. + * Decodes a GetVotePollsByEndDateRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusRequestV0.decode = function decode(reader, length) { + GetVotePollsByEndDateRequestV0.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startProTxHash = reader.bytes(); + message.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.decode(reader, reader.uint32()); break; case 2: - message.count = reader.uint32(); + message.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.decode(reader, reader.uint32()); break; case 3: + message.limit = reader.uint32(); + break; + case 4: + message.offset = reader.uint32(); + break; + case 5: + message.ascending = reader.bool(); + break; + case 6: message.prove = reader.bool(); break; default: @@ -23304,38 +31171,51 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetVotePollsByEndDateRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetVotePollsByEndDateRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeVoteStatusRequestV0 message. + * Verifies a GetVotePollsByEndDateRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeVoteStatusRequestV0.verify = function verify(message) { + GetVotePollsByEndDateRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startProTxHash != null && message.hasOwnProperty("startProTxHash")) - if (!(message.startProTxHash && typeof message.startProTxHash.length === "number" || $util.isString(message.startProTxHash))) - return "startProTxHash: buffer expected"; - if (message.count != null && message.hasOwnProperty("count")) - if (!$util.isInteger(message.count)) - return "count: integer expected"; + if (message.startTimeInfo != null && message.hasOwnProperty("startTimeInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify(message.startTimeInfo); + if (error) + return "startTimeInfo." + error; + } + if (message.endTimeInfo != null && message.hasOwnProperty("endTimeInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify(message.endTimeInfo); + if (error) + return "endTimeInfo." + error; + } + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit)) + return "limit: integer expected"; + if (message.offset != null && message.hasOwnProperty("offset")) + if (!$util.isInteger(message.offset)) + return "offset: integer expected"; + if (message.ascending != null && message.hasOwnProperty("ascending")) + if (typeof message.ascending !== "boolean") + return "ascending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -23343,97 +31223,557 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeVoteStatusRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetVotePollsByEndDateRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} GetProtocolVersionUpgradeVoteStatusRequestV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 */ - GetProtocolVersionUpgradeVoteStatusRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0) + GetVotePollsByEndDateRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0(); - if (object.startProTxHash != null) - if (typeof object.startProTxHash === "string") - $util.base64.decode(object.startProTxHash, message.startProTxHash = $util.newBuffer($util.base64.length(object.startProTxHash)), 0); - else if (object.startProTxHash.length >= 0) - message.startProTxHash = object.startProTxHash; - if (object.count != null) - message.count = object.count >>> 0; + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0(); + if (object.startTimeInfo != null) { + if (typeof object.startTimeInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.startTimeInfo: object expected"); + message.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.fromObject(object.startTimeInfo); + } + if (object.endTimeInfo != null) { + if (typeof object.endTimeInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.endTimeInfo: object expected"); + message.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.fromObject(object.endTimeInfo); + } + if (object.limit != null) + message.limit = object.limit >>> 0; + if (object.offset != null) + message.offset = object.offset >>> 0; + if (object.ascending != null) + message.ascending = Boolean(object.ascending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetVotePollsByEndDateRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message GetProtocolVersionUpgradeVoteStatusRequestV0 + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function toObject(message, options) { + GetVotePollsByEndDateRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - if (options.bytes === String) - object.startProTxHash = ""; - else { - object.startProTxHash = []; - if (options.bytes !== Array) - object.startProTxHash = $util.newBuffer(object.startProTxHash); - } - object.count = 0; + object.startTimeInfo = null; + object.endTimeInfo = null; + object.limit = 0; + object.offset = 0; + object.ascending = false; object.prove = false; } - if (message.startProTxHash != null && message.hasOwnProperty("startProTxHash")) - object.startProTxHash = options.bytes === String ? $util.base64.encode(message.startProTxHash, 0, message.startProTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.startProTxHash) : message.startProTxHash; - if (message.count != null && message.hasOwnProperty("count")) - object.count = message.count; + if (message.startTimeInfo != null && message.hasOwnProperty("startTimeInfo")) + object.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(message.startTimeInfo, options); + if (message.endTimeInfo != null && message.hasOwnProperty("endTimeInfo")) + object.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(message.endTimeInfo, options); + if (message.limit != null && message.hasOwnProperty("limit")) + object.limit = message.limit; + if (message.offset != null && message.hasOwnProperty("offset")) + object.offset = message.offset; + if (message.ascending != null && message.hasOwnProperty("ascending")) + object.ascending = message.ascending; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; - /** - * Converts this GetProtocolVersionUpgradeVoteStatusRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this GetVotePollsByEndDateRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetVotePollsByEndDateRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetVotePollsByEndDateRequestV0.StartAtTimeInfo = (function() { + + /** + * Properties of a StartAtTimeInfo. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @interface IStartAtTimeInfo + * @property {number|Long|null} [startTimeMs] StartAtTimeInfo startTimeMs + * @property {boolean|null} [startTimeIncluded] StartAtTimeInfo startTimeIncluded + */ + + /** + * Constructs a new StartAtTimeInfo. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @classdesc Represents a StartAtTimeInfo. + * @implements IStartAtTimeInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo=} [properties] Properties to set + */ + function StartAtTimeInfo(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]]; + } + + /** + * StartAtTimeInfo startTimeMs. + * @member {number|Long} startTimeMs + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @instance + */ + StartAtTimeInfo.prototype.startTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * StartAtTimeInfo startTimeIncluded. + * @member {boolean} startTimeIncluded + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @instance + */ + StartAtTimeInfo.prototype.startTimeIncluded = false; + + /** + * Creates a new StartAtTimeInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo instance + */ + StartAtTimeInfo.create = function create(properties) { + return new StartAtTimeInfo(properties); + }; + + /** + * Encodes the specified StartAtTimeInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo} message StartAtTimeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtTimeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTimeMs != null && Object.hasOwnProperty.call(message, "startTimeMs")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.startTimeMs); + if (message.startTimeIncluded != null && Object.hasOwnProperty.call(message, "startTimeIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startTimeIncluded); + return writer; + }; + + /** + * Encodes the specified StartAtTimeInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo} message StartAtTimeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtTimeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StartAtTimeInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startTimeMs = reader.uint64(); + break; + case 2: + message.startTimeIncluded = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StartAtTimeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtTimeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StartAtTimeInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StartAtTimeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startTimeMs != null && message.hasOwnProperty("startTimeMs")) + if (!$util.isInteger(message.startTimeMs) && !(message.startTimeMs && $util.isInteger(message.startTimeMs.low) && $util.isInteger(message.startTimeMs.high))) + return "startTimeMs: integer|Long expected"; + if (message.startTimeIncluded != null && message.hasOwnProperty("startTimeIncluded")) + if (typeof message.startTimeIncluded !== "boolean") + return "startTimeIncluded: boolean expected"; + return null; + }; + + /** + * Creates a StartAtTimeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo + */ + StartAtTimeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo(); + if (object.startTimeMs != null) + if ($util.Long) + (message.startTimeMs = $util.Long.fromValue(object.startTimeMs)).unsigned = true; + else if (typeof object.startTimeMs === "string") + message.startTimeMs = parseInt(object.startTimeMs, 10); + else if (typeof object.startTimeMs === "number") + message.startTimeMs = object.startTimeMs; + else if (typeof object.startTimeMs === "object") + message.startTimeMs = new $util.LongBits(object.startTimeMs.low >>> 0, object.startTimeMs.high >>> 0).toNumber(true); + if (object.startTimeIncluded != null) + message.startTimeIncluded = Boolean(object.startTimeIncluded); + return message; + }; + + /** + * Creates a plain object from a StartAtTimeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message StartAtTimeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StartAtTimeInfo.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.startTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.startTimeMs = options.longs === String ? "0" : 0; + object.startTimeIncluded = false; + } + if (message.startTimeMs != null && message.hasOwnProperty("startTimeMs")) + if (typeof message.startTimeMs === "number") + object.startTimeMs = options.longs === String ? String(message.startTimeMs) : message.startTimeMs; + else + object.startTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.startTimeMs) : options.longs === Number ? new $util.LongBits(message.startTimeMs.low >>> 0, message.startTimeMs.high >>> 0).toNumber(true) : message.startTimeMs; + if (message.startTimeIncluded != null && message.hasOwnProperty("startTimeIncluded")) + object.startTimeIncluded = message.startTimeIncluded; + return object; + }; + + /** + * Converts this StartAtTimeInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo + * @instance + * @returns {Object.} JSON object + */ + StartAtTimeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StartAtTimeInfo; + })(); + + GetVotePollsByEndDateRequestV0.EndAtTimeInfo = (function() { + + /** + * Properties of an EndAtTimeInfo. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @interface IEndAtTimeInfo + * @property {number|Long|null} [endTimeMs] EndAtTimeInfo endTimeMs + * @property {boolean|null} [endTimeIncluded] EndAtTimeInfo endTimeIncluded + */ + + /** + * Constructs a new EndAtTimeInfo. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @classdesc Represents an EndAtTimeInfo. + * @implements IEndAtTimeInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo=} [properties] Properties to set + */ + function EndAtTimeInfo(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]]; + } + + /** + * EndAtTimeInfo endTimeMs. + * @member {number|Long} endTimeMs + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @instance + */ + EndAtTimeInfo.prototype.endTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * EndAtTimeInfo endTimeIncluded. + * @member {boolean} endTimeIncluded + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @instance + */ + EndAtTimeInfo.prototype.endTimeIncluded = false; + + /** + * Creates a new EndAtTimeInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo instance + */ + EndAtTimeInfo.create = function create(properties) { + return new EndAtTimeInfo(properties); + }; + + /** + * Encodes the specified EndAtTimeInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo} message EndAtTimeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EndAtTimeInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.endTimeMs != null && Object.hasOwnProperty.call(message, "endTimeMs")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.endTimeMs); + if (message.endTimeIncluded != null && Object.hasOwnProperty.call(message, "endTimeIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.endTimeIncluded); + return writer; + }; + + /** + * Encodes the specified EndAtTimeInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo} message EndAtTimeInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EndAtTimeInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EndAtTimeInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EndAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.endTimeMs = reader.uint64(); + break; + case 2: + message.endTimeIncluded = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EndAtTimeInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EndAtTimeInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EndAtTimeInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EndAtTimeInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.endTimeMs != null && message.hasOwnProperty("endTimeMs")) + if (!$util.isInteger(message.endTimeMs) && !(message.endTimeMs && $util.isInteger(message.endTimeMs.low) && $util.isInteger(message.endTimeMs.high))) + return "endTimeMs: integer|Long expected"; + if (message.endTimeIncluded != null && message.hasOwnProperty("endTimeIncluded")) + if (typeof message.endTimeIncluded !== "boolean") + return "endTimeIncluded: boolean expected"; + return null; + }; + + /** + * Creates an EndAtTimeInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + */ + EndAtTimeInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo(); + if (object.endTimeMs != null) + if ($util.Long) + (message.endTimeMs = $util.Long.fromValue(object.endTimeMs)).unsigned = true; + else if (typeof object.endTimeMs === "string") + message.endTimeMs = parseInt(object.endTimeMs, 10); + else if (typeof object.endTimeMs === "number") + message.endTimeMs = object.endTimeMs; + else if (typeof object.endTimeMs === "object") + message.endTimeMs = new $util.LongBits(object.endTimeMs.low >>> 0, object.endTimeMs.high >>> 0).toNumber(true); + if (object.endTimeIncluded != null) + message.endTimeIncluded = Boolean(object.endTimeIncluded); + return message; + }; + + /** + * Creates a plain object from an EndAtTimeInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @static + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message EndAtTimeInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EndAtTimeInfo.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.endTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.endTimeMs = options.longs === String ? "0" : 0; + object.endTimeIncluded = false; + } + if (message.endTimeMs != null && message.hasOwnProperty("endTimeMs")) + if (typeof message.endTimeMs === "number") + object.endTimeMs = options.longs === String ? String(message.endTimeMs) : message.endTimeMs; + else + object.endTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.endTimeMs) : options.longs === Number ? new $util.LongBits(message.endTimeMs.low >>> 0, message.endTimeMs.high >>> 0).toNumber(true) : message.endTimeMs; + if (message.endTimeIncluded != null && message.hasOwnProperty("endTimeIncluded")) + object.endTimeIncluded = message.endTimeIncluded; + return object; + }; + + /** + * Converts this EndAtTimeInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @instance + * @returns {Object.} JSON object + */ + EndAtTimeInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetProtocolVersionUpgradeVoteStatusRequestV0; + return EndAtTimeInfo; + })(); + + return GetVotePollsByEndDateRequestV0; })(); - return GetProtocolVersionUpgradeVoteStatusRequest; + return GetVotePollsByEndDateRequest; })(); - v0.GetProtocolVersionUpgradeVoteStatusResponse = (function() { + v0.GetVotePollsByEndDateResponse = (function() { /** - * Properties of a GetProtocolVersionUpgradeVoteStatusResponse. + * Properties of a GetVotePollsByEndDateResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetProtocolVersionUpgradeVoteStatusResponse - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0|null} [v0] GetProtocolVersionUpgradeVoteStatusResponse v0 + * @interface IGetVotePollsByEndDateResponse + * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0|null} [v0] GetVotePollsByEndDateResponse v0 */ /** - * Constructs a new GetProtocolVersionUpgradeVoteStatusResponse. + * Constructs a new GetVotePollsByEndDateResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusResponse. - * @implements IGetProtocolVersionUpgradeVoteStatusResponse + * @classdesc Represents a GetVotePollsByEndDateResponse. + * @implements IGetVotePollsByEndDateResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse=} [properties] Properties to set */ - function GetProtocolVersionUpgradeVoteStatusResponse(properties) { + function GetVotePollsByEndDateResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23441,89 +31781,89 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeVoteStatusResponse v0. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * GetVotePollsByEndDateResponse v0. + * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @instance */ - GetProtocolVersionUpgradeVoteStatusResponse.prototype.v0 = null; + GetVotePollsByEndDateResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeVoteStatusResponse version. + * GetVotePollsByEndDateResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeVoteStatusResponse.prototype, "version", { + Object.defineProperty(GetVotePollsByEndDateResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeVoteStatusResponse instance using the specified properties. + * Creates a new GetVotePollsByEndDateResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse instance + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse instance */ - GetProtocolVersionUpgradeVoteStatusResponse.create = function create(properties) { - return new GetProtocolVersionUpgradeVoteStatusResponse(properties); + GetVotePollsByEndDateResponse.create = function create(properties) { + return new GetVotePollsByEndDateResponse(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusResponse.encode = function encode(message, writer) { + GetVotePollsByEndDateResponse.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetVotePollsByEndDateResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusResponse message from the specified reader or buffer. + * Decodes a GetVotePollsByEndDateResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @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.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusResponse.decode = function decode(reader, length) { + GetVotePollsByEndDateResponse.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.GetProtocolVersionUpgradeVoteStatusResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -23534,37 +31874,37 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusResponse message from the specified reader or buffer, length delimited. + * Decodes a GetVotePollsByEndDateResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusResponse.decodeDelimited = function decodeDelimited(reader) { + GetVotePollsByEndDateResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeVoteStatusResponse message. + * Verifies a GetVotePollsByEndDateResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeVoteStatusResponse.verify = function verify(message) { + GetVotePollsByEndDateResponse.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -23573,40 +31913,40 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeVoteStatusResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetVotePollsByEndDateResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} GetProtocolVersionUpgradeVoteStatusResponse + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse */ - GetProtocolVersionUpgradeVoteStatusResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse) + GetVotePollsByEndDateResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetVotePollsByEndDateResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message GetProtocolVersionUpgradeVoteStatusResponse + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeVoteStatusResponse.toObject = function toObject(message, options) { + GetVotePollsByEndDateResponse.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -23614,36 +31954,36 @@ $root.org = (function() { }; /** - * Converts this GetProtocolVersionUpgradeVoteStatusResponse to JSON. + * Converts this GetVotePollsByEndDateResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeVoteStatusResponse.prototype.toJSON = function toJSON() { + GetVotePollsByEndDateResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 = (function() { + GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 = (function() { /** - * Properties of a GetProtocolVersionUpgradeVoteStatusResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse - * @interface IGetProtocolVersionUpgradeVoteStatusResponseV0 - * @property {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals|null} [versions] GetProtocolVersionUpgradeVoteStatusResponseV0 versions - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetProtocolVersionUpgradeVoteStatusResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetProtocolVersionUpgradeVoteStatusResponseV0 metadata + * Properties of a GetVotePollsByEndDateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @interface IGetVotePollsByEndDateResponseV0 + * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps|null} [votePollsByTimestamps] GetVotePollsByEndDateResponseV0 votePollsByTimestamps + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetVotePollsByEndDateResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetVotePollsByEndDateResponseV0 metadata */ /** - * Constructs a new GetProtocolVersionUpgradeVoteStatusResponseV0. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse - * @classdesc Represents a GetProtocolVersionUpgradeVoteStatusResponseV0. - * @implements IGetProtocolVersionUpgradeVoteStatusResponseV0 + * Constructs a new GetVotePollsByEndDateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @classdesc Represents a GetVotePollsByEndDateResponseV0. + * @implements IGetVotePollsByEndDateResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0=} [properties] Properties to set */ - function GetProtocolVersionUpgradeVoteStatusResponseV0(properties) { + function GetVotePollsByEndDateResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23651,69 +31991,69 @@ $root.org = (function() { } /** - * GetProtocolVersionUpgradeVoteStatusResponseV0 versions. - * @member {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals|null|undefined} versions - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * GetVotePollsByEndDateResponseV0 votePollsByTimestamps. + * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps|null|undefined} votePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.versions = null; + GetVotePollsByEndDateResponseV0.prototype.votePollsByTimestamps = null; /** - * GetProtocolVersionUpgradeVoteStatusResponseV0 proof. + * GetVotePollsByEndDateResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.proof = null; + GetVotePollsByEndDateResponseV0.prototype.proof = null; /** - * GetProtocolVersionUpgradeVoteStatusResponseV0 metadata. + * GetVotePollsByEndDateResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @instance */ - GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.metadata = null; + GetVotePollsByEndDateResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetProtocolVersionUpgradeVoteStatusResponseV0 result. - * @member {"versions"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * GetVotePollsByEndDateResponseV0 result. + * @member {"votePollsByTimestamps"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @instance */ - Object.defineProperty(GetProtocolVersionUpgradeVoteStatusResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["versions", "proof"]), + Object.defineProperty(GetVotePollsByEndDateResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["votePollsByTimestamps", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetProtocolVersionUpgradeVoteStatusResponseV0 instance using the specified properties. + * Creates a new GetVotePollsByEndDateResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 instance */ - GetProtocolVersionUpgradeVoteStatusResponseV0.create = function create(properties) { - return new GetProtocolVersionUpgradeVoteStatusResponseV0(properties); + GetVotePollsByEndDateResponseV0.create = function create(properties) { + return new GetVotePollsByEndDateResponseV0(properties); }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusResponseV0.encode = function encode(message, writer) { + GetVotePollsByEndDateResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.versions != null && Object.hasOwnProperty.call(message, "versions")) - $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.encode(message.versions, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.votePollsByTimestamps != null && Object.hasOwnProperty.call(message, "votePollsByTimestamps")) + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.encode(message.votePollsByTimestamps, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -23722,38 +32062,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetProtocolVersionUpgradeVoteStatusResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.verify|verify} messages. + * Encodes the specified GetVotePollsByEndDateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.IGetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetProtocolVersionUpgradeVoteStatusResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetVotePollsByEndDateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusResponseV0 message from the specified reader or buffer. + * Decodes a GetVotePollsByEndDateResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusResponseV0.decode = function decode(reader, length) { + GetVotePollsByEndDateResponseV0.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.decode(reader, reader.uint32()); + message.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -23770,39 +32110,39 @@ $root.org = (function() { }; /** - * Decodes a GetProtocolVersionUpgradeVoteStatusResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetVotePollsByEndDateResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetProtocolVersionUpgradeVoteStatusResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetVotePollsByEndDateResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetProtocolVersionUpgradeVoteStatusResponseV0 message. + * Verifies a GetVotePollsByEndDateResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetProtocolVersionUpgradeVoteStatusResponseV0.verify = function verify(message) { + GetVotePollsByEndDateResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.versions != null && message.hasOwnProperty("versions")) { + if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify(message.versions); + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify(message.votePollsByTimestamps); if (error) - return "versions." + error; + return "votePollsByTimestamps." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -23824,54 +32164,54 @@ $root.org = (function() { }; /** - * Creates a GetProtocolVersionUpgradeVoteStatusResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetVotePollsByEndDateResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} GetProtocolVersionUpgradeVoteStatusResponseV0 + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 */ - GetProtocolVersionUpgradeVoteStatusResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0) + GetVotePollsByEndDateResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0(); - if (object.versions != null) { - if (typeof object.versions !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.versions: object expected"); - message.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.fromObject(object.versions); + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0(); + if (object.votePollsByTimestamps != null) { + if (typeof object.votePollsByTimestamps !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.votePollsByTimestamps: object expected"); + message.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.fromObject(object.votePollsByTimestamps); } if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetProtocolVersionUpgradeVoteStatusResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetVotePollsByEndDateResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message GetProtocolVersionUpgradeVoteStatusResponseV0 + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function toObject(message, options) { + GetVotePollsByEndDateResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.metadata = null; - if (message.versions != null && message.hasOwnProperty("versions")) { - object.versions = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(message.versions, options); + if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { + object.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(message.votePollsByTimestamps, options); if (options.oneofs) - object.result = "versions"; + object.result = "votePollsByTimestamps"; } if (message.proof != null && message.hasOwnProperty("proof")) { object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); @@ -23884,35 +32224,36 @@ $root.org = (function() { }; /** - * Converts this GetProtocolVersionUpgradeVoteStatusResponseV0 to JSON. + * Converts this GetVotePollsByEndDateResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 * @instance * @returns {Object.} JSON object */ - GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toJSON = function toJSON() { + GetVotePollsByEndDateResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals = (function() { + GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp = (function() { /** - * Properties of a VersionSignals. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 - * @interface IVersionSignals - * @property {Array.|null} [versionSignals] VersionSignals versionSignals + * Properties of a SerializedVotePollsByTimestamp. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @interface ISerializedVotePollsByTimestamp + * @property {number|Long|null} [timestamp] SerializedVotePollsByTimestamp timestamp + * @property {Array.|null} [serializedVotePolls] SerializedVotePollsByTimestamp serializedVotePolls */ /** - * Constructs a new VersionSignals. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 - * @classdesc Represents a VersionSignals. - * @implements IVersionSignals + * Constructs a new SerializedVotePollsByTimestamp. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @classdesc Represents a SerializedVotePollsByTimestamp. + * @implements ISerializedVotePollsByTimestamp * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp=} [properties] Properties to set */ - function VersionSignals(properties) { - this.versionSignals = []; + function SerializedVotePollsByTimestamp(properties) { + this.serializedVotePolls = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -23920,78 +32261,91 @@ $root.org = (function() { } /** - * VersionSignals versionSignals. - * @member {Array.} versionSignals - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * SerializedVotePollsByTimestamp timestamp. + * @member {number|Long} timestamp + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @instance */ - VersionSignals.prototype.versionSignals = $util.emptyArray; + SerializedVotePollsByTimestamp.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** - * Creates a new VersionSignals instance using the specified properties. + * SerializedVotePollsByTimestamp serializedVotePolls. + * @member {Array.} serializedVotePolls + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @instance + */ + SerializedVotePollsByTimestamp.prototype.serializedVotePolls = $util.emptyArray; + + /** + * Creates a new SerializedVotePollsByTimestamp instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals instance + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp instance */ - VersionSignals.create = function create(properties) { - return new VersionSignals(properties); + SerializedVotePollsByTimestamp.create = function create(properties) { + return new SerializedVotePollsByTimestamp(properties); }; /** - * Encodes the specified VersionSignals message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify|verify} messages. + * Encodes the specified SerializedVotePollsByTimestamp message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals} message VersionSignals message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionSignals.encode = function encode(message, writer) { + SerializedVotePollsByTimestamp.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.versionSignals != null && message.versionSignals.length) - for (var i = 0; i < message.versionSignals.length; ++i) - $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.encode(message.versionSignals[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.timestamp); + if (message.serializedVotePolls != null && message.serializedVotePolls.length) + for (var i = 0; i < message.serializedVotePolls.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.serializedVotePolls[i]); return writer; }; /** - * Encodes the specified VersionSignals message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.verify|verify} messages. + * Encodes the specified SerializedVotePollsByTimestamp message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignals} message VersionSignals message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionSignals.encodeDelimited = function encodeDelimited(message, writer) { + SerializedVotePollsByTimestamp.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a VersionSignals message from the specified reader or buffer. + * Decodes a SerializedVotePollsByTimestamp message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionSignals.decode = function decode(reader, length) { + SerializedVotePollsByTimestamp.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.versionSignals && message.versionSignals.length)) - message.versionSignals = []; - message.versionSignals.push($root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.decode(reader, reader.uint32())); + message.timestamp = reader.uint64(); + break; + case 2: + if (!(message.serializedVotePolls && message.serializedVotePolls.length)) + message.serializedVotePolls = []; + message.serializedVotePolls.push(reader.bytes()); break; default: reader.skipType(tag & 7); @@ -24002,125 +32356,147 @@ $root.org = (function() { }; /** - * Decodes a VersionSignals message from the specified reader or buffer, length delimited. + * Decodes a SerializedVotePollsByTimestamp message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionSignals.decodeDelimited = function decodeDelimited(reader) { + SerializedVotePollsByTimestamp.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a VersionSignals message. + * Verifies a SerializedVotePollsByTimestamp message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VersionSignals.verify = function verify(message) { + SerializedVotePollsByTimestamp.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.versionSignals != null && message.hasOwnProperty("versionSignals")) { - if (!Array.isArray(message.versionSignals)) - return "versionSignals: array expected"; - for (var i = 0; i < message.versionSignals.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify(message.versionSignals[i]); - if (error) - return "versionSignals." + error; - } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) + return "timestamp: integer|Long expected"; + if (message.serializedVotePolls != null && message.hasOwnProperty("serializedVotePolls")) { + if (!Array.isArray(message.serializedVotePolls)) + return "serializedVotePolls: array expected"; + for (var i = 0; i < message.serializedVotePolls.length; ++i) + if (!(message.serializedVotePolls[i] && typeof message.serializedVotePolls[i].length === "number" || $util.isString(message.serializedVotePolls[i]))) + return "serializedVotePolls: buffer[] expected"; } return null; }; /** - * Creates a VersionSignals message from a plain object. Also converts values to their respective internal types. + * Creates a SerializedVotePollsByTimestamp message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} VersionSignals + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp */ - VersionSignals.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals) + SerializedVotePollsByTimestamp.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals(); - if (object.versionSignals) { - if (!Array.isArray(object.versionSignals)) - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.versionSignals: array expected"); - message.versionSignals = []; - for (var i = 0; i < object.versionSignals.length; ++i) { - if (typeof object.versionSignals[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.versionSignals: object expected"); - message.versionSignals[i] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.fromObject(object.versionSignals[i]); - } + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp(); + if (object.timestamp != null) + if ($util.Long) + (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true; + else if (typeof object.timestamp === "string") + message.timestamp = parseInt(object.timestamp, 10); + else if (typeof object.timestamp === "number") + message.timestamp = object.timestamp; + else if (typeof object.timestamp === "object") + message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true); + if (object.serializedVotePolls) { + if (!Array.isArray(object.serializedVotePolls)) + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializedVotePolls: array expected"); + message.serializedVotePolls = []; + for (var i = 0; i < object.serializedVotePolls.length; ++i) + if (typeof object.serializedVotePolls[i] === "string") + $util.base64.decode(object.serializedVotePolls[i], message.serializedVotePolls[i] = $util.newBuffer($util.base64.length(object.serializedVotePolls[i])), 0); + else if (object.serializedVotePolls[i].length >= 0) + message.serializedVotePolls[i] = object.serializedVotePolls[i]; } return message; }; /** - * Creates a plain object from a VersionSignals message. Also converts values to other types if specified. + * Creates a plain object from a SerializedVotePollsByTimestamp message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message VersionSignals + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - VersionSignals.toObject = function toObject(message, options) { + SerializedVotePollsByTimestamp.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.versionSignals = []; - if (message.versionSignals && message.versionSignals.length) { - object.versionSignals = []; - for (var j = 0; j < message.versionSignals.length; ++j) - object.versionSignals[j] = $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(message.versionSignals[j], options); + object.serializedVotePolls = []; + if (options.defaults) + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timestamp = options.longs === String ? "0" : 0; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (typeof message.timestamp === "number") + object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; + else + object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp; + if (message.serializedVotePolls && message.serializedVotePolls.length) { + object.serializedVotePolls = []; + for (var j = 0; j < message.serializedVotePolls.length; ++j) + object.serializedVotePolls[j] = options.bytes === String ? $util.base64.encode(message.serializedVotePolls[j], 0, message.serializedVotePolls[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.serializedVotePolls[j]) : message.serializedVotePolls[j]; } return object; }; /** - * Converts this VersionSignals to JSON. + * Converts this SerializedVotePollsByTimestamp to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp * @instance * @returns {Object.} JSON object */ - VersionSignals.prototype.toJSON = function toJSON() { + SerializedVotePollsByTimestamp.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return VersionSignals; + return SerializedVotePollsByTimestamp; })(); - GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal = (function() { + GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps = (function() { /** - * Properties of a VersionSignal. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 - * @interface IVersionSignal - * @property {Uint8Array|null} [proTxHash] VersionSignal proTxHash - * @property {number|null} [version] VersionSignal version + * Properties of a SerializedVotePollsByTimestamps. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @interface ISerializedVotePollsByTimestamps + * @property {Array.|null} [votePollsByTimestamps] SerializedVotePollsByTimestamps votePollsByTimestamps + * @property {boolean|null} [finishedResults] SerializedVotePollsByTimestamps finishedResults */ /** - * Constructs a new VersionSignal. - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 - * @classdesc Represents a VersionSignal. - * @implements IVersionSignal + * Constructs a new SerializedVotePollsByTimestamps. + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @classdesc Represents a SerializedVotePollsByTimestamps. + * @implements ISerializedVotePollsByTimestamps * @constructor - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps=} [properties] Properties to set */ - function VersionSignal(properties) { + function SerializedVotePollsByTimestamps(properties) { + this.votePollsByTimestamps = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24128,88 +32504,91 @@ $root.org = (function() { } /** - * VersionSignal proTxHash. - * @member {Uint8Array} proTxHash - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * SerializedVotePollsByTimestamps votePollsByTimestamps. + * @member {Array.} votePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @instance */ - VersionSignal.prototype.proTxHash = $util.newBuffer([]); + SerializedVotePollsByTimestamps.prototype.votePollsByTimestamps = $util.emptyArray; /** - * VersionSignal version. - * @member {number} version - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * SerializedVotePollsByTimestamps finishedResults. + * @member {boolean} finishedResults + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @instance */ - VersionSignal.prototype.version = 0; + SerializedVotePollsByTimestamps.prototype.finishedResults = false; /** - * Creates a new VersionSignal instance using the specified properties. + * Creates a new SerializedVotePollsByTimestamps instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal instance + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps instance */ - VersionSignal.create = function create(properties) { - return new VersionSignal(properties); + SerializedVotePollsByTimestamps.create = function create(properties) { + return new SerializedVotePollsByTimestamps(properties); }; /** - * Encodes the specified VersionSignal message. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify|verify} messages. + * Encodes the specified SerializedVotePollsByTimestamps message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal} message VersionSignal message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionSignal.encode = function encode(message, writer) { + SerializedVotePollsByTimestamps.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.proTxHash != null && Object.hasOwnProperty.call(message, "proTxHash")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.proTxHash); - if (message.version != null && Object.hasOwnProperty.call(message, "version")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.version); + if (message.votePollsByTimestamps != null && message.votePollsByTimestamps.length) + for (var i = 0; i < message.votePollsByTimestamps.length; ++i) + $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.encode(message.votePollsByTimestamps[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); return writer; }; /** - * Encodes the specified VersionSignal message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.verify|verify} messages. + * Encodes the specified SerializedVotePollsByTimestamps message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.IVersionSignal} message VersionSignal message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - VersionSignal.encodeDelimited = function encodeDelimited(message, writer) { + SerializedVotePollsByTimestamps.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a VersionSignal message from the specified reader or buffer. + * Decodes a SerializedVotePollsByTimestamps message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionSignal.decode = function decode(reader, length) { + SerializedVotePollsByTimestamps.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proTxHash = reader.bytes(); + if (!(message.votePollsByTimestamps && message.votePollsByTimestamps.length)) + message.votePollsByTimestamps = []; + message.votePollsByTimestamps.push($root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.decode(reader, reader.uint32())); break; case 2: - message.version = reader.uint32(); + message.finishedResults = reader.bool(); break; default: reader.skipType(tag & 7); @@ -24220,131 +32599,139 @@ $root.org = (function() { }; /** - * Decodes a VersionSignal message from the specified reader or buffer, length delimited. + * Decodes a SerializedVotePollsByTimestamps message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VersionSignal.decodeDelimited = function decodeDelimited(reader) { + SerializedVotePollsByTimestamps.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a VersionSignal message. + * Verifies a SerializedVotePollsByTimestamps message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VersionSignal.verify = function verify(message) { + SerializedVotePollsByTimestamps.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) - if (!(message.proTxHash && typeof message.proTxHash.length === "number" || $util.isString(message.proTxHash))) - return "proTxHash: buffer expected"; - if (message.version != null && message.hasOwnProperty("version")) - if (!$util.isInteger(message.version)) - return "version: integer expected"; + if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { + if (!Array.isArray(message.votePollsByTimestamps)) + return "votePollsByTimestamps: array expected"; + for (var i = 0; i < message.votePollsByTimestamps.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify(message.votePollsByTimestamps[i]); + if (error) + return "votePollsByTimestamps." + error; + } + } + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + if (typeof message.finishedResults !== "boolean") + return "finishedResults: boolean expected"; return null; }; /** - * Creates a VersionSignal message from a plain object. Also converts values to their respective internal types. + * Creates a SerializedVotePollsByTimestamps message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} VersionSignal + * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps */ - VersionSignal.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal) + SerializedVotePollsByTimestamps.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps) return object; - var message = new $root.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal(); - if (object.proTxHash != null) - if (typeof object.proTxHash === "string") - $util.base64.decode(object.proTxHash, message.proTxHash = $util.newBuffer($util.base64.length(object.proTxHash)), 0); - else if (object.proTxHash.length >= 0) - message.proTxHash = object.proTxHash; - if (object.version != null) - message.version = object.version >>> 0; + var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps(); + if (object.votePollsByTimestamps) { + if (!Array.isArray(object.votePollsByTimestamps)) + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.votePollsByTimestamps: array expected"); + message.votePollsByTimestamps = []; + for (var i = 0; i < object.votePollsByTimestamps.length; ++i) { + if (typeof object.votePollsByTimestamps[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.votePollsByTimestamps: object expected"); + message.votePollsByTimestamps[i] = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.fromObject(object.votePollsByTimestamps[i]); + } + } + if (object.finishedResults != null) + message.finishedResults = Boolean(object.finishedResults); return message; }; /** - * Creates a plain object from a VersionSignal message. Also converts values to other types if specified. + * Creates a plain object from a SerializedVotePollsByTimestamps message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @static - * @param {org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message VersionSignal + * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - VersionSignal.toObject = function toObject(message, options) { + SerializedVotePollsByTimestamps.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.proTxHash = ""; - else { - object.proTxHash = []; - if (options.bytes !== Array) - object.proTxHash = $util.newBuffer(object.proTxHash); - } - object.version = 0; + if (options.arrays || options.defaults) + object.votePollsByTimestamps = []; + if (options.defaults) + object.finishedResults = false; + if (message.votePollsByTimestamps && message.votePollsByTimestamps.length) { + object.votePollsByTimestamps = []; + for (var j = 0; j < message.votePollsByTimestamps.length; ++j) + object.votePollsByTimestamps[j] = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject(message.votePollsByTimestamps[j], options); } - if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) - object.proTxHash = options.bytes === String ? $util.base64.encode(message.proTxHash, 0, message.proTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.proTxHash) : message.proTxHash; - if (message.version != null && message.hasOwnProperty("version")) - object.version = message.version; + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + object.finishedResults = message.finishedResults; return object; }; /** - * Converts this VersionSignal to JSON. + * Converts this SerializedVotePollsByTimestamps to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal + * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps * @instance * @returns {Object.} JSON object */ - VersionSignal.prototype.toJSON = function toJSON() { + SerializedVotePollsByTimestamps.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return VersionSignal; + return SerializedVotePollsByTimestamps; })(); - return GetProtocolVersionUpgradeVoteStatusResponseV0; + return GetVotePollsByEndDateResponseV0; })(); - return GetProtocolVersionUpgradeVoteStatusResponse; + return GetVotePollsByEndDateResponse; })(); - v0.GetEpochsInfoRequest = (function() { + v0.GetContestedResourceVoteStateRequest = (function() { /** - * Properties of a GetEpochsInfoRequest. + * Properties of a GetContestedResourceVoteStateRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetEpochsInfoRequest - * @property {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0|null} [v0] GetEpochsInfoRequest v0 + * @interface IGetContestedResourceVoteStateRequest + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0|null} [v0] GetContestedResourceVoteStateRequest v0 */ /** - * Constructs a new GetEpochsInfoRequest. + * Constructs a new GetContestedResourceVoteStateRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetEpochsInfoRequest. - * @implements IGetEpochsInfoRequest + * @classdesc Represents a GetContestedResourceVoteStateRequest. + * @implements IGetContestedResourceVoteStateRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest=} [properties] Properties to set */ - function GetEpochsInfoRequest(properties) { + function GetContestedResourceVoteStateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24352,89 +32739,89 @@ $root.org = (function() { } /** - * GetEpochsInfoRequest v0. - * @member {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * GetContestedResourceVoteStateRequest v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @instance */ - GetEpochsInfoRequest.prototype.v0 = null; + GetContestedResourceVoteStateRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetEpochsInfoRequest version. + * GetContestedResourceVoteStateRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @instance */ - Object.defineProperty(GetEpochsInfoRequest.prototype, "version", { + Object.defineProperty(GetContestedResourceVoteStateRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetEpochsInfoRequest instance using the specified properties. + * Creates a new GetContestedResourceVoteStateRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest instance */ - GetEpochsInfoRequest.create = function create(properties) { - return new GetEpochsInfoRequest(properties); + GetContestedResourceVoteStateRequest.create = function create(properties) { + return new GetContestedResourceVoteStateRequest(properties); }; /** - * Encodes the specified GetEpochsInfoRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest} message GetEpochsInfoRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoRequest.encode = function encode(message, writer) { + GetContestedResourceVoteStateRequest.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetEpochsInfoRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoRequest} message GetEpochsInfoRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVoteStateRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetEpochsInfoRequest message from the specified reader or buffer. + * Decodes a GetContestedResourceVoteStateRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @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.GetEpochsInfoRequest} GetEpochsInfoRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoRequest.decode = function decode(reader, length) { + GetContestedResourceVoteStateRequest.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.GetEpochsInfoRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -24445,37 +32832,37 @@ $root.org = (function() { }; /** - * Decodes a GetEpochsInfoRequest message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVoteStateRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoRequest.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVoteStateRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetEpochsInfoRequest message. + * Verifies a GetContestedResourceVoteStateRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetEpochsInfoRequest.verify = function verify(message) { + GetContestedResourceVoteStateRequest.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -24484,40 +32871,40 @@ $root.org = (function() { }; /** - * Creates a GetEpochsInfoRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVoteStateRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest} GetEpochsInfoRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest */ - GetEpochsInfoRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest) + GetContestedResourceVoteStateRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetEpochsInfoRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVoteStateRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest} message GetEpochsInfoRequest + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetEpochsInfoRequest.toObject = function toObject(message, options) { + GetContestedResourceVoteStateRequest.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -24525,37 +32912,43 @@ $root.org = (function() { }; /** - * Converts this GetEpochsInfoRequest to JSON. + * Converts this GetContestedResourceVoteStateRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest * @instance * @returns {Object.} JSON object */ - GetEpochsInfoRequest.prototype.toJSON = function toJSON() { + GetContestedResourceVoteStateRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetEpochsInfoRequest.GetEpochsInfoRequestV0 = (function() { + GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 = (function() { /** - * Properties of a GetEpochsInfoRequestV0. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest - * @interface IGetEpochsInfoRequestV0 - * @property {google.protobuf.IUInt32Value|null} [startEpoch] GetEpochsInfoRequestV0 startEpoch - * @property {number|null} [count] GetEpochsInfoRequestV0 count - * @property {boolean|null} [ascending] GetEpochsInfoRequestV0 ascending - * @property {boolean|null} [prove] GetEpochsInfoRequestV0 prove + * Properties of a GetContestedResourceVoteStateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @interface IGetContestedResourceVoteStateRequestV0 + * @property {Uint8Array|null} [contractId] GetContestedResourceVoteStateRequestV0 contractId + * @property {string|null} [documentTypeName] GetContestedResourceVoteStateRequestV0 documentTypeName + * @property {string|null} [indexName] GetContestedResourceVoteStateRequestV0 indexName + * @property {Array.|null} [indexValues] GetContestedResourceVoteStateRequestV0 indexValues + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType|null} [resultType] GetContestedResourceVoteStateRequestV0 resultType + * @property {boolean|null} [allowIncludeLockedAndAbstainingVoteTally] GetContestedResourceVoteStateRequestV0 allowIncludeLockedAndAbstainingVoteTally + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo|null} [startAtIdentifierInfo] GetContestedResourceVoteStateRequestV0 startAtIdentifierInfo + * @property {number|null} [count] GetContestedResourceVoteStateRequestV0 count + * @property {boolean|null} [prove] GetContestedResourceVoteStateRequestV0 prove */ /** - * Constructs a new GetEpochsInfoRequestV0. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest - * @classdesc Represents a GetEpochsInfoRequestV0. - * @implements IGetEpochsInfoRequestV0 + * Constructs a new GetContestedResourceVoteStateRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @classdesc Represents a GetContestedResourceVoteStateRequestV0. + * @implements IGetContestedResourceVoteStateRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0=} [properties] Properties to set */ - function GetEpochsInfoRequestV0(properties) { + function GetContestedResourceVoteStateRequestV0(properties) { + this.indexValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24563,113 +32956,181 @@ $root.org = (function() { } /** - * GetEpochsInfoRequestV0 startEpoch. - * @member {google.protobuf.IUInt32Value|null|undefined} startEpoch - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * GetContestedResourceVoteStateRequestV0 contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @instance */ - GetEpochsInfoRequestV0.prototype.startEpoch = null; + GetContestedResourceVoteStateRequestV0.prototype.contractId = $util.newBuffer([]); /** - * GetEpochsInfoRequestV0 count. - * @member {number} count - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * GetContestedResourceVoteStateRequestV0 documentTypeName. + * @member {string} documentTypeName + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @instance */ - GetEpochsInfoRequestV0.prototype.count = 0; + GetContestedResourceVoteStateRequestV0.prototype.documentTypeName = ""; /** - * GetEpochsInfoRequestV0 ascending. - * @member {boolean} ascending - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * GetContestedResourceVoteStateRequestV0 indexName. + * @member {string} indexName + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @instance */ - GetEpochsInfoRequestV0.prototype.ascending = false; + GetContestedResourceVoteStateRequestV0.prototype.indexName = ""; /** - * GetEpochsInfoRequestV0 prove. + * GetContestedResourceVoteStateRequestV0 indexValues. + * @member {Array.} indexValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @instance + */ + GetContestedResourceVoteStateRequestV0.prototype.indexValues = $util.emptyArray; + + /** + * GetContestedResourceVoteStateRequestV0 resultType. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} resultType + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @instance + */ + GetContestedResourceVoteStateRequestV0.prototype.resultType = 0; + + /** + * GetContestedResourceVoteStateRequestV0 allowIncludeLockedAndAbstainingVoteTally. + * @member {boolean} allowIncludeLockedAndAbstainingVoteTally + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @instance + */ + GetContestedResourceVoteStateRequestV0.prototype.allowIncludeLockedAndAbstainingVoteTally = false; + + /** + * GetContestedResourceVoteStateRequestV0 startAtIdentifierInfo. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo|null|undefined} startAtIdentifierInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @instance + */ + GetContestedResourceVoteStateRequestV0.prototype.startAtIdentifierInfo = null; + + /** + * GetContestedResourceVoteStateRequestV0 count. + * @member {number} count + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @instance + */ + GetContestedResourceVoteStateRequestV0.prototype.count = 0; + + /** + * GetContestedResourceVoteStateRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @instance */ - GetEpochsInfoRequestV0.prototype.prove = false; + GetContestedResourceVoteStateRequestV0.prototype.prove = false; /** - * Creates a new GetEpochsInfoRequestV0 instance using the specified properties. + * Creates a new GetContestedResourceVoteStateRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 instance */ - GetEpochsInfoRequestV0.create = function create(properties) { - return new GetEpochsInfoRequestV0(properties); + GetContestedResourceVoteStateRequestV0.create = function create(properties) { + return new GetContestedResourceVoteStateRequestV0(properties); }; /** - * Encodes the specified GetEpochsInfoRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoRequestV0.encode = function encode(message, writer) { + GetContestedResourceVoteStateRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startEpoch != null && Object.hasOwnProperty.call(message, "startEpoch")) - $root.google.protobuf.UInt32Value.encode(message.startEpoch, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); + if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); + if (message.indexValues != null && message.indexValues.length) + for (var i = 0; i < message.indexValues.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); + if (message.resultType != null && Object.hasOwnProperty.call(message, "resultType")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.resultType); + if (message.allowIncludeLockedAndAbstainingVoteTally != null && Object.hasOwnProperty.call(message, "allowIncludeLockedAndAbstainingVoteTally")) + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.allowIncludeLockedAndAbstainingVoteTally); + if (message.startAtIdentifierInfo != null && Object.hasOwnProperty.call(message, "startAtIdentifierInfo")) + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.encode(message.startAtIdentifierInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); if (message.count != null && Object.hasOwnProperty.call(message, "count")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.count); - if (message.ascending != null && Object.hasOwnProperty.call(message, "ascending")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.ascending); + writer.uint32(/* id 8, wireType 0 =*/64).uint32(message.count); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.prove); + writer.uint32(/* id 9, wireType 0 =*/72).bool(message.prove); return writer; }; /** - * Encodes the specified GetEpochsInfoRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.IGetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVoteStateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetEpochsInfoRequestV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceVoteStateRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @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.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoRequestV0.decode = function decode(reader, length) { + GetContestedResourceVoteStateRequestV0.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startEpoch = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); + message.contractId = reader.bytes(); + break; + case 2: + message.documentTypeName = reader.string(); + break; + case 3: + message.indexName = reader.string(); + break; + case 4: + if (!(message.indexValues && message.indexValues.length)) + message.indexValues = []; + message.indexValues.push(reader.bytes()); + break; + case 5: + message.resultType = reader.int32(); + break; + case 6: + message.allowIncludeLockedAndAbstainingVoteTally = reader.bool(); break; - case 2: - message.count = reader.uint32(); + case 7: + message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.decode(reader, reader.uint32()); break; - case 3: - message.ascending = reader.bool(); + case 8: + message.count = reader.uint32(); break; - case 4: + case 9: message.prove = reader.bool(); break; default: @@ -24681,43 +33142,68 @@ $root.org = (function() { }; /** - * Decodes a GetEpochsInfoRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVoteStateRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVoteStateRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetEpochsInfoRequestV0 message. + * Verifies a GetContestedResourceVoteStateRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetEpochsInfoRequestV0.verify = function verify(message) { + GetContestedResourceVoteStateRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startEpoch != null && message.hasOwnProperty("startEpoch")) { - var error = $root.google.protobuf.UInt32Value.verify(message.startEpoch); + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + if (!$util.isString(message.documentTypeName)) + return "documentTypeName: string expected"; + if (message.indexName != null && message.hasOwnProperty("indexName")) + if (!$util.isString(message.indexName)) + return "indexName: string expected"; + if (message.indexValues != null && message.hasOwnProperty("indexValues")) { + if (!Array.isArray(message.indexValues)) + return "indexValues: array expected"; + for (var i = 0; i < message.indexValues.length; ++i) + if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) + return "indexValues: buffer[] expected"; + } + if (message.resultType != null && message.hasOwnProperty("resultType")) + switch (message.resultType) { + default: + return "resultType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.allowIncludeLockedAndAbstainingVoteTally != null && message.hasOwnProperty("allowIncludeLockedAndAbstainingVoteTally")) + if (typeof message.allowIncludeLockedAndAbstainingVoteTally !== "boolean") + return "allowIncludeLockedAndAbstainingVoteTally: boolean expected"; + if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify(message.startAtIdentifierInfo); if (error) - return "startEpoch." + error; + return "startAtIdentifierInfo." + error; } if (message.count != null && message.hasOwnProperty("count")) if (!$util.isInteger(message.count)) return "count: integer expected"; - if (message.ascending != null && message.hasOwnProperty("ascending")) - if (typeof message.ascending !== "boolean") - return "ascending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -24725,96 +33211,389 @@ $root.org = (function() { }; /** - * Creates a GetEpochsInfoRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVoteStateRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} GetEpochsInfoRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 */ - GetEpochsInfoRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0) + GetContestedResourceVoteStateRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0(); - if (object.startEpoch != null) { - if (typeof object.startEpoch !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.startEpoch: object expected"); - message.startEpoch = $root.google.protobuf.UInt32Value.fromObject(object.startEpoch); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + if (object.documentTypeName != null) + message.documentTypeName = String(object.documentTypeName); + if (object.indexName != null) + message.indexName = String(object.indexName); + if (object.indexValues) { + if (!Array.isArray(object.indexValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.indexValues: array expected"); + message.indexValues = []; + for (var i = 0; i < object.indexValues.length; ++i) + if (typeof object.indexValues[i] === "string") + $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); + else if (object.indexValues[i].length >= 0) + message.indexValues[i] = object.indexValues[i]; + } + switch (object.resultType) { + case "DOCUMENTS": + case 0: + message.resultType = 0; + break; + case "VOTE_TALLY": + case 1: + message.resultType = 1; + break; + case "DOCUMENTS_AND_VOTE_TALLY": + case 2: + message.resultType = 2; + break; + } + if (object.allowIncludeLockedAndAbstainingVoteTally != null) + message.allowIncludeLockedAndAbstainingVoteTally = Boolean(object.allowIncludeLockedAndAbstainingVoteTally); + if (object.startAtIdentifierInfo != null) { + if (typeof object.startAtIdentifierInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.startAtIdentifierInfo: object expected"); + message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.fromObject(object.startAtIdentifierInfo); } if (object.count != null) message.count = object.count >>> 0; - if (object.ascending != null) - message.ascending = Boolean(object.ascending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetEpochsInfoRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVoteStateRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message GetEpochsInfoRequestV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetEpochsInfoRequestV0.toObject = function toObject(message, options) { + GetContestedResourceVoteStateRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.indexValues = []; if (options.defaults) { - object.startEpoch = null; + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + object.documentTypeName = ""; + object.indexName = ""; + object.resultType = options.enums === String ? "DOCUMENTS" : 0; + object.allowIncludeLockedAndAbstainingVoteTally = false; + object.startAtIdentifierInfo = null; object.count = 0; - object.ascending = false; object.prove = false; } - if (message.startEpoch != null && message.hasOwnProperty("startEpoch")) - object.startEpoch = $root.google.protobuf.UInt32Value.toObject(message.startEpoch, options); + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + object.documentTypeName = message.documentTypeName; + if (message.indexName != null && message.hasOwnProperty("indexName")) + object.indexName = message.indexName; + if (message.indexValues && message.indexValues.length) { + object.indexValues = []; + for (var j = 0; j < message.indexValues.length; ++j) + object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; + } + if (message.resultType != null && message.hasOwnProperty("resultType")) + object.resultType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType[message.resultType] : message.resultType; + if (message.allowIncludeLockedAndAbstainingVoteTally != null && message.hasOwnProperty("allowIncludeLockedAndAbstainingVoteTally")) + object.allowIncludeLockedAndAbstainingVoteTally = message.allowIncludeLockedAndAbstainingVoteTally; + if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) + object.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(message.startAtIdentifierInfo, options); if (message.count != null && message.hasOwnProperty("count")) object.count = message.count; - if (message.ascending != null && message.hasOwnProperty("ascending")) - object.ascending = message.ascending; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetEpochsInfoRequestV0 to JSON. + * Converts this GetContestedResourceVoteStateRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 * @instance * @returns {Object.} JSON object */ - GetEpochsInfoRequestV0.prototype.toJSON = function toJSON() { + GetContestedResourceVoteStateRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetEpochsInfoRequestV0; + GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo = (function() { + + /** + * Properties of a StartAtIdentifierInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @interface IStartAtIdentifierInfo + * @property {Uint8Array|null} [startIdentifier] StartAtIdentifierInfo startIdentifier + * @property {boolean|null} [startIdentifierIncluded] StartAtIdentifierInfo startIdentifierIncluded + */ + + /** + * Constructs a new StartAtIdentifierInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @classdesc Represents a StartAtIdentifierInfo. + * @implements IStartAtIdentifierInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set + */ + function StartAtIdentifierInfo(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]]; + } + + /** + * StartAtIdentifierInfo startIdentifier. + * @member {Uint8Array} startIdentifier + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @instance + */ + StartAtIdentifierInfo.prototype.startIdentifier = $util.newBuffer([]); + + /** + * StartAtIdentifierInfo startIdentifierIncluded. + * @member {boolean} startIdentifierIncluded + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @instance + */ + StartAtIdentifierInfo.prototype.startIdentifierIncluded = false; + + /** + * Creates a new StartAtIdentifierInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo instance + */ + StartAtIdentifierInfo.create = function create(properties) { + return new StartAtIdentifierInfo(properties); + }; + + /** + * Encodes the specified StartAtIdentifierInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtIdentifierInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startIdentifier != null && Object.hasOwnProperty.call(message, "startIdentifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startIdentifier); + if (message.startIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startIdentifierIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startIdentifierIncluded); + return writer; + }; + + /** + * Encodes the specified StartAtIdentifierInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StartAtIdentifierInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StartAtIdentifierInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startIdentifier = reader.bytes(); + break; + case 2: + message.startIdentifierIncluded = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a StartAtIdentifierInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StartAtIdentifierInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a StartAtIdentifierInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StartAtIdentifierInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) + if (!(message.startIdentifier && typeof message.startIdentifier.length === "number" || $util.isString(message.startIdentifier))) + return "startIdentifier: buffer expected"; + if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) + if (typeof message.startIdentifierIncluded !== "boolean") + return "startIdentifierIncluded: boolean expected"; + return null; + }; + + /** + * Creates a StartAtIdentifierInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo + */ + StartAtIdentifierInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo(); + if (object.startIdentifier != null) + if (typeof object.startIdentifier === "string") + $util.base64.decode(object.startIdentifier, message.startIdentifier = $util.newBuffer($util.base64.length(object.startIdentifier)), 0); + else if (object.startIdentifier.length >= 0) + message.startIdentifier = object.startIdentifier; + if (object.startIdentifierIncluded != null) + message.startIdentifierIncluded = Boolean(object.startIdentifierIncluded); + return message; + }; + + /** + * Creates a plain object from a StartAtIdentifierInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message StartAtIdentifierInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StartAtIdentifierInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.startIdentifier = ""; + else { + object.startIdentifier = []; + if (options.bytes !== Array) + object.startIdentifier = $util.newBuffer(object.startIdentifier); + } + object.startIdentifierIncluded = false; + } + if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) + object.startIdentifier = options.bytes === String ? $util.base64.encode(message.startIdentifier, 0, message.startIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startIdentifier) : message.startIdentifier; + if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) + object.startIdentifierIncluded = message.startIdentifierIncluded; + return object; + }; + + /** + * Converts this StartAtIdentifierInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo + * @instance + * @returns {Object.} JSON object + */ + StartAtIdentifierInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return StartAtIdentifierInfo; + })(); + + /** + * ResultType enum. + * @name org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType + * @enum {number} + * @property {number} DOCUMENTS=0 DOCUMENTS value + * @property {number} VOTE_TALLY=1 VOTE_TALLY value + * @property {number} DOCUMENTS_AND_VOTE_TALLY=2 DOCUMENTS_AND_VOTE_TALLY value + */ + GetContestedResourceVoteStateRequestV0.ResultType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DOCUMENTS"] = 0; + values[valuesById[1] = "VOTE_TALLY"] = 1; + values[valuesById[2] = "DOCUMENTS_AND_VOTE_TALLY"] = 2; + return values; + })(); + + return GetContestedResourceVoteStateRequestV0; })(); - return GetEpochsInfoRequest; + return GetContestedResourceVoteStateRequest; })(); - v0.GetEpochsInfoResponse = (function() { + v0.GetContestedResourceVoteStateResponse = (function() { /** - * Properties of a GetEpochsInfoResponse. + * Properties of a GetContestedResourceVoteStateResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetEpochsInfoResponse - * @property {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0|null} [v0] GetEpochsInfoResponse v0 + * @interface IGetContestedResourceVoteStateResponse + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0|null} [v0] GetContestedResourceVoteStateResponse v0 */ /** - * Constructs a new GetEpochsInfoResponse. + * Constructs a new GetContestedResourceVoteStateResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetEpochsInfoResponse. - * @implements IGetEpochsInfoResponse + * @classdesc Represents a GetContestedResourceVoteStateResponse. + * @implements IGetContestedResourceVoteStateResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse=} [properties] Properties to set */ - function GetEpochsInfoResponse(properties) { + function GetContestedResourceVoteStateResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -24822,89 +33601,89 @@ $root.org = (function() { } /** - * GetEpochsInfoResponse v0. - * @member {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * GetContestedResourceVoteStateResponse v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @instance */ - GetEpochsInfoResponse.prototype.v0 = null; + GetContestedResourceVoteStateResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetEpochsInfoResponse version. + * GetContestedResourceVoteStateResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @instance */ - Object.defineProperty(GetEpochsInfoResponse.prototype, "version", { + Object.defineProperty(GetContestedResourceVoteStateResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetEpochsInfoResponse instance using the specified properties. + * Creates a new GetContestedResourceVoteStateResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse instance */ - GetEpochsInfoResponse.create = function create(properties) { - return new GetEpochsInfoResponse(properties); + GetContestedResourceVoteStateResponse.create = function create(properties) { + return new GetContestedResourceVoteStateResponse(properties); }; /** - * Encodes the specified GetEpochsInfoResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse} message GetEpochsInfoResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoResponse.encode = function encode(message, writer) { + GetContestedResourceVoteStateResponse.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetEpochsInfoResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static - * @param {org.dash.platform.dapi.v0.IGetEpochsInfoResponse} message GetEpochsInfoResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVoteStateResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetEpochsInfoResponse message from the specified reader or buffer. + * Decodes a GetContestedResourceVoteStateResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @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.GetEpochsInfoResponse} GetEpochsInfoResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoResponse.decode = function decode(reader, length) { + GetContestedResourceVoteStateResponse.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.GetEpochsInfoResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -24915,37 +33694,37 @@ $root.org = (function() { }; /** - * Decodes a GetEpochsInfoResponse message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVoteStateResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoResponse.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVoteStateResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetEpochsInfoResponse message. + * Verifies a GetContestedResourceVoteStateResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetEpochsInfoResponse.verify = function verify(message) { + GetContestedResourceVoteStateResponse.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -24954,40 +33733,40 @@ $root.org = (function() { }; /** - * Creates a GetEpochsInfoResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVoteStateResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse} GetEpochsInfoResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse */ - GetEpochsInfoResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse) + GetContestedResourceVoteStateResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetEpochsInfoResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVoteStateResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse} message GetEpochsInfoResponse + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetEpochsInfoResponse.toObject = function toObject(message, options) { + GetContestedResourceVoteStateResponse.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -24995,36 +33774,36 @@ $root.org = (function() { }; /** - * Converts this GetEpochsInfoResponse to JSON. + * Converts this GetContestedResourceVoteStateResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse * @instance * @returns {Object.} JSON object */ - GetEpochsInfoResponse.prototype.toJSON = function toJSON() { + GetContestedResourceVoteStateResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetEpochsInfoResponse.GetEpochsInfoResponseV0 = (function() { + GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 = (function() { /** - * Properties of a GetEpochsInfoResponseV0. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse - * @interface IGetEpochsInfoResponseV0 - * @property {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos|null} [epochs] GetEpochsInfoResponseV0 epochs - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetEpochsInfoResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetEpochsInfoResponseV0 metadata + * Properties of a GetContestedResourceVoteStateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @interface IGetContestedResourceVoteStateResponseV0 + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders|null} [contestedResourceContenders] GetContestedResourceVoteStateResponseV0 contestedResourceContenders + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceVoteStateResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceVoteStateResponseV0 metadata */ /** - * Constructs a new GetEpochsInfoResponseV0. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse - * @classdesc Represents a GetEpochsInfoResponseV0. - * @implements IGetEpochsInfoResponseV0 + * Constructs a new GetContestedResourceVoteStateResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @classdesc Represents a GetContestedResourceVoteStateResponseV0. + * @implements IGetContestedResourceVoteStateResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0=} [properties] Properties to set */ - function GetEpochsInfoResponseV0(properties) { + function GetContestedResourceVoteStateResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25032,69 +33811,69 @@ $root.org = (function() { } /** - * GetEpochsInfoResponseV0 epochs. - * @member {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos|null|undefined} epochs - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * GetContestedResourceVoteStateResponseV0 contestedResourceContenders. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders|null|undefined} contestedResourceContenders + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @instance */ - GetEpochsInfoResponseV0.prototype.epochs = null; + GetContestedResourceVoteStateResponseV0.prototype.contestedResourceContenders = null; /** - * GetEpochsInfoResponseV0 proof. + * GetContestedResourceVoteStateResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @instance */ - GetEpochsInfoResponseV0.prototype.proof = null; + GetContestedResourceVoteStateResponseV0.prototype.proof = null; /** - * GetEpochsInfoResponseV0 metadata. + * GetContestedResourceVoteStateResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @instance */ - GetEpochsInfoResponseV0.prototype.metadata = null; + GetContestedResourceVoteStateResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetEpochsInfoResponseV0 result. - * @member {"epochs"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * GetContestedResourceVoteStateResponseV0 result. + * @member {"contestedResourceContenders"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @instance */ - Object.defineProperty(GetEpochsInfoResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["epochs", "proof"]), + Object.defineProperty(GetContestedResourceVoteStateResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["contestedResourceContenders", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetEpochsInfoResponseV0 instance using the specified properties. + * Creates a new GetContestedResourceVoteStateResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 instance */ - GetEpochsInfoResponseV0.create = function create(properties) { - return new GetEpochsInfoResponseV0(properties); + GetContestedResourceVoteStateResponseV0.create = function create(properties) { + return new GetContestedResourceVoteStateResponseV0(properties); }; /** - * Encodes the specified GetEpochsInfoResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoResponseV0.encode = function encode(message, writer) { + GetContestedResourceVoteStateResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.epochs != null && Object.hasOwnProperty.call(message, "epochs")) - $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.encode(message.epochs, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contestedResourceContenders != null && Object.hasOwnProperty.call(message, "contestedResourceContenders")) + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.encode(message.contestedResourceContenders, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -25103,38 +33882,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetEpochsInfoResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVoteStateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.IGetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetEpochsInfoResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVoteStateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetEpochsInfoResponseV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceVoteStateResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoResponseV0.decode = function decode(reader, length) { + GetContestedResourceVoteStateResponseV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.decode(reader, reader.uint32()); + message.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -25151,39 +33930,39 @@ $root.org = (function() { }; /** - * Decodes a GetEpochsInfoResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVoteStateResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetEpochsInfoResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVoteStateResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetEpochsInfoResponseV0 message. + * Verifies a GetContestedResourceVoteStateResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetEpochsInfoResponseV0.verify = function verify(message) { + GetContestedResourceVoteStateResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.epochs != null && message.hasOwnProperty("epochs")) { + if (message.contestedResourceContenders != null && message.hasOwnProperty("contestedResourceContenders")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify(message.epochs); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify(message.contestedResourceContenders); if (error) - return "epochs." + error; + return "contestedResourceContenders." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -25195,105 +33974,477 @@ $root.org = (function() { if (error) return "proof." + error; } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } - return null; - }; - - /** - * Creates a GetEpochsInfoResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} GetEpochsInfoResponseV0 - */ - GetEpochsInfoResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0) + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetContestedResourceVoteStateResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 + */ + GetContestedResourceVoteStateResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0(); + if (object.contestedResourceContenders != null) { + if (typeof object.contestedResourceContenders !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.contestedResourceContenders: object expected"); + message.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.fromObject(object.contestedResourceContenders); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetContestedResourceVoteStateResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetContestedResourceVoteStateResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.contestedResourceContenders != null && message.hasOwnProperty("contestedResourceContenders")) { + object.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(message.contestedResourceContenders, options); + if (options.oneofs) + object.result = "contestedResourceContenders"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetContestedResourceVoteStateResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetContestedResourceVoteStateResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetContestedResourceVoteStateResponseV0.FinishedVoteInfo = (function() { + + /** + * Properties of a FinishedVoteInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @interface IFinishedVoteInfo + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome|null} [finishedVoteOutcome] FinishedVoteInfo finishedVoteOutcome + * @property {Uint8Array|null} [wonByIdentityId] FinishedVoteInfo wonByIdentityId + * @property {number|Long|null} [finishedAtBlockHeight] FinishedVoteInfo finishedAtBlockHeight + * @property {number|null} [finishedAtCoreBlockHeight] FinishedVoteInfo finishedAtCoreBlockHeight + * @property {number|Long|null} [finishedAtBlockTimeMs] FinishedVoteInfo finishedAtBlockTimeMs + * @property {number|null} [finishedAtEpoch] FinishedVoteInfo finishedAtEpoch + */ + + /** + * Constructs a new FinishedVoteInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @classdesc Represents a FinishedVoteInfo. + * @implements IFinishedVoteInfo + * @constructor + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo=} [properties] Properties to set + */ + function FinishedVoteInfo(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]]; + } + + /** + * FinishedVoteInfo finishedVoteOutcome. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} finishedVoteOutcome + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.finishedVoteOutcome = 0; + + /** + * FinishedVoteInfo wonByIdentityId. + * @member {Uint8Array} wonByIdentityId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.wonByIdentityId = $util.newBuffer([]); + + /** + * FinishedVoteInfo finishedAtBlockHeight. + * @member {number|Long} finishedAtBlockHeight + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.finishedAtBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * FinishedVoteInfo finishedAtCoreBlockHeight. + * @member {number} finishedAtCoreBlockHeight + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.finishedAtCoreBlockHeight = 0; + + /** + * FinishedVoteInfo finishedAtBlockTimeMs. + * @member {number|Long} finishedAtBlockTimeMs + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.finishedAtBlockTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * FinishedVoteInfo finishedAtEpoch. + * @member {number} finishedAtEpoch + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + */ + FinishedVoteInfo.prototype.finishedAtEpoch = 0; + + /** + * Creates a new FinishedVoteInfo instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo instance + */ + FinishedVoteInfo.create = function create(properties) { + return new FinishedVoteInfo(properties); + }; + + /** + * Encodes the specified FinishedVoteInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo} message FinishedVoteInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinishedVoteInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.finishedVoteOutcome != null && Object.hasOwnProperty.call(message, "finishedVoteOutcome")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.finishedVoteOutcome); + if (message.wonByIdentityId != null && Object.hasOwnProperty.call(message, "wonByIdentityId")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.wonByIdentityId); + if (message.finishedAtBlockHeight != null && Object.hasOwnProperty.call(message, "finishedAtBlockHeight")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.finishedAtBlockHeight); + if (message.finishedAtCoreBlockHeight != null && Object.hasOwnProperty.call(message, "finishedAtCoreBlockHeight")) + writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.finishedAtCoreBlockHeight); + if (message.finishedAtBlockTimeMs != null && Object.hasOwnProperty.call(message, "finishedAtBlockTimeMs")) + writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.finishedAtBlockTimeMs); + if (message.finishedAtEpoch != null && Object.hasOwnProperty.call(message, "finishedAtEpoch")) + writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.finishedAtEpoch); + return writer; + }; + + /** + * Encodes the specified FinishedVoteInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo} message FinishedVoteInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FinishedVoteInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FinishedVoteInfo message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.finishedVoteOutcome = reader.int32(); + break; + case 2: + message.wonByIdentityId = reader.bytes(); + break; + case 3: + message.finishedAtBlockHeight = reader.uint64(); + break; + case 4: + message.finishedAtCoreBlockHeight = reader.uint32(); + break; + case 5: + message.finishedAtBlockTimeMs = reader.uint64(); + break; + case 6: + message.finishedAtEpoch = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FinishedVoteInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FinishedVoteInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FinishedVoteInfo message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FinishedVoteInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.finishedVoteOutcome != null && message.hasOwnProperty("finishedVoteOutcome")) + switch (message.finishedVoteOutcome) { + default: + return "finishedVoteOutcome: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.wonByIdentityId != null && message.hasOwnProperty("wonByIdentityId")) + if (!(message.wonByIdentityId && typeof message.wonByIdentityId.length === "number" || $util.isString(message.wonByIdentityId))) + return "wonByIdentityId: buffer expected"; + if (message.finishedAtBlockHeight != null && message.hasOwnProperty("finishedAtBlockHeight")) + if (!$util.isInteger(message.finishedAtBlockHeight) && !(message.finishedAtBlockHeight && $util.isInteger(message.finishedAtBlockHeight.low) && $util.isInteger(message.finishedAtBlockHeight.high))) + return "finishedAtBlockHeight: integer|Long expected"; + if (message.finishedAtCoreBlockHeight != null && message.hasOwnProperty("finishedAtCoreBlockHeight")) + if (!$util.isInteger(message.finishedAtCoreBlockHeight)) + return "finishedAtCoreBlockHeight: integer expected"; + if (message.finishedAtBlockTimeMs != null && message.hasOwnProperty("finishedAtBlockTimeMs")) + if (!$util.isInteger(message.finishedAtBlockTimeMs) && !(message.finishedAtBlockTimeMs && $util.isInteger(message.finishedAtBlockTimeMs.low) && $util.isInteger(message.finishedAtBlockTimeMs.high))) + return "finishedAtBlockTimeMs: integer|Long expected"; + if (message.finishedAtEpoch != null && message.hasOwnProperty("finishedAtEpoch")) + if (!$util.isInteger(message.finishedAtEpoch)) + return "finishedAtEpoch: integer expected"; + return null; + }; + + /** + * Creates a FinishedVoteInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo + */ + FinishedVoteInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo(); + switch (object.finishedVoteOutcome) { + case "TOWARDS_IDENTITY": + case 0: + message.finishedVoteOutcome = 0; + break; + case "LOCKED": + case 1: + message.finishedVoteOutcome = 1; + break; + case "NO_PREVIOUS_WINNER": + case 2: + message.finishedVoteOutcome = 2; + break; + } + if (object.wonByIdentityId != null) + if (typeof object.wonByIdentityId === "string") + $util.base64.decode(object.wonByIdentityId, message.wonByIdentityId = $util.newBuffer($util.base64.length(object.wonByIdentityId)), 0); + else if (object.wonByIdentityId.length >= 0) + message.wonByIdentityId = object.wonByIdentityId; + if (object.finishedAtBlockHeight != null) + if ($util.Long) + (message.finishedAtBlockHeight = $util.Long.fromValue(object.finishedAtBlockHeight)).unsigned = true; + else if (typeof object.finishedAtBlockHeight === "string") + message.finishedAtBlockHeight = parseInt(object.finishedAtBlockHeight, 10); + else if (typeof object.finishedAtBlockHeight === "number") + message.finishedAtBlockHeight = object.finishedAtBlockHeight; + else if (typeof object.finishedAtBlockHeight === "object") + message.finishedAtBlockHeight = new $util.LongBits(object.finishedAtBlockHeight.low >>> 0, object.finishedAtBlockHeight.high >>> 0).toNumber(true); + if (object.finishedAtCoreBlockHeight != null) + message.finishedAtCoreBlockHeight = object.finishedAtCoreBlockHeight >>> 0; + if (object.finishedAtBlockTimeMs != null) + if ($util.Long) + (message.finishedAtBlockTimeMs = $util.Long.fromValue(object.finishedAtBlockTimeMs)).unsigned = true; + else if (typeof object.finishedAtBlockTimeMs === "string") + message.finishedAtBlockTimeMs = parseInt(object.finishedAtBlockTimeMs, 10); + else if (typeof object.finishedAtBlockTimeMs === "number") + message.finishedAtBlockTimeMs = object.finishedAtBlockTimeMs; + else if (typeof object.finishedAtBlockTimeMs === "object") + message.finishedAtBlockTimeMs = new $util.LongBits(object.finishedAtBlockTimeMs.low >>> 0, object.finishedAtBlockTimeMs.high >>> 0).toNumber(true); + if (object.finishedAtEpoch != null) + message.finishedAtEpoch = object.finishedAtEpoch >>> 0; + return message; + }; + + /** + * Creates a plain object from a FinishedVoteInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message FinishedVoteInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FinishedVoteInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.finishedVoteOutcome = options.enums === String ? "TOWARDS_IDENTITY" : 0; + if (options.bytes === String) + object.wonByIdentityId = ""; + else { + object.wonByIdentityId = []; + if (options.bytes !== Array) + object.wonByIdentityId = $util.newBuffer(object.wonByIdentityId); + } + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.finishedAtBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.finishedAtBlockHeight = options.longs === String ? "0" : 0; + object.finishedAtCoreBlockHeight = 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.finishedAtBlockTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.finishedAtBlockTimeMs = options.longs === String ? "0" : 0; + object.finishedAtEpoch = 0; + } + if (message.finishedVoteOutcome != null && message.hasOwnProperty("finishedVoteOutcome")) + object.finishedVoteOutcome = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome[message.finishedVoteOutcome] : message.finishedVoteOutcome; + if (message.wonByIdentityId != null && message.hasOwnProperty("wonByIdentityId")) + object.wonByIdentityId = options.bytes === String ? $util.base64.encode(message.wonByIdentityId, 0, message.wonByIdentityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.wonByIdentityId) : message.wonByIdentityId; + if (message.finishedAtBlockHeight != null && message.hasOwnProperty("finishedAtBlockHeight")) + if (typeof message.finishedAtBlockHeight === "number") + object.finishedAtBlockHeight = options.longs === String ? String(message.finishedAtBlockHeight) : message.finishedAtBlockHeight; + else + object.finishedAtBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.finishedAtBlockHeight) : options.longs === Number ? new $util.LongBits(message.finishedAtBlockHeight.low >>> 0, message.finishedAtBlockHeight.high >>> 0).toNumber(true) : message.finishedAtBlockHeight; + if (message.finishedAtCoreBlockHeight != null && message.hasOwnProperty("finishedAtCoreBlockHeight")) + object.finishedAtCoreBlockHeight = message.finishedAtCoreBlockHeight; + if (message.finishedAtBlockTimeMs != null && message.hasOwnProperty("finishedAtBlockTimeMs")) + if (typeof message.finishedAtBlockTimeMs === "number") + object.finishedAtBlockTimeMs = options.longs === String ? String(message.finishedAtBlockTimeMs) : message.finishedAtBlockTimeMs; + else + object.finishedAtBlockTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.finishedAtBlockTimeMs) : options.longs === Number ? new $util.LongBits(message.finishedAtBlockTimeMs.low >>> 0, message.finishedAtBlockTimeMs.high >>> 0).toNumber(true) : message.finishedAtBlockTimeMs; + if (message.finishedAtEpoch != null && message.hasOwnProperty("finishedAtEpoch")) + object.finishedAtEpoch = message.finishedAtEpoch; return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0(); - if (object.epochs != null) { - if (typeof object.epochs !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.epochs: object expected"); - message.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.fromObject(object.epochs); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; - }; + }; - /** - * Creates a plain object from a GetEpochsInfoResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message GetEpochsInfoResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetEpochsInfoResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.epochs != null && message.hasOwnProperty("epochs")) { - object.epochs = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(message.epochs, options); - if (options.oneofs) - object.result = "epochs"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; + /** + * Converts this FinishedVoteInfo to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo + * @instance + * @returns {Object.} JSON object + */ + FinishedVoteInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetEpochsInfoResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetEpochsInfoResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * FinishedVoteOutcome enum. + * @name org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome + * @enum {number} + * @property {number} TOWARDS_IDENTITY=0 TOWARDS_IDENTITY value + * @property {number} LOCKED=1 LOCKED value + * @property {number} NO_PREVIOUS_WINNER=2 NO_PREVIOUS_WINNER value + */ + FinishedVoteInfo.FinishedVoteOutcome = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TOWARDS_IDENTITY"] = 0; + values[valuesById[1] = "LOCKED"] = 1; + values[valuesById[2] = "NO_PREVIOUS_WINNER"] = 2; + return values; + })(); - GetEpochsInfoResponseV0.EpochInfos = (function() { + return FinishedVoteInfo; + })(); + + GetContestedResourceVoteStateResponseV0.ContestedResourceContenders = (function() { /** - * Properties of an EpochInfos. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @interface IEpochInfos - * @property {Array.|null} [epochInfos] EpochInfos epochInfos + * Properties of a ContestedResourceContenders. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @interface IContestedResourceContenders + * @property {Array.|null} [contenders] ContestedResourceContenders contenders + * @property {number|null} [abstainVoteTally] ContestedResourceContenders abstainVoteTally + * @property {number|null} [lockVoteTally] ContestedResourceContenders lockVoteTally + * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo|null} [finishedVoteInfo] ContestedResourceContenders finishedVoteInfo */ /** - * Constructs a new EpochInfos. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @classdesc Represents an EpochInfos. - * @implements IEpochInfos + * Constructs a new ContestedResourceContenders. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @classdesc Represents a ContestedResourceContenders. + * @implements IContestedResourceContenders * @constructor - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders=} [properties] Properties to set */ - function EpochInfos(properties) { - this.epochInfos = []; + function ContestedResourceContenders(properties) { + this.contenders = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25301,78 +34452,117 @@ $root.org = (function() { } /** - * EpochInfos epochInfos. - * @member {Array.} epochInfos - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * ContestedResourceContenders contenders. + * @member {Array.} contenders + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @instance */ - EpochInfos.prototype.epochInfos = $util.emptyArray; + ContestedResourceContenders.prototype.contenders = $util.emptyArray; /** - * Creates a new EpochInfos instance using the specified properties. + * ContestedResourceContenders abstainVoteTally. + * @member {number} abstainVoteTally + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders + * @instance + */ + ContestedResourceContenders.prototype.abstainVoteTally = 0; + + /** + * ContestedResourceContenders lockVoteTally. + * @member {number} lockVoteTally + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders + * @instance + */ + ContestedResourceContenders.prototype.lockVoteTally = 0; + + /** + * ContestedResourceContenders finishedVoteInfo. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo|null|undefined} finishedVoteInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders + * @instance + */ + ContestedResourceContenders.prototype.finishedVoteInfo = null; + + /** + * Creates a new ContestedResourceContenders instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders instance */ - EpochInfos.create = function create(properties) { - return new EpochInfos(properties); + ContestedResourceContenders.create = function create(properties) { + return new ContestedResourceContenders(properties); }; /** - * Encodes the specified EpochInfos message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify|verify} messages. + * Encodes the specified ContestedResourceContenders message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos} message EpochInfos message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders} message ContestedResourceContenders message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EpochInfos.encode = function encode(message, writer) { + ContestedResourceContenders.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.epochInfos != null && message.epochInfos.length) - for (var i = 0; i < message.epochInfos.length; ++i) - $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.encode(message.epochInfos[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contenders != null && message.contenders.length) + for (var i = 0; i < message.contenders.length; ++i) + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.encode(message.contenders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.abstainVoteTally != null && Object.hasOwnProperty.call(message, "abstainVoteTally")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.abstainVoteTally); + if (message.lockVoteTally != null && Object.hasOwnProperty.call(message, "lockVoteTally")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.lockVoteTally); + if (message.finishedVoteInfo != null && Object.hasOwnProperty.call(message, "finishedVoteInfo")) + $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.encode(message.finishedVoteInfo, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified EpochInfos message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.verify|verify} messages. + * Encodes the specified ContestedResourceContenders message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfos} message EpochInfos message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders} message ContestedResourceContenders message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EpochInfos.encodeDelimited = function encodeDelimited(message, writer) { + ContestedResourceContenders.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EpochInfos message from the specified reader or buffer. + * Decodes a ContestedResourceContenders message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EpochInfos.decode = function decode(reader, length) { + ContestedResourceContenders.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.epochInfos && message.epochInfos.length)) - message.epochInfos = []; - message.epochInfos.push($root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.decode(reader, reader.uint32())); + if (!(message.contenders && message.contenders.length)) + message.contenders = []; + message.contenders.push($root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.decode(reader, reader.uint32())); + break; + case 2: + message.abstainVoteTally = reader.uint32(); + break; + case 3: + message.lockVoteTally = reader.uint32(); + break; + case 4: + message.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -25383,129 +34573,157 @@ $root.org = (function() { }; /** - * Decodes an EpochInfos message from the specified reader or buffer, length delimited. + * Decodes a ContestedResourceContenders message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EpochInfos.decodeDelimited = function decodeDelimited(reader) { + ContestedResourceContenders.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EpochInfos message. + * Verifies a ContestedResourceContenders message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EpochInfos.verify = function verify(message) { + ContestedResourceContenders.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.epochInfos != null && message.hasOwnProperty("epochInfos")) { - if (!Array.isArray(message.epochInfos)) - return "epochInfos: array expected"; - for (var i = 0; i < message.epochInfos.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify(message.epochInfos[i]); + if (message.contenders != null && message.hasOwnProperty("contenders")) { + if (!Array.isArray(message.contenders)) + return "contenders: array expected"; + for (var i = 0; i < message.contenders.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify(message.contenders[i]); if (error) - return "epochInfos." + error; + return "contenders." + error; } } + if (message.abstainVoteTally != null && message.hasOwnProperty("abstainVoteTally")) + if (!$util.isInteger(message.abstainVoteTally)) + return "abstainVoteTally: integer expected"; + if (message.lockVoteTally != null && message.hasOwnProperty("lockVoteTally")) + if (!$util.isInteger(message.lockVoteTally)) + return "lockVoteTally: integer expected"; + if (message.finishedVoteInfo != null && message.hasOwnProperty("finishedVoteInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify(message.finishedVoteInfo); + if (error) + return "finishedVoteInfo." + error; + } return null; }; /** - * Creates an EpochInfos message from a plain object. Also converts values to their respective internal types. + * Creates a ContestedResourceContenders message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} EpochInfos + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders */ - EpochInfos.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos) + ContestedResourceContenders.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders) return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos(); - if (object.epochInfos) { - if (!Array.isArray(object.epochInfos)) - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epochInfos: array expected"); - message.epochInfos = []; - for (var i = 0; i < object.epochInfos.length; ++i) { - if (typeof object.epochInfos[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epochInfos: object expected"); - message.epochInfos[i] = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.fromObject(object.epochInfos[i]); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders(); + if (object.contenders) { + if (!Array.isArray(object.contenders)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders: array expected"); + message.contenders = []; + for (var i = 0; i < object.contenders.length; ++i) { + if (typeof object.contenders[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders: object expected"); + message.contenders[i] = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.fromObject(object.contenders[i]); } } + if (object.abstainVoteTally != null) + message.abstainVoteTally = object.abstainVoteTally >>> 0; + if (object.lockVoteTally != null) + message.lockVoteTally = object.lockVoteTally >>> 0; + if (object.finishedVoteInfo != null) { + if (typeof object.finishedVoteInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.finishedVoteInfo: object expected"); + message.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.fromObject(object.finishedVoteInfo); + } return message; }; /** - * Creates a plain object from an EpochInfos message. Also converts values to other types if specified. + * Creates a plain object from a ContestedResourceContenders message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message EpochInfos + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message ContestedResourceContenders * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EpochInfos.toObject = function toObject(message, options) { + ContestedResourceContenders.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.epochInfos = []; - if (message.epochInfos && message.epochInfos.length) { - object.epochInfos = []; - for (var j = 0; j < message.epochInfos.length; ++j) - object.epochInfos[j] = $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(message.epochInfos[j], options); + object.contenders = []; + if (options.defaults) { + object.abstainVoteTally = 0; + object.lockVoteTally = 0; + object.finishedVoteInfo = null; + } + if (message.contenders && message.contenders.length) { + object.contenders = []; + for (var j = 0; j < message.contenders.length; ++j) + object.contenders[j] = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject(message.contenders[j], options); } + if (message.abstainVoteTally != null && message.hasOwnProperty("abstainVoteTally")) + object.abstainVoteTally = message.abstainVoteTally; + if (message.lockVoteTally != null && message.hasOwnProperty("lockVoteTally")) + object.lockVoteTally = message.lockVoteTally; + if (message.finishedVoteInfo != null && message.hasOwnProperty("finishedVoteInfo")) + object.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(message.finishedVoteInfo, options); return object; }; /** - * Converts this EpochInfos to JSON. + * Converts this ContestedResourceContenders to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders * @instance * @returns {Object.} JSON object */ - EpochInfos.prototype.toJSON = function toJSON() { + ContestedResourceContenders.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return EpochInfos; + return ContestedResourceContenders; })(); - GetEpochsInfoResponseV0.EpochInfo = (function() { + GetContestedResourceVoteStateResponseV0.Contender = (function() { /** - * Properties of an EpochInfo. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @interface IEpochInfo - * @property {number|null} [number] EpochInfo number - * @property {number|Long|null} [firstBlockHeight] EpochInfo firstBlockHeight - * @property {number|null} [firstCoreBlockHeight] EpochInfo firstCoreBlockHeight - * @property {number|Long|null} [startTime] EpochInfo startTime - * @property {number|null} [feeMultiplier] EpochInfo feeMultiplier - * @property {number|null} [protocolVersion] EpochInfo protocolVersion + * Properties of a Contender. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @interface IContender + * @property {Uint8Array|null} [identifier] Contender identifier + * @property {number|null} [voteCount] Contender voteCount + * @property {Uint8Array|null} [document] Contender document */ /** - * Constructs a new EpochInfo. - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0 - * @classdesc Represents an EpochInfo. - * @implements IEpochInfo + * Constructs a new Contender. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @classdesc Represents a Contender. + * @implements IContender * @constructor - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender=} [properties] Properties to set */ - function EpochInfo(properties) { + function Contender(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25513,140 +34731,101 @@ $root.org = (function() { } /** - * EpochInfo number. - * @member {number} number - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo - * @instance - */ - EpochInfo.prototype.number = 0; - - /** - * EpochInfo firstBlockHeight. - * @member {number|Long} firstBlockHeight - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo - * @instance - */ - EpochInfo.prototype.firstBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - - /** - * EpochInfo firstCoreBlockHeight. - * @member {number} firstCoreBlockHeight - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo - * @instance - */ - EpochInfo.prototype.firstCoreBlockHeight = 0; - - /** - * EpochInfo startTime. - * @member {number|Long} startTime - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * Contender identifier. + * @member {Uint8Array} identifier + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @instance */ - EpochInfo.prototype.startTime = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + Contender.prototype.identifier = $util.newBuffer([]); /** - * EpochInfo feeMultiplier. - * @member {number} feeMultiplier - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * Contender voteCount. + * @member {number} voteCount + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @instance */ - EpochInfo.prototype.feeMultiplier = 0; + Contender.prototype.voteCount = 0; /** - * EpochInfo protocolVersion. - * @member {number} protocolVersion - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * Contender document. + * @member {Uint8Array} document + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @instance */ - EpochInfo.prototype.protocolVersion = 0; + Contender.prototype.document = $util.newBuffer([]); /** - * Creates a new EpochInfo instance using the specified properties. + * Creates a new Contender instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender instance */ - EpochInfo.create = function create(properties) { - return new EpochInfo(properties); + Contender.create = function create(properties) { + return new Contender(properties); }; /** - * Encodes the specified EpochInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify|verify} messages. + * Encodes the specified Contender message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo} message EpochInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender} message Contender message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EpochInfo.encode = function encode(message, writer) { + Contender.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.number != null && Object.hasOwnProperty.call(message, "number")) - writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.number); - if (message.firstBlockHeight != null && Object.hasOwnProperty.call(message, "firstBlockHeight")) - writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.firstBlockHeight); - if (message.firstCoreBlockHeight != null && Object.hasOwnProperty.call(message, "firstCoreBlockHeight")) - writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.firstCoreBlockHeight); - if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) - writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.startTime); - if (message.feeMultiplier != null && Object.hasOwnProperty.call(message, "feeMultiplier")) - writer.uint32(/* id 5, wireType 1 =*/41).double(message.feeMultiplier); - if (message.protocolVersion != null && Object.hasOwnProperty.call(message, "protocolVersion")) - writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.protocolVersion); + if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identifier); + if (message.voteCount != null && Object.hasOwnProperty.call(message, "voteCount")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.voteCount); + if (message.document != null && Object.hasOwnProperty.call(message, "document")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.document); return writer; }; /** - * Encodes the specified EpochInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.verify|verify} messages. + * Encodes the specified Contender message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.IEpochInfo} message EpochInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender} message Contender message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EpochInfo.encodeDelimited = function encodeDelimited(message, writer) { + Contender.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EpochInfo message from the specified reader or buffer. + * Decodes a Contender message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EpochInfo.decode = function decode(reader, length) { + Contender.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.number = reader.uint32(); + message.identifier = reader.bytes(); break; case 2: - message.firstBlockHeight = reader.uint64(); + message.voteCount = reader.uint32(); break; case 3: - message.firstCoreBlockHeight = reader.uint32(); - break; - case 4: - message.startTime = reader.uint64(); - break; - case 5: - message.feeMultiplier = reader.double(); - break; - case 6: - message.protocolVersion = reader.uint32(); + message.document = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -25657,182 +34836,148 @@ $root.org = (function() { }; /** - * Decodes an EpochInfo message from the specified reader or buffer, length delimited. + * Decodes a Contender message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EpochInfo.decodeDelimited = function decodeDelimited(reader) { + Contender.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EpochInfo message. + * Verifies a Contender message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EpochInfo.verify = function verify(message) { + Contender.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.number != null && message.hasOwnProperty("number")) - if (!$util.isInteger(message.number)) - return "number: integer expected"; - if (message.firstBlockHeight != null && message.hasOwnProperty("firstBlockHeight")) - if (!$util.isInteger(message.firstBlockHeight) && !(message.firstBlockHeight && $util.isInteger(message.firstBlockHeight.low) && $util.isInteger(message.firstBlockHeight.high))) - return "firstBlockHeight: integer|Long expected"; - if (message.firstCoreBlockHeight != null && message.hasOwnProperty("firstCoreBlockHeight")) - if (!$util.isInteger(message.firstCoreBlockHeight)) - return "firstCoreBlockHeight: integer expected"; - if (message.startTime != null && message.hasOwnProperty("startTime")) - if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high))) - return "startTime: integer|Long expected"; - if (message.feeMultiplier != null && message.hasOwnProperty("feeMultiplier")) - if (typeof message.feeMultiplier !== "number") - return "feeMultiplier: number expected"; - if (message.protocolVersion != null && message.hasOwnProperty("protocolVersion")) - if (!$util.isInteger(message.protocolVersion)) - return "protocolVersion: integer expected"; + if (message.identifier != null && message.hasOwnProperty("identifier")) + if (!(message.identifier && typeof message.identifier.length === "number" || $util.isString(message.identifier))) + return "identifier: buffer expected"; + if (message.voteCount != null && message.hasOwnProperty("voteCount")) + if (!$util.isInteger(message.voteCount)) + return "voteCount: integer expected"; + if (message.document != null && message.hasOwnProperty("document")) + if (!(message.document && typeof message.document.length === "number" || $util.isString(message.document))) + return "document: buffer expected"; return null; }; /** - * Creates an EpochInfo message from a plain object. Also converts values to their respective internal types. + * Creates a Contender message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} EpochInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender */ - EpochInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo) + Contender.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender) return object; - var message = new $root.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo(); - if (object.number != null) - message.number = object.number >>> 0; - if (object.firstBlockHeight != null) - if ($util.Long) - (message.firstBlockHeight = $util.Long.fromValue(object.firstBlockHeight)).unsigned = true; - else if (typeof object.firstBlockHeight === "string") - message.firstBlockHeight = parseInt(object.firstBlockHeight, 10); - else if (typeof object.firstBlockHeight === "number") - message.firstBlockHeight = object.firstBlockHeight; - else if (typeof object.firstBlockHeight === "object") - message.firstBlockHeight = new $util.LongBits(object.firstBlockHeight.low >>> 0, object.firstBlockHeight.high >>> 0).toNumber(true); - if (object.firstCoreBlockHeight != null) - message.firstCoreBlockHeight = object.firstCoreBlockHeight >>> 0; - if (object.startTime != null) - if ($util.Long) - (message.startTime = $util.Long.fromValue(object.startTime)).unsigned = true; - else if (typeof object.startTime === "string") - message.startTime = parseInt(object.startTime, 10); - else if (typeof object.startTime === "number") - message.startTime = object.startTime; - else if (typeof object.startTime === "object") - message.startTime = new $util.LongBits(object.startTime.low >>> 0, object.startTime.high >>> 0).toNumber(true); - if (object.feeMultiplier != null) - message.feeMultiplier = Number(object.feeMultiplier); - if (object.protocolVersion != null) - message.protocolVersion = object.protocolVersion >>> 0; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender(); + if (object.identifier != null) + if (typeof object.identifier === "string") + $util.base64.decode(object.identifier, message.identifier = $util.newBuffer($util.base64.length(object.identifier)), 0); + else if (object.identifier.length >= 0) + message.identifier = object.identifier; + if (object.voteCount != null) + message.voteCount = object.voteCount >>> 0; + if (object.document != null) + if (typeof object.document === "string") + $util.base64.decode(object.document, message.document = $util.newBuffer($util.base64.length(object.document)), 0); + else if (object.document.length >= 0) + message.document = object.document; return message; }; /** - * Creates a plain object from an EpochInfo message. Also converts values to other types if specified. + * Creates a plain object from a Contender message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @static - * @param {org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message EpochInfo + * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message Contender * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EpochInfo.toObject = function toObject(message, options) { + Contender.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.number = 0; - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.firstBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.firstBlockHeight = options.longs === String ? "0" : 0; - object.firstCoreBlockHeight = 0; - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.startTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.startTime = options.longs === String ? "0" : 0; - object.feeMultiplier = 0; - object.protocolVersion = 0; + if (options.bytes === String) + object.identifier = ""; + else { + object.identifier = []; + if (options.bytes !== Array) + object.identifier = $util.newBuffer(object.identifier); + } + object.voteCount = 0; + if (options.bytes === String) + object.document = ""; + else { + object.document = []; + if (options.bytes !== Array) + object.document = $util.newBuffer(object.document); + } } - if (message.number != null && message.hasOwnProperty("number")) - object.number = message.number; - if (message.firstBlockHeight != null && message.hasOwnProperty("firstBlockHeight")) - if (typeof message.firstBlockHeight === "number") - object.firstBlockHeight = options.longs === String ? String(message.firstBlockHeight) : message.firstBlockHeight; - else - object.firstBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.firstBlockHeight) : options.longs === Number ? new $util.LongBits(message.firstBlockHeight.low >>> 0, message.firstBlockHeight.high >>> 0).toNumber(true) : message.firstBlockHeight; - if (message.firstCoreBlockHeight != null && message.hasOwnProperty("firstCoreBlockHeight")) - object.firstCoreBlockHeight = message.firstCoreBlockHeight; - if (message.startTime != null && message.hasOwnProperty("startTime")) - if (typeof message.startTime === "number") - object.startTime = options.longs === String ? String(message.startTime) : message.startTime; - else - object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber(true) : message.startTime; - if (message.feeMultiplier != null && message.hasOwnProperty("feeMultiplier")) - object.feeMultiplier = options.json && !isFinite(message.feeMultiplier) ? String(message.feeMultiplier) : message.feeMultiplier; - if (message.protocolVersion != null && message.hasOwnProperty("protocolVersion")) - object.protocolVersion = message.protocolVersion; + if (message.identifier != null && message.hasOwnProperty("identifier")) + object.identifier = options.bytes === String ? $util.base64.encode(message.identifier, 0, message.identifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.identifier) : message.identifier; + if (message.voteCount != null && message.hasOwnProperty("voteCount")) + object.voteCount = message.voteCount; + if (message.document != null && message.hasOwnProperty("document")) + object.document = options.bytes === String ? $util.base64.encode(message.document, 0, message.document.length) : options.bytes === Array ? Array.prototype.slice.call(message.document) : message.document; return object; }; /** - * Converts this EpochInfo to JSON. + * Converts this Contender to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender * @instance * @returns {Object.} JSON object */ - EpochInfo.prototype.toJSON = function toJSON() { + Contender.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return EpochInfo; + return Contender; })(); - return GetEpochsInfoResponseV0; + return GetContestedResourceVoteStateResponseV0; })(); - return GetEpochsInfoResponse; + return GetContestedResourceVoteStateResponse; })(); - v0.GetContestedResourcesRequest = (function() { + v0.GetContestedResourceVotersForIdentityRequest = (function() { /** - * Properties of a GetContestedResourcesRequest. + * Properties of a GetContestedResourceVotersForIdentityRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourcesRequest - * @property {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0|null} [v0] GetContestedResourcesRequest v0 + * @interface IGetContestedResourceVotersForIdentityRequest + * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0|null} [v0] GetContestedResourceVotersForIdentityRequest v0 */ /** - * Constructs a new GetContestedResourcesRequest. + * Constructs a new GetContestedResourceVotersForIdentityRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourcesRequest. - * @implements IGetContestedResourcesRequest + * @classdesc Represents a GetContestedResourceVotersForIdentityRequest. + * @implements IGetContestedResourceVotersForIdentityRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest=} [properties] Properties to set */ - function GetContestedResourcesRequest(properties) { + function GetContestedResourceVotersForIdentityRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -25840,89 +34985,89 @@ $root.org = (function() { } /** - * GetContestedResourcesRequest v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * GetContestedResourceVotersForIdentityRequest v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @instance */ - GetContestedResourcesRequest.prototype.v0 = null; + GetContestedResourceVotersForIdentityRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourcesRequest version. + * GetContestedResourceVotersForIdentityRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @instance */ - Object.defineProperty(GetContestedResourcesRequest.prototype, "version", { + Object.defineProperty(GetContestedResourceVotersForIdentityRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourcesRequest instance using the specified properties. + * Creates a new GetContestedResourceVotersForIdentityRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest instance */ - GetContestedResourcesRequest.create = function create(properties) { - return new GetContestedResourcesRequest(properties); + GetContestedResourceVotersForIdentityRequest.create = function create(properties) { + return new GetContestedResourceVotersForIdentityRequest(properties); }; /** - * Encodes the specified GetContestedResourcesRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest} message GetContestedResourcesRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesRequest.encode = function encode(message, writer) { + GetContestedResourceVotersForIdentityRequest.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourcesRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesRequest} message GetContestedResourcesRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVotersForIdentityRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourcesRequest message from the specified reader or buffer. + * Decodes a GetContestedResourceVotersForIdentityRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @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.GetContestedResourcesRequest} GetContestedResourcesRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesRequest.decode = function decode(reader, length) { + GetContestedResourceVotersForIdentityRequest.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.GetContestedResourcesRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -25933,37 +35078,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourcesRequest message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVotersForIdentityRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesRequest.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVotersForIdentityRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourcesRequest message. + * Verifies a GetContestedResourceVotersForIdentityRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourcesRequest.verify = function verify(message) { + GetContestedResourceVotersForIdentityRequest.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -25972,40 +35117,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourcesRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVotersForIdentityRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest} GetContestedResourcesRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest */ - GetContestedResourcesRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest) + GetContestedResourceVotersForIdentityRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourcesRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVotersForIdentityRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest} message GetContestedResourcesRequest + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourcesRequest.toObject = function toObject(message, options) { + GetContestedResourceVotersForIdentityRequest.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -26013,44 +35158,43 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourcesRequest to JSON. + * Converts this GetContestedResourceVotersForIdentityRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest * @instance * @returns {Object.} JSON object */ - GetContestedResourcesRequest.prototype.toJSON = function toJSON() { + GetContestedResourceVotersForIdentityRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourcesRequest.GetContestedResourcesRequestV0 = (function() { + GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 = (function() { /** - * Properties of a GetContestedResourcesRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest - * @interface IGetContestedResourcesRequestV0 - * @property {Uint8Array|null} [contractId] GetContestedResourcesRequestV0 contractId - * @property {string|null} [documentTypeName] GetContestedResourcesRequestV0 documentTypeName - * @property {string|null} [indexName] GetContestedResourcesRequestV0 indexName - * @property {Array.|null} [startIndexValues] GetContestedResourcesRequestV0 startIndexValues - * @property {Array.|null} [endIndexValues] GetContestedResourcesRequestV0 endIndexValues - * @property {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo|null} [startAtValueInfo] GetContestedResourcesRequestV0 startAtValueInfo - * @property {number|null} [count] GetContestedResourcesRequestV0 count - * @property {boolean|null} [orderAscending] GetContestedResourcesRequestV0 orderAscending - * @property {boolean|null} [prove] GetContestedResourcesRequestV0 prove + * Properties of a GetContestedResourceVotersForIdentityRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @interface IGetContestedResourceVotersForIdentityRequestV0 + * @property {Uint8Array|null} [contractId] GetContestedResourceVotersForIdentityRequestV0 contractId + * @property {string|null} [documentTypeName] GetContestedResourceVotersForIdentityRequestV0 documentTypeName + * @property {string|null} [indexName] GetContestedResourceVotersForIdentityRequestV0 indexName + * @property {Array.|null} [indexValues] GetContestedResourceVotersForIdentityRequestV0 indexValues + * @property {Uint8Array|null} [contestantId] GetContestedResourceVotersForIdentityRequestV0 contestantId + * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo|null} [startAtIdentifierInfo] GetContestedResourceVotersForIdentityRequestV0 startAtIdentifierInfo + * @property {number|null} [count] GetContestedResourceVotersForIdentityRequestV0 count + * @property {boolean|null} [orderAscending] GetContestedResourceVotersForIdentityRequestV0 orderAscending + * @property {boolean|null} [prove] GetContestedResourceVotersForIdentityRequestV0 prove */ /** - * Constructs a new GetContestedResourcesRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest - * @classdesc Represents a GetContestedResourcesRequestV0. - * @implements IGetContestedResourcesRequestV0 + * Constructs a new GetContestedResourceVotersForIdentityRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @classdesc Represents a GetContestedResourceVotersForIdentityRequestV0. + * @implements IGetContestedResourceVotersForIdentityRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0=} [properties] Properties to set */ - function GetContestedResourcesRequestV0(properties) { - this.startIndexValues = []; - this.endIndexValues = []; + function GetContestedResourceVotersForIdentityRequestV0(properties) { + this.indexValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26058,99 +35202,99 @@ $root.org = (function() { } /** - * GetContestedResourcesRequestV0 contractId. + * GetContestedResourceVotersForIdentityRequestV0 contractId. * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.contractId = $util.newBuffer([]); + GetContestedResourceVotersForIdentityRequestV0.prototype.contractId = $util.newBuffer([]); /** - * GetContestedResourcesRequestV0 documentTypeName. + * GetContestedResourceVotersForIdentityRequestV0 documentTypeName. * @member {string} documentTypeName - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.documentTypeName = ""; + GetContestedResourceVotersForIdentityRequestV0.prototype.documentTypeName = ""; /** - * GetContestedResourcesRequestV0 indexName. + * GetContestedResourceVotersForIdentityRequestV0 indexName. * @member {string} indexName - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.indexName = ""; + GetContestedResourceVotersForIdentityRequestV0.prototype.indexName = ""; /** - * GetContestedResourcesRequestV0 startIndexValues. - * @member {Array.} startIndexValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * GetContestedResourceVotersForIdentityRequestV0 indexValues. + * @member {Array.} indexValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.startIndexValues = $util.emptyArray; + GetContestedResourceVotersForIdentityRequestV0.prototype.indexValues = $util.emptyArray; /** - * GetContestedResourcesRequestV0 endIndexValues. - * @member {Array.} endIndexValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * GetContestedResourceVotersForIdentityRequestV0 contestantId. + * @member {Uint8Array} contestantId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.endIndexValues = $util.emptyArray; + GetContestedResourceVotersForIdentityRequestV0.prototype.contestantId = $util.newBuffer([]); /** - * GetContestedResourcesRequestV0 startAtValueInfo. - * @member {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo|null|undefined} startAtValueInfo - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * GetContestedResourceVotersForIdentityRequestV0 startAtIdentifierInfo. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo|null|undefined} startAtIdentifierInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.startAtValueInfo = null; + GetContestedResourceVotersForIdentityRequestV0.prototype.startAtIdentifierInfo = null; /** - * GetContestedResourcesRequestV0 count. + * GetContestedResourceVotersForIdentityRequestV0 count. * @member {number} count - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.count = 0; + GetContestedResourceVotersForIdentityRequestV0.prototype.count = 0; /** - * GetContestedResourcesRequestV0 orderAscending. + * GetContestedResourceVotersForIdentityRequestV0 orderAscending. * @member {boolean} orderAscending - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.orderAscending = false; + GetContestedResourceVotersForIdentityRequestV0.prototype.orderAscending = false; /** - * GetContestedResourcesRequestV0 prove. + * GetContestedResourceVotersForIdentityRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance */ - GetContestedResourcesRequestV0.prototype.prove = false; + GetContestedResourceVotersForIdentityRequestV0.prototype.prove = false; /** - * Creates a new GetContestedResourcesRequestV0 instance using the specified properties. + * Creates a new GetContestedResourceVotersForIdentityRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 instance */ - GetContestedResourcesRequestV0.create = function create(properties) { - return new GetContestedResourcesRequestV0(properties); + GetContestedResourceVotersForIdentityRequestV0.create = function create(properties) { + return new GetContestedResourceVotersForIdentityRequestV0(properties); }; /** - * Encodes the specified GetContestedResourcesRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesRequestV0.encode = function encode(message, writer) { + GetContestedResourceVotersForIdentityRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) @@ -26159,14 +35303,13 @@ $root.org = (function() { writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); - if (message.startIndexValues != null && message.startIndexValues.length) - for (var i = 0; i < message.startIndexValues.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.startIndexValues[i]); - if (message.endIndexValues != null && message.endIndexValues.length) - for (var i = 0; i < message.endIndexValues.length; ++i) - writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.endIndexValues[i]); - if (message.startAtValueInfo != null && Object.hasOwnProperty.call(message, "startAtValueInfo")) - $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.encode(message.startAtValueInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.indexValues != null && message.indexValues.length) + for (var i = 0; i < message.indexValues.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); + if (message.contestantId != null && Object.hasOwnProperty.call(message, "contestantId")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.contestantId); + if (message.startAtIdentifierInfo != null && Object.hasOwnProperty.call(message, "startAtIdentifierInfo")) + $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.encode(message.startAtIdentifierInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); if (message.count != null && Object.hasOwnProperty.call(message, "count")) writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.count); if (message.orderAscending != null && Object.hasOwnProperty.call(message, "orderAscending")) @@ -26177,33 +35320,33 @@ $root.org = (function() { }; /** - * Encodes the specified GetContestedResourcesRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.IGetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVotersForIdentityRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourcesRequestV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceVotersForIdentityRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesRequestV0.decode = function decode(reader, length) { + GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -26217,17 +35360,15 @@ $root.org = (function() { message.indexName = reader.string(); break; case 4: - if (!(message.startIndexValues && message.startIndexValues.length)) - message.startIndexValues = []; - message.startIndexValues.push(reader.bytes()); + if (!(message.indexValues && message.indexValues.length)) + message.indexValues = []; + message.indexValues.push(reader.bytes()); break; case 5: - if (!(message.endIndexValues && message.endIndexValues.length)) - message.endIndexValues = []; - message.endIndexValues.push(reader.bytes()); + message.contestantId = reader.bytes(); break; case 6: - message.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.decode(reader, reader.uint32()); + message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.decode(reader, reader.uint32()); break; case 7: message.count = reader.uint32(); @@ -26247,30 +35388,30 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourcesRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVotersForIdentityRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVotersForIdentityRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourcesRequestV0 message. + * Verifies a GetContestedResourceVotersForIdentityRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourcesRequestV0.verify = function verify(message) { + GetContestedResourceVotersForIdentityRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.contractId != null && message.hasOwnProperty("contractId")) @@ -26282,24 +35423,20 @@ $root.org = (function() { if (message.indexName != null && message.hasOwnProperty("indexName")) if (!$util.isString(message.indexName)) return "indexName: string expected"; - if (message.startIndexValues != null && message.hasOwnProperty("startIndexValues")) { - if (!Array.isArray(message.startIndexValues)) - return "startIndexValues: array expected"; - for (var i = 0; i < message.startIndexValues.length; ++i) - if (!(message.startIndexValues[i] && typeof message.startIndexValues[i].length === "number" || $util.isString(message.startIndexValues[i]))) - return "startIndexValues: buffer[] expected"; - } - if (message.endIndexValues != null && message.hasOwnProperty("endIndexValues")) { - if (!Array.isArray(message.endIndexValues)) - return "endIndexValues: array expected"; - for (var i = 0; i < message.endIndexValues.length; ++i) - if (!(message.endIndexValues[i] && typeof message.endIndexValues[i].length === "number" || $util.isString(message.endIndexValues[i]))) - return "endIndexValues: buffer[] expected"; + if (message.indexValues != null && message.hasOwnProperty("indexValues")) { + if (!Array.isArray(message.indexValues)) + return "indexValues: array expected"; + for (var i = 0; i < message.indexValues.length; ++i) + if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) + return "indexValues: buffer[] expected"; } - if (message.startAtValueInfo != null && message.hasOwnProperty("startAtValueInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify(message.startAtValueInfo); + if (message.contestantId != null && message.hasOwnProperty("contestantId")) + if (!(message.contestantId && typeof message.contestantId.length === "number" || $util.isString(message.contestantId))) + return "contestantId: buffer expected"; + if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify(message.startAtIdentifierInfo); if (error) - return "startAtValueInfo." + error; + return "startAtIdentifierInfo." + error; } if (message.count != null && message.hasOwnProperty("count")) if (!$util.isInteger(message.count)) @@ -26314,17 +35451,17 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourcesRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVotersForIdentityRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} GetContestedResourcesRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 */ - GetContestedResourcesRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0) + GetContestedResourceVotersForIdentityRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0(); if (object.contractId != null) if (typeof object.contractId === "string") $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); @@ -26334,30 +35471,25 @@ $root.org = (function() { message.documentTypeName = String(object.documentTypeName); if (object.indexName != null) message.indexName = String(object.indexName); - if (object.startIndexValues) { - if (!Array.isArray(object.startIndexValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.startIndexValues: array expected"); - message.startIndexValues = []; - for (var i = 0; i < object.startIndexValues.length; ++i) - if (typeof object.startIndexValues[i] === "string") - $util.base64.decode(object.startIndexValues[i], message.startIndexValues[i] = $util.newBuffer($util.base64.length(object.startIndexValues[i])), 0); - else if (object.startIndexValues[i].length >= 0) - message.startIndexValues[i] = object.startIndexValues[i]; - } - if (object.endIndexValues) { - if (!Array.isArray(object.endIndexValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.endIndexValues: array expected"); - message.endIndexValues = []; - for (var i = 0; i < object.endIndexValues.length; ++i) - if (typeof object.endIndexValues[i] === "string") - $util.base64.decode(object.endIndexValues[i], message.endIndexValues[i] = $util.newBuffer($util.base64.length(object.endIndexValues[i])), 0); - else if (object.endIndexValues[i].length >= 0) - message.endIndexValues[i] = object.endIndexValues[i]; + if (object.indexValues) { + if (!Array.isArray(object.indexValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.indexValues: array expected"); + message.indexValues = []; + for (var i = 0; i < object.indexValues.length; ++i) + if (typeof object.indexValues[i] === "string") + $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); + else if (object.indexValues[i].length >= 0) + message.indexValues[i] = object.indexValues[i]; } - if (object.startAtValueInfo != null) { - if (typeof object.startAtValueInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.startAtValueInfo: object expected"); - message.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.fromObject(object.startAtValueInfo); + if (object.contestantId != null) + if (typeof object.contestantId === "string") + $util.base64.decode(object.contestantId, message.contestantId = $util.newBuffer($util.base64.length(object.contestantId)), 0); + else if (object.contestantId.length >= 0) + message.contestantId = object.contestantId; + if (object.startAtIdentifierInfo != null) { + if (typeof object.startAtIdentifierInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.startAtIdentifierInfo: object expected"); + message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.fromObject(object.startAtIdentifierInfo); } if (object.count != null) message.count = object.count >>> 0; @@ -26369,22 +35501,20 @@ $root.org = (function() { }; /** - * Creates a plain object from a GetContestedResourcesRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVotersForIdentityRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message GetContestedResourcesRequestV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourcesRequestV0.toObject = function toObject(message, options) { + GetContestedResourceVotersForIdentityRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.startIndexValues = []; - object.endIndexValues = []; - } + if (options.arrays || options.defaults) + object.indexValues = []; if (options.defaults) { if (options.bytes === String) object.contractId = ""; @@ -26395,7 +35525,14 @@ $root.org = (function() { } object.documentTypeName = ""; object.indexName = ""; - object.startAtValueInfo = null; + if (options.bytes === String) + object.contestantId = ""; + else { + object.contestantId = []; + if (options.bytes !== Array) + object.contestantId = $util.newBuffer(object.contestantId); + } + object.startAtIdentifierInfo = null; object.count = 0; object.orderAscending = false; object.prove = false; @@ -26406,18 +35543,15 @@ $root.org = (function() { object.documentTypeName = message.documentTypeName; if (message.indexName != null && message.hasOwnProperty("indexName")) object.indexName = message.indexName; - if (message.startIndexValues && message.startIndexValues.length) { - object.startIndexValues = []; - for (var j = 0; j < message.startIndexValues.length; ++j) - object.startIndexValues[j] = options.bytes === String ? $util.base64.encode(message.startIndexValues[j], 0, message.startIndexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.startIndexValues[j]) : message.startIndexValues[j]; - } - if (message.endIndexValues && message.endIndexValues.length) { - object.endIndexValues = []; - for (var j = 0; j < message.endIndexValues.length; ++j) - object.endIndexValues[j] = options.bytes === String ? $util.base64.encode(message.endIndexValues[j], 0, message.endIndexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.endIndexValues[j]) : message.endIndexValues[j]; + if (message.indexValues && message.indexValues.length) { + object.indexValues = []; + for (var j = 0; j < message.indexValues.length; ++j) + object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; } - if (message.startAtValueInfo != null && message.hasOwnProperty("startAtValueInfo")) - object.startAtValueInfo = $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(message.startAtValueInfo, options); + if (message.contestantId != null && message.hasOwnProperty("contestantId")) + object.contestantId = options.bytes === String ? $util.base64.encode(message.contestantId, 0, message.contestantId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contestantId) : message.contestantId; + if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) + object.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(message.startAtIdentifierInfo, options); if (message.count != null && message.hasOwnProperty("count")) object.count = message.count; if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) @@ -26428,35 +35562,35 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourcesRequestV0 to JSON. + * Converts this GetContestedResourceVotersForIdentityRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 * @instance * @returns {Object.} JSON object */ - GetContestedResourcesRequestV0.prototype.toJSON = function toJSON() { + GetContestedResourceVotersForIdentityRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourcesRequestV0.StartAtValueInfo = (function() { + GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo = (function() { /** - * Properties of a StartAtValueInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 - * @interface IStartAtValueInfo - * @property {Uint8Array|null} [startValue] StartAtValueInfo startValue - * @property {boolean|null} [startValueIncluded] StartAtValueInfo startValueIncluded + * Properties of a StartAtIdentifierInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @interface IStartAtIdentifierInfo + * @property {Uint8Array|null} [startIdentifier] StartAtIdentifierInfo startIdentifier + * @property {boolean|null} [startIdentifierIncluded] StartAtIdentifierInfo startIdentifierIncluded */ /** - * Constructs a new StartAtValueInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0 - * @classdesc Represents a StartAtValueInfo. - * @implements IStartAtValueInfo + * Constructs a new StartAtIdentifierInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @classdesc Represents a StartAtIdentifierInfo. + * @implements IStartAtIdentifierInfo * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set */ - function StartAtValueInfo(properties) { + function StartAtIdentifierInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26464,88 +35598,88 @@ $root.org = (function() { } /** - * StartAtValueInfo startValue. - * @member {Uint8Array} startValue - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * StartAtIdentifierInfo startIdentifier. + * @member {Uint8Array} startIdentifier + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @instance */ - StartAtValueInfo.prototype.startValue = $util.newBuffer([]); + StartAtIdentifierInfo.prototype.startIdentifier = $util.newBuffer([]); /** - * StartAtValueInfo startValueIncluded. - * @member {boolean} startValueIncluded - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * StartAtIdentifierInfo startIdentifierIncluded. + * @member {boolean} startIdentifierIncluded + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @instance */ - StartAtValueInfo.prototype.startValueIncluded = false; + StartAtIdentifierInfo.prototype.startIdentifierIncluded = false; /** - * Creates a new StartAtValueInfo instance using the specified properties. + * Creates a new StartAtIdentifierInfo instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo instance */ - StartAtValueInfo.create = function create(properties) { - return new StartAtValueInfo(properties); + StartAtIdentifierInfo.create = function create(properties) { + return new StartAtIdentifierInfo(properties); }; /** - * Encodes the specified StartAtValueInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify|verify} messages. + * Encodes the specified StartAtIdentifierInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo} message StartAtValueInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - StartAtValueInfo.encode = function encode(message, writer) { + StartAtIdentifierInfo.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startValue != null && Object.hasOwnProperty.call(message, "startValue")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startValue); - if (message.startValueIncluded != null && Object.hasOwnProperty.call(message, "startValueIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startValueIncluded); + if (message.startIdentifier != null && Object.hasOwnProperty.call(message, "startIdentifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startIdentifier); + if (message.startIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startIdentifierIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startIdentifierIncluded); return writer; }; /** - * Encodes the specified StartAtValueInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.verify|verify} messages. + * Encodes the specified StartAtIdentifierInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.IStartAtValueInfo} message StartAtValueInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - StartAtValueInfo.encodeDelimited = function encodeDelimited(message, writer) { + StartAtIdentifierInfo.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a StartAtValueInfo message from the specified reader or buffer. + * Decodes a StartAtIdentifierInfo message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StartAtValueInfo.decode = function decode(reader, length) { + StartAtIdentifierInfo.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startValue = reader.bytes(); + message.startIdentifier = reader.bytes(); break; case 2: - message.startValueIncluded = reader.bool(); + message.startIdentifierIncluded = reader.bool(); break; default: reader.skipType(tag & 7); @@ -26556,131 +35690,131 @@ $root.org = (function() { }; /** - * Decodes a StartAtValueInfo message from the specified reader or buffer, length delimited. + * Decodes a StartAtIdentifierInfo message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StartAtValueInfo.decodeDelimited = function decodeDelimited(reader) { + StartAtIdentifierInfo.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a StartAtValueInfo message. + * Verifies a StartAtIdentifierInfo message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StartAtValueInfo.verify = function verify(message) { + StartAtIdentifierInfo.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startValue != null && message.hasOwnProperty("startValue")) - if (!(message.startValue && typeof message.startValue.length === "number" || $util.isString(message.startValue))) - return "startValue: buffer expected"; - if (message.startValueIncluded != null && message.hasOwnProperty("startValueIncluded")) - if (typeof message.startValueIncluded !== "boolean") - return "startValueIncluded: boolean expected"; + if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) + if (!(message.startIdentifier && typeof message.startIdentifier.length === "number" || $util.isString(message.startIdentifier))) + return "startIdentifier: buffer expected"; + if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) + if (typeof message.startIdentifierIncluded !== "boolean") + return "startIdentifierIncluded: boolean expected"; return null; }; /** - * Creates a StartAtValueInfo message from a plain object. Also converts values to their respective internal types. + * Creates a StartAtIdentifierInfo message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} StartAtValueInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo */ - StartAtValueInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo) + StartAtIdentifierInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo(); - if (object.startValue != null) - if (typeof object.startValue === "string") - $util.base64.decode(object.startValue, message.startValue = $util.newBuffer($util.base64.length(object.startValue)), 0); - else if (object.startValue.length >= 0) - message.startValue = object.startValue; - if (object.startValueIncluded != null) - message.startValueIncluded = Boolean(object.startValueIncluded); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo(); + if (object.startIdentifier != null) + if (typeof object.startIdentifier === "string") + $util.base64.decode(object.startIdentifier, message.startIdentifier = $util.newBuffer($util.base64.length(object.startIdentifier)), 0); + else if (object.startIdentifier.length >= 0) + message.startIdentifier = object.startIdentifier; + if (object.startIdentifierIncluded != null) + message.startIdentifierIncluded = Boolean(object.startIdentifierIncluded); return message; }; /** - * Creates a plain object from a StartAtValueInfo message. Also converts values to other types if specified. + * Creates a plain object from a StartAtIdentifierInfo message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message StartAtValueInfo + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message StartAtIdentifierInfo * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - StartAtValueInfo.toObject = function toObject(message, options) { + StartAtIdentifierInfo.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { if (options.bytes === String) - object.startValue = ""; + object.startIdentifier = ""; else { - object.startValue = []; + object.startIdentifier = []; if (options.bytes !== Array) - object.startValue = $util.newBuffer(object.startValue); + object.startIdentifier = $util.newBuffer(object.startIdentifier); } - object.startValueIncluded = false; + object.startIdentifierIncluded = false; } - if (message.startValue != null && message.hasOwnProperty("startValue")) - object.startValue = options.bytes === String ? $util.base64.encode(message.startValue, 0, message.startValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValue) : message.startValue; - if (message.startValueIncluded != null && message.hasOwnProperty("startValueIncluded")) - object.startValueIncluded = message.startValueIncluded; + if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) + object.startIdentifier = options.bytes === String ? $util.base64.encode(message.startIdentifier, 0, message.startIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startIdentifier) : message.startIdentifier; + if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) + object.startIdentifierIncluded = message.startIdentifierIncluded; return object; }; /** - * Converts this StartAtValueInfo to JSON. + * Converts this StartAtIdentifierInfo to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo * @instance * @returns {Object.} JSON object */ - StartAtValueInfo.prototype.toJSON = function toJSON() { + StartAtIdentifierInfo.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return StartAtValueInfo; + return StartAtIdentifierInfo; })(); - return GetContestedResourcesRequestV0; + return GetContestedResourceVotersForIdentityRequestV0; })(); - return GetContestedResourcesRequest; + return GetContestedResourceVotersForIdentityRequest; })(); - v0.GetContestedResourcesResponse = (function() { + v0.GetContestedResourceVotersForIdentityResponse = (function() { /** - * Properties of a GetContestedResourcesResponse. + * Properties of a GetContestedResourceVotersForIdentityResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourcesResponse - * @property {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0|null} [v0] GetContestedResourcesResponse v0 + * @interface IGetContestedResourceVotersForIdentityResponse + * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0|null} [v0] GetContestedResourceVotersForIdentityResponse v0 */ /** - * Constructs a new GetContestedResourcesResponse. + * Constructs a new GetContestedResourceVotersForIdentityResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourcesResponse. - * @implements IGetContestedResourcesResponse + * @classdesc Represents a GetContestedResourceVotersForIdentityResponse. + * @implements IGetContestedResourceVotersForIdentityResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse=} [properties] Properties to set */ - function GetContestedResourcesResponse(properties) { + function GetContestedResourceVotersForIdentityResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26688,89 +35822,89 @@ $root.org = (function() { } /** - * GetContestedResourcesResponse v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * GetContestedResourceVotersForIdentityResponse v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @instance */ - GetContestedResourcesResponse.prototype.v0 = null; + GetContestedResourceVotersForIdentityResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourcesResponse version. + * GetContestedResourceVotersForIdentityResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @instance */ - Object.defineProperty(GetContestedResourcesResponse.prototype, "version", { + Object.defineProperty(GetContestedResourceVotersForIdentityResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourcesResponse instance using the specified properties. + * Creates a new GetContestedResourceVotersForIdentityResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse instance */ - GetContestedResourcesResponse.create = function create(properties) { - return new GetContestedResourcesResponse(properties); + GetContestedResourceVotersForIdentityResponse.create = function create(properties) { + return new GetContestedResourceVotersForIdentityResponse(properties); }; /** - * Encodes the specified GetContestedResourcesResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse} message GetContestedResourcesResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesResponse.encode = function encode(message, writer) { + GetContestedResourceVotersForIdentityResponse.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourcesResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourcesResponse} message GetContestedResourcesResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVotersForIdentityResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourcesResponse message from the specified reader or buffer. + * Decodes a GetContestedResourceVotersForIdentityResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @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.GetContestedResourcesResponse} GetContestedResourcesResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesResponse.decode = function decode(reader, length) { + GetContestedResourceVotersForIdentityResponse.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.GetContestedResourcesResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -26781,37 +35915,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourcesResponse message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVotersForIdentityResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesResponse.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVotersForIdentityResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourcesResponse message. + * Verifies a GetContestedResourceVotersForIdentityResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourcesResponse.verify = function verify(message) { + GetContestedResourceVotersForIdentityResponse.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -26820,40 +35954,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourcesResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVotersForIdentityResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse} GetContestedResourcesResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse */ - GetContestedResourcesResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse) + GetContestedResourceVotersForIdentityResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourcesResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVotersForIdentityResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse} message GetContestedResourcesResponse + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourcesResponse.toObject = function toObject(message, options) { + GetContestedResourceVotersForIdentityResponse.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -26861,36 +35995,36 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourcesResponse to JSON. + * Converts this GetContestedResourceVotersForIdentityResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse * @instance * @returns {Object.} JSON object */ - GetContestedResourcesResponse.prototype.toJSON = function toJSON() { + GetContestedResourceVotersForIdentityResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourcesResponse.GetContestedResourcesResponseV0 = (function() { + GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 = (function() { /** - * Properties of a GetContestedResourcesResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse - * @interface IGetContestedResourcesResponseV0 - * @property {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues|null} [contestedResourceValues] GetContestedResourcesResponseV0 contestedResourceValues - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourcesResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourcesResponseV0 metadata + * Properties of a GetContestedResourceVotersForIdentityResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @interface IGetContestedResourceVotersForIdentityResponseV0 + * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters|null} [contestedResourceVoters] GetContestedResourceVotersForIdentityResponseV0 contestedResourceVoters + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceVotersForIdentityResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceVotersForIdentityResponseV0 metadata */ /** - * Constructs a new GetContestedResourcesResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse - * @classdesc Represents a GetContestedResourcesResponseV0. - * @implements IGetContestedResourcesResponseV0 + * Constructs a new GetContestedResourceVotersForIdentityResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @classdesc Represents a GetContestedResourceVotersForIdentityResponseV0. + * @implements IGetContestedResourceVotersForIdentityResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0=} [properties] Properties to set */ - function GetContestedResourcesResponseV0(properties) { + function GetContestedResourceVotersForIdentityResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -26898,69 +36032,69 @@ $root.org = (function() { } /** - * GetContestedResourcesResponseV0 contestedResourceValues. - * @member {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues|null|undefined} contestedResourceValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * GetContestedResourceVotersForIdentityResponseV0 contestedResourceVoters. + * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters|null|undefined} contestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @instance */ - GetContestedResourcesResponseV0.prototype.contestedResourceValues = null; + GetContestedResourceVotersForIdentityResponseV0.prototype.contestedResourceVoters = null; /** - * GetContestedResourcesResponseV0 proof. + * GetContestedResourceVotersForIdentityResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @instance */ - GetContestedResourcesResponseV0.prototype.proof = null; + GetContestedResourceVotersForIdentityResponseV0.prototype.proof = null; /** - * GetContestedResourcesResponseV0 metadata. + * GetContestedResourceVotersForIdentityResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @instance */ - GetContestedResourcesResponseV0.prototype.metadata = null; + GetContestedResourceVotersForIdentityResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourcesResponseV0 result. - * @member {"contestedResourceValues"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * GetContestedResourceVotersForIdentityResponseV0 result. + * @member {"contestedResourceVoters"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @instance */ - Object.defineProperty(GetContestedResourcesResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["contestedResourceValues", "proof"]), + Object.defineProperty(GetContestedResourceVotersForIdentityResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["contestedResourceVoters", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourcesResponseV0 instance using the specified properties. + * Creates a new GetContestedResourceVotersForIdentityResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 instance */ - GetContestedResourcesResponseV0.create = function create(properties) { - return new GetContestedResourcesResponseV0(properties); + GetContestedResourceVotersForIdentityResponseV0.create = function create(properties) { + return new GetContestedResourceVotersForIdentityResponseV0(properties); }; /** - * Encodes the specified GetContestedResourcesResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesResponseV0.encode = function encode(message, writer) { + GetContestedResourceVotersForIdentityResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contestedResourceValues != null && Object.hasOwnProperty.call(message, "contestedResourceValues")) - $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.encode(message.contestedResourceValues, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.contestedResourceVoters != null && Object.hasOwnProperty.call(message, "contestedResourceVoters")) + $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.encode(message.contestedResourceVoters, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -26969,38 +36103,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetContestedResourcesResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceVotersForIdentityResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.IGetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourcesResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceVotersForIdentityResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourcesResponseV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceVotersForIdentityResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @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.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesResponseV0.decode = function decode(reader, length) { + GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.decode(reader, reader.uint32()); + message.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -27017,39 +36151,39 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourcesResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceVotersForIdentityResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourcesResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceVotersForIdentityResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourcesResponseV0 message. + * Verifies a GetContestedResourceVotersForIdentityResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourcesResponseV0.verify = function verify(message) { + GetContestedResourceVotersForIdentityResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { + if (message.contestedResourceVoters != null && message.hasOwnProperty("contestedResourceVoters")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify(message.contestedResourceValues); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify(message.contestedResourceVoters); if (error) - return "contestedResourceValues." + error; + return "contestedResourceVoters." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -27071,54 +36205,54 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourcesResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceVotersForIdentityResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} GetContestedResourcesResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 */ - GetContestedResourcesResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0) + GetContestedResourceVotersForIdentityResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0(); - if (object.contestedResourceValues != null) { - if (typeof object.contestedResourceValues !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.contestedResourceValues: object expected"); - message.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.fromObject(object.contestedResourceValues); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0(); + if (object.contestedResourceVoters != null) { + if (typeof object.contestedResourceVoters !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.contestedResourceVoters: object expected"); + message.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.fromObject(object.contestedResourceVoters); } if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetContestedResourcesResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceVotersForIdentityResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message GetContestedResourcesResponseV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourcesResponseV0.toObject = function toObject(message, options) { + GetContestedResourceVotersForIdentityResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.metadata = null; - if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { - object.contestedResourceValues = $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(message.contestedResourceValues, options); + if (message.contestedResourceVoters != null && message.hasOwnProperty("contestedResourceVoters")) { + object.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(message.contestedResourceVoters, options); if (options.oneofs) - object.result = "contestedResourceValues"; + object.result = "contestedResourceVoters"; } if (message.proof != null && message.hasOwnProperty("proof")) { object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); @@ -27131,35 +36265,36 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourcesResponseV0 to JSON. + * Converts this GetContestedResourceVotersForIdentityResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 * @instance * @returns {Object.} JSON object */ - GetContestedResourcesResponseV0.prototype.toJSON = function toJSON() { + GetContestedResourceVotersForIdentityResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourcesResponseV0.ContestedResourceValues = (function() { + GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters = (function() { /** - * Properties of a ContestedResourceValues. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 - * @interface IContestedResourceValues - * @property {Array.|null} [contestedResourceValues] ContestedResourceValues contestedResourceValues + * Properties of a ContestedResourceVoters. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @interface IContestedResourceVoters + * @property {Array.|null} [voters] ContestedResourceVoters voters + * @property {boolean|null} [finishedResults] ContestedResourceVoters finishedResults */ /** - * Constructs a new ContestedResourceValues. - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0 - * @classdesc Represents a ContestedResourceValues. - * @implements IContestedResourceValues + * Constructs a new ContestedResourceVoters. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @classdesc Represents a ContestedResourceVoters. + * @implements IContestedResourceVoters * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters=} [properties] Properties to set */ - function ContestedResourceValues(properties) { - this.contestedResourceValues = []; + function ContestedResourceVoters(properties) { + this.voters = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27167,78 +36302,91 @@ $root.org = (function() { } /** - * ContestedResourceValues contestedResourceValues. - * @member {Array.} contestedResourceValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * ContestedResourceVoters voters. + * @member {Array.} voters + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @instance */ - ContestedResourceValues.prototype.contestedResourceValues = $util.emptyArray; + ContestedResourceVoters.prototype.voters = $util.emptyArray; /** - * Creates a new ContestedResourceValues instance using the specified properties. + * ContestedResourceVoters finishedResults. + * @member {boolean} finishedResults + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @instance + */ + ContestedResourceVoters.prototype.finishedResults = false; + + /** + * Creates a new ContestedResourceVoters instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters instance */ - ContestedResourceValues.create = function create(properties) { - return new ContestedResourceValues(properties); + ContestedResourceVoters.create = function create(properties) { + return new ContestedResourceVoters(properties); }; /** - * Encodes the specified ContestedResourceValues message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify|verify} messages. + * Encodes the specified ContestedResourceVoters message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues} message ContestedResourceValues message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters} message ContestedResourceVoters message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceValues.encode = function encode(message, writer) { + ContestedResourceVoters.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contestedResourceValues != null && message.contestedResourceValues.length) - for (var i = 0; i < message.contestedResourceValues.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contestedResourceValues[i]); + if (message.voters != null && message.voters.length) + for (var i = 0; i < message.voters.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.voters[i]); + if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); return writer; }; /** - * Encodes the specified ContestedResourceValues message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.verify|verify} messages. + * Encodes the specified ContestedResourceVoters message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.IContestedResourceValues} message ContestedResourceValues message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters} message ContestedResourceVoters message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceValues.encodeDelimited = function encodeDelimited(message, writer) { + ContestedResourceVoters.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ContestedResourceValues message from the specified reader or buffer. + * Decodes a ContestedResourceVoters message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceValues.decode = function decode(reader, length) { + ContestedResourceVoters.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.contestedResourceValues && message.contestedResourceValues.length)) - message.contestedResourceValues = []; - message.contestedResourceValues.push(reader.bytes()); + if (!(message.voters && message.voters.length)) + message.voters = []; + message.voters.push(reader.bytes()); + break; + case 2: + message.finishedResults = reader.bool(); break; default: reader.skipType(tag & 7); @@ -27249,128 +36397,137 @@ $root.org = (function() { }; /** - * Decodes a ContestedResourceValues message from the specified reader or buffer, length delimited. + * Decodes a ContestedResourceVoters message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceValues.decodeDelimited = function decodeDelimited(reader) { + ContestedResourceVoters.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ContestedResourceValues message. + * Verifies a ContestedResourceVoters message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ContestedResourceValues.verify = function verify(message) { + ContestedResourceVoters.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.contestedResourceValues != null && message.hasOwnProperty("contestedResourceValues")) { - if (!Array.isArray(message.contestedResourceValues)) - return "contestedResourceValues: array expected"; - for (var i = 0; i < message.contestedResourceValues.length; ++i) - if (!(message.contestedResourceValues[i] && typeof message.contestedResourceValues[i].length === "number" || $util.isString(message.contestedResourceValues[i]))) - return "contestedResourceValues: buffer[] expected"; + if (message.voters != null && message.hasOwnProperty("voters")) { + if (!Array.isArray(message.voters)) + return "voters: array expected"; + for (var i = 0; i < message.voters.length; ++i) + if (!(message.voters[i] && typeof message.voters[i].length === "number" || $util.isString(message.voters[i]))) + return "voters: buffer[] expected"; } + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + if (typeof message.finishedResults !== "boolean") + return "finishedResults: boolean expected"; return null; }; /** - * Creates a ContestedResourceValues message from a plain object. Also converts values to their respective internal types. + * Creates a ContestedResourceVoters message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} ContestedResourceValues + * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters */ - ContestedResourceValues.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues) + ContestedResourceVoters.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues(); - if (object.contestedResourceValues) { - if (!Array.isArray(object.contestedResourceValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.contestedResourceValues: array expected"); - message.contestedResourceValues = []; - for (var i = 0; i < object.contestedResourceValues.length; ++i) - if (typeof object.contestedResourceValues[i] === "string") - $util.base64.decode(object.contestedResourceValues[i], message.contestedResourceValues[i] = $util.newBuffer($util.base64.length(object.contestedResourceValues[i])), 0); - else if (object.contestedResourceValues[i].length >= 0) - message.contestedResourceValues[i] = object.contestedResourceValues[i]; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters(); + if (object.voters) { + if (!Array.isArray(object.voters)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.voters: array expected"); + message.voters = []; + for (var i = 0; i < object.voters.length; ++i) + if (typeof object.voters[i] === "string") + $util.base64.decode(object.voters[i], message.voters[i] = $util.newBuffer($util.base64.length(object.voters[i])), 0); + else if (object.voters[i].length >= 0) + message.voters[i] = object.voters[i]; } + if (object.finishedResults != null) + message.finishedResults = Boolean(object.finishedResults); return message; }; /** - * Creates a plain object from a ContestedResourceValues message. Also converts values to other types if specified. + * Creates a plain object from a ContestedResourceVoters message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message ContestedResourceValues + * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message ContestedResourceVoters * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ContestedResourceValues.toObject = function toObject(message, options) { + ContestedResourceVoters.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.contestedResourceValues = []; - if (message.contestedResourceValues && message.contestedResourceValues.length) { - object.contestedResourceValues = []; - for (var j = 0; j < message.contestedResourceValues.length; ++j) - object.contestedResourceValues[j] = options.bytes === String ? $util.base64.encode(message.contestedResourceValues[j], 0, message.contestedResourceValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.contestedResourceValues[j]) : message.contestedResourceValues[j]; + object.voters = []; + if (options.defaults) + object.finishedResults = false; + if (message.voters && message.voters.length) { + object.voters = []; + for (var j = 0; j < message.voters.length; ++j) + object.voters[j] = options.bytes === String ? $util.base64.encode(message.voters[j], 0, message.voters[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.voters[j]) : message.voters[j]; } + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + object.finishedResults = message.finishedResults; return object; }; /** - * Converts this ContestedResourceValues to JSON. + * Converts this ContestedResourceVoters to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters * @instance * @returns {Object.} JSON object */ - ContestedResourceValues.prototype.toJSON = function toJSON() { + ContestedResourceVoters.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ContestedResourceValues; + return ContestedResourceVoters; })(); - return GetContestedResourcesResponseV0; + return GetContestedResourceVotersForIdentityResponseV0; })(); - return GetContestedResourcesResponse; + return GetContestedResourceVotersForIdentityResponse; })(); - v0.GetVotePollsByEndDateRequest = (function() { + v0.GetContestedResourceIdentityVotesRequest = (function() { /** - * Properties of a GetVotePollsByEndDateRequest. + * Properties of a GetContestedResourceIdentityVotesRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetVotePollsByEndDateRequest - * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0|null} [v0] GetVotePollsByEndDateRequest v0 + * @interface IGetContestedResourceIdentityVotesRequest + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0|null} [v0] GetContestedResourceIdentityVotesRequest v0 */ /** - * Constructs a new GetVotePollsByEndDateRequest. + * Constructs a new GetContestedResourceIdentityVotesRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetVotePollsByEndDateRequest. - * @implements IGetVotePollsByEndDateRequest + * @classdesc Represents a GetContestedResourceIdentityVotesRequest. + * @implements IGetContestedResourceIdentityVotesRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest=} [properties] Properties to set */ - function GetVotePollsByEndDateRequest(properties) { + function GetContestedResourceIdentityVotesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27378,89 +36535,89 @@ $root.org = (function() { } /** - * GetVotePollsByEndDateRequest v0. - * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * GetContestedResourceIdentityVotesRequest v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @instance */ - GetVotePollsByEndDateRequest.prototype.v0 = null; + GetContestedResourceIdentityVotesRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetVotePollsByEndDateRequest version. + * GetContestedResourceIdentityVotesRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @instance */ - Object.defineProperty(GetVotePollsByEndDateRequest.prototype, "version", { + Object.defineProperty(GetContestedResourceIdentityVotesRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetVotePollsByEndDateRequest instance using the specified properties. + * Creates a new GetContestedResourceIdentityVotesRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest instance */ - GetVotePollsByEndDateRequest.create = function create(properties) { - return new GetVotePollsByEndDateRequest(properties); + GetContestedResourceIdentityVotesRequest.create = function create(properties) { + return new GetContestedResourceIdentityVotesRequest(properties); }; /** - * Encodes the specified GetVotePollsByEndDateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateRequest.encode = function encode(message, writer) { + GetContestedResourceIdentityVotesRequest.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetVotePollsByEndDateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceIdentityVotesRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetVotePollsByEndDateRequest message from the specified reader or buffer. + * Decodes a GetContestedResourceIdentityVotesRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @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.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateRequest.decode = function decode(reader, length) { + GetContestedResourceIdentityVotesRequest.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.GetVotePollsByEndDateRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -27471,37 +36628,37 @@ $root.org = (function() { }; /** - * Decodes a GetVotePollsByEndDateRequest message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceIdentityVotesRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateRequest.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceIdentityVotesRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetVotePollsByEndDateRequest message. + * Verifies a GetContestedResourceIdentityVotesRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetVotePollsByEndDateRequest.verify = function verify(message) { + GetContestedResourceIdentityVotesRequest.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -27510,40 +36667,40 @@ $root.org = (function() { }; /** - * Creates a GetVotePollsByEndDateRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceIdentityVotesRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} GetVotePollsByEndDateRequest + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest */ - GetVotePollsByEndDateRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest) + GetContestedResourceIdentityVotesRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetVotePollsByEndDateRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceIdentityVotesRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message GetVotePollsByEndDateRequest + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetVotePollsByEndDateRequest.toObject = function toObject(message, options) { + GetContestedResourceIdentityVotesRequest.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -27551,39 +36708,39 @@ $root.org = (function() { }; /** - * Converts this GetVotePollsByEndDateRequest to JSON. + * Converts this GetContestedResourceIdentityVotesRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest * @instance * @returns {Object.} JSON object */ - GetVotePollsByEndDateRequest.prototype.toJSON = function toJSON() { + GetContestedResourceIdentityVotesRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 = (function() { + GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 = (function() { /** - * Properties of a GetVotePollsByEndDateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest - * @interface IGetVotePollsByEndDateRequestV0 - * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo|null} [startTimeInfo] GetVotePollsByEndDateRequestV0 startTimeInfo - * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo|null} [endTimeInfo] GetVotePollsByEndDateRequestV0 endTimeInfo - * @property {number|null} [limit] GetVotePollsByEndDateRequestV0 limit - * @property {number|null} [offset] GetVotePollsByEndDateRequestV0 offset - * @property {boolean|null} [ascending] GetVotePollsByEndDateRequestV0 ascending - * @property {boolean|null} [prove] GetVotePollsByEndDateRequestV0 prove + * Properties of a GetContestedResourceIdentityVotesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @interface IGetContestedResourceIdentityVotesRequestV0 + * @property {Uint8Array|null} [identityId] GetContestedResourceIdentityVotesRequestV0 identityId + * @property {google.protobuf.IUInt32Value|null} [limit] GetContestedResourceIdentityVotesRequestV0 limit + * @property {google.protobuf.IUInt32Value|null} [offset] GetContestedResourceIdentityVotesRequestV0 offset + * @property {boolean|null} [orderAscending] GetContestedResourceIdentityVotesRequestV0 orderAscending + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo|null} [startAtVotePollIdInfo] GetContestedResourceIdentityVotesRequestV0 startAtVotePollIdInfo + * @property {boolean|null} [prove] GetContestedResourceIdentityVotesRequestV0 prove */ /** - * Constructs a new GetVotePollsByEndDateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest - * @classdesc Represents a GetVotePollsByEndDateRequestV0. - * @implements IGetVotePollsByEndDateRequestV0 + * Constructs a new GetContestedResourceIdentityVotesRequestV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @classdesc Represents a GetContestedResourceIdentityVotesRequestV0. + * @implements IGetContestedResourceIdentityVotesRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0=} [properties] Properties to set */ - function GetVotePollsByEndDateRequestV0(properties) { + function GetContestedResourceIdentityVotesRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -27591,137 +36748,137 @@ $root.org = (function() { } /** - * GetVotePollsByEndDateRequestV0 startTimeInfo. - * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo|null|undefined} startTimeInfo - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * GetContestedResourceIdentityVotesRequestV0 identityId. + * @member {Uint8Array} identityId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.startTimeInfo = null; + GetContestedResourceIdentityVotesRequestV0.prototype.identityId = $util.newBuffer([]); /** - * GetVotePollsByEndDateRequestV0 endTimeInfo. - * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo|null|undefined} endTimeInfo - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * GetContestedResourceIdentityVotesRequestV0 limit. + * @member {google.protobuf.IUInt32Value|null|undefined} limit + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.endTimeInfo = null; + GetContestedResourceIdentityVotesRequestV0.prototype.limit = null; /** - * GetVotePollsByEndDateRequestV0 limit. - * @member {number} limit - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * GetContestedResourceIdentityVotesRequestV0 offset. + * @member {google.protobuf.IUInt32Value|null|undefined} offset + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.limit = 0; + GetContestedResourceIdentityVotesRequestV0.prototype.offset = null; /** - * GetVotePollsByEndDateRequestV0 offset. - * @member {number} offset - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * GetContestedResourceIdentityVotesRequestV0 orderAscending. + * @member {boolean} orderAscending + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.offset = 0; + GetContestedResourceIdentityVotesRequestV0.prototype.orderAscending = false; /** - * GetVotePollsByEndDateRequestV0 ascending. - * @member {boolean} ascending - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * GetContestedResourceIdentityVotesRequestV0 startAtVotePollIdInfo. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo|null|undefined} startAtVotePollIdInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.ascending = false; + GetContestedResourceIdentityVotesRequestV0.prototype.startAtVotePollIdInfo = null; /** - * GetVotePollsByEndDateRequestV0 prove. + * GetContestedResourceIdentityVotesRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance */ - GetVotePollsByEndDateRequestV0.prototype.prove = false; + GetContestedResourceIdentityVotesRequestV0.prototype.prove = false; /** - * Creates a new GetVotePollsByEndDateRequestV0 instance using the specified properties. + * Creates a new GetContestedResourceIdentityVotesRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 instance */ - GetVotePollsByEndDateRequestV0.create = function create(properties) { - return new GetVotePollsByEndDateRequestV0(properties); + GetContestedResourceIdentityVotesRequestV0.create = function create(properties) { + return new GetContestedResourceIdentityVotesRequestV0(properties); }; /** - * Encodes the specified GetVotePollsByEndDateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateRequestV0.encode = function encode(message, writer) { + GetContestedResourceIdentityVotesRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startTimeInfo != null && Object.hasOwnProperty.call(message, "startTimeInfo")) - $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.encode(message.startTimeInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.endTimeInfo != null && Object.hasOwnProperty.call(message, "endTimeInfo")) - $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.encode(message.endTimeInfo, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identityId); if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.limit); + $root.google.protobuf.UInt32Value.encode(message.limit, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.offset); - if (message.ascending != null && Object.hasOwnProperty.call(message, "ascending")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.ascending); + $root.google.protobuf.UInt32Value.encode(message.offset, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.orderAscending != null && Object.hasOwnProperty.call(message, "orderAscending")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.orderAscending); + if (message.startAtVotePollIdInfo != null && Object.hasOwnProperty.call(message, "startAtVotePollIdInfo")) + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.encode(message.startAtVotePollIdInfo, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.prove); return writer; }; /** - * Encodes the specified GetVotePollsByEndDateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.IGetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceIdentityVotesRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetVotePollsByEndDateRequestV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceIdentityVotesRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateRequestV0.decode = function decode(reader, length) { + GetContestedResourceIdentityVotesRequestV0.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.decode(reader, reader.uint32()); + message.identityId = reader.bytes(); break; case 2: - message.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.decode(reader, reader.uint32()); + message.limit = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); break; case 3: - message.limit = reader.uint32(); + message.offset = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); break; case 4: - message.offset = reader.uint32(); + message.orderAscending = reader.bool(); break; case 5: - message.ascending = reader.bool(); + message.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.decode(reader, reader.uint32()); break; case 6: message.prove = reader.bool(); @@ -27735,51 +36892,53 @@ $root.org = (function() { }; /** - * Decodes a GetVotePollsByEndDateRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceIdentityVotesRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceIdentityVotesRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetVotePollsByEndDateRequestV0 message. + * Verifies a GetContestedResourceIdentityVotesRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetVotePollsByEndDateRequestV0.verify = function verify(message) { + GetContestedResourceIdentityVotesRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.startTimeInfo != null && message.hasOwnProperty("startTimeInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify(message.startTimeInfo); + if (message.identityId != null && message.hasOwnProperty("identityId")) + if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) + return "identityId: buffer expected"; + if (message.limit != null && message.hasOwnProperty("limit")) { + var error = $root.google.protobuf.UInt32Value.verify(message.limit); if (error) - return "startTimeInfo." + error; + return "limit." + error; } - if (message.endTimeInfo != null && message.hasOwnProperty("endTimeInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify(message.endTimeInfo); + if (message.offset != null && message.hasOwnProperty("offset")) { + var error = $root.google.protobuf.UInt32Value.verify(message.offset); if (error) - return "endTimeInfo." + error; + return "offset." + error; + } + if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) + if (typeof message.orderAscending !== "boolean") + return "orderAscending: boolean expected"; + if (message.startAtVotePollIdInfo != null && message.hasOwnProperty("startAtVotePollIdInfo")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify(message.startAtVotePollIdInfo); + if (error) + return "startAtVotePollIdInfo." + error; } - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit)) - return "limit: integer expected"; - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isInteger(message.offset)) - return "offset: integer expected"; - if (message.ascending != null && message.hasOwnProperty("ascending")) - if (typeof message.ascending !== "boolean") - return "ascending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -27787,328 +36946,116 @@ $root.org = (function() { }; /** - * Creates a GetVotePollsByEndDateRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceIdentityVotesRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} GetVotePollsByEndDateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 */ - GetVotePollsByEndDateRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0) + GetContestedResourceIdentityVotesRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0(); - if (object.startTimeInfo != null) { - if (typeof object.startTimeInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.startTimeInfo: object expected"); - message.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.fromObject(object.startTimeInfo); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0(); + if (object.identityId != null) + if (typeof object.identityId === "string") + $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); + else if (object.identityId.length >= 0) + message.identityId = object.identityId; + if (object.limit != null) { + if (typeof object.limit !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.limit: object expected"); + message.limit = $root.google.protobuf.UInt32Value.fromObject(object.limit); } - if (object.endTimeInfo != null) { - if (typeof object.endTimeInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.endTimeInfo: object expected"); - message.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.fromObject(object.endTimeInfo); + if (object.offset != null) { + if (typeof object.offset !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.offset: object expected"); + message.offset = $root.google.protobuf.UInt32Value.fromObject(object.offset); + } + if (object.orderAscending != null) + message.orderAscending = Boolean(object.orderAscending); + if (object.startAtVotePollIdInfo != null) { + if (typeof object.startAtVotePollIdInfo !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.startAtVotePollIdInfo: object expected"); + message.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.fromObject(object.startAtVotePollIdInfo); } - if (object.limit != null) - message.limit = object.limit >>> 0; - if (object.offset != null) - message.offset = object.offset >>> 0; - if (object.ascending != null) - message.ascending = Boolean(object.ascending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetVotePollsByEndDateRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceIdentityVotesRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message GetVotePollsByEndDateRequestV0 + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetVotePollsByEndDateRequestV0.toObject = function toObject(message, options) { + GetContestedResourceIdentityVotesRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.startTimeInfo = null; - object.endTimeInfo = null; - object.limit = 0; - object.offset = 0; - object.ascending = false; + if (options.bytes === String) + object.identityId = ""; + else { + object.identityId = []; + if (options.bytes !== Array) + object.identityId = $util.newBuffer(object.identityId); + } + object.limit = null; + object.offset = null; + object.orderAscending = false; + object.startAtVotePollIdInfo = null; object.prove = false; } - if (message.startTimeInfo != null && message.hasOwnProperty("startTimeInfo")) - object.startTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(message.startTimeInfo, options); - if (message.endTimeInfo != null && message.hasOwnProperty("endTimeInfo")) - object.endTimeInfo = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(message.endTimeInfo, options); + if (message.identityId != null && message.hasOwnProperty("identityId")) + object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; if (message.limit != null && message.hasOwnProperty("limit")) - object.limit = message.limit; + object.limit = $root.google.protobuf.UInt32Value.toObject(message.limit, options); if (message.offset != null && message.hasOwnProperty("offset")) - object.offset = message.offset; - if (message.ascending != null && message.hasOwnProperty("ascending")) - object.ascending = message.ascending; + object.offset = $root.google.protobuf.UInt32Value.toObject(message.offset, options); + if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) + object.orderAscending = message.orderAscending; + if (message.startAtVotePollIdInfo != null && message.hasOwnProperty("startAtVotePollIdInfo")) + object.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(message.startAtVotePollIdInfo, options); if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetVotePollsByEndDateRequestV0 to JSON. + * Converts this GetContestedResourceIdentityVotesRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 * @instance * @returns {Object.} JSON object */ - GetVotePollsByEndDateRequestV0.prototype.toJSON = function toJSON() { + GetContestedResourceIdentityVotesRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetVotePollsByEndDateRequestV0.StartAtTimeInfo = (function() { - - /** - * Properties of a StartAtTimeInfo. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 - * @interface IStartAtTimeInfo - * @property {number|Long|null} [startTimeMs] StartAtTimeInfo startTimeMs - * @property {boolean|null} [startTimeIncluded] StartAtTimeInfo startTimeIncluded - */ - - /** - * Constructs a new StartAtTimeInfo. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 - * @classdesc Represents a StartAtTimeInfo. - * @implements IStartAtTimeInfo - * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo=} [properties] Properties to set - */ - function StartAtTimeInfo(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]]; - } - - /** - * StartAtTimeInfo startTimeMs. - * @member {number|Long} startTimeMs - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @instance - */ - StartAtTimeInfo.prototype.startTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - - /** - * StartAtTimeInfo startTimeIncluded. - * @member {boolean} startTimeIncluded - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @instance - */ - StartAtTimeInfo.prototype.startTimeIncluded = false; - - /** - * Creates a new StartAtTimeInfo instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo instance - */ - StartAtTimeInfo.create = function create(properties) { - return new StartAtTimeInfo(properties); - }; - - /** - * Encodes the specified StartAtTimeInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo} message StartAtTimeInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtTimeInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startTimeMs != null && Object.hasOwnProperty.call(message, "startTimeMs")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.startTimeMs); - if (message.startTimeIncluded != null && Object.hasOwnProperty.call(message, "startTimeIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startTimeIncluded); - return writer; - }; - - /** - * Encodes the specified StartAtTimeInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IStartAtTimeInfo} message StartAtTimeInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtTimeInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a StartAtTimeInfo message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.startTimeMs = reader.uint64(); - break; - case 2: - message.startTimeIncluded = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a StartAtTimeInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtTimeInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a StartAtTimeInfo message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StartAtTimeInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startTimeMs != null && message.hasOwnProperty("startTimeMs")) - if (!$util.isInteger(message.startTimeMs) && !(message.startTimeMs && $util.isInteger(message.startTimeMs.low) && $util.isInteger(message.startTimeMs.high))) - return "startTimeMs: integer|Long expected"; - if (message.startTimeIncluded != null && message.hasOwnProperty("startTimeIncluded")) - if (typeof message.startTimeIncluded !== "boolean") - return "startTimeIncluded: boolean expected"; - return null; - }; - - /** - * Creates a StartAtTimeInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} StartAtTimeInfo - */ - StartAtTimeInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo(); - if (object.startTimeMs != null) - if ($util.Long) - (message.startTimeMs = $util.Long.fromValue(object.startTimeMs)).unsigned = true; - else if (typeof object.startTimeMs === "string") - message.startTimeMs = parseInt(object.startTimeMs, 10); - else if (typeof object.startTimeMs === "number") - message.startTimeMs = object.startTimeMs; - else if (typeof object.startTimeMs === "object") - message.startTimeMs = new $util.LongBits(object.startTimeMs.low >>> 0, object.startTimeMs.high >>> 0).toNumber(true); - if (object.startTimeIncluded != null) - message.startTimeIncluded = Boolean(object.startTimeIncluded); - return message; - }; - - /** - * Creates a plain object from a StartAtTimeInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message StartAtTimeInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StartAtTimeInfo.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.startTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.startTimeMs = options.longs === String ? "0" : 0; - object.startTimeIncluded = false; - } - if (message.startTimeMs != null && message.hasOwnProperty("startTimeMs")) - if (typeof message.startTimeMs === "number") - object.startTimeMs = options.longs === String ? String(message.startTimeMs) : message.startTimeMs; - else - object.startTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.startTimeMs) : options.longs === Number ? new $util.LongBits(message.startTimeMs.low >>> 0, message.startTimeMs.high >>> 0).toNumber(true) : message.startTimeMs; - if (message.startTimeIncluded != null && message.hasOwnProperty("startTimeIncluded")) - object.startTimeIncluded = message.startTimeIncluded; - return object; - }; - - /** - * Converts this StartAtTimeInfo to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo - * @instance - * @returns {Object.} JSON object - */ - StartAtTimeInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return StartAtTimeInfo; - })(); - - GetVotePollsByEndDateRequestV0.EndAtTimeInfo = (function() { + GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo = (function() { /** - * Properties of an EndAtTimeInfo. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 - * @interface IEndAtTimeInfo - * @property {number|Long|null} [endTimeMs] EndAtTimeInfo endTimeMs - * @property {boolean|null} [endTimeIncluded] EndAtTimeInfo endTimeIncluded + * Properties of a StartAtVotePollIdInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @interface IStartAtVotePollIdInfo + * @property {Uint8Array|null} [startAtPollIdentifier] StartAtVotePollIdInfo startAtPollIdentifier + * @property {boolean|null} [startPollIdentifierIncluded] StartAtVotePollIdInfo startPollIdentifierIncluded */ /** - * Constructs a new EndAtTimeInfo. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 - * @classdesc Represents an EndAtTimeInfo. - * @implements IEndAtTimeInfo + * Constructs a new StartAtVotePollIdInfo. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @classdesc Represents a StartAtVotePollIdInfo. + * @implements IStartAtVotePollIdInfo * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo=} [properties] Properties to set */ - function EndAtTimeInfo(properties) { + function StartAtVotePollIdInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28116,88 +37063,88 @@ $root.org = (function() { } /** - * EndAtTimeInfo endTimeMs. - * @member {number|Long} endTimeMs - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * StartAtVotePollIdInfo startAtPollIdentifier. + * @member {Uint8Array} startAtPollIdentifier + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @instance */ - EndAtTimeInfo.prototype.endTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + StartAtVotePollIdInfo.prototype.startAtPollIdentifier = $util.newBuffer([]); /** - * EndAtTimeInfo endTimeIncluded. - * @member {boolean} endTimeIncluded - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * StartAtVotePollIdInfo startPollIdentifierIncluded. + * @member {boolean} startPollIdentifierIncluded + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @instance */ - EndAtTimeInfo.prototype.endTimeIncluded = false; + StartAtVotePollIdInfo.prototype.startPollIdentifierIncluded = false; /** - * Creates a new EndAtTimeInfo instance using the specified properties. + * Creates a new StartAtVotePollIdInfo instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo instance */ - EndAtTimeInfo.create = function create(properties) { - return new EndAtTimeInfo(properties); + StartAtVotePollIdInfo.create = function create(properties) { + return new StartAtVotePollIdInfo(properties); }; /** - * Encodes the specified EndAtTimeInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify|verify} messages. + * Encodes the specified StartAtVotePollIdInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo} message EndAtTimeInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo} message StartAtVotePollIdInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EndAtTimeInfo.encode = function encode(message, writer) { + StartAtVotePollIdInfo.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.endTimeMs != null && Object.hasOwnProperty.call(message, "endTimeMs")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.endTimeMs); - if (message.endTimeIncluded != null && Object.hasOwnProperty.call(message, "endTimeIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.endTimeIncluded); + if (message.startAtPollIdentifier != null && Object.hasOwnProperty.call(message, "startAtPollIdentifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startAtPollIdentifier); + if (message.startPollIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startPollIdentifierIncluded")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startPollIdentifierIncluded); return writer; }; /** - * Encodes the specified EndAtTimeInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.verify|verify} messages. + * Encodes the specified StartAtVotePollIdInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.IEndAtTimeInfo} message EndAtTimeInfo message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo} message StartAtVotePollIdInfo message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - EndAtTimeInfo.encodeDelimited = function encodeDelimited(message, writer) { + StartAtVotePollIdInfo.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes an EndAtTimeInfo message from the specified reader or buffer. + * Decodes a StartAtVotePollIdInfo message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EndAtTimeInfo.decode = function decode(reader, length) { + StartAtVotePollIdInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.endTimeMs = reader.uint64(); + message.startAtPollIdentifier = reader.bytes(); break; case 2: - message.endTimeIncluded = reader.bool(); + message.startPollIdentifierIncluded = reader.bool(); break; default: reader.skipType(tag & 7); @@ -28208,136 +37155,131 @@ $root.org = (function() { }; /** - * Decodes an EndAtTimeInfo message from the specified reader or buffer, length delimited. + * Decodes a StartAtVotePollIdInfo message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EndAtTimeInfo.decodeDelimited = function decodeDelimited(reader) { + StartAtVotePollIdInfo.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies an EndAtTimeInfo message. + * Verifies a StartAtVotePollIdInfo message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EndAtTimeInfo.verify = function verify(message) { + StartAtVotePollIdInfo.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.endTimeMs != null && message.hasOwnProperty("endTimeMs")) - if (!$util.isInteger(message.endTimeMs) && !(message.endTimeMs && $util.isInteger(message.endTimeMs.low) && $util.isInteger(message.endTimeMs.high))) - return "endTimeMs: integer|Long expected"; - if (message.endTimeIncluded != null && message.hasOwnProperty("endTimeIncluded")) - if (typeof message.endTimeIncluded !== "boolean") - return "endTimeIncluded: boolean expected"; + if (message.startAtPollIdentifier != null && message.hasOwnProperty("startAtPollIdentifier")) + if (!(message.startAtPollIdentifier && typeof message.startAtPollIdentifier.length === "number" || $util.isString(message.startAtPollIdentifier))) + return "startAtPollIdentifier: buffer expected"; + if (message.startPollIdentifierIncluded != null && message.hasOwnProperty("startPollIdentifierIncluded")) + if (typeof message.startPollIdentifierIncluded !== "boolean") + return "startPollIdentifierIncluded: boolean expected"; return null; }; /** - * Creates an EndAtTimeInfo message from a plain object. Also converts values to their respective internal types. + * Creates a StartAtVotePollIdInfo message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} EndAtTimeInfo + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo */ - EndAtTimeInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo) + StartAtVotePollIdInfo.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo(); - if (object.endTimeMs != null) - if ($util.Long) - (message.endTimeMs = $util.Long.fromValue(object.endTimeMs)).unsigned = true; - else if (typeof object.endTimeMs === "string") - message.endTimeMs = parseInt(object.endTimeMs, 10); - else if (typeof object.endTimeMs === "number") - message.endTimeMs = object.endTimeMs; - else if (typeof object.endTimeMs === "object") - message.endTimeMs = new $util.LongBits(object.endTimeMs.low >>> 0, object.endTimeMs.high >>> 0).toNumber(true); - if (object.endTimeIncluded != null) - message.endTimeIncluded = Boolean(object.endTimeIncluded); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo(); + if (object.startAtPollIdentifier != null) + if (typeof object.startAtPollIdentifier === "string") + $util.base64.decode(object.startAtPollIdentifier, message.startAtPollIdentifier = $util.newBuffer($util.base64.length(object.startAtPollIdentifier)), 0); + else if (object.startAtPollIdentifier.length >= 0) + message.startAtPollIdentifier = object.startAtPollIdentifier; + if (object.startPollIdentifierIncluded != null) + message.startPollIdentifierIncluded = Boolean(object.startPollIdentifierIncluded); return message; }; /** - * Creates a plain object from an EndAtTimeInfo message. Also converts values to other types if specified. + * Creates a plain object from a StartAtVotePollIdInfo message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message EndAtTimeInfo + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message StartAtVotePollIdInfo * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EndAtTimeInfo.toObject = function toObject(message, options) { + StartAtVotePollIdInfo.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.endTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.endTimeMs = options.longs === String ? "0" : 0; - object.endTimeIncluded = false; + if (options.bytes === String) + object.startAtPollIdentifier = ""; + else { + object.startAtPollIdentifier = []; + if (options.bytes !== Array) + object.startAtPollIdentifier = $util.newBuffer(object.startAtPollIdentifier); + } + object.startPollIdentifierIncluded = false; } - if (message.endTimeMs != null && message.hasOwnProperty("endTimeMs")) - if (typeof message.endTimeMs === "number") - object.endTimeMs = options.longs === String ? String(message.endTimeMs) : message.endTimeMs; - else - object.endTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.endTimeMs) : options.longs === Number ? new $util.LongBits(message.endTimeMs.low >>> 0, message.endTimeMs.high >>> 0).toNumber(true) : message.endTimeMs; - if (message.endTimeIncluded != null && message.hasOwnProperty("endTimeIncluded")) - object.endTimeIncluded = message.endTimeIncluded; + if (message.startAtPollIdentifier != null && message.hasOwnProperty("startAtPollIdentifier")) + object.startAtPollIdentifier = options.bytes === String ? $util.base64.encode(message.startAtPollIdentifier, 0, message.startAtPollIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAtPollIdentifier) : message.startAtPollIdentifier; + if (message.startPollIdentifierIncluded != null && message.hasOwnProperty("startPollIdentifierIncluded")) + object.startPollIdentifierIncluded = message.startPollIdentifierIncluded; return object; }; /** - * Converts this EndAtTimeInfo to JSON. + * Converts this StartAtVotePollIdInfo to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo * @instance * @returns {Object.} JSON object */ - EndAtTimeInfo.prototype.toJSON = function toJSON() { + StartAtVotePollIdInfo.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return EndAtTimeInfo; + return StartAtVotePollIdInfo; })(); - return GetVotePollsByEndDateRequestV0; + return GetContestedResourceIdentityVotesRequestV0; })(); - return GetVotePollsByEndDateRequest; + return GetContestedResourceIdentityVotesRequest; })(); - v0.GetVotePollsByEndDateResponse = (function() { + v0.GetContestedResourceIdentityVotesResponse = (function() { /** - * Properties of a GetVotePollsByEndDateResponse. + * Properties of a GetContestedResourceIdentityVotesResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetVotePollsByEndDateResponse - * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0|null} [v0] GetVotePollsByEndDateResponse v0 + * @interface IGetContestedResourceIdentityVotesResponse + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0|null} [v0] GetContestedResourceIdentityVotesResponse v0 */ /** - * Constructs a new GetVotePollsByEndDateResponse. + * Constructs a new GetContestedResourceIdentityVotesResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetVotePollsByEndDateResponse. - * @implements IGetVotePollsByEndDateResponse + * @classdesc Represents a GetContestedResourceIdentityVotesResponse. + * @implements IGetContestedResourceIdentityVotesResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse=} [properties] Properties to set */ - function GetVotePollsByEndDateResponse(properties) { + function GetContestedResourceIdentityVotesResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28345,89 +37287,89 @@ $root.org = (function() { } /** - * GetVotePollsByEndDateResponse v0. - * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * GetContestedResourceIdentityVotesResponse v0. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @instance */ - GetVotePollsByEndDateResponse.prototype.v0 = null; + GetContestedResourceIdentityVotesResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetVotePollsByEndDateResponse version. + * GetContestedResourceIdentityVotesResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @instance */ - Object.defineProperty(GetVotePollsByEndDateResponse.prototype, "version", { + Object.defineProperty(GetContestedResourceIdentityVotesResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetVotePollsByEndDateResponse instance using the specified properties. + * Creates a new GetContestedResourceIdentityVotesResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse instance + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse instance */ - GetVotePollsByEndDateResponse.create = function create(properties) { - return new GetVotePollsByEndDateResponse(properties); + GetContestedResourceIdentityVotesResponse.create = function create(properties) { + return new GetContestedResourceIdentityVotesResponse(properties); }; /** - * Encodes the specified GetVotePollsByEndDateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateResponse.encode = function encode(message, writer) { + GetContestedResourceIdentityVotesResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetVotePollsByEndDateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static - * @param {org.dash.platform.dapi.v0.IGetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceIdentityVotesResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetVotePollsByEndDateResponse message from the specified reader or buffer. + * Decodes a GetContestedResourceIdentityVotesResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @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.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateResponse.decode = function decode(reader, length) { + GetContestedResourceIdentityVotesResponse.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.GetVotePollsByEndDateResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -28438,37 +37380,37 @@ $root.org = (function() { }; /** - * Decodes a GetVotePollsByEndDateResponse message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceIdentityVotesResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateResponse.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceIdentityVotesResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetVotePollsByEndDateResponse message. + * Verifies a GetContestedResourceIdentityVotesResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetVotePollsByEndDateResponse.verify = function verify(message) { + GetContestedResourceIdentityVotesResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -28477,40 +37419,40 @@ $root.org = (function() { }; /** - * Creates a GetVotePollsByEndDateResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetContestedResourceIdentityVotesResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} GetVotePollsByEndDateResponse + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse */ - GetVotePollsByEndDateResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse) + GetContestedResourceIdentityVotesResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetVotePollsByEndDateResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetContestedResourceIdentityVotesResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} message GetVotePollsByEndDateResponse + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetVotePollsByEndDateResponse.toObject = function toObject(message, options) { + GetContestedResourceIdentityVotesResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -28518,36 +37460,36 @@ $root.org = (function() { }; /** - * Converts this GetVotePollsByEndDateResponse to JSON. + * Converts this GetContestedResourceIdentityVotesResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse * @instance * @returns {Object.} JSON object */ - GetVotePollsByEndDateResponse.prototype.toJSON = function toJSON() { + GetContestedResourceIdentityVotesResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 = (function() { + GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 = (function() { /** - * Properties of a GetVotePollsByEndDateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse - * @interface IGetVotePollsByEndDateResponseV0 - * @property {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps|null} [votePollsByTimestamps] GetVotePollsByEndDateResponseV0 votePollsByTimestamps - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetVotePollsByEndDateResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetVotePollsByEndDateResponseV0 metadata + * Properties of a GetContestedResourceIdentityVotesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @interface IGetContestedResourceIdentityVotesResponseV0 + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes|null} [votes] GetContestedResourceIdentityVotesResponseV0 votes + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceIdentityVotesResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceIdentityVotesResponseV0 metadata */ /** - * Constructs a new GetVotePollsByEndDateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse - * @classdesc Represents a GetVotePollsByEndDateResponseV0. - * @implements IGetVotePollsByEndDateResponseV0 + * Constructs a new GetContestedResourceIdentityVotesResponseV0. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @classdesc Represents a GetContestedResourceIdentityVotesResponseV0. + * @implements IGetContestedResourceIdentityVotesResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0=} [properties] Properties to set */ - function GetVotePollsByEndDateResponseV0(properties) { + function GetContestedResourceIdentityVotesResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28555,69 +37497,69 @@ $root.org = (function() { } /** - * GetVotePollsByEndDateResponseV0 votePollsByTimestamps. - * @member {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps|null|undefined} votePollsByTimestamps - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * GetContestedResourceIdentityVotesResponseV0 votes. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes|null|undefined} votes + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @instance */ - GetVotePollsByEndDateResponseV0.prototype.votePollsByTimestamps = null; + GetContestedResourceIdentityVotesResponseV0.prototype.votes = null; /** - * GetVotePollsByEndDateResponseV0 proof. + * GetContestedResourceIdentityVotesResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @instance */ - GetVotePollsByEndDateResponseV0.prototype.proof = null; + GetContestedResourceIdentityVotesResponseV0.prototype.proof = null; /** - * GetVotePollsByEndDateResponseV0 metadata. + * GetContestedResourceIdentityVotesResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @instance */ - GetVotePollsByEndDateResponseV0.prototype.metadata = null; + GetContestedResourceIdentityVotesResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetVotePollsByEndDateResponseV0 result. - * @member {"votePollsByTimestamps"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * GetContestedResourceIdentityVotesResponseV0 result. + * @member {"votes"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @instance */ - Object.defineProperty(GetVotePollsByEndDateResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["votePollsByTimestamps", "proof"]), + Object.defineProperty(GetContestedResourceIdentityVotesResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["votes", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetVotePollsByEndDateResponseV0 instance using the specified properties. + * Creates a new GetContestedResourceIdentityVotesResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 instance */ - GetVotePollsByEndDateResponseV0.create = function create(properties) { - return new GetVotePollsByEndDateResponseV0(properties); + GetContestedResourceIdentityVotesResponseV0.create = function create(properties) { + return new GetContestedResourceIdentityVotesResponseV0(properties); }; /** - * Encodes the specified GetVotePollsByEndDateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateResponseV0.encode = function encode(message, writer) { + GetContestedResourceIdentityVotesResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.votePollsByTimestamps != null && Object.hasOwnProperty.call(message, "votePollsByTimestamps")) - $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.encode(message.votePollsByTimestamps, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.votes != null && Object.hasOwnProperty.call(message, "votes")) + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.encode(message.votes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -28626,38 +37568,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetVotePollsByEndDateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.verify|verify} messages. + * Encodes the specified GetContestedResourceIdentityVotesResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.IGetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetVotePollsByEndDateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetContestedResourceIdentityVotesResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetVotePollsByEndDateResponseV0 message from the specified reader or buffer. + * Decodes a GetContestedResourceIdentityVotesResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateResponseV0.decode = function decode(reader, length) { + GetContestedResourceIdentityVotesResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.decode(reader, reader.uint32()); + message.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -28674,39 +37616,39 @@ $root.org = (function() { }; /** - * Decodes a GetVotePollsByEndDateResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetContestedResourceIdentityVotesResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetVotePollsByEndDateResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetContestedResourceIdentityVotesResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetVotePollsByEndDateResponseV0 message. + * Verifies a GetContestedResourceIdentityVotesResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetVotePollsByEndDateResponseV0.verify = function verify(message) { + GetContestedResourceIdentityVotesResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { + if (message.votes != null && message.hasOwnProperty("votes")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify(message.votePollsByTimestamps); + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify(message.votes); if (error) - return "votePollsByTimestamps." + error; + return "votes." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -28718,106 +37660,336 @@ $root.org = (function() { if (error) return "proof." + error; } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } - return null; - }; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetContestedResourceIdentityVotesResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 + */ + GetContestedResourceIdentityVotesResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0(); + if (object.votes != null) { + if (typeof object.votes !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.votes: object expected"); + message.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.fromObject(object.votes); + } + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; + + /** + * Creates a plain object from a GetContestedResourceIdentityVotesResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetContestedResourceIdentityVotesResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.votes != null && message.hasOwnProperty("votes")) { + object.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(message.votes, options); + if (options.oneofs) + object.result = "votes"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; + + /** + * Converts this GetContestedResourceIdentityVotesResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetContestedResourceIdentityVotesResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes = (function() { + + /** + * Properties of a ContestedResourceIdentityVotes. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @interface IContestedResourceIdentityVotes + * @property {Array.|null} [contestedResourceIdentityVotes] ContestedResourceIdentityVotes contestedResourceIdentityVotes + * @property {boolean|null} [finishedResults] ContestedResourceIdentityVotes finishedResults + */ + + /** + * Constructs a new ContestedResourceIdentityVotes. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @classdesc Represents a ContestedResourceIdentityVotes. + * @implements IContestedResourceIdentityVotes + * @constructor + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes=} [properties] Properties to set + */ + function ContestedResourceIdentityVotes(properties) { + this.contestedResourceIdentityVotes = []; + 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]]; + } + + /** + * ContestedResourceIdentityVotes contestedResourceIdentityVotes. + * @member {Array.} contestedResourceIdentityVotes + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @instance + */ + ContestedResourceIdentityVotes.prototype.contestedResourceIdentityVotes = $util.emptyArray; + + /** + * ContestedResourceIdentityVotes finishedResults. + * @member {boolean} finishedResults + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @instance + */ + ContestedResourceIdentityVotes.prototype.finishedResults = false; + + /** + * Creates a new ContestedResourceIdentityVotes instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes instance + */ + ContestedResourceIdentityVotes.create = function create(properties) { + return new ContestedResourceIdentityVotes(properties); + }; + + /** + * Encodes the specified ContestedResourceIdentityVotes message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes} message ContestedResourceIdentityVotes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContestedResourceIdentityVotes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contestedResourceIdentityVotes != null && message.contestedResourceIdentityVotes.length) + for (var i = 0; i < message.contestedResourceIdentityVotes.length; ++i) + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.encode(message.contestedResourceIdentityVotes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); + return writer; + }; + + /** + * Encodes the specified ContestedResourceIdentityVotes message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes} message ContestedResourceIdentityVotes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ContestedResourceIdentityVotes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ContestedResourceIdentityVotes message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.contestedResourceIdentityVotes && message.contestedResourceIdentityVotes.length)) + message.contestedResourceIdentityVotes = []; + message.contestedResourceIdentityVotes.push($root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.decode(reader, reader.uint32())); + break; + case 2: + message.finishedResults = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ContestedResourceIdentityVotes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ContestedResourceIdentityVotes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ContestedResourceIdentityVotes message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ContestedResourceIdentityVotes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.contestedResourceIdentityVotes != null && message.hasOwnProperty("contestedResourceIdentityVotes")) { + if (!Array.isArray(message.contestedResourceIdentityVotes)) + return "contestedResourceIdentityVotes: array expected"; + for (var i = 0; i < message.contestedResourceIdentityVotes.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify(message.contestedResourceIdentityVotes[i]); + if (error) + return "contestedResourceIdentityVotes." + error; + } + } + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + if (typeof message.finishedResults !== "boolean") + return "finishedResults: boolean expected"; + return null; + }; - /** - * Creates a GetVotePollsByEndDateResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} GetVotePollsByEndDateResponseV0 - */ - GetVotePollsByEndDateResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0) + /** + * Creates a ContestedResourceIdentityVotes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes + */ + ContestedResourceIdentityVotes.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes(); + if (object.contestedResourceIdentityVotes) { + if (!Array.isArray(object.contestedResourceIdentityVotes)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contestedResourceIdentityVotes: array expected"); + message.contestedResourceIdentityVotes = []; + for (var i = 0; i < object.contestedResourceIdentityVotes.length; ++i) { + if (typeof object.contestedResourceIdentityVotes[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contestedResourceIdentityVotes: object expected"); + message.contestedResourceIdentityVotes[i] = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.fromObject(object.contestedResourceIdentityVotes[i]); + } + } + if (object.finishedResults != null) + message.finishedResults = Boolean(object.finishedResults); + return message; + }; + + /** + * Creates a plain object from a ContestedResourceIdentityVotes message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @static + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message ContestedResourceIdentityVotes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ContestedResourceIdentityVotes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.contestedResourceIdentityVotes = []; + if (options.defaults) + object.finishedResults = false; + if (message.contestedResourceIdentityVotes && message.contestedResourceIdentityVotes.length) { + object.contestedResourceIdentityVotes = []; + for (var j = 0; j < message.contestedResourceIdentityVotes.length; ++j) + object.contestedResourceIdentityVotes[j] = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject(message.contestedResourceIdentityVotes[j], options); + } + if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) + object.finishedResults = message.finishedResults; return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0(); - if (object.votePollsByTimestamps != null) { - if (typeof object.votePollsByTimestamps !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.votePollsByTimestamps: object expected"); - message.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.fromObject(object.votePollsByTimestamps); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; - }; + }; - /** - * Creates a plain object from a GetVotePollsByEndDateResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message GetVotePollsByEndDateResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetVotePollsByEndDateResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { - object.votePollsByTimestamps = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(message.votePollsByTimestamps, options); - if (options.oneofs) - object.result = "votePollsByTimestamps"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; + /** + * Converts this ContestedResourceIdentityVotes to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes + * @instance + * @returns {Object.} JSON object + */ + ContestedResourceIdentityVotes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetVotePollsByEndDateResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetVotePollsByEndDateResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return ContestedResourceIdentityVotes; + })(); - GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp = (function() { + GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice = (function() { /** - * Properties of a SerializedVotePollsByTimestamp. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @interface ISerializedVotePollsByTimestamp - * @property {number|Long|null} [timestamp] SerializedVotePollsByTimestamp timestamp - * @property {Array.|null} [serializedVotePolls] SerializedVotePollsByTimestamp serializedVotePolls + * Properties of a ResourceVoteChoice. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @interface IResourceVoteChoice + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType|null} [voteChoiceType] ResourceVoteChoice voteChoiceType + * @property {Uint8Array|null} [identityId] ResourceVoteChoice identityId */ /** - * Constructs a new SerializedVotePollsByTimestamp. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @classdesc Represents a SerializedVotePollsByTimestamp. - * @implements ISerializedVotePollsByTimestamp + * Constructs a new ResourceVoteChoice. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @classdesc Represents a ResourceVoteChoice. + * @implements IResourceVoteChoice * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice=} [properties] Properties to set */ - function SerializedVotePollsByTimestamp(properties) { - this.serializedVotePolls = []; + function ResourceVoteChoice(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -28825,91 +37997,88 @@ $root.org = (function() { } /** - * SerializedVotePollsByTimestamp timestamp. - * @member {number|Long} timestamp - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * ResourceVoteChoice voteChoiceType. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} voteChoiceType + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @instance */ - SerializedVotePollsByTimestamp.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + ResourceVoteChoice.prototype.voteChoiceType = 0; /** - * SerializedVotePollsByTimestamp serializedVotePolls. - * @member {Array.} serializedVotePolls - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * ResourceVoteChoice identityId. + * @member {Uint8Array} identityId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @instance */ - SerializedVotePollsByTimestamp.prototype.serializedVotePolls = $util.emptyArray; + ResourceVoteChoice.prototype.identityId = $util.newBuffer([]); /** - * Creates a new SerializedVotePollsByTimestamp instance using the specified properties. + * Creates a new ResourceVoteChoice instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice instance */ - SerializedVotePollsByTimestamp.create = function create(properties) { - return new SerializedVotePollsByTimestamp(properties); + ResourceVoteChoice.create = function create(properties) { + return new ResourceVoteChoice(properties); }; /** - * Encodes the specified SerializedVotePollsByTimestamp message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify|verify} messages. + * Encodes the specified ResourceVoteChoice message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice} message ResourceVoteChoice message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SerializedVotePollsByTimestamp.encode = function encode(message, writer) { + ResourceVoteChoice.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.timestamp); - if (message.serializedVotePolls != null && message.serializedVotePolls.length) - for (var i = 0; i < message.serializedVotePolls.length; ++i) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.serializedVotePolls[i]); + if (message.voteChoiceType != null && Object.hasOwnProperty.call(message, "voteChoiceType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.voteChoiceType); + if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.identityId); return writer; }; /** - * Encodes the specified SerializedVotePollsByTimestamp message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify|verify} messages. + * Encodes the specified ResourceVoteChoice message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice} message ResourceVoteChoice message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SerializedVotePollsByTimestamp.encodeDelimited = function encodeDelimited(message, writer) { + ResourceVoteChoice.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SerializedVotePollsByTimestamp message from the specified reader or buffer. + * Decodes a ResourceVoteChoice message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SerializedVotePollsByTimestamp.decode = function decode(reader, length) { + ResourceVoteChoice.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.timestamp = reader.uint64(); + message.voteChoiceType = reader.int32(); break; case 2: - if (!(message.serializedVotePolls && message.serializedVotePolls.length)) - message.serializedVotePolls = []; - message.serializedVotePolls.push(reader.bytes()); + message.identityId = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -28920,147 +38089,163 @@ $root.org = (function() { }; /** - * Decodes a SerializedVotePollsByTimestamp message from the specified reader or buffer, length delimited. + * Decodes a ResourceVoteChoice message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SerializedVotePollsByTimestamp.decodeDelimited = function decodeDelimited(reader) { + ResourceVoteChoice.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SerializedVotePollsByTimestamp message. + * Verifies a ResourceVoteChoice message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SerializedVotePollsByTimestamp.verify = function verify(message) { + ResourceVoteChoice.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.timestamp != null && message.hasOwnProperty("timestamp")) - if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) - return "timestamp: integer|Long expected"; - if (message.serializedVotePolls != null && message.hasOwnProperty("serializedVotePolls")) { - if (!Array.isArray(message.serializedVotePolls)) - return "serializedVotePolls: array expected"; - for (var i = 0; i < message.serializedVotePolls.length; ++i) - if (!(message.serializedVotePolls[i] && typeof message.serializedVotePolls[i].length === "number" || $util.isString(message.serializedVotePolls[i]))) - return "serializedVotePolls: buffer[] expected"; - } + if (message.voteChoiceType != null && message.hasOwnProperty("voteChoiceType")) + switch (message.voteChoiceType) { + default: + return "voteChoiceType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.identityId != null && message.hasOwnProperty("identityId")) + if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) + return "identityId: buffer expected"; return null; }; /** - * Creates a SerializedVotePollsByTimestamp message from a plain object. Also converts values to their respective internal types. + * Creates a ResourceVoteChoice message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} SerializedVotePollsByTimestamp + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice */ - SerializedVotePollsByTimestamp.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp) + ResourceVoteChoice.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp(); - if (object.timestamp != null) - if ($util.Long) - (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true; - else if (typeof object.timestamp === "string") - message.timestamp = parseInt(object.timestamp, 10); - else if (typeof object.timestamp === "number") - message.timestamp = object.timestamp; - else if (typeof object.timestamp === "object") - message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true); - if (object.serializedVotePolls) { - if (!Array.isArray(object.serializedVotePolls)) - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializedVotePolls: array expected"); - message.serializedVotePolls = []; - for (var i = 0; i < object.serializedVotePolls.length; ++i) - if (typeof object.serializedVotePolls[i] === "string") - $util.base64.decode(object.serializedVotePolls[i], message.serializedVotePolls[i] = $util.newBuffer($util.base64.length(object.serializedVotePolls[i])), 0); - else if (object.serializedVotePolls[i].length >= 0) - message.serializedVotePolls[i] = object.serializedVotePolls[i]; + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice(); + switch (object.voteChoiceType) { + case "TOWARDS_IDENTITY": + case 0: + message.voteChoiceType = 0; + break; + case "ABSTAIN": + case 1: + message.voteChoiceType = 1; + break; + case "LOCK": + case 2: + message.voteChoiceType = 2; + break; } + if (object.identityId != null) + if (typeof object.identityId === "string") + $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); + else if (object.identityId.length >= 0) + message.identityId = object.identityId; return message; }; /** - * Creates a plain object from a SerializedVotePollsByTimestamp message. Also converts values to other types if specified. + * Creates a plain object from a ResourceVoteChoice message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message SerializedVotePollsByTimestamp + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message ResourceVoteChoice * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SerializedVotePollsByTimestamp.toObject = function toObject(message, options) { + ResourceVoteChoice.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.serializedVotePolls = []; - if (options.defaults) - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.timestamp = options.longs === String ? "0" : 0; - if (message.timestamp != null && message.hasOwnProperty("timestamp")) - if (typeof message.timestamp === "number") - object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; - else - object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp; - if (message.serializedVotePolls && message.serializedVotePolls.length) { - object.serializedVotePolls = []; - for (var j = 0; j < message.serializedVotePolls.length; ++j) - object.serializedVotePolls[j] = options.bytes === String ? $util.base64.encode(message.serializedVotePolls[j], 0, message.serializedVotePolls[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.serializedVotePolls[j]) : message.serializedVotePolls[j]; + if (options.defaults) { + object.voteChoiceType = options.enums === String ? "TOWARDS_IDENTITY" : 0; + if (options.bytes === String) + object.identityId = ""; + else { + object.identityId = []; + if (options.bytes !== Array) + object.identityId = $util.newBuffer(object.identityId); + } } + if (message.voteChoiceType != null && message.hasOwnProperty("voteChoiceType")) + object.voteChoiceType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType[message.voteChoiceType] : message.voteChoiceType; + if (message.identityId != null && message.hasOwnProperty("identityId")) + object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; return object; }; /** - * Converts this SerializedVotePollsByTimestamp to JSON. + * Converts this ResourceVoteChoice to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice * @instance * @returns {Object.} JSON object */ - SerializedVotePollsByTimestamp.prototype.toJSON = function toJSON() { + ResourceVoteChoice.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return SerializedVotePollsByTimestamp; + /** + * VoteChoiceType enum. + * @name org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType + * @enum {number} + * @property {number} TOWARDS_IDENTITY=0 TOWARDS_IDENTITY value + * @property {number} ABSTAIN=1 ABSTAIN value + * @property {number} LOCK=2 LOCK value + */ + ResourceVoteChoice.VoteChoiceType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TOWARDS_IDENTITY"] = 0; + values[valuesById[1] = "ABSTAIN"] = 1; + values[valuesById[2] = "LOCK"] = 2; + return values; + })(); + + return ResourceVoteChoice; })(); - GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps = (function() { + GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote = (function() { /** - * Properties of a SerializedVotePollsByTimestamps. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @interface ISerializedVotePollsByTimestamps - * @property {Array.|null} [votePollsByTimestamps] SerializedVotePollsByTimestamps votePollsByTimestamps - * @property {boolean|null} [finishedResults] SerializedVotePollsByTimestamps finishedResults + * Properties of a ContestedResourceIdentityVote. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @interface IContestedResourceIdentityVote + * @property {Uint8Array|null} [contractId] ContestedResourceIdentityVote contractId + * @property {string|null} [documentTypeName] ContestedResourceIdentityVote documentTypeName + * @property {Array.|null} [serializedIndexStorageValues] ContestedResourceIdentityVote serializedIndexStorageValues + * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice|null} [voteChoice] ContestedResourceIdentityVote voteChoice */ /** - * Constructs a new SerializedVotePollsByTimestamps. - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 - * @classdesc Represents a SerializedVotePollsByTimestamps. - * @implements ISerializedVotePollsByTimestamps + * Constructs a new ContestedResourceIdentityVote. + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @classdesc Represents a ContestedResourceIdentityVote. + * @implements IContestedResourceIdentityVote * @constructor - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote=} [properties] Properties to set */ - function SerializedVotePollsByTimestamps(properties) { - this.votePollsByTimestamps = []; + function ContestedResourceIdentityVote(properties) { + this.serializedIndexStorageValues = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29068,91 +38253,117 @@ $root.org = (function() { } /** - * SerializedVotePollsByTimestamps votePollsByTimestamps. - * @member {Array.} votePollsByTimestamps - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * ContestedResourceIdentityVote contractId. + * @member {Uint8Array} contractId + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @instance */ - SerializedVotePollsByTimestamps.prototype.votePollsByTimestamps = $util.emptyArray; + ContestedResourceIdentityVote.prototype.contractId = $util.newBuffer([]); /** - * SerializedVotePollsByTimestamps finishedResults. - * @member {boolean} finishedResults - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * ContestedResourceIdentityVote documentTypeName. + * @member {string} documentTypeName + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @instance */ - SerializedVotePollsByTimestamps.prototype.finishedResults = false; + ContestedResourceIdentityVote.prototype.documentTypeName = ""; /** - * Creates a new SerializedVotePollsByTimestamps instance using the specified properties. + * ContestedResourceIdentityVote serializedIndexStorageValues. + * @member {Array.} serializedIndexStorageValues + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @instance + */ + ContestedResourceIdentityVote.prototype.serializedIndexStorageValues = $util.emptyArray; + + /** + * ContestedResourceIdentityVote voteChoice. + * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice|null|undefined} voteChoice + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @instance + */ + ContestedResourceIdentityVote.prototype.voteChoice = null; + + /** + * Creates a new ContestedResourceIdentityVote instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps instance + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote instance */ - SerializedVotePollsByTimestamps.create = function create(properties) { - return new SerializedVotePollsByTimestamps(properties); + ContestedResourceIdentityVote.create = function create(properties) { + return new ContestedResourceIdentityVote(properties); }; /** - * Encodes the specified SerializedVotePollsByTimestamps message. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify|verify} messages. + * Encodes the specified ContestedResourceIdentityVote message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote} message ContestedResourceIdentityVote message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SerializedVotePollsByTimestamps.encode = function encode(message, writer) { + ContestedResourceIdentityVote.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.votePollsByTimestamps != null && message.votePollsByTimestamps.length) - for (var i = 0; i < message.votePollsByTimestamps.length; ++i) - $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.encode(message.votePollsByTimestamps[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); + if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); + if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); + if (message.serializedIndexStorageValues != null && message.serializedIndexStorageValues.length) + for (var i = 0; i < message.serializedIndexStorageValues.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.serializedIndexStorageValues[i]); + if (message.voteChoice != null && Object.hasOwnProperty.call(message, "voteChoice")) + $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.encode(message.voteChoice, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Encodes the specified SerializedVotePollsByTimestamps message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.verify|verify} messages. + * Encodes the specified ContestedResourceIdentityVote message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ISerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote} message ContestedResourceIdentityVote message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SerializedVotePollsByTimestamps.encodeDelimited = function encodeDelimited(message, writer) { + ContestedResourceIdentityVote.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SerializedVotePollsByTimestamps message from the specified reader or buffer. + * Decodes a ContestedResourceIdentityVote message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SerializedVotePollsByTimestamps.decode = function decode(reader, length) { + ContestedResourceIdentityVote.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.votePollsByTimestamps && message.votePollsByTimestamps.length)) - message.votePollsByTimestamps = []; - message.votePollsByTimestamps.push($root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.decode(reader, reader.uint32())); + message.contractId = reader.bytes(); break; case 2: - message.finishedResults = reader.bool(); + message.documentTypeName = reader.string(); + break; + case 3: + if (!(message.serializedIndexStorageValues && message.serializedIndexStorageValues.length)) + message.serializedIndexStorageValues = []; + message.serializedIndexStorageValues.push(reader.bytes()); + break; + case 4: + message.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -29163,139 +38374,168 @@ $root.org = (function() { }; /** - * Decodes a SerializedVotePollsByTimestamps message from the specified reader or buffer, length delimited. + * Decodes a ContestedResourceIdentityVote message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SerializedVotePollsByTimestamps.decodeDelimited = function decodeDelimited(reader) { + ContestedResourceIdentityVote.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SerializedVotePollsByTimestamps message. + * Verifies a ContestedResourceIdentityVote message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SerializedVotePollsByTimestamps.verify = function verify(message) { + ContestedResourceIdentityVote.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.votePollsByTimestamps != null && message.hasOwnProperty("votePollsByTimestamps")) { - if (!Array.isArray(message.votePollsByTimestamps)) - return "votePollsByTimestamps: array expected"; - for (var i = 0; i < message.votePollsByTimestamps.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.verify(message.votePollsByTimestamps[i]); - if (error) - return "votePollsByTimestamps." + error; - } + if (message.contractId != null && message.hasOwnProperty("contractId")) + if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) + return "contractId: buffer expected"; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + if (!$util.isString(message.documentTypeName)) + return "documentTypeName: string expected"; + if (message.serializedIndexStorageValues != null && message.hasOwnProperty("serializedIndexStorageValues")) { + if (!Array.isArray(message.serializedIndexStorageValues)) + return "serializedIndexStorageValues: array expected"; + for (var i = 0; i < message.serializedIndexStorageValues.length; ++i) + if (!(message.serializedIndexStorageValues[i] && typeof message.serializedIndexStorageValues[i].length === "number" || $util.isString(message.serializedIndexStorageValues[i]))) + return "serializedIndexStorageValues: buffer[] expected"; + } + if (message.voteChoice != null && message.hasOwnProperty("voteChoice")) { + var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify(message.voteChoice); + if (error) + return "voteChoice." + error; } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - if (typeof message.finishedResults !== "boolean") - return "finishedResults: boolean expected"; return null; }; /** - * Creates a SerializedVotePollsByTimestamps message from a plain object. Also converts values to their respective internal types. + * Creates a ContestedResourceIdentityVote message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} SerializedVotePollsByTimestamps + * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote */ - SerializedVotePollsByTimestamps.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps) + ContestedResourceIdentityVote.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote) return object; - var message = new $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps(); - if (object.votePollsByTimestamps) { - if (!Array.isArray(object.votePollsByTimestamps)) - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.votePollsByTimestamps: array expected"); - message.votePollsByTimestamps = []; - for (var i = 0; i < object.votePollsByTimestamps.length; ++i) { - if (typeof object.votePollsByTimestamps[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.votePollsByTimestamps: object expected"); - message.votePollsByTimestamps[i] = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.fromObject(object.votePollsByTimestamps[i]); - } + var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote(); + if (object.contractId != null) + if (typeof object.contractId === "string") + $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); + else if (object.contractId.length >= 0) + message.contractId = object.contractId; + if (object.documentTypeName != null) + message.documentTypeName = String(object.documentTypeName); + if (object.serializedIndexStorageValues) { + if (!Array.isArray(object.serializedIndexStorageValues)) + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializedIndexStorageValues: array expected"); + message.serializedIndexStorageValues = []; + for (var i = 0; i < object.serializedIndexStorageValues.length; ++i) + if (typeof object.serializedIndexStorageValues[i] === "string") + $util.base64.decode(object.serializedIndexStorageValues[i], message.serializedIndexStorageValues[i] = $util.newBuffer($util.base64.length(object.serializedIndexStorageValues[i])), 0); + else if (object.serializedIndexStorageValues[i].length >= 0) + message.serializedIndexStorageValues[i] = object.serializedIndexStorageValues[i]; + } + if (object.voteChoice != null) { + if (typeof object.voteChoice !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.voteChoice: object expected"); + message.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.fromObject(object.voteChoice); } - if (object.finishedResults != null) - message.finishedResults = Boolean(object.finishedResults); return message; }; /** - * Creates a plain object from a SerializedVotePollsByTimestamps message. Also converts values to other types if specified. + * Creates a plain object from a ContestedResourceIdentityVote message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @static - * @param {org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message SerializedVotePollsByTimestamps + * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message ContestedResourceIdentityVote * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SerializedVotePollsByTimestamps.toObject = function toObject(message, options) { + ContestedResourceIdentityVote.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.votePollsByTimestamps = []; - if (options.defaults) - object.finishedResults = false; - if (message.votePollsByTimestamps && message.votePollsByTimestamps.length) { - object.votePollsByTimestamps = []; - for (var j = 0; j < message.votePollsByTimestamps.length; ++j) - object.votePollsByTimestamps[j] = $root.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject(message.votePollsByTimestamps[j], options); + object.serializedIndexStorageValues = []; + if (options.defaults) { + if (options.bytes === String) + object.contractId = ""; + else { + object.contractId = []; + if (options.bytes !== Array) + object.contractId = $util.newBuffer(object.contractId); + } + object.documentTypeName = ""; + object.voteChoice = null; } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - object.finishedResults = message.finishedResults; + if (message.contractId != null && message.hasOwnProperty("contractId")) + object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; + if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) + object.documentTypeName = message.documentTypeName; + if (message.serializedIndexStorageValues && message.serializedIndexStorageValues.length) { + object.serializedIndexStorageValues = []; + for (var j = 0; j < message.serializedIndexStorageValues.length; ++j) + object.serializedIndexStorageValues[j] = options.bytes === String ? $util.base64.encode(message.serializedIndexStorageValues[j], 0, message.serializedIndexStorageValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.serializedIndexStorageValues[j]) : message.serializedIndexStorageValues[j]; + } + if (message.voteChoice != null && message.hasOwnProperty("voteChoice")) + object.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(message.voteChoice, options); return object; }; /** - * Converts this SerializedVotePollsByTimestamps to JSON. + * Converts this ContestedResourceIdentityVote to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps + * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote * @instance * @returns {Object.} JSON object */ - SerializedVotePollsByTimestamps.prototype.toJSON = function toJSON() { + ContestedResourceIdentityVote.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return SerializedVotePollsByTimestamps; + return ContestedResourceIdentityVote; })(); - return GetVotePollsByEndDateResponseV0; + return GetContestedResourceIdentityVotesResponseV0; })(); - return GetVotePollsByEndDateResponse; + return GetContestedResourceIdentityVotesResponse; })(); - v0.GetContestedResourceVoteStateRequest = (function() { + v0.GetPrefundedSpecializedBalanceRequest = (function() { /** - * Properties of a GetContestedResourceVoteStateRequest. + * Properties of a GetPrefundedSpecializedBalanceRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceVoteStateRequest - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0|null} [v0] GetContestedResourceVoteStateRequest v0 + * @interface IGetPrefundedSpecializedBalanceRequest + * @property {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0|null} [v0] GetPrefundedSpecializedBalanceRequest v0 */ /** - * Constructs a new GetContestedResourceVoteStateRequest. + * Constructs a new GetPrefundedSpecializedBalanceRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceVoteStateRequest. - * @implements IGetContestedResourceVoteStateRequest + * @classdesc Represents a GetPrefundedSpecializedBalanceRequest. + * @implements IGetPrefundedSpecializedBalanceRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest=} [properties] Properties to set */ - function GetContestedResourceVoteStateRequest(properties) { + function GetPrefundedSpecializedBalanceRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29303,89 +38543,89 @@ $root.org = (function() { } /** - * GetContestedResourceVoteStateRequest v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * GetPrefundedSpecializedBalanceRequest v0. + * @member {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @instance */ - GetContestedResourceVoteStateRequest.prototype.v0 = null; + GetPrefundedSpecializedBalanceRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVoteStateRequest version. + * GetPrefundedSpecializedBalanceRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @instance */ - Object.defineProperty(GetContestedResourceVoteStateRequest.prototype, "version", { + Object.defineProperty(GetPrefundedSpecializedBalanceRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVoteStateRequest instance using the specified properties. + * Creates a new GetPrefundedSpecializedBalanceRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest instance + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest instance */ - GetContestedResourceVoteStateRequest.create = function create(properties) { - return new GetContestedResourceVoteStateRequest(properties); + GetPrefundedSpecializedBalanceRequest.create = function create(properties) { + return new GetPrefundedSpecializedBalanceRequest(properties); }; /** - * Encodes the specified GetContestedResourceVoteStateRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateRequest.encode = function encode(message, writer) { + GetPrefundedSpecializedBalanceRequest.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceVoteStateRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetPrefundedSpecializedBalanceRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVoteStateRequest message from the specified reader or buffer. + * Decodes a GetPrefundedSpecializedBalanceRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @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.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateRequest.decode = function decode(reader, length) { + GetPrefundedSpecializedBalanceRequest.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.GetContestedResourceVoteStateRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -29396,37 +38636,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVoteStateRequest message from the specified reader or buffer, length delimited. + * Decodes a GetPrefundedSpecializedBalanceRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateRequest.decodeDelimited = function decodeDelimited(reader) { + GetPrefundedSpecializedBalanceRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVoteStateRequest message. + * Verifies a GetPrefundedSpecializedBalanceRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVoteStateRequest.verify = function verify(message) { + GetPrefundedSpecializedBalanceRequest.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -29435,40 +38675,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVoteStateRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetPrefundedSpecializedBalanceRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} GetContestedResourceVoteStateRequest + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest */ - GetContestedResourceVoteStateRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest) + GetPrefundedSpecializedBalanceRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceVoteStateRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetPrefundedSpecializedBalanceRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} message GetContestedResourceVoteStateRequest + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVoteStateRequest.toObject = function toObject(message, options) { + GetPrefundedSpecializedBalanceRequest.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -29476,43 +38716,35 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVoteStateRequest to JSON. + * Converts this GetPrefundedSpecializedBalanceRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest * @instance * @returns {Object.} JSON object */ - GetContestedResourceVoteStateRequest.prototype.toJSON = function toJSON() { + GetPrefundedSpecializedBalanceRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 = (function() { + GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 = (function() { /** - * Properties of a GetContestedResourceVoteStateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest - * @interface IGetContestedResourceVoteStateRequestV0 - * @property {Uint8Array|null} [contractId] GetContestedResourceVoteStateRequestV0 contractId - * @property {string|null} [documentTypeName] GetContestedResourceVoteStateRequestV0 documentTypeName - * @property {string|null} [indexName] GetContestedResourceVoteStateRequestV0 indexName - * @property {Array.|null} [indexValues] GetContestedResourceVoteStateRequestV0 indexValues - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType|null} [resultType] GetContestedResourceVoteStateRequestV0 resultType - * @property {boolean|null} [allowIncludeLockedAndAbstainingVoteTally] GetContestedResourceVoteStateRequestV0 allowIncludeLockedAndAbstainingVoteTally - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo|null} [startAtIdentifierInfo] GetContestedResourceVoteStateRequestV0 startAtIdentifierInfo - * @property {number|null} [count] GetContestedResourceVoteStateRequestV0 count - * @property {boolean|null} [prove] GetContestedResourceVoteStateRequestV0 prove + * Properties of a GetPrefundedSpecializedBalanceRequestV0. + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest + * @interface IGetPrefundedSpecializedBalanceRequestV0 + * @property {Uint8Array|null} [id] GetPrefundedSpecializedBalanceRequestV0 id + * @property {boolean|null} [prove] GetPrefundedSpecializedBalanceRequestV0 prove */ /** - * Constructs a new GetContestedResourceVoteStateRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest - * @classdesc Represents a GetContestedResourceVoteStateRequestV0. - * @implements IGetContestedResourceVoteStateRequestV0 + * Constructs a new GetPrefundedSpecializedBalanceRequestV0. + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest + * @classdesc Represents a GetPrefundedSpecializedBalanceRequestV0. + * @implements IGetPrefundedSpecializedBalanceRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0=} [properties] Properties to set */ - function GetContestedResourceVoteStateRequestV0(properties) { - this.indexValues = []; + function GetPrefundedSpecializedBalanceRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29520,181 +38752,87 @@ $root.org = (function() { } /** - * GetContestedResourceVoteStateRequestV0 contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.contractId = $util.newBuffer([]); - - /** - * GetContestedResourceVoteStateRequestV0 documentTypeName. - * @member {string} documentTypeName - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.documentTypeName = ""; - - /** - * GetContestedResourceVoteStateRequestV0 indexName. - * @member {string} indexName - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.indexName = ""; - - /** - * GetContestedResourceVoteStateRequestV0 indexValues. - * @member {Array.} indexValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.indexValues = $util.emptyArray; - - /** - * GetContestedResourceVoteStateRequestV0 resultType. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} resultType - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.resultType = 0; - - /** - * GetContestedResourceVoteStateRequestV0 allowIncludeLockedAndAbstainingVoteTally. - * @member {boolean} allowIncludeLockedAndAbstainingVoteTally - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.allowIncludeLockedAndAbstainingVoteTally = false; - - /** - * GetContestedResourceVoteStateRequestV0 startAtIdentifierInfo. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo|null|undefined} startAtIdentifierInfo - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @instance - */ - GetContestedResourceVoteStateRequestV0.prototype.startAtIdentifierInfo = null; - - /** - * GetContestedResourceVoteStateRequestV0 count. - * @member {number} count - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * GetPrefundedSpecializedBalanceRequestV0 id. + * @member {Uint8Array} id + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @instance */ - GetContestedResourceVoteStateRequestV0.prototype.count = 0; + GetPrefundedSpecializedBalanceRequestV0.prototype.id = $util.newBuffer([]); /** - * GetContestedResourceVoteStateRequestV0 prove. + * GetPrefundedSpecializedBalanceRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @instance */ - GetContestedResourceVoteStateRequestV0.prototype.prove = false; + GetPrefundedSpecializedBalanceRequestV0.prototype.prove = false; /** - * Creates a new GetContestedResourceVoteStateRequestV0 instance using the specified properties. + * Creates a new GetPrefundedSpecializedBalanceRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 instance */ - GetContestedResourceVoteStateRequestV0.create = function create(properties) { - return new GetContestedResourceVoteStateRequestV0(properties); + GetPrefundedSpecializedBalanceRequestV0.create = function create(properties) { + return new GetPrefundedSpecializedBalanceRequestV0(properties); }; /** - * Encodes the specified GetContestedResourceVoteStateRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateRequestV0.encode = function encode(message, writer) { + GetPrefundedSpecializedBalanceRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); - if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); - if (message.indexValues != null && message.indexValues.length) - for (var i = 0; i < message.indexValues.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); - if (message.resultType != null && Object.hasOwnProperty.call(message, "resultType")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.resultType); - if (message.allowIncludeLockedAndAbstainingVoteTally != null && Object.hasOwnProperty.call(message, "allowIncludeLockedAndAbstainingVoteTally")) - writer.uint32(/* id 6, wireType 0 =*/48).bool(message.allowIncludeLockedAndAbstainingVoteTally); - if (message.startAtIdentifierInfo != null && Object.hasOwnProperty.call(message, "startAtIdentifierInfo")) - $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.encode(message.startAtIdentifierInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.count != null && Object.hasOwnProperty.call(message, "count")) - writer.uint32(/* id 8, wireType 0 =*/64).uint32(message.count); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 9, wireType 0 =*/72).bool(message.prove); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); return writer; }; /** - * Encodes the specified GetContestedResourceVoteStateRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.IGetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetPrefundedSpecializedBalanceRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVoteStateRequestV0 message from the specified reader or buffer. + * Decodes a GetPrefundedSpecializedBalanceRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateRequestV0.decode = function decode(reader, length) { + GetPrefundedSpecializedBalanceRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contractId = reader.bytes(); + message.id = reader.bytes(); break; case 2: - message.documentTypeName = reader.string(); - break; - case 3: - message.indexName = reader.string(); - break; - case 4: - if (!(message.indexValues && message.indexValues.length)) - message.indexValues = []; - message.indexValues.push(reader.bytes()); - break; - case 5: - message.resultType = reader.int32(); - break; - case 6: - message.allowIncludeLockedAndAbstainingVoteTally = reader.bool(); - break; - case 7: - message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.decode(reader, reader.uint32()); - break; - case 8: - message.count = reader.uint32(); - break; - case 9: message.prove = reader.bool(); break; default: @@ -29703,71 +38841,38 @@ $root.org = (function() { } } return message; - }; - - /** - * Decodes a GetContestedResourceVoteStateRequestV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetContestedResourceVoteStateRequestV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GetContestedResourceVoteStateRequestV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetContestedResourceVoteStateRequestV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - if (!$util.isString(message.documentTypeName)) - return "documentTypeName: string expected"; - if (message.indexName != null && message.hasOwnProperty("indexName")) - if (!$util.isString(message.indexName)) - return "indexName: string expected"; - if (message.indexValues != null && message.hasOwnProperty("indexValues")) { - if (!Array.isArray(message.indexValues)) - return "indexValues: array expected"; - for (var i = 0; i < message.indexValues.length; ++i) - if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) - return "indexValues: buffer[] expected"; - } - if (message.resultType != null && message.hasOwnProperty("resultType")) - switch (message.resultType) { - default: - return "resultType: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.allowIncludeLockedAndAbstainingVoteTally != null && message.hasOwnProperty("allowIncludeLockedAndAbstainingVoteTally")) - if (typeof message.allowIncludeLockedAndAbstainingVoteTally !== "boolean") - return "allowIncludeLockedAndAbstainingVoteTally: boolean expected"; - if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify(message.startAtIdentifierInfo); - if (error) - return "startAtIdentifierInfo." + error; - } - if (message.count != null && message.hasOwnProperty("count")) - if (!$util.isInteger(message.count)) - return "count: integer expected"; + }; + + /** + * Decodes a GetPrefundedSpecializedBalanceRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetPrefundedSpecializedBalanceRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetPrefundedSpecializedBalanceRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetPrefundedSpecializedBalanceRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) + return "id: buffer expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -29775,389 +38880,92 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVoteStateRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetPrefundedSpecializedBalanceRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} GetContestedResourceVoteStateRequestV0 + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 */ - GetContestedResourceVoteStateRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0) + GetPrefundedSpecializedBalanceRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - if (object.documentTypeName != null) - message.documentTypeName = String(object.documentTypeName); - if (object.indexName != null) - message.indexName = String(object.indexName); - if (object.indexValues) { - if (!Array.isArray(object.indexValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.indexValues: array expected"); - message.indexValues = []; - for (var i = 0; i < object.indexValues.length; ++i) - if (typeof object.indexValues[i] === "string") - $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); - else if (object.indexValues[i].length >= 0) - message.indexValues[i] = object.indexValues[i]; - } - switch (object.resultType) { - case "DOCUMENTS": - case 0: - message.resultType = 0; - break; - case "VOTE_TALLY": - case 1: - message.resultType = 1; - break; - case "DOCUMENTS_AND_VOTE_TALLY": - case 2: - message.resultType = 2; - break; - } - if (object.allowIncludeLockedAndAbstainingVoteTally != null) - message.allowIncludeLockedAndAbstainingVoteTally = Boolean(object.allowIncludeLockedAndAbstainingVoteTally); - if (object.startAtIdentifierInfo != null) { - if (typeof object.startAtIdentifierInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.startAtIdentifierInfo: object expected"); - message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.fromObject(object.startAtIdentifierInfo); - } - if (object.count != null) - message.count = object.count >>> 0; + var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0(); + if (object.id != null) + if (typeof object.id === "string") + $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); + else if (object.id.length >= 0) + message.id = object.id; if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetContestedResourceVoteStateRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetPrefundedSpecializedBalanceRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message GetContestedResourceVoteStateRequestV0 + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVoteStateRequestV0.toObject = function toObject(message, options) { + GetPrefundedSpecializedBalanceRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.indexValues = []; if (options.defaults) { if (options.bytes === String) - object.contractId = ""; + object.id = ""; else { - object.contractId = []; + object.id = []; if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); + object.id = $util.newBuffer(object.id); } - object.documentTypeName = ""; - object.indexName = ""; - object.resultType = options.enums === String ? "DOCUMENTS" : 0; - object.allowIncludeLockedAndAbstainingVoteTally = false; - object.startAtIdentifierInfo = null; - object.count = 0; object.prove = false; } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - object.documentTypeName = message.documentTypeName; - if (message.indexName != null && message.hasOwnProperty("indexName")) - object.indexName = message.indexName; - if (message.indexValues && message.indexValues.length) { - object.indexValues = []; - for (var j = 0; j < message.indexValues.length; ++j) - object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; - } - if (message.resultType != null && message.hasOwnProperty("resultType")) - object.resultType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType[message.resultType] : message.resultType; - if (message.allowIncludeLockedAndAbstainingVoteTally != null && message.hasOwnProperty("allowIncludeLockedAndAbstainingVoteTally")) - object.allowIncludeLockedAndAbstainingVoteTally = message.allowIncludeLockedAndAbstainingVoteTally; - if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) - object.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(message.startAtIdentifierInfo, options); - if (message.count != null && message.hasOwnProperty("count")) - object.count = message.count; + if (message.id != null && message.hasOwnProperty("id")) + object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; if (message.prove != null && message.hasOwnProperty("prove")) object.prove = message.prove; return object; }; /** - * Converts this GetContestedResourceVoteStateRequestV0 to JSON. + * Converts this GetPrefundedSpecializedBalanceRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 * @instance * @returns {Object.} JSON object */ - GetContestedResourceVoteStateRequestV0.prototype.toJSON = function toJSON() { + GetPrefundedSpecializedBalanceRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo = (function() { - - /** - * Properties of a StartAtIdentifierInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @interface IStartAtIdentifierInfo - * @property {Uint8Array|null} [startIdentifier] StartAtIdentifierInfo startIdentifier - * @property {boolean|null} [startIdentifierIncluded] StartAtIdentifierInfo startIdentifierIncluded - */ - - /** - * Constructs a new StartAtIdentifierInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 - * @classdesc Represents a StartAtIdentifierInfo. - * @implements IStartAtIdentifierInfo - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set - */ - function StartAtIdentifierInfo(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]]; - } - - /** - * StartAtIdentifierInfo startIdentifier. - * @member {Uint8Array} startIdentifier - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @instance - */ - StartAtIdentifierInfo.prototype.startIdentifier = $util.newBuffer([]); - - /** - * StartAtIdentifierInfo startIdentifierIncluded. - * @member {boolean} startIdentifierIncluded - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @instance - */ - StartAtIdentifierInfo.prototype.startIdentifierIncluded = false; - - /** - * Creates a new StartAtIdentifierInfo instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo instance - */ - StartAtIdentifierInfo.create = function create(properties) { - return new StartAtIdentifierInfo(properties); - }; - - /** - * Encodes the specified StartAtIdentifierInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtIdentifierInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startIdentifier != null && Object.hasOwnProperty.call(message, "startIdentifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startIdentifier); - if (message.startIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startIdentifierIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startIdentifierIncluded); - return writer; - }; - - /** - * Encodes the specified StartAtIdentifierInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtIdentifierInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a StartAtIdentifierInfo message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.startIdentifier = reader.bytes(); - break; - case 2: - message.startIdentifierIncluded = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a StartAtIdentifierInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtIdentifierInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a StartAtIdentifierInfo message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StartAtIdentifierInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) - if (!(message.startIdentifier && typeof message.startIdentifier.length === "number" || $util.isString(message.startIdentifier))) - return "startIdentifier: buffer expected"; - if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) - if (typeof message.startIdentifierIncluded !== "boolean") - return "startIdentifierIncluded: boolean expected"; - return null; - }; - - /** - * Creates a StartAtIdentifierInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - */ - StartAtIdentifierInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo(); - if (object.startIdentifier != null) - if (typeof object.startIdentifier === "string") - $util.base64.decode(object.startIdentifier, message.startIdentifier = $util.newBuffer($util.base64.length(object.startIdentifier)), 0); - else if (object.startIdentifier.length >= 0) - message.startIdentifier = object.startIdentifier; - if (object.startIdentifierIncluded != null) - message.startIdentifierIncluded = Boolean(object.startIdentifierIncluded); - return message; - }; - - /** - * Creates a plain object from a StartAtIdentifierInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message StartAtIdentifierInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StartAtIdentifierInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.startIdentifier = ""; - else { - object.startIdentifier = []; - if (options.bytes !== Array) - object.startIdentifier = $util.newBuffer(object.startIdentifier); - } - object.startIdentifierIncluded = false; - } - if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) - object.startIdentifier = options.bytes === String ? $util.base64.encode(message.startIdentifier, 0, message.startIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startIdentifier) : message.startIdentifier; - if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) - object.startIdentifierIncluded = message.startIdentifierIncluded; - return object; - }; - - /** - * Converts this StartAtIdentifierInfo to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo - * @instance - * @returns {Object.} JSON object - */ - StartAtIdentifierInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return StartAtIdentifierInfo; - })(); - - /** - * ResultType enum. - * @name org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType - * @enum {number} - * @property {number} DOCUMENTS=0 DOCUMENTS value - * @property {number} VOTE_TALLY=1 VOTE_TALLY value - * @property {number} DOCUMENTS_AND_VOTE_TALLY=2 DOCUMENTS_AND_VOTE_TALLY value - */ - GetContestedResourceVoteStateRequestV0.ResultType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "DOCUMENTS"] = 0; - values[valuesById[1] = "VOTE_TALLY"] = 1; - values[valuesById[2] = "DOCUMENTS_AND_VOTE_TALLY"] = 2; - return values; - })(); - - return GetContestedResourceVoteStateRequestV0; + return GetPrefundedSpecializedBalanceRequestV0; })(); - return GetContestedResourceVoteStateRequest; + return GetPrefundedSpecializedBalanceRequest; })(); - v0.GetContestedResourceVoteStateResponse = (function() { + v0.GetPrefundedSpecializedBalanceResponse = (function() { /** - * Properties of a GetContestedResourceVoteStateResponse. + * Properties of a GetPrefundedSpecializedBalanceResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceVoteStateResponse - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0|null} [v0] GetContestedResourceVoteStateResponse v0 + * @interface IGetPrefundedSpecializedBalanceResponse + * @property {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0|null} [v0] GetPrefundedSpecializedBalanceResponse v0 */ /** - * Constructs a new GetContestedResourceVoteStateResponse. + * Constructs a new GetPrefundedSpecializedBalanceResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceVoteStateResponse. - * @implements IGetContestedResourceVoteStateResponse + * @classdesc Represents a GetPrefundedSpecializedBalanceResponse. + * @implements IGetPrefundedSpecializedBalanceResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse=} [properties] Properties to set */ - function GetContestedResourceVoteStateResponse(properties) { + function GetPrefundedSpecializedBalanceResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30165,89 +38973,89 @@ $root.org = (function() { } /** - * GetContestedResourceVoteStateResponse v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * GetPrefundedSpecializedBalanceResponse v0. + * @member {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @instance */ - GetContestedResourceVoteStateResponse.prototype.v0 = null; + GetPrefundedSpecializedBalanceResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVoteStateResponse version. + * GetPrefundedSpecializedBalanceResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @instance */ - Object.defineProperty(GetContestedResourceVoteStateResponse.prototype, "version", { + Object.defineProperty(GetPrefundedSpecializedBalanceResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVoteStateResponse instance using the specified properties. + * Creates a new GetPrefundedSpecializedBalanceResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse instance + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse instance */ - GetContestedResourceVoteStateResponse.create = function create(properties) { - return new GetContestedResourceVoteStateResponse(properties); + GetPrefundedSpecializedBalanceResponse.create = function create(properties) { + return new GetPrefundedSpecializedBalanceResponse(properties); }; /** - * Encodes the specified GetContestedResourceVoteStateResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateResponse.encode = function encode(message, writer) { + GetPrefundedSpecializedBalanceResponse.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceVoteStateResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetPrefundedSpecializedBalanceResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVoteStateResponse message from the specified reader or buffer. + * Decodes a GetPrefundedSpecializedBalanceResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @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.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateResponse.decode = function decode(reader, length) { + GetPrefundedSpecializedBalanceResponse.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.GetContestedResourceVoteStateResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -30258,37 +39066,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVoteStateResponse message from the specified reader or buffer, length delimited. + * Decodes a GetPrefundedSpecializedBalanceResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateResponse.decodeDelimited = function decodeDelimited(reader) { + GetPrefundedSpecializedBalanceResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVoteStateResponse message. + * Verifies a GetPrefundedSpecializedBalanceResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVoteStateResponse.verify = function verify(message) { + GetPrefundedSpecializedBalanceResponse.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -30297,40 +39105,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVoteStateResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetPrefundedSpecializedBalanceResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} GetContestedResourceVoteStateResponse + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse */ - GetContestedResourceVoteStateResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse) + GetPrefundedSpecializedBalanceResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceVoteStateResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetPrefundedSpecializedBalanceResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} message GetContestedResourceVoteStateResponse + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVoteStateResponse.toObject = function toObject(message, options) { + GetPrefundedSpecializedBalanceResponse.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -30338,36 +39146,36 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVoteStateResponse to JSON. + * Converts this GetPrefundedSpecializedBalanceResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse * @instance * @returns {Object.} JSON object */ - GetContestedResourceVoteStateResponse.prototype.toJSON = function toJSON() { + GetPrefundedSpecializedBalanceResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 = (function() { + GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 = (function() { /** - * Properties of a GetContestedResourceVoteStateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse - * @interface IGetContestedResourceVoteStateResponseV0 - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders|null} [contestedResourceContenders] GetContestedResourceVoteStateResponseV0 contestedResourceContenders - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceVoteStateResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceVoteStateResponseV0 metadata + * Properties of a GetPrefundedSpecializedBalanceResponseV0. + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse + * @interface IGetPrefundedSpecializedBalanceResponseV0 + * @property {number|Long|null} [balance] GetPrefundedSpecializedBalanceResponseV0 balance + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetPrefundedSpecializedBalanceResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetPrefundedSpecializedBalanceResponseV0 metadata */ /** - * Constructs a new GetContestedResourceVoteStateResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse - * @classdesc Represents a GetContestedResourceVoteStateResponseV0. - * @implements IGetContestedResourceVoteStateResponseV0 + * Constructs a new GetPrefundedSpecializedBalanceResponseV0. + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse + * @classdesc Represents a GetPrefundedSpecializedBalanceResponseV0. + * @implements IGetPrefundedSpecializedBalanceResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0=} [properties] Properties to set */ - function GetContestedResourceVoteStateResponseV0(properties) { + function GetPrefundedSpecializedBalanceResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -30375,69 +39183,69 @@ $root.org = (function() { } /** - * GetContestedResourceVoteStateResponseV0 contestedResourceContenders. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders|null|undefined} contestedResourceContenders - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * GetPrefundedSpecializedBalanceResponseV0 balance. + * @member {number|Long} balance + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @instance */ - GetContestedResourceVoteStateResponseV0.prototype.contestedResourceContenders = null; + GetPrefundedSpecializedBalanceResponseV0.prototype.balance = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** - * GetContestedResourceVoteStateResponseV0 proof. + * GetPrefundedSpecializedBalanceResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @instance */ - GetContestedResourceVoteStateResponseV0.prototype.proof = null; + GetPrefundedSpecializedBalanceResponseV0.prototype.proof = null; /** - * GetContestedResourceVoteStateResponseV0 metadata. + * GetPrefundedSpecializedBalanceResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @instance */ - GetContestedResourceVoteStateResponseV0.prototype.metadata = null; + GetPrefundedSpecializedBalanceResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVoteStateResponseV0 result. - * @member {"contestedResourceContenders"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * GetPrefundedSpecializedBalanceResponseV0 result. + * @member {"balance"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @instance */ - Object.defineProperty(GetContestedResourceVoteStateResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["contestedResourceContenders", "proof"]), + Object.defineProperty(GetPrefundedSpecializedBalanceResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["balance", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVoteStateResponseV0 instance using the specified properties. + * Creates a new GetPrefundedSpecializedBalanceResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 instance */ - GetContestedResourceVoteStateResponseV0.create = function create(properties) { - return new GetContestedResourceVoteStateResponseV0(properties); + GetPrefundedSpecializedBalanceResponseV0.create = function create(properties) { + return new GetPrefundedSpecializedBalanceResponseV0(properties); }; /** - * Encodes the specified GetContestedResourceVoteStateResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateResponseV0.encode = function encode(message, writer) { + GetPrefundedSpecializedBalanceResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contestedResourceContenders != null && Object.hasOwnProperty.call(message, "contestedResourceContenders")) - $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.encode(message.contestedResourceContenders, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.balance != null && Object.hasOwnProperty.call(message, "balance")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.balance); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -30446,38 +39254,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetContestedResourceVoteStateResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.verify|verify} messages. + * Encodes the specified GetPrefundedSpecializedBalanceResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.IGetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVoteStateResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetPrefundedSpecializedBalanceResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVoteStateResponseV0 message from the specified reader or buffer. + * Decodes a GetPrefundedSpecializedBalanceResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateResponseV0.decode = function decode(reader, length) { + GetPrefundedSpecializedBalanceResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.decode(reader, reader.uint32()); + message.balance = reader.uint64(); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -30494,40 +39302,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVoteStateResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetPrefundedSpecializedBalanceResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVoteStateResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetPrefundedSpecializedBalanceResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVoteStateResponseV0 message. + * Verifies a GetPrefundedSpecializedBalanceResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVoteStateResponseV0.verify = function verify(message) { + GetPrefundedSpecializedBalanceResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.contestedResourceContenders != null && message.hasOwnProperty("contestedResourceContenders")) { + if (message.balance != null && message.hasOwnProperty("balance")) { properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify(message.contestedResourceContenders); - if (error) - return "contestedResourceContenders." + error; - } + if (!$util.isInteger(message.balance) && !(message.balance && $util.isInteger(message.balance.low) && $util.isInteger(message.balance.high))) + return "balance: integer|Long expected"; } if (message.proof != null && message.hasOwnProperty("proof")) { if (properties.result === 1) @@ -30548,54 +39353,61 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVoteStateResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetPrefundedSpecializedBalanceResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} GetContestedResourceVoteStateResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 */ - GetContestedResourceVoteStateResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0) + GetPrefundedSpecializedBalanceResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0(); - if (object.contestedResourceContenders != null) { - if (typeof object.contestedResourceContenders !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.contestedResourceContenders: object expected"); - message.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.fromObject(object.contestedResourceContenders); - } + var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0(); + if (object.balance != null) + if ($util.Long) + (message.balance = $util.Long.fromValue(object.balance)).unsigned = true; + else if (typeof object.balance === "string") + message.balance = parseInt(object.balance, 10); + else if (typeof object.balance === "number") + message.balance = object.balance; + else if (typeof object.balance === "object") + message.balance = new $util.LongBits(object.balance.low >>> 0, object.balance.high >>> 0).toNumber(true); if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetContestedResourceVoteStateResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetPrefundedSpecializedBalanceResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message GetContestedResourceVoteStateResponseV0 + * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVoteStateResponseV0.toObject = function toObject(message, options) { + GetPrefundedSpecializedBalanceResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.metadata = null; - if (message.contestedResourceContenders != null && message.hasOwnProperty("contestedResourceContenders")) { - object.contestedResourceContenders = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(message.contestedResourceContenders, options); + if (message.balance != null && message.hasOwnProperty("balance")) { + if (typeof message.balance === "number") + object.balance = options.longs === String ? String(message.balance) : message.balance; + else + object.balance = options.longs === String ? $util.Long.prototype.toString.call(message.balance) : options.longs === Number ? new $util.LongBits(message.balance.low >>> 0, message.balance.high >>> 0).toNumber(true) : message.balance; if (options.oneofs) - object.result = "contestedResourceContenders"; + object.result = "balance"; } if (message.proof != null && message.hasOwnProperty("proof")) { object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); @@ -30608,940 +39420,926 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVoteStateResponseV0 to JSON. + * Converts this GetPrefundedSpecializedBalanceResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 * @instance * @returns {Object.} JSON object */ - GetContestedResourceVoteStateResponseV0.prototype.toJSON = function toJSON() { + GetPrefundedSpecializedBalanceResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVoteStateResponseV0.FinishedVoteInfo = (function() { + return GetPrefundedSpecializedBalanceResponseV0; + })(); - /** - * Properties of a FinishedVoteInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @interface IFinishedVoteInfo - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome|null} [finishedVoteOutcome] FinishedVoteInfo finishedVoteOutcome - * @property {Uint8Array|null} [wonByIdentityId] FinishedVoteInfo wonByIdentityId - * @property {number|Long|null} [finishedAtBlockHeight] FinishedVoteInfo finishedAtBlockHeight - * @property {number|null} [finishedAtCoreBlockHeight] FinishedVoteInfo finishedAtCoreBlockHeight - * @property {number|Long|null} [finishedAtBlockTimeMs] FinishedVoteInfo finishedAtBlockTimeMs - * @property {number|null} [finishedAtEpoch] FinishedVoteInfo finishedAtEpoch - */ + return GetPrefundedSpecializedBalanceResponse; + })(); - /** - * Constructs a new FinishedVoteInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @classdesc Represents a FinishedVoteInfo. - * @implements IFinishedVoteInfo - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo=} [properties] Properties to set - */ - function FinishedVoteInfo(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]]; + v0.GetTotalCreditsInPlatformRequest = (function() { + + /** + * Properties of a GetTotalCreditsInPlatformRequest. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetTotalCreditsInPlatformRequest + * @property {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0|null} [v0] GetTotalCreditsInPlatformRequest v0 + */ + + /** + * Constructs a new GetTotalCreditsInPlatformRequest. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetTotalCreditsInPlatformRequest. + * @implements IGetTotalCreditsInPlatformRequest + * @constructor + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest=} [properties] Properties to set + */ + function GetTotalCreditsInPlatformRequest(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]]; + } + + /** + * GetTotalCreditsInPlatformRequest v0. + * @member {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @instance + */ + GetTotalCreditsInPlatformRequest.prototype.v0 = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetTotalCreditsInPlatformRequest version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @instance + */ + Object.defineProperty(GetTotalCreditsInPlatformRequest.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetTotalCreditsInPlatformRequest instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest instance + */ + GetTotalCreditsInPlatformRequest.create = function create(properties) { + return new GetTotalCreditsInPlatformRequest(properties); + }; + + /** + * Encodes the specified GetTotalCreditsInPlatformRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GetTotalCreditsInPlatformRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetTotalCreditsInPlatformRequest message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @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.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } + } + return message; + }; - /** - * FinishedVoteInfo finishedVoteOutcome. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} finishedVoteOutcome - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.finishedVoteOutcome = 0; + /** + * Decodes a GetTotalCreditsInPlatformRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * FinishedVoteInfo wonByIdentityId. - * @member {Uint8Array} wonByIdentityId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.wonByIdentityId = $util.newBuffer([]); + /** + * Verifies a GetTotalCreditsInPlatformRequest message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; - /** - * FinishedVoteInfo finishedAtBlockHeight. - * @member {number|Long} finishedAtBlockHeight - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.finishedAtBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + /** + * Creates a GetTotalCreditsInPlatformRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest + */ + GetTotalCreditsInPlatformRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.fromObject(object.v0); + } + return message; + }; - /** - * FinishedVoteInfo finishedAtCoreBlockHeight. - * @member {number} finishedAtCoreBlockHeight - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.finishedAtCoreBlockHeight = 0; + /** + * Creates a plain object from a GetTotalCreditsInPlatformRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; - /** - * FinishedVoteInfo finishedAtBlockTimeMs. - * @member {number|Long} finishedAtBlockTimeMs - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.finishedAtBlockTimeMs = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + /** + * Converts this GetTotalCreditsInPlatformRequest to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @instance + * @returns {Object.} JSON object + */ + GetTotalCreditsInPlatformRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * FinishedVoteInfo finishedAtEpoch. - * @member {number} finishedAtEpoch - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - */ - FinishedVoteInfo.prototype.finishedAtEpoch = 0; + GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 = (function() { - /** - * Creates a new FinishedVoteInfo instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo instance - */ - FinishedVoteInfo.create = function create(properties) { - return new FinishedVoteInfo(properties); - }; + /** + * Properties of a GetTotalCreditsInPlatformRequestV0. + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @interface IGetTotalCreditsInPlatformRequestV0 + * @property {boolean|null} [prove] GetTotalCreditsInPlatformRequestV0 prove + */ - /** - * Encodes the specified FinishedVoteInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo} message FinishedVoteInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FinishedVoteInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.finishedVoteOutcome != null && Object.hasOwnProperty.call(message, "finishedVoteOutcome")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.finishedVoteOutcome); - if (message.wonByIdentityId != null && Object.hasOwnProperty.call(message, "wonByIdentityId")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.wonByIdentityId); - if (message.finishedAtBlockHeight != null && Object.hasOwnProperty.call(message, "finishedAtBlockHeight")) - writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.finishedAtBlockHeight); - if (message.finishedAtCoreBlockHeight != null && Object.hasOwnProperty.call(message, "finishedAtCoreBlockHeight")) - writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.finishedAtCoreBlockHeight); - if (message.finishedAtBlockTimeMs != null && Object.hasOwnProperty.call(message, "finishedAtBlockTimeMs")) - writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.finishedAtBlockTimeMs); - if (message.finishedAtEpoch != null && Object.hasOwnProperty.call(message, "finishedAtEpoch")) - writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.finishedAtEpoch); - return writer; - }; + /** + * Constructs a new GetTotalCreditsInPlatformRequestV0. + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest + * @classdesc Represents a GetTotalCreditsInPlatformRequestV0. + * @implements IGetTotalCreditsInPlatformRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0=} [properties] Properties to set + */ + function GetTotalCreditsInPlatformRequestV0(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]]; + } - /** - * Encodes the specified FinishedVoteInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo} message FinishedVoteInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - FinishedVoteInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * GetTotalCreditsInPlatformRequestV0 prove. + * @member {boolean} prove + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @instance + */ + GetTotalCreditsInPlatformRequestV0.prototype.prove = false; - /** - * Decodes a FinishedVoteInfo message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.finishedVoteOutcome = reader.int32(); - break; - case 2: - message.wonByIdentityId = reader.bytes(); - break; - case 3: - message.finishedAtBlockHeight = reader.uint64(); - break; - case 4: - message.finishedAtCoreBlockHeight = reader.uint32(); - break; - case 5: - message.finishedAtBlockTimeMs = reader.uint64(); - break; - case 6: - message.finishedAtEpoch = reader.uint32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new GetTotalCreditsInPlatformRequestV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 instance + */ + GetTotalCreditsInPlatformRequestV0.create = function create(properties) { + return new GetTotalCreditsInPlatformRequestV0(properties); + }; - /** - * Decodes a FinishedVoteInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - FinishedVoteInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified GetTotalCreditsInPlatformRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformRequestV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.prove); + return writer; + }; - /** - * Verifies a FinishedVoteInfo message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - FinishedVoteInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.finishedVoteOutcome != null && message.hasOwnProperty("finishedVoteOutcome")) - switch (message.finishedVoteOutcome) { - default: - return "finishedVoteOutcome: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.wonByIdentityId != null && message.hasOwnProperty("wonByIdentityId")) - if (!(message.wonByIdentityId && typeof message.wonByIdentityId.length === "number" || $util.isString(message.wonByIdentityId))) - return "wonByIdentityId: buffer expected"; - if (message.finishedAtBlockHeight != null && message.hasOwnProperty("finishedAtBlockHeight")) - if (!$util.isInteger(message.finishedAtBlockHeight) && !(message.finishedAtBlockHeight && $util.isInteger(message.finishedAtBlockHeight.low) && $util.isInteger(message.finishedAtBlockHeight.high))) - return "finishedAtBlockHeight: integer|Long expected"; - if (message.finishedAtCoreBlockHeight != null && message.hasOwnProperty("finishedAtCoreBlockHeight")) - if (!$util.isInteger(message.finishedAtCoreBlockHeight)) - return "finishedAtCoreBlockHeight: integer expected"; - if (message.finishedAtBlockTimeMs != null && message.hasOwnProperty("finishedAtBlockTimeMs")) - if (!$util.isInteger(message.finishedAtBlockTimeMs) && !(message.finishedAtBlockTimeMs && $util.isInteger(message.finishedAtBlockTimeMs.low) && $util.isInteger(message.finishedAtBlockTimeMs.high))) - return "finishedAtBlockTimeMs: integer|Long expected"; - if (message.finishedAtEpoch != null && message.hasOwnProperty("finishedAtEpoch")) - if (!$util.isInteger(message.finishedAtEpoch)) - return "finishedAtEpoch: integer expected"; - return null; - }; + /** + * Encodes the specified GetTotalCreditsInPlatformRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a FinishedVoteInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} FinishedVoteInfo - */ - FinishedVoteInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo(); - switch (object.finishedVoteOutcome) { - case "TOWARDS_IDENTITY": - case 0: - message.finishedVoteOutcome = 0; - break; - case "LOCKED": + /** + * Decodes a GetTotalCreditsInPlatformRequestV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { case 1: - message.finishedVoteOutcome = 1; + message.prove = reader.bool(); break; - case "NO_PREVIOUS_WINNER": - case 2: - message.finishedVoteOutcome = 2; + default: + reader.skipType(tag & 7); break; } - if (object.wonByIdentityId != null) - if (typeof object.wonByIdentityId === "string") - $util.base64.decode(object.wonByIdentityId, message.wonByIdentityId = $util.newBuffer($util.base64.length(object.wonByIdentityId)), 0); - else if (object.wonByIdentityId.length >= 0) - message.wonByIdentityId = object.wonByIdentityId; - if (object.finishedAtBlockHeight != null) - if ($util.Long) - (message.finishedAtBlockHeight = $util.Long.fromValue(object.finishedAtBlockHeight)).unsigned = true; - else if (typeof object.finishedAtBlockHeight === "string") - message.finishedAtBlockHeight = parseInt(object.finishedAtBlockHeight, 10); - else if (typeof object.finishedAtBlockHeight === "number") - message.finishedAtBlockHeight = object.finishedAtBlockHeight; - else if (typeof object.finishedAtBlockHeight === "object") - message.finishedAtBlockHeight = new $util.LongBits(object.finishedAtBlockHeight.low >>> 0, object.finishedAtBlockHeight.high >>> 0).toNumber(true); - if (object.finishedAtCoreBlockHeight != null) - message.finishedAtCoreBlockHeight = object.finishedAtCoreBlockHeight >>> 0; - if (object.finishedAtBlockTimeMs != null) - if ($util.Long) - (message.finishedAtBlockTimeMs = $util.Long.fromValue(object.finishedAtBlockTimeMs)).unsigned = true; - else if (typeof object.finishedAtBlockTimeMs === "string") - message.finishedAtBlockTimeMs = parseInt(object.finishedAtBlockTimeMs, 10); - else if (typeof object.finishedAtBlockTimeMs === "number") - message.finishedAtBlockTimeMs = object.finishedAtBlockTimeMs; - else if (typeof object.finishedAtBlockTimeMs === "object") - message.finishedAtBlockTimeMs = new $util.LongBits(object.finishedAtBlockTimeMs.low >>> 0, object.finishedAtBlockTimeMs.high >>> 0).toNumber(true); - if (object.finishedAtEpoch != null) - message.finishedAtEpoch = object.finishedAtEpoch >>> 0; - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a FinishedVoteInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message FinishedVoteInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - FinishedVoteInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.finishedVoteOutcome = options.enums === String ? "TOWARDS_IDENTITY" : 0; - if (options.bytes === String) - object.wonByIdentityId = ""; - else { - object.wonByIdentityId = []; - if (options.bytes !== Array) - object.wonByIdentityId = $util.newBuffer(object.wonByIdentityId); - } - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.finishedAtBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.finishedAtBlockHeight = options.longs === String ? "0" : 0; - object.finishedAtCoreBlockHeight = 0; - if ($util.Long) { - var long = new $util.Long(0, 0, true); - object.finishedAtBlockTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.finishedAtBlockTimeMs = options.longs === String ? "0" : 0; - object.finishedAtEpoch = 0; - } - if (message.finishedVoteOutcome != null && message.hasOwnProperty("finishedVoteOutcome")) - object.finishedVoteOutcome = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome[message.finishedVoteOutcome] : message.finishedVoteOutcome; - if (message.wonByIdentityId != null && message.hasOwnProperty("wonByIdentityId")) - object.wonByIdentityId = options.bytes === String ? $util.base64.encode(message.wonByIdentityId, 0, message.wonByIdentityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.wonByIdentityId) : message.wonByIdentityId; - if (message.finishedAtBlockHeight != null && message.hasOwnProperty("finishedAtBlockHeight")) - if (typeof message.finishedAtBlockHeight === "number") - object.finishedAtBlockHeight = options.longs === String ? String(message.finishedAtBlockHeight) : message.finishedAtBlockHeight; - else - object.finishedAtBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.finishedAtBlockHeight) : options.longs === Number ? new $util.LongBits(message.finishedAtBlockHeight.low >>> 0, message.finishedAtBlockHeight.high >>> 0).toNumber(true) : message.finishedAtBlockHeight; - if (message.finishedAtCoreBlockHeight != null && message.hasOwnProperty("finishedAtCoreBlockHeight")) - object.finishedAtCoreBlockHeight = message.finishedAtCoreBlockHeight; - if (message.finishedAtBlockTimeMs != null && message.hasOwnProperty("finishedAtBlockTimeMs")) - if (typeof message.finishedAtBlockTimeMs === "number") - object.finishedAtBlockTimeMs = options.longs === String ? String(message.finishedAtBlockTimeMs) : message.finishedAtBlockTimeMs; - else - object.finishedAtBlockTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.finishedAtBlockTimeMs) : options.longs === Number ? new $util.LongBits(message.finishedAtBlockTimeMs.low >>> 0, message.finishedAtBlockTimeMs.high >>> 0).toNumber(true) : message.finishedAtBlockTimeMs; - if (message.finishedAtEpoch != null && message.hasOwnProperty("finishedAtEpoch")) - object.finishedAtEpoch = message.finishedAtEpoch; - return object; - }; + /** + * Decodes a GetTotalCreditsInPlatformRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Converts this FinishedVoteInfo to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo - * @instance - * @returns {Object.} JSON object - */ - FinishedVoteInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Verifies a GetTotalCreditsInPlatformRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetTotalCreditsInPlatformRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.prove != null && message.hasOwnProperty("prove")) + if (typeof message.prove !== "boolean") + return "prove: boolean expected"; + return null; + }; - /** - * FinishedVoteOutcome enum. - * @name org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome - * @enum {number} - * @property {number} TOWARDS_IDENTITY=0 TOWARDS_IDENTITY value - * @property {number} LOCKED=1 LOCKED value - * @property {number} NO_PREVIOUS_WINNER=2 NO_PREVIOUS_WINNER value - */ - FinishedVoteInfo.FinishedVoteOutcome = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "TOWARDS_IDENTITY"] = 0; - values[valuesById[1] = "LOCKED"] = 1; - values[valuesById[2] = "NO_PREVIOUS_WINNER"] = 2; - return values; - })(); + /** + * Creates a GetTotalCreditsInPlatformRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 + */ + GetTotalCreditsInPlatformRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0(); + if (object.prove != null) + message.prove = Boolean(object.prove); + return message; + }; - return FinishedVoteInfo; - })(); + /** + * Creates a plain object from a GetTotalCreditsInPlatformRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetTotalCreditsInPlatformRequestV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.prove = false; + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; - GetContestedResourceVoteStateResponseV0.ContestedResourceContenders = (function() { + /** + * Converts this GetTotalCreditsInPlatformRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetTotalCreditsInPlatformRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Properties of a ContestedResourceContenders. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @interface IContestedResourceContenders - * @property {Array.|null} [contenders] ContestedResourceContenders contenders - * @property {number|null} [abstainVoteTally] ContestedResourceContenders abstainVoteTally - * @property {number|null} [lockVoteTally] ContestedResourceContenders lockVoteTally - * @property {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo|null} [finishedVoteInfo] ContestedResourceContenders finishedVoteInfo - */ + return GetTotalCreditsInPlatformRequestV0; + })(); - /** - * Constructs a new ContestedResourceContenders. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @classdesc Represents a ContestedResourceContenders. - * @implements IContestedResourceContenders - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders=} [properties] Properties to set - */ - function ContestedResourceContenders(properties) { - this.contenders = []; - 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]]; - } + return GetTotalCreditsInPlatformRequest; + })(); - /** - * ContestedResourceContenders contenders. - * @member {Array.} contenders - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @instance - */ - ContestedResourceContenders.prototype.contenders = $util.emptyArray; + v0.GetTotalCreditsInPlatformResponse = (function() { - /** - * ContestedResourceContenders abstainVoteTally. - * @member {number} abstainVoteTally - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @instance - */ - ContestedResourceContenders.prototype.abstainVoteTally = 0; + /** + * Properties of a GetTotalCreditsInPlatformResponse. + * @memberof org.dash.platform.dapi.v0 + * @interface IGetTotalCreditsInPlatformResponse + * @property {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0|null} [v0] GetTotalCreditsInPlatformResponse v0 + */ - /** - * ContestedResourceContenders lockVoteTally. - * @member {number} lockVoteTally - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @instance - */ - ContestedResourceContenders.prototype.lockVoteTally = 0; + /** + * Constructs a new GetTotalCreditsInPlatformResponse. + * @memberof org.dash.platform.dapi.v0 + * @classdesc Represents a GetTotalCreditsInPlatformResponse. + * @implements IGetTotalCreditsInPlatformResponse + * @constructor + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse=} [properties] Properties to set + */ + function GetTotalCreditsInPlatformResponse(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]]; + } - /** - * ContestedResourceContenders finishedVoteInfo. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IFinishedVoteInfo|null|undefined} finishedVoteInfo - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @instance - */ - ContestedResourceContenders.prototype.finishedVoteInfo = null; + /** + * GetTotalCreditsInPlatformResponse v0. + * @member {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @instance + */ + GetTotalCreditsInPlatformResponse.prototype.v0 = null; - /** - * Creates a new ContestedResourceContenders instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders instance - */ - ContestedResourceContenders.create = function create(properties) { - return new ContestedResourceContenders(properties); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified ContestedResourceContenders message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders} message ContestedResourceContenders message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceContenders.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contenders != null && message.contenders.length) - for (var i = 0; i < message.contenders.length; ++i) - $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.encode(message.contenders[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.abstainVoteTally != null && Object.hasOwnProperty.call(message, "abstainVoteTally")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.abstainVoteTally); - if (message.lockVoteTally != null && Object.hasOwnProperty.call(message, "lockVoteTally")) - writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.lockVoteTally); - if (message.finishedVoteInfo != null && Object.hasOwnProperty.call(message, "finishedVoteInfo")) - $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.encode(message.finishedVoteInfo, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - return writer; - }; + /** + * GetTotalCreditsInPlatformResponse version. + * @member {"v0"|undefined} version + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @instance + */ + Object.defineProperty(GetTotalCreditsInPlatformResponse.prototype, "version", { + get: $util.oneOfGetter($oneOfFields = ["v0"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetTotalCreditsInPlatformResponse instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse instance + */ + GetTotalCreditsInPlatformResponse.create = function create(properties) { + return new GetTotalCreditsInPlatformResponse(properties); + }; - /** - * Encodes the specified ContestedResourceContenders message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContestedResourceContenders} message ContestedResourceContenders message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceContenders.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified GetTotalCreditsInPlatformResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Decodes a ContestedResourceContenders message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.contenders && message.contenders.length)) - message.contenders = []; - message.contenders.push($root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.decode(reader, reader.uint32())); - break; - case 2: - message.abstainVoteTally = reader.uint32(); - break; - case 3: - message.lockVoteTally = reader.uint32(); - break; - case 4: - message.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified GetTotalCreditsInPlatformResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a ContestedResourceContenders message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceContenders.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a GetTotalCreditsInPlatformResponse message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @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.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Verifies a ContestedResourceContenders message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ContestedResourceContenders.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.contenders != null && message.hasOwnProperty("contenders")) { - if (!Array.isArray(message.contenders)) - return "contenders: array expected"; - for (var i = 0; i < message.contenders.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify(message.contenders[i]); - if (error) - return "contenders." + error; - } - } - if (message.abstainVoteTally != null && message.hasOwnProperty("abstainVoteTally")) - if (!$util.isInteger(message.abstainVoteTally)) - return "abstainVoteTally: integer expected"; - if (message.lockVoteTally != null && message.hasOwnProperty("lockVoteTally")) - if (!$util.isInteger(message.lockVoteTally)) - return "lockVoteTally: integer expected"; - if (message.finishedVoteInfo != null && message.hasOwnProperty("finishedVoteInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.verify(message.finishedVoteInfo); - if (error) - return "finishedVoteInfo." + error; - } - return null; - }; + /** + * Decodes a GetTotalCreditsInPlatformResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a ContestedResourceContenders message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} ContestedResourceContenders - */ - ContestedResourceContenders.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders(); - if (object.contenders) { - if (!Array.isArray(object.contenders)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders: array expected"); - message.contenders = []; - for (var i = 0; i < object.contenders.length; ++i) { - if (typeof object.contenders[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders: object expected"); - message.contenders[i] = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.fromObject(object.contenders[i]); - } - } - if (object.abstainVoteTally != null) - message.abstainVoteTally = object.abstainVoteTally >>> 0; - if (object.lockVoteTally != null) - message.lockVoteTally = object.lockVoteTally >>> 0; - if (object.finishedVoteInfo != null) { - if (typeof object.finishedVoteInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.finishedVoteInfo: object expected"); - message.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.fromObject(object.finishedVoteInfo); - } - return message; - }; + /** + * Verifies a GetTotalCreditsInPlatformResponse message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify(message.v0); + if (error) + return "v0." + error; + } + } + return null; + }; - /** - * Creates a plain object from a ContestedResourceContenders message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message ContestedResourceContenders - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ContestedResourceContenders.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.contenders = []; - if (options.defaults) { - object.abstainVoteTally = 0; - object.lockVoteTally = 0; - object.finishedVoteInfo = null; - } - if (message.contenders && message.contenders.length) { - object.contenders = []; - for (var j = 0; j < message.contenders.length; ++j) - object.contenders[j] = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject(message.contenders[j], options); - } - if (message.abstainVoteTally != null && message.hasOwnProperty("abstainVoteTally")) - object.abstainVoteTally = message.abstainVoteTally; - if (message.lockVoteTally != null && message.hasOwnProperty("lockVoteTally")) - object.lockVoteTally = message.lockVoteTally; - if (message.finishedVoteInfo != null && message.hasOwnProperty("finishedVoteInfo")) - object.finishedVoteInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(message.finishedVoteInfo, options); - return object; - }; + /** + * Creates a GetTotalCreditsInPlatformResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + */ + GetTotalCreditsInPlatformResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse(); + if (object.v0 != null) { + if (typeof object.v0 !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.fromObject(object.v0); + } + return message; + }; - /** - * Converts this ContestedResourceContenders to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders - * @instance - * @returns {Object.} JSON object - */ - ContestedResourceContenders.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a GetTotalCreditsInPlatformResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(message.v0, options); + if (options.oneofs) + object.version = "v0"; + } + return object; + }; - return ContestedResourceContenders; - })(); + /** + * Converts this GetTotalCreditsInPlatformResponse to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @instance + * @returns {Object.} JSON object + */ + GetTotalCreditsInPlatformResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - GetContestedResourceVoteStateResponseV0.Contender = (function() { + GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 = (function() { - /** - * Properties of a Contender. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @interface IContender - * @property {Uint8Array|null} [identifier] Contender identifier - * @property {number|null} [voteCount] Contender voteCount - * @property {Uint8Array|null} [document] Contender document - */ + /** + * Properties of a GetTotalCreditsInPlatformResponseV0. + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @interface IGetTotalCreditsInPlatformResponseV0 + * @property {number|Long|null} [credits] GetTotalCreditsInPlatformResponseV0 credits + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetTotalCreditsInPlatformResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetTotalCreditsInPlatformResponseV0 metadata + */ - /** - * Constructs a new Contender. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 - * @classdesc Represents a Contender. - * @implements IContender - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender=} [properties] Properties to set - */ - function Contender(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]]; - } + /** + * Constructs a new GetTotalCreditsInPlatformResponseV0. + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @classdesc Represents a GetTotalCreditsInPlatformResponseV0. + * @implements IGetTotalCreditsInPlatformResponseV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0=} [properties] Properties to set + */ + function GetTotalCreditsInPlatformResponseV0(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]]; + } - /** - * Contender identifier. - * @member {Uint8Array} identifier - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @instance - */ - Contender.prototype.identifier = $util.newBuffer([]); + /** + * GetTotalCreditsInPlatformResponseV0 credits. + * @member {number|Long} credits + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @instance + */ + GetTotalCreditsInPlatformResponseV0.prototype.credits = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Contender voteCount. - * @member {number} voteCount - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @instance - */ - Contender.prototype.voteCount = 0; + /** + * GetTotalCreditsInPlatformResponseV0 proof. + * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @instance + */ + GetTotalCreditsInPlatformResponseV0.prototype.proof = null; - /** - * Contender document. - * @member {Uint8Array} document - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @instance - */ - Contender.prototype.document = $util.newBuffer([]); + /** + * GetTotalCreditsInPlatformResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @instance + */ + GetTotalCreditsInPlatformResponseV0.prototype.metadata = null; - /** - * Creates a new Contender instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender instance - */ - Contender.create = function create(properties) { - return new Contender(properties); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Encodes the specified Contender message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender} message Contender message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Contender.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.identifier != null && Object.hasOwnProperty.call(message, "identifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identifier); - if (message.voteCount != null && Object.hasOwnProperty.call(message, "voteCount")) - writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.voteCount); - if (message.document != null && Object.hasOwnProperty.call(message, "document")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.document); - return writer; - }; + /** + * GetTotalCreditsInPlatformResponseV0 result. + * @member {"credits"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @instance + */ + Object.defineProperty(GetTotalCreditsInPlatformResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["credits", "proof"]), + set: $util.oneOfSetter($oneOfFields) + }); - /** - * Encodes the specified Contender message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.IContender} message Contender message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Contender.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new GetTotalCreditsInPlatformResponseV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 instance + */ + GetTotalCreditsInPlatformResponseV0.create = function create(properties) { + return new GetTotalCreditsInPlatformResponseV0(properties); + }; - /** - * Decodes a Contender message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.identifier = reader.bytes(); - break; - case 2: - message.voteCount = reader.uint32(); - break; - case 3: - message.document = reader.bytes(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Encodes the specified GetTotalCreditsInPlatformResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformResponseV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.credits != null && Object.hasOwnProperty.call(message, "credits")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.credits); + if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) + $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; - /** - * Decodes a Contender message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Contender.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified GetTotalCreditsInPlatformResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetTotalCreditsInPlatformResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Verifies a Contender message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Contender.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.identifier != null && message.hasOwnProperty("identifier")) - if (!(message.identifier && typeof message.identifier.length === "number" || $util.isString(message.identifier))) - return "identifier: buffer expected"; - if (message.voteCount != null && message.hasOwnProperty("voteCount")) - if (!$util.isInteger(message.voteCount)) - return "voteCount: integer expected"; - if (message.document != null && message.hasOwnProperty("document")) - if (!(message.document && typeof message.document.length === "number" || $util.isString(message.document))) - return "document: buffer expected"; - return null; - }; + /** + * Decodes a GetTotalCreditsInPlatformResponseV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformResponseV0.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.credits = reader.uint64(); + break; + case 2: + message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + break; + case 3: + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a Contender message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} Contender - */ - Contender.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender(); - if (object.identifier != null) - if (typeof object.identifier === "string") - $util.base64.decode(object.identifier, message.identifier = $util.newBuffer($util.base64.length(object.identifier)), 0); - else if (object.identifier.length >= 0) - message.identifier = object.identifier; - if (object.voteCount != null) - message.voteCount = object.voteCount >>> 0; - if (object.document != null) - if (typeof object.document === "string") - $util.base64.decode(object.document, message.document = $util.newBuffer($util.base64.length(object.document)), 0); - else if (object.document.length >= 0) - message.document = object.document; - return message; - }; + /** + * Decodes a GetTotalCreditsInPlatformResponseV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetTotalCreditsInPlatformResponseV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a plain object from a Contender message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message Contender - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Contender.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.identifier = ""; - else { - object.identifier = []; - if (options.bytes !== Array) - object.identifier = $util.newBuffer(object.identifier); - } - object.voteCount = 0; - if (options.bytes === String) - object.document = ""; - else { - object.document = []; - if (options.bytes !== Array) - object.document = $util.newBuffer(object.document); - } + /** + * Verifies a GetTotalCreditsInPlatformResponseV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetTotalCreditsInPlatformResponseV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.credits != null && message.hasOwnProperty("credits")) { + properties.result = 1; + if (!$util.isInteger(message.credits) && !(message.credits && $util.isInteger(message.credits.low) && $util.isInteger(message.credits.high))) + return "credits: integer|Long expected"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + if (properties.result === 1) + return "result: multiple values"; + properties.result = 1; + { + var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (error) + return "proof." + error; } - if (message.identifier != null && message.hasOwnProperty("identifier")) - object.identifier = options.bytes === String ? $util.base64.encode(message.identifier, 0, message.identifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.identifier) : message.identifier; - if (message.voteCount != null && message.hasOwnProperty("voteCount")) - object.voteCount = message.voteCount; - if (message.document != null && message.hasOwnProperty("document")) - object.document = options.bytes === String ? $util.base64.encode(message.document, 0, message.document.length) : options.bytes === Array ? Array.prototype.slice.call(message.document) : message.document; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) { + var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (error) + return "metadata." + error; + } + return null; + }; + + /** + * Creates a GetTotalCreditsInPlatformResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + */ + GetTotalCreditsInPlatformResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0) return object; - }; + var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0(); + if (object.credits != null) + if ($util.Long) + (message.credits = $util.Long.fromValue(object.credits)).unsigned = true; + else if (typeof object.credits === "string") + message.credits = parseInt(object.credits, 10); + else if (typeof object.credits === "number") + message.credits = object.credits; + else if (typeof object.credits === "object") + message.credits = new $util.LongBits(object.credits.low >>> 0, object.credits.high >>> 0).toNumber(true); + if (object.proof != null) { + if (typeof object.proof !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.proof: object expected"); + message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + } + if (object.metadata != null) { + if (typeof object.metadata !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.metadata: object expected"); + message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + } + return message; + }; - /** - * Converts this Contender to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender - * @instance - * @returns {Object.} JSON object - */ - Contender.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a GetTotalCreditsInPlatformResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetTotalCreditsInPlatformResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.metadata = null; + if (message.credits != null && message.hasOwnProperty("credits")) { + if (typeof message.credits === "number") + object.credits = options.longs === String ? String(message.credits) : message.credits; + else + object.credits = options.longs === String ? $util.Long.prototype.toString.call(message.credits) : options.longs === Number ? new $util.LongBits(message.credits.low >>> 0, message.credits.high >>> 0).toNumber(true) : message.credits; + if (options.oneofs) + object.result = "credits"; + } + if (message.proof != null && message.hasOwnProperty("proof")) { + object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); + if (options.oneofs) + object.result = "proof"; + } + if (message.metadata != null && message.hasOwnProperty("metadata")) + object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); + return object; + }; - return Contender; - })(); + /** + * Converts this GetTotalCreditsInPlatformResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetTotalCreditsInPlatformResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetContestedResourceVoteStateResponseV0; + return GetTotalCreditsInPlatformResponseV0; })(); - return GetContestedResourceVoteStateResponse; + return GetTotalCreditsInPlatformResponse; })(); - v0.GetContestedResourceVotersForIdentityRequest = (function() { + v0.GetPathElementsRequest = (function() { /** - * Properties of a GetContestedResourceVotersForIdentityRequest. + * Properties of a GetPathElementsRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceVotersForIdentityRequest - * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0|null} [v0] GetContestedResourceVotersForIdentityRequest v0 + * @interface IGetPathElementsRequest + * @property {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0|null} [v0] GetPathElementsRequest v0 */ /** - * Constructs a new GetContestedResourceVotersForIdentityRequest. + * Constructs a new GetPathElementsRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceVotersForIdentityRequest. - * @implements IGetContestedResourceVotersForIdentityRequest + * @classdesc Represents a GetPathElementsRequest. + * @implements IGetPathElementsRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest=} [properties] Properties to set */ - function GetContestedResourceVotersForIdentityRequest(properties) { + function GetPathElementsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31549,89 +40347,89 @@ $root.org = (function() { } /** - * GetContestedResourceVotersForIdentityRequest v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * GetPathElementsRequest v0. + * @member {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @instance */ - GetContestedResourceVotersForIdentityRequest.prototype.v0 = null; + GetPathElementsRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVotersForIdentityRequest version. + * GetPathElementsRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @instance */ - Object.defineProperty(GetContestedResourceVotersForIdentityRequest.prototype, "version", { + Object.defineProperty(GetPathElementsRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVotersForIdentityRequest instance using the specified properties. + * Creates a new GetPathElementsRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest instance + * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest instance */ - GetContestedResourceVotersForIdentityRequest.create = function create(properties) { - return new GetContestedResourceVotersForIdentityRequest(properties); + GetPathElementsRequest.create = function create(properties) { + return new GetPathElementsRequest(properties); }; /** - * Encodes the specified GetContestedResourceVotersForIdentityRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.verify|verify} messages. + * Encodes the specified GetPathElementsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest} message GetPathElementsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityRequest.encode = function encode(message, writer) { + GetPathElementsRequest.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceVotersForIdentityRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.verify|verify} messages. + * Encodes the specified GetPathElementsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest} message GetPathElementsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetPathElementsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVotersForIdentityRequest message from the specified reader or buffer. + * Decodes a GetPathElementsRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @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.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityRequest.decode = function decode(reader, length) { + GetPathElementsRequest.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.GetContestedResourceVotersForIdentityRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -31642,37 +40440,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVotersForIdentityRequest message from the specified reader or buffer, length delimited. + * Decodes a GetPathElementsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityRequest.decodeDelimited = function decodeDelimited(reader) { + GetPathElementsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVotersForIdentityRequest message. + * Verifies a GetPathElementsRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVotersForIdentityRequest.verify = function verify(message) { + GetPathElementsRequest.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -31681,40 +40479,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVotersForIdentityRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetPathElementsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} GetContestedResourceVotersForIdentityRequest + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest */ - GetContestedResourceVotersForIdentityRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest) + GetPathElementsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceVotersForIdentityRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetPathElementsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} message GetContestedResourceVotersForIdentityRequest + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest} message GetPathElementsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVotersForIdentityRequest.toObject = function toObject(message, options) { + GetPathElementsRequest.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -31722,43 +40520,38 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVotersForIdentityRequest to JSON. + * Converts this GetPathElementsRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest * @instance * @returns {Object.} JSON object */ - GetContestedResourceVotersForIdentityRequest.prototype.toJSON = function toJSON() { + GetPathElementsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 = (function() { + GetPathElementsRequest.GetPathElementsRequestV0 = (function() { /** - * Properties of a GetContestedResourceVotersForIdentityRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest - * @interface IGetContestedResourceVotersForIdentityRequestV0 - * @property {Uint8Array|null} [contractId] GetContestedResourceVotersForIdentityRequestV0 contractId - * @property {string|null} [documentTypeName] GetContestedResourceVotersForIdentityRequestV0 documentTypeName - * @property {string|null} [indexName] GetContestedResourceVotersForIdentityRequestV0 indexName - * @property {Array.|null} [indexValues] GetContestedResourceVotersForIdentityRequestV0 indexValues - * @property {Uint8Array|null} [contestantId] GetContestedResourceVotersForIdentityRequestV0 contestantId - * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo|null} [startAtIdentifierInfo] GetContestedResourceVotersForIdentityRequestV0 startAtIdentifierInfo - * @property {number|null} [count] GetContestedResourceVotersForIdentityRequestV0 count - * @property {boolean|null} [orderAscending] GetContestedResourceVotersForIdentityRequestV0 orderAscending - * @property {boolean|null} [prove] GetContestedResourceVotersForIdentityRequestV0 prove + * Properties of a GetPathElementsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @interface IGetPathElementsRequestV0 + * @property {Array.|null} [path] GetPathElementsRequestV0 path + * @property {Array.|null} [keys] GetPathElementsRequestV0 keys + * @property {boolean|null} [prove] GetPathElementsRequestV0 prove */ /** - * Constructs a new GetContestedResourceVotersForIdentityRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest - * @classdesc Represents a GetContestedResourceVotersForIdentityRequestV0. - * @implements IGetContestedResourceVotersForIdentityRequestV0 + * Constructs a new GetPathElementsRequestV0. + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @classdesc Represents a GetPathElementsRequestV0. + * @implements IGetPathElementsRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0=} [properties] Properties to set */ - function GetContestedResourceVotersForIdentityRequestV0(properties) { - this.indexValues = []; + function GetPathElementsRequestV0(properties) { + this.path = []; + this.keys = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31766,181 +40559,106 @@ $root.org = (function() { } /** - * GetContestedResourceVotersForIdentityRequestV0 contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.contractId = $util.newBuffer([]); - - /** - * GetContestedResourceVotersForIdentityRequestV0 documentTypeName. - * @member {string} documentTypeName - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.documentTypeName = ""; - - /** - * GetContestedResourceVotersForIdentityRequestV0 indexName. - * @member {string} indexName - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.indexName = ""; - - /** - * GetContestedResourceVotersForIdentityRequestV0 indexValues. - * @member {Array.} indexValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.indexValues = $util.emptyArray; - - /** - * GetContestedResourceVotersForIdentityRequestV0 contestantId. - * @member {Uint8Array} contestantId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.contestantId = $util.newBuffer([]); - - /** - * GetContestedResourceVotersForIdentityRequestV0 startAtIdentifierInfo. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo|null|undefined} startAtIdentifierInfo - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.startAtIdentifierInfo = null; - - /** - * GetContestedResourceVotersForIdentityRequestV0 count. - * @member {number} count - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * GetPathElementsRequestV0 path. + * @member {Array.} path + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @instance */ - GetContestedResourceVotersForIdentityRequestV0.prototype.count = 0; + GetPathElementsRequestV0.prototype.path = $util.emptyArray; /** - * GetContestedResourceVotersForIdentityRequestV0 orderAscending. - * @member {boolean} orderAscending - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * GetPathElementsRequestV0 keys. + * @member {Array.} keys + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @instance */ - GetContestedResourceVotersForIdentityRequestV0.prototype.orderAscending = false; + GetPathElementsRequestV0.prototype.keys = $util.emptyArray; /** - * GetContestedResourceVotersForIdentityRequestV0 prove. + * GetPathElementsRequestV0 prove. * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @instance */ - GetContestedResourceVotersForIdentityRequestV0.prototype.prove = false; + GetPathElementsRequestV0.prototype.prove = false; /** - * Creates a new GetContestedResourceVotersForIdentityRequestV0 instance using the specified properties. + * Creates a new GetPathElementsRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 instance */ - GetContestedResourceVotersForIdentityRequestV0.create = function create(properties) { - return new GetContestedResourceVotersForIdentityRequestV0(properties); + GetPathElementsRequestV0.create = function create(properties) { + return new GetPathElementsRequestV0(properties); }; /** - * Encodes the specified GetContestedResourceVotersForIdentityRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify|verify} messages. + * Encodes the specified GetPathElementsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0} message GetPathElementsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityRequestV0.encode = function encode(message, writer) { + GetPathElementsRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); - if (message.indexName != null && Object.hasOwnProperty.call(message, "indexName")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.indexName); - if (message.indexValues != null && message.indexValues.length) - for (var i = 0; i < message.indexValues.length; ++i) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.indexValues[i]); - if (message.contestantId != null && Object.hasOwnProperty.call(message, "contestantId")) - writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.contestantId); - if (message.startAtIdentifierInfo != null && Object.hasOwnProperty.call(message, "startAtIdentifierInfo")) - $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.encode(message.startAtIdentifierInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.count != null && Object.hasOwnProperty.call(message, "count")) - writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.count); - if (message.orderAscending != null && Object.hasOwnProperty.call(message, "orderAscending")) - writer.uint32(/* id 8, wireType 0 =*/64).bool(message.orderAscending); + if (message.path != null && message.path.length) + for (var i = 0; i < message.path.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.path[i]); + if (message.keys != null && message.keys.length) + for (var i = 0; i < message.keys.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.keys[i]); if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 9, wireType 0 =*/72).bool(message.prove); + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.prove); return writer; }; /** - * Encodes the specified GetContestedResourceVotersForIdentityRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.verify|verify} messages. + * Encodes the specified GetPathElementsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.IGetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0} message GetPathElementsRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetPathElementsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVotersForIdentityRequestV0 message from the specified reader or buffer. + * Decodes a GetPathElementsRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityRequestV0.decode = function decode(reader, length) { + GetPathElementsRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contractId = reader.bytes(); + if (!(message.path && message.path.length)) + message.path = []; + message.path.push(reader.bytes()); break; case 2: - message.documentTypeName = reader.string(); + if (!(message.keys && message.keys.length)) + message.keys = []; + message.keys.push(reader.bytes()); break; case 3: - message.indexName = reader.string(); - break; - case 4: - if (!(message.indexValues && message.indexValues.length)) - message.indexValues = []; - message.indexValues.push(reader.bytes()); - break; - case 5: - message.contestantId = reader.bytes(); - break; - case 6: - message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.decode(reader, reader.uint32()); - break; - case 7: - message.count = reader.uint32(); - break; - case 8: - message.orderAscending = reader.bool(); - break; - case 9: message.prove = reader.bool(); break; default: @@ -31952,62 +40670,46 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVotersForIdentityRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a GetPathElementsRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityRequestV0.decodeDelimited = function decodeDelimited(reader) { + GetPathElementsRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVotersForIdentityRequestV0 message. + * Verifies a GetPathElementsRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVotersForIdentityRequestV0.verify = function verify(message) { + GetPathElementsRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - if (!$util.isString(message.documentTypeName)) - return "documentTypeName: string expected"; - if (message.indexName != null && message.hasOwnProperty("indexName")) - if (!$util.isString(message.indexName)) - return "indexName: string expected"; - if (message.indexValues != null && message.hasOwnProperty("indexValues")) { - if (!Array.isArray(message.indexValues)) - return "indexValues: array expected"; - for (var i = 0; i < message.indexValues.length; ++i) - if (!(message.indexValues[i] && typeof message.indexValues[i].length === "number" || $util.isString(message.indexValues[i]))) - return "indexValues: buffer[] expected"; + if (message.path != null && message.hasOwnProperty("path")) { + if (!Array.isArray(message.path)) + return "path: array expected"; + for (var i = 0; i < message.path.length; ++i) + if (!(message.path[i] && typeof message.path[i].length === "number" || $util.isString(message.path[i]))) + return "path: buffer[] expected"; } - if (message.contestantId != null && message.hasOwnProperty("contestantId")) - if (!(message.contestantId && typeof message.contestantId.length === "number" || $util.isString(message.contestantId))) - return "contestantId: buffer expected"; - if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify(message.startAtIdentifierInfo); - if (error) - return "startAtIdentifierInfo." + error; + if (message.keys != null && message.hasOwnProperty("keys")) { + if (!Array.isArray(message.keys)) + return "keys: array expected"; + for (var i = 0; i < message.keys.length; ++i) + if (!(message.keys[i] && typeof message.keys[i].length === "number" || $util.isString(message.keys[i]))) + return "keys: buffer[] expected"; } - if (message.count != null && message.hasOwnProperty("count")) - if (!$util.isInteger(message.count)) - return "count: integer expected"; - if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) - if (typeof message.orderAscending !== "boolean") - return "orderAscending: boolean expected"; if (message.prove != null && message.hasOwnProperty("prove")) if (typeof message.prove !== "boolean") return "prove: boolean expected"; @@ -32015,370 +40717,111 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVotersForIdentityRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetPathElementsRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} GetContestedResourceVotersForIdentityRequestV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 */ - GetContestedResourceVotersForIdentityRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0) + GetPathElementsRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - if (object.documentTypeName != null) - message.documentTypeName = String(object.documentTypeName); - if (object.indexName != null) - message.indexName = String(object.indexName); - if (object.indexValues) { - if (!Array.isArray(object.indexValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.indexValues: array expected"); - message.indexValues = []; - for (var i = 0; i < object.indexValues.length; ++i) - if (typeof object.indexValues[i] === "string") - $util.base64.decode(object.indexValues[i], message.indexValues[i] = $util.newBuffer($util.base64.length(object.indexValues[i])), 0); - else if (object.indexValues[i].length >= 0) - message.indexValues[i] = object.indexValues[i]; + var message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0(); + if (object.path) { + if (!Array.isArray(object.path)) + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.path: array expected"); + message.path = []; + for (var i = 0; i < object.path.length; ++i) + if (typeof object.path[i] === "string") + $util.base64.decode(object.path[i], message.path[i] = $util.newBuffer($util.base64.length(object.path[i])), 0); + else if (object.path[i].length >= 0) + message.path[i] = object.path[i]; } - if (object.contestantId != null) - if (typeof object.contestantId === "string") - $util.base64.decode(object.contestantId, message.contestantId = $util.newBuffer($util.base64.length(object.contestantId)), 0); - else if (object.contestantId.length >= 0) - message.contestantId = object.contestantId; - if (object.startAtIdentifierInfo != null) { - if (typeof object.startAtIdentifierInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.startAtIdentifierInfo: object expected"); - message.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.fromObject(object.startAtIdentifierInfo); + if (object.keys) { + if (!Array.isArray(object.keys)) + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.keys: array expected"); + message.keys = []; + for (var i = 0; i < object.keys.length; ++i) + if (typeof object.keys[i] === "string") + $util.base64.decode(object.keys[i], message.keys[i] = $util.newBuffer($util.base64.length(object.keys[i])), 0); + else if (object.keys[i].length >= 0) + message.keys[i] = object.keys[i]; } - if (object.count != null) - message.count = object.count >>> 0; - if (object.orderAscending != null) - message.orderAscending = Boolean(object.orderAscending); if (object.prove != null) message.prove = Boolean(object.prove); return message; }; /** - * Creates a plain object from a GetContestedResourceVotersForIdentityRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetPathElementsRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message GetContestedResourceVotersForIdentityRequestV0 + * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message GetPathElementsRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVotersForIdentityRequestV0.toObject = function toObject(message, options) { + GetPathElementsRequestV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.indexValues = []; - if (options.defaults) { - if (options.bytes === String) - object.contractId = ""; - else { - object.contractId = []; - if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); - } - object.documentTypeName = ""; - object.indexName = ""; - if (options.bytes === String) - object.contestantId = ""; - else { - object.contestantId = []; - if (options.bytes !== Array) - object.contestantId = $util.newBuffer(object.contestantId); - } - object.startAtIdentifierInfo = null; - object.count = 0; - object.orderAscending = false; - object.prove = false; - } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - object.documentTypeName = message.documentTypeName; - if (message.indexName != null && message.hasOwnProperty("indexName")) - object.indexName = message.indexName; - if (message.indexValues && message.indexValues.length) { - object.indexValues = []; - for (var j = 0; j < message.indexValues.length; ++j) - object.indexValues[j] = options.bytes === String ? $util.base64.encode(message.indexValues[j], 0, message.indexValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.indexValues[j]) : message.indexValues[j]; + if (options.arrays || options.defaults) { + object.path = []; + object.keys = []; } - if (message.contestantId != null && message.hasOwnProperty("contestantId")) - object.contestantId = options.bytes === String ? $util.base64.encode(message.contestantId, 0, message.contestantId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contestantId) : message.contestantId; - if (message.startAtIdentifierInfo != null && message.hasOwnProperty("startAtIdentifierInfo")) - object.startAtIdentifierInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(message.startAtIdentifierInfo, options); - if (message.count != null && message.hasOwnProperty("count")) - object.count = message.count; - if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) - object.orderAscending = message.orderAscending; - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; - return object; - }; - - /** - * Converts this GetContestedResourceVotersForIdentityRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetContestedResourceVotersForIdentityRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo = (function() { - - /** - * Properties of a StartAtIdentifierInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @interface IStartAtIdentifierInfo - * @property {Uint8Array|null} [startIdentifier] StartAtIdentifierInfo startIdentifier - * @property {boolean|null} [startIdentifierIncluded] StartAtIdentifierInfo startIdentifierIncluded - */ - - /** - * Constructs a new StartAtIdentifierInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 - * @classdesc Represents a StartAtIdentifierInfo. - * @implements IStartAtIdentifierInfo - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set - */ - function StartAtIdentifierInfo(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]]; + if (options.defaults) + object.prove = false; + if (message.path && message.path.length) { + object.path = []; + for (var j = 0; j < message.path.length; ++j) + object.path[j] = options.bytes === String ? $util.base64.encode(message.path[j], 0, message.path[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.path[j]) : message.path[j]; } + if (message.keys && message.keys.length) { + object.keys = []; + for (var j = 0; j < message.keys.length; ++j) + object.keys[j] = options.bytes === String ? $util.base64.encode(message.keys[j], 0, message.keys[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.keys[j]) : message.keys[j]; + } + if (message.prove != null && message.hasOwnProperty("prove")) + object.prove = message.prove; + return object; + }; - /** - * StartAtIdentifierInfo startIdentifier. - * @member {Uint8Array} startIdentifier - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @instance - */ - StartAtIdentifierInfo.prototype.startIdentifier = $util.newBuffer([]); - - /** - * StartAtIdentifierInfo startIdentifierIncluded. - * @member {boolean} startIdentifierIncluded - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @instance - */ - StartAtIdentifierInfo.prototype.startIdentifierIncluded = false; - - /** - * Creates a new StartAtIdentifierInfo instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo instance - */ - StartAtIdentifierInfo.create = function create(properties) { - return new StartAtIdentifierInfo(properties); - }; - - /** - * Encodes the specified StartAtIdentifierInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtIdentifierInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startIdentifier != null && Object.hasOwnProperty.call(message, "startIdentifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startIdentifier); - if (message.startIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startIdentifierIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startIdentifierIncluded); - return writer; - }; - - /** - * Encodes the specified StartAtIdentifierInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.IStartAtIdentifierInfo} message StartAtIdentifierInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtIdentifierInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a StartAtIdentifierInfo message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.startIdentifier = reader.bytes(); - break; - case 2: - message.startIdentifierIncluded = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a StartAtIdentifierInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtIdentifierInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a StartAtIdentifierInfo message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StartAtIdentifierInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) - if (!(message.startIdentifier && typeof message.startIdentifier.length === "number" || $util.isString(message.startIdentifier))) - return "startIdentifier: buffer expected"; - if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) - if (typeof message.startIdentifierIncluded !== "boolean") - return "startIdentifierIncluded: boolean expected"; - return null; - }; - - /** - * Creates a StartAtIdentifierInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} StartAtIdentifierInfo - */ - StartAtIdentifierInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo(); - if (object.startIdentifier != null) - if (typeof object.startIdentifier === "string") - $util.base64.decode(object.startIdentifier, message.startIdentifier = $util.newBuffer($util.base64.length(object.startIdentifier)), 0); - else if (object.startIdentifier.length >= 0) - message.startIdentifier = object.startIdentifier; - if (object.startIdentifierIncluded != null) - message.startIdentifierIncluded = Boolean(object.startIdentifierIncluded); - return message; - }; - - /** - * Creates a plain object from a StartAtIdentifierInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message StartAtIdentifierInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StartAtIdentifierInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.startIdentifier = ""; - else { - object.startIdentifier = []; - if (options.bytes !== Array) - object.startIdentifier = $util.newBuffer(object.startIdentifier); - } - object.startIdentifierIncluded = false; - } - if (message.startIdentifier != null && message.hasOwnProperty("startIdentifier")) - object.startIdentifier = options.bytes === String ? $util.base64.encode(message.startIdentifier, 0, message.startIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startIdentifier) : message.startIdentifier; - if (message.startIdentifierIncluded != null && message.hasOwnProperty("startIdentifierIncluded")) - object.startIdentifierIncluded = message.startIdentifierIncluded; - return object; - }; - - /** - * Converts this StartAtIdentifierInfo to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo - * @instance - * @returns {Object.} JSON object - */ - StartAtIdentifierInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return StartAtIdentifierInfo; - })(); + /** + * Converts this GetPathElementsRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetPathElementsRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetContestedResourceVotersForIdentityRequestV0; + return GetPathElementsRequestV0; })(); - return GetContestedResourceVotersForIdentityRequest; + return GetPathElementsRequest; })(); - v0.GetContestedResourceVotersForIdentityResponse = (function() { + v0.GetPathElementsResponse = (function() { /** - * Properties of a GetContestedResourceVotersForIdentityResponse. + * Properties of a GetPathElementsResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceVotersForIdentityResponse - * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0|null} [v0] GetContestedResourceVotersForIdentityResponse v0 + * @interface IGetPathElementsResponse + * @property {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0|null} [v0] GetPathElementsResponse v0 */ /** - * Constructs a new GetContestedResourceVotersForIdentityResponse. + * Constructs a new GetPathElementsResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceVotersForIdentityResponse. - * @implements IGetContestedResourceVotersForIdentityResponse + * @classdesc Represents a GetPathElementsResponse. + * @implements IGetPathElementsResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse=} [properties] Properties to set */ - function GetContestedResourceVotersForIdentityResponse(properties) { + function GetPathElementsResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32386,89 +40829,89 @@ $root.org = (function() { } /** - * GetContestedResourceVotersForIdentityResponse v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * GetPathElementsResponse v0. + * @member {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @instance */ - GetContestedResourceVotersForIdentityResponse.prototype.v0 = null; + GetPathElementsResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVotersForIdentityResponse version. + * GetPathElementsResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @instance */ - Object.defineProperty(GetContestedResourceVotersForIdentityResponse.prototype, "version", { + Object.defineProperty(GetPathElementsResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVotersForIdentityResponse instance using the specified properties. + * Creates a new GetPathElementsResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse instance + * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse instance */ - GetContestedResourceVotersForIdentityResponse.create = function create(properties) { - return new GetContestedResourceVotersForIdentityResponse(properties); + GetPathElementsResponse.create = function create(properties) { + return new GetPathElementsResponse(properties); }; /** - * Encodes the specified GetContestedResourceVotersForIdentityResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.verify|verify} messages. + * Encodes the specified GetPathElementsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse} message GetPathElementsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityResponse.encode = function encode(message, writer) { + GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceVotersForIdentityResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.verify|verify} messages. + * Encodes the specified GetPathElementsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse} message GetPathElementsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetPathElementsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVotersForIdentityResponse message from the specified reader or buffer. + * Decodes a GetPathElementsResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @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.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityResponse.decode = function decode(reader, length) { + GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -32479,37 +40922,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVotersForIdentityResponse message from the specified reader or buffer, length delimited. + * Decodes a GetPathElementsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityResponse.decodeDelimited = function decodeDelimited(reader) { + GetPathElementsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVotersForIdentityResponse message. + * Verifies a GetPathElementsResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVotersForIdentityResponse.verify = function verify(message) { + GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -32518,40 +40961,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVotersForIdentityResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetPathElementsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} GetContestedResourceVotersForIdentityResponse + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse */ - GetContestedResourceVotersForIdentityResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse) + GetPathElementsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceVotersForIdentityResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetPathElementsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} message GetContestedResourceVotersForIdentityResponse + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse} message GetPathElementsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVotersForIdentityResponse.toObject = function toObject(message, options) { + GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -32559,36 +41002,36 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVotersForIdentityResponse to JSON. + * Converts this GetPathElementsResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse * @instance * @returns {Object.} JSON object */ - GetContestedResourceVotersForIdentityResponse.prototype.toJSON = function toJSON() { + GetPathElementsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 = (function() { + GetPathElementsResponse.GetPathElementsResponseV0 = (function() { /** - * Properties of a GetContestedResourceVotersForIdentityResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse - * @interface IGetContestedResourceVotersForIdentityResponseV0 - * @property {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters|null} [contestedResourceVoters] GetContestedResourceVotersForIdentityResponseV0 contestedResourceVoters - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceVotersForIdentityResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceVotersForIdentityResponseV0 metadata + * Properties of a GetPathElementsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse + * @interface IGetPathElementsResponseV0 + * @property {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements|null} [elements] GetPathElementsResponseV0 elements + * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetPathElementsResponseV0 proof + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetPathElementsResponseV0 metadata */ /** - * Constructs a new GetContestedResourceVotersForIdentityResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse - * @classdesc Represents a GetContestedResourceVotersForIdentityResponseV0. - * @implements IGetContestedResourceVotersForIdentityResponseV0 + * Constructs a new GetPathElementsResponseV0. + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse + * @classdesc Represents a GetPathElementsResponseV0. + * @implements IGetPathElementsResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0=} [properties] Properties to set */ - function GetContestedResourceVotersForIdentityResponseV0(properties) { + function GetPathElementsResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32596,69 +41039,69 @@ $root.org = (function() { } /** - * GetContestedResourceVotersForIdentityResponseV0 contestedResourceVoters. - * @member {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters|null|undefined} contestedResourceVoters - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * GetPathElementsResponseV0 elements. + * @member {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements|null|undefined} elements + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @instance */ - GetContestedResourceVotersForIdentityResponseV0.prototype.contestedResourceVoters = null; + GetPathElementsResponseV0.prototype.elements = null; /** - * GetContestedResourceVotersForIdentityResponseV0 proof. + * GetPathElementsResponseV0 proof. * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @instance */ - GetContestedResourceVotersForIdentityResponseV0.prototype.proof = null; + GetPathElementsResponseV0.prototype.proof = null; /** - * GetContestedResourceVotersForIdentityResponseV0 metadata. + * GetPathElementsResponseV0 metadata. * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @instance */ - GetContestedResourceVotersForIdentityResponseV0.prototype.metadata = null; + GetPathElementsResponseV0.prototype.metadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceVotersForIdentityResponseV0 result. - * @member {"contestedResourceVoters"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * GetPathElementsResponseV0 result. + * @member {"elements"|"proof"|undefined} result + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @instance */ - Object.defineProperty(GetContestedResourceVotersForIdentityResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["contestedResourceVoters", "proof"]), + Object.defineProperty(GetPathElementsResponseV0.prototype, "result", { + get: $util.oneOfGetter($oneOfFields = ["elements", "proof"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceVotersForIdentityResponseV0 instance using the specified properties. + * Creates a new GetPathElementsResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 instance */ - GetContestedResourceVotersForIdentityResponseV0.create = function create(properties) { - return new GetContestedResourceVotersForIdentityResponseV0(properties); + GetPathElementsResponseV0.create = function create(properties) { + return new GetPathElementsResponseV0(properties); }; /** - * Encodes the specified GetContestedResourceVotersForIdentityResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify|verify} messages. + * Encodes the specified GetPathElementsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0} message GetPathElementsResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityResponseV0.encode = function encode(message, writer) { + GetPathElementsResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contestedResourceVoters != null && Object.hasOwnProperty.call(message, "contestedResourceVoters")) - $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.encode(message.contestedResourceVoters, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.elements != null && Object.hasOwnProperty.call(message, "elements")) + $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.encode(message.elements, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) @@ -32667,38 +41110,38 @@ $root.org = (function() { }; /** - * Encodes the specified GetContestedResourceVotersForIdentityResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.verify|verify} messages. + * Encodes the specified GetPathElementsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.IGetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0} message GetPathElementsResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceVotersForIdentityResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetPathElementsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceVotersForIdentityResponseV0 message from the specified reader or buffer. + * Decodes a GetPathElementsResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityResponseV0.decode = function decode(reader, length) { + GetPathElementsResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.decode(reader, reader.uint32()); + message.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.decode(reader, reader.uint32()); break; case 2: message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); @@ -32715,39 +41158,39 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceVotersForIdentityResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetPathElementsResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceVotersForIdentityResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetPathElementsResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceVotersForIdentityResponseV0 message. + * Verifies a GetPathElementsResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceVotersForIdentityResponseV0.verify = function verify(message) { + GetPathElementsResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.contestedResourceVoters != null && message.hasOwnProperty("contestedResourceVoters")) { + if (message.elements != null && message.hasOwnProperty("elements")) { properties.result = 1; { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify(message.contestedResourceVoters); + var error = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify(message.elements); if (error) - return "contestedResourceVoters." + error; + return "elements." + error; } } if (message.proof != null && message.hasOwnProperty("proof")) { @@ -32769,54 +41212,54 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceVotersForIdentityResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetPathElementsResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} GetContestedResourceVotersForIdentityResponseV0 + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 */ - GetContestedResourceVotersForIdentityResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0) + GetPathElementsResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0(); - if (object.contestedResourceVoters != null) { - if (typeof object.contestedResourceVoters !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.contestedResourceVoters: object expected"); - message.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.fromObject(object.contestedResourceVoters); + var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0(); + if (object.elements != null) { + if (typeof object.elements !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.elements: object expected"); + message.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.fromObject(object.elements); } if (object.proof != null) { if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.proof: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.proof: object expected"); message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); } if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetContestedResourceVotersForIdentityResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetPathElementsResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message GetContestedResourceVotersForIdentityResponseV0 + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message GetPathElementsResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceVotersForIdentityResponseV0.toObject = function toObject(message, options) { + GetPathElementsResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) object.metadata = null; - if (message.contestedResourceVoters != null && message.hasOwnProperty("contestedResourceVoters")) { - object.contestedResourceVoters = $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(message.contestedResourceVoters, options); + if (message.elements != null && message.hasOwnProperty("elements")) { + object.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(message.elements, options); if (options.oneofs) - object.result = "contestedResourceVoters"; + object.result = "elements"; } if (message.proof != null && message.hasOwnProperty("proof")) { object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); @@ -32829,36 +41272,35 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceVotersForIdentityResponseV0 to JSON. + * Converts this GetPathElementsResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 * @instance * @returns {Object.} JSON object */ - GetContestedResourceVotersForIdentityResponseV0.prototype.toJSON = function toJSON() { + GetPathElementsResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters = (function() { + GetPathElementsResponseV0.Elements = (function() { /** - * Properties of a ContestedResourceVoters. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 - * @interface IContestedResourceVoters - * @property {Array.|null} [voters] ContestedResourceVoters voters - * @property {boolean|null} [finishedResults] ContestedResourceVoters finishedResults + * Properties of an Elements. + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @interface IElements + * @property {Array.|null} [elements] Elements elements */ /** - * Constructs a new ContestedResourceVoters. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 - * @classdesc Represents a ContestedResourceVoters. - * @implements IContestedResourceVoters + * Constructs a new Elements. + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @classdesc Represents an Elements. + * @implements IElements * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements=} [properties] Properties to set */ - function ContestedResourceVoters(properties) { - this.voters = []; + function Elements(properties) { + this.elements = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32866,91 +41308,78 @@ $root.org = (function() { } /** - * ContestedResourceVoters voters. - * @member {Array.} voters - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters - * @instance - */ - ContestedResourceVoters.prototype.voters = $util.emptyArray; - - /** - * ContestedResourceVoters finishedResults. - * @member {boolean} finishedResults - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * Elements elements. + * @member {Array.} elements + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @instance */ - ContestedResourceVoters.prototype.finishedResults = false; + Elements.prototype.elements = $util.emptyArray; /** - * Creates a new ContestedResourceVoters instance using the specified properties. + * Creates a new Elements instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters instance + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements instance */ - ContestedResourceVoters.create = function create(properties) { - return new ContestedResourceVoters(properties); + Elements.create = function create(properties) { + return new Elements(properties); }; /** - * Encodes the specified ContestedResourceVoters message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify|verify} messages. + * Encodes the specified Elements message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters} message ContestedResourceVoters message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements} message Elements message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceVoters.encode = function encode(message, writer) { + Elements.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.voters != null && message.voters.length) - for (var i = 0; i < message.voters.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.voters[i]); - if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); + if (message.elements != null && message.elements.length) + for (var i = 0; i < message.elements.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.elements[i]); return writer; }; /** - * Encodes the specified ContestedResourceVoters message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.verify|verify} messages. + * Encodes the specified Elements message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.IContestedResourceVoters} message ContestedResourceVoters message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements} message Elements message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceVoters.encodeDelimited = function encodeDelimited(message, writer) { + Elements.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ContestedResourceVoters message from the specified reader or buffer. + * Decodes an Elements message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceVoters.decode = function decode(reader, length) { + Elements.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.voters && message.voters.length)) - message.voters = []; - message.voters.push(reader.bytes()); - break; - case 2: - message.finishedResults = reader.bool(); + if (!(message.elements && message.elements.length)) + message.elements = []; + message.elements.push(reader.bytes()); break; default: reader.skipType(tag & 7); @@ -32961,227 +41390,218 @@ $root.org = (function() { }; /** - * Decodes a ContestedResourceVoters message from the specified reader or buffer, length delimited. + * Decodes an Elements message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceVoters.decodeDelimited = function decodeDelimited(reader) { + Elements.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ContestedResourceVoters message. + * Verifies an Elements message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ContestedResourceVoters.verify = function verify(message) { + Elements.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.voters != null && message.hasOwnProperty("voters")) { - if (!Array.isArray(message.voters)) - return "voters: array expected"; - for (var i = 0; i < message.voters.length; ++i) - if (!(message.voters[i] && typeof message.voters[i].length === "number" || $util.isString(message.voters[i]))) - return "voters: buffer[] expected"; + if (message.elements != null && message.hasOwnProperty("elements")) { + if (!Array.isArray(message.elements)) + return "elements: array expected"; + for (var i = 0; i < message.elements.length; ++i) + if (!(message.elements[i] && typeof message.elements[i].length === "number" || $util.isString(message.elements[i]))) + return "elements: buffer[] expected"; } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - if (typeof message.finishedResults !== "boolean") - return "finishedResults: boolean expected"; return null; }; /** - * Creates a ContestedResourceVoters message from a plain object. Also converts values to their respective internal types. + * Creates an Elements message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} ContestedResourceVoters + * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements */ - ContestedResourceVoters.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters) + Elements.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters(); - if (object.voters) { - if (!Array.isArray(object.voters)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.voters: array expected"); - message.voters = []; - for (var i = 0; i < object.voters.length; ++i) - if (typeof object.voters[i] === "string") - $util.base64.decode(object.voters[i], message.voters[i] = $util.newBuffer($util.base64.length(object.voters[i])), 0); - else if (object.voters[i].length >= 0) - message.voters[i] = object.voters[i]; + var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements(); + if (object.elements) { + if (!Array.isArray(object.elements)) + throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.elements: array expected"); + message.elements = []; + for (var i = 0; i < object.elements.length; ++i) + if (typeof object.elements[i] === "string") + $util.base64.decode(object.elements[i], message.elements[i] = $util.newBuffer($util.base64.length(object.elements[i])), 0); + else if (object.elements[i].length >= 0) + message.elements[i] = object.elements[i]; } - if (object.finishedResults != null) - message.finishedResults = Boolean(object.finishedResults); return message; }; /** - * Creates a plain object from a ContestedResourceVoters message. Also converts values to other types if specified. + * Creates a plain object from an Elements message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message ContestedResourceVoters + * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message Elements * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ContestedResourceVoters.toObject = function toObject(message, options) { + Elements.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) - object.voters = []; - if (options.defaults) - object.finishedResults = false; - if (message.voters && message.voters.length) { - object.voters = []; - for (var j = 0; j < message.voters.length; ++j) - object.voters[j] = options.bytes === String ? $util.base64.encode(message.voters[j], 0, message.voters[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.voters[j]) : message.voters[j]; + object.elements = []; + if (message.elements && message.elements.length) { + object.elements = []; + for (var j = 0; j < message.elements.length; ++j) + object.elements[j] = options.bytes === String ? $util.base64.encode(message.elements[j], 0, message.elements[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.elements[j]) : message.elements[j]; } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - object.finishedResults = message.finishedResults; return object; }; /** - * Converts this ContestedResourceVoters to JSON. + * Converts this Elements to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters + * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements * @instance * @returns {Object.} JSON object */ - ContestedResourceVoters.prototype.toJSON = function toJSON() { + Elements.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ContestedResourceVoters; + return Elements; })(); - return GetContestedResourceVotersForIdentityResponseV0; + return GetPathElementsResponseV0; })(); - return GetContestedResourceVotersForIdentityResponse; + return GetPathElementsResponse; })(); - v0.GetContestedResourceIdentityVotesRequest = (function() { + v0.GetStatusRequest = (function() { /** - * Properties of a GetContestedResourceIdentityVotesRequest. + * Properties of a GetStatusRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceIdentityVotesRequest - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0|null} [v0] GetContestedResourceIdentityVotesRequest v0 + * @interface IGetStatusRequest + * @property {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0|null} [v0] GetStatusRequest v0 */ /** - * Constructs a new GetContestedResourceIdentityVotesRequest. + * Constructs a new GetStatusRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceIdentityVotesRequest. - * @implements IGetContestedResourceIdentityVotesRequest + * @classdesc Represents a GetStatusRequest. + * @implements IGetStatusRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetStatusRequest=} [properties] Properties to set */ - function GetContestedResourceIdentityVotesRequest(properties) { + function GetStatusRequest(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]]; } - /** - * GetContestedResourceIdentityVotesRequest v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + /** + * GetStatusRequest v0. + * @member {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @instance */ - GetContestedResourceIdentityVotesRequest.prototype.v0 = null; + GetStatusRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceIdentityVotesRequest version. + * GetStatusRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @instance */ - Object.defineProperty(GetContestedResourceIdentityVotesRequest.prototype, "version", { + Object.defineProperty(GetStatusRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceIdentityVotesRequest instance using the specified properties. + * Creates a new GetStatusRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest instance + * @param {org.dash.platform.dapi.v0.IGetStatusRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusRequest} GetStatusRequest instance */ - GetContestedResourceIdentityVotesRequest.create = function create(properties) { - return new GetContestedResourceIdentityVotesRequest(properties); + GetStatusRequest.create = function create(properties) { + return new GetStatusRequest(properties); }; /** - * Encodes the specified GetContestedResourceIdentityVotesRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.verify|verify} messages. + * Encodes the specified GetStatusRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetStatusRequest} message GetStatusRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesRequest.encode = function encode(message, writer) { + GetStatusRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceIdentityVotesRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.verify|verify} messages. + * Encodes the specified GetStatusRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetStatusRequest} message GetStatusRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetStatusRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceIdentityVotesRequest message from the specified reader or buffer. + * Decodes a GetStatusRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @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.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest + * @returns {org.dash.platform.dapi.v0.GetStatusRequest} GetStatusRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesRequest.decode = function decode(reader, length) { + GetStatusRequest.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.GetContestedResourceIdentityVotesRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -33192,37 +41612,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceIdentityVotesRequest message from the specified reader or buffer, length delimited. + * Decodes a GetStatusRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest + * @returns {org.dash.platform.dapi.v0.GetStatusRequest} GetStatusRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesRequest.decodeDelimited = function decodeDelimited(reader) { + GetStatusRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceIdentityVotesRequest message. + * Verifies a GetStatusRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceIdentityVotesRequest.verify = function verify(message) { + GetStatusRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -33231,40 +41651,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceIdentityVotesRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetStatusRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} GetContestedResourceIdentityVotesRequest + * @returns {org.dash.platform.dapi.v0.GetStatusRequest} GetStatusRequest */ - GetContestedResourceIdentityVotesRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest) + GetStatusRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetStatusRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetStatusRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceIdentityVotesRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetStatusRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} message GetContestedResourceIdentityVotesRequest + * @param {org.dash.platform.dapi.v0.GetStatusRequest} message GetStatusRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceIdentityVotesRequest.toObject = function toObject(message, options) { + GetStatusRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -33272,39 +41692,33 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceIdentityVotesRequest to JSON. + * Converts this GetStatusRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest + * @memberof org.dash.platform.dapi.v0.GetStatusRequest * @instance * @returns {Object.} JSON object */ - GetContestedResourceIdentityVotesRequest.prototype.toJSON = function toJSON() { + GetStatusRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 = (function() { + GetStatusRequest.GetStatusRequestV0 = (function() { /** - * Properties of a GetContestedResourceIdentityVotesRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest - * @interface IGetContestedResourceIdentityVotesRequestV0 - * @property {Uint8Array|null} [identityId] GetContestedResourceIdentityVotesRequestV0 identityId - * @property {google.protobuf.IUInt32Value|null} [limit] GetContestedResourceIdentityVotesRequestV0 limit - * @property {google.protobuf.IUInt32Value|null} [offset] GetContestedResourceIdentityVotesRequestV0 offset - * @property {boolean|null} [orderAscending] GetContestedResourceIdentityVotesRequestV0 orderAscending - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo|null} [startAtVotePollIdInfo] GetContestedResourceIdentityVotesRequestV0 startAtVotePollIdInfo - * @property {boolean|null} [prove] GetContestedResourceIdentityVotesRequestV0 prove + * Properties of a GetStatusRequestV0. + * @memberof org.dash.platform.dapi.v0.GetStatusRequest + * @interface IGetStatusRequestV0 */ /** - * Constructs a new GetContestedResourceIdentityVotesRequestV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest - * @classdesc Represents a GetContestedResourceIdentityVotesRequestV0. - * @implements IGetContestedResourceIdentityVotesRequestV0 + * Constructs a new GetStatusRequestV0. + * @memberof org.dash.platform.dapi.v0.GetStatusRequest + * @classdesc Represents a GetStatusRequestV0. + * @implements IGetStatusRequestV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0=} [properties] Properties to set */ - function GetContestedResourceIdentityVotesRequestV0(properties) { + function GetStatusRequestV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33312,141 +41726,63 @@ $root.org = (function() { } /** - * GetContestedResourceIdentityVotesRequestV0 identityId. - * @member {Uint8Array} identityId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.identityId = $util.newBuffer([]); - - /** - * GetContestedResourceIdentityVotesRequestV0 limit. - * @member {google.protobuf.IUInt32Value|null|undefined} limit - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.limit = null; - - /** - * GetContestedResourceIdentityVotesRequestV0 offset. - * @member {google.protobuf.IUInt32Value|null|undefined} offset - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.offset = null; - - /** - * GetContestedResourceIdentityVotesRequestV0 orderAscending. - * @member {boolean} orderAscending - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.orderAscending = false; - - /** - * GetContestedResourceIdentityVotesRequestV0 startAtVotePollIdInfo. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo|null|undefined} startAtVotePollIdInfo - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.startAtVotePollIdInfo = null; - - /** - * GetContestedResourceIdentityVotesRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - */ - GetContestedResourceIdentityVotesRequestV0.prototype.prove = false; - - /** - * Creates a new GetContestedResourceIdentityVotesRequestV0 instance using the specified properties. + * Creates a new GetStatusRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} GetStatusRequestV0 instance */ - GetContestedResourceIdentityVotesRequestV0.create = function create(properties) { - return new GetContestedResourceIdentityVotesRequestV0(properties); + GetStatusRequestV0.create = function create(properties) { + return new GetStatusRequestV0(properties); }; /** - * Encodes the specified GetContestedResourceIdentityVotesRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify|verify} messages. + * Encodes the specified GetStatusRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0} message GetStatusRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesRequestV0.encode = function encode(message, writer) { + GetStatusRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.identityId); - if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) - $root.google.protobuf.UInt32Value.encode(message.limit, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.offset != null && Object.hasOwnProperty.call(message, "offset")) - $root.google.protobuf.UInt32Value.encode(message.offset, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.orderAscending != null && Object.hasOwnProperty.call(message, "orderAscending")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.orderAscending); - if (message.startAtVotePollIdInfo != null && Object.hasOwnProperty.call(message, "startAtVotePollIdInfo")) - $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.encode(message.startAtVotePollIdInfo, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 6, wireType 0 =*/48).bool(message.prove); return writer; }; /** - * Encodes the specified GetContestedResourceIdentityVotesRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.verify|verify} messages. + * Encodes the specified GetStatusRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.IGetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusRequest.IGetStatusRequestV0} message GetStatusRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + GetStatusRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceIdentityVotesRequestV0 message from the specified reader or buffer. + * Decodes a GetStatusRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 * @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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 + * @returns {org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} GetStatusRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesRequestV0.decode = function decode(reader, length) { + GetStatusRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.identityId = reader.bytes(); - break; - case 2: - message.limit = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); - break; - case 3: - message.offset = $root.google.protobuf.UInt32Value.decode(reader, reader.uint32()); - break; - case 4: - message.orderAscending = reader.bool(); - break; - case 5: - message.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.decode(reader, reader.uint32()); - break; - case 6: - message.prove = reader.bool(); - break; default: reader.skipType(tag & 7); break; @@ -33454,396 +41790,99 @@ $root.org = (function() { } return message; }; - - /** - * Decodes a GetContestedResourceIdentityVotesRequestV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetContestedResourceIdentityVotesRequestV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GetContestedResourceIdentityVotesRequestV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetContestedResourceIdentityVotesRequestV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.identityId != null && message.hasOwnProperty("identityId")) - if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) - return "identityId: buffer expected"; - if (message.limit != null && message.hasOwnProperty("limit")) { - var error = $root.google.protobuf.UInt32Value.verify(message.limit); - if (error) - return "limit." + error; - } - if (message.offset != null && message.hasOwnProperty("offset")) { - var error = $root.google.protobuf.UInt32Value.verify(message.offset); - if (error) - return "offset." + error; - } - if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) - if (typeof message.orderAscending !== "boolean") - return "orderAscending: boolean expected"; - if (message.startAtVotePollIdInfo != null && message.hasOwnProperty("startAtVotePollIdInfo")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify(message.startAtVotePollIdInfo); - if (error) - return "startAtVotePollIdInfo." + error; - } - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; - return null; - }; - - /** - * Creates a GetContestedResourceIdentityVotesRequestV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} GetContestedResourceIdentityVotesRequestV0 - */ - GetContestedResourceIdentityVotesRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0(); - if (object.identityId != null) - if (typeof object.identityId === "string") - $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); - else if (object.identityId.length >= 0) - message.identityId = object.identityId; - if (object.limit != null) { - if (typeof object.limit !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.limit: object expected"); - message.limit = $root.google.protobuf.UInt32Value.fromObject(object.limit); - } - if (object.offset != null) { - if (typeof object.offset !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.offset: object expected"); - message.offset = $root.google.protobuf.UInt32Value.fromObject(object.offset); - } - if (object.orderAscending != null) - message.orderAscending = Boolean(object.orderAscending); - if (object.startAtVotePollIdInfo != null) { - if (typeof object.startAtVotePollIdInfo !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.startAtVotePollIdInfo: object expected"); - message.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.fromObject(object.startAtVotePollIdInfo); - } - if (object.prove != null) - message.prove = Boolean(object.prove); - return message; - }; - - /** - * Creates a plain object from a GetContestedResourceIdentityVotesRequestV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message GetContestedResourceIdentityVotesRequestV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetContestedResourceIdentityVotesRequestV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.identityId = ""; - else { - object.identityId = []; - if (options.bytes !== Array) - object.identityId = $util.newBuffer(object.identityId); - } - object.limit = null; - object.offset = null; - object.orderAscending = false; - object.startAtVotePollIdInfo = null; - object.prove = false; - } - if (message.identityId != null && message.hasOwnProperty("identityId")) - object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; - if (message.limit != null && message.hasOwnProperty("limit")) - object.limit = $root.google.protobuf.UInt32Value.toObject(message.limit, options); - if (message.offset != null && message.hasOwnProperty("offset")) - object.offset = $root.google.protobuf.UInt32Value.toObject(message.offset, options); - if (message.orderAscending != null && message.hasOwnProperty("orderAscending")) - object.orderAscending = message.orderAscending; - if (message.startAtVotePollIdInfo != null && message.hasOwnProperty("startAtVotePollIdInfo")) - object.startAtVotePollIdInfo = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(message.startAtVotePollIdInfo, options); - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; - return object; - }; - - /** - * Converts this GetContestedResourceIdentityVotesRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetContestedResourceIdentityVotesRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo = (function() { - - /** - * Properties of a StartAtVotePollIdInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @interface IStartAtVotePollIdInfo - * @property {Uint8Array|null} [startAtPollIdentifier] StartAtVotePollIdInfo startAtPollIdentifier - * @property {boolean|null} [startPollIdentifierIncluded] StartAtVotePollIdInfo startPollIdentifierIncluded - */ - - /** - * Constructs a new StartAtVotePollIdInfo. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 - * @classdesc Represents a StartAtVotePollIdInfo. - * @implements IStartAtVotePollIdInfo - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo=} [properties] Properties to set - */ - function StartAtVotePollIdInfo(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]]; - } - - /** - * StartAtVotePollIdInfo startAtPollIdentifier. - * @member {Uint8Array} startAtPollIdentifier - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @instance - */ - StartAtVotePollIdInfo.prototype.startAtPollIdentifier = $util.newBuffer([]); - - /** - * StartAtVotePollIdInfo startPollIdentifierIncluded. - * @member {boolean} startPollIdentifierIncluded - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @instance - */ - StartAtVotePollIdInfo.prototype.startPollIdentifierIncluded = false; - - /** - * Creates a new StartAtVotePollIdInfo instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo instance - */ - StartAtVotePollIdInfo.create = function create(properties) { - return new StartAtVotePollIdInfo(properties); - }; - - /** - * Encodes the specified StartAtVotePollIdInfo message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo} message StartAtVotePollIdInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtVotePollIdInfo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startAtPollIdentifier != null && Object.hasOwnProperty.call(message, "startAtPollIdentifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startAtPollIdentifier); - if (message.startPollIdentifierIncluded != null && Object.hasOwnProperty.call(message, "startPollIdentifierIncluded")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.startPollIdentifierIncluded); - return writer; - }; - - /** - * Encodes the specified StartAtVotePollIdInfo message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.IStartAtVotePollIdInfo} message StartAtVotePollIdInfo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - StartAtVotePollIdInfo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a StartAtVotePollIdInfo message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.startAtPollIdentifier = reader.bytes(); - break; - case 2: - message.startPollIdentifierIncluded = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a StartAtVotePollIdInfo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - StartAtVotePollIdInfo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a StartAtVotePollIdInfo message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - StartAtVotePollIdInfo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startAtPollIdentifier != null && message.hasOwnProperty("startAtPollIdentifier")) - if (!(message.startAtPollIdentifier && typeof message.startAtPollIdentifier.length === "number" || $util.isString(message.startAtPollIdentifier))) - return "startAtPollIdentifier: buffer expected"; - if (message.startPollIdentifierIncluded != null && message.hasOwnProperty("startPollIdentifierIncluded")) - if (typeof message.startPollIdentifierIncluded !== "boolean") - return "startPollIdentifierIncluded: boolean expected"; - return null; - }; - - /** - * Creates a StartAtVotePollIdInfo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} StartAtVotePollIdInfo - */ - StartAtVotePollIdInfo.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo(); - if (object.startAtPollIdentifier != null) - if (typeof object.startAtPollIdentifier === "string") - $util.base64.decode(object.startAtPollIdentifier, message.startAtPollIdentifier = $util.newBuffer($util.base64.length(object.startAtPollIdentifier)), 0); - else if (object.startAtPollIdentifier.length >= 0) - message.startAtPollIdentifier = object.startAtPollIdentifier; - if (object.startPollIdentifierIncluded != null) - message.startPollIdentifierIncluded = Boolean(object.startPollIdentifierIncluded); - return message; - }; - - /** - * Creates a plain object from a StartAtVotePollIdInfo message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message StartAtVotePollIdInfo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - StartAtVotePollIdInfo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.startAtPollIdentifier = ""; - else { - object.startAtPollIdentifier = []; - if (options.bytes !== Array) - object.startAtPollIdentifier = $util.newBuffer(object.startAtPollIdentifier); - } - object.startPollIdentifierIncluded = false; - } - if (message.startAtPollIdentifier != null && message.hasOwnProperty("startAtPollIdentifier")) - object.startAtPollIdentifier = options.bytes === String ? $util.base64.encode(message.startAtPollIdentifier, 0, message.startAtPollIdentifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.startAtPollIdentifier) : message.startAtPollIdentifier; - if (message.startPollIdentifierIncluded != null && message.hasOwnProperty("startPollIdentifierIncluded")) - object.startPollIdentifierIncluded = message.startPollIdentifierIncluded; + + /** + * Decodes a GetStatusRequestV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} GetStatusRequestV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetStatusRequestV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetStatusRequestV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetStatusRequestV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a GetStatusRequestV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} GetStatusRequestV0 + */ + GetStatusRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0) return object; - }; + return new $root.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0(); + }; - /** - * Converts this StartAtVotePollIdInfo to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo - * @instance - * @returns {Object.} JSON object - */ - StartAtVotePollIdInfo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a GetStatusRequestV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 + * @static + * @param {org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} message GetStatusRequestV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetStatusRequestV0.toObject = function toObject() { + return {}; + }; - return StartAtVotePollIdInfo; - })(); + /** + * Converts this GetStatusRequestV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 + * @instance + * @returns {Object.} JSON object + */ + GetStatusRequestV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return GetContestedResourceIdentityVotesRequestV0; + return GetStatusRequestV0; })(); - return GetContestedResourceIdentityVotesRequest; + return GetStatusRequest; })(); - v0.GetContestedResourceIdentityVotesResponse = (function() { + v0.GetStatusResponse = (function() { /** - * Properties of a GetContestedResourceIdentityVotesResponse. + * Properties of a GetStatusResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetContestedResourceIdentityVotesResponse - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0|null} [v0] GetContestedResourceIdentityVotesResponse v0 + * @interface IGetStatusResponse + * @property {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0|null} [v0] GetStatusResponse v0 */ /** - * Constructs a new GetContestedResourceIdentityVotesResponse. + * Constructs a new GetStatusResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetContestedResourceIdentityVotesResponse. - * @implements IGetContestedResourceIdentityVotesResponse + * @classdesc Represents a GetStatusResponse. + * @implements IGetStatusResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetStatusResponse=} [properties] Properties to set */ - function GetContestedResourceIdentityVotesResponse(properties) { + function GetStatusResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33851,89 +41890,89 @@ $root.org = (function() { } /** - * GetContestedResourceIdentityVotesResponse v0. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * GetStatusResponse v0. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @instance */ - GetContestedResourceIdentityVotesResponse.prototype.v0 = null; + GetStatusResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetContestedResourceIdentityVotesResponse version. + * GetStatusResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @instance */ - Object.defineProperty(GetContestedResourceIdentityVotesResponse.prototype, "version", { + Object.defineProperty(GetStatusResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetContestedResourceIdentityVotesResponse instance using the specified properties. + * Creates a new GetStatusResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse instance + * @param {org.dash.platform.dapi.v0.IGetStatusResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse} GetStatusResponse instance */ - GetContestedResourceIdentityVotesResponse.create = function create(properties) { - return new GetContestedResourceIdentityVotesResponse(properties); + GetStatusResponse.create = function create(properties) { + return new GetStatusResponse(properties); }; /** - * Encodes the specified GetContestedResourceIdentityVotesResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.verify|verify} messages. + * Encodes the specified GetStatusResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetStatusResponse} message GetStatusResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesResponse.encode = function encode(message, writer) { + GetStatusResponse.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceIdentityVotesResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.verify|verify} messages. + * Encodes the specified GetStatusResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static - * @param {org.dash.platform.dapi.v0.IGetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetStatusResponse} message GetStatusResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetStatusResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceIdentityVotesResponse message from the specified reader or buffer. + * Decodes a GetStatusResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @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.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse + * @returns {org.dash.platform.dapi.v0.GetStatusResponse} GetStatusResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesResponse.decode = function decode(reader, length) { + GetStatusResponse.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.GetContestedResourceIdentityVotesResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -33944,37 +41983,37 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceIdentityVotesResponse message from the specified reader or buffer, length delimited. + * Decodes a GetStatusResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse + * @returns {org.dash.platform.dapi.v0.GetStatusResponse} GetStatusResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesResponse.decodeDelimited = function decodeDelimited(reader) { + GetStatusResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceIdentityVotesResponse message. + * Verifies a GetStatusResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceIdentityVotesResponse.verify = function verify(message) { + GetStatusResponse.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -33983,40 +42022,40 @@ $root.org = (function() { }; /** - * Creates a GetContestedResourceIdentityVotesResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetStatusResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} GetContestedResourceIdentityVotesResponse + * @returns {org.dash.platform.dapi.v0.GetStatusResponse} GetStatusResponse */ - GetContestedResourceIdentityVotesResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse) + GetStatusResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetContestedResourceIdentityVotesResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetStatusResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} message GetContestedResourceIdentityVotesResponse + * @param {org.dash.platform.dapi.v0.GetStatusResponse} message GetStatusResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetContestedResourceIdentityVotesResponse.toObject = function toObject(message, options) { + GetStatusResponse.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -34024,36 +42063,39 @@ $root.org = (function() { }; /** - * Converts this GetContestedResourceIdentityVotesResponse to JSON. + * Converts this GetStatusResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse + * @memberof org.dash.platform.dapi.v0.GetStatusResponse * @instance * @returns {Object.} JSON object */ - GetContestedResourceIdentityVotesResponse.prototype.toJSON = function toJSON() { + GetStatusResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 = (function() { + GetStatusResponse.GetStatusResponseV0 = (function() { /** - * Properties of a GetContestedResourceIdentityVotesResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse - * @interface IGetContestedResourceIdentityVotesResponseV0 - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes|null} [votes] GetContestedResourceIdentityVotesResponseV0 votes - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetContestedResourceIdentityVotesResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetContestedResourceIdentityVotesResponseV0 metadata + * Properties of a GetStatusResponseV0. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse + * @interface IGetStatusResponseV0 + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion|null} [version] GetStatusResponseV0 version + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode|null} [node] GetStatusResponseV0 node + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain|null} [chain] GetStatusResponseV0 chain + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork|null} [network] GetStatusResponseV0 network + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync|null} [stateSync] GetStatusResponseV0 stateSync + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime|null} [time] GetStatusResponseV0 time */ /** - * Constructs a new GetContestedResourceIdentityVotesResponseV0. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse - * @classdesc Represents a GetContestedResourceIdentityVotesResponseV0. - * @implements IGetContestedResourceIdentityVotesResponseV0 + * Constructs a new GetStatusResponseV0. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse + * @classdesc Represents a GetStatusResponseV0. + * @implements IGetStatusResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0=} [properties] Properties to set */ - function GetContestedResourceIdentityVotesResponseV0(properties) { + function GetStatusResponseV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34061,115 +42103,140 @@ $root.org = (function() { } /** - * GetContestedResourceIdentityVotesResponseV0 votes. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes|null|undefined} votes - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * GetStatusResponseV0 version. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion|null|undefined} version + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @instance */ - GetContestedResourceIdentityVotesResponseV0.prototype.votes = null; + GetStatusResponseV0.prototype.version = null; /** - * GetContestedResourceIdentityVotesResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * GetStatusResponseV0 node. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode|null|undefined} node + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @instance */ - GetContestedResourceIdentityVotesResponseV0.prototype.proof = null; + GetStatusResponseV0.prototype.node = null; /** - * GetContestedResourceIdentityVotesResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * GetStatusResponseV0 chain. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain|null|undefined} chain + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @instance */ - GetContestedResourceIdentityVotesResponseV0.prototype.metadata = null; + GetStatusResponseV0.prototype.chain = null; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * GetStatusResponseV0 network. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork|null|undefined} network + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @instance + */ + GetStatusResponseV0.prototype.network = null; /** - * GetContestedResourceIdentityVotesResponseV0 result. - * @member {"votes"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * GetStatusResponseV0 stateSync. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync|null|undefined} stateSync + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @instance */ - Object.defineProperty(GetContestedResourceIdentityVotesResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["votes", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + GetStatusResponseV0.prototype.stateSync = null; /** - * Creates a new GetContestedResourceIdentityVotesResponseV0 instance using the specified properties. + * GetStatusResponseV0 time. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime|null|undefined} time + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @instance + */ + GetStatusResponseV0.prototype.time = null; + + /** + * Creates a new GetStatusResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} GetStatusResponseV0 instance */ - GetContestedResourceIdentityVotesResponseV0.create = function create(properties) { - return new GetContestedResourceIdentityVotesResponseV0(properties); + GetStatusResponseV0.create = function create(properties) { + return new GetStatusResponseV0(properties); }; /** - * Encodes the specified GetContestedResourceIdentityVotesResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify|verify} messages. + * Encodes the specified GetStatusResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0} message GetStatusResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesResponseV0.encode = function encode(message, writer) { + GetStatusResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.votes != null && Object.hasOwnProperty.call(message, "votes")) - $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.encode(message.votes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.encode(message.version, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.node != null && Object.hasOwnProperty.call(message, "node")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.encode(message.node, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.chain != null && Object.hasOwnProperty.call(message, "chain")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.encode(message.chain, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.network != null && Object.hasOwnProperty.call(message, "network")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.encode(message.network, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.stateSync != null && Object.hasOwnProperty.call(message, "stateSync")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.encode(message.stateSync, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.time != null && Object.hasOwnProperty.call(message, "time")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.encode(message.time, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetContestedResourceIdentityVotesResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.verify|verify} messages. + * Encodes the specified GetStatusResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.IGetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.IGetStatusResponseV0} message GetStatusResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetContestedResourceIdentityVotesResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetStatusResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetContestedResourceIdentityVotesResponseV0 message from the specified reader or buffer. + * Decodes a GetStatusResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} GetStatusResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesResponseV0.decode = function decode(reader, length) { + GetStatusResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.decode(reader, reader.uint32()); + message.version = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.decode(reader, reader.uint32()); break; case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + message.node = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.decode(reader, reader.uint32()); break; case 3: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); + message.chain = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.decode(reader, reader.uint32()); + break; + case 4: + message.network = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.decode(reader, reader.uint32()); + break; + case 5: + message.stateSync = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.decode(reader, reader.uint32()); + break; + case 6: + message.time = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -34180,380 +42247,176 @@ $root.org = (function() { }; /** - * Decodes a GetContestedResourceIdentityVotesResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetStatusResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} GetStatusResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetContestedResourceIdentityVotesResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetStatusResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetContestedResourceIdentityVotesResponseV0 message. + * Verifies a GetStatusResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetContestedResourceIdentityVotesResponseV0.verify = function verify(message) { + GetStatusResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.votes != null && message.hasOwnProperty("votes")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify(message.votes); - if (error) - return "votes." + error; - } - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); + if (message.version != null && message.hasOwnProperty("version")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.verify(message.version); if (error) - return "metadata." + error; + return "version." + error; } - return null; - }; - - /** - * Creates a GetContestedResourceIdentityVotesResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} GetContestedResourceIdentityVotesResponseV0 - */ - GetContestedResourceIdentityVotesResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0(); - if (object.votes != null) { - if (typeof object.votes !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.votes: object expected"); - message.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.fromObject(object.votes); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + if (message.node != null && message.hasOwnProperty("node")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.verify(message.node); + if (error) + return "node." + error; } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); + if (message.chain != null && message.hasOwnProperty("chain")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.verify(message.chain); + if (error) + return "chain." + error; } - return message; - }; - - /** - * Creates a plain object from a GetContestedResourceIdentityVotesResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message GetContestedResourceIdentityVotesResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetContestedResourceIdentityVotesResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.votes != null && message.hasOwnProperty("votes")) { - object.votes = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(message.votes, options); - if (options.oneofs) - object.result = "votes"; + if (message.network != null && message.hasOwnProperty("network")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.verify(message.network); + if (error) + return "network." + error; } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + if (message.stateSync != null && message.hasOwnProperty("stateSync")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.verify(message.stateSync); + if (error) + return "stateSync." + error; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; - - /** - * Converts this GetContestedResourceIdentityVotesResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetContestedResourceIdentityVotesResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes = (function() { - - /** - * Properties of a ContestedResourceIdentityVotes. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @interface IContestedResourceIdentityVotes - * @property {Array.|null} [contestedResourceIdentityVotes] ContestedResourceIdentityVotes contestedResourceIdentityVotes - * @property {boolean|null} [finishedResults] ContestedResourceIdentityVotes finishedResults - */ - - /** - * Constructs a new ContestedResourceIdentityVotes. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @classdesc Represents a ContestedResourceIdentityVotes. - * @implements IContestedResourceIdentityVotes - * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes=} [properties] Properties to set - */ - function ContestedResourceIdentityVotes(properties) { - this.contestedResourceIdentityVotes = []; - 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]]; + if (message.time != null && message.hasOwnProperty("time")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.verify(message.time); + if (error) + return "time." + error; } - - /** - * ContestedResourceIdentityVotes contestedResourceIdentityVotes. - * @member {Array.} contestedResourceIdentityVotes - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @instance - */ - ContestedResourceIdentityVotes.prototype.contestedResourceIdentityVotes = $util.emptyArray; - - /** - * ContestedResourceIdentityVotes finishedResults. - * @member {boolean} finishedResults - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @instance - */ - ContestedResourceIdentityVotes.prototype.finishedResults = false; - - /** - * Creates a new ContestedResourceIdentityVotes instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes instance - */ - ContestedResourceIdentityVotes.create = function create(properties) { - return new ContestedResourceIdentityVotes(properties); - }; - - /** - * Encodes the specified ContestedResourceIdentityVotes message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes} message ContestedResourceIdentityVotes message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceIdentityVotes.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.contestedResourceIdentityVotes != null && message.contestedResourceIdentityVotes.length) - for (var i = 0; i < message.contestedResourceIdentityVotes.length; ++i) - $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.encode(message.contestedResourceIdentityVotes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.finishedResults != null && Object.hasOwnProperty.call(message, "finishedResults")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.finishedResults); - return writer; - }; - - /** - * Encodes the specified ContestedResourceIdentityVotes message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVotes} message ContestedResourceIdentityVotes message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ContestedResourceIdentityVotes.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a ContestedResourceIdentityVotes message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.contestedResourceIdentityVotes && message.contestedResourceIdentityVotes.length)) - message.contestedResourceIdentityVotes = []; - message.contestedResourceIdentityVotes.push($root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.decode(reader, reader.uint32())); - break; - case 2: - message.finishedResults = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a ContestedResourceIdentityVotes message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ContestedResourceIdentityVotes.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ContestedResourceIdentityVotes message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ContestedResourceIdentityVotes.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.contestedResourceIdentityVotes != null && message.hasOwnProperty("contestedResourceIdentityVotes")) { - if (!Array.isArray(message.contestedResourceIdentityVotes)) - return "contestedResourceIdentityVotes: array expected"; - for (var i = 0; i < message.contestedResourceIdentityVotes.length; ++i) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify(message.contestedResourceIdentityVotes[i]); - if (error) - return "contestedResourceIdentityVotes." + error; - } - } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - if (typeof message.finishedResults !== "boolean") - return "finishedResults: boolean expected"; - return null; - }; - - /** - * Creates a ContestedResourceIdentityVotes message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} ContestedResourceIdentityVotes - */ - ContestedResourceIdentityVotes.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes(); - if (object.contestedResourceIdentityVotes) { - if (!Array.isArray(object.contestedResourceIdentityVotes)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contestedResourceIdentityVotes: array expected"); - message.contestedResourceIdentityVotes = []; - for (var i = 0; i < object.contestedResourceIdentityVotes.length; ++i) { - if (typeof object.contestedResourceIdentityVotes[i] !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contestedResourceIdentityVotes: object expected"); - message.contestedResourceIdentityVotes[i] = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.fromObject(object.contestedResourceIdentityVotes[i]); - } - } - if (object.finishedResults != null) - message.finishedResults = Boolean(object.finishedResults); - return message; - }; - - /** - * Creates a plain object from a ContestedResourceIdentityVotes message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message ContestedResourceIdentityVotes - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ContestedResourceIdentityVotes.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.contestedResourceIdentityVotes = []; - if (options.defaults) - object.finishedResults = false; - if (message.contestedResourceIdentityVotes && message.contestedResourceIdentityVotes.length) { - object.contestedResourceIdentityVotes = []; - for (var j = 0; j < message.contestedResourceIdentityVotes.length; ++j) - object.contestedResourceIdentityVotes[j] = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject(message.contestedResourceIdentityVotes[j], options); - } - if (message.finishedResults != null && message.hasOwnProperty("finishedResults")) - object.finishedResults = message.finishedResults; + return null; + }; + + /** + * Creates a GetStatusResponseV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} GetStatusResponseV0 + */ + GetStatusResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0) return object; - }; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0(); + if (object.version != null) { + if (typeof object.version !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.version: object expected"); + message.version = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.fromObject(object.version); + } + if (object.node != null) { + if (typeof object.node !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.node: object expected"); + message.node = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.fromObject(object.node); + } + if (object.chain != null) { + if (typeof object.chain !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.chain: object expected"); + message.chain = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.fromObject(object.chain); + } + if (object.network != null) { + if (typeof object.network !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.network: object expected"); + message.network = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.fromObject(object.network); + } + if (object.stateSync != null) { + if (typeof object.stateSync !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.stateSync: object expected"); + message.stateSync = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.fromObject(object.stateSync); + } + if (object.time != null) { + if (typeof object.time !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.time: object expected"); + message.time = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.fromObject(object.time); + } + return message; + }; - /** - * Converts this ContestedResourceIdentityVotes to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes - * @instance - * @returns {Object.} JSON object - */ - ContestedResourceIdentityVotes.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a GetStatusResponseV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} message GetStatusResponseV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetStatusResponseV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.version = null; + object.node = null; + object.chain = null; + object.network = null; + object.stateSync = null; + object.time = null; + } + if (message.version != null && message.hasOwnProperty("version")) + object.version = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject(message.version, options); + if (message.node != null && message.hasOwnProperty("node")) + object.node = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject(message.node, options); + if (message.chain != null && message.hasOwnProperty("chain")) + object.chain = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject(message.chain, options); + if (message.network != null && message.hasOwnProperty("network")) + object.network = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject(message.network, options); + if (message.stateSync != null && message.hasOwnProperty("stateSync")) + object.stateSync = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject(message.stateSync, options); + if (message.time != null && message.hasOwnProperty("time")) + object.time = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject(message.time, options); + return object; + }; - return ContestedResourceIdentityVotes; - })(); + /** + * Converts this GetStatusResponseV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @instance + * @returns {Object.} JSON object + */ + GetStatusResponseV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice = (function() { + GetStatusResponseV0.Version = (function() { /** - * Properties of a ResourceVoteChoice. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @interface IResourceVoteChoice - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType|null} [voteChoiceType] ResourceVoteChoice voteChoiceType - * @property {Uint8Array|null} [identityId] ResourceVoteChoice identityId + * Properties of a Version. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface IVersion + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware|null} [software] Version software + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol|null} [protocol] Version protocol */ /** - * Constructs a new ResourceVoteChoice. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @classdesc Represents a ResourceVoteChoice. - * @implements IResourceVoteChoice + * Constructs a new Version. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a Version. + * @implements IVersion * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion=} [properties] Properties to set */ - function ResourceVoteChoice(properties) { + function Version(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34561,88 +42424,88 @@ $root.org = (function() { } /** - * ResourceVoteChoice voteChoiceType. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} voteChoiceType - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * Version software. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware|null|undefined} software + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @instance */ - ResourceVoteChoice.prototype.voteChoiceType = 0; + Version.prototype.software = null; /** - * ResourceVoteChoice identityId. - * @member {Uint8Array} identityId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * Version protocol. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol|null|undefined} protocol + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @instance */ - ResourceVoteChoice.prototype.identityId = $util.newBuffer([]); + Version.prototype.protocol = null; /** - * Creates a new ResourceVoteChoice instance using the specified properties. + * Creates a new Version instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice instance + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} Version instance */ - ResourceVoteChoice.create = function create(properties) { - return new ResourceVoteChoice(properties); + Version.create = function create(properties) { + return new Version(properties); }; /** - * Encodes the specified ResourceVoteChoice message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify|verify} messages. + * Encodes the specified Version message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice} message ResourceVoteChoice message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion} message Version message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResourceVoteChoice.encode = function encode(message, writer) { + Version.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.voteChoiceType != null && Object.hasOwnProperty.call(message, "voteChoiceType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.voteChoiceType); - if (message.identityId != null && Object.hasOwnProperty.call(message, "identityId")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.identityId); + if (message.software != null && Object.hasOwnProperty.call(message, "software")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.encode(message.software, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.protocol != null && Object.hasOwnProperty.call(message, "protocol")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.encode(message.protocol, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified ResourceVoteChoice message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify|verify} messages. + * Encodes the specified Version message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice} message ResourceVoteChoice message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IVersion} message Version message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResourceVoteChoice.encodeDelimited = function encodeDelimited(message, writer) { + Version.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ResourceVoteChoice message from the specified reader or buffer. + * Decodes a Version message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} Version * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResourceVoteChoice.decode = function decode(reader, length) { + Version.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.voteChoiceType = reader.int32(); + message.software = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.decode(reader, reader.uint32()); break; case 2: - message.identityId = reader.bytes(); + message.protocol = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -34653,163 +42516,1001 @@ $root.org = (function() { }; /** - * Decodes a ResourceVoteChoice message from the specified reader or buffer, length delimited. + * Decodes a Version message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} Version * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ResourceVoteChoice.decodeDelimited = function decodeDelimited(reader) { + Version.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ResourceVoteChoice message. + * Verifies a Version message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ResourceVoteChoice.verify = function verify(message) { + Version.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.voteChoiceType != null && message.hasOwnProperty("voteChoiceType")) - switch (message.voteChoiceType) { - default: - return "voteChoiceType: enum value expected"; - case 0: - case 1: - case 2: - break; - } - if (message.identityId != null && message.hasOwnProperty("identityId")) - if (!(message.identityId && typeof message.identityId.length === "number" || $util.isString(message.identityId))) - return "identityId: buffer expected"; + if (message.software != null && message.hasOwnProperty("software")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.verify(message.software); + if (error) + return "software." + error; + } + if (message.protocol != null && message.hasOwnProperty("protocol")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.verify(message.protocol); + if (error) + return "protocol." + error; + } return null; }; /** - * Creates a ResourceVoteChoice message from a plain object. Also converts values to their respective internal types. + * Creates a Version message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} ResourceVoteChoice + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} Version */ - ResourceVoteChoice.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice) + Version.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice(); - switch (object.voteChoiceType) { - case "TOWARDS_IDENTITY": - case 0: - message.voteChoiceType = 0; - break; - case "ABSTAIN": - case 1: - message.voteChoiceType = 1; - break; - case "LOCK": - case 2: - message.voteChoiceType = 2; - break; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version(); + if (object.software != null) { + if (typeof object.software !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.software: object expected"); + message.software = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.fromObject(object.software); + } + if (object.protocol != null) { + if (typeof object.protocol !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.protocol: object expected"); + message.protocol = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.fromObject(object.protocol); } - if (object.identityId != null) - if (typeof object.identityId === "string") - $util.base64.decode(object.identityId, message.identityId = $util.newBuffer($util.base64.length(object.identityId)), 0); - else if (object.identityId.length >= 0) - message.identityId = object.identityId; return message; }; /** - * Creates a plain object from a ResourceVoteChoice message. Also converts values to other types if specified. + * Creates a plain object from a Version message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message ResourceVoteChoice + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} message Version * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ResourceVoteChoice.toObject = function toObject(message, options) { + Version.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.voteChoiceType = options.enums === String ? "TOWARDS_IDENTITY" : 0; - if (options.bytes === String) - object.identityId = ""; - else { - object.identityId = []; - if (options.bytes !== Array) - object.identityId = $util.newBuffer(object.identityId); - } + object.software = null; + object.protocol = null; } - if (message.voteChoiceType != null && message.hasOwnProperty("voteChoiceType")) - object.voteChoiceType = options.enums === String ? $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType[message.voteChoiceType] : message.voteChoiceType; - if (message.identityId != null && message.hasOwnProperty("identityId")) - object.identityId = options.bytes === String ? $util.base64.encode(message.identityId, 0, message.identityId.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityId) : message.identityId; + if (message.software != null && message.hasOwnProperty("software")) + object.software = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject(message.software, options); + if (message.protocol != null && message.hasOwnProperty("protocol")) + object.protocol = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject(message.protocol, options); return object; }; /** - * Converts this ResourceVoteChoice to JSON. + * Converts this Version to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version * @instance * @returns {Object.} JSON object */ - ResourceVoteChoice.prototype.toJSON = function toJSON() { + Version.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - /** - * VoteChoiceType enum. - * @name org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType - * @enum {number} - * @property {number} TOWARDS_IDENTITY=0 TOWARDS_IDENTITY value - * @property {number} ABSTAIN=1 ABSTAIN value - * @property {number} LOCK=2 LOCK value - */ - ResourceVoteChoice.VoteChoiceType = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "TOWARDS_IDENTITY"] = 0; - values[valuesById[1] = "ABSTAIN"] = 1; - values[valuesById[2] = "LOCK"] = 2; - return values; + Version.Software = (function() { + + /** + * Properties of a Software. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version + * @interface ISoftware + * @property {string|null} [dapi] Software dapi + * @property {string|null} [drive] Software drive + * @property {string|null} [tenderdash] Software tenderdash + */ + + /** + * Constructs a new Software. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version + * @classdesc Represents a Software. + * @implements ISoftware + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware=} [properties] Properties to set + */ + function Software(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]]; + } + + /** + * Software dapi. + * @member {string} dapi + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @instance + */ + Software.prototype.dapi = ""; + + /** + * Software drive. + * @member {string} drive + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @instance + */ + Software.prototype.drive = ""; + + /** + * Software tenderdash. + * @member {string} tenderdash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @instance + */ + Software.prototype.tenderdash = ""; + + /** + * Creates a new Software instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} Software instance + */ + Software.create = function create(properties) { + return new Software(properties); + }; + + /** + * Encodes the specified Software message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware} message Software message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Software.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.dapi != null && Object.hasOwnProperty.call(message, "dapi")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.dapi); + if (message.drive != null && Object.hasOwnProperty.call(message, "drive")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.drive); + if (message.tenderdash != null && Object.hasOwnProperty.call(message, "tenderdash")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.tenderdash); + return writer; + }; + + /** + * Encodes the specified Software message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.ISoftware} message Software message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Software.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Software message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @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.GetStatusResponse.GetStatusResponseV0.Version.Software} Software + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Software.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.GetStatusResponse.GetStatusResponseV0.Version.Software(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dapi = reader.string(); + break; + case 2: + message.drive = reader.string(); + break; + case 3: + message.tenderdash = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Software message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} Software + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Software.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Software message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Software.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.dapi != null && message.hasOwnProperty("dapi")) + if (!$util.isString(message.dapi)) + return "dapi: string expected"; + if (message.drive != null && message.hasOwnProperty("drive")) + if (!$util.isString(message.drive)) + return "drive: string expected"; + if (message.tenderdash != null && message.hasOwnProperty("tenderdash")) + if (!$util.isString(message.tenderdash)) + return "tenderdash: string expected"; + return null; + }; + + /** + * Creates a Software message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} Software + */ + Software.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software(); + if (object.dapi != null) + message.dapi = String(object.dapi); + if (object.drive != null) + message.drive = String(object.drive); + if (object.tenderdash != null) + message.tenderdash = String(object.tenderdash); + return message; + }; + + /** + * Creates a plain object from a Software message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} message Software + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Software.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.dapi = ""; + object.drive = ""; + object.tenderdash = ""; + } + if (message.dapi != null && message.hasOwnProperty("dapi")) + object.dapi = message.dapi; + if (message.drive != null && message.hasOwnProperty("drive")) + object.drive = message.drive; + if (message.tenderdash != null && message.hasOwnProperty("tenderdash")) + object.tenderdash = message.tenderdash; + return object; + }; + + /** + * Converts this Software to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software + * @instance + * @returns {Object.} JSON object + */ + Software.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Software; })(); - return ResourceVoteChoice; + Version.Protocol = (function() { + + /** + * Properties of a Protocol. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version + * @interface IProtocol + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash|null} [tenderdash] Protocol tenderdash + * @property {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive|null} [drive] Protocol drive + */ + + /** + * Constructs a new Protocol. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version + * @classdesc Represents a Protocol. + * @implements IProtocol + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol=} [properties] Properties to set + */ + function Protocol(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]]; + } + + /** + * Protocol tenderdash. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash|null|undefined} tenderdash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @instance + */ + Protocol.prototype.tenderdash = null; + + /** + * Protocol drive. + * @member {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive|null|undefined} drive + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @instance + */ + Protocol.prototype.drive = null; + + /** + * Creates a new Protocol instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} Protocol instance + */ + Protocol.create = function create(properties) { + return new Protocol(properties); + }; + + /** + * Encodes the specified Protocol message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol} message Protocol message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Protocol.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.tenderdash != null && Object.hasOwnProperty.call(message, "tenderdash")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.encode(message.tenderdash, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.drive != null && Object.hasOwnProperty.call(message, "drive")) + $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.encode(message.drive, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Protocol message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.IProtocol} message Protocol message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Protocol.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Protocol message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @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.GetStatusResponse.GetStatusResponseV0.Version.Protocol} Protocol + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Protocol.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.GetStatusResponse.GetStatusResponseV0.Version.Protocol(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tenderdash = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.decode(reader, reader.uint32()); + break; + case 2: + message.drive = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Protocol message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} Protocol + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Protocol.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Protocol message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Protocol.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.tenderdash != null && message.hasOwnProperty("tenderdash")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.verify(message.tenderdash); + if (error) + return "tenderdash." + error; + } + if (message.drive != null && message.hasOwnProperty("drive")) { + var error = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.verify(message.drive); + if (error) + return "drive." + error; + } + return null; + }; + + /** + * Creates a Protocol message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} Protocol + */ + Protocol.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol(); + if (object.tenderdash != null) { + if (typeof object.tenderdash !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.tenderdash: object expected"); + message.tenderdash = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.fromObject(object.tenderdash); + } + if (object.drive != null) { + if (typeof object.drive !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.drive: object expected"); + message.drive = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.fromObject(object.drive); + } + return message; + }; + + /** + * Creates a plain object from a Protocol message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} message Protocol + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Protocol.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.tenderdash = null; + object.drive = null; + } + if (message.tenderdash != null && message.hasOwnProperty("tenderdash")) + object.tenderdash = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject(message.tenderdash, options); + if (message.drive != null && message.hasOwnProperty("drive")) + object.drive = $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject(message.drive, options); + return object; + }; + + /** + * Converts this Protocol to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @instance + * @returns {Object.} JSON object + */ + Protocol.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + Protocol.Tenderdash = (function() { + + /** + * Properties of a Tenderdash. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @interface ITenderdash + * @property {number|null} [p2p] Tenderdash p2p + * @property {number|null} [block] Tenderdash block + */ + + /** + * Constructs a new Tenderdash. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @classdesc Represents a Tenderdash. + * @implements ITenderdash + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash=} [properties] Properties to set + */ + function Tenderdash(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]]; + } + + /** + * Tenderdash p2p. + * @member {number} p2p + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @instance + */ + Tenderdash.prototype.p2p = 0; + + /** + * Tenderdash block. + * @member {number} block + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @instance + */ + Tenderdash.prototype.block = 0; + + /** + * Creates a new Tenderdash instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} Tenderdash instance + */ + Tenderdash.create = function create(properties) { + return new Tenderdash(properties); + }; + + /** + * Encodes the specified Tenderdash message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash} message Tenderdash message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Tenderdash.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.p2p != null && Object.hasOwnProperty.call(message, "p2p")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.p2p); + if (message.block != null && Object.hasOwnProperty.call(message, "block")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.block); + return writer; + }; + + /** + * Encodes the specified Tenderdash message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.ITenderdash} message Tenderdash message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Tenderdash.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Tenderdash message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} Tenderdash + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Tenderdash.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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.p2p = reader.uint32(); + break; + case 2: + message.block = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Tenderdash message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} Tenderdash + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Tenderdash.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Tenderdash message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Tenderdash.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.p2p != null && message.hasOwnProperty("p2p")) + if (!$util.isInteger(message.p2p)) + return "p2p: integer expected"; + if (message.block != null && message.hasOwnProperty("block")) + if (!$util.isInteger(message.block)) + return "block: integer expected"; + return null; + }; + + /** + * Creates a Tenderdash message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} Tenderdash + */ + Tenderdash.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash(); + if (object.p2p != null) + message.p2p = object.p2p >>> 0; + if (object.block != null) + message.block = object.block >>> 0; + return message; + }; + + /** + * Creates a plain object from a Tenderdash message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} message Tenderdash + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Tenderdash.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.p2p = 0; + object.block = 0; + } + if (message.p2p != null && message.hasOwnProperty("p2p")) + object.p2p = message.p2p; + if (message.block != null && message.hasOwnProperty("block")) + object.block = message.block; + return object; + }; + + /** + * Converts this Tenderdash to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash + * @instance + * @returns {Object.} JSON object + */ + Tenderdash.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Tenderdash; + })(); + + Protocol.Drive = (function() { + + /** + * Properties of a Drive. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @interface IDrive + * @property {number|null} [latest] Drive latest + * @property {number|null} [current] Drive current + */ + + /** + * Constructs a new Drive. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol + * @classdesc Represents a Drive. + * @implements IDrive + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive=} [properties] Properties to set + */ + function Drive(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]]; + } + + /** + * Drive latest. + * @member {number} latest + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @instance + */ + Drive.prototype.latest = 0; + + /** + * Drive current. + * @member {number} current + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @instance + */ + Drive.prototype.current = 0; + + /** + * Creates a new Drive instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} Drive instance + */ + Drive.create = function create(properties) { + return new Drive(properties); + }; + + /** + * Encodes the specified Drive message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive} message Drive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Drive.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.latest != null && Object.hasOwnProperty.call(message, "latest")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.latest); + if (message.current != null && Object.hasOwnProperty.call(message, "current")) + writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.current); + return writer; + }; + + /** + * Encodes the specified Drive message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.IDrive} message Drive message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Drive.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Drive message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} Drive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Drive.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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 3: + message.latest = reader.uint32(); + break; + case 4: + message.current = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Drive message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} Drive + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Drive.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Drive message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Drive.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.latest != null && message.hasOwnProperty("latest")) + if (!$util.isInteger(message.latest)) + return "latest: integer expected"; + if (message.current != null && message.hasOwnProperty("current")) + if (!$util.isInteger(message.current)) + return "current: integer expected"; + return null; + }; + + /** + * Creates a Drive message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} Drive + */ + Drive.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive(); + if (object.latest != null) + message.latest = object.latest >>> 0; + if (object.current != null) + message.current = object.current >>> 0; + return message; + }; + + /** + * Creates a plain object from a Drive message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} message Drive + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Drive.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.latest = 0; + object.current = 0; + } + if (message.latest != null && message.hasOwnProperty("latest")) + object.latest = message.latest; + if (message.current != null && message.hasOwnProperty("current")) + object.current = message.current; + return object; + }; + + /** + * Converts this Drive to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive + * @instance + * @returns {Object.} JSON object + */ + Drive.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Drive; + })(); + + return Protocol; + })(); + + return Version; })(); - GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote = (function() { + GetStatusResponseV0.Time = (function() { /** - * Properties of a ContestedResourceIdentityVote. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @interface IContestedResourceIdentityVote - * @property {Uint8Array|null} [contractId] ContestedResourceIdentityVote contractId - * @property {string|null} [documentTypeName] ContestedResourceIdentityVote documentTypeName - * @property {Array.|null} [serializedIndexStorageValues] ContestedResourceIdentityVote serializedIndexStorageValues - * @property {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice|null} [voteChoice] ContestedResourceIdentityVote voteChoice + * Properties of a Time. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface ITime + * @property {number|Long|null} [local] Time local + * @property {number|Long|null} [block] Time block + * @property {number|Long|null} [genesis] Time genesis + * @property {number|null} [epoch] Time epoch */ /** - * Constructs a new ContestedResourceIdentityVote. - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 - * @classdesc Represents a ContestedResourceIdentityVote. - * @implements IContestedResourceIdentityVote + * Constructs a new Time. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a Time. + * @implements ITime * @constructor - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime=} [properties] Properties to set */ - function ContestedResourceIdentityVote(properties) { - this.serializedIndexStorageValues = []; + function Time(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34817,117 +43518,114 @@ $root.org = (function() { } /** - * ContestedResourceIdentityVote contractId. - * @member {Uint8Array} contractId - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * Time local. + * @member {number|Long} local + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @instance */ - ContestedResourceIdentityVote.prototype.contractId = $util.newBuffer([]); + Time.prototype.local = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** - * ContestedResourceIdentityVote documentTypeName. - * @member {string} documentTypeName - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * Time block. + * @member {number|Long} block + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @instance */ - ContestedResourceIdentityVote.prototype.documentTypeName = ""; + Time.prototype.block = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** - * ContestedResourceIdentityVote serializedIndexStorageValues. - * @member {Array.} serializedIndexStorageValues - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * Time genesis. + * @member {number|Long} genesis + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @instance */ - ContestedResourceIdentityVote.prototype.serializedIndexStorageValues = $util.emptyArray; + Time.prototype.genesis = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** - * ContestedResourceIdentityVote voteChoice. - * @member {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IResourceVoteChoice|null|undefined} voteChoice - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * Time epoch. + * @member {number} epoch + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @instance */ - ContestedResourceIdentityVote.prototype.voteChoice = null; + Time.prototype.epoch = 0; /** - * Creates a new ContestedResourceIdentityVote instance using the specified properties. + * Creates a new Time instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote instance + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} Time instance */ - ContestedResourceIdentityVote.create = function create(properties) { - return new ContestedResourceIdentityVote(properties); + Time.create = function create(properties) { + return new Time(properties); }; /** - * Encodes the specified ContestedResourceIdentityVote message. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify|verify} messages. + * Encodes the specified Time message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote} message ContestedResourceIdentityVote message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime} message Time message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceIdentityVote.encode = function encode(message, writer) { + Time.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.contractId != null && Object.hasOwnProperty.call(message, "contractId")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.contractId); - if (message.documentTypeName != null && Object.hasOwnProperty.call(message, "documentTypeName")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.documentTypeName); - if (message.serializedIndexStorageValues != null && message.serializedIndexStorageValues.length) - for (var i = 0; i < message.serializedIndexStorageValues.length; ++i) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.serializedIndexStorageValues[i]); - if (message.voteChoice != null && Object.hasOwnProperty.call(message, "voteChoice")) - $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.encode(message.voteChoice, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.local != null && Object.hasOwnProperty.call(message, "local")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.local); + if (message.block != null && Object.hasOwnProperty.call(message, "block")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.block); + if (message.genesis != null && Object.hasOwnProperty.call(message, "genesis")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.genesis); + if (message.epoch != null && Object.hasOwnProperty.call(message, "epoch")) + writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.epoch); return writer; }; /** - * Encodes the specified ContestedResourceIdentityVote message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.verify|verify} messages. + * Encodes the specified Time message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.IContestedResourceIdentityVote} message ContestedResourceIdentityVote message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.ITime} message Time message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ContestedResourceIdentityVote.encodeDelimited = function encodeDelimited(message, writer) { + Time.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ContestedResourceIdentityVote message from the specified reader or buffer. + * Decodes a Time message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} Time * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceIdentityVote.decode = function decode(reader, length) { + Time.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.contractId = reader.bytes(); + message.local = reader.uint64(); break; case 2: - message.documentTypeName = reader.string(); - break; - case 3: - if (!(message.serializedIndexStorageValues && message.serializedIndexStorageValues.length)) - message.serializedIndexStorageValues = []; - message.serializedIndexStorageValues.push(reader.bytes()); + message.block = reader.uint64(); + break; + case 3: + message.genesis = reader.uint64(); break; case 4: - message.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.decode(reader, reader.uint32()); + message.epoch = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -34938,1484 +43636,1522 @@ $root.org = (function() { }; /** - * Decodes a ContestedResourceIdentityVote message from the specified reader or buffer, length delimited. + * Decodes a Time message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} Time * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ContestedResourceIdentityVote.decodeDelimited = function decodeDelimited(reader) { + Time.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ContestedResourceIdentityVote message. + * Verifies a Time message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ContestedResourceIdentityVote.verify = function verify(message) { + Time.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.contractId != null && message.hasOwnProperty("contractId")) - if (!(message.contractId && typeof message.contractId.length === "number" || $util.isString(message.contractId))) - return "contractId: buffer expected"; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - if (!$util.isString(message.documentTypeName)) - return "documentTypeName: string expected"; - if (message.serializedIndexStorageValues != null && message.hasOwnProperty("serializedIndexStorageValues")) { - if (!Array.isArray(message.serializedIndexStorageValues)) - return "serializedIndexStorageValues: array expected"; - for (var i = 0; i < message.serializedIndexStorageValues.length; ++i) - if (!(message.serializedIndexStorageValues[i] && typeof message.serializedIndexStorageValues[i].length === "number" || $util.isString(message.serializedIndexStorageValues[i]))) - return "serializedIndexStorageValues: buffer[] expected"; - } - if (message.voteChoice != null && message.hasOwnProperty("voteChoice")) { - var error = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.verify(message.voteChoice); - if (error) - return "voteChoice." + error; - } + if (message.local != null && message.hasOwnProperty("local")) + if (!$util.isInteger(message.local) && !(message.local && $util.isInteger(message.local.low) && $util.isInteger(message.local.high))) + return "local: integer|Long expected"; + if (message.block != null && message.hasOwnProperty("block")) + if (!$util.isInteger(message.block) && !(message.block && $util.isInteger(message.block.low) && $util.isInteger(message.block.high))) + return "block: integer|Long expected"; + if (message.genesis != null && message.hasOwnProperty("genesis")) + if (!$util.isInteger(message.genesis) && !(message.genesis && $util.isInteger(message.genesis.low) && $util.isInteger(message.genesis.high))) + return "genesis: integer|Long expected"; + if (message.epoch != null && message.hasOwnProperty("epoch")) + if (!$util.isInteger(message.epoch)) + return "epoch: integer expected"; return null; }; /** - * Creates a ContestedResourceIdentityVote message from a plain object. Also converts values to their respective internal types. + * Creates a Time message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} ContestedResourceIdentityVote + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} Time */ - ContestedResourceIdentityVote.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote) + Time.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time) return object; - var message = new $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote(); - if (object.contractId != null) - if (typeof object.contractId === "string") - $util.base64.decode(object.contractId, message.contractId = $util.newBuffer($util.base64.length(object.contractId)), 0); - else if (object.contractId.length >= 0) - message.contractId = object.contractId; - if (object.documentTypeName != null) - message.documentTypeName = String(object.documentTypeName); - if (object.serializedIndexStorageValues) { - if (!Array.isArray(object.serializedIndexStorageValues)) - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializedIndexStorageValues: array expected"); - message.serializedIndexStorageValues = []; - for (var i = 0; i < object.serializedIndexStorageValues.length; ++i) - if (typeof object.serializedIndexStorageValues[i] === "string") - $util.base64.decode(object.serializedIndexStorageValues[i], message.serializedIndexStorageValues[i] = $util.newBuffer($util.base64.length(object.serializedIndexStorageValues[i])), 0); - else if (object.serializedIndexStorageValues[i].length >= 0) - message.serializedIndexStorageValues[i] = object.serializedIndexStorageValues[i]; - } - if (object.voteChoice != null) { - if (typeof object.voteChoice !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.voteChoice: object expected"); - message.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.fromObject(object.voteChoice); - } + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time(); + if (object.local != null) + if ($util.Long) + (message.local = $util.Long.fromValue(object.local)).unsigned = true; + else if (typeof object.local === "string") + message.local = parseInt(object.local, 10); + else if (typeof object.local === "number") + message.local = object.local; + else if (typeof object.local === "object") + message.local = new $util.LongBits(object.local.low >>> 0, object.local.high >>> 0).toNumber(true); + if (object.block != null) + if ($util.Long) + (message.block = $util.Long.fromValue(object.block)).unsigned = true; + else if (typeof object.block === "string") + message.block = parseInt(object.block, 10); + else if (typeof object.block === "number") + message.block = object.block; + else if (typeof object.block === "object") + message.block = new $util.LongBits(object.block.low >>> 0, object.block.high >>> 0).toNumber(true); + if (object.genesis != null) + if ($util.Long) + (message.genesis = $util.Long.fromValue(object.genesis)).unsigned = true; + else if (typeof object.genesis === "string") + message.genesis = parseInt(object.genesis, 10); + else if (typeof object.genesis === "number") + message.genesis = object.genesis; + else if (typeof object.genesis === "object") + message.genesis = new $util.LongBits(object.genesis.low >>> 0, object.genesis.high >>> 0).toNumber(true); + if (object.epoch != null) + message.epoch = object.epoch >>> 0; return message; }; /** - * Creates a plain object from a ContestedResourceIdentityVote message. Also converts values to other types if specified. + * Creates a plain object from a Time message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @static - * @param {org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message ContestedResourceIdentityVote + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} message Time * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ContestedResourceIdentityVote.toObject = function toObject(message, options) { + Time.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.serializedIndexStorageValues = []; if (options.defaults) { - if (options.bytes === String) - object.contractId = ""; - else { - object.contractId = []; - if (options.bytes !== Array) - object.contractId = $util.newBuffer(object.contractId); - } - object.documentTypeName = ""; - object.voteChoice = null; - } - if (message.contractId != null && message.hasOwnProperty("contractId")) - object.contractId = options.bytes === String ? $util.base64.encode(message.contractId, 0, message.contractId.length) : options.bytes === Array ? Array.prototype.slice.call(message.contractId) : message.contractId; - if (message.documentTypeName != null && message.hasOwnProperty("documentTypeName")) - object.documentTypeName = message.documentTypeName; - if (message.serializedIndexStorageValues && message.serializedIndexStorageValues.length) { - object.serializedIndexStorageValues = []; - for (var j = 0; j < message.serializedIndexStorageValues.length; ++j) - object.serializedIndexStorageValues[j] = options.bytes === String ? $util.base64.encode(message.serializedIndexStorageValues[j], 0, message.serializedIndexStorageValues[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.serializedIndexStorageValues[j]) : message.serializedIndexStorageValues[j]; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.local = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.local = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.block = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.block = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.genesis = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.genesis = options.longs === String ? "0" : 0; + object.epoch = 0; } - if (message.voteChoice != null && message.hasOwnProperty("voteChoice")) - object.voteChoice = $root.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(message.voteChoice, options); + if (message.local != null && message.hasOwnProperty("local")) + if (typeof message.local === "number") + object.local = options.longs === String ? String(message.local) : message.local; + else + object.local = options.longs === String ? $util.Long.prototype.toString.call(message.local) : options.longs === Number ? new $util.LongBits(message.local.low >>> 0, message.local.high >>> 0).toNumber(true) : message.local; + if (message.block != null && message.hasOwnProperty("block")) + if (typeof message.block === "number") + object.block = options.longs === String ? String(message.block) : message.block; + else + object.block = options.longs === String ? $util.Long.prototype.toString.call(message.block) : options.longs === Number ? new $util.LongBits(message.block.low >>> 0, message.block.high >>> 0).toNumber(true) : message.block; + if (message.genesis != null && message.hasOwnProperty("genesis")) + if (typeof message.genesis === "number") + object.genesis = options.longs === String ? String(message.genesis) : message.genesis; + else + object.genesis = options.longs === String ? $util.Long.prototype.toString.call(message.genesis) : options.longs === Number ? new $util.LongBits(message.genesis.low >>> 0, message.genesis.high >>> 0).toNumber(true) : message.genesis; + if (message.epoch != null && message.hasOwnProperty("epoch")) + object.epoch = message.epoch; return object; }; /** - * Converts this ContestedResourceIdentityVote to JSON. + * Converts this Time to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time * @instance * @returns {Object.} JSON object */ - ContestedResourceIdentityVote.prototype.toJSON = function toJSON() { + Time.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return ContestedResourceIdentityVote; + return Time; })(); - return GetContestedResourceIdentityVotesResponseV0; - })(); - - return GetContestedResourceIdentityVotesResponse; - })(); - - v0.GetPrefundedSpecializedBalanceRequest = (function() { - - /** - * Properties of a GetPrefundedSpecializedBalanceRequest. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetPrefundedSpecializedBalanceRequest - * @property {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0|null} [v0] GetPrefundedSpecializedBalanceRequest v0 - */ - - /** - * Constructs a new GetPrefundedSpecializedBalanceRequest. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetPrefundedSpecializedBalanceRequest. - * @implements IGetPrefundedSpecializedBalanceRequest - * @constructor - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest=} [properties] Properties to set - */ - function GetPrefundedSpecializedBalanceRequest(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]]; - } - - /** - * GetPrefundedSpecializedBalanceRequest v0. - * @member {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @instance - */ - GetPrefundedSpecializedBalanceRequest.prototype.v0 = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - /** - * GetPrefundedSpecializedBalanceRequest version. - * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @instance - */ - Object.defineProperty(GetPrefundedSpecializedBalanceRequest.prototype, "version", { - get: $util.oneOfGetter($oneOfFields = ["v0"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new GetPrefundedSpecializedBalanceRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest instance - */ - GetPrefundedSpecializedBalanceRequest.create = function create(properties) { - return new GetPrefundedSpecializedBalanceRequest(properties); - }; - - /** - * Encodes the specified GetPrefundedSpecializedBalanceRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified GetPrefundedSpecializedBalanceRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a GetPrefundedSpecializedBalanceRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @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.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a GetPrefundedSpecializedBalanceRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GetPrefundedSpecializedBalanceRequest message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify(message.v0); - if (error) - return "v0." + error; - } - } - return null; - }; - - /** - * Creates a GetPrefundedSpecializedBalanceRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} GetPrefundedSpecializedBalanceRequest - */ - GetPrefundedSpecializedBalanceRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest(); - if (object.v0 != null) { - if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.fromObject(object.v0); - } - return message; - }; - - /** - * Creates a plain object from a GetPrefundedSpecializedBalanceRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} message GetPrefundedSpecializedBalanceRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(message.v0, options); - if (options.oneofs) - object.version = "v0"; - } - return object; - }; - - /** - * Converts this GetPrefundedSpecializedBalanceRequest to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @instance - * @returns {Object.} JSON object - */ - GetPrefundedSpecializedBalanceRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 = (function() { - - /** - * Properties of a GetPrefundedSpecializedBalanceRequestV0. - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @interface IGetPrefundedSpecializedBalanceRequestV0 - * @property {Uint8Array|null} [id] GetPrefundedSpecializedBalanceRequestV0 id - * @property {boolean|null} [prove] GetPrefundedSpecializedBalanceRequestV0 prove - */ - - /** - * Constructs a new GetPrefundedSpecializedBalanceRequestV0. - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest - * @classdesc Represents a GetPrefundedSpecializedBalanceRequestV0. - * @implements IGetPrefundedSpecializedBalanceRequestV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0=} [properties] Properties to set - */ - function GetPrefundedSpecializedBalanceRequestV0(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]]; - } - - /** - * GetPrefundedSpecializedBalanceRequestV0 id. - * @member {Uint8Array} id - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @instance - */ - GetPrefundedSpecializedBalanceRequestV0.prototype.id = $util.newBuffer([]); - - /** - * GetPrefundedSpecializedBalanceRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @instance - */ - GetPrefundedSpecializedBalanceRequestV0.prototype.prove = false; - - /** - * Creates a new GetPrefundedSpecializedBalanceRequestV0 instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 instance - */ - GetPrefundedSpecializedBalanceRequestV0.create = function create(properties) { - return new GetPrefundedSpecializedBalanceRequestV0(properties); - }; - - /** - * Encodes the specified GetPrefundedSpecializedBalanceRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceRequestV0.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.prove); - return writer; - }; - - /** - * Encodes the specified GetPrefundedSpecializedBalanceRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.IGetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceRequestV0.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a GetPrefundedSpecializedBalanceRequestV0 message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.id = reader.bytes(); - break; - case 2: - message.prove = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a GetPrefundedSpecializedBalanceRequestV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceRequestV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GetPrefundedSpecializedBalanceRequestV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetPrefundedSpecializedBalanceRequestV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) - return "id: buffer expected"; - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; - return null; - }; - - /** - * Creates a GetPrefundedSpecializedBalanceRequestV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} GetPrefundedSpecializedBalanceRequestV0 - */ - GetPrefundedSpecializedBalanceRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0(); - if (object.id != null) - if (typeof object.id === "string") - $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); - else if (object.id.length >= 0) - message.id = object.id; - if (object.prove != null) - message.prove = Boolean(object.prove); - return message; - }; + GetStatusResponseV0.Node = (function() { - /** - * Creates a plain object from a GetPrefundedSpecializedBalanceRequestV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message GetPrefundedSpecializedBalanceRequestV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetPrefundedSpecializedBalanceRequestV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if (options.bytes === String) - object.id = ""; - else { - object.id = []; - if (options.bytes !== Array) - object.id = $util.newBuffer(object.id); - } - object.prove = false; + /** + * Properties of a Node. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface INode + * @property {Uint8Array|null} [id] Node id + * @property {Uint8Array|null} [proTxHash] Node proTxHash + */ + + /** + * Constructs a new Node. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a Node. + * @implements INode + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode=} [properties] Properties to set + */ + function Node(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]]; } - if (message.id != null && message.hasOwnProperty("id")) - object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; - return object; - }; - /** - * Converts this GetPrefundedSpecializedBalanceRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetPrefundedSpecializedBalanceRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Node id. + * @member {Uint8Array} id + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @instance + */ + Node.prototype.id = $util.newBuffer([]); - return GetPrefundedSpecializedBalanceRequestV0; - })(); + /** + * Node proTxHash. + * @member {Uint8Array} proTxHash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @instance + */ + Node.prototype.proTxHash = $util.newBuffer([]); - return GetPrefundedSpecializedBalanceRequest; - })(); + /** + * Creates a new Node instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} Node instance + */ + Node.create = function create(properties) { + return new Node(properties); + }; - v0.GetPrefundedSpecializedBalanceResponse = (function() { + /** + * Encodes the specified Node message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode} message Node message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Node.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.id); + if (message.proTxHash != null && Object.hasOwnProperty.call(message, "proTxHash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.proTxHash); + return writer; + }; - /** - * Properties of a GetPrefundedSpecializedBalanceResponse. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetPrefundedSpecializedBalanceResponse - * @property {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0|null} [v0] GetPrefundedSpecializedBalanceResponse v0 - */ + /** + * Encodes the specified Node message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INode} message Node message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Node.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Constructs a new GetPrefundedSpecializedBalanceResponse. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetPrefundedSpecializedBalanceResponse. - * @implements IGetPrefundedSpecializedBalanceResponse - * @constructor - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse=} [properties] Properties to set - */ - function GetPrefundedSpecializedBalanceResponse(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]]; - } + /** + * Decodes a Node message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @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.GetStatusResponse.GetStatusResponseV0.Node} Node + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Node.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.GetStatusResponse.GetStatusResponseV0.Node(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.bytes(); + break; + case 2: + message.proTxHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * GetPrefundedSpecializedBalanceResponse v0. - * @member {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @instance - */ - GetPrefundedSpecializedBalanceResponse.prototype.v0 = null; + /** + * Decodes a Node message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} Node + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Node.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Verifies a Node message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Node.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id))) + return "id: buffer expected"; + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + if (!(message.proTxHash && typeof message.proTxHash.length === "number" || $util.isString(message.proTxHash))) + return "proTxHash: buffer expected"; + return null; + }; - /** - * GetPrefundedSpecializedBalanceResponse version. - * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @instance - */ - Object.defineProperty(GetPrefundedSpecializedBalanceResponse.prototype, "version", { - get: $util.oneOfGetter($oneOfFields = ["v0"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Creates a Node message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} Node + */ + Node.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node(); + if (object.id != null) + if (typeof object.id === "string") + $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0); + else if (object.id.length >= 0) + message.id = object.id; + if (object.proTxHash != null) + if (typeof object.proTxHash === "string") + $util.base64.decode(object.proTxHash, message.proTxHash = $util.newBuffer($util.base64.length(object.proTxHash)), 0); + else if (object.proTxHash.length >= 0) + message.proTxHash = object.proTxHash; + return message; + }; - /** - * Creates a new GetPrefundedSpecializedBalanceResponse instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse instance - */ - GetPrefundedSpecializedBalanceResponse.create = function create(properties) { - return new GetPrefundedSpecializedBalanceResponse(properties); - }; + /** + * Creates a plain object from a Node message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} message Node + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Node.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.id = ""; + else { + object.id = []; + if (options.bytes !== Array) + object.id = $util.newBuffer(object.id); + } + if (options.bytes === String) + object.proTxHash = ""; + else { + object.proTxHash = []; + if (options.bytes !== Array) + object.proTxHash = $util.newBuffer(object.proTxHash); + } + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id; + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + object.proTxHash = options.bytes === String ? $util.base64.encode(message.proTxHash, 0, message.proTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.proTxHash) : message.proTxHash; + return object; + }; - /** - * Encodes the specified GetPrefundedSpecializedBalanceResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Converts this Node to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node + * @instance + * @returns {Object.} JSON object + */ + Node.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Encodes the specified GetPrefundedSpecializedBalanceResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + return Node; + })(); - /** - * Decodes a GetPrefundedSpecializedBalanceResponse message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @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.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + GetStatusResponseV0.Chain = (function() { - /** - * Decodes a GetPrefundedSpecializedBalanceResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Properties of a Chain. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface IChain + * @property {boolean|null} [catchingUp] Chain catchingUp + * @property {Uint8Array|null} [latestBlockHash] Chain latestBlockHash + * @property {Uint8Array|null} [latestAppHash] Chain latestAppHash + * @property {number|Long|null} [latestBlockHeight] Chain latestBlockHeight + * @property {Uint8Array|null} [earliestBlockHash] Chain earliestBlockHash + * @property {Uint8Array|null} [earliestAppHash] Chain earliestAppHash + * @property {number|Long|null} [earliestBlockHeight] Chain earliestBlockHeight + * @property {number|Long|null} [maxPeerBlockHeight] Chain maxPeerBlockHeight + * @property {number|null} [coreChainLockedHeight] Chain coreChainLockedHeight + */ - /** - * Verifies a GetPrefundedSpecializedBalanceResponse message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify(message.v0); - if (error) - return "v0." + error; + /** + * Constructs a new Chain. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a Chain. + * @implements IChain + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain=} [properties] Properties to set + */ + function Chain(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]]; } - } - return null; - }; - /** - * Creates a GetPrefundedSpecializedBalanceResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} GetPrefundedSpecializedBalanceResponse - */ - GetPrefundedSpecializedBalanceResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse(); - if (object.v0 != null) { - if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.fromObject(object.v0); - } - return message; - }; + /** + * Chain catchingUp. + * @member {boolean} catchingUp + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.catchingUp = false; - /** - * Creates a plain object from a GetPrefundedSpecializedBalanceResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} message GetPrefundedSpecializedBalanceResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(message.v0, options); - if (options.oneofs) - object.version = "v0"; - } - return object; - }; + /** + * Chain latestBlockHash. + * @member {Uint8Array} latestBlockHash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.latestBlockHash = $util.newBuffer([]); - /** - * Converts this GetPrefundedSpecializedBalanceResponse to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @instance - * @returns {Object.} JSON object - */ - GetPrefundedSpecializedBalanceResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Chain latestAppHash. + * @member {Uint8Array} latestAppHash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.latestAppHash = $util.newBuffer([]); - GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 = (function() { + /** + * Chain latestBlockHeight. + * @member {number|Long} latestBlockHeight + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.latestBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Properties of a GetPrefundedSpecializedBalanceResponseV0. - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @interface IGetPrefundedSpecializedBalanceResponseV0 - * @property {number|Long|null} [balance] GetPrefundedSpecializedBalanceResponseV0 balance - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetPrefundedSpecializedBalanceResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetPrefundedSpecializedBalanceResponseV0 metadata - */ + /** + * Chain earliestBlockHash. + * @member {Uint8Array} earliestBlockHash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.earliestBlockHash = $util.newBuffer([]); - /** - * Constructs a new GetPrefundedSpecializedBalanceResponseV0. - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse - * @classdesc Represents a GetPrefundedSpecializedBalanceResponseV0. - * @implements IGetPrefundedSpecializedBalanceResponseV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0=} [properties] Properties to set - */ - function GetPrefundedSpecializedBalanceResponseV0(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]]; - } + /** + * Chain earliestAppHash. + * @member {Uint8Array} earliestAppHash + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.earliestAppHash = $util.newBuffer([]); - /** - * GetPrefundedSpecializedBalanceResponseV0 balance. - * @member {number|Long} balance - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @instance - */ - GetPrefundedSpecializedBalanceResponseV0.prototype.balance = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + /** + * Chain earliestBlockHeight. + * @member {number|Long} earliestBlockHeight + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.earliestBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * GetPrefundedSpecializedBalanceResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @instance - */ - GetPrefundedSpecializedBalanceResponseV0.prototype.proof = null; + /** + * Chain maxPeerBlockHeight. + * @member {number|Long} maxPeerBlockHeight + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.maxPeerBlockHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * GetPrefundedSpecializedBalanceResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @instance - */ - GetPrefundedSpecializedBalanceResponseV0.prototype.metadata = null; + /** + * Chain coreChainLockedHeight. + * @member {number} coreChainLockedHeight + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + */ + Chain.prototype.coreChainLockedHeight = 0; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Creates a new Chain instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} Chain instance + */ + Chain.create = function create(properties) { + return new Chain(properties); + }; - /** - * GetPrefundedSpecializedBalanceResponseV0 result. - * @member {"balance"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @instance - */ - Object.defineProperty(GetPrefundedSpecializedBalanceResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["balance", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Encodes the specified Chain message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain} message Chain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chain.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.catchingUp != null && Object.hasOwnProperty.call(message, "catchingUp")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.catchingUp); + if (message.latestBlockHash != null && Object.hasOwnProperty.call(message, "latestBlockHash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.latestBlockHash); + if (message.latestAppHash != null && Object.hasOwnProperty.call(message, "latestAppHash")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.latestAppHash); + if (message.latestBlockHeight != null && Object.hasOwnProperty.call(message, "latestBlockHeight")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.latestBlockHeight); + if (message.earliestBlockHash != null && Object.hasOwnProperty.call(message, "earliestBlockHash")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.earliestBlockHash); + if (message.earliestAppHash != null && Object.hasOwnProperty.call(message, "earliestAppHash")) + writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.earliestAppHash); + if (message.earliestBlockHeight != null && Object.hasOwnProperty.call(message, "earliestBlockHeight")) + writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.earliestBlockHeight); + if (message.maxPeerBlockHeight != null && Object.hasOwnProperty.call(message, "maxPeerBlockHeight")) + writer.uint32(/* id 9, wireType 0 =*/72).uint64(message.maxPeerBlockHeight); + if (message.coreChainLockedHeight != null && Object.hasOwnProperty.call(message, "coreChainLockedHeight")) + writer.uint32(/* id 10, wireType 0 =*/80).uint32(message.coreChainLockedHeight); + return writer; + }; - /** - * Creates a new GetPrefundedSpecializedBalanceResponseV0 instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 instance - */ - GetPrefundedSpecializedBalanceResponseV0.create = function create(properties) { - return new GetPrefundedSpecializedBalanceResponseV0(properties); - }; + /** + * Encodes the specified Chain message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IChain} message Chain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chain.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Chain message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @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.GetStatusResponse.GetStatusResponseV0.Chain} Chain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chain.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.GetStatusResponse.GetStatusResponseV0.Chain(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.catchingUp = reader.bool(); + break; + case 2: + message.latestBlockHash = reader.bytes(); + break; + case 3: + message.latestAppHash = reader.bytes(); + break; + case 4: + message.latestBlockHeight = reader.uint64(); + break; + case 5: + message.earliestBlockHash = reader.bytes(); + break; + case 6: + message.earliestAppHash = reader.bytes(); + break; + case 7: + message.earliestBlockHeight = reader.uint64(); + break; + case 9: + message.maxPeerBlockHeight = reader.uint64(); + break; + case 10: + message.coreChainLockedHeight = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Chain message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} Chain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chain.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified GetPrefundedSpecializedBalanceResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceResponseV0.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.balance != null && Object.hasOwnProperty.call(message, "balance")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.balance); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - return writer; - }; + /** + * Verifies a Chain message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Chain.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.catchingUp != null && message.hasOwnProperty("catchingUp")) + if (typeof message.catchingUp !== "boolean") + return "catchingUp: boolean expected"; + if (message.latestBlockHash != null && message.hasOwnProperty("latestBlockHash")) + if (!(message.latestBlockHash && typeof message.latestBlockHash.length === "number" || $util.isString(message.latestBlockHash))) + return "latestBlockHash: buffer expected"; + if (message.latestAppHash != null && message.hasOwnProperty("latestAppHash")) + if (!(message.latestAppHash && typeof message.latestAppHash.length === "number" || $util.isString(message.latestAppHash))) + return "latestAppHash: buffer expected"; + if (message.latestBlockHeight != null && message.hasOwnProperty("latestBlockHeight")) + if (!$util.isInteger(message.latestBlockHeight) && !(message.latestBlockHeight && $util.isInteger(message.latestBlockHeight.low) && $util.isInteger(message.latestBlockHeight.high))) + return "latestBlockHeight: integer|Long expected"; + if (message.earliestBlockHash != null && message.hasOwnProperty("earliestBlockHash")) + if (!(message.earliestBlockHash && typeof message.earliestBlockHash.length === "number" || $util.isString(message.earliestBlockHash))) + return "earliestBlockHash: buffer expected"; + if (message.earliestAppHash != null && message.hasOwnProperty("earliestAppHash")) + if (!(message.earliestAppHash && typeof message.earliestAppHash.length === "number" || $util.isString(message.earliestAppHash))) + return "earliestAppHash: buffer expected"; + if (message.earliestBlockHeight != null && message.hasOwnProperty("earliestBlockHeight")) + if (!$util.isInteger(message.earliestBlockHeight) && !(message.earliestBlockHeight && $util.isInteger(message.earliestBlockHeight.low) && $util.isInteger(message.earliestBlockHeight.high))) + return "earliestBlockHeight: integer|Long expected"; + if (message.maxPeerBlockHeight != null && message.hasOwnProperty("maxPeerBlockHeight")) + if (!$util.isInteger(message.maxPeerBlockHeight) && !(message.maxPeerBlockHeight && $util.isInteger(message.maxPeerBlockHeight.low) && $util.isInteger(message.maxPeerBlockHeight.high))) + return "maxPeerBlockHeight: integer|Long expected"; + if (message.coreChainLockedHeight != null && message.hasOwnProperty("coreChainLockedHeight")) + if (!$util.isInteger(message.coreChainLockedHeight)) + return "coreChainLockedHeight: integer expected"; + return null; + }; - /** - * Encodes the specified GetPrefundedSpecializedBalanceResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.IGetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPrefundedSpecializedBalanceResponseV0.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a Chain message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} Chain + */ + Chain.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain(); + if (object.catchingUp != null) + message.catchingUp = Boolean(object.catchingUp); + if (object.latestBlockHash != null) + if (typeof object.latestBlockHash === "string") + $util.base64.decode(object.latestBlockHash, message.latestBlockHash = $util.newBuffer($util.base64.length(object.latestBlockHash)), 0); + else if (object.latestBlockHash.length >= 0) + message.latestBlockHash = object.latestBlockHash; + if (object.latestAppHash != null) + if (typeof object.latestAppHash === "string") + $util.base64.decode(object.latestAppHash, message.latestAppHash = $util.newBuffer($util.base64.length(object.latestAppHash)), 0); + else if (object.latestAppHash.length >= 0) + message.latestAppHash = object.latestAppHash; + if (object.latestBlockHeight != null) + if ($util.Long) + (message.latestBlockHeight = $util.Long.fromValue(object.latestBlockHeight)).unsigned = true; + else if (typeof object.latestBlockHeight === "string") + message.latestBlockHeight = parseInt(object.latestBlockHeight, 10); + else if (typeof object.latestBlockHeight === "number") + message.latestBlockHeight = object.latestBlockHeight; + else if (typeof object.latestBlockHeight === "object") + message.latestBlockHeight = new $util.LongBits(object.latestBlockHeight.low >>> 0, object.latestBlockHeight.high >>> 0).toNumber(true); + if (object.earliestBlockHash != null) + if (typeof object.earliestBlockHash === "string") + $util.base64.decode(object.earliestBlockHash, message.earliestBlockHash = $util.newBuffer($util.base64.length(object.earliestBlockHash)), 0); + else if (object.earliestBlockHash.length >= 0) + message.earliestBlockHash = object.earliestBlockHash; + if (object.earliestAppHash != null) + if (typeof object.earliestAppHash === "string") + $util.base64.decode(object.earliestAppHash, message.earliestAppHash = $util.newBuffer($util.base64.length(object.earliestAppHash)), 0); + else if (object.earliestAppHash.length >= 0) + message.earliestAppHash = object.earliestAppHash; + if (object.earliestBlockHeight != null) + if ($util.Long) + (message.earliestBlockHeight = $util.Long.fromValue(object.earliestBlockHeight)).unsigned = true; + else if (typeof object.earliestBlockHeight === "string") + message.earliestBlockHeight = parseInt(object.earliestBlockHeight, 10); + else if (typeof object.earliestBlockHeight === "number") + message.earliestBlockHeight = object.earliestBlockHeight; + else if (typeof object.earliestBlockHeight === "object") + message.earliestBlockHeight = new $util.LongBits(object.earliestBlockHeight.low >>> 0, object.earliestBlockHeight.high >>> 0).toNumber(true); + if (object.maxPeerBlockHeight != null) + if ($util.Long) + (message.maxPeerBlockHeight = $util.Long.fromValue(object.maxPeerBlockHeight)).unsigned = true; + else if (typeof object.maxPeerBlockHeight === "string") + message.maxPeerBlockHeight = parseInt(object.maxPeerBlockHeight, 10); + else if (typeof object.maxPeerBlockHeight === "number") + message.maxPeerBlockHeight = object.maxPeerBlockHeight; + else if (typeof object.maxPeerBlockHeight === "object") + message.maxPeerBlockHeight = new $util.LongBits(object.maxPeerBlockHeight.low >>> 0, object.maxPeerBlockHeight.high >>> 0).toNumber(true); + if (object.coreChainLockedHeight != null) + message.coreChainLockedHeight = object.coreChainLockedHeight >>> 0; + return message; + }; - /** - * Decodes a GetPrefundedSpecializedBalanceResponseV0 message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.balance = reader.uint64(); - break; - case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); - break; - case 3: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Creates a plain object from a Chain message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} message Chain + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Chain.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.catchingUp = false; + if (options.bytes === String) + object.latestBlockHash = ""; + else { + object.latestBlockHash = []; + if (options.bytes !== Array) + object.latestBlockHash = $util.newBuffer(object.latestBlockHash); + } + if (options.bytes === String) + object.latestAppHash = ""; + else { + object.latestAppHash = []; + if (options.bytes !== Array) + object.latestAppHash = $util.newBuffer(object.latestAppHash); + } + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.latestBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.latestBlockHeight = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.earliestBlockHash = ""; + else { + object.earliestBlockHash = []; + if (options.bytes !== Array) + object.earliestBlockHash = $util.newBuffer(object.earliestBlockHash); + } + if (options.bytes === String) + object.earliestAppHash = ""; + else { + object.earliestAppHash = []; + if (options.bytes !== Array) + object.earliestAppHash = $util.newBuffer(object.earliestAppHash); + } + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.earliestBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.earliestBlockHeight = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.maxPeerBlockHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.maxPeerBlockHeight = options.longs === String ? "0" : 0; + object.coreChainLockedHeight = 0; } - } - return message; - }; + if (message.catchingUp != null && message.hasOwnProperty("catchingUp")) + object.catchingUp = message.catchingUp; + if (message.latestBlockHash != null && message.hasOwnProperty("latestBlockHash")) + object.latestBlockHash = options.bytes === String ? $util.base64.encode(message.latestBlockHash, 0, message.latestBlockHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.latestBlockHash) : message.latestBlockHash; + if (message.latestAppHash != null && message.hasOwnProperty("latestAppHash")) + object.latestAppHash = options.bytes === String ? $util.base64.encode(message.latestAppHash, 0, message.latestAppHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.latestAppHash) : message.latestAppHash; + if (message.latestBlockHeight != null && message.hasOwnProperty("latestBlockHeight")) + if (typeof message.latestBlockHeight === "number") + object.latestBlockHeight = options.longs === String ? String(message.latestBlockHeight) : message.latestBlockHeight; + else + object.latestBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.latestBlockHeight) : options.longs === Number ? new $util.LongBits(message.latestBlockHeight.low >>> 0, message.latestBlockHeight.high >>> 0).toNumber(true) : message.latestBlockHeight; + if (message.earliestBlockHash != null && message.hasOwnProperty("earliestBlockHash")) + object.earliestBlockHash = options.bytes === String ? $util.base64.encode(message.earliestBlockHash, 0, message.earliestBlockHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.earliestBlockHash) : message.earliestBlockHash; + if (message.earliestAppHash != null && message.hasOwnProperty("earliestAppHash")) + object.earliestAppHash = options.bytes === String ? $util.base64.encode(message.earliestAppHash, 0, message.earliestAppHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.earliestAppHash) : message.earliestAppHash; + if (message.earliestBlockHeight != null && message.hasOwnProperty("earliestBlockHeight")) + if (typeof message.earliestBlockHeight === "number") + object.earliestBlockHeight = options.longs === String ? String(message.earliestBlockHeight) : message.earliestBlockHeight; + else + object.earliestBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.earliestBlockHeight) : options.longs === Number ? new $util.LongBits(message.earliestBlockHeight.low >>> 0, message.earliestBlockHeight.high >>> 0).toNumber(true) : message.earliestBlockHeight; + if (message.maxPeerBlockHeight != null && message.hasOwnProperty("maxPeerBlockHeight")) + if (typeof message.maxPeerBlockHeight === "number") + object.maxPeerBlockHeight = options.longs === String ? String(message.maxPeerBlockHeight) : message.maxPeerBlockHeight; + else + object.maxPeerBlockHeight = options.longs === String ? $util.Long.prototype.toString.call(message.maxPeerBlockHeight) : options.longs === Number ? new $util.LongBits(message.maxPeerBlockHeight.low >>> 0, message.maxPeerBlockHeight.high >>> 0).toNumber(true) : message.maxPeerBlockHeight; + if (message.coreChainLockedHeight != null && message.hasOwnProperty("coreChainLockedHeight")) + object.coreChainLockedHeight = message.coreChainLockedHeight; + return object; + }; - /** - * Decodes a GetPrefundedSpecializedBalanceResponseV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPrefundedSpecializedBalanceResponseV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Converts this Chain to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain + * @instance + * @returns {Object.} JSON object + */ + Chain.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Verifies a GetPrefundedSpecializedBalanceResponseV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetPrefundedSpecializedBalanceResponseV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.balance != null && message.hasOwnProperty("balance")) { - properties.result = 1; - if (!$util.isInteger(message.balance) && !(message.balance && $util.isInteger(message.balance.low) && $util.isInteger(message.balance.high))) - return "balance: integer|Long expected"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } - return null; - }; + return Chain; + })(); - /** - * Creates a GetPrefundedSpecializedBalanceResponseV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} GetPrefundedSpecializedBalanceResponseV0 - */ - GetPrefundedSpecializedBalanceResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0(); - if (object.balance != null) - if ($util.Long) - (message.balance = $util.Long.fromValue(object.balance)).unsigned = true; - else if (typeof object.balance === "string") - message.balance = parseInt(object.balance, 10); - else if (typeof object.balance === "number") - message.balance = object.balance; - else if (typeof object.balance === "object") - message.balance = new $util.LongBits(object.balance.low >>> 0, object.balance.high >>> 0).toNumber(true); - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; - }; + GetStatusResponseV0.Network = (function() { - /** - * Creates a plain object from a GetPrefundedSpecializedBalanceResponseV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @static - * @param {org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message GetPrefundedSpecializedBalanceResponseV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetPrefundedSpecializedBalanceResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.balance != null && message.hasOwnProperty("balance")) { - if (typeof message.balance === "number") - object.balance = options.longs === String ? String(message.balance) : message.balance; - else - object.balance = options.longs === String ? $util.Long.prototype.toString.call(message.balance) : options.longs === Number ? new $util.LongBits(message.balance.low >>> 0, message.balance.high >>> 0).toNumber(true) : message.balance; - if (options.oneofs) - object.result = "balance"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + /** + * Properties of a Network. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface INetwork + * @property {string|null} [chainId] Network chainId + * @property {number|null} [peersCount] Network peersCount + * @property {boolean|null} [listening] Network listening + */ + + /** + * Constructs a new Network. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a Network. + * @implements INetwork + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork=} [properties] Properties to set + */ + function Network(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]]; } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; - }; - /** - * Converts this GetPrefundedSpecializedBalanceResponseV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 - * @instance - * @returns {Object.} JSON object - */ - GetPrefundedSpecializedBalanceResponseV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Network chainId. + * @member {string} chainId + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @instance + */ + Network.prototype.chainId = ""; - return GetPrefundedSpecializedBalanceResponseV0; - })(); + /** + * Network peersCount. + * @member {number} peersCount + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @instance + */ + Network.prototype.peersCount = 0; - return GetPrefundedSpecializedBalanceResponse; - })(); + /** + * Network listening. + * @member {boolean} listening + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @instance + */ + Network.prototype.listening = false; - v0.GetTotalCreditsInPlatformRequest = (function() { + /** + * Creates a new Network instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} Network instance + */ + Network.create = function create(properties) { + return new Network(properties); + }; - /** - * Properties of a GetTotalCreditsInPlatformRequest. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetTotalCreditsInPlatformRequest - * @property {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0|null} [v0] GetTotalCreditsInPlatformRequest v0 - */ + /** + * Encodes the specified Network message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork} message Network message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Network.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.chainId != null && Object.hasOwnProperty.call(message, "chainId")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.chainId); + if (message.peersCount != null && Object.hasOwnProperty.call(message, "peersCount")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.peersCount); + if (message.listening != null && Object.hasOwnProperty.call(message, "listening")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.listening); + return writer; + }; - /** - * Constructs a new GetTotalCreditsInPlatformRequest. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetTotalCreditsInPlatformRequest. - * @implements IGetTotalCreditsInPlatformRequest - * @constructor - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest=} [properties] Properties to set - */ - function GetTotalCreditsInPlatformRequest(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]]; - } + /** + * Encodes the specified Network message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.INetwork} message Network message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Network.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * GetTotalCreditsInPlatformRequest v0. - * @member {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @instance - */ - GetTotalCreditsInPlatformRequest.prototype.v0 = null; + /** + * Decodes a Network message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @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.GetStatusResponse.GetStatusResponseV0.Network} Network + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Network.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.GetStatusResponse.GetStatusResponseV0.Network(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.chainId = reader.string(); + break; + case 2: + message.peersCount = reader.uint32(); + break; + case 3: + message.listening = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Decodes a Network message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} Network + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Network.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * GetTotalCreditsInPlatformRequest version. - * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @instance - */ - Object.defineProperty(GetTotalCreditsInPlatformRequest.prototype, "version", { - get: $util.oneOfGetter($oneOfFields = ["v0"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Verifies a Network message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Network.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.chainId != null && message.hasOwnProperty("chainId")) + if (!$util.isString(message.chainId)) + return "chainId: string expected"; + if (message.peersCount != null && message.hasOwnProperty("peersCount")) + if (!$util.isInteger(message.peersCount)) + return "peersCount: integer expected"; + if (message.listening != null && message.hasOwnProperty("listening")) + if (typeof message.listening !== "boolean") + return "listening: boolean expected"; + return null; + }; - /** - * Creates a new GetTotalCreditsInPlatformRequest instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest instance - */ - GetTotalCreditsInPlatformRequest.create = function create(properties) { - return new GetTotalCreditsInPlatformRequest(properties); - }; + /** + * Creates a Network message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} Network + */ + Network.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network(); + if (object.chainId != null) + message.chainId = String(object.chainId); + if (object.peersCount != null) + message.peersCount = object.peersCount >>> 0; + if (object.listening != null) + message.listening = Boolean(object.listening); + return message; + }; - /** - * Encodes the specified GetTotalCreditsInPlatformRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Creates a plain object from a Network message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} message Network + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Network.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.chainId = ""; + object.peersCount = 0; + object.listening = false; + } + if (message.chainId != null && message.hasOwnProperty("chainId")) + object.chainId = message.chainId; + if (message.peersCount != null && message.hasOwnProperty("peersCount")) + object.peersCount = message.peersCount; + if (message.listening != null && message.hasOwnProperty("listening")) + object.listening = message.listening; + return object; + }; - /** - * Encodes the specified GetTotalCreditsInPlatformRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetTotalCreditsInPlatformRequest.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Converts this Network to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network + * @instance + * @returns {Object.} JSON object + */ + Network.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Decodes a GetTotalCreditsInPlatformRequest message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @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.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return Network; + })(); - /** - * Decodes a GetTotalCreditsInPlatformRequest message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetTotalCreditsInPlatformRequest.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + GetStatusResponseV0.StateSync = (function() { + + /** + * Properties of a StateSync. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @interface IStateSync + * @property {number|Long|null} [totalSyncedTime] StateSync totalSyncedTime + * @property {number|Long|null} [remainingTime] StateSync remainingTime + * @property {number|null} [totalSnapshots] StateSync totalSnapshots + * @property {number|Long|null} [chunkProcessAvgTime] StateSync chunkProcessAvgTime + * @property {number|Long|null} [snapshotHeight] StateSync snapshotHeight + * @property {number|Long|null} [snapshotChunksCount] StateSync snapshotChunksCount + * @property {number|Long|null} [backfilledBlocks] StateSync backfilledBlocks + * @property {number|Long|null} [backfillBlocksTotal] StateSync backfillBlocksTotal + */ - /** - * Verifies a GetTotalCreditsInPlatformRequest message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify(message.v0); - if (error) - return "v0." + error; + /** + * Constructs a new StateSync. + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 + * @classdesc Represents a StateSync. + * @implements IStateSync + * @constructor + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync=} [properties] Properties to set + */ + function StateSync(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]]; } - } - return null; - }; - /** - * Creates a GetTotalCreditsInPlatformRequest message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} GetTotalCreditsInPlatformRequest - */ - GetTotalCreditsInPlatformRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest(); - if (object.v0 != null) { - if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.fromObject(object.v0); - } - return message; - }; + /** + * StateSync totalSyncedTime. + * @member {number|Long} totalSyncedTime + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.totalSyncedTime = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Creates a plain object from a GetTotalCreditsInPlatformRequest message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} message GetTotalCreditsInPlatformRequest - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(message.v0, options); - if (options.oneofs) - object.version = "v0"; - } - return object; - }; + /** + * StateSync remainingTime. + * @member {number|Long} remainingTime + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.remainingTime = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Converts this GetTotalCreditsInPlatformRequest to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @instance - * @returns {Object.} JSON object - */ - GetTotalCreditsInPlatformRequest.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * StateSync totalSnapshots. + * @member {number} totalSnapshots + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.totalSnapshots = 0; - GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 = (function() { + /** + * StateSync chunkProcessAvgTime. + * @member {number|Long} chunkProcessAvgTime + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.chunkProcessAvgTime = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Properties of a GetTotalCreditsInPlatformRequestV0. - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @interface IGetTotalCreditsInPlatformRequestV0 - * @property {boolean|null} [prove] GetTotalCreditsInPlatformRequestV0 prove - */ + /** + * StateSync snapshotHeight. + * @member {number|Long} snapshotHeight + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.snapshotHeight = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Constructs a new GetTotalCreditsInPlatformRequestV0. - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest - * @classdesc Represents a GetTotalCreditsInPlatformRequestV0. - * @implements IGetTotalCreditsInPlatformRequestV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0=} [properties] Properties to set - */ - function GetTotalCreditsInPlatformRequestV0(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]]; - } + /** + * StateSync snapshotChunksCount. + * @member {number|Long} snapshotChunksCount + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.snapshotChunksCount = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * GetTotalCreditsInPlatformRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @instance - */ - GetTotalCreditsInPlatformRequestV0.prototype.prove = false; + /** + * StateSync backfilledBlocks. + * @member {number|Long} backfilledBlocks + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.backfilledBlocks = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Creates a new GetTotalCreditsInPlatformRequestV0 instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 instance - */ - GetTotalCreditsInPlatformRequestV0.create = function create(properties) { - return new GetTotalCreditsInPlatformRequestV0(properties); - }; + /** + * StateSync backfillBlocksTotal. + * @member {number|Long} backfillBlocksTotal + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + */ + StateSync.prototype.backfillBlocksTotal = $util.Long ? $util.Long.fromBits(0,0,true) : 0; - /** - * Encodes the specified GetTotalCreditsInPlatformRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetTotalCreditsInPlatformRequestV0.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 1, wireType 0 =*/8).bool(message.prove); - return writer; - }; + /** + * Creates a new StateSync instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} StateSync instance + */ + StateSync.create = function create(properties) { + return new StateSync(properties); + }; - /** - * Encodes the specified GetTotalCreditsInPlatformRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.IGetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetTotalCreditsInPlatformRequestV0.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified StateSync message. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync} message StateSync message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateSync.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.totalSyncedTime != null && Object.hasOwnProperty.call(message, "totalSyncedTime")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.totalSyncedTime); + if (message.remainingTime != null && Object.hasOwnProperty.call(message, "remainingTime")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.remainingTime); + if (message.totalSnapshots != null && Object.hasOwnProperty.call(message, "totalSnapshots")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.totalSnapshots); + if (message.chunkProcessAvgTime != null && Object.hasOwnProperty.call(message, "chunkProcessAvgTime")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.chunkProcessAvgTime); + if (message.snapshotHeight != null && Object.hasOwnProperty.call(message, "snapshotHeight")) + writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.snapshotHeight); + if (message.snapshotChunksCount != null && Object.hasOwnProperty.call(message, "snapshotChunksCount")) + writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.snapshotChunksCount); + if (message.backfilledBlocks != null && Object.hasOwnProperty.call(message, "backfilledBlocks")) + writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.backfilledBlocks); + if (message.backfillBlocksTotal != null && Object.hasOwnProperty.call(message, "backfillBlocksTotal")) + writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.backfillBlocksTotal); + return writer; + }; - /** - * Decodes a GetTotalCreditsInPlatformRequestV0 message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.prove = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Encodes the specified StateSync message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.IStateSync} message StateSync message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StateSync.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StateSync message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @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.GetStatusResponse.GetStatusResponseV0.StateSync} StateSync + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateSync.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.GetStatusResponse.GetStatusResponseV0.StateSync(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalSyncedTime = reader.uint64(); + break; + case 2: + message.remainingTime = reader.uint64(); + break; + case 3: + message.totalSnapshots = reader.uint32(); + break; + case 4: + message.chunkProcessAvgTime = reader.uint64(); + break; + case 5: + message.snapshotHeight = reader.uint64(); + break; + case 6: + message.snapshotChunksCount = reader.uint64(); + break; + case 7: + message.backfilledBlocks = reader.uint64(); + break; + case 8: + message.backfillBlocksTotal = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } } - } - return message; - }; + return message; + }; - /** - * Decodes a GetTotalCreditsInPlatformRequestV0 message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetTotalCreditsInPlatformRequestV0.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a StateSync message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} StateSync + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StateSync.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a GetTotalCreditsInPlatformRequestV0 message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetTotalCreditsInPlatformRequestV0.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; - return null; - }; + /** + * Verifies a StateSync message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StateSync.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.totalSyncedTime != null && message.hasOwnProperty("totalSyncedTime")) + if (!$util.isInteger(message.totalSyncedTime) && !(message.totalSyncedTime && $util.isInteger(message.totalSyncedTime.low) && $util.isInteger(message.totalSyncedTime.high))) + return "totalSyncedTime: integer|Long expected"; + if (message.remainingTime != null && message.hasOwnProperty("remainingTime")) + if (!$util.isInteger(message.remainingTime) && !(message.remainingTime && $util.isInteger(message.remainingTime.low) && $util.isInteger(message.remainingTime.high))) + return "remainingTime: integer|Long expected"; + if (message.totalSnapshots != null && message.hasOwnProperty("totalSnapshots")) + if (!$util.isInteger(message.totalSnapshots)) + return "totalSnapshots: integer expected"; + if (message.chunkProcessAvgTime != null && message.hasOwnProperty("chunkProcessAvgTime")) + if (!$util.isInteger(message.chunkProcessAvgTime) && !(message.chunkProcessAvgTime && $util.isInteger(message.chunkProcessAvgTime.low) && $util.isInteger(message.chunkProcessAvgTime.high))) + return "chunkProcessAvgTime: integer|Long expected"; + if (message.snapshotHeight != null && message.hasOwnProperty("snapshotHeight")) + if (!$util.isInteger(message.snapshotHeight) && !(message.snapshotHeight && $util.isInteger(message.snapshotHeight.low) && $util.isInteger(message.snapshotHeight.high))) + return "snapshotHeight: integer|Long expected"; + if (message.snapshotChunksCount != null && message.hasOwnProperty("snapshotChunksCount")) + if (!$util.isInteger(message.snapshotChunksCount) && !(message.snapshotChunksCount && $util.isInteger(message.snapshotChunksCount.low) && $util.isInteger(message.snapshotChunksCount.high))) + return "snapshotChunksCount: integer|Long expected"; + if (message.backfilledBlocks != null && message.hasOwnProperty("backfilledBlocks")) + if (!$util.isInteger(message.backfilledBlocks) && !(message.backfilledBlocks && $util.isInteger(message.backfilledBlocks.low) && $util.isInteger(message.backfilledBlocks.high))) + return "backfilledBlocks: integer|Long expected"; + if (message.backfillBlocksTotal != null && message.hasOwnProperty("backfillBlocksTotal")) + if (!$util.isInteger(message.backfillBlocksTotal) && !(message.backfillBlocksTotal && $util.isInteger(message.backfillBlocksTotal.low) && $util.isInteger(message.backfillBlocksTotal.high))) + return "backfillBlocksTotal: integer|Long expected"; + return null; + }; - /** - * Creates a GetTotalCreditsInPlatformRequestV0 message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} GetTotalCreditsInPlatformRequestV0 - */ - GetTotalCreditsInPlatformRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0) + /** + * Creates a StateSync message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} StateSync + */ + StateSync.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync(); + if (object.totalSyncedTime != null) + if ($util.Long) + (message.totalSyncedTime = $util.Long.fromValue(object.totalSyncedTime)).unsigned = true; + else if (typeof object.totalSyncedTime === "string") + message.totalSyncedTime = parseInt(object.totalSyncedTime, 10); + else if (typeof object.totalSyncedTime === "number") + message.totalSyncedTime = object.totalSyncedTime; + else if (typeof object.totalSyncedTime === "object") + message.totalSyncedTime = new $util.LongBits(object.totalSyncedTime.low >>> 0, object.totalSyncedTime.high >>> 0).toNumber(true); + if (object.remainingTime != null) + if ($util.Long) + (message.remainingTime = $util.Long.fromValue(object.remainingTime)).unsigned = true; + else if (typeof object.remainingTime === "string") + message.remainingTime = parseInt(object.remainingTime, 10); + else if (typeof object.remainingTime === "number") + message.remainingTime = object.remainingTime; + else if (typeof object.remainingTime === "object") + message.remainingTime = new $util.LongBits(object.remainingTime.low >>> 0, object.remainingTime.high >>> 0).toNumber(true); + if (object.totalSnapshots != null) + message.totalSnapshots = object.totalSnapshots >>> 0; + if (object.chunkProcessAvgTime != null) + if ($util.Long) + (message.chunkProcessAvgTime = $util.Long.fromValue(object.chunkProcessAvgTime)).unsigned = true; + else if (typeof object.chunkProcessAvgTime === "string") + message.chunkProcessAvgTime = parseInt(object.chunkProcessAvgTime, 10); + else if (typeof object.chunkProcessAvgTime === "number") + message.chunkProcessAvgTime = object.chunkProcessAvgTime; + else if (typeof object.chunkProcessAvgTime === "object") + message.chunkProcessAvgTime = new $util.LongBits(object.chunkProcessAvgTime.low >>> 0, object.chunkProcessAvgTime.high >>> 0).toNumber(true); + if (object.snapshotHeight != null) + if ($util.Long) + (message.snapshotHeight = $util.Long.fromValue(object.snapshotHeight)).unsigned = true; + else if (typeof object.snapshotHeight === "string") + message.snapshotHeight = parseInt(object.snapshotHeight, 10); + else if (typeof object.snapshotHeight === "number") + message.snapshotHeight = object.snapshotHeight; + else if (typeof object.snapshotHeight === "object") + message.snapshotHeight = new $util.LongBits(object.snapshotHeight.low >>> 0, object.snapshotHeight.high >>> 0).toNumber(true); + if (object.snapshotChunksCount != null) + if ($util.Long) + (message.snapshotChunksCount = $util.Long.fromValue(object.snapshotChunksCount)).unsigned = true; + else if (typeof object.snapshotChunksCount === "string") + message.snapshotChunksCount = parseInt(object.snapshotChunksCount, 10); + else if (typeof object.snapshotChunksCount === "number") + message.snapshotChunksCount = object.snapshotChunksCount; + else if (typeof object.snapshotChunksCount === "object") + message.snapshotChunksCount = new $util.LongBits(object.snapshotChunksCount.low >>> 0, object.snapshotChunksCount.high >>> 0).toNumber(true); + if (object.backfilledBlocks != null) + if ($util.Long) + (message.backfilledBlocks = $util.Long.fromValue(object.backfilledBlocks)).unsigned = true; + else if (typeof object.backfilledBlocks === "string") + message.backfilledBlocks = parseInt(object.backfilledBlocks, 10); + else if (typeof object.backfilledBlocks === "number") + message.backfilledBlocks = object.backfilledBlocks; + else if (typeof object.backfilledBlocks === "object") + message.backfilledBlocks = new $util.LongBits(object.backfilledBlocks.low >>> 0, object.backfilledBlocks.high >>> 0).toNumber(true); + if (object.backfillBlocksTotal != null) + if ($util.Long) + (message.backfillBlocksTotal = $util.Long.fromValue(object.backfillBlocksTotal)).unsigned = true; + else if (typeof object.backfillBlocksTotal === "string") + message.backfillBlocksTotal = parseInt(object.backfillBlocksTotal, 10); + else if (typeof object.backfillBlocksTotal === "number") + message.backfillBlocksTotal = object.backfillBlocksTotal; + else if (typeof object.backfillBlocksTotal === "object") + message.backfillBlocksTotal = new $util.LongBits(object.backfillBlocksTotal.low >>> 0, object.backfillBlocksTotal.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a StateSync message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @static + * @param {org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} message StateSync + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StateSync.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.totalSyncedTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.totalSyncedTime = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.remainingTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.remainingTime = options.longs === String ? "0" : 0; + object.totalSnapshots = 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.chunkProcessAvgTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.chunkProcessAvgTime = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.snapshotHeight = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.snapshotHeight = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.snapshotChunksCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.snapshotChunksCount = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.backfilledBlocks = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.backfilledBlocks = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.backfillBlocksTotal = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.backfillBlocksTotal = options.longs === String ? "0" : 0; + } + if (message.totalSyncedTime != null && message.hasOwnProperty("totalSyncedTime")) + if (typeof message.totalSyncedTime === "number") + object.totalSyncedTime = options.longs === String ? String(message.totalSyncedTime) : message.totalSyncedTime; + else + object.totalSyncedTime = options.longs === String ? $util.Long.prototype.toString.call(message.totalSyncedTime) : options.longs === Number ? new $util.LongBits(message.totalSyncedTime.low >>> 0, message.totalSyncedTime.high >>> 0).toNumber(true) : message.totalSyncedTime; + if (message.remainingTime != null && message.hasOwnProperty("remainingTime")) + if (typeof message.remainingTime === "number") + object.remainingTime = options.longs === String ? String(message.remainingTime) : message.remainingTime; + else + object.remainingTime = options.longs === String ? $util.Long.prototype.toString.call(message.remainingTime) : options.longs === Number ? new $util.LongBits(message.remainingTime.low >>> 0, message.remainingTime.high >>> 0).toNumber(true) : message.remainingTime; + if (message.totalSnapshots != null && message.hasOwnProperty("totalSnapshots")) + object.totalSnapshots = message.totalSnapshots; + if (message.chunkProcessAvgTime != null && message.hasOwnProperty("chunkProcessAvgTime")) + if (typeof message.chunkProcessAvgTime === "number") + object.chunkProcessAvgTime = options.longs === String ? String(message.chunkProcessAvgTime) : message.chunkProcessAvgTime; + else + object.chunkProcessAvgTime = options.longs === String ? $util.Long.prototype.toString.call(message.chunkProcessAvgTime) : options.longs === Number ? new $util.LongBits(message.chunkProcessAvgTime.low >>> 0, message.chunkProcessAvgTime.high >>> 0).toNumber(true) : message.chunkProcessAvgTime; + if (message.snapshotHeight != null && message.hasOwnProperty("snapshotHeight")) + if (typeof message.snapshotHeight === "number") + object.snapshotHeight = options.longs === String ? String(message.snapshotHeight) : message.snapshotHeight; + else + object.snapshotHeight = options.longs === String ? $util.Long.prototype.toString.call(message.snapshotHeight) : options.longs === Number ? new $util.LongBits(message.snapshotHeight.low >>> 0, message.snapshotHeight.high >>> 0).toNumber(true) : message.snapshotHeight; + if (message.snapshotChunksCount != null && message.hasOwnProperty("snapshotChunksCount")) + if (typeof message.snapshotChunksCount === "number") + object.snapshotChunksCount = options.longs === String ? String(message.snapshotChunksCount) : message.snapshotChunksCount; + else + object.snapshotChunksCount = options.longs === String ? $util.Long.prototype.toString.call(message.snapshotChunksCount) : options.longs === Number ? new $util.LongBits(message.snapshotChunksCount.low >>> 0, message.snapshotChunksCount.high >>> 0).toNumber(true) : message.snapshotChunksCount; + if (message.backfilledBlocks != null && message.hasOwnProperty("backfilledBlocks")) + if (typeof message.backfilledBlocks === "number") + object.backfilledBlocks = options.longs === String ? String(message.backfilledBlocks) : message.backfilledBlocks; + else + object.backfilledBlocks = options.longs === String ? $util.Long.prototype.toString.call(message.backfilledBlocks) : options.longs === Number ? new $util.LongBits(message.backfilledBlocks.low >>> 0, message.backfilledBlocks.high >>> 0).toNumber(true) : message.backfilledBlocks; + if (message.backfillBlocksTotal != null && message.hasOwnProperty("backfillBlocksTotal")) + if (typeof message.backfillBlocksTotal === "number") + object.backfillBlocksTotal = options.longs === String ? String(message.backfillBlocksTotal) : message.backfillBlocksTotal; + else + object.backfillBlocksTotal = options.longs === String ? $util.Long.prototype.toString.call(message.backfillBlocksTotal) : options.longs === Number ? new $util.LongBits(message.backfillBlocksTotal.low >>> 0, message.backfillBlocksTotal.high >>> 0).toNumber(true) : message.backfillBlocksTotal; return object; - var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0(); - if (object.prove != null) - message.prove = Boolean(object.prove); - return message; - }; + }; - /** - * Creates a plain object from a GetTotalCreditsInPlatformRequestV0 message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message GetTotalCreditsInPlatformRequestV0 - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetTotalCreditsInPlatformRequestV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.prove = false; - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; - return object; - }; + /** + * Converts this StateSync to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync + * @instance + * @returns {Object.} JSON object + */ + StateSync.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetTotalCreditsInPlatformRequestV0 to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 - * @instance - * @returns {Object.} JSON object - */ - GetTotalCreditsInPlatformRequestV0.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return StateSync; + })(); - return GetTotalCreditsInPlatformRequestV0; + return GetStatusResponseV0; })(); - return GetTotalCreditsInPlatformRequest; + return GetStatusResponse; })(); - v0.GetTotalCreditsInPlatformResponse = (function() { + v0.GetCurrentQuorumsInfoRequest = (function() { /** - * Properties of a GetTotalCreditsInPlatformResponse. + * Properties of a GetCurrentQuorumsInfoRequest. * @memberof org.dash.platform.dapi.v0 - * @interface IGetTotalCreditsInPlatformResponse - * @property {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0|null} [v0] GetTotalCreditsInPlatformResponse v0 + * @interface IGetCurrentQuorumsInfoRequest + * @property {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0|null} [v0] GetCurrentQuorumsInfoRequest v0 */ /** - * Constructs a new GetTotalCreditsInPlatformResponse. + * Constructs a new GetCurrentQuorumsInfoRequest. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetTotalCreditsInPlatformResponse. - * @implements IGetTotalCreditsInPlatformResponse + * @classdesc Represents a GetCurrentQuorumsInfoRequest. + * @implements IGetCurrentQuorumsInfoRequest * @constructor - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest=} [properties] Properties to set */ - function GetTotalCreditsInPlatformResponse(properties) { + function GetCurrentQuorumsInfoRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36423,89 +45159,89 @@ $root.org = (function() { } /** - * GetTotalCreditsInPlatformResponse v0. - * @member {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * GetCurrentQuorumsInfoRequest v0. + * @member {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @instance */ - GetTotalCreditsInPlatformResponse.prototype.v0 = null; + GetCurrentQuorumsInfoRequest.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetTotalCreditsInPlatformResponse version. + * GetCurrentQuorumsInfoRequest version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @instance */ - Object.defineProperty(GetTotalCreditsInPlatformResponse.prototype, "version", { + Object.defineProperty(GetCurrentQuorumsInfoRequest.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetTotalCreditsInPlatformResponse instance using the specified properties. + * Creates a new GetCurrentQuorumsInfoRequest instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse instance + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} GetCurrentQuorumsInfoRequest instance */ - GetTotalCreditsInPlatformResponse.create = function create(properties) { - return new GetTotalCreditsInPlatformResponse(properties); + GetCurrentQuorumsInfoRequest.create = function create(properties) { + return new GetCurrentQuorumsInfoRequest(properties); }; /** - * Encodes the specified GetTotalCreditsInPlatformResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest} message GetCurrentQuorumsInfoRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetTotalCreditsInPlatformResponse.encode = function encode(message, writer) { + GetCurrentQuorumsInfoRequest.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetTotalCreditsInPlatformResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.IGetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoRequest} message GetCurrentQuorumsInfoRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetTotalCreditsInPlatformResponse.encodeDelimited = function encodeDelimited(message, writer) { + GetCurrentQuorumsInfoRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetTotalCreditsInPlatformResponse message from the specified reader or buffer. + * Decodes a GetCurrentQuorumsInfoRequest message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @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.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} GetCurrentQuorumsInfoRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetTotalCreditsInPlatformResponse.decode = function decode(reader, length) { + GetCurrentQuorumsInfoRequest.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.GetTotalCreditsInPlatformResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -36516,37 +45252,37 @@ $root.org = (function() { }; /** - * Decodes a GetTotalCreditsInPlatformResponse message from the specified reader or buffer, length delimited. + * Decodes a GetCurrentQuorumsInfoRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} GetCurrentQuorumsInfoRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetTotalCreditsInPlatformResponse.decodeDelimited = function decodeDelimited(reader) { + GetCurrentQuorumsInfoRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetTotalCreditsInPlatformResponse message. + * Verifies a GetCurrentQuorumsInfoRequest message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetTotalCreditsInPlatformResponse.verify = function verify(message) { + GetCurrentQuorumsInfoRequest.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.verify(message.v0); if (error) return "v0." + error; } @@ -36555,40 +45291,40 @@ $root.org = (function() { }; /** - * Creates a GetTotalCreditsInPlatformResponse message from a plain object. Also converts values to their respective internal types. + * Creates a GetCurrentQuorumsInfoRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} GetTotalCreditsInPlatformResponse + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} GetCurrentQuorumsInfoRequest */ - GetTotalCreditsInPlatformResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse) + GetCurrentQuorumsInfoRequest.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest) return object; - var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse(); + var message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetTotalCreditsInPlatformResponse message. Also converts values to other types if specified. + * Creates a plain object from a GetCurrentQuorumsInfoRequest message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message GetTotalCreditsInPlatformResponse + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} message GetCurrentQuorumsInfoRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetTotalCreditsInPlatformResponse.toObject = function toObject(message, options) { + GetCurrentQuorumsInfoRequest.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -36596,153 +45332,97 @@ $root.org = (function() { }; /** - * Converts this GetTotalCreditsInPlatformResponse to JSON. + * Converts this GetCurrentQuorumsInfoRequest to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest * @instance * @returns {Object.} JSON object */ - GetTotalCreditsInPlatformResponse.prototype.toJSON = function toJSON() { + GetCurrentQuorumsInfoRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 = (function() { - - /** - * Properties of a GetTotalCreditsInPlatformResponseV0. - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse - * @interface IGetTotalCreditsInPlatformResponseV0 - * @property {number|Long|null} [credits] GetTotalCreditsInPlatformResponseV0 credits - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetTotalCreditsInPlatformResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetTotalCreditsInPlatformResponseV0 metadata - */ - - /** - * Constructs a new GetTotalCreditsInPlatformResponseV0. - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse - * @classdesc Represents a GetTotalCreditsInPlatformResponseV0. - * @implements IGetTotalCreditsInPlatformResponseV0 - * @constructor - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0=} [properties] Properties to set - */ - function GetTotalCreditsInPlatformResponseV0(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]]; - } - - /** - * GetTotalCreditsInPlatformResponseV0 credits. - * @member {number|Long} credits - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 - * @instance - */ - GetTotalCreditsInPlatformResponseV0.prototype.credits = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + }; - /** - * GetTotalCreditsInPlatformResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 - * @instance - */ - GetTotalCreditsInPlatformResponseV0.prototype.proof = null; + GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 = (function() { /** - * GetTotalCreditsInPlatformResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 - * @instance + * Properties of a GetCurrentQuorumsInfoRequestV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest + * @interface IGetCurrentQuorumsInfoRequestV0 */ - GetTotalCreditsInPlatformResponseV0.prototype.metadata = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; /** - * GetTotalCreditsInPlatformResponseV0 result. - * @member {"credits"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 - * @instance + * Constructs a new GetCurrentQuorumsInfoRequestV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest + * @classdesc Represents a GetCurrentQuorumsInfoRequestV0. + * @implements IGetCurrentQuorumsInfoRequestV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0=} [properties] Properties to set */ - Object.defineProperty(GetTotalCreditsInPlatformResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["credits", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + function GetCurrentQuorumsInfoRequestV0(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 GetTotalCreditsInPlatformResponseV0 instance using the specified properties. + * Creates a new GetCurrentQuorumsInfoRequestV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} GetCurrentQuorumsInfoRequestV0 instance */ - GetTotalCreditsInPlatformResponseV0.create = function create(properties) { - return new GetTotalCreditsInPlatformResponseV0(properties); + GetCurrentQuorumsInfoRequestV0.create = function create(properties) { + return new GetCurrentQuorumsInfoRequestV0(properties); }; /** - * Encodes the specified GetTotalCreditsInPlatformResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0} message GetCurrentQuorumsInfoRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetTotalCreditsInPlatformResponseV0.encode = function encode(message, writer) { + GetCurrentQuorumsInfoRequestV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.credits != null && Object.hasOwnProperty.call(message, "credits")) - writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.credits); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetTotalCreditsInPlatformResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.IGetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.IGetCurrentQuorumsInfoRequestV0} message GetCurrentQuorumsInfoRequestV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetTotalCreditsInPlatformResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetCurrentQuorumsInfoRequestV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetTotalCreditsInPlatformResponseV0 message from the specified reader or buffer. + * Decodes a GetCurrentQuorumsInfoRequestV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} GetCurrentQuorumsInfoRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetTotalCreditsInPlatformResponseV0.decode = function decode(reader, length) { + GetCurrentQuorumsInfoRequestV0.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.credits = reader.uint64(); - break; - case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); - break; - case 3: - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -36752,158 +45432,97 @@ $root.org = (function() { }; /** - * Decodes a GetTotalCreditsInPlatformResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetCurrentQuorumsInfoRequestV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} GetCurrentQuorumsInfoRequestV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetTotalCreditsInPlatformResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetCurrentQuorumsInfoRequestV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetTotalCreditsInPlatformResponseV0 message. + * Verifies a GetCurrentQuorumsInfoRequestV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetTotalCreditsInPlatformResponseV0.verify = function verify(message) { + GetCurrentQuorumsInfoRequestV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.credits != null && message.hasOwnProperty("credits")) { - properties.result = 1; - if (!$util.isInteger(message.credits) && !(message.credits && $util.isInteger(message.credits.low) && $util.isInteger(message.credits.high))) - return "credits: integer|Long expected"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); - if (error) - return "proof." + error; - } - } - if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); - if (error) - return "metadata." + error; - } return null; }; /** - * Creates a GetTotalCreditsInPlatformResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetCurrentQuorumsInfoRequestV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} GetTotalCreditsInPlatformResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} GetCurrentQuorumsInfoRequestV0 */ - GetTotalCreditsInPlatformResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0) + GetCurrentQuorumsInfoRequestV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0(); - if (object.credits != null) - if ($util.Long) - (message.credits = $util.Long.fromValue(object.credits)).unsigned = true; - else if (typeof object.credits === "string") - message.credits = parseInt(object.credits, 10); - else if (typeof object.credits === "number") - message.credits = object.credits; - else if (typeof object.credits === "object") - message.credits = new $util.LongBits(object.credits.low >>> 0, object.credits.high >>> 0).toNumber(true); - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); - } - if (object.metadata != null) { - if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.metadata: object expected"); - message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); - } - return message; + return new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0(); }; /** - * Creates a plain object from a GetTotalCreditsInPlatformResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetCurrentQuorumsInfoRequestV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @static - * @param {org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message GetTotalCreditsInPlatformResponseV0 + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} message GetCurrentQuorumsInfoRequestV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetTotalCreditsInPlatformResponseV0.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.metadata = null; - if (message.credits != null && message.hasOwnProperty("credits")) { - if (typeof message.credits === "number") - object.credits = options.longs === String ? String(message.credits) : message.credits; - else - object.credits = options.longs === String ? $util.Long.prototype.toString.call(message.credits) : options.longs === Number ? new $util.LongBits(message.credits.low >>> 0, message.credits.high >>> 0).toNumber(true) : message.credits; - if (options.oneofs) - object.result = "credits"; - } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; - } - if (message.metadata != null && message.hasOwnProperty("metadata")) - object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); - return object; + GetCurrentQuorumsInfoRequestV0.toObject = function toObject() { + return {}; }; /** - * Converts this GetTotalCreditsInPlatformResponseV0 to JSON. + * Converts this GetCurrentQuorumsInfoRequestV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 * @instance * @returns {Object.} JSON object */ - GetTotalCreditsInPlatformResponseV0.prototype.toJSON = function toJSON() { + GetCurrentQuorumsInfoRequestV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetTotalCreditsInPlatformResponseV0; + return GetCurrentQuorumsInfoRequestV0; })(); - return GetTotalCreditsInPlatformResponse; + return GetCurrentQuorumsInfoRequest; })(); - v0.GetPathElementsRequest = (function() { + v0.GetCurrentQuorumsInfoResponse = (function() { /** - * Properties of a GetPathElementsRequest. + * Properties of a GetCurrentQuorumsInfoResponse. * @memberof org.dash.platform.dapi.v0 - * @interface IGetPathElementsRequest - * @property {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0|null} [v0] GetPathElementsRequest v0 + * @interface IGetCurrentQuorumsInfoResponse + * @property {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0|null} [v0] GetCurrentQuorumsInfoResponse v0 */ /** - * Constructs a new GetPathElementsRequest. + * Constructs a new GetCurrentQuorumsInfoResponse. * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetPathElementsRequest. - * @implements IGetPathElementsRequest + * @classdesc Represents a GetCurrentQuorumsInfoResponse. + * @implements IGetCurrentQuorumsInfoResponse * @constructor - * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoResponse=} [properties] Properties to set */ - function GetPathElementsRequest(properties) { + function GetCurrentQuorumsInfoResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36911,89 +45530,89 @@ $root.org = (function() { } /** - * GetPathElementsRequest v0. - * @member {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * GetCurrentQuorumsInfoResponse v0. + * @member {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0|null|undefined} v0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @instance */ - GetPathElementsRequest.prototype.v0 = null; + GetCurrentQuorumsInfoResponse.prototype.v0 = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; /** - * GetPathElementsRequest version. + * GetCurrentQuorumsInfoResponse version. * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @instance */ - Object.defineProperty(GetPathElementsRequest.prototype, "version", { + Object.defineProperty(GetCurrentQuorumsInfoResponse.prototype, "version", { get: $util.oneOfGetter($oneOfFields = ["v0"]), set: $util.oneOfSetter($oneOfFields) }); /** - * Creates a new GetPathElementsRequest instance using the specified properties. + * Creates a new GetCurrentQuorumsInfoResponse instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest instance + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoResponse=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} GetCurrentQuorumsInfoResponse instance */ - GetPathElementsRequest.create = function create(properties) { - return new GetPathElementsRequest(properties); + GetCurrentQuorumsInfoResponse.create = function create(properties) { + return new GetCurrentQuorumsInfoResponse(properties); }; /** - * Encodes the specified GetPathElementsRequest message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest} message GetPathElementsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoResponse} message GetCurrentQuorumsInfoResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsRequest.encode = function encode(message, writer) { + GetCurrentQuorumsInfoResponse.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.GetPathElementsRequest.GetPathElementsRequestV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetPathElementsRequest message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsRequest} message GetPathElementsRequest message or plain object to encode + * @param {org.dash.platform.dapi.v0.IGetCurrentQuorumsInfoResponse} message GetCurrentQuorumsInfoResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsRequest.encodeDelimited = function encodeDelimited(message, writer) { + GetCurrentQuorumsInfoResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetPathElementsRequest message from the specified reader or buffer. + * Decodes a GetCurrentQuorumsInfoResponse message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @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.GetPathElementsRequest} GetPathElementsRequest + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} GetCurrentQuorumsInfoResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsRequest.decode = function decode(reader, length) { + GetCurrentQuorumsInfoResponse.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.GetPathElementsRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.decode(reader, reader.uint32()); + message.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -37004,37 +45623,37 @@ $root.org = (function() { }; /** - * Decodes a GetPathElementsRequest message from the specified reader or buffer, length delimited. + * Decodes a GetCurrentQuorumsInfoResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} GetCurrentQuorumsInfoResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsRequest.decodeDelimited = function decodeDelimited(reader) { + GetCurrentQuorumsInfoResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetPathElementsRequest message. + * Verifies a GetCurrentQuorumsInfoResponse message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPathElementsRequest.verify = function verify(message) { + GetCurrentQuorumsInfoResponse.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.GetPathElementsRequest.GetPathElementsRequestV0.verify(message.v0); + var error = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.verify(message.v0); if (error) return "v0." + error; } @@ -37043,40 +45662,40 @@ $root.org = (function() { }; /** - * Creates a GetPathElementsRequest message from a plain object. Also converts values to their respective internal types. + * Creates a GetCurrentQuorumsInfoResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest} GetPathElementsRequest + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} GetCurrentQuorumsInfoResponse */ - GetPathElementsRequest.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsRequest) + GetCurrentQuorumsInfoResponse.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse) return object; - var message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest(); + var message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse(); if (object.v0 != null) { if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.fromObject(object.v0); + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.v0: object expected"); + message.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.fromObject(object.v0); } return message; }; /** - * Creates a plain object from a GetPathElementsRequest message. Also converts values to other types if specified. + * Creates a plain object from a GetCurrentQuorumsInfoResponse message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest} message GetPathElementsRequest + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} message GetCurrentQuorumsInfoResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetPathElementsRequest.toObject = function toObject(message, options) { + GetCurrentQuorumsInfoResponse.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.GetPathElementsRequest.GetPathElementsRequestV0.toObject(message.v0, options); + object.v0 = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject(message.v0, options); if (options.oneofs) object.version = "v0"; } @@ -37084,38 +45703,36 @@ $root.org = (function() { }; /** - * Converts this GetPathElementsRequest to JSON. + * Converts this GetCurrentQuorumsInfoResponse to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse * @instance * @returns {Object.} JSON object */ - GetPathElementsRequest.prototype.toJSON = function toJSON() { + GetCurrentQuorumsInfoResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetPathElementsRequest.GetPathElementsRequestV0 = (function() { + GetCurrentQuorumsInfoResponse.ValidatorV0 = (function() { /** - * Properties of a GetPathElementsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest - * @interface IGetPathElementsRequestV0 - * @property {Array.|null} [path] GetPathElementsRequestV0 path - * @property {Array.|null} [keys] GetPathElementsRequestV0 keys - * @property {boolean|null} [prove] GetPathElementsRequestV0 prove + * Properties of a ValidatorV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @interface IValidatorV0 + * @property {Uint8Array|null} [proTxHash] ValidatorV0 proTxHash + * @property {string|null} [nodeIp] ValidatorV0 nodeIp + * @property {boolean|null} [isBanned] ValidatorV0 isBanned */ /** - * Constructs a new GetPathElementsRequestV0. - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest - * @classdesc Represents a GetPathElementsRequestV0. - * @implements IGetPathElementsRequestV0 + * Constructs a new ValidatorV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @classdesc Represents a ValidatorV0. + * @implements IValidatorV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorV0=} [properties] Properties to set */ - function GetPathElementsRequestV0(properties) { - this.path = []; - this.keys = []; + function ValidatorV0(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37123,107 +45740,101 @@ $root.org = (function() { } /** - * GetPathElementsRequestV0 path. - * @member {Array.} path - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * ValidatorV0 proTxHash. + * @member {Uint8Array} proTxHash + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @instance */ - GetPathElementsRequestV0.prototype.path = $util.emptyArray; + ValidatorV0.prototype.proTxHash = $util.newBuffer([]); /** - * GetPathElementsRequestV0 keys. - * @member {Array.} keys - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * ValidatorV0 nodeIp. + * @member {string} nodeIp + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @instance */ - GetPathElementsRequestV0.prototype.keys = $util.emptyArray; + ValidatorV0.prototype.nodeIp = ""; /** - * GetPathElementsRequestV0 prove. - * @member {boolean} prove - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * ValidatorV0 isBanned. + * @member {boolean} isBanned + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @instance */ - GetPathElementsRequestV0.prototype.prove = false; + ValidatorV0.prototype.isBanned = false; /** - * Creates a new GetPathElementsRequestV0 instance using the specified properties. + * Creates a new ValidatorV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 instance + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} ValidatorV0 instance */ - GetPathElementsRequestV0.create = function create(properties) { - return new GetPathElementsRequestV0(properties); + ValidatorV0.create = function create(properties) { + return new ValidatorV0(properties); }; /** - * Encodes the specified GetPathElementsRequestV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.verify|verify} messages. + * Encodes the specified ValidatorV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0} message GetPathElementsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorV0} message ValidatorV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsRequestV0.encode = function encode(message, writer) { + ValidatorV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.path != null && message.path.length) - for (var i = 0; i < message.path.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.path[i]); - if (message.keys != null && message.keys.length) - for (var i = 0; i < message.keys.length; ++i) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.keys[i]); - if (message.prove != null && Object.hasOwnProperty.call(message, "prove")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.prove); + if (message.proTxHash != null && Object.hasOwnProperty.call(message, "proTxHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.proTxHash); + if (message.nodeIp != null && Object.hasOwnProperty.call(message, "nodeIp")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nodeIp); + if (message.isBanned != null && Object.hasOwnProperty.call(message, "isBanned")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isBanned); return writer; }; /** - * Encodes the specified GetPathElementsRequestV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.verify|verify} messages. + * Encodes the specified ValidatorV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.IGetPathElementsRequestV0} message GetPathElementsRequestV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorV0} message ValidatorV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsRequestV0.encodeDelimited = function encodeDelimited(message, writer) { + ValidatorV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetPathElementsRequestV0 message from the specified reader or buffer. + * Decodes a ValidatorV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @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.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} ValidatorV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsRequestV0.decode = function decode(reader, length) { + ValidatorV0.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.GetPathElementsRequest.GetPathElementsRequestV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.path && message.path.length)) - message.path = []; - message.path.push(reader.bytes()); + message.proTxHash = reader.bytes(); break; case 2: - if (!(message.keys && message.keys.length)) - message.keys = []; - message.keys.push(reader.bytes()); + message.nodeIp = reader.string(); break; case 3: - message.prove = reader.bool(); + message.isBanned = reader.bool(); break; default: reader.skipType(tag & 7); @@ -37234,368 +45845,433 @@ $root.org = (function() { }; /** - * Decodes a GetPathElementsRequestV0 message from the specified reader or buffer, length delimited. + * Decodes a ValidatorV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} ValidatorV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsRequestV0.decodeDelimited = function decodeDelimited(reader) { + ValidatorV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetPathElementsRequestV0 message. + * Verifies a ValidatorV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPathElementsRequestV0.verify = function verify(message) { + ValidatorV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) { - if (!Array.isArray(message.path)) - return "path: array expected"; - for (var i = 0; i < message.path.length; ++i) - if (!(message.path[i] && typeof message.path[i].length === "number" || $util.isString(message.path[i]))) - return "path: buffer[] expected"; - } - if (message.keys != null && message.hasOwnProperty("keys")) { - if (!Array.isArray(message.keys)) - return "keys: array expected"; - for (var i = 0; i < message.keys.length; ++i) - if (!(message.keys[i] && typeof message.keys[i].length === "number" || $util.isString(message.keys[i]))) - return "keys: buffer[] expected"; - } - if (message.prove != null && message.hasOwnProperty("prove")) - if (typeof message.prove !== "boolean") - return "prove: boolean expected"; + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + if (!(message.proTxHash && typeof message.proTxHash.length === "number" || $util.isString(message.proTxHash))) + return "proTxHash: buffer expected"; + if (message.nodeIp != null && message.hasOwnProperty("nodeIp")) + if (!$util.isString(message.nodeIp)) + return "nodeIp: string expected"; + if (message.isBanned != null && message.hasOwnProperty("isBanned")) + if (typeof message.isBanned !== "boolean") + return "isBanned: boolean expected"; return null; }; /** - * Creates a GetPathElementsRequestV0 message from a plain object. Also converts values to their respective internal types. + * Creates a ValidatorV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} GetPathElementsRequestV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} ValidatorV0 */ - GetPathElementsRequestV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0) + ValidatorV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0(); - if (object.path) { - if (!Array.isArray(object.path)) - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.path: array expected"); - message.path = []; - for (var i = 0; i < object.path.length; ++i) - if (typeof object.path[i] === "string") - $util.base64.decode(object.path[i], message.path[i] = $util.newBuffer($util.base64.length(object.path[i])), 0); - else if (object.path[i].length >= 0) - message.path[i] = object.path[i]; - } - if (object.keys) { - if (!Array.isArray(object.keys)) - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.keys: array expected"); - message.keys = []; - for (var i = 0; i < object.keys.length; ++i) - if (typeof object.keys[i] === "string") - $util.base64.decode(object.keys[i], message.keys[i] = $util.newBuffer($util.base64.length(object.keys[i])), 0); - else if (object.keys[i].length >= 0) - message.keys[i] = object.keys[i]; - } - if (object.prove != null) - message.prove = Boolean(object.prove); + var message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0(); + if (object.proTxHash != null) + if (typeof object.proTxHash === "string") + $util.base64.decode(object.proTxHash, message.proTxHash = $util.newBuffer($util.base64.length(object.proTxHash)), 0); + else if (object.proTxHash.length >= 0) + message.proTxHash = object.proTxHash; + if (object.nodeIp != null) + message.nodeIp = String(object.nodeIp); + if (object.isBanned != null) + message.isBanned = Boolean(object.isBanned); return message; }; /** - * Creates a plain object from a GetPathElementsRequestV0 message. Also converts values to other types if specified. + * Creates a plain object from a ValidatorV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message GetPathElementsRequestV0 + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} message ValidatorV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetPathElementsRequestV0.toObject = function toObject(message, options) { + ValidatorV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) { - object.path = []; - object.keys = []; - } - if (options.defaults) - object.prove = false; - if (message.path && message.path.length) { - object.path = []; - for (var j = 0; j < message.path.length; ++j) - object.path[j] = options.bytes === String ? $util.base64.encode(message.path[j], 0, message.path[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.path[j]) : message.path[j]; - } - if (message.keys && message.keys.length) { - object.keys = []; - for (var j = 0; j < message.keys.length; ++j) - object.keys[j] = options.bytes === String ? $util.base64.encode(message.keys[j], 0, message.keys[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.keys[j]) : message.keys[j]; - } - if (message.prove != null && message.hasOwnProperty("prove")) - object.prove = message.prove; + if (options.defaults) { + if (options.bytes === String) + object.proTxHash = ""; + else { + object.proTxHash = []; + if (options.bytes !== Array) + object.proTxHash = $util.newBuffer(object.proTxHash); + } + object.nodeIp = ""; + object.isBanned = false; + } + if (message.proTxHash != null && message.hasOwnProperty("proTxHash")) + object.proTxHash = options.bytes === String ? $util.base64.encode(message.proTxHash, 0, message.proTxHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.proTxHash) : message.proTxHash; + if (message.nodeIp != null && message.hasOwnProperty("nodeIp")) + object.nodeIp = message.nodeIp; + if (message.isBanned != null && message.hasOwnProperty("isBanned")) + object.isBanned = message.isBanned; return object; }; /** - * Converts this GetPathElementsRequestV0 to JSON. + * Converts this ValidatorV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0 * @instance * @returns {Object.} JSON object */ - GetPathElementsRequestV0.prototype.toJSON = function toJSON() { + ValidatorV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - return GetPathElementsRequestV0; + return ValidatorV0; })(); - return GetPathElementsRequest; - })(); + GetCurrentQuorumsInfoResponse.ValidatorSetV0 = (function() { - v0.GetPathElementsResponse = (function() { + /** + * Properties of a ValidatorSetV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @interface IValidatorSetV0 + * @property {Uint8Array|null} [quorumHash] ValidatorSetV0 quorumHash + * @property {number|null} [coreHeight] ValidatorSetV0 coreHeight + * @property {Array.|null} [members] ValidatorSetV0 members + * @property {Uint8Array|null} [thresholdPublicKey] ValidatorSetV0 thresholdPublicKey + */ - /** - * Properties of a GetPathElementsResponse. - * @memberof org.dash.platform.dapi.v0 - * @interface IGetPathElementsResponse - * @property {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0|null} [v0] GetPathElementsResponse v0 - */ + /** + * Constructs a new ValidatorSetV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @classdesc Represents a ValidatorSetV0. + * @implements IValidatorSetV0 + * @constructor + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorSetV0=} [properties] Properties to set + */ + function ValidatorSetV0(properties) { + this.members = []; + 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]]; + } - /** - * Constructs a new GetPathElementsResponse. - * @memberof org.dash.platform.dapi.v0 - * @classdesc Represents a GetPathElementsResponse. - * @implements IGetPathElementsResponse - * @constructor - * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse=} [properties] Properties to set - */ - function GetPathElementsResponse(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]]; - } + /** + * ValidatorSetV0 quorumHash. + * @member {Uint8Array} quorumHash + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @instance + */ + ValidatorSetV0.prototype.quorumHash = $util.newBuffer([]); - /** - * GetPathElementsResponse v0. - * @member {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0|null|undefined} v0 - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @instance - */ - GetPathElementsResponse.prototype.v0 = null; + /** + * ValidatorSetV0 coreHeight. + * @member {number} coreHeight + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @instance + */ + ValidatorSetV0.prototype.coreHeight = 0; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * ValidatorSetV0 members. + * @member {Array.} members + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @instance + */ + ValidatorSetV0.prototype.members = $util.emptyArray; - /** - * GetPathElementsResponse version. - * @member {"v0"|undefined} version - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @instance - */ - Object.defineProperty(GetPathElementsResponse.prototype, "version", { - get: $util.oneOfGetter($oneOfFields = ["v0"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * ValidatorSetV0 thresholdPublicKey. + * @member {Uint8Array} thresholdPublicKey + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @instance + */ + ValidatorSetV0.prototype.thresholdPublicKey = $util.newBuffer([]); - /** - * Creates a new GetPathElementsResponse instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse instance - */ - GetPathElementsResponse.create = function create(properties) { - return new GetPathElementsResponse(properties); - }; + /** + * Creates a new ValidatorSetV0 instance using the specified properties. + * @function create + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorSetV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} ValidatorSetV0 instance + */ + ValidatorSetV0.create = function create(properties) { + return new ValidatorSetV0(properties); + }; - /** - * Encodes the specified GetPathElementsResponse message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse} message GetPathElementsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPathElementsResponse.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.GetPathElementsResponse.GetPathElementsResponseV0.encode(message.v0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Encodes the specified ValidatorSetV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.verify|verify} messages. + * @function encode + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorSetV0} message ValidatorSetV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValidatorSetV0.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.quorumHash != null && Object.hasOwnProperty.call(message, "quorumHash")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.quorumHash); + if (message.coreHeight != null && Object.hasOwnProperty.call(message, "coreHeight")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.coreHeight); + if (message.members != null && message.members.length) + for (var i = 0; i < message.members.length; ++i) + $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.encode(message.members[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.thresholdPublicKey != null && Object.hasOwnProperty.call(message, "thresholdPublicKey")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.thresholdPublicKey); + return writer; + }; - /** - * Encodes the specified GetPathElementsResponse message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {org.dash.platform.dapi.v0.IGetPathElementsResponse} message GetPathElementsResponse message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GetPathElementsResponse.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ValidatorSetV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.verify|verify} messages. + * @function encodeDelimited + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IValidatorSetV0} message ValidatorSetV0 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValidatorSetV0.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a GetPathElementsResponse message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @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.GetPathElementsResponse} GetPathElementsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPathElementsResponse.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.GetPathElementsResponse(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; + /** + * Decodes a ValidatorSetV0 message from the specified reader or buffer. + * @function decode + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @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.GetCurrentQuorumsInfoResponse.ValidatorSetV0} ValidatorSetV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValidatorSetV0.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.GetCurrentQuorumsInfoResponse.ValidatorSetV0(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.quorumHash = reader.bytes(); + break; + case 2: + message.coreHeight = reader.uint32(); + break; + case 3: + if (!(message.members && message.members.length)) + message.members = []; + message.members.push($root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.decode(reader, reader.uint32())); + break; + case 4: + message.thresholdPublicKey = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } } - } - return message; - }; + return message; + }; - /** - * Decodes a GetPathElementsResponse message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GetPathElementsResponse.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a ValidatorSetV0 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} ValidatorSetV0 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValidatorSetV0.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a GetPathElementsResponse message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GetPathElementsResponse.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.GetPathElementsResponse.GetPathElementsResponseV0.verify(message.v0); - if (error) - return "v0." + error; + /** + * Verifies a ValidatorSetV0 message. + * @function verify + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ValidatorSetV0.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.quorumHash != null && message.hasOwnProperty("quorumHash")) + if (!(message.quorumHash && typeof message.quorumHash.length === "number" || $util.isString(message.quorumHash))) + return "quorumHash: buffer expected"; + if (message.coreHeight != null && message.hasOwnProperty("coreHeight")) + if (!$util.isInteger(message.coreHeight)) + return "coreHeight: integer expected"; + if (message.members != null && message.hasOwnProperty("members")) { + if (!Array.isArray(message.members)) + return "members: array expected"; + for (var i = 0; i < message.members.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.verify(message.members[i]); + if (error) + return "members." + error; + } } - } - return null; - }; + if (message.thresholdPublicKey != null && message.hasOwnProperty("thresholdPublicKey")) + if (!(message.thresholdPublicKey && typeof message.thresholdPublicKey.length === "number" || $util.isString(message.thresholdPublicKey))) + return "thresholdPublicKey: buffer expected"; + return null; + }; - /** - * Creates a GetPathElementsResponse message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse} GetPathElementsResponse - */ - GetPathElementsResponse.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse) + /** + * Creates a ValidatorSetV0 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {Object.} object Plain object + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} ValidatorSetV0 + */ + ValidatorSetV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0) + return object; + var message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0(); + if (object.quorumHash != null) + if (typeof object.quorumHash === "string") + $util.base64.decode(object.quorumHash, message.quorumHash = $util.newBuffer($util.base64.length(object.quorumHash)), 0); + else if (object.quorumHash.length >= 0) + message.quorumHash = object.quorumHash; + if (object.coreHeight != null) + message.coreHeight = object.coreHeight >>> 0; + if (object.members) { + if (!Array.isArray(object.members)) + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.members: array expected"); + message.members = []; + for (var i = 0; i < object.members.length; ++i) { + if (typeof object.members[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.members: object expected"); + message.members[i] = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.fromObject(object.members[i]); + } + } + if (object.thresholdPublicKey != null) + if (typeof object.thresholdPublicKey === "string") + $util.base64.decode(object.thresholdPublicKey, message.thresholdPublicKey = $util.newBuffer($util.base64.length(object.thresholdPublicKey)), 0); + else if (object.thresholdPublicKey.length >= 0) + message.thresholdPublicKey = object.thresholdPublicKey; + return message; + }; + + /** + * Creates a plain object from a ValidatorSetV0 message. Also converts values to other types if specified. + * @function toObject + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @static + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} message ValidatorSetV0 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ValidatorSetV0.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.members = []; + if (options.defaults) { + if (options.bytes === String) + object.quorumHash = ""; + else { + object.quorumHash = []; + if (options.bytes !== Array) + object.quorumHash = $util.newBuffer(object.quorumHash); + } + object.coreHeight = 0; + if (options.bytes === String) + object.thresholdPublicKey = ""; + else { + object.thresholdPublicKey = []; + if (options.bytes !== Array) + object.thresholdPublicKey = $util.newBuffer(object.thresholdPublicKey); + } + } + if (message.quorumHash != null && message.hasOwnProperty("quorumHash")) + object.quorumHash = options.bytes === String ? $util.base64.encode(message.quorumHash, 0, message.quorumHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.quorumHash) : message.quorumHash; + if (message.coreHeight != null && message.hasOwnProperty("coreHeight")) + object.coreHeight = message.coreHeight; + if (message.members && message.members.length) { + object.members = []; + for (var j = 0; j < message.members.length; ++j) + object.members[j] = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject(message.members[j], options); + } + if (message.thresholdPublicKey != null && message.hasOwnProperty("thresholdPublicKey")) + object.thresholdPublicKey = options.bytes === String ? $util.base64.encode(message.thresholdPublicKey, 0, message.thresholdPublicKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.thresholdPublicKey) : message.thresholdPublicKey; return object; - var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse(); - if (object.v0 != null) { - if (typeof object.v0 !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.v0: object expected"); - message.v0 = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.fromObject(object.v0); - } - return message; - }; + }; - /** - * Creates a plain object from a GetPathElementsResponse message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse} message GetPathElementsResponse - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GetPathElementsResponse.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.GetPathElementsResponse.GetPathElementsResponseV0.toObject(message.v0, options); - if (options.oneofs) - object.version = "v0"; - } - return object; - }; + /** + * Converts this ValidatorSetV0 to JSON. + * @function toJSON + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0 + * @instance + * @returns {Object.} JSON object + */ + ValidatorSetV0.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this GetPathElementsResponse to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @instance - * @returns {Object.} JSON object - */ - GetPathElementsResponse.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + return ValidatorSetV0; + })(); - GetPathElementsResponse.GetPathElementsResponseV0 = (function() { + GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 = (function() { /** - * Properties of a GetPathElementsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @interface IGetPathElementsResponseV0 - * @property {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements|null} [elements] GetPathElementsResponseV0 elements - * @property {org.dash.platform.dapi.v0.IProof|null} [proof] GetPathElementsResponseV0 proof - * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetPathElementsResponseV0 metadata + * Properties of a GetCurrentQuorumsInfoResponseV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @interface IGetCurrentQuorumsInfoResponseV0 + * @property {Array.|null} [quorumHashes] GetCurrentQuorumsInfoResponseV0 quorumHashes + * @property {Uint8Array|null} [currentQuorumHash] GetCurrentQuorumsInfoResponseV0 currentQuorumHash + * @property {Array.|null} [validatorSets] GetCurrentQuorumsInfoResponseV0 validatorSets + * @property {Uint8Array|null} [lastBlockProposer] GetCurrentQuorumsInfoResponseV0 lastBlockProposer + * @property {org.dash.platform.dapi.v0.IResponseMetadata|null} [metadata] GetCurrentQuorumsInfoResponseV0 metadata */ /** - * Constructs a new GetPathElementsResponseV0. - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse - * @classdesc Represents a GetPathElementsResponseV0. - * @implements IGetPathElementsResponseV0 + * Constructs a new GetCurrentQuorumsInfoResponseV0. + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse + * @classdesc Represents a GetCurrentQuorumsInfoResponseV0. + * @implements IGetCurrentQuorumsInfoResponseV0 * @constructor - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0=} [properties] Properties to set + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0=} [properties] Properties to set */ - function GetPathElementsResponseV0(properties) { + function GetCurrentQuorumsInfoResponseV0(properties) { + this.quorumHashes = []; + this.validatorSets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37603,114 +46279,132 @@ $root.org = (function() { } /** - * GetPathElementsResponseV0 elements. - * @member {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements|null|undefined} elements - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * GetCurrentQuorumsInfoResponseV0 quorumHashes. + * @member {Array.} quorumHashes + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @instance */ - GetPathElementsResponseV0.prototype.elements = null; + GetCurrentQuorumsInfoResponseV0.prototype.quorumHashes = $util.emptyArray; /** - * GetPathElementsResponseV0 proof. - * @member {org.dash.platform.dapi.v0.IProof|null|undefined} proof - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * GetCurrentQuorumsInfoResponseV0 currentQuorumHash. + * @member {Uint8Array} currentQuorumHash + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @instance */ - GetPathElementsResponseV0.prototype.proof = null; + GetCurrentQuorumsInfoResponseV0.prototype.currentQuorumHash = $util.newBuffer([]); /** - * GetPathElementsResponseV0 metadata. - * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * GetCurrentQuorumsInfoResponseV0 validatorSets. + * @member {Array.} validatorSets + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @instance */ - GetPathElementsResponseV0.prototype.metadata = null; + GetCurrentQuorumsInfoResponseV0.prototype.validatorSets = $util.emptyArray; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * GetCurrentQuorumsInfoResponseV0 lastBlockProposer. + * @member {Uint8Array} lastBlockProposer + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 + * @instance + */ + GetCurrentQuorumsInfoResponseV0.prototype.lastBlockProposer = $util.newBuffer([]); /** - * GetPathElementsResponseV0 result. - * @member {"elements"|"proof"|undefined} result - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * GetCurrentQuorumsInfoResponseV0 metadata. + * @member {org.dash.platform.dapi.v0.IResponseMetadata|null|undefined} metadata + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @instance */ - Object.defineProperty(GetPathElementsResponseV0.prototype, "result", { - get: $util.oneOfGetter($oneOfFields = ["elements", "proof"]), - set: $util.oneOfSetter($oneOfFields) - }); + GetCurrentQuorumsInfoResponseV0.prototype.metadata = null; /** - * Creates a new GetPathElementsResponseV0 instance using the specified properties. + * Creates a new GetCurrentQuorumsInfoResponseV0 instance using the specified properties. * @function create - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 instance + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0=} [properties] Properties to set + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} GetCurrentQuorumsInfoResponseV0 instance */ - GetPathElementsResponseV0.create = function create(properties) { - return new GetPathElementsResponseV0(properties); + GetCurrentQuorumsInfoResponseV0.create = function create(properties) { + return new GetCurrentQuorumsInfoResponseV0(properties); }; /** - * Encodes the specified GetPathElementsResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoResponseV0 message. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.verify|verify} messages. * @function encode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0} message GetPathElementsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0} message GetCurrentQuorumsInfoResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsResponseV0.encode = function encode(message, writer) { + GetCurrentQuorumsInfoResponseV0.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.elements != null && Object.hasOwnProperty.call(message, "elements")) - $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.encode(message.elements, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.proof != null && Object.hasOwnProperty.call(message, "proof")) - $root.org.dash.platform.dapi.v0.Proof.encode(message.proof, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.quorumHashes != null && message.quorumHashes.length) + for (var i = 0; i < message.quorumHashes.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.quorumHashes[i]); + if (message.currentQuorumHash != null && Object.hasOwnProperty.call(message, "currentQuorumHash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.currentQuorumHash); + if (message.validatorSets != null && message.validatorSets.length) + for (var i = 0; i < message.validatorSets.length; ++i) + $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.encode(message.validatorSets[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.lastBlockProposer != null && Object.hasOwnProperty.call(message, "lastBlockProposer")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.lastBlockProposer); if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata")) - $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + $root.org.dash.platform.dapi.v0.ResponseMetadata.encode(message.metadata, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Encodes the specified GetPathElementsResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.verify|verify} messages. + * Encodes the specified GetCurrentQuorumsInfoResponseV0 message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.verify|verify} messages. * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.IGetPathElementsResponseV0} message GetPathElementsResponseV0 message or plain object to encode + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.IGetCurrentQuorumsInfoResponseV0} message GetCurrentQuorumsInfoResponseV0 message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - GetPathElementsResponseV0.encodeDelimited = function encodeDelimited(message, writer) { + GetCurrentQuorumsInfoResponseV0.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a GetPathElementsResponseV0 message from the specified reader or buffer. + * Decodes a GetCurrentQuorumsInfoResponseV0 message from the specified reader or buffer. * @function decode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @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.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} GetCurrentQuorumsInfoResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsResponseV0.decode = function decode(reader, length) { + GetCurrentQuorumsInfoResponseV0.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.GetPathElementsResponse.GetPathElementsResponseV0(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.decode(reader, reader.uint32()); + if (!(message.quorumHashes && message.quorumHashes.length)) + message.quorumHashes = []; + message.quorumHashes.push(reader.bytes()); break; case 2: - message.proof = $root.org.dash.platform.dapi.v0.Proof.decode(reader, reader.uint32()); + message.currentQuorumHash = reader.bytes(); break; case 3: + if (!(message.validatorSets && message.validatorSets.length)) + message.validatorSets = []; + message.validatorSets.push($root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.decode(reader, reader.uint32())); + break; + case 4: + message.lastBlockProposer = reader.bytes(); + break; + case 5: message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.decode(reader, reader.uint32()); break; default: @@ -37722,51 +46416,54 @@ $root.org = (function() { }; /** - * Decodes a GetPathElementsResponseV0 message from the specified reader or buffer, length delimited. + * Decodes a GetCurrentQuorumsInfoResponseV0 message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} GetCurrentQuorumsInfoResponseV0 * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPathElementsResponseV0.decodeDelimited = function decodeDelimited(reader) { + GetCurrentQuorumsInfoResponseV0.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a GetPathElementsResponseV0 message. + * Verifies a GetCurrentQuorumsInfoResponseV0 message. * @function verify - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPathElementsResponseV0.verify = function verify(message) { + GetCurrentQuorumsInfoResponseV0.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.elements != null && message.hasOwnProperty("elements")) { - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify(message.elements); - if (error) - return "elements." + error; - } - } - if (message.proof != null && message.hasOwnProperty("proof")) { - if (properties.result === 1) - return "result: multiple values"; - properties.result = 1; - { - var error = $root.org.dash.platform.dapi.v0.Proof.verify(message.proof); + if (message.quorumHashes != null && message.hasOwnProperty("quorumHashes")) { + if (!Array.isArray(message.quorumHashes)) + return "quorumHashes: array expected"; + for (var i = 0; i < message.quorumHashes.length; ++i) + if (!(message.quorumHashes[i] && typeof message.quorumHashes[i].length === "number" || $util.isString(message.quorumHashes[i]))) + return "quorumHashes: buffer[] expected"; + } + if (message.currentQuorumHash != null && message.hasOwnProperty("currentQuorumHash")) + if (!(message.currentQuorumHash && typeof message.currentQuorumHash.length === "number" || $util.isString(message.currentQuorumHash))) + return "currentQuorumHash: buffer expected"; + if (message.validatorSets != null && message.hasOwnProperty("validatorSets")) { + if (!Array.isArray(message.validatorSets)) + return "validatorSets: array expected"; + for (var i = 0; i < message.validatorSets.length; ++i) { + var error = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.verify(message.validatorSets[i]); if (error) - return "proof." + error; + return "validatorSets." + error; } } + if (message.lastBlockProposer != null && message.hasOwnProperty("lastBlockProposer")) + if (!(message.lastBlockProposer && typeof message.lastBlockProposer.length === "number" || $util.isString(message.lastBlockProposer))) + return "lastBlockProposer: buffer expected"; if (message.metadata != null && message.hasOwnProperty("metadata")) { var error = $root.org.dash.platform.dapi.v0.ResponseMetadata.verify(message.metadata); if (error) @@ -37776,286 +46473,123 @@ $root.org = (function() { }; /** - * Creates a GetPathElementsResponseV0 message from a plain object. Also converts values to their respective internal types. + * Creates a GetCurrentQuorumsInfoResponseV0 message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} GetPathElementsResponseV0 + * @returns {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} GetCurrentQuorumsInfoResponseV0 */ - GetPathElementsResponseV0.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0) + GetCurrentQuorumsInfoResponseV0.fromObject = function fromObject(object) { + if (object instanceof $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0) return object; - var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0(); - if (object.elements != null) { - if (typeof object.elements !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.elements: object expected"); - message.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.fromObject(object.elements); - } - if (object.proof != null) { - if (typeof object.proof !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.proof: object expected"); - message.proof = $root.org.dash.platform.dapi.v0.Proof.fromObject(object.proof); + var message = new $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0(); + if (object.quorumHashes) { + if (!Array.isArray(object.quorumHashes)) + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.quorumHashes: array expected"); + message.quorumHashes = []; + for (var i = 0; i < object.quorumHashes.length; ++i) + if (typeof object.quorumHashes[i] === "string") + $util.base64.decode(object.quorumHashes[i], message.quorumHashes[i] = $util.newBuffer($util.base64.length(object.quorumHashes[i])), 0); + else if (object.quorumHashes[i].length >= 0) + message.quorumHashes[i] = object.quorumHashes[i]; + } + if (object.currentQuorumHash != null) + if (typeof object.currentQuorumHash === "string") + $util.base64.decode(object.currentQuorumHash, message.currentQuorumHash = $util.newBuffer($util.base64.length(object.currentQuorumHash)), 0); + else if (object.currentQuorumHash.length >= 0) + message.currentQuorumHash = object.currentQuorumHash; + if (object.validatorSets) { + if (!Array.isArray(object.validatorSets)) + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.validatorSets: array expected"); + message.validatorSets = []; + for (var i = 0; i < object.validatorSets.length; ++i) { + if (typeof object.validatorSets[i] !== "object") + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.validatorSets: object expected"); + message.validatorSets[i] = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.fromObject(object.validatorSets[i]); + } } + if (object.lastBlockProposer != null) + if (typeof object.lastBlockProposer === "string") + $util.base64.decode(object.lastBlockProposer, message.lastBlockProposer = $util.newBuffer($util.base64.length(object.lastBlockProposer)), 0); + else if (object.lastBlockProposer.length >= 0) + message.lastBlockProposer = object.lastBlockProposer; if (object.metadata != null) { if (typeof object.metadata !== "object") - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.metadata: object expected"); + throw TypeError(".org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.metadata: object expected"); message.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.fromObject(object.metadata); } return message; }; /** - * Creates a plain object from a GetPathElementsResponseV0 message. Also converts values to other types if specified. + * Creates a plain object from a GetCurrentQuorumsInfoResponseV0 message. Also converts values to other types if specified. * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message GetPathElementsResponseV0 + * @param {org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} message GetCurrentQuorumsInfoResponseV0 * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - GetPathElementsResponseV0.toObject = function toObject(message, options) { + GetCurrentQuorumsInfoResponseV0.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) + if (options.arrays || options.defaults) { + object.quorumHashes = []; + object.validatorSets = []; + } + if (options.defaults) { + if (options.bytes === String) + object.currentQuorumHash = ""; + else { + object.currentQuorumHash = []; + if (options.bytes !== Array) + object.currentQuorumHash = $util.newBuffer(object.currentQuorumHash); + } + if (options.bytes === String) + object.lastBlockProposer = ""; + else { + object.lastBlockProposer = []; + if (options.bytes !== Array) + object.lastBlockProposer = $util.newBuffer(object.lastBlockProposer); + } object.metadata = null; - if (message.elements != null && message.hasOwnProperty("elements")) { - object.elements = $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(message.elements, options); - if (options.oneofs) - object.result = "elements"; } - if (message.proof != null && message.hasOwnProperty("proof")) { - object.proof = $root.org.dash.platform.dapi.v0.Proof.toObject(message.proof, options); - if (options.oneofs) - object.result = "proof"; + if (message.quorumHashes && message.quorumHashes.length) { + object.quorumHashes = []; + for (var j = 0; j < message.quorumHashes.length; ++j) + object.quorumHashes[j] = options.bytes === String ? $util.base64.encode(message.quorumHashes[j], 0, message.quorumHashes[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.quorumHashes[j]) : message.quorumHashes[j]; } + if (message.currentQuorumHash != null && message.hasOwnProperty("currentQuorumHash")) + object.currentQuorumHash = options.bytes === String ? $util.base64.encode(message.currentQuorumHash, 0, message.currentQuorumHash.length) : options.bytes === Array ? Array.prototype.slice.call(message.currentQuorumHash) : message.currentQuorumHash; + if (message.validatorSets && message.validatorSets.length) { + object.validatorSets = []; + for (var j = 0; j < message.validatorSets.length; ++j) + object.validatorSets[j] = $root.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject(message.validatorSets[j], options); + } + if (message.lastBlockProposer != null && message.hasOwnProperty("lastBlockProposer")) + object.lastBlockProposer = options.bytes === String ? $util.base64.encode(message.lastBlockProposer, 0, message.lastBlockProposer.length) : options.bytes === Array ? Array.prototype.slice.call(message.lastBlockProposer) : message.lastBlockProposer; if (message.metadata != null && message.hasOwnProperty("metadata")) object.metadata = $root.org.dash.platform.dapi.v0.ResponseMetadata.toObject(message.metadata, options); return object; }; /** - * Converts this GetPathElementsResponseV0 to JSON. + * Converts this GetCurrentQuorumsInfoResponseV0 to JSON. * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 + * @memberof org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 * @instance * @returns {Object.} JSON object */ - GetPathElementsResponseV0.prototype.toJSON = function toJSON() { + GetCurrentQuorumsInfoResponseV0.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; - GetPathElementsResponseV0.Elements = (function() { - - /** - * Properties of an Elements. - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 - * @interface IElements - * @property {Array.|null} [elements] Elements elements - */ - - /** - * Constructs a new Elements. - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0 - * @classdesc Represents an Elements. - * @implements IElements - * @constructor - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements=} [properties] Properties to set - */ - function Elements(properties) { - this.elements = []; - 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]]; - } - - /** - * Elements elements. - * @member {Array.} elements - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @instance - */ - Elements.prototype.elements = $util.emptyArray; - - /** - * Creates a new Elements instance using the specified properties. - * @function create - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements=} [properties] Properties to set - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements instance - */ - Elements.create = function create(properties) { - return new Elements(properties); - }; - - /** - * Encodes the specified Elements message. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify|verify} messages. - * @function encode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements} message Elements message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Elements.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.elements != null && message.elements.length) - for (var i = 0; i < message.elements.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.elements[i]); - return writer; - }; - - /** - * Encodes the specified Elements message, length delimited. Does not implicitly {@link org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.verify|verify} messages. - * @function encodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.IElements} message Elements message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Elements.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an Elements message from the specified reader or buffer. - * @function decode - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @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.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Elements.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.GetPathElementsResponse.GetPathElementsResponseV0.Elements(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (!(message.elements && message.elements.length)) - message.elements = []; - message.elements.push(reader.bytes()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes an Elements message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Elements.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies an Elements message. - * @function verify - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Elements.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.elements != null && message.hasOwnProperty("elements")) { - if (!Array.isArray(message.elements)) - return "elements: array expected"; - for (var i = 0; i < message.elements.length; ++i) - if (!(message.elements[i] && typeof message.elements[i].length === "number" || $util.isString(message.elements[i]))) - return "elements: buffer[] expected"; - } - return null; - }; - - /** - * Creates an Elements message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {Object.} object Plain object - * @returns {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} Elements - */ - Elements.fromObject = function fromObject(object) { - if (object instanceof $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements) - return object; - var message = new $root.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements(); - if (object.elements) { - if (!Array.isArray(object.elements)) - throw TypeError(".org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.elements: array expected"); - message.elements = []; - for (var i = 0; i < object.elements.length; ++i) - if (typeof object.elements[i] === "string") - $util.base64.decode(object.elements[i], message.elements[i] = $util.newBuffer($util.base64.length(object.elements[i])), 0); - else if (object.elements[i].length >= 0) - message.elements[i] = object.elements[i]; - } - return message; - }; - - /** - * Creates a plain object from an Elements message. Also converts values to other types if specified. - * @function toObject - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @static - * @param {org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message Elements - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Elements.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.elements = []; - if (message.elements && message.elements.length) { - object.elements = []; - for (var j = 0; j < message.elements.length; ++j) - object.elements[j] = options.bytes === String ? $util.base64.encode(message.elements[j], 0, message.elements[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.elements[j]) : message.elements[j]; - } - return object; - }; - - /** - * Converts this Elements to JSON. - * @function toJSON - * @memberof org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements - * @instance - * @returns {Object.} JSON object - */ - Elements.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - return Elements; - })(); - - return GetPathElementsResponseV0; + return GetCurrentQuorumsInfoResponseV0; })(); - return GetPathElementsResponse; + return GetCurrentQuorumsInfoResponse; })(); return v0; 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 be474b049e..ca80ce2ad7 100644 --- a/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js +++ b/packages/dapi-grpc/clients/platform/v0/nodejs/platform_protoc.js @@ -75,6 +75,14 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase', null, { proto }); @@ -118,6 +126,28 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpoc goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.GetIdentitiesContractKeysRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.VersionCase', null, { proto }); @@ -227,6 +257,22 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVote goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase', null, { proto }); @@ -1165,6 +1211,300 @@ if (goog.DEBUG && !COMPILED) { */ proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeys.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeys'; } +/** + * 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.GetEvonodesProposedEpochBlocksByIdsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByRangeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0'; +} +/** + * 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.GetIdentitiesBalancesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest'; +} +/** + * 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.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0'; +} +/** + * 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.GetIdentitiesBalancesResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -3496,191 +3836,611 @@ if (goog.DEBUG && !COMPILED) { */ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.displayName = 'proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements'; } - - - -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} + * 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.Proof.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.Proof.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusRequest'; +} /** - * 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.Proof} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * 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.Proof.toObject = function(includeInstance, msg) { - var f, obj = { - grovedbProof: msg.getGrovedbProof_asB64(), - quorumHash: msg.getQuorumHash_asB64(), - signature: msg.getSignature_asB64(), - round: jspb.Message.getFieldWithDefault(msg, 4, 0), - blockIdHash: msg.getBlockIdHash_asB64(), - quorumType: jspb.Message.getFieldWithDefault(msg, 6, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0'; } - - /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.Proof} + * 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.Proof.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.Proof; - return proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse'; +} /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.Proof} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.Proof} + * 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.Proof.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.setGrovedbProof(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setQuorumHash(value); - break; - case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setSignature(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setRound(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setBlockIdHash(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setQuorumType(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0'; +} /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * 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.Proof.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version'; +} /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.Proof} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * 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.Proof.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getGrovedbProof_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getQuorumHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getSignature_asU8(); - if (f.length > 0) { - writer.writeBytes( - 3, - f - ); - } - f = message.getRound(); - if (f !== 0) { - writer.writeUint32( - 4, - f - ); - } - f = message.getBlockIdHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f - ); - } - f = message.getQuorumType(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software'; +} /** - * optional bytes grovedb_proof = 1; - * @return {string} + * 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.Proof.prototype.getGrovedbProof = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol'; +} /** - * optional bytes grovedb_proof = 1; - * This is a type-conversion wrapper around `getGrovedbProof()` - * @return {string} + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Time = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Node = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Chain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Network = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.StateSync = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync'; +} +/** + * 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.GetCurrentQuorumsInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest'; +} +/** + * 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.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.ValidatorV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.ValidatorSetV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0'; +} + + + +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.Proof.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.Proof.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.Proof} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.Proof.toObject = function(includeInstance, msg) { + var f, obj = { + grovedbProof: msg.getGrovedbProof_asB64(), + quorumHash: msg.getQuorumHash_asB64(), + signature: msg.getSignature_asB64(), + round: jspb.Message.getFieldWithDefault(msg, 4, 0), + blockIdHash: msg.getBlockIdHash_asB64(), + quorumType: jspb.Message.getFieldWithDefault(msg, 6, 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.Proof} + */ +proto.org.dash.platform.dapi.v0.Proof.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.Proof; + return proto.org.dash.platform.dapi.v0.Proof.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.Proof} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.Proof.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.setGrovedbProof(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setQuorumHash(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setSignature(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRound(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setBlockIdHash(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setQuorumType(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.Proof.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.Proof.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.Proof} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getGrovedbProof_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getSignature_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } + f = message.getRound(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getBlockIdHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getQuorumType(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * optional bytes grovedb_proof = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.Proof.prototype.getGrovedbProof = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes grovedb_proof = 1; + * This is a type-conversion wrapper around `getGrovedbProof()` + * @return {string} */ proto.org.dash.platform.dapi.v0.Proof.prototype.getGrovedbProof_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( @@ -12470,21 +13230,21 @@ proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.prototype.hasV * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_[0])); }; @@ -12502,8 +13262,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.toObject(opt_includeInstance, this); }; @@ -12512,13 +13272,13 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(o * @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.GetProofsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -12532,23 +13292,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInst /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -12556,8 +13316,8 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = f var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -12573,9 +13333,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = f * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -12583,18 +13343,18 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = fun /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter ); } }; @@ -12606,7 +13366,7 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = funct * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.repeatedFields_ = [1,2,3,4]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.repeatedFields_ = [2]; @@ -12623,8 +13383,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject(opt_includeInstance, this); }; @@ -12633,20 +13393,15 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.to * @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.GetProofsRequest.GetProofsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - identitiesList: jspb.Message.toObjectList(msg.getIdentitiesList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject, includeInstance), - contractsList: jspb.Message.toObjectList(msg.getContractsList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject, includeInstance), - documentsList: jspb.Message.toObjectList(msg.getDocumentsList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject, includeInstance), - votesList: jspb.Message.toObjectList(msg.getVotesList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject, includeInstance) + epoch: jspb.Message.getFieldWithDefault(msg, 1, 0), + idsList: msg.getIdsList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -12660,23 +13415,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = f /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.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.GetProofsRequest.GetProofsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -12684,24 +13439,16 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeB var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader); - msg.addIdentities(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader); - msg.addContracts(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIds(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader); - msg.addDocuments(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader); - msg.addVotes(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -12716,9 +13463,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeB * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -12726,354 +13473,213 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.se /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentitiesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint32( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter + f ); } - f = message.getContractsList(); + f = message.getIdsList_asU8(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeRepeatedBytes( 2, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter + f ); } - f = message.getDocumentsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getProve(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter - ); - } - f = message.getVotesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 4, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter + f ); } }; - - - -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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - contractId: msg.getContractId_asB64(), - documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), - documentTypeKeepsHistory: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - documentId: msg.getDocumentId_asB64(), - documentContestedStatus: jspb.Message.getFieldWithDefault(msg, 5, 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + * optional uint32 epoch = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.setContractId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentType(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDocumentTypeKeepsHistory(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDocumentId(value); - break; - case 5: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (reader.readEnum()); - msg.setDocumentContestedStatus(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 1, value); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 1, undefined); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getDocumentType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDocumentTypeKeepsHistory(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getDocumentId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } - f = message.getDocumentContestedStatus(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus = { - NOT_CONTESTED: 0, - MAYBE_CONTESTED: 1, - CONTESTED: 2 -}; - -/** - * optional bytes contract_id = 1; - * @return {string} + * repeated bytes ids = 2; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); }; /** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * repeated bytes ids = 2; + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIdsList())); }; /** - * optional bytes contract_id = 1; + * repeated bytes ids = 2; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIdsList())); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setIdsList = function(value) { + return jspb.Message.setField(this, 2, value || []); }; /** - * optional string document_type = 2; - * @return {string} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.addIds = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); }; /** - * optional bool document_type_keeps_history = 3; + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentTypeKeepsHistory = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getProve = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentTypeKeepsHistory = function(value) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional bytes document_id = 4; - * @return {string} + * optional GetEvonodesProposedEpochBlocksByIdsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0, 1)); }; /** - * optional bytes document_id = 4; - * This is a type-conversion wrapper around `getDocumentId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDocumentId())); + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_[0], value); }; /** - * optional bytes document_id = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocumentId()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDocumentId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentId = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; + /** - * optional DocumentContestedStatus document_contested_status = 5; - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} + * 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentContestedStatus = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_ = [[1]]; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentContestedStatus = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - +/** + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_[0])); +}; @@ -13090,8 +13696,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.toObject(opt_includeInstance, this); }; @@ -13100,14 +13706,13 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ * @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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.toObject = function(includeInstance, msg) { var f, obj = { - identityId: msg.getIdentityId_asB64(), - requestType: jspb.Message.getFieldWithDefault(msg, 2, 0) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -13121,23 +13726,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13145,12 +13750,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentityId(value); - break; - case 2: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (reader.readEnum()); - msg.setRequestType(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -13165,9 +13767,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13175,102 +13777,52 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentityId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getRequestType(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter ); } }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type = { - FULL_IDENTITY: 0, - BALANCE: 1, - KEYS: 2, - REVISION: 3 -}; - -/** - * optional bytes identity_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes identity_id = 1; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); -}; - - -/** - * optional bytes identity_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); -}; - /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + * 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.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setIdentityId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_ = [[1,2]]; /** - * optional Type request_type = 2; - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getRequestType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + EVONODES_PROPOSED_BLOCK_COUNTS_INFO: 1, + PROOF: 2 }; - /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setRequestType = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0])); }; - - if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -13284,8 +13836,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject(opt_includeInstance, this); }; @@ -13294,13 +13846,15 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ * @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.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64() + evonodesProposedBlockCountsInfo: (f = msg.getEvonodesProposedBlockCountsInfo()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -13314,23 +13868,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.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.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13338,8 +13892,19 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinaryFromReader); + msg.setEvonodesProposedBlockCountsInfo(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -13354,9 +13919,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13364,89 +13929,39 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getEvonodesProposedBlockCountsInfo(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - - -/** - * 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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase = { - REQUEST_TYPE_NOT_SET: 0, - CONTESTED_RESOURCE_VOTE_STATUS_REQUEST: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getRequestTypeCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0])); -}; @@ -13463,8 +13978,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject(opt_includeInstance, this); }; @@ -13473,13 +13988,14 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceVoteStatusRequest: (f = msg.getContestedResourceVoteStatusRequest()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(includeInstance, f) + proTxHash: msg.getProTxHash_asB64(), + count: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -13493,23 +14009,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13517,9 +14033,12 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader); - msg.setContestedResourceVoteStatusRequest(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setCount(value); break; default: reader.skipField(); @@ -13534,9 +14053,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13544,20 +14063,86 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceVoteStatusRequest(); - if (f != null) { - writer.writeMessage( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter + f ); } + f = message.getCount(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } +}; + + +/** + * optional bytes pro_tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); +}; + + +/** + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint64 count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; @@ -13567,7 +14152,7 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.repeatedFields_ = [1]; @@ -13584,8 +14169,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject(opt_includeInstance, this); }; @@ -13594,17 +14179,14 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - voterIdentifier: msg.getVoterIdentifier_asB64() + evonodesProposedBlockCountsList: jspb.Message.toObjectList(msg.getEvonodesProposedBlockCountsList(), + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject, includeInstance) }; if (includeInstance) { @@ -13618,23 +14200,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13642,24 +14224,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setVoterIdentifier(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinaryFromReader); + msg.addEvonodesProposedBlockCounts(value); break; default: reader.skipField(); @@ -13674,9 +14241,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13684,256 +14251,197 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); + f = message.getEvonodesProposedBlockCountsList(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getVoterIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter ); } }; /** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * repeated EvonodeProposedBlocks evonodes_proposed_block_counts = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.getEvonodesProposedBlockCountsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, 1)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.setEvonodesProposedBlockCountsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional string document_type_name = 2; - * @return {string} + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.addEvonodesProposedBlockCounts = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.clearEvonodesProposedBlockCountsList = function() { + return this.setEvonodesProposedBlockCountsList([]); }; /** - * optional string index_name = 3; - * @return {string} + * optional EvonodesProposedBlocks evonodes_proposed_block_counts_info = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getEvonodesProposedBlockCountsInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks, 1)); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setEvonodesProposedBlockCountsInfo = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0], value); }; /** - * repeated bytes index_values = 4; - * @return {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearEvonodesProposedBlockCountsInfo = function() { + return this.setEvonodesProposedBlockCountsInfo(undefined); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` - * @return {!Array} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasEvonodesProposedBlockCountsInfo = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * repeated bytes index_values = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` - * @return {!Array} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0], value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.addIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes voter_identifier = 5; - * @return {string} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional bytes voter_identifier = 5; - * This is a type-conversion wrapper around `getVoterIdentifier()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getVoterIdentifier())); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * optional bytes voter_identifier = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getVoterIdentifier()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getVoterIdentifier())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setVoterIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional ContestedResourceVoteStatusRequest contested_resource_vote_status_request = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * optional GetEvonodesProposedEpochBlocksResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getContestedResourceVoteStatusRequest = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.setContestedResourceVoteStatusRequest = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.clearContestedResourceVoteStatusRequest = function() { - return this.setContestedResourceVoteStatusRequest(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.clearV0 = function() { + return this.setV0(undefined); }; @@ -13941,197 +14449,147 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.hasContestedResourceVoteStatusRequest = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; + /** - * repeated IdentityRequest identities = 1; - * @return {!Array} + * 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.GetProofsRequest.GetProofsRequestV0.prototype.getIdentitiesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, 1)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_ = [[1]]; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setIdentitiesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addIdentities = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_[0])); }; + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this + * 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.GetProofsRequest.GetProofsRequestV0.prototype.clearIdentitiesList = function() { - return this.setIdentitiesList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.toObject(opt_includeInstance, this); }; /** - * repeated ContractRequest contracts = 2; - * @return {!Array} + * 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.GetEvonodesProposedEpochBlocksByRangeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getContractsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, 2)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject(includeInstance, f) + }; -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setContractsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 2, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addContracts = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearContractsList = function() { - return this.setContractsList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * repeated DocumentRequest documents = 3; - * @return {!Array} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getDocumentsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setDocumentsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addDocuments = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearDocumentsList = function() { - return this.setDocumentsList([]); -}; - - -/** - * repeated VoteStatusRequest votes = 4; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getVotesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, 4)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setVotesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 4, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addVotes = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearVotesList = function() { - return this.setVotesList([]); -}; - - -/** - * optional GetProofsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter + ); + } }; @@ -14144,21 +14602,22 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_ = [[3,4]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase = { + START_NOT_SET: 0, + START_AFTER: 3, + START_AT: 4 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0])); }; @@ -14176,8 +14635,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject(opt_includeInstance, this); }; @@ -14186,13 +14645,17 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function( * @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.GetProofsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(includeInstance, f) + epoch: jspb.Message.getFieldWithDefault(msg, 1, 0), + limit: jspb.Message.getFieldWithDefault(msg, 2, 0), + startAfter: msg.getStartAfter_asB64(), + startAt: msg.getStartAt_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) }; if (includeInstance) { @@ -14206,23 +14669,23 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeIns /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse; - return proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.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.GetProofsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14230,9 +14693,24 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAfter(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAt(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -14247,9 +14725,9 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14257,238 +14735,230 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = fu /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); + f = /** @type {number} */ (jspb.Message.getField(message, 1)); if (f != null) { - writer.writeMessage( + writer.writeUint32( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeBytes( + 3, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeBytes( + 4, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 5, + f ); } }; +/** + * optional uint32 epoch = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + /** - * 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 + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 1, value); +}; + /** - * @enum {number} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - PROOF: 1 +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 1, undefined); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 1) != null; }; +/** + * optional uint32 limit = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 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} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * 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.GetProofsResponse.GetProofsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearLimit = function() { + return jspb.Message.setField(this, 2, undefined); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bytes start_after = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; - return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bytes start_after = 3; + * This is a type-conversion wrapper around `getStartAfter()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.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.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAfter())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes start_after = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAfter()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAfter())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setStartAfter = function(value) { + return jspb.Message.setOneofField(this, 3, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], value); }; /** - * optional Proof proof = 1; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearStartAfter = function() { + return jspb.Message.setOneofField(this, 3, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0], value); + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasStartAfter = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this + * optional bytes start_at = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes start_at = 4; + * This is a type-conversion wrapper around `getStartAt()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAt())); }; /** - * optional ResponseMetadata metadata = 2; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes start_at = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAt()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 2)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAt())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 2, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setStartAt = function(value) { + return jspb.Message.setOneofField(this, 4, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearStartAt = function() { + return jspb.Message.setOneofField(this, 4, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], undefined); }; @@ -14496,35 +14966,53 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasStartAt = function() { + return jspb.Message.getField(this, 4) != null; }; /** - * optional GetProofsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bool prove = 5; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional GetEvonodesProposedEpochBlocksByRangeRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -14533,7 +15021,7 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -14547,21 +15035,21 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_[0])); }; @@ -14579,8 +15067,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.toObject(opt_includeInstance, this); }; @@ -14589,13 +15077,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = func * @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.GetDataContractRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -14609,23 +15097,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(inclu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.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.GetDataContractRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14633,8 +15121,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromRead var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -14650,9 +15138,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromRead * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14660,24 +15148,31 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -14693,8 +15188,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject(opt_includeInstance, this); }; @@ -14703,13 +15198,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. * @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.GetDataContractRequest.GetDataContractRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - id: msg.getId_asB64(), + idsList: msg.getIdsList_asB64(), prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; @@ -14724,23 +15219,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.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.GetDataContractRequest.GetDataContractRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14749,7 +15244,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setId(value); + msg.addIds(value); break; case 2: var value = /** @type {boolean} */ (reader.readBool()); @@ -14768,9 +15263,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14778,15 +15273,15 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getId_asU8(); + f = message.getIdsList_asU8(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedBytes( 1, f ); @@ -14802,89 +15297,108 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** - * optional bytes id = 1; - * @return {string} + * repeated bytes ids = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * optional bytes id = 1; - * This is a type-conversion wrapper around `getId()` - * @return {string} + * repeated bytes ids = 1; + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getId())); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIdsList())); }; /** - * optional bytes id = 1; + * repeated bytes ids = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getId()` - * @return {!Uint8Array} + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getId())); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIdsList())); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.setIdsList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** - * optional bool prove = 2; - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.addIds = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setProve = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); +}; + + +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDataContractRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * optional GetIdentitiesBalancesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -14893,7 +15407,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = funct * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -14907,21 +15421,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = functio * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_[0])); }; @@ -14939,8 +15453,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.toObject(opt_includeInstance, this); }; @@ -14949,13 +15463,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = fun * @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.GetDataContractResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -14969,23 +15483,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.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.GetDataContractResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14993,8 +15507,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -15010,9 +15524,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15020,18 +15534,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter ); } }; @@ -15046,22 +15560,22 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase = { RESULT_NOT_SET: 0, - DATA_CONTRACT: 1, + IDENTITIES_BALANCES: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0])); }; @@ -15079,8 +15593,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject(opt_includeInstance, this); }; @@ -15089,13 +15603,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * @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.GetDataContractResponse.GetDataContractResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContract: msg.getDataContract_asB64(), + identitiesBalances: (f = msg.getIdentitiesBalances()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -15111,23 +15625,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.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.GetDataContractResponse.GetDataContractResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15135,8 +15649,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDataContract(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.deserializeBinaryFromReader); + msg.setIdentitiesBalances(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -15161,9 +15676,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15171,17 +15686,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + f = message.getIdentitiesBalances(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.serializeBinaryToWriter ); } f = message.getProof(); @@ -15203,54 +15719,196 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes data_contract = 1; + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.toObject = function(includeInstance, msg) { + var f, obj = { + identityId: msg.getIdentityId_asB64(), + balance: 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.setIdentityId(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBalance(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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint64( + 2, + f + ); + } +}; + + +/** + * optional bytes identity_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes data_contract = 1; - * This is a type-conversion wrapper around `getDataContract()` + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDataContract())); + this.getIdentityId())); }; /** - * optional bytes data_contract = 1; + * optional bytes identity_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDataContract()` + * This is a type-conversion wrapper around `getIdentityId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDataContract())); + this.getIdentityId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setDataContract = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint64 balance = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getBalance = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.setBalance = function(value) { + return jspb.Message.setField(this, 2, value); }; /** * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearDataContract = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.clearBalance = function() { + return jspb.Message.setField(this, 2, undefined); }; @@ -15258,7 +15916,204 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasDataContract = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.hasBalance = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.repeatedFields_ = [1]; + + + +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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.toObject = function(includeInstance, msg) { + var f, obj = { + entriesList: jspb.Message.toObjectList(msg.getEntriesList(), + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.toObject, includeInstance) + }; + + 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.deserializeBinaryFromReader); + msg.addEntries(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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated IdentityBalance entries = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.getEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.setEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.addEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.clearEntriesList = function() { + return this.setEntriesList([]); +}; + + +/** + * optional IdentitiesBalances identities_balances = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getIdentitiesBalances = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setIdentitiesBalances = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearIdentitiesBalances = function() { + return this.setIdentitiesBalances(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasIdentitiesBalances = function() { return jspb.Message.getField(this, 1) != null; }; @@ -15267,7 +16122,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -15275,18 +16130,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -15295,7 +16150,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -15304,7 +16159,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -15312,18 +16167,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -15332,35 +16187,35 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetDataContractResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * optional GetIdentitiesBalancesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -15369,7 +16224,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = func * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -15383,21 +16238,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = functi * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0])); }; @@ -15415,8 +16270,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject(opt_includeInstance, this); }; @@ -15425,13 +16280,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = fun * @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.GetDataContractsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -15445,23 +16300,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.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.GetDataContractsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15469,8 +16324,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -15486,9 +16341,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15496,18 +16351,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter ); } }; @@ -15519,7 +16374,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.repeatedFields_ = [1,2,3,4]; @@ -15536,8 +16391,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(opt_includeInstance, this); }; @@ -15546,14 +16401,20 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV * @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.GetDataContractsRequest.GetDataContractsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - idsList: msg.getIdsList_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + identitiesList: jspb.Message.toObjectList(msg.getIdentitiesList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject, includeInstance), + contractsList: jspb.Message.toObjectList(msg.getContractsList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject, includeInstance), + documentsList: jspb.Message.toObjectList(msg.getDocumentsList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject, includeInstance), + votesList: jspb.Message.toObjectList(msg.getVotesList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject, includeInstance) }; if (includeInstance) { @@ -15567,23 +16428,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.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.GetDataContractsRequest.GetDataContractsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15591,12 +16452,24 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIds(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader); + msg.addIdentities(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader); + msg.addContracts(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader); + msg.addDocuments(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader); + msg.addVotes(value); break; default: reader.skipField(); @@ -15611,9 +16484,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15621,23 +16494,201 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdsList_asU8(); + f = message.getIdentitiesList(); if (f.length > 0) { - writer.writeRepeatedBytes( + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter + ); + } + f = message.getContractsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter + ); + } + f = message.getDocumentsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter + ); + } + f = message.getVotesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), + documentTypeKeepsHistory: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + documentId: msg.getDocumentId_asB64(), + documentContestedStatus: jspb.Message.getFieldWithDefault(msg, 5, 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentType(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setDocumentTypeKeepsHistory(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDocumentId(value); + break; + case 5: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (reader.readEnum()); + msg.setDocumentContestedStatus(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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, f ); } - f = message.getProve(); + f = message.getDocumentType(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDocumentTypeKeepsHistory(); if (f) { writer.writeBool( - 2, + 3, + f + ); + } + f = message.getDocumentId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getDocumentContestedStatus(); + if (f !== 0.0) { + writer.writeEnum( + 5, f ); } @@ -15645,149 +16696,155 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** - * repeated bytes ids = 1; - * @return {!Array} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus = { + NOT_CONTESTED: 0, + MAYBE_CONTESTED: 1, + CONTESTED: 2 +}; + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * repeated bytes ids = 1; - * This is a type-conversion wrapper around `getIdsList()` - * @return {!Array} + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIdsList())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); }; /** - * repeated bytes ids = 1; + * optional bytes contract_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdsList()` - * @return {!Array} + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIdsList())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setIdsList = function(value) { - return jspb.Message.setField(this, 1, value || []); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * optional string document_type = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.addIds = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentType = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.clearIdsList = function() { - return this.setIdsList([]); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentType = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * optional bool prove = 2; + * optional bool document_type_keeps_history = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentTypeKeepsHistory = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentTypeKeepsHistory = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetDataContractsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * optional bytes document_id = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0], value); + * optional bytes document_id = 4; + * This is a type-conversion wrapper around `getDocumentId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDocumentId())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this + * optional bytes document_id = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocumentId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDocumentId())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentId = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); }; - -/** - * 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.GetDataContractsResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * optional DocumentContestedStatus document_contested_status = 5; + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentContestedStatus = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentContestedStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 5, value); }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -15801,8 +16858,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(opt_includeInstance, this); }; @@ -15811,13 +16868,14 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = fu * @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.GetDataContractsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(includeInstance, f) + identityId: msg.getIdentityId_asB64(), + requestType: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -15831,23 +16889,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(inc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.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.GetDataContractsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15855,9 +16913,12 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setIdentityId(value); + break; + case 2: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (reader.readEnum()); + msg.setRequestType(value); break; default: reader.skipField(); @@ -15872,9 +16933,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15882,23 +16943,99 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBina /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getRequestType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f ); } }; +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type = { + FULL_IDENTITY: 0, + BALANCE: 1, + KEYS: 2, + REVISION: 3 +}; + +/** + * optional bytes identity_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional Type request_type = 2; + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getRequestType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setRequestType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + @@ -15915,8 +17052,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(opt_includeInstance, this); }; @@ -15925,14 +17062,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.proto * @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.GetDataContractsResponse.DataContractEntry} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject = function(includeInstance, msg) { var f, obj = { - identifier: msg.getIdentifier_asB64(), - dataContract: (f = msg.getDataContract()) && google_protobuf_wrappers_pb.BytesValue.toObject(includeInstance, f) + contractId: msg.getContractId_asB64() }; if (includeInstance) { @@ -15946,23 +17082,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObj /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.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.GetDataContractsResponse.DataContractEntry} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15971,12 +17107,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deser switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentifier(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.BytesValue; - reader.readMessage(value,google_protobuf_wrappers_pb.BytesValue.deserializeBinaryFromReader); - msg.setDataContract(value); + msg.setContractId(value); break; default: reader.skipField(); @@ -15991,9 +17122,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deser * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16001,116 +17132,89 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.proto /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentifier_asU8(); + f = message.getContractId_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getDataContract(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.BytesValue.serializeBinaryToWriter - ); - } }; /** - * optional bytes identifier = 1; + * optional bytes contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes identifier = 1; - * This is a type-conversion wrapper around `getIdentifier()` + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentifier())); + this.getContractId())); }; /** - * optional bytes identifier = 1; + * optional bytes contract_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentifier()` + * This is a type-conversion wrapper around `getContractId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentifier())); + this.getContractId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setIdentifier = function(value) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.setContractId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; -/** - * optional google.protobuf.BytesValue data_contract = 2; - * @return {?proto.google.protobuf.BytesValue} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getDataContract = function() { - return /** @type{?proto.google.protobuf.BytesValue} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BytesValue, 2)); -}; - - -/** - * @param {?proto.google.protobuf.BytesValue|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setDataContract = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this + * 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.GetDataContractsResponse.DataContractEntry.prototype.clearDataContract = function() { - return this.setDataContract(undefined); -}; - +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_ = [[1]]; /** - * Returns whether this field is set. - * @return {boolean} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.hasDataContract = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase = { + REQUEST_TYPE_NOT_SET: 0, + CONTESTED_RESOURCE_VOTE_STATUS_REQUEST: 1 }; - - /** - * List of repeated fields within this message type. - * @private {!Array} - * @const + * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getRequestTypeCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0])); +}; @@ -16127,8 +17231,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -16137,14 +17241,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype * @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.GetDataContractsResponse.DataContracts} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject, includeInstance) + contestedResourceVoteStatusRequest: (f = msg.getContestedResourceVoteStatusRequest()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(includeInstance, f) }; if (includeInstance) { @@ -16158,23 +17261,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.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.GetDataContractsResponse.DataContracts} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -16182,9 +17285,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader); - msg.addDataContractEntries(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader); + msg.setContestedResourceVoteStatusRequest(value); break; default: reader.skipField(); @@ -16199,9 +17302,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16209,87 +17312,30 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractEntriesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getContestedResourceVoteStatusRequest(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter ); } }; -/** - * repeated DataContractEntry data_contract_entries = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.getDataContractEntriesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.setDataContractEntriesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.addDataContractEntries = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.clearDataContractEntriesList = function() { - return this.setDataContractEntriesList([]); -}; - - /** - * 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - DATA_CONTRACTS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.repeatedFields_ = [4]; @@ -16306,8 +17352,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -16316,15 +17362,17 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons * @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.GetDataContractsResponse.GetDataContractsResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContracts: (f = msg.getDataContracts()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + voterIdentifier: msg.getVoterIdentifier_asB64() }; if (includeInstance) { @@ -16338,23 +17386,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.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.GetDataContractsResponse.GetDataContractsResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -16362,19 +17410,24 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader); - msg.setDataContracts(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setContractId(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setVoterIdentifier(value); break; default: reader.skipField(); @@ -16389,9 +17442,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16399,666 +17452,444 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContracts(); - if (f != null) { - writer.writeMessage( + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getVoterIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f ); } }; /** - * optional DataContracts data_contracts = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * optional bytes contract_id = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getDataContracts = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setDataContracts = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearDataContracts = function() { - return this.setDataContracts(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasDataContracts = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional string document_type_name = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * optional string index_name = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * repeated bytes index_values = 4; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); }; /** - * optional GetDataContractsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0], value); + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this + * optional bytes voter_identifier = 5; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes voter_identifier = 5; + * This is a type-conversion wrapper around `getVoterIdentifier()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getVoterIdentifier())); }; - /** - * 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 + * optional bytes voter_identifier = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getVoterIdentifier()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getVoterIdentifier())); +}; + /** - * @enum {number} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setVoterIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} + * optional ContestedResourceVoteStatusRequest contested_resource_vote_status_request = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getContestedResourceVoteStatusRequest = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest, 1)); }; +/** + * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.setContestedResourceVoteStatusRequest = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0], 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} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.clearContestedResourceVoteStatusRequest = function() { + return this.setContestedResourceVoteStatusRequest(undefined); }; /** - * 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.GetDataContractHistoryRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - id: msg.getId_asB64(), - limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - startAtMs: jspb.Message.getFieldWithDefault(msg, 4, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) - }; - - 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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.setId(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setLimit(value); - break; - case 3: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setOffset(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartAtMs(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getLimit(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOffset(); - if (f != null) { - writer.writeMessage( - 3, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getStartAtMs(); - if (f !== 0) { - writer.writeUint64( - 4, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 5, - f - ); - } +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.hasContestedResourceVoteStatusRequest = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional bytes id = 1; - * @return {string} + * repeated IdentityRequest identities = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getIdentitiesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, 1)); }; /** - * optional bytes id = 1; - * This is a type-conversion wrapper around `getId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getId())); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setIdentitiesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bytes id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getId()` - * @return {!Uint8Array} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getId())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addIdentities = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, opt_index); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearIdentitiesList = function() { + return this.setIdentitiesList([]); }; /** - * optional google.protobuf.UInt32Value limit = 2; - * @return {?proto.google.protobuf.UInt32Value} + * repeated ContractRequest contracts = 2; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getLimit = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getContractsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, 2)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setContractsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearLimit = function() { - return this.setLimit(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addContracts = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearContractsList = function() { + return this.setContractsList([]); }; /** - * optional google.protobuf.UInt32Value offset = 3; - * @return {?proto.google.protobuf.UInt32Value} + * repeated DocumentRequest documents = 3; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getOffset = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getDocumentsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, 3)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setDocumentsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearOffset = function() { - return this.setOffset(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addDocuments = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearDocumentsList = function() { + return this.setDocumentsList([]); }; /** - * optional uint64 start_at_ms = 4; - * @return {number} + * repeated VoteStatusRequest votes = 4; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getStartAtMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getVotesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, 4)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setStartAtMs = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setVotesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); }; /** - * optional bool prove = 5; - * @return {boolean} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addVotes = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearVotesList = function() { + return this.setVotesList([]); }; /** - * optional GetDataContractHistoryRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} + * optional GetProofsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -17067,7 +17898,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -17081,21 +17912,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0])); }; @@ -17113,8 +17944,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject(opt_includeInstance, this); }; @@ -17123,13 +17954,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObjec * @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.GetDataContractHistoryResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17143,23 +17974,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = functi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse; + return proto.org.dash.platform.dapi.v0.GetProofsResponse.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.GetDataContractHistoryResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17167,8 +17998,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -17184,9 +18015,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17194,18 +18025,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.seriali /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter ); } }; @@ -17220,22 +18051,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryTo * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - DATA_CONTRACT_HISTORY: 1, - PROOF: 2 + PROOF: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0])); }; @@ -17253,8 +18083,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(opt_includeInstance, this); }; @@ -17263,13 +18093,12 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContractHistory: (f = msg.getDataContractHistory()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -17285,23 +18114,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; + return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17309,16 +18138,11 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader); - msg.setDataContractHistory(value); - break; - case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); msg.setProof(value); break; - case 3: + case 2: var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); msg.setMetadata(value); @@ -17336,9 +18160,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17346,24 +18170,16 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractHistory(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter - ); - } f = message.getProof(); if (f != null) { writer.writeMessage( - 2, + 1, f, proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); @@ -17371,7 +18187,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi f = message.getMetadata(); if (f != null) { writer.writeMessage( - 3, + 2, f, proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); @@ -17379,197 +18195,142 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi }; - - - -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} + * optional Proof proof = 1; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 1)); }; /** - * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject = function(includeInstance, msg) { - var f, obj = { - date: jspb.Message.getFieldWithDefault(msg, 1, 0), - value: msg.getValue_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0], value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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.setDate(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setValue(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional ResponseMetadata metadata = 2; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 2)); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDate(); - if (f !== 0) { - writer.writeUint64( - 1, - f - ); - } - f = message.getValue_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** - * optional uint64 date = 1; - * @return {number} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getDate = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setDate = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes value = 2; - * @return {string} + * optional GetProofsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0, 1)); }; /** - * optional bytes value = 2; - * This is a type-conversion wrapper around `getValue()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getValue())); + * @param {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0], value); }; /** - * optional bytes value = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getValue()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getValue())); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setValue = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0])); +}; @@ -17586,8 +18347,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject(opt_includeInstance, this); }; @@ -17596,14 +18357,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17617,23 +18377,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17641,9 +18401,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader); - msg.addDataContractEntries(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -17658,9 +18418,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17668,196 +18428,231 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractEntriesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated DataContractHistoryEntry data_contract_entries = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.getDataContractEntriesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.setDataContractEntriesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.addDataContractEntries = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, opt_index); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.clearDataContractEntriesList = function() { - return this.setDataContractEntriesList([]); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(opt_includeInstance, this); }; /** - * optional DataContractHistory data_contract_history = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * 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.GetDataContractRequest.GetDataContractRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getDataContractHistory = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory, 1)); -}; - +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + id: msg.getId_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; -/** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setDataContractHistory = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearDataContractHistory = function() { - return this.setDataContractHistory(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader(msg, reader); }; /** - * Returns whether this field is set. - * @return {boolean} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasDataContractHistory = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.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.setId(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * optional bytes id = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getId())); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getId())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * optional bool prove = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDataContractHistoryResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * optional GetDataContractRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -17866,7 +18661,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -17880,22 +18675,22 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0])); +}; @@ -17912,8 +18707,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject(opt_includeInstance, this); }; @@ -17922,13 +18717,13 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = functio * @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.GetDocumentsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17942,23 +18737,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeI /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest; - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.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.GetDocumentsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17966,8 +18761,8 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -17983,9 +18778,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17993,18 +18788,18 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter ); } }; @@ -18019,22 +18814,22 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = fu * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_ = [[6,7]]; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase = { - START_NOT_SET: 0, - START_AFTER: 6, - START_AT: 7 +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + DATA_CONTRACT: 1, + PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0])); }; @@ -18052,8 +18847,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(opt_includeInstance, this); }; @@ -18062,20 +18857,15 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * @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.GetDocumentsRequest.GetDocumentsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContractId: msg.getDataContractId_asB64(), - documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), - where: msg.getWhere_asB64(), - orderBy: msg.getOrderBy_asB64(), - limit: jspb.Message.getFieldWithDefault(msg, 5, 0), - startAfter: msg.getStartAfter_asB64(), - startAt: msg.getStartAt_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) + dataContract: msg.getDataContract_asB64(), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -18089,23 +18879,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObje /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.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.GetDocumentsRequest.GetDocumentsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18114,35 +18904,17 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deseri switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDataContractId(value); + msg.setDataContract(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentType(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setWhere(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setOrderBy(value); - break; - case 5: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLimit(value); - break; - case 6: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAfter(value); - break; - case 7: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAt(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -18157,9 +18929,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deseri * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18167,281 +18939,123 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractId_asU8(); - if (f.length > 0) { + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { writer.writeBytes( 1, f ); } - f = message.getDocumentType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getWhere_asU8(); - if (f.length > 0) { - writer.writeBytes( - 3, - f - ); - } - f = message.getOrderBy_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } - f = message.getLimit(); - if (f !== 0) { - writer.writeUint32( - 5, - f - ); - } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 6)); + f = message.getProof(); if (f != null) { - writer.writeBytes( - 6, - f + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 7)); + f = message.getMetadata(); if (f != null) { - writer.writeBytes( - 7, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 8, - f + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; /** - * optional bytes data_contract_id = 1; + * optional bytes data_contract = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes data_contract_id = 1; - * This is a type-conversion wrapper around `getDataContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDataContractId())); -}; - - -/** - * optional bytes data_contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDataContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDataContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDataContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDocumentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDocumentType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bytes where = 3; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * optional bytes where = 3; - * This is a type-conversion wrapper around `getWhere()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getWhere())); -}; - - -/** - * optional bytes where = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getWhere()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getWhere())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setWhere = function(value) { - return jspb.Message.setProto3BytesField(this, 3, value); -}; - - -/** - * optional bytes order_by = 4; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * optional bytes order_by = 4; - * This is a type-conversion wrapper around `getOrderBy()` + * optional bytes data_contract = 1; + * This is a type-conversion wrapper around `getDataContract()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getOrderBy())); + this.getDataContract())); }; /** - * optional bytes order_by = 4; + * optional bytes data_contract = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getOrderBy()` + * This is a type-conversion wrapper around `getDataContract()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getOrderBy())); + this.getDataContract())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setOrderBy = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); -}; - - -/** - * optional uint32 limit = 5; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getLimit = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setDataContract = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); }; /** - * optional bytes start_after = 6; - * @return {string} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearDataContract = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], undefined); }; /** - * optional bytes start_after = 6; - * This is a type-conversion wrapper around `getStartAfter()` - * @return {string} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAfter())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasDataContract = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional bytes start_after = 6; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAfter()` - * @return {!Uint8Array} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAfter())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAfter = function(value) { - return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAfter = function() { - return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -18449,59 +19063,36 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAfter = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional bytes start_at = 7; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * optional bytes start_at = 7; - * This is a type-conversion wrapper around `getStartAt()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAt())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes start_at = 7; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAt()` - * @return {!Uint8Array} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAt())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAt = function(value) { - return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAt = function() { - return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; @@ -18509,53 +19100,35 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAt = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional bool prove = 8; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetDocumentsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * optional GetDataContractResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -18564,7 +19137,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -18578,21 +19151,21 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0])); }; @@ -18610,8 +19183,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject(opt_includeInstance, this); }; @@ -18620,13 +19193,13 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = functi * @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.GetDocumentsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -18640,23 +19213,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(include /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.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.GetDocumentsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18664,8 +19237,8 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -18681,9 +19254,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18691,186 +19264,18 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter - ); - } -}; - - - -/** - * 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.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - DOCUMENTS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - documents: (f = msg.getDocuments()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetDocumentsResponse.GetDocumentsResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader); - msg.setDocuments(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(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.GetDocumentsResponse.GetDocumentsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDocuments(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter ); } }; @@ -18882,7 +19287,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.seri * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.repeatedFields_ = [1]; @@ -18899,8 +19304,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(opt_includeInstance, this); }; @@ -18909,13 +19314,14 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu * @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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - documentsList: msg.getDocumentsList_asB64() + idsList: msg.getIdsList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -18929,23 +19335,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18954,7 +19360,11 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addDocuments(value); + msg.addIds(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -18969,9 +19379,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18979,60 +19389,67 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDocumentsList_asU8(); + f = message.getIdsList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * repeated bytes documents = 1; + * repeated bytes ids = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes documents = 1; - * This is a type-conversion wrapper around `getDocumentsList()` + * repeated bytes ids = 1; + * This is a type-conversion wrapper around `getIdsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getDocumentsList())); + this.getIdsList())); }; /** - * repeated bytes documents = 1; + * repeated bytes ids = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocumentsList()` + * This is a type-conversion wrapper around `getIdsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getDocumentsList())); + this.getIdsList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.setDocumentsList = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setIdsList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -19040,157 +19457,64 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.addDocuments = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.addIds = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.clearDocumentsList = function() { - return this.setDocumentsList([]); -}; - - -/** - * optional Documents documents = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getDocuments = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setDocuments = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearDocuments = function() { - return this.setDocuments(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasDocuments = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); }; /** - * Returns whether this field is set. + * optional bool prove = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDocumentsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} + * optional GetDataContractsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -19199,7 +19523,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = functio * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -19213,21 +19537,21 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function( * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0])); }; @@ -19245,8 +19569,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject(opt_includeInstance, this); }; @@ -19255,13 +19579,13 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toOb * @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.GetIdentityByPublicKeyHashRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -19275,23 +19599,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = fun /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.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.GetIdentityByPublicKeyHashRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19299,8 +19623,8 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBin var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -19316,9 +19640,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBin * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19326,18 +19650,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.seri /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter ); } }; @@ -19359,8 +19683,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(opt_includeInstance, this); }; @@ -19369,14 +19693,14 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP * @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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject = function(includeInstance, msg) { var f, obj = { - publicKeyHash: msg.getPublicKeyHash_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + identifier: msg.getIdentifier_asB64(), + dataContract: (f = msg.getDataContract()) && google_protobuf_wrappers_pb.BytesValue.toObject(includeInstance, f) }; if (includeInstance) { @@ -19390,23 +19714,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19415,11 +19739,12 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPublicKeyHash(value); + msg.setIdentifier(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new google_protobuf_wrappers_pb.BytesValue; + reader.readMessage(value,google_protobuf_wrappers_pb.BytesValue.deserializeBinaryFromReader); + msg.setDataContract(value); break; default: reader.skipField(); @@ -19434,9 +19759,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19444,114 +19769,97 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getPublicKeyHash_asU8(); + f = message.getIdentifier_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getDataContract(); + if (f != null) { + writer.writeMessage( 2, - f + f, + google_protobuf_wrappers_pb.BytesValue.serializeBinaryToWriter ); } }; /** - * optional bytes public_key_hash = 1; + * optional bytes identifier = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes public_key_hash = 1; - * This is a type-conversion wrapper around `getPublicKeyHash()` + * optional bytes identifier = 1; + * This is a type-conversion wrapper around `getIdentifier()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPublicKeyHash())); + this.getIdentifier())); }; /** - * optional bytes public_key_hash = 1; + * optional bytes identifier = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPublicKeyHash()` + * This is a type-conversion wrapper around `getIdentifier()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPublicKeyHash())); + this.getIdentifier())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setPublicKeyHash = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setIdentifier = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional GetIdentityByPublicKeyHashRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * optional google.protobuf.BytesValue data_contract = 2; + * @return {?proto.google.protobuf.BytesValue} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getDataContract = function() { + return /** @type{?proto.google.protobuf.BytesValue} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BytesValue, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + * @param {?proto.google.protobuf.BytesValue|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setDataContract = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.clearDataContract = function() { + return this.setDataContract(undefined); }; @@ -19559,36 +19867,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clea * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.hasDataContract = function() { + return jspb.Message.getField(this, 2) != 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.repeatedFields_ = [1]; @@ -19605,8 +19895,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(opt_includeInstance, this); }; @@ -19615,13 +19905,14 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toO * @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.GetIdentityByPublicKeyHashResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(includeInstance, f) + dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject, includeInstance) }; if (includeInstance) { @@ -19635,23 +19926,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = fu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.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.GetIdentityByPublicKeyHashResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19659,9 +19950,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader); + msg.addDataContractEntries(value); break; default: reader.skipField(); @@ -19676,9 +19967,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19686,23 +19977,61 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.ser /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDataContractEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter ); } }; +/** + * repeated DataContractEntry data_contract_entries = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.getDataContractEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.setDataContractEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.addDataContractEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.clearDataContractEntriesList = function() { + return this.setDataContractEntriesList([]); +}; + + /** * Oneof group definitions for this message. Each group defines the field @@ -19712,22 +20041,22 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBina * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - IDENTITY: 1, + DATA_CONTRACTS: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0])); }; @@ -19745,8 +20074,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(opt_includeInstance, this); }; @@ -19755,13 +20084,13 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * @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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - identity: msg.getIdentity_asB64(), + dataContracts: (f = msg.getDataContracts()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -19777,23 +20106,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19801,8 +20130,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentity(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader); + msg.setDataContracts(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -19827,9 +20157,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19837,17 +20167,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + f = message.getDataContracts(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter ); } f = message.getProof(); @@ -19870,53 +20201,30 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** - * optional bytes identity = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes identity = 1; - * This is a type-conversion wrapper around `getIdentity()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentity())); -}; - - -/** - * optional bytes identity = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentity()` - * @return {!Uint8Array} + * optional DataContracts data_contracts = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentity())); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getDataContracts = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts, 1)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setIdentity = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setDataContracts = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearIdentity = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearDataContracts = function() { + return this.setDataContracts(undefined); }; @@ -19924,7 +20232,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasIdentity = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasDataContracts = function() { return jspb.Message.getField(this, 1) != null; }; @@ -19933,7 +20241,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -19941,18 +20249,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -19961,7 +20269,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -19970,7 +20278,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -19978,18 +20286,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -19998,35 +20306,35 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetIdentityByPublicKeyHashResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * optional GetDataContractsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -20035,7 +20343,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.cle * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -20049,21 +20357,21 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.has * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0])); }; @@ -20081,8 +20389,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject(opt_includeInstance, this); }; @@ -20091,13 +20399,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.to * @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.WaitForStateTransitionResultRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -20111,23 +20419,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = f /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.WaitForStateTransitionResultRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20135,8 +20443,8 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeB var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -20152,9 +20460,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeB * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20162,18 +20470,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.se /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter ); } }; @@ -20195,8 +20503,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(opt_includeInstance, this); }; @@ -20205,14 +20513,17 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState * @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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - stateTransitionHash: msg.getStateTransitionHash_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + id: msg.getId_asB64(), + limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + startAtMs: jspb.Message.getFieldWithDefault(msg, 4, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) }; if (includeInstance) { @@ -20226,23 +20537,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20251,9 +20562,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStateTransitionHash(value); + msg.setId(value); break; case 2: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setLimit(value); + break; + case 3: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setOffset(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setStartAtMs(value); + break; + case 5: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); break; @@ -20270,9 +20595,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20280,23 +20605,46 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStateTransitionHash_asU8(); + f = message.getId_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } + f = message.getLimit(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOffset(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getStartAtMs(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } f = message.getProve(); if (f) { writer.writeBool( - 2, + 5, f ); } @@ -20304,89 +20652,181 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** - * optional bytes state_transition_hash = 1; + * optional bytes id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes state_transition_hash = 1; - * This is a type-conversion wrapper around `getStateTransitionHash()` + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStateTransitionHash())); + this.getId())); }; /** - * optional bytes state_transition_hash = 1; + * optional bytes id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStateTransitionHash()` + * This is a type-conversion wrapper around `getId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStateTransitionHash())); + this.getId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setStateTransitionHash = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} + * optional google.protobuf.UInt32Value limit = 2; + * @return {?proto.google.protobuf.UInt32Value} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getLimit = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** - * optional WaitForStateTransitionResultRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearLimit = function() { + return this.setLimit(undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0], value); + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.UInt32Value offset = 3; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getOffset = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearOffset = function() { + return this.setOffset(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint64 start_at_ms = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getStartAtMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setStartAtMs = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional bool prove = 5; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional GetDataContractHistoryRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -20395,7 +20835,7 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.cl * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -20409,21 +20849,21 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.ha * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0])); }; @@ -20441,8 +20881,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject(opt_includeInstance, this); }; @@ -20451,13 +20891,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.t * @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.WaitForStateTransitionResultResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -20471,23 +20911,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.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.WaitForStateTransitionResultResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20495,8 +20935,8 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserialize var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -20512,9 +20952,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserialize * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20522,18 +20962,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.s /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter ); } }; @@ -20548,22 +20988,22 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBi * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase = { RESULT_NOT_SET: 0, - ERROR: 1, + DATA_CONTRACT_HISTORY: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0])); }; @@ -20581,8 +21021,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(opt_includeInstance, this); }; @@ -20591,13 +21031,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat * @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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - error: (f = msg.getError()) && proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(includeInstance, f), + dataContractHistory: (f = msg.getDataContractHistory()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -20613,23 +21053,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20637,9 +21077,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.deserializeBinaryFromReader); - msg.setError(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader); + msg.setDataContractHistory(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -20664,9 +21104,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20674,18 +21114,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getError(); + f = message.getDataContractHistory(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter ); } f = message.getProof(); @@ -20707,179 +21147,197 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat }; -/** - * optional StateTransitionBroadcastError error = 1; - * @return {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getError = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setError = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); -}; - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearError = function() { - return this.setError(undefined); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Returns whether this field is set. - * @return {boolean} + * 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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasError = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(opt_includeInstance, this); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject = function(includeInstance, msg) { + var f, obj = { + date: jspb.Message.getFieldWithDefault(msg, 1, 0), + value: msg.getValue_asB64() + }; -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader(msg, reader); }; /** - * Returns whether this field is set. - * @return {boolean} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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.setDate(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDate(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getValue_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + * optional uint64 date = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getDate = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setDate = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional WaitForStateTransitionResultResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * optional bytes value = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0], value); + * optional bytes value = 2; + * This is a type-conversion wrapper around `getValue()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getValue())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this + * optional bytes value = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getValue()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getValue())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setValue = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; /** - * 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.repeatedFields_ = [1]; @@ -20896,8 +21354,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(opt_includeInstance, this); }; @@ -20906,13 +21364,14 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = f * @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.GetConsensusParamsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(includeInstance, f) + dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject, includeInstance) }; if (includeInstance) { @@ -20926,23 +21385,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(in /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.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.GetConsensusParamsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20950,9 +21409,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromR var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader); + msg.addDataContractEntries(value); break; default: reader.skipField(); @@ -20967,9 +21426,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromR * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20977,207 +21436,196 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBin /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDataContractEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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} + * repeated DataContractHistoryEntry data_contract_entries = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.getDataContractEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, 1)); }; /** - * 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.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - height: jspb.Message.getFieldWithDefault(msg, 1, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.setDataContractEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.addDataContractEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, opt_index); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.clearDataContractEntriesList = function() { + return this.setDataContractEntriesList([]); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * optional DataContractHistory data_contract_history = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setHeight(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getDataContractHistory = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory, 1)); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setDataContractHistory = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearDataContractHistory = function() { + return this.setDataContractHistory(undefined); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getHeight(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 2, - f - ); - } +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasDataContractHistory = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional int32 height = 1; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setHeight = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * optional bool prove = 2; + * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional GetConsensusParamsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetDataContractHistoryResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -21186,7 +21634,7 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = fu * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -21200,21 +21648,21 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = func * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0])); }; @@ -21232,8 +21680,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject(opt_includeInstance, this); }; @@ -21242,13 +21690,13 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = * @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.GetConsensusParamsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -21262,23 +21710,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(i /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest; + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.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.GetConsensusParamsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -21286,8 +21734,8 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFrom var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -21303,9 +21751,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFrom * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -21313,24 +21761,50 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter ); } }; +/** + * 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.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_ = [[6,7]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase = { + START_NOT_SET: 0, + START_AFTER: 6, + START_AT: 7 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -21346,8 +21820,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(opt_includeInstance, this); }; @@ -21356,15 +21830,20 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. * @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.GetConsensusParamsResponse.ConsensusParamsBlock} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - maxBytes: jspb.Message.getFieldWithDefault(msg, 1, ""), - maxGas: jspb.Message.getFieldWithDefault(msg, 2, ""), - timeIotaMs: jspb.Message.getFieldWithDefault(msg, 3, "") + dataContractId: msg.getDataContractId_asB64(), + documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), + where: msg.getWhere_asB64(), + orderBy: msg.getOrderBy_asB64(), + limit: jspb.Message.getFieldWithDefault(msg, 5, 0), + startAfter: msg.getStartAfter_asB64(), + startAt: msg.getStartAt_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) }; if (includeInstance) { @@ -21378,23 +21857,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.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.GetConsensusParamsResponse.ConsensusParamsBlock} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -21402,16 +21881,36 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxBytes(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDataContractId(value); break; case 2: var value = /** @type {string} */ (reader.readString()); - msg.setMaxGas(value); + msg.setDocumentType(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTimeIotaMs(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setWhere(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setOrderBy(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 6: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAfter(value); + break; + case 7: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAt(value); + break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -21426,9 +21925,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -21436,433 +21935,341 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getMaxBytes(); + f = message.getDataContractId_asU8(); if (f.length > 0) { - writer.writeString( + writer.writeBytes( 1, f ); } - f = message.getMaxGas(); + f = message.getDocumentType(); if (f.length > 0) { writer.writeString( 2, f ); } - f = message.getTimeIotaMs(); + f = message.getWhere_asU8(); if (f.length > 0) { - writer.writeString( + writer.writeBytes( 3, f ); } + f = message.getOrderBy_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getLimit(); + if (f !== 0) { + writer.writeUint32( + 5, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 6)); + if (f != null) { + writer.writeBytes( + 6, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeBytes( + 7, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 8, + f + ); + } }; /** - * optional string max_bytes = 1; + * optional bytes data_contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxBytes = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * optional bytes data_contract_id = 1; + * This is a type-conversion wrapper around `getDataContractId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxBytes = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDataContractId())); }; /** - * optional string max_gas = 2; + * optional bytes data_contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDataContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDataContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDataContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type = 2; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxGas = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDocumentType = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxGas = function(value) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDocumentType = function(value) { return jspb.Message.setProto3StringField(this, 2, value); }; /** - * optional string time_iota_ms = 3; + * optional bytes where = 3; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getTimeIotaMs = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * optional bytes where = 3; + * This is a type-conversion wrapper around `getWhere()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setTimeIotaMs = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getWhere())); }; - - - -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} + * optional bytes where = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getWhere()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getWhere())); }; /** - * 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.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject = function(includeInstance, msg) { - var f, obj = { - maxAgeNumBlocks: jspb.Message.getFieldWithDefault(msg, 1, ""), - maxAgeDuration: jspb.Message.getFieldWithDefault(msg, 2, ""), - maxBytes: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setWhere = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + * optional bytes order_by = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + * optional bytes order_by = 4; + * This is a type-conversion wrapper around `getOrderBy()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxAgeNumBlocks(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxAgeDuration(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxBytes(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getOrderBy())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes order_by = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getOrderBy()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getOrderBy())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getMaxAgeNumBlocks(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getMaxAgeDuration(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getMaxBytes(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setOrderBy = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); }; /** - * optional string max_age_num_blocks = 1; - * @return {string} + * optional uint32 limit = 5; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeNumBlocks = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeNumBlocks = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); }; /** - * optional string max_age_duration = 2; + * optional bytes start_after = 6; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeDuration = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeDuration = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); }; /** - * optional string max_bytes = 3; + * optional bytes start_after = 6; + * This is a type-conversion wrapper around `getStartAfter()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxBytes = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAfter())); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + * optional bytes start_after = 6; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAfter()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxBytes = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAfter())); }; - - - -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} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAfter = function(value) { + return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); }; /** - * 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.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - block: (f = msg.getBlock()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(includeInstance, f), - evidence: (f = msg.getEvidence()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAfter = function() { + return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAfter = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * optional bytes start_at = 7; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.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.GetConsensusParamsResponse.ConsensusParamsBlock; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader); - msg.setBlock(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader); - msg.setEvidence(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional bytes start_at = 7; + * This is a type-conversion wrapper around `getStartAt()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAt())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional bytes start_at = 7; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAt()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getBlock(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter - ); - } - f = message.getEvidence(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAt())); }; /** - * optional ConsensusParamsBlock block = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getBlock = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setBlock = function(value) { - return jspb.Message.setWrapperField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAt = function(value) { + return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearBlock = function() { - return this.setBlock(undefined); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAt = function() { + return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); }; @@ -21870,72 +22277,53 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsRes * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasBlock = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional ConsensusParamsEvidence evidence = 2; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getEvidence = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setEvidence = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAt = function() { + return jspb.Message.getField(this, 7) != null; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + * optional bool prove = 8; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearEvidence = function() { - return this.setEvidence(undefined); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasEvidence = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); }; /** - * optional GetConsensusParamsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * optional GetDocumentsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -21944,7 +22332,7 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = f * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -21958,21 +22346,21 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.hasV0 = fun * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0])); }; @@ -21990,8 +22378,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject(opt_includeInstance, this); }; @@ -22000,13 +22388,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype. * @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.GetProtocolVersionUpgradeStateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22020,23 +22408,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.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.GetProtocolVersionUpgradeStateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22044,8 +22432,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -22061,9 +22449,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22071,24 +22459,50 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter ); } }; +/** + * 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.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + DOCUMENTS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -22104,8 +22518,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(opt_includeInstance, this); }; @@ -22114,13 +22528,15 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco * @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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + documents: (f = msg.getDocuments()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -22134,23 +22550,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22158,8 +22574,19 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader); + msg.setDocuments(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -22174,9 +22601,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22184,102 +22611,46 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getDocuments(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; -/** - * optional bool prove = 1; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); -}; - /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} returns this + * List of repeated fields within this message type. + * @private {!Array} + * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); -}; - - -/** - * optional GetProtocolVersionUpgradeStateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.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.GetProtocolVersionUpgradeStateResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.repeatedFields_ = [1]; @@ -22296,8 +22667,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(opt_includeInstance, this); }; @@ -22306,13 +22677,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * @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.GetProtocolVersionUpgradeStateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(includeInstance, f) + documentsList: msg.getDocumentsList_asB64() }; if (includeInstance) { @@ -22326,23 +22697,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.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.GetProtocolVersionUpgradeStateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22350,9 +22721,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addDocuments(value); break; default: reader.skipField(); @@ -22367,9 +22737,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22377,23 +22747,231 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDocumentsList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter + f ); } }; +/** + * repeated bytes documents = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * repeated bytes documents = 1; + * This is a type-conversion wrapper around `getDocumentsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getDocumentsList())); +}; + + +/** + * repeated bytes documents = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocumentsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getDocumentsList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.setDocumentsList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.addDocuments = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.clearDocumentsList = function() { + return this.setDocumentsList([]); +}; + + +/** + * optional Documents documents = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getDocuments = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setDocuments = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearDocuments = function() { + return this.setDocuments(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasDocuments = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetDocumentsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + /** * Oneof group definitions for this message. Each group defines the field @@ -22403,22 +22981,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serialize * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VERSIONS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0])); }; @@ -22436,8 +23013,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject(opt_includeInstance, this); }; @@ -22446,15 +23023,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = function(includeInstance, msg) { var f, obj = { - versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22468,23 +23043,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22492,19 +23067,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader); - msg.setVersions(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -22519,9 +23084,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22529,47 +23094,24 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersions(); + f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.repeatedFields_ = [1]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -22585,8 +23127,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(opt_includeInstance, this); }; @@ -22595,14 +23137,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - versionsList: jspb.Message.toObjectList(msg.getVersionsList(), - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject, includeInstance) + publicKeyHash: msg.getPublicKeyHash_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -22616,23 +23158,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22640,9 +23182,12 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader); - msg.addVersions(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPublicKeyHash(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -22657,9 +23202,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22667,64 +23212,154 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionsList(); + f = message.getPublicKeyHash_asU8(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f ); } }; /** - * repeated VersionEntry versions = 1; - * @return {!Array} + * optional bytes public_key_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.getVersionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.setVersionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * optional bytes public_key_hash = 1; + * This is a type-conversion wrapper around `getPublicKeyHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPublicKeyHash())); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * optional bytes public_key_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPublicKeyHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.addVersions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, opt_index); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPublicKeyHash())); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.clearVersionsList = function() { - return this.setVersionsList([]); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setPublicKeyHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; - - - +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional GetIdentityByPublicKeyHashRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.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.GetIdentityByPublicKeyHashResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0])); +}; + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -22738,8 +23373,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject(opt_includeInstance, this); }; @@ -22748,14 +23383,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = function(includeInstance, msg) { var f, obj = { - versionNumber: jspb.Message.getFieldWithDefault(msg, 1, 0), - voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22769,23 +23403,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22793,12 +23427,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVersionNumber(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVoteCount(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -22813,9 +23444,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22823,90 +23454,237 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionNumber(); - if (f !== 0) { - writer.writeUint32( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter ); } - f = message.getVoteCount(); - if (f !== 0) { - writer.writeUint32( - 2, - f - ); +}; + + + +/** + * 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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + IDENTITY: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + identity: msg.getIdentity_asB64(), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; } + return obj; }; +} /** - * optional uint32 version_number = 1; - * @return {number} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVersionNumber = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader(msg, reader); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVersionNumber = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.setIdentity(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional uint32 vote_count = 2; - * @return {number} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVoteCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVoteCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; /** - * optional Versions versions = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * optional bytes identity = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getVersions = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setVersions = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); + * optional bytes identity = 1; + * This is a type-conversion wrapper around `getIdentity()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentity())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * optional bytes identity = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentity()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearVersions = function() { - return this.setVersions(undefined); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentity())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setIdentity = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearIdentity = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], undefined); }; @@ -22914,7 +23692,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasVersions = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasIdentity = function() { return jspb.Message.getField(this, 1) != null; }; @@ -22923,7 +23701,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -22931,18 +23709,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -22951,7 +23729,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -22960,7 +23738,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -22968,18 +23746,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -22988,35 +23766,35 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetProtocolVersionUpgradeStateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * optional GetIdentityByPublicKeyHashResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -23025,7 +23803,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -23039,21 +23817,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0])); }; @@ -23071,8 +23849,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject(opt_includeInstance, this); }; @@ -23081,13 +23859,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * @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.GetProtocolVersionUpgradeVoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23101,23 +23879,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObj /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.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.GetProtocolVersionUpgradeVoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23125,8 +23903,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deser var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -23142,9 +23920,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deser * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23152,18 +23930,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter ); } }; @@ -23185,8 +23963,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(opt_includeInstance, this); }; @@ -23195,15 +23973,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr * @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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - startProTxHash: msg.getStartProTxHash_asB64(), - count: jspb.Message.getFieldWithDefault(msg, 2, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) + stateTransitionHash: msg.getStateTransitionHash_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -23217,23 +23994,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23242,13 +24019,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartProTxHash(value); + msg.setStateTransitionHash(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 3: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); break; @@ -23265,9 +24038,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23275,30 +24048,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartProTxHash_asU8(); + f = message.getStateTransitionHash_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getCount(); - if (f !== 0) { - writer.writeUint32( - 2, - f - ); - } f = message.getProve(); if (f) { writer.writeBool( - 3, + 2, f ); } @@ -23306,107 +24072,89 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** - * optional bytes start_pro_tx_hash = 1; + * optional bytes state_transition_hash = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes start_pro_tx_hash = 1; - * This is a type-conversion wrapper around `getStartProTxHash()` + * optional bytes state_transition_hash = 1; + * This is a type-conversion wrapper around `getStateTransitionHash()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartProTxHash())); + this.getStateTransitionHash())); }; /** - * optional bytes start_pro_tx_hash = 1; + * optional bytes state_transition_hash = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartProTxHash()` + * This is a type-conversion wrapper around `getStateTransitionHash()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartProTxHash())); + this.getStateTransitionHash())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setStartProTxHash = function(value) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setStateTransitionHash = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional uint32 count = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional bool prove = 3; + * optional bool prove = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetProtocolVersionUpgradeVoteStatusRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * optional WaitForStateTransitionResultRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0, 1)); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -23415,7 +24163,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -23429,21 +24177,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0])); }; @@ -23461,8 +24209,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject(opt_includeInstance, this); }; @@ -23471,13 +24219,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * @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.GetProtocolVersionUpgradeVoteStatusResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23491,23 +24239,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toOb /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.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.GetProtocolVersionUpgradeVoteStatusResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23515,8 +24263,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.dese var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -23532,9 +24280,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.dese * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23542,18 +24290,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter ); } }; @@ -23568,22 +24316,22 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.seri * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase = { RESULT_NOT_SET: 0, - VERSIONS: 1, + ERROR: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0])); }; @@ -23601,8 +24349,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(opt_includeInstance, this); }; @@ -23611,13 +24359,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(includeInstance, f), + error: (f = msg.getError()) && proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -23633,23 +24381,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23657,9 +24405,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader); - msg.setVersions(value); + var value = new proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.deserializeBinaryFromReader); + msg.setError(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -23684,9 +24432,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23694,18 +24442,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersions(); + f = message.getError(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.serializeBinaryToWriter ); } f = message.getProof(); @@ -23727,13 +24475,179 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP }; +/** + * optional StateTransitionBroadcastError error = 1; + * @return {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getError = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setError = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearError = function() { + return this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional WaitForStateTransitionResultResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0])); +}; @@ -23750,8 +24664,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject(opt_includeInstance, this); }; @@ -23760,14 +24674,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(includeInstance, msg) { var f, obj = { - versionSignalsList: jspb.Message.toObjectList(msg.getVersionSignalsList(), - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23781,23 +24694,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23805,9 +24718,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader); - msg.addVersionSignals(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -23822,9 +24735,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23832,61 +24745,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionSignalsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated VersionSignal version_signals = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.getVersionSignalsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.setVersionSignalsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.addVersionSignals = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.clearVersionSignalsList = function() { - return this.setVersionSignalsList([]); -}; - - @@ -23903,8 +24778,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(opt_includeInstance, this); }; @@ -23913,14 +24788,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - proTxHash: msg.getProTxHash_asB64(), - version: jspb.Message.getFieldWithDefault(msg, 2, 0) + height: jspb.Message.getFieldWithDefault(msg, 1, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -23934,23 +24809,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23958,12 +24833,12 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setProTxHash(value); + var value = /** @type {number} */ (reader.readInt32()); + msg.setHeight(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVersion(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -23978,9 +24853,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23988,22 +24863,22 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProTxHash_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getHeight(); + if (f !== 0) { + writer.writeInt32( 1, f ); } - f = message.getVersion(); - if (f !== 0) { - writer.writeUint32( + f = message.getProve(); + if (f) { + writer.writeBool( 2, f ); @@ -24012,200 +24887,65 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** - * optional bytes pro_tx_hash = 1; - * @return {string} + * optional int32 height = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * optional bytes pro_tx_hash = 1; - * This is a type-conversion wrapper around `getProTxHash()` - * @return {string} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getProTxHash())); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setHeight = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional bytes pro_tx_hash = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getProTxHash()` - * @return {!Uint8Array} + * optional bool prove = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getProTxHash())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setProTxHash = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional uint32 version = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getVersion = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setVersion = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional VersionSignals versions = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getVersions = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setVersions = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearVersions = function() { - return this.setVersions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasVersions = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetProtocolVersionUpgradeVoteStatusResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * optional GetConsensusParamsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -24214,7 +24954,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -24228,21 +24968,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0])); }; @@ -24260,8 +25000,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject(opt_includeInstance, this); }; @@ -24270,13 +25010,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = functi * @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.GetEpochsInfoRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -24290,23 +25030,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(include /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.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.GetEpochsInfoRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24314,8 +25054,8 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -24331,9 +25071,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24341,18 +25081,18 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter ); } }; @@ -24374,8 +25114,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(opt_includeInstance, this); }; @@ -24384,16 +25124,15 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prot * @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.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject = function(includeInstance, msg) { var f, obj = { - startEpoch: (f = msg.getStartEpoch()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 2, 0), - ascending: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) + maxBytes: jspb.Message.getFieldWithDefault(msg, 1, ""), + maxGas: jspb.Message.getFieldWithDefault(msg, 2, ""), + timeIotaMs: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -24407,23 +25146,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toOb /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24431,21 +25170,16 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.dese var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setStartEpoch(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxBytes(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxGas(value); break; case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAscending(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {string} */ (reader.readString()); + msg.setTimeIotaMs(value); break; default: reader.skipField(); @@ -24460,9 +25194,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.dese * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24470,198 +25204,91 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartEpoch(); - if (f != null) { - writer.writeMessage( + f = message.getMaxBytes(); + if (f.length > 0) { + writer.writeString( 1, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + f ); } - f = message.getCount(); - if (f !== 0) { - writer.writeUint32( + f = message.getMaxGas(); + if (f.length > 0) { + writer.writeString( 2, f ); } - f = message.getAscending(); - if (f) { - writer.writeBool( + f = message.getTimeIotaMs(); + if (f.length > 0) { + writer.writeString( 3, f ); } - f = message.getProve(); - if (f) { - writer.writeBool( - 4, - f - ); - } -}; - - -/** - * optional google.protobuf.UInt32Value start_epoch = 1; - * @return {?proto.google.protobuf.UInt32Value} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getStartEpoch = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 1)); -}; - - -/** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setStartEpoch = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.clearStartEpoch = function() { - return this.setStartEpoch(undefined); }; /** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.hasStartEpoch = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional uint32 count = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional bool ascending = 3; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + * optional string max_bytes = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxBytes = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bool prove = 4; - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxBytes = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + * optional string max_gas = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxGas = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * optional GetEpochsInfoRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxGas = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this + * optional string time_iota_ms = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getTimeIotaMs = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setTimeIotaMs = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; -/** - * 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.GetEpochsInfoResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -24677,8 +25304,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(opt_includeInstance, this); }; @@ -24687,13 +25314,15 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = funct * @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.GetEpochsInfoResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(includeInstance, f) + maxAgeNumBlocks: jspb.Message.getFieldWithDefault(msg, 1, ""), + maxAgeDuration: jspb.Message.getFieldWithDefault(msg, 2, ""), + maxBytes: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -24707,23 +25336,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.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.GetEpochsInfoResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24731,9 +25360,16 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReade var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxAgeNumBlocks(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setMaxAgeDuration(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setMaxBytes(value); break; default: reader.skipField(); @@ -24748,9 +25384,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReade * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24758,52 +25394,93 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getMaxAgeNumBlocks(); + if (f.length > 0) { + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getMaxAgeDuration(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getMaxBytes(); + if (f.length > 0) { + writer.writeString( + 3, + f ); } }; - /** - * 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 + * optional string max_age_num_blocks = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeNumBlocks = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + /** - * @enum {number} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - EPOCHS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeNumBlocks = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} + * optional string max_age_duration = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeDuration = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeDuration = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string max_bytes = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxBytes = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxBytes = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -24817,8 +25494,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(opt_includeInstance, this); }; @@ -24827,15 +25504,14 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.pr * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - epochs: (f = msg.getEpochs()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + block: (f = msg.getBlock()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(includeInstance, f), + evidence: (f = msg.getEvidence()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(includeInstance, f) }; if (includeInstance) { @@ -24849,23 +25525,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.to /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24873,19 +25549,14 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.de var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader); - msg.setEpochs(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader); + msg.setBlock(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader); + msg.setEvidence(value); break; default: reader.skipField(); @@ -24900,9 +25571,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.de * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24910,46 +25581,167 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.pr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEpochs(); + f = message.getBlock(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter ); } - f = message.getProof(); + f = message.getEvidence(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter ); } }; +/** + * optional ConsensusParamsBlock block = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getBlock = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setBlock = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearBlock = function() { + return this.setBlock(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasBlock = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional ConsensusParamsEvidence evidence = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getEvidence = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setEvidence = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearEvidence = function() { + return this.setEvidence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasEvidence = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional GetConsensusParamsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0])); +}; @@ -24966,8 +25758,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject(opt_includeInstance, this); }; @@ -24976,14 +25768,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = function(includeInstance, msg) { var f, obj = { - epochInfosList: jspb.Message.toObjectList(msg.getEpochInfosList(), - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -24997,23 +25788,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25021,9 +25812,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader); - msg.addEpochInfos(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -25038,9 +25829,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25048,61 +25839,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEpochInfosList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated EpochInfo epoch_infos = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.getEpochInfosList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.setEpochInfosList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.addEpochInfos = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.clearEpochInfosList = function() { - return this.setEpochInfosList([]); -}; - - @@ -25119,8 +25872,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(opt_includeInstance, this); }; @@ -25129,18 +25882,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - number: jspb.Message.getFieldWithDefault(msg, 1, 0), - firstBlockHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), - firstCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), - startTime: jspb.Message.getFieldWithDefault(msg, 4, 0), - feeMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0), - protocolVersion: jspb.Message.getFieldWithDefault(msg, 6, 0) + prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) }; if (includeInstance) { @@ -25154,23 +25902,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25178,28 +25926,8 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint32()); - msg.setNumber(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFirstBlockHeight(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFirstCoreBlockHeight(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartTime(value); - break; - case 5: - var value = /** @type {number} */ (reader.readDouble()); - msg.setFeeMultiplier(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setProtocolVersion(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -25214,9 +25942,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25224,337 +25952,101 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getNumber(); - if (f !== 0) { - writer.writeUint32( + f = message.getProve(); + if (f) { + writer.writeBool( 1, f ); } - f = message.getFirstBlockHeight(); - if (f !== 0) { - writer.writeUint64( - 2, - f - ); - } - f = message.getFirstCoreBlockHeight(); - if (f !== 0) { - writer.writeUint32( - 3, - f - ); - } - f = message.getStartTime(); - if (f !== 0) { - writer.writeUint64( - 4, - f - ); - } - f = message.getFeeMultiplier(); - if (f !== 0.0) { - writer.writeDouble( - 5, - f - ); - } - f = message.getProtocolVersion(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } }; /** - * optional uint32 number = 1; - * @return {number} + * optional bool prove = 1; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getNumber = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setNumber = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; /** - * optional uint64 first_block_height = 2; - * @return {number} + * optional GetProtocolVersionUpgradeStateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0], value); }; /** - * optional uint32 first_core_block_height = 3; - * @return {number} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstCoreBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstCoreBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; + /** - * optional uint64 start_time = 4; - * @return {number} + * 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getStartTime = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setStartTime = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional double fee_multiplier = 5; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFeeMultiplier = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFeeMultiplier = function(value) { - return jspb.Message.setProto3FloatField(this, 5, value); -}; - - -/** - * optional uint32 protocol_version = 6; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getProtocolVersion = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setProtocolVersion = function(value) { - return jspb.Message.setProto3IntField(this, 6, value); -}; - - -/** - * optional EpochInfos epochs = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getEpochs = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setEpochs = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearEpochs = function() { - return this.setEpochs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasEpochs = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional GetEpochsInfoResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.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.GetContestedResourcesRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0])); }; @@ -25572,8 +26064,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject(opt_includeInstance, this); }; @@ -25582,13 +26074,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject * @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.GetContestedResourcesRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -25602,23 +26094,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.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.GetContestedResourcesRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25626,8 +26118,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFr var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -25643,9 +26135,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25653,18 +26145,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serialize /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter ); } }; @@ -25672,11 +26164,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWr /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.repeatedFields_ = [4,5]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VERSIONS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0])); +}; @@ -25693,8 +26204,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(opt_includeInstance, this); }; @@ -25703,21 +26214,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - startIndexValuesList: msg.getStartIndexValuesList_asB64(), - endIndexValuesList: msg.getEndIndexValuesList_asB64(), - startAtValueInfo: (f = msg.getStartAtValueInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 7, 0), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -25731,23 +26236,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25755,41 +26260,19 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader); + msg.setVersions(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addStartIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addEndIndexValues(value); - break; - case 6: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader); - msg.setStartAtValueInfo(value); - break; - case 7: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 9: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -25804,9 +26287,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25814,80 +26297,47 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getVersions(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getStartIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getEndIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter ); } - f = message.getStartAtValueInfo(); + f = message.getProof(); if (f != null) { writer.writeMessage( - 6, + 2, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 7)); + f = message.getMetadata(); if (f != null) { - writer.writeUint32( - 7, - f - ); - } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 9, - f + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -25903,8 +26353,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(opt_includeInstance, this); }; @@ -25913,14 +26363,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject = function(includeInstance, msg) { var f, obj = { - startValue: msg.getStartValue_asB64(), - startValueIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + versionsList: jspb.Message.toObjectList(msg.getVersionsList(), + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject, includeInstance) }; if (includeInstance) { @@ -25934,23 +26384,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25958,12 +26408,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartValue(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartValueIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader); + msg.addVersions(value); break; default: reader.skipField(); @@ -25978,9 +26425,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25988,314 +26435,246 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartValue_asU8(); + f = message.getVersionsList(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getStartValueIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter ); } }; /** - * optional bytes start_value = 1; - * @return {string} + * repeated VersionEntry versions = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.getVersionsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, 1)); }; /** - * optional bytes start_value = 1; - * This is a type-conversion wrapper around `getStartValue()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartValue())); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.setVersionsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bytes start_value = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartValue()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartValue())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValue = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bool start_value_included = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValueIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValueIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.addVersions = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, opt_index); }; /** - * optional string index_name = 3; - * @return {string} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.clearVersionsList = function() { + return this.setVersionsList([]); }; -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - -/** - * repeated bytes start_index_values = 4; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes start_index_values = 4; - * This is a type-conversion wrapper around `getStartIndexValuesList()` - * @return {!Array} + * 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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getStartIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(opt_includeInstance, this); }; /** - * repeated bytes start_index_values = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIndexValuesList()` - * @return {!Array} + * 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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getStartIndexValuesList())); -}; - +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject = function(includeInstance, msg) { + var f, obj = { + versionNumber: jspb.Message.getFieldWithDefault(msg, 1, 0), + voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; -/** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addStartIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartIndexValuesList = function() { - return this.setStartIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVersionNumber(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVoteCount(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * repeated bytes end_index_values = 5; - * @return {!Array} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * repeated bytes end_index_values = 5; - * This is a type-conversion wrapper around `getEndIndexValuesList()` - * @return {!Array} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getEndIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVersionNumber(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getVoteCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } }; /** - * repeated bytes end_index_values = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getEndIndexValuesList()` - * @return {!Array} + * optional uint32 version_number = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getEndIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVersionNumber = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setEndIndexValuesList = function(value) { - return jspb.Message.setField(this, 5, value || []); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVersionNumber = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * optional uint32 vote_count = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addEndIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVoteCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearEndIndexValuesList = function() { - return this.setEndIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVoteCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * optional StartAtValueInfo start_at_value_info = 6; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * optional Versions versions = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartAtValueInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo, 6)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getVersions = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartAtValueInfo = function(value) { - return jspb.Message.setWrapperField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setVersions = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartAtValueInfo = function() { - return this.setStartAtValueInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearVersions = function() { + return this.setVersions(undefined); }; @@ -26303,35 +26682,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasStartAtValueInfo = function() { - return jspb.Message.getField(this, 6) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasVersions = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint32 count = 7; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 7, value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 7, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -26339,71 +26719,72 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 7) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bool order_ascending = 8; - * @return {boolean} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * optional bool prove = 9; - * @return {boolean} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 9, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetContestedResourcesRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * optional GetProtocolVersionUpgradeStateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -26412,7 +26793,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -26426,21 +26807,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = f * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0])); }; @@ -26458,8 +26839,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -26468,13 +26849,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject * @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.GetContestedResourcesResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -26488,23 +26869,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = functio /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.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.GetContestedResourcesResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -26512,8 +26893,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryF var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -26529,9 +26910,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryF * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -26539,50 +26920,24 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter ); } }; -/** - * 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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_VALUES: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -26598,8 +26953,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(opt_includeInstance, this); }; @@ -26608,15 +26963,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour * @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.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceValues: (f = msg.getContestedResourceValues()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + startProTxHash: msg.getStartProTxHash_asB64(), + count: jspb.Message.getFieldWithDefault(msg, 2, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -26630,23 +26985,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -26654,19 +27009,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader); - msg.setContestedResourceValues(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartProTxHash(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -26681,9 +27033,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -26691,152 +27043,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceValues(); - if (f != null) { - writer.writeMessage( + f = message.getStartProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCount(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getProve(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.repeatedFields_ = [1]; - - - -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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject = function(includeInstance, msg) { - var f, obj = { - contestedResourceValuesList: msg.getContestedResourceValuesList_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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.addContestedResourceValues(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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContestedResourceValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 1, f ); } @@ -26844,201 +27074,107 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** - * repeated bytes contested_resource_values = 1; - * @return {!Array} + * optional bytes start_pro_tx_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * repeated bytes contested_resource_values = 1; - * This is a type-conversion wrapper around `getContestedResourceValuesList()` - * @return {!Array} + * optional bytes start_pro_tx_hash = 1; + * This is a type-conversion wrapper around `getStartProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getContestedResourceValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartProTxHash())); }; /** - * repeated bytes contested_resource_values = 1; + * optional bytes start_pro_tx_hash = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContestedResourceValuesList()` - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getContestedResourceValuesList())); -}; - - -/** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this + * This is a type-conversion wrapper around `getStartProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.setContestedResourceValuesList = function(value) { - return jspb.Message.setField(this, 1, value || []); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartProTxHash())); }; /** * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.addContestedResourceValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.clearContestedResourceValuesList = function() { - return this.setContestedResourceValuesList([]); -}; - - -/** - * optional ContestedResourceValues contested_resource_values = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getContestedResourceValues = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setContestedResourceValues = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearContestedResourceValues = function() { - return this.setContestedResourceValues(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasContestedResourceValues = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setStartProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional uint32 count = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * Returns whether this field is set. + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetContestedResourcesResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * optional GetProtocolVersionUpgradeVoteStatusRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -27047,7 +27183,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -27061,21 +27197,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0])); }; @@ -27093,8 +27229,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject(opt_includeInstance, this); }; @@ -27103,13 +27239,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject * @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.GetVotePollsByEndDateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -27123,23 +27259,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.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.GetVotePollsByEndDateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27147,8 +27283,8 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFr var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -27164,9 +27300,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27174,24 +27310,50 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serialize /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter ); } }; +/** + * 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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VERSIONS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -27207,8 +27369,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(opt_includeInstance, this); }; @@ -27217,18 +27379,15 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - startTimeInfo: (f = msg.getStartTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(includeInstance, f), - endTimeInfo: (f = msg.getEndTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(includeInstance, f), - limit: jspb.Message.getFieldWithDefault(msg, 3, 0), - offset: jspb.Message.getFieldWithDefault(msg, 4, 0), - ascending: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) + versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -27242,23 +27401,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27266,30 +27425,19 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader); - msg.setStartTimeInfo(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader); + msg.setVersions(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader); - msg.setEndTimeInfo(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLimit(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setOffset(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAscending(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -27304,9 +27452,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27314,60 +27462,47 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartTimeInfo(); + f = message.getVersions(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter ); } - f = message.getEndTimeInfo(); + f = message.getProof(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 3)); + f = message.getMetadata(); if (f != null) { - writer.writeUint32( + writer.writeMessage( 3, - f - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeUint32( - 4, - f - ); - } - f = message.getAscending(); - if (f) { - writer.writeBool( - 5, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 6, - f + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -27383,8 +27518,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(opt_includeInstance, this); }; @@ -27393,14 +27528,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject = function(includeInstance, msg) { var f, obj = { - startTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), - startTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + versionSignalsList: jspb.Message.toObjectList(msg.getVersionSignalsList(), + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject, includeInstance) }; if (includeInstance) { @@ -27414,23 +27549,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27438,12 +27573,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartTimeMs(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartTimeIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader); + msg.addVersionSignals(value); break; default: reader.skipField(); @@ -27458,9 +27590,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27468,62 +27600,58 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartTimeMs(); - if (f !== 0) { - writer.writeUint64( + f = message.getVersionSignalsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getStartTimeIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter ); } }; /** - * optional uint64 start_time_ms = 1; - * @return {number} + * repeated VersionSignal version_signals = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.getVersionSignalsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.setVersionSignalsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bool start_time_included = 2; - * @return {boolean} + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.addVersionSignals = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.clearVersionSignalsList = function() { + return this.setVersionSignalsList([]); }; @@ -27543,8 +27671,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(opt_includeInstance, this); }; @@ -27553,14 +27681,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject = function(includeInstance, msg) { var f, obj = { - endTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), - endTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + proTxHash: msg.getProTxHash_asB64(), + version: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -27574,23 +27702,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27598,12 +27726,12 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setEndTimeMs(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setEndTimeIncluded(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setVersion(value); break; default: reader.skipField(); @@ -27618,9 +27746,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27628,22 +27756,22 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEndTimeMs(); - if (f !== 0) { - writer.writeUint64( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, f ); } - f = message.getEndTimeIncluded(); - if (f) { - writer.writeBool( + f = message.getVersion(); + if (f !== 0) { + writer.writeUint32( 2, f ); @@ -27652,103 +27780,90 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** - * optional uint64 end_time_ms = 1; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + * optional bytes pro_tx_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bool end_time_included = 2; - * @return {boolean} + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); }; /** - * optional StartAtTimeInfo start_time_info = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getStartTimeInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setStartTimeInfo = function(value) { - return jspb.Message.setWrapperField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * optional uint32 version = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearStartTimeInfo = function() { - return this.setStartTimeInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getVersion = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasStartTimeInfo = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setVersion = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * optional EndAtTimeInfo end_time_info = 2; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * optional VersionSignals versions = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getEndTimeInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo, 2)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getVersions = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setEndTimeInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setVersions = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearEndTimeInfo = function() { - return this.setEndTimeInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearVersions = function() { + return this.setVersions(undefined); }; @@ -27756,35 +27871,36 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasEndTimeInfo = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasVersions = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint32 limit = 3; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getLimit = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setField(this, 3, value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearLimit = function() { - return jspb.Message.setField(this, 3, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -27792,35 +27908,36 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional uint32 offset = 4; - * @return {number} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getOffset = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setField(this, 4, value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearOffset = function() { - return jspb.Message.setField(this, 4, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; @@ -27828,71 +27945,35 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional bool ascending = 5; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 5, value); -}; - - -/** - * optional bool prove = 6; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetVotePollsByEndDateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * optional GetProtocolVersionUpgradeVoteStatusResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -27901,7 +27982,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -27915,21 +27996,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.hasV0 = f * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0])); }; @@ -27947,8 +28028,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject(opt_includeInstance, this); }; @@ -27957,13 +28038,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.toObject * @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.GetVotePollsByEndDateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -27977,23 +28058,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = functio /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.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.GetVotePollsByEndDateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28001,8 +28082,8 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryF var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -28018,9 +28099,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryF * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28028,50 +28109,24 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.serializ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter ); } }; -/** - * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VOTE_POLLS_BY_TIMESTAMPS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -28087,8 +28142,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(opt_includeInstance, this); }; @@ -28097,15 +28152,16 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - votePollsByTimestamps: (f = msg.getVotePollsByTimestamps()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + startEpoch: (f = msg.getStartEpoch()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 2, 0), + ascending: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) }; if (includeInstance) { @@ -28119,23 +28175,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28143,19 +28199,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader); - msg.setVotePollsByTimestamps(value); + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setStartEpoch(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAscending(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -28170,9 +28228,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28180,46 +28238,197 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotePollsByTimestamps(); + f = message.getStartEpoch(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCount(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getAscending(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 4, + f ); } }; +/** + * optional google.protobuf.UInt32Value start_epoch = 1; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getStartEpoch = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 1)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setStartEpoch = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.clearStartEpoch = function() { + return this.setStartEpoch(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.hasStartEpoch = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional bool ascending = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional bool prove = 4; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional GetEpochsInfoRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.repeatedFields_ = [2]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0])); +}; @@ -28236,8 +28445,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject(opt_includeInstance, this); }; @@ -28246,14 +28455,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includeInstance, msg) { var f, obj = { - timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0), - serializedVotePollsList: msg.getSerializedVotePollsList_asB64() + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -28267,23 +28475,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28291,12 +28499,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setTimestamp(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addSerializedVotePolls(value); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -28311,9 +28516,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28321,105 +28526,188 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getTimestamp(); - if (f !== 0) { - writer.writeUint64( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getSerializedVotePollsList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter ); } }; + /** - * optional uint64 timestamp = 1; - * @return {number} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getTimestamp = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_ = [[1,2]]; +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + EPOCHS: 1, + PROOF: 2 +}; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setTimestamp = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0])); }; + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes serialized_vote_polls = 2; - * @return {!Array} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(opt_includeInstance, this); }; /** - * repeated bytes serialized_vote_polls = 2; - * This is a type-conversion wrapper around `getSerializedVotePollsList()` - * @return {!Array} + * 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getSerializedVotePollsList())); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + epochs: (f = msg.getEpochs()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * repeated bytes serialized_vote_polls = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getSerializedVotePollsList()` - * @return {!Array} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getSerializedVotePollsList())); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader(msg, reader); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setSerializedVotePollsList = function(value) { - return jspb.Message.setField(this, 2, value || []); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader); + msg.setEpochs(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.addSerializedVotePolls = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.clearSerializedVotePollsList = function() { - return this.setSerializedVotePollsList([]); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEpochs(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; @@ -28429,7 +28717,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.repeatedFields_ = [1]; @@ -28446,8 +28734,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(opt_includeInstance, this); }; @@ -28456,15 +28744,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject = function(includeInstance, msg) { var f, obj = { - votePollsByTimestampsList: jspb.Message.toObjectList(msg.getVotePollsByTimestampsList(), - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject, includeInstance), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + epochInfosList: jspb.Message.toObjectList(msg.getEpochInfosList(), + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject, includeInstance) }; if (includeInstance) { @@ -28478,23 +28765,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28502,13 +28789,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader); - msg.addVotePollsByTimestamps(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader); + msg.addEpochInfos(value); break; default: reader.skipField(); @@ -28523,9 +28806,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28533,111 +28816,366 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotePollsByTimestampsList(); + f = message.getEpochInfosList(); if (f.length > 0) { writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter - ); - } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( - 2, - f + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter ); } }; /** - * repeated SerializedVotePollsByTimestamp vote_polls_by_timestamps = 1; - * @return {!Array} + * repeated EpochInfo epoch_infos = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getVotePollsByTimestampsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.getEpochInfosList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, 1)); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setVotePollsByTimestampsList = function(value) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.setEpochInfosList = function(value) { return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp=} opt_value + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo=} opt_value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.addVotePollsByTimestamps = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, opt_index); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.addEpochInfos = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.clearVotePollsByTimestampsList = function() { - return this.setVotePollsByTimestampsList([]); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.clearEpochInfosList = function() { + return this.setEpochInfosList([]); }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bool finished_results = 2; - * @return {boolean} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(opt_includeInstance, this); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject = function(includeInstance, msg) { + var f, obj = { + number: jspb.Message.getFieldWithDefault(msg, 1, 0), + firstBlockHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), + firstCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), + startTime: jspb.Message.getFieldWithDefault(msg, 4, 0), + feeMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0), + protocolVersion: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional SerializedVotePollsByTimestamps vote_polls_by_timestamps = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getVotePollsByTimestamps = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader(msg, reader); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setNumber(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFirstBlockHeight(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFirstCoreBlockHeight(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setStartTime(value); + break; + case 5: + var value = /** @type {number} */ (reader.readDouble()); + msg.setFeeMultiplier(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setProtocolVersion(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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getNumber(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getFirstBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getFirstCoreBlockHeight(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getStartTime(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getFeeMultiplier(); + if (f !== 0.0) { + writer.writeDouble( + 5, + f + ); + } + f = message.getProtocolVersion(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * optional uint32 number = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getNumber = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setNumber = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 first_block_height = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint32 first_core_block_height = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstCoreBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstCoreBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint64 start_time = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getStartTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setStartTime = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional double fee_multiplier = 5; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFeeMultiplier = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFeeMultiplier = function(value) { + return jspb.Message.setProto3FloatField(this, 5, value); +}; + + +/** + * optional uint32 protocol_version = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getProtocolVersion = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setProtocolVersion = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional EpochInfos epochs = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getEpochs = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setVotePollsByTimestamps = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setEpochs = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearVotePollsByTimestamps = function() { - return this.setVotePollsByTimestamps(undefined); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearEpochs = function() { + return this.setEpochs(undefined); }; @@ -28645,7 +29183,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasVotePollsByTimestamps = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasEpochs = function() { return jspb.Message.getField(this, 1) != null; }; @@ -28654,7 +29192,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -28662,18 +29200,18 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -28682,7 +29220,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -28691,7 +29229,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -28699,18 +29237,18 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -28719,35 +29257,35 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetVotePollsByEndDateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * optional GetEpochsInfoResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -28756,7 +29294,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -28770,21 +29308,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0])); }; @@ -28802,8 +29340,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject(opt_includeInstance, this); }; @@ -28812,13 +29350,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.t * @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.GetContestedResourceVoteStateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -28832,23 +29370,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.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.GetContestedResourceVoteStateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28856,8 +29394,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserialize var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -28873,9 +29411,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserialize * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28883,18 +29421,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.s /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter ); } }; @@ -28906,7 +29444,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBi * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.repeatedFields_ = [4,5]; @@ -28923,8 +29461,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(opt_includeInstance, this); }; @@ -28933,20 +29471,20 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject = function(includeInstance, msg) { var f, obj = { contractId: msg.getContractId_asB64(), documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - resultType: jspb.Message.getFieldWithDefault(msg, 5, 0), - allowIncludeLockedAndAbstainingVoteTally: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), - startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 8, 0), + startIndexValuesList: msg.getStartIndexValuesList_asB64(), + endIndexValuesList: msg.getEndIndexValuesList_asB64(), + startAtValueInfo: (f = msg.getStartAtValueInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 7, 0), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) }; @@ -28961,23 +29499,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28998,25 +29536,25 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste break; case 4: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); + msg.addStartIndexValues(value); break; case 5: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (reader.readEnum()); - msg.setResultType(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addEndIndexValues(value); break; case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowIncludeLockedAndAbstainingVoteTally(value); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader); + msg.setStartAtValueInfo(value); break; case 7: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); - msg.setStartAtIdentifierInfo(value); - break; - case 8: var value = /** @type {number} */ (reader.readUint32()); msg.setCount(value); break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; case 9: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); @@ -29034,9 +29572,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29044,11 +29582,11 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getContractId_asU8(); if (f.length > 0) { @@ -29071,38 +29609,38 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste f ); } - f = message.getIndexValuesList_asU8(); + f = message.getStartIndexValuesList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 4, f ); } - f = message.getResultType(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getEndIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 5, f ); } - f = message.getAllowIncludeLockedAndAbstainingVoteTally(); - if (f) { - writer.writeBool( - 6, - f - ); - } - f = message.getStartAtIdentifierInfo(); + f = message.getStartAtValueInfo(); if (f != null) { writer.writeMessage( - 7, + 6, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 8)); + f = /** @type {number} */ (jspb.Message.getField(message, 7)); if (f != null) { writer.writeUint32( + 7, + f + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( 8, f ); @@ -29117,15 +29655,6 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType = { - DOCUMENTS: 0, - VOTE_TALLY: 1, - DOCUMENTS_AND_VOTE_TALLY: 2 -}; - @@ -29142,8 +29671,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(opt_includeInstance, this); }; @@ -29152,14 +29681,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject = function(includeInstance, msg) { var f, obj = { - startIdentifier: msg.getStartIdentifier_asB64(), - startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + startValue: msg.getStartValue_asB64(), + startValueIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -29173,23 +29702,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29198,11 +29727,11 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartIdentifier(value); + msg.setStartValue(value); break; case 2: var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartIdentifierIncluded(value); + msg.setStartValueIncluded(value); break; default: reader.skipField(); @@ -29217,9 +29746,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29227,20 +29756,20 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartIdentifier_asU8(); + f = message.getStartValue_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getStartIdentifierIncluded(); + f = message.getStartValueIncluded(); if (f) { writer.writeBool( 2, @@ -29251,61 +29780,61 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** - * optional bytes start_identifier = 1; + * optional bytes start_value = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes start_identifier = 1; - * This is a type-conversion wrapper around `getStartIdentifier()` + * optional bytes start_value = 1; + * This is a type-conversion wrapper around `getStartValue()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartIdentifier())); + this.getStartValue())); }; /** - * optional bytes start_identifier = 1; + * optional bytes start_value = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIdentifier()` + * This is a type-conversion wrapper around `getStartValue()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartIdentifier())); + this.getStartValue())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValue = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool start_identifier_included = 2; + * optional bool start_value_included = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValueIncluded = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValueIncluded = function(value) { return jspb.Message.setProto3BooleanField(this, 2, value); }; @@ -29314,7 +29843,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional bytes contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; @@ -29324,7 +29853,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * This is a type-conversion wrapper around `getContractId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( this.getContractId())); }; @@ -29337,7 +29866,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * This is a type-conversion wrapper around `getContractId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( this.getContractId())); }; @@ -29345,9 +29874,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setContractId = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setContractId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; @@ -29356,16 +29885,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional string document_type_name = 2; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getDocumentTypeName = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getDocumentTypeName = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setDocumentTypeName = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setDocumentTypeName = function(value) { return jspb.Message.setProto3StringField(this, 2, value); }; @@ -29374,58 +29903,58 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional string index_name = 3; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexName = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getIndexName = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexName = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setIndexName = function(value) { return jspb.Message.setProto3StringField(this, 3, value); }; /** - * repeated bytes index_values = 4; + * repeated bytes start_index_values = 4; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` + * repeated bytes start_index_values = 4; + * This is a type-conversion wrapper around `getStartIndexValuesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); + this.getStartIndexValuesList())); }; /** - * repeated bytes index_values = 4; + * repeated bytes start_index_values = 4; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` + * This is a type-conversion wrapper around `getStartIndexValuesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); + this.getStartIndexValuesList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexValuesList = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartIndexValuesList = function(value) { return jspb.Message.setField(this, 4, value || []); }; @@ -29433,83 +29962,108 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.addIndexValues = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addStartIndexValues = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 4, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartIndexValuesList = function() { + return this.setStartIndexValuesList([]); }; /** - * optional ResultType result_type = 5; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} + * repeated bytes end_index_values = 5; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getResultType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * repeated bytes end_index_values = 5; + * This is a type-conversion wrapper around `getEndIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setResultType = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getEndIndexValuesList())); }; /** - * optional bool allow_include_locked_and_abstaining_vote_tally = 6; - * @return {boolean} + * repeated bytes end_index_values = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEndIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getAllowIncludeLockedAndAbstainingVoteTally = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getEndIndexValuesList())); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setAllowIncludeLockedAndAbstainingVoteTally = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setEndIndexValuesList = function(value) { + return jspb.Message.setField(this, 5, value || []); }; /** - * optional StartAtIdentifierInfo start_at_identifier_info = 7; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getStartAtIdentifierInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo, 7)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addEndIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 5, value, opt_index); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearEndIndexValuesList = function() { + return this.setEndIndexValuesList([]); +}; + + +/** + * optional StartAtValueInfo start_at_value_info = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartAtValueInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo, 6)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setStartAtIdentifierInfo = function(value) { - return jspb.Message.setWrapperField(this, 7, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartAtValueInfo = function(value) { + return jspb.Message.setWrapperField(this, 6, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearStartAtIdentifierInfo = function() { - return this.setStartAtIdentifierInfo(undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartAtValueInfo = function() { + return this.setStartAtValueInfo(undefined); }; @@ -29517,35 +30071,35 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasStartAtIdentifierInfo = function() { - return jspb.Message.getField(this, 7) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasStartAtValueInfo = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * optional uint32 count = 8; + * optional uint32 count = 7; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 7, value); }; /** * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 8, undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 7, undefined); }; @@ -29553,8 +30107,26 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 8) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional bool order_ascending = 8; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); }; @@ -29562,44 +30134,44 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional bool prove = 9; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getProve = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getProve = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setProve = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 9, value); }; /** - * optional GetContestedResourceVoteStateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * optional GetContestedResourcesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -29608,7 +30180,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.c * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -29622,21 +30194,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.h * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0])); }; @@ -29654,8 +30226,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject(opt_includeInstance, this); }; @@ -29664,13 +30236,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * @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.GetContestedResourceVoteStateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -29684,23 +30256,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.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.GetContestedResourceVoteStateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29708,8 +30280,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -29725,9 +30297,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29735,18 +30307,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter ); } }; @@ -29761,22 +30333,22 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeB * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase = { RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_CONTENDERS: 1, + CONTESTED_RESOURCE_VALUES: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0])); }; @@ -29794,8 +30366,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(opt_includeInstance, this); }; @@ -29804,13 +30376,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceContenders: (f = msg.getContestedResourceContenders()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(includeInstance, f), + contestedResourceValues: (f = msg.getContestedResourceValues()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -29826,23 +30398,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29850,9 +30422,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader); - msg.setContestedResourceContenders(value); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader); + msg.setContestedResourceValues(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -29877,9 +30449,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29887,18 +30459,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceContenders(); + f = message.getContestedResourceValues(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter ); } f = message.getProof(); @@ -29921,6 +30493,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -29936,8 +30515,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(opt_includeInstance, this); }; @@ -29946,18 +30525,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject = function(includeInstance, msg) { var f, obj = { - finishedVoteOutcome: jspb.Message.getFieldWithDefault(msg, 1, 0), - wonByIdentityId: msg.getWonByIdentityId_asB64(), - finishedAtBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), - finishedAtCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), - finishedAtBlockTimeMs: jspb.Message.getFieldWithDefault(msg, 5, 0), - finishedAtEpoch: jspb.Message.getFieldWithDefault(msg, 6, 0) + contestedResourceValuesList: msg.getContestedResourceValuesList_asB64() }; if (includeInstance) { @@ -29971,23 +30545,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29995,28 +30569,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (reader.readEnum()); - msg.setFinishedVoteOutcome(value); - break; - case 2: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setWonByIdentityId(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFinishedAtBlockHeight(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFinishedAtCoreBlockHeight(value); - break; - case 5: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFinishedAtBlockTimeMs(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFinishedAtEpoch(value); + msg.addContestedResourceValues(value); break; default: reader.skipField(); @@ -30031,9 +30585,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30041,132 +30595,108 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getFinishedVoteOutcome(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getContestedResourceValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 1, f ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeBytes( - 2, - f - ); - } - f = message.getFinishedAtBlockHeight(); - if (f !== 0) { - writer.writeUint64( - 3, - f - ); - } - f = message.getFinishedAtCoreBlockHeight(); - if (f !== 0) { - writer.writeUint32( - 4, - f - ); - } - f = message.getFinishedAtBlockTimeMs(); - if (f !== 0) { - writer.writeUint64( - 5, - f - ); - } - f = message.getFinishedAtEpoch(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } }; /** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome = { - TOWARDS_IDENTITY: 0, - LOCKED: 1, - NO_PREVIOUS_WINNER: 2 -}; - -/** - * optional FinishedVoteOutcome finished_vote_outcome = 1; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} + * repeated bytes contested_resource_values = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedVoteOutcome = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * repeated bytes contested_resource_values = 1; + * This is a type-conversion wrapper around `getContestedResourceValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedVoteOutcome = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getContestedResourceValuesList())); }; /** - * optional bytes won_by_identity_id = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); + * repeated bytes contested_resource_values = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContestedResourceValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getContestedResourceValuesList())); }; /** - * optional bytes won_by_identity_id = 2; - * This is a type-conversion wrapper around `getWonByIdentityId()` - * @return {string} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getWonByIdentityId())); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.setContestedResourceValuesList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** - * optional bytes won_by_identity_id = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getWonByIdentityId()` - * @return {!Uint8Array} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getWonByIdentityId())); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.addContestedResourceValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setWonByIdentityId = function(value) { - return jspb.Message.setField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.clearContestedResourceValuesList = function() { + return this.setContestedResourceValuesList([]); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * optional ContestedResourceValues contested_resource_values = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.clearWonByIdentityId = function() { - return jspb.Message.setField(this, 2, undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getContestedResourceValues = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setContestedResourceValues = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearContestedResourceValues = function() { + return this.setContestedResourceValues(undefined); }; @@ -30174,90 +30704,147 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.hasWonByIdentityId = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasContestedResourceValues = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint64 finished_at_block_height = 3; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * optional uint32 finished_at_core_block_height = 4; - * @return {number} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtCoreBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtCoreBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional uint64 finished_at_block_time_ms = 5; - * @return {number} + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional uint32 finished_at_epoch = 6; - * @return {number} + * optional GetContestedResourcesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtEpoch = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtEpoch = function(value) { - return jspb.Message.setProto3IntField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0])); +}; @@ -30274,8 +30861,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject(opt_includeInstance, this); }; @@ -30284,17 +30871,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function(includeInstance, msg) { var f, obj = { - contendersList: jspb.Message.toObjectList(msg.getContendersList(), - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject, includeInstance), - abstainVoteTally: jspb.Message.getFieldWithDefault(msg, 2, 0), - lockVoteTally: jspb.Message.getFieldWithDefault(msg, 3, 0), - finishedVoteInfo: (f = msg.getFinishedVoteInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -30308,23 +30891,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -30332,22 +30915,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader); - msg.addContenders(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setAbstainVoteTally(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLockVoteTally(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader); - msg.setFinishedVoteInfo(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -30362,9 +30932,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30372,192 +30942,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContendersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeUint32( - 2, - f - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeUint32( - 3, - f - ); - } - f = message.getFinishedVoteInfo(); + f = message.getV0(); if (f != null) { writer.writeMessage( - 4, + 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated Contender contenders = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getContendersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setContendersList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.addContenders = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearContendersList = function() { - return this.setContendersList([]); -}; - - -/** - * optional uint32 abstain_vote_tally = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getAbstainVoteTally = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setAbstainVoteTally = function(value) { - return jspb.Message.setField(this, 2, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearAbstainVoteTally = function() { - return jspb.Message.setField(this, 2, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasAbstainVoteTally = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional uint32 lock_vote_tally = 3; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getLockVoteTally = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setLockVoteTally = function(value) { - return jspb.Message.setField(this, 3, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearLockVoteTally = function() { - return jspb.Message.setField(this, 3, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasLockVoteTally = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional FinishedVoteInfo finished_vote_info = 4; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getFinishedVoteInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo, 4)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setFinishedVoteInfo = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearFinishedVoteInfo = function() { - return this.setFinishedVoteInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasFinishedVoteInfo = function() { - return jspb.Message.getField(this, 4) != null; -}; - - @@ -30574,8 +30975,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(opt_includeInstance, this); }; @@ -30584,15 +30985,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - identifier: msg.getIdentifier_asB64(), - voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0), - document: msg.getDocument_asB64() + startTimeInfo: (f = msg.getStartTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(includeInstance, f), + endTimeInfo: (f = msg.getEndTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(includeInstance, f), + limit: jspb.Message.getFieldWithDefault(msg, 3, 0), + offset: jspb.Message.getFieldWithDefault(msg, 4, 0), + ascending: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) }; if (includeInstance) { @@ -30606,23 +31010,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -30630,16 +31034,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentifier(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader); + msg.setStartTimeInfo(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVoteCount(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader); + msg.setEndTimeInfo(value); break; case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDocument(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setOffset(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAscending(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -30654,9 +31072,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30664,199 +31082,404 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getStartTimeInfo(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 2)); + f = message.getEndTimeInfo(); if (f != null) { - writer.writeUint32( + writer.writeMessage( 2, - f + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + f = /** @type {number} */ (jspb.Message.getField(message, 3)); if (f != null) { - writer.writeBytes( + writer.writeUint32( 3, f ); } + f = /** @type {number} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeUint32( + 4, + f + ); + } + f = message.getAscending(); + if (f) { + writer.writeBool( + 5, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 6, + f + ); + } }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes identifier = 1; - * @return {string} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(opt_includeInstance, this); }; /** - * optional bytes identifier = 1; - * This is a type-conversion wrapper around `getIdentifier()` - * @return {string} + * 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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentifier())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), + startTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes identifier = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentifier()` + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.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.setStartTimeMs(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartTimeIncluded(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentifier())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartTimeMs(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getStartTimeIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * optional uint32 vote_count = 2; + * optional uint64 start_time_ms = 1; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getVoteCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setVoteCount = function(value) { - return jspb.Message.setField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * optional bool start_time_included = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearVoteCount = function() { - return jspb.Message.setField(this, 2, undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasVoteCount = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes document = 3; - * @return {string} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(opt_includeInstance, this); }; /** - * optional bytes document = 3; - * This is a type-conversion wrapper around `getDocument()` - * @return {string} + * 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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDocument())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject = function(includeInstance, msg) { + var f, obj = { + endTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), + endTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes document = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocument()` + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.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.setEndTimeMs(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEndTimeIncluded(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDocument())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setDocument = function(value) { - return jspb.Message.setField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEndTimeMs(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getEndTimeIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * optional uint64 end_time_ms = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearDocument = function() { - return jspb.Message.setField(this, 3, undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Returns whether this field is set. + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional bool end_time_included = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasDocument = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * optional ContestedResourceContenders contested_resource_contenders = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getContestedResourceContenders = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders, 1)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * optional StartAtTimeInfo start_time_info = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getStartTimeInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setContestedResourceContenders = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setStartTimeInfo = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearContestedResourceContenders = function() { - return this.setContestedResourceContenders(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearStartTimeInfo = function() { + return this.setStartTimeInfo(undefined); }; @@ -30864,36 +31487,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasContestedResourceContenders = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasStartTimeInfo = function() { return jspb.Message.getField(this, 1) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional EndAtTimeInfo end_time_info = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getEndTimeInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setEndTimeInfo = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearEndTimeInfo = function() { + return this.setEndTimeInfo(undefined); }; @@ -30901,36 +31524,71 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasEndTimeInfo = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional uint32 limit = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearLimit = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint32 offset = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getOffset = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setField(this, 4, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearOffset = function() { + return jspb.Message.setField(this, 4, undefined); }; @@ -30938,35 +31596,7693 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional bool ascending = 5; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional bool prove = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional GetVotePollsByEndDateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.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.GetVotePollsByEndDateResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VOTE_POLLS_BY_TIMESTAMPS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + votePollsByTimestamps: (f = msg.getVotePollsByTimestamps()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader); + msg.setVotePollsByTimestamps(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotePollsByTimestamps(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.repeatedFields_ = [2]; + + + +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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject = function(includeInstance, msg) { + var f, obj = { + timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0), + serializedVotePollsList: msg.getSerializedVotePollsList_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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.setTimestamp(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addSerializedVotePolls(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTimestamp(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getSerializedVotePollsList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 2, + f + ); + } +}; + + +/** + * optional uint64 timestamp = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getTimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setTimestamp = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * This is a type-conversion wrapper around `getSerializedVotePollsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getSerializedVotePollsList())); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSerializedVotePollsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getSerializedVotePollsList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setSerializedVotePollsList = function(value) { + return jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.addSerializedVotePolls = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.clearSerializedVotePollsList = function() { + return this.setSerializedVotePollsList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.repeatedFields_ = [1]; + + + +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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject = function(includeInstance, msg) { + var f, obj = { + votePollsByTimestampsList: jspb.Message.toObjectList(msg.getVotePollsByTimestampsList(), + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject, includeInstance), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader); + msg.addVotePollsByTimestamps(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotePollsByTimestampsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated SerializedVotePollsByTimestamp vote_polls_by_timestamps = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getVotePollsByTimestampsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setVotePollsByTimestampsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.addVotePollsByTimestamps = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.clearVotePollsByTimestampsList = function() { + return this.setVotePollsByTimestampsList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional SerializedVotePollsByTimestamps vote_polls_by_timestamps = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getVotePollsByTimestamps = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setVotePollsByTimestamps = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearVotePollsByTimestamps = function() { + return this.setVotePollsByTimestamps(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasVotePollsByTimestamps = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetVotePollsByEndDateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetContestedResourceVoteStateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.repeatedFields_ = [4]; + + + +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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + resultType: jspb.Message.getFieldWithDefault(msg, 5, 0), + allowIncludeLockedAndAbstainingVoteTally: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), + startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 8, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + }; + + 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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (reader.readEnum()); + msg.setResultType(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAllowIncludeLockedAndAbstainingVoteTally(value); + break; + case 7: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); + msg.setStartAtIdentifierInfo(value); + break; + case 8: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); + break; + case 9: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getResultType(); + if (f !== 0.0) { + writer.writeEnum( + 5, + f + ); + } + f = message.getAllowIncludeLockedAndAbstainingVoteTally(); + if (f) { + writer.writeBool( + 6, + f + ); + } + f = message.getStartAtIdentifierInfo(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 8)); + if (f != null) { + writer.writeUint32( + 8, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 9, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType = { + DOCUMENTS: 0, + VOTE_TALLY: 1, + DOCUMENTS_AND_VOTE_TALLY: 2 +}; + + + + +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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startIdentifier: msg.getStartIdentifier_asB64(), + startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.setStartIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartIdentifierIncluded(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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_identifier = 1; + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartIdentifier())); +}; + + +/** + * optional bytes start_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string index_name = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated bytes index_values = 4; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); +}; + + +/** + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); +}; + + +/** + * optional ResultType result_type = 5; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getResultType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setResultType = function(value) { + return jspb.Message.setProto3EnumField(this, 5, value); +}; + + +/** + * optional bool allow_include_locked_and_abstaining_vote_tally = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getAllowIncludeLockedAndAbstainingVoteTally = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setAllowIncludeLockedAndAbstainingVoteTally = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional StartAtIdentifierInfo start_at_identifier_info = 7; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getStartAtIdentifierInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo, 7)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setStartAtIdentifierInfo = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearStartAtIdentifierInfo = function() { + return this.setStartAtIdentifierInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasStartAtIdentifierInfo = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional uint32 count = 8; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 8, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 8, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 8) != null; +}; + + +/** + * optional bool prove = 9; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 9, value); +}; + + +/** + * optional GetContestedResourceVoteStateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CONTESTED_RESOURCE_CONTENDERS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceContenders: (f = msg.getContestedResourceContenders()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader); + msg.setContestedResourceContenders(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceContenders(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject = function(includeInstance, msg) { + var f, obj = { + finishedVoteOutcome: jspb.Message.getFieldWithDefault(msg, 1, 0), + wonByIdentityId: msg.getWonByIdentityId_asB64(), + finishedAtBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), + finishedAtCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), + finishedAtBlockTimeMs: jspb.Message.getFieldWithDefault(msg, 5, 0), + finishedAtEpoch: jspb.Message.getFieldWithDefault(msg, 6, 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (reader.readEnum()); + msg.setFinishedVoteOutcome(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setWonByIdentityId(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFinishedAtBlockHeight(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFinishedAtCoreBlockHeight(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFinishedAtBlockTimeMs(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFinishedAtEpoch(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFinishedVoteOutcome(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( + 2, + f + ); + } + f = message.getFinishedAtBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } + f = message.getFinishedAtCoreBlockHeight(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getFinishedAtBlockTimeMs(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } + f = message.getFinishedAtEpoch(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome = { + TOWARDS_IDENTITY: 0, + LOCKED: 1, + NO_PREVIOUS_WINNER: 2 +}; + +/** + * optional FinishedVoteOutcome finished_vote_outcome = 1; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedVoteOutcome = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedVoteOutcome = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * This is a type-conversion wrapper around `getWonByIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getWonByIdentityId())); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getWonByIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getWonByIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setWonByIdentityId = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.clearWonByIdentityId = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.hasWonByIdentityId = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint64 finished_at_block_height = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint32 finished_at_core_block_height = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtCoreBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtCoreBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional uint64 finished_at_block_time_ms = 5; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional uint32 finished_at_epoch = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtEpoch = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.repeatedFields_ = [1]; + + + +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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject = function(includeInstance, msg) { + var f, obj = { + contendersList: jspb.Message.toObjectList(msg.getContendersList(), + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject, includeInstance), + abstainVoteTally: jspb.Message.getFieldWithDefault(msg, 2, 0), + lockVoteTally: jspb.Message.getFieldWithDefault(msg, 3, 0), + finishedVoteInfo: (f = msg.getFinishedVoteInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader); + msg.addContenders(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setAbstainVoteTally(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLockVoteTally(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader); + msg.setFinishedVoteInfo(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContendersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeUint32( + 3, + f + ); + } + f = message.getFinishedVoteInfo(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated Contender contenders = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getContendersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setContendersList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.addContenders = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearContendersList = function() { + return this.setContendersList([]); +}; + + +/** + * optional uint32 abstain_vote_tally = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getAbstainVoteTally = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setAbstainVoteTally = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearAbstainVoteTally = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasAbstainVoteTally = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint32 lock_vote_tally = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getLockVoteTally = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setLockVoteTally = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearLockVoteTally = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasLockVoteTally = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional FinishedVoteInfo finished_vote_info = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getFinishedVoteInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo, 4)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setFinishedVoteInfo = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearFinishedVoteInfo = function() { + return this.setFinishedVoteInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasFinishedVoteInfo = function() { + return jspb.Message.getField(this, 4) != null; +}; + + + + + +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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject = function(includeInstance, msg) { + var f, obj = { + identifier: msg.getIdentifier_asB64(), + voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0), + document: msg.getDocument_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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.setIdentifier(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVoteCount(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDocument(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeBytes( + 3, + f + ); + } +}; + + +/** + * optional bytes identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identifier = 1; + * This is a type-conversion wrapper around `getIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentifier())); +}; + + +/** + * optional bytes identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint32 vote_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getVoteCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setVoteCount = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearVoteCount = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasVoteCount = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional bytes document = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes document = 3; + * This is a type-conversion wrapper around `getDocument()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDocument())); +}; + + +/** + * optional bytes document = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocument()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDocument())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setDocument = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearDocument = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasDocument = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional ContestedResourceContenders contested_resource_contenders = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getContestedResourceContenders = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setContestedResourceContenders = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearContestedResourceContenders = function() { + return this.setContestedResourceContenders(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasContestedResourceContenders = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceVoteStateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVotersForIdentityRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.repeatedFields_ = [4]; + + + +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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + contestantId: msg.getContestantId_asB64(), + startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 7, 0), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + }; + + 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setContestantId(value); + break; + case 6: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); + msg.setStartAtIdentifierInfo(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); + break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; + case 9: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getContestantId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getStartAtIdentifierInfo(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeUint32( + 7, + f + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( + 8, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 9, + f + ); + } +}; + + + + + +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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startIdentifier: msg.getStartIdentifier_asB64(), + startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.setStartIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartIdentifierIncluded(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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_identifier = 1; + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartIdentifier())); +}; + + +/** + * optional bytes start_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string index_name = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated bytes index_values = 4; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); +}; + + +/** + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); +}; + + +/** + * optional bytes contestant_id = 5; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * optional bytes contestant_id = 5; + * This is a type-conversion wrapper around `getContestantId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContestantId())); +}; + + +/** + * optional bytes contestant_id = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContestantId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContestantId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContestantId = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); +}; + + +/** + * optional StartAtIdentifierInfo start_at_identifier_info = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getStartAtIdentifierInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo, 6)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setStartAtIdentifierInfo = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearStartAtIdentifierInfo = function() { + return this.setStartAtIdentifierInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasStartAtIdentifierInfo = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional uint32 count = 7; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 7, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 7, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional bool order_ascending = 8; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); +}; + + +/** + * optional bool prove = 9; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 9, value); +}; + + +/** + * optional GetContestedResourceVotersForIdentityRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CONTESTED_RESOURCE_VOTERS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceVoters: (f = msg.getContestedResourceVoters()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader); + msg.setContestedResourceVoters(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceVoters(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.repeatedFields_ = [1]; + + + +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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject = function(includeInstance, msg) { + var f, obj = { + votersList: msg.getVotersList_asB64(), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.addVoters(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotersList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 1, + f + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated bytes voters = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * repeated bytes voters = 1; + * This is a type-conversion wrapper around `getVotersList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getVotersList())); +}; + + +/** + * repeated bytes voters = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getVotersList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getVotersList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setVotersList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.addVoters = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.clearVotersList = function() { + return this.setVotersList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional ContestedResourceVoters contested_resource_voters = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getContestedResourceVoters = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setContestedResourceVoters = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearContestedResourceVoters = function() { + return this.setContestedResourceVoters(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasContestedResourceVoters = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceVotersForIdentityResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceIdentityVotesRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + identityId: msg.getIdentityId_asB64(), + limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + startAtVotePollIdInfo: (f = msg.getStartAtVotePollIdInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(includeInstance, f), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) + }; + + 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.setIdentityId(value); + break; + case 2: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setLimit(value); + break; + case 3: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setOffset(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader); + msg.setStartAtVotePollIdInfo(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getLimit(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOffset(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getStartAtVotePollIdInfo(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 6, + f + ); + } +}; + + + + + +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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startAtPollIdentifier: msg.getStartAtPollIdentifier_asB64(), + startPollIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.setStartAtPollIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartPollIdentifierIncluded(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartAtPollIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartPollIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * This is a type-conversion wrapper around `getStartAtPollIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAtPollIdentifier())); +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAtPollIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAtPollIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartAtPollIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_poll_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartPollIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartPollIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes identity_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional google.protobuf.UInt32Value limit = 2; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getLimit = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearLimit = function() { + return this.setLimit(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.UInt32Value offset = 3; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOffset = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearOffset = function() { + return this.setOffset(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional bool order_ascending = 4; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional StartAtVotePollIdInfo start_at_vote_poll_id_info = 5; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getStartAtVotePollIdInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo, 5)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setStartAtVotePollIdInfo = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearStartAtVotePollIdInfo = function() { + return this.setStartAtVotePollIdInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasStartAtVotePollIdInfo = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional bool prove = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional GetContestedResourceIdentityVotesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VOTES: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + votes: (f = msg.getVotes()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader); + msg.setVotes(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotes(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.repeatedFields_ = [1]; + + + +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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceIdentityVotesList: jspb.Message.toObjectList(msg.getContestedResourceIdentityVotesList(), + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject, includeInstance), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader); + msg.addContestedResourceIdentityVotes(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceIdentityVotesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated ContestedResourceIdentityVote contested_resource_identity_votes = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getContestedResourceIdentityVotesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setContestedResourceIdentityVotesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.addContestedResourceIdentityVotes = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.clearContestedResourceIdentityVotesList = function() { + return this.setContestedResourceIdentityVotesList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject = function(includeInstance, msg) { + var f, obj = { + voteChoiceType: jspb.Message.getFieldWithDefault(msg, 1, 0), + identityId: msg.getIdentityId_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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (reader.readEnum()); + msg.setVoteChoiceType(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setIdentityId(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVoteChoiceType(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( + 2, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType = { + TOWARDS_IDENTITY: 0, + ABSTAIN: 1, + LOCK: 2 +}; + +/** + * optional VoteChoiceType vote_choice_type = 1; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getVoteChoiceType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setVoteChoiceType = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional bytes identity_id = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes identity_id = 2; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setIdentityId = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.clearIdentityId = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.hasIdentityId = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.repeatedFields_ = [3]; + + + +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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + serializedIndexStorageValuesList: msg.getSerializedIndexStorageValuesList_asB64(), + voteChoice: (f = msg.getVoteChoice()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addSerializedIndexStorageValues(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader); + msg.setVoteChoice(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSerializedIndexStorageValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 3, + f + ); + } + f = message.getVoteChoice(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter + ); + } +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getSerializedIndexStorageValuesList())); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getSerializedIndexStorageValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setSerializedIndexStorageValuesList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.addSerializedIndexStorageValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearSerializedIndexStorageValuesList = function() { + return this.setSerializedIndexStorageValuesList([]); +}; + + +/** + * optional ResourceVoteChoice vote_choice = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getVoteChoice = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice, 4)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setVoteChoice = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearVoteChoice = function() { + return this.setVoteChoice(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.hasVoteChoice = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional ContestedResourceIdentityVotes votes = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getVotes = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setVotes = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearVotes = function() { + return this.setVotes(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasVotes = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceIdentityVotesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetPrefundedSpecializedBalanceRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + id: msg.getId_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.setId(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getId())); +}; + + +/** + * optional bytes id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional GetPrefundedSpecializedBalanceRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + BALANCE: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + balance: jspb.Message.getFieldWithDefault(msg, 1, 0), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.setBalance(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint64( + 1, + f + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 balance = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getBalance = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setBalance = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearBalance = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasBalance = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetPrefundedSpecializedBalanceResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetTotalCreditsInPlatformRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + }; + + 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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProve(); + if (f) { + writer.writeBool( + 1, + f + ); + } +}; + + +/** + * optional bool prove = 1; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; /** - * optional GetContestedResourceVoteStateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * optional GetTotalCreditsInPlatformRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -30975,7 +39291,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -30989,21 +39305,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0])); }; @@ -31021,8 +39337,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject(opt_includeInstance, this); }; @@ -31031,13 +39347,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * @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.GetContestedResourceVotersForIdentityRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -31051,23 +39367,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toO /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetContestedResourceVotersForIdentityRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31075,8 +39391,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.des var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -31092,9 +39408,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.des * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31102,18 +39418,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter ); } }; @@ -31121,11 +39437,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.ser /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CREDITS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0])); +}; @@ -31142,8 +39477,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(opt_includeInstance, this); }; @@ -31152,21 +39487,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - contestantId: msg.getContestantId_asB64(), - startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 7, 0), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + credits: jspb.Message.getFieldWithDefault(msg, 1, 0), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -31180,23 +39509,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31204,41 +39533,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setCredits(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContestantId(value); - break; - case 6: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); - msg.setStartAtIdentifierInfo(value); - break; - case 7: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 9: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -31253,9 +39559,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31263,80 +39569,332 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint64( 1, f ); } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( + f = message.getProof(); + if (f != null) { + writer.writeMessage( 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getContestantId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = message.getStartAtIdentifierInfo(); + f = message.getMetadata(); if (f != null) { writer.writeMessage( - 6, + 3, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 7)); - if (f != null) { - writer.writeUint32( - 7, - f - ); +}; + + +/** + * optional uint64 credits = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getCredits = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setCredits = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearCredits = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasCredits = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetTotalCreditsInPlatformResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetPathElementsRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 8, - f - ); + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest; + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest.GetPathElementsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } } - f = message.getProve(); - if (f) { - writer.writeBool( - 9, - f + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.repeatedFields_ = [1,2]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -31352,8 +39910,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(opt_includeInstance, this); }; @@ -31362,14 +39920,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - startIdentifier: msg.getStartIdentifier_asB64(), - startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + pathList: msg.getPathList_asB64(), + keysList: msg.getKeysList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -31383,23 +39942,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31408,11 +39967,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartIdentifier(value); + msg.addPath(value); break; case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addKeys(value); + break; + case 3: var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartIdentifierIncluded(value); + msg.setProve(value); break; default: reader.skipField(); @@ -31427,9 +39990,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31437,23 +40000,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartIdentifier_asU8(); + f = message.getPathList_asU8(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedBytes( 1, f ); } - f = message.getStartIdentifierIncluded(); + f = message.getKeysList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 2, + f + ); + } + f = message.getProve(); if (f) { writer.writeBool( - 2, + 3, f ); } @@ -31461,379 +40031,169 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** - * optional bytes start_identifier = 1; - * @return {string} + * repeated bytes path = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * optional bytes start_identifier = 1; - * This is a type-conversion wrapper around `getStartIdentifier()` - * @return {string} + * repeated bytes path = 1; + * This is a type-conversion wrapper around `getPathList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartIdentifier())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getPathList())); }; /** - * optional bytes start_identifier = 1; + * repeated bytes path = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIdentifier()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartIdentifier())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bool start_identifier_included = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * This is a type-conversion wrapper around `getPathList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getPathList())); }; /** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setPathList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string index_name = 3; - * @return {string} + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addPath = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearPathList = function() { + return this.setPathList([]); }; /** - * repeated bytes index_values = 4; + * repeated bytes keys = 2; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` + * repeated bytes keys = 2; + * This is a type-conversion wrapper around `getKeysList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); + this.getKeysList())); }; /** - * repeated bytes index_values = 4; + * repeated bytes keys = 2; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` + * This is a type-conversion wrapper around `getKeysList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); + this.getKeysList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setKeysList = function(value) { + return jspb.Message.setField(this, 2, value || []); }; /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.addIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addKeys = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); -}; - - -/** - * optional bytes contestant_id = 5; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * optional bytes contestant_id = 5; - * This is a type-conversion wrapper around `getContestantId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContestantId())); -}; - - -/** - * optional bytes contestant_id = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContestantId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContestantId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContestantId = function(value) { - return jspb.Message.setProto3BytesField(this, 5, value); -}; - - -/** - * optional StartAtIdentifierInfo start_at_identifier_info = 6; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getStartAtIdentifierInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo, 6)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setStartAtIdentifierInfo = function(value) { - return jspb.Message.setWrapperField(this, 6, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearStartAtIdentifierInfo = function() { - return this.setStartAtIdentifierInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasStartAtIdentifierInfo = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional uint32 count = 7; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 7, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 7, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional bool order_ascending = 8; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearKeysList = function() { + return this.setKeysList([]); }; /** - * optional bool prove = 9; + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 9, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetContestedResourceVotersForIdentityRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * optional GetPathElementsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -31842,7 +40202,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -31856,21 +40216,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0])); }; @@ -31888,8 +40248,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject(opt_includeInstance, this); }; @@ -31898,13 +40258,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.pr * @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.GetContestedResourceVotersForIdentityResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -31918,23 +40278,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.to /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31942,8 +40302,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.de var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -31959,9 +40319,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.de * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31969,18 +40329,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.pr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter ); } }; @@ -31995,22 +40355,22 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.se * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_VOTERS: 1, + ELEMENTS: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0])); }; @@ -32028,8 +40388,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(opt_includeInstance, this); }; @@ -32038,13 +40398,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceVoters: (f = msg.getContestedResourceVoters()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(includeInstance, f), + elements: (f = msg.getElements()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -32060,23 +40420,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32084,9 +40444,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader); - msg.setContestedResourceVoters(value); + var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader); + msg.setElements(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -32111,9 +40471,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32121,18 +40481,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceVoters(); + f = message.getElements(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter ); } f = message.getProof(); @@ -32160,7 +40520,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.repeatedFields_ = [1]; @@ -32177,8 +40537,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(opt_includeInstance, this); }; @@ -32187,14 +40547,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject = function(includeInstance, msg) { var f, obj = { - votersList: msg.getVotersList_asB64(), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + elementsList: msg.getElementsList_asB64() }; if (includeInstance) { @@ -32208,23 +40567,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32233,11 +40592,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addVoters(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + msg.addElements(value); break; default: reader.skipField(); @@ -32252,9 +40607,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32262,67 +40617,60 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotersList_asU8(); + f = message.getElementsList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( - 2, - f - ); - } }; /** - * repeated bytes voters = 1; + * repeated bytes elements = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes voters = 1; - * This is a type-conversion wrapper around `getVotersList()` + * repeated bytes elements = 1; + * This is a type-conversion wrapper around `getElementsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getVotersList())); + this.getElementsList())); }; /** - * repeated bytes voters = 1; + * repeated bytes elements = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getVotersList()` + * This is a type-conversion wrapper around `getElementsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getVotersList())); + this.getElementsList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setVotersList = function(value) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.setElementsList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -32330,65 +40678,47 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.addVoters = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.addElements = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.clearVotersList = function() { - return this.setVotersList([]); -}; - - -/** - * optional bool finished_results = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.clearElementsList = function() { + return this.setElementsList([]); }; /** - * optional ContestedResourceVoters contested_resource_voters = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * optional Elements elements = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getContestedResourceVoters = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getElements = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setContestedResourceVoters = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setElements = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearContestedResourceVoters = function() { - return this.setContestedResourceVoters(undefined); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearElements = function() { + return this.setElements(undefined); }; @@ -32396,7 +40726,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasContestedResourceVoters = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasElements = function() { return jspb.Message.getField(this, 1) != null; }; @@ -32405,7 +40735,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -32413,18 +40743,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -32433,7 +40763,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -32442,7 +40772,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -32450,18 +40780,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -32470,366 +40800,74 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetContestedResourceVotersForIdentityResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * optional GetPathElementsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceIdentityVotesRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - identityId: msg.getIdentityId_asB64(), - limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), - startAtVotePollIdInfo: (f = msg.getStartAtVotePollIdInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(includeInstance, f), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) - }; - - 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.setIdentityId(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setLimit(value); - break; - case 3: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setOffset(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 5: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader); - msg.setStartAtVotePollIdInfo(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getIdentityId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getLimit(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOffset(); - if (f != null) { - writer.writeMessage( - 3, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 4, - f - ); - } - f = message.getStartAtVotePollIdInfo(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 6, - f - ); - } +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.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.GetStatusRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -32845,8 +40883,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusRequest.toObject(opt_includeInstance, this); }; @@ -32855,14 +40893,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * @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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - startAtPollIdentifier: msg.getStartAtPollIdentifier_asB64(), - startPollIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -32876,23 +40913,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusRequest; + return proto.org.dash.platform.dapi.v0.GetStatusRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32900,12 +40937,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAtPollIdentifier(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartPollIdentifierIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -32920,9 +40954,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32930,156 +40964,149 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartAtPollIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getStartPollIdentifierIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter ); } }; -/** - * optional bytes start_at_poll_identifier = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes start_at_poll_identifier = 1; - * This is a type-conversion wrapper around `getStartAtPollIdentifier()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAtPollIdentifier())); -}; - -/** - * optional bytes start_at_poll_identifier = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAtPollIdentifier()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAtPollIdentifier())); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartAtPollIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject(opt_includeInstance, this); }; /** - * optional bool start_poll_identifier_included = 2; - * @return {boolean} + * 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.GetStatusRequest.GetStatusRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartPollIdentifierIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + }; -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartPollIdentifierIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes identity_id = 1; - * @return {string} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0; + return proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader(msg, reader); }; /** - * optional bytes identity_id = 1; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional bytes identity_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` + * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setIdentityId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; }; /** - * optional google.protobuf.UInt32Value limit = 2; - * @return {?proto.google.protobuf.UInt32Value} + * optional GetStatusRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getLimit = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0, 1)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearLimit = function() { - return this.setLimit(undefined); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; @@ -33087,184 +41114,151 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional google.protobuf.UInt32Value offset = 3; - * @return {?proto.google.protobuf.UInt32Value} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOffset = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); -}; - - -/** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearOffset = function() { - return this.setOffset(undefined); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 3) != null; -}; - /** - * optional bool order_ascending = 4; - * @return {boolean} + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); -}; - +proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_ = [[1]]; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * optional StartAtVotePollIdInfo start_at_vote_poll_id_info = 5; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getStartAtVotePollIdInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo, 5)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_[0])); }; -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setStartAtVotePollIdInfo = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearStartAtVotePollIdInfo = function() { - return this.setStartAtVotePollIdInfo(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.toObject(opt_includeInstance, this); }; /** - * Returns whether this field is set. - * @return {boolean} + * 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.GetStatusResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasStartAtVotePollIdInfo = function() { - return jspb.Message.getField(this, 5) != null; -}; - +proto.org.dash.platform.dapi.v0.GetStatusResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject(includeInstance, f) + }; -/** - * optional bool prove = 6; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.deserializeBinaryFromReader(msg, reader); }; /** - * optional GetContestedResourceIdentityVotesRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.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.GetStatusResponse.GetStatusResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Returns whether this field is set. - * @return {boolean} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter + ); + } }; -/** - * 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.GetContestedResourceIdentityVotesResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33280,8 +41274,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject(opt_includeInstance, this); }; @@ -33290,13 +41284,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot * @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.GetContestedResourceIdentityVotesResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(includeInstance, f) + version: (f = msg.getVersion()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject(includeInstance, f), + node: (f = msg.getNode()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject(includeInstance, f), + chain: (f = msg.getChain()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject(includeInstance, f), + network: (f = msg.getNetwork()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject(includeInstance, f), + stateSync: (f = msg.getStateSync()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject(includeInstance, f), + time: (f = msg.getTime()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject(includeInstance, f) }; if (includeInstance) { @@ -33310,23 +41309,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObje /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.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.GetContestedResourceIdentityVotesResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33334,9 +41333,34 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deseri var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.deserializeBinaryFromReader); + msg.setVersion(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinaryFromReader); + msg.setNode(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinaryFromReader); + msg.setChain(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinaryFromReader); + msg.setNetwork(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinaryFromReader); + msg.setStateSync(value); + break; + case 6: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinaryFromReader); + msg.setTime(value); break; default: reader.skipField(); @@ -33351,9 +41375,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deseri * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33361,50 +41385,64 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); + f = message.getVersion(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter + ); + } + f = message.getNode(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter + ); + } + f = message.getChain(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter + ); + } + f = message.getNetwork(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter + ); + } + f = message.getStateSync(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter + ); + } + f = message.getTime(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter ); } }; -/** - * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VOTES: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33420,8 +41458,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject(opt_includeInstance, this); }; @@ -33430,15 +41468,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject = function(includeInstance, msg) { var f, obj = { - votes: (f = msg.getVotes()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + software: (f = msg.getSoftware()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject(includeInstance, f), + protocol: (f = msg.getProtocol()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject(includeInstance, f) }; if (includeInstance) { @@ -33452,43 +41489,38 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader); - msg.setVotes(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinaryFromReader); + msg.setSoftware(value); break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + case 2: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinaryFromReader); + msg.setProtocol(value); break; default: reader.skipField(); @@ -33503,9 +41535,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33513,47 +41545,32 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotes(); + f = message.getSoftware(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter ); } - f = message.getProof(); + f = message.getProtocol(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.repeatedFields_ = [1]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33569,8 +41586,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject(opt_includeInstance, this); }; @@ -33579,15 +41596,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceIdentityVotesList: jspb.Message.toObjectList(msg.getContestedResourceIdentityVotesList(), - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject, includeInstance), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + dapi: jspb.Message.getFieldWithDefault(msg, 1, ""), + drive: jspb.Message.getFieldWithDefault(msg, 2, ""), + tenderdash: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -33601,23 +41618,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33625,13 +41642,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader); - msg.addContestedResourceIdentityVotes(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDapi(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDrive(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTenderdash(value); break; default: reader.skipField(); @@ -33646,9 +41666,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33656,83 +41676,123 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceIdentityVotesList(); + f = message.getDapi(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter + f ); } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( + f = /** @type {string} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeString( 2, f ); } + f = /** @type {string} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeString( + 3, + f + ); + } }; /** - * repeated ContestedResourceIdentityVote contested_resource_identity_votes = 1; - * @return {!Array} + * optional string dapi = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getContestedResourceIdentityVotesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getDapi = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setContestedResourceIdentityVotesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setDapi = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * optional string drive = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.addContestedResourceIdentityVotes = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, opt_index); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getDrive = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.clearContestedResourceIdentityVotesList = function() { - return this.setContestedResourceIdentityVotesList([]); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setDrive = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * optional bool finished_results = 2; + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.clearDrive = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.hasDrive = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + * optional string tenderdash = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getTenderdash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setTenderdash = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.clearTenderdash = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.hasTenderdash = function() { + return jspb.Message.getField(this, 3) != null; }; @@ -33752,8 +41812,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject(opt_includeInstance, this); }; @@ -33762,14 +41822,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject = function(includeInstance, msg) { var f, obj = { - voteChoiceType: jspb.Message.getFieldWithDefault(msg, 1, 0), - identityId: msg.getIdentityId_asB64() + tenderdash: (f = msg.getTenderdash()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject(includeInstance, f), + drive: (f = msg.getDrive()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject(includeInstance, f) }; if (includeInstance) { @@ -33783,23 +41843,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33807,12 +41867,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (reader.readEnum()); - msg.setVoteChoiceType(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinaryFromReader); + msg.setTenderdash(value); break; case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentityId(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader); + msg.setDrive(value); break; default: reader.skipField(); @@ -33827,9 +41889,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33837,123 +41899,31 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVoteChoiceType(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getTenderdash(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + f = message.getDrive(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 2, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter ); } }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType = { - TOWARDS_IDENTITY: 0, - ABSTAIN: 1, - LOCK: 2 -}; - -/** - * optional VoteChoiceType vote_choice_type = 1; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getVoteChoiceType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setVoteChoiceType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional bytes identity_id = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes identity_id = 2; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); -}; - - -/** - * optional bytes identity_id = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setIdentityId = function(value) { - return jspb.Message.setField(this, 2, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.clearIdentityId = function() { - return jspb.Message.setField(this, 2, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.hasIdentityId = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.repeatedFields_ = [3]; @@ -33970,8 +41940,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject(opt_includeInstance, this); }; @@ -33980,16 +41950,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - serializedIndexStorageValuesList: msg.getSerializedIndexStorageValuesList_asB64(), - voteChoice: (f = msg.getVoteChoice()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(includeInstance, f) + p2p: jspb.Message.getFieldWithDefault(msg, 1, 0), + block: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -34003,23 +41971,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34027,21 +41995,12 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setP2p(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); - break; - case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addSerializedIndexStorageValues(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader); - msg.setVoteChoice(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setBlock(value); break; default: reader.skipField(); @@ -34056,9 +42015,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34066,227 +42025,250 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getP2p(); + if (f !== 0) { + writer.writeUint32( 1, f ); } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( + f = message.getBlock(); + if (f !== 0) { + writer.writeUint32( 2, f ); } - f = message.getSerializedIndexStorageValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 3, - f - ); - } - f = message.getVoteChoice(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter - ); - } }; /** - * optional bytes contract_id = 1; - * @return {string} + * optional uint32 p2p = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.getP2p = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.setP2p = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * optional uint32 block = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.getBlock = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.setBlock = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes serialized_index_storage_values = 3; - * @return {!Array} + * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject(opt_includeInstance, this); }; /** - * repeated bytes serialized_index_storage_values = 3; - * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` - * @return {!Array} + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getSerializedIndexStorageValuesList())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject = function(includeInstance, msg) { + var f, obj = { + latest: jspb.Message.getFieldWithDefault(msg, 3, 0), + current: jspb.Message.getFieldWithDefault(msg, 4, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * repeated bytes serialized_index_storage_values = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` - * @return {!Array} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getSerializedIndexStorageValuesList())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader(msg, reader); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setSerializedIndexStorageValuesList = function(value) { - return jspb.Message.setField(this, 3, value || []); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLatest(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCurrent(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.addSerializedIndexStorageValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearSerializedIndexStorageValuesList = function() { - return this.setSerializedIndexStorageValuesList([]); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getLatest(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getCurrent(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } }; /** - * optional ResourceVoteChoice vote_choice = 4; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * optional uint32 latest = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getVoteChoice = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice, 4)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.getLatest = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setVoteChoice = function(value) { - return jspb.Message.setWrapperField(this, 4, value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.setLatest = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * optional uint32 current = 4; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearVoteChoice = function() { - return this.setVoteChoice(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.getCurrent = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.hasVoteChoice = function() { - return jspb.Message.getField(this, 4) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.setCurrent = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; -/** - * optional ContestedResourceIdentityVotes votes = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getVotes = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes, 1)); +/** + * optional Tenderdash tenderdash = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.getTenderdash = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setVotes = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.setTenderdash = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearVotes = function() { - return this.setVotes(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.clearTenderdash = function() { + return this.setTenderdash(undefined); }; @@ -34294,36 +42276,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasVotes = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.hasTenderdash = function() { return jspb.Message.getField(this, 1) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional Drive drive = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.getDrive = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.setDrive = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.clearDrive = function() { + return this.setDrive(undefined); }; @@ -34331,36 +42313,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.hasDrive = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional Software software = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.getSoftware = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.setSoftware = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.clearSoftware = function() { + return this.setSoftware(undefined); }; @@ -34368,36 +42350,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.hasSoftware = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional GetContestedResourceIdentityVotesResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * optional Protocol protocol = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.getProtocol = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.setProtocol = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.clearProtocol = function() { + return this.setProtocol(undefined); }; @@ -34405,37 +42387,12 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.hasProtocol = function() { + return jspb.Message.getField(this, 2) != 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.GetPrefundedSpecializedBalanceRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -34451,8 +42408,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject(opt_includeInstance, this); }; @@ -34461,13 +42418,16 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. * @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.GetPrefundedSpecializedBalanceRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(includeInstance, f) + local: jspb.Message.getFieldWithDefault(msg, 1, 0), + block: jspb.Message.getFieldWithDefault(msg, 2, 0), + genesis: jspb.Message.getFieldWithDefault(msg, 3, 0), + epoch: jspb.Message.getFieldWithDefault(msg, 4, 0) }; if (includeInstance) { @@ -34481,23 +42441,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.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.GetPrefundedSpecializedBalanceRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34505,9 +42465,20 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setLocal(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBlock(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setGenesis(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); break; default: reader.skipField(); @@ -34522,9 +42493,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34532,20 +42503,166 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getLocal(); + if (f !== 0) { + writer.writeUint64( 1, - f, - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint64( + 2, + f ); } + f = /** @type {number} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeUint64( + 3, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeUint32( + 4, + f + ); + } +}; + + +/** + * optional uint64 local = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getLocal = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setLocal = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 block = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getBlock = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setBlock = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearBlock = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasBlock = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint64 genesis = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getGenesis = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setGenesis = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearGenesis = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasGenesis = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint32 epoch = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 4, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 4, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 4) != null; }; @@ -34565,8 +42682,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject(opt_includeInstance, this); }; @@ -34575,14 +42692,14 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * @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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject = function(includeInstance, msg) { var f, obj = { id: msg.getId_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + proTxHash: msg.getProTxHash_asB64() }; if (includeInstance) { @@ -34596,23 +42713,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34624,8 +42741,8 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund msg.setId(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); break; default: reader.skipField(); @@ -34640,9 +42757,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34650,11 +42767,11 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getId_asU8(); if (f.length > 0) { @@ -34663,9 +42780,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund f ); } - f = message.getProve(); - if (f) { - writer.writeBool( + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( 2, f ); @@ -34677,7 +42794,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * optional bytes id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; @@ -34687,7 +42804,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * This is a type-conversion wrapper around `getId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( this.getId())); }; @@ -34700,7 +42817,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * This is a type-conversion wrapper around `getId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( this.getId())); }; @@ -34708,56 +42825,61 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setId = function(value) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.setId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} + * optional bytes pro_tx_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + * optional bytes pro_tx_hash = 2; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); }; /** - * optional GetPrefundedSpecializedBalanceRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * optional bytes pro_tx_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0], value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.setProTxHash = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.clearProTxHash = function() { + return jspb.Message.setField(this, 2, undefined); }; @@ -34765,37 +42887,12 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.hasProTxHash = function() { + return jspb.Message.getField(this, 2) != 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.GetPrefundedSpecializedBalanceResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -34811,8 +42908,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject(opt_includeInstance, this); }; @@ -34821,13 +42918,21 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype * @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.GetPrefundedSpecializedBalanceResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(includeInstance, f) + catchingUp: jspb.Message.getBooleanFieldWithDefault(msg, 1, false), + latestBlockHash: msg.getLatestBlockHash_asB64(), + latestAppHash: msg.getLatestAppHash_asB64(), + latestBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), + earliestBlockHash: msg.getEarliestBlockHash_asB64(), + earliestAppHash: msg.getEarliestAppHash_asB64(), + earliestBlockHeight: jspb.Message.getFieldWithDefault(msg, 7, 0), + maxPeerBlockHeight: jspb.Message.getFieldWithDefault(msg, 9, 0), + coreChainLockedHeight: jspb.Message.getFieldWithDefault(msg, 10, 0) }; if (includeInstance) { @@ -34841,23 +42946,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.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.GetPrefundedSpecializedBalanceResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34865,9 +42970,40 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setCatchingUp(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLatestBlockHash(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLatestAppHash(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setLatestBlockHeight(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setEarliestBlockHash(value); + break; + case 6: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setEarliestAppHash(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint64()); + msg.setEarliestBlockHeight(value); + break; + case 9: + var value = /** @type {number} */ (reader.readUint64()); + msg.setMaxPeerBlockHeight(value); + break; + case 10: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCoreChainLockedHeight(value); break; default: reader.skipField(); @@ -34882,9 +43018,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34892,364 +43028,357 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getCatchingUp(); + if (f) { + writer.writeBool( 1, - f, - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getLatestBlockHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getLatestAppHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } + f = message.getLatestBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getEarliestBlockHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getEarliestAppHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 6, + f + ); + } + f = message.getEarliestBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 7, + f + ); + } + f = message.getMaxPeerBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 9, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 10)); + if (f != null) { + writer.writeUint32( + 10, + f ); } }; - /** - * 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 + * optional bool catching_up = 1; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getCatchingUp = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + /** - * @enum {number} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - BALANCE: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setCatchingUp = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} + * optional bytes latest_block_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; - -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} + * optional bytes latest_block_hash = 2; + * This is a type-conversion wrapper around `getLatestBlockHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLatestBlockHash())); }; /** - * 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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional bytes latest_block_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLatestBlockHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - balance: jspb.Message.getFieldWithDefault(msg, 1, 0), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLatestBlockHash())); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestBlockHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional bytes latest_app_hash = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional bytes latest_app_hash = 3; + * This is a type-conversion wrapper around `getLatestAppHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.setBalance(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLatestAppHash())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes latest_app_hash = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLatestAppHash()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLatestAppHash())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = /** @type {number} */ (jspb.Message.getField(message, 1)); - if (f != null) { - writer.writeUint64( - 1, - f - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestAppHash = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); }; /** - * optional uint64 balance = 1; + * optional uint64 latest_block_height = 4; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getBalance = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setBalance = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional bytes earliest_block_hash = 5; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearBalance = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes earliest_block_hash = 5; + * This is a type-conversion wrapper around `getEarliestBlockHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasBalance = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getEarliestBlockHash())); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional bytes earliest_block_hash = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEarliestBlockHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getEarliestBlockHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestBlockHash = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional bytes earliest_app_hash = 6; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes earliest_app_hash = 6; + * This is a type-conversion wrapper around `getEarliestAppHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getEarliestAppHash())); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes earliest_app_hash = 6; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEarliestAppHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getEarliestAppHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestAppHash = function(value) { + return jspb.Message.setProto3BytesField(this, 6, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional uint64 earliest_block_height = 7; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); }; /** - * optional GetPrefundedSpecializedBalanceResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional uint64 max_peer_block_height = 9; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getMaxPeerBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0], value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setMaxPeerBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this + * optional uint32 core_chain_locked_height = 10; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getCoreChainLockedHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setCoreChainLockedHeight = function(value) { + return jspb.Message.setField(this, 10, value); }; - -/** - * 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.GetTotalCreditsInPlatformRequest.oneofGroups_ = [[1]]; - /** - * @enum {number} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.clearCoreChainLockedHeight = function() { + return jspb.Message.setField(this, 10, undefined); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.hasCoreChainLockedHeight = function() { + return jspb.Message.getField(this, 10) != null; }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -35263,8 +43392,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject(opt_includeInstance, this); }; @@ -35273,13 +43402,15 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.toObj * @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.GetTotalCreditsInPlatformRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(includeInstance, f) + chainId: jspb.Message.getFieldWithDefault(msg, 1, ""), + peersCount: jspb.Message.getFieldWithDefault(msg, 2, 0), + listening: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -35293,23 +43424,23 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = func /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.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.GetTotalCreditsInPlatformRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -35317,9 +43448,16 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBina var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {string} */ (reader.readString()); + msg.setChainId(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setPeersCount(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setListening(value); break; default: reader.skipField(); @@ -35334,9 +43472,9 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBina * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -35344,23 +43482,90 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.seria /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getChainId(); + if (f.length > 0) { + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter + f + ); + } + f = message.getPeersCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } + f = message.getListening(); + if (f) { + writer.writeBool( + 3, + f ); } }; +/** + * optional string chain_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getChainId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setChainId = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional uint32 peers_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getPeersCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setPeersCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional bool listening = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getListening = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setListening = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + @@ -35377,8 +43582,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject(opt_includeInstance, this); }; @@ -35387,13 +43592,20 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits * @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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject = function(includeInstance, msg) { var f, obj = { - prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + totalSyncedTime: jspb.Message.getFieldWithDefault(msg, 1, 0), + remainingTime: jspb.Message.getFieldWithDefault(msg, 2, 0), + totalSnapshots: jspb.Message.getFieldWithDefault(msg, 3, 0), + chunkProcessAvgTime: jspb.Message.getFieldWithDefault(msg, 4, 0), + snapshotHeight: jspb.Message.getFieldWithDefault(msg, 5, 0), + snapshotChunksCount: jspb.Message.getFieldWithDefault(msg, 6, 0), + backfilledBlocks: jspb.Message.getFieldWithDefault(msg, 7, 0), + backfillBlocksTotal: jspb.Message.getFieldWithDefault(msg, 8, 0) }; if (includeInstance) { @@ -35407,23 +43619,23 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -35431,8 +43643,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setTotalSyncedTime(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRemainingTime(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setTotalSnapshots(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setChunkProcessAvgTime(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSnapshotHeight(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSnapshotChunksCount(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBackfilledBlocks(value); + break; + case 8: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBackfillBlocksTotal(value); break; default: reader.skipField(); @@ -35447,9 +43687,9 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -35457,406 +43697,351 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getTotalSyncedTime(); + if (f !== 0) { + writer.writeUint64( 1, f ); } + f = message.getRemainingTime(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getTotalSnapshots(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getChunkProcessAvgTime(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getSnapshotHeight(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } + f = message.getSnapshotChunksCount(); + if (f !== 0) { + writer.writeUint64( + 6, + f + ); + } + f = message.getBackfilledBlocks(); + if (f !== 0) { + writer.writeUint64( + 7, + f + ); + } + f = message.getBackfillBlocksTotal(); + if (f !== 0) { + writer.writeUint64( + 8, + f + ); + } }; /** - * optional bool prove = 1; - * @return {boolean} + * optional uint64 total_synced_time = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getTotalSyncedTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setTotalSyncedTime = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional GetTotalCreditsInPlatformRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * optional uint64 remaining_time = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getRemainingTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setRemainingTime = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional uint32 total_snapshots = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getTotalSnapshots = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; - -/** - * 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.GetTotalCreditsInPlatformResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setTotalSnapshots = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} + * optional uint64 chunk_process_avg_time = 4; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getChunkProcessAvgTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 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} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setChunkProcessAvgTime = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; /** - * 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.GetTotalCreditsInPlatformResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional uint64 snapshot_height = 5; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getSnapshotHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setSnapshotHeight = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} - */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader); - msg.setV0(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; + * optional uint64 snapshot_chunks_count = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getSnapshotChunksCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setSnapshotChunksCount = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional uint64 backfilled_blocks = 7; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getBackfilledBlocks = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setBackfilledBlocks = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + /** - * 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 + * optional uint64 backfill_blocks_total = 8; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getBackfillBlocksTotal = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + /** - * @enum {number} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - CREDITS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setBackfillBlocksTotal = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} + * optional Version version = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getVersion = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version, 1)); }; +/** + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setVersion = function(value) { + return jspb.Message.setWrapperField(this, 1, 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} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearVersion = function() { + return this.setVersion(undefined); }; /** - * 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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - credits: jspb.Message.getFieldWithDefault(msg, 1, 0), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasVersion = function() { + return jspb.Message.getField(this, 1) != null; +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * optional Node node = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getNode = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node, 2)); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setNode = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearNode = function() { + return this.setNode(undefined); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.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.setCredits(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasNode = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional Chain chain = 3; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getChain = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain, 3)); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setChain = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = /** @type {number} */ (jspb.Message.getField(message, 1)); - if (f != null) { - writer.writeUint64( - 1, - f - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearChain = function() { + return this.setChain(undefined); }; /** - * optional uint64 credits = 1; - * @return {number} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getCredits = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasChain = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * optional Network network = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setCredits = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getNetwork = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network, 4)); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setNetwork = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearCredits = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearNetwork = function() { + return this.setNetwork(undefined); }; @@ -35864,36 +44049,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasCredits = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasNetwork = function() { + return jspb.Message.getField(this, 4) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional StateSync state_sync = 5; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getStateSync = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync, 5)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setStateSync = function(value) { + return jspb.Message.setWrapperField(this, 5, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearStateSync = function() { + return this.setStateSync(undefined); }; @@ -35901,36 +44086,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasStateSync = function() { + return jspb.Message.getField(this, 5) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional Time time = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getTime = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time, 6)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setTime = function(value) { + return jspb.Message.setWrapperField(this, 6, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearTime = function() { + return this.setTime(undefined); }; @@ -35938,35 +44123,35 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasTime = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * optional GetTotalCreditsInPlatformResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * optional GetStatusResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -35975,7 +44160,7 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clea * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -35989,21 +44174,21 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.hasV * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_[0])); }; @@ -36021,8 +44206,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.toObject(opt_includeInstance, this); }; @@ -36031,13 +44216,13 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.toObject = func * @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.GetPathElementsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -36051,23 +44236,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(inclu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest; - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.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.GetPathElementsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36075,8 +44260,8 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromRead var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -36092,9 +44277,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromRead * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36102,31 +44287,24 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.repeatedFields_ = [1,2]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -36142,8 +44320,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject(opt_includeInstance, this); }; @@ -36152,15 +44330,13 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. * @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.GetPathElementsRequest.GetPathElementsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - pathList: msg.getPathList_asB64(), - keysList: msg.getKeysList_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) + }; if (includeInstance) { @@ -36174,41 +44350,29 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.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.GetPathElementsRequest.GetPathElementsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.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.addPath(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addKeys(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); - break; default: reader.skipField(); break; @@ -36222,9 +44386,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36232,238 +44396,191 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getPathList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 1, - f - ); - } - f = message.getKeysList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 2, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * repeated bytes path = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * repeated bytes path = 1; - * This is a type-conversion wrapper around `getPathList()` - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getPathList())); }; /** - * repeated bytes path = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPathList()` - * @return {!Array} + * optional GetCurrentQuorumsInfoRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getPathList())); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0, 1)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setPathList = function(value) { - return jspb.Message.setField(this, 1, value || []); + * @param {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_[0], value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addPath = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearPathList = function() { - return this.setPathList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; -/** - * repeated bytes keys = 2; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); -}; - /** - * repeated bytes keys = 2; - * This is a type-conversion wrapper around `getKeysList()` - * @return {!Array} + * 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.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getKeysList())); -}; - +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_ = [[1]]; /** - * repeated bytes keys = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getKeysList()` - * @return {!Array} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getKeysList())); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * @return {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setKeysList = function(value) { - return jspb.Message.setField(this, 2, value || []); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_[0])); }; -/** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addKeys = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 2, value, opt_index); -}; - +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * 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.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearKeysList = function() { - return this.setKeysList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.toObject(opt_includeInstance, this); }; /** - * optional bool prove = 3; - * @return {boolean} + * 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.GetCurrentQuorumsInfoResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject(includeInstance, f) + }; -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional GetPathElementsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.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.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * Returns whether this field is set. - * @return {boolean} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; - -/** - * 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.GetPathElementsResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter + ); + } }; -/** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0])); -}; + @@ -36480,8 +44597,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject(opt_includeInstance, this); }; @@ -36490,13 +44607,15 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = fun * @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.GetPathElementsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(includeInstance, f) + proTxHash: msg.getProTxHash_asB64(), + nodeIp: jspb.Message.getFieldWithDefault(msg, 2, ""), + isBanned: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -36510,23 +44629,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.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.GetPathElementsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36534,9 +44653,16 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNodeIp(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setIsBanned(value); break; default: reader.skipField(); @@ -36551,9 +44677,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36561,52 +44687,124 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getNodeIp(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIsBanned(); + if (f) { + writer.writeBool( + 3, + f ); } }; +/** + * optional bytes pro_tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + /** - * 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 + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); +}; + /** - * @enum {number} + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - ELEMENTS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} + * optional string node_ip = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getNodeIp = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setNodeIp = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool is_banned = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getIsBanned = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setIsBanned = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.repeatedFields_ = [3]; + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -36620,8 +44818,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject(opt_includeInstance, this); }; @@ -36630,15 +44828,17 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * @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.GetPathElementsResponse.GetPathElementsResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject = function(includeInstance, msg) { var f, obj = { - elements: (f = msg.getElements()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + quorumHash: msg.getQuorumHash_asB64(), + coreHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), + membersList: jspb.Message.toObjectList(msg.getMembersList(), + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject, includeInstance), + thresholdPublicKey: msg.getThresholdPublicKey_asB64() }; if (includeInstance) { @@ -36652,23 +44852,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.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.GetPathElementsResponse.GetPathElementsResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36676,19 +44876,21 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader); - msg.setElements(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setQuorumHash(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCoreHeight(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinaryFromReader); + msg.addMembers(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setThresholdPublicKey(value); break; default: reader.skipField(); @@ -36703,9 +44905,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36713,46 +44915,191 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getElements(); - if (f != null) { - writer.writeMessage( + f = message.getQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCoreHeight(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getMembersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 3, f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter + ); + } + f = message.getThresholdPublicKey_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f ); } }; +/** + * optional bytes quorum_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes quorum_hash = 1; + * This is a type-conversion wrapper around `getQuorumHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getQuorumHash())); +}; + + +/** + * optional bytes quorum_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getQuorumHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getQuorumHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setQuorumHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint32 core_height = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getCoreHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setCoreHeight = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * repeated ValidatorV0 members = 3; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getMembersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setMembersList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.addMembers = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.clearMembersList = function() { + return this.setMembersList([]); +}; + + +/** + * optional bytes threshold_public_key = 4; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * optional bytes threshold_public_key = 4; + * This is a type-conversion wrapper around `getThresholdPublicKey()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getThresholdPublicKey())); +}; + + +/** + * optional bytes threshold_public_key = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getThresholdPublicKey()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getThresholdPublicKey())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setThresholdPublicKey = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); +}; + + /** * List of repeated fields within this message type. * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.repeatedFields_ = [1,3]; @@ -36769,8 +45116,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject(opt_includeInstance, this); }; @@ -36779,13 +45126,18 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * @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.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - elementsList: msg.getElementsList_asB64() + quorumHashesList: msg.getQuorumHashesList_asB64(), + currentQuorumHash: msg.getCurrentQuorumHash_asB64(), + validatorSetsList: jspb.Message.toObjectList(msg.getValidatorSetsList(), + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject, includeInstance), + lastBlockProposer: msg.getLastBlockProposer_asB64(), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -36799,23 +45151,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.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.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36824,7 +45176,25 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addElements(value); + msg.addQuorumHashes(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setCurrentQuorumHash(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinaryFromReader); + msg.addValidatorSets(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLastBlockProposer(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -36839,9 +45209,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36849,60 +45219,90 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getElementsList_asU8(); + f = message.getQuorumHashesList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } + f = message.getCurrentQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getValidatorSetsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter + ); + } + f = message.getLastBlockProposer_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; /** - * repeated bytes elements = 1; + * repeated bytes quorum_hashes = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes elements = 1; - * This is a type-conversion wrapper around `getElementsList()` + * repeated bytes quorum_hashes = 1; + * This is a type-conversion wrapper around `getQuorumHashesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getElementsList())); + this.getQuorumHashesList())); }; /** - * repeated bytes elements = 1; + * repeated bytes quorum_hashes = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getElementsList()` + * This is a type-conversion wrapper around `getQuorumHashesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getElementsList())); + this.getQuorumHashesList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.setElementsList = function(value) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setQuorumHashesList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -36910,120 +45310,168 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.addElements = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.addQuorumHashes = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.clearElementsList = function() { - return this.setElementsList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearQuorumHashesList = function() { + return this.setQuorumHashesList([]); }; /** - * optional Elements elements = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * optional bytes current_quorum_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getElements = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements, 1)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setElements = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); + * optional bytes current_quorum_hash = 2; + * This is a type-conversion wrapper around `getCurrentQuorumHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getCurrentQuorumHash())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * optional bytes current_quorum_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getCurrentQuorumHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearElements = function() { - return this.setElements(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getCurrentQuorumHash())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasElements = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setCurrentQuorumHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * repeated ValidatorSetV0 validator_sets = 3; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getValidatorSetsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, 3)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setValidatorSetsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.addValidatorSets = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearValidatorSetsList = function() { + return this.setValidatorSetsList([]); }; /** - * optional ResponseMetadata metadata = 3; + * optional bytes last_block_proposer = 4; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * optional bytes last_block_proposer = 4; + * This is a type-conversion wrapper around `getLastBlockProposer()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLastBlockProposer())); +}; + + +/** + * optional bytes last_block_proposer = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLastBlockProposer()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLastBlockProposer())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setLastBlockProposer = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); +}; + + +/** + * optional ResponseMetadata metadata = 5; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 5)); }; /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 5, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -37032,35 +45480,35 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 5) != null; }; /** - * optional GetPathElementsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * optional GetCurrentQuorumsInfoResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -37069,7 +45517,7 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = func * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; 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 371160b030..bafa69fcb7 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 @@ -54,6 +54,10 @@ CF_EXTERN_C_BEGIN @class GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo; @class GetContestedResourcesResponse_GetContestedResourcesResponseV0; @class GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues; +@class GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0; +@class GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0; +@class GetCurrentQuorumsInfoResponse_ValidatorSetV0; +@class GetCurrentQuorumsInfoResponse_ValidatorV0; @class GetDataContractHistoryRequest_GetDataContractHistoryRequestV0; @class GetDataContractHistoryResponse_GetDataContractHistoryResponseV0; @class GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory; @@ -71,6 +75,15 @@ CF_EXTERN_C_BEGIN @class GetEpochsInfoResponse_GetEpochsInfoResponseV0; @class GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo; @class GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos; +@class GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0; +@class GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0; +@class GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0; +@class GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks; +@class GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks; +@class GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0; +@class GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0; +@class GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances; +@class GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance; @class GetIdentitiesContractKeysRequest_GetIdentitiesContractKeysRequestV0; @class GetIdentitiesContractKeysResponse_GetIdentitiesContractKeysResponseV0; @class GetIdentitiesContractKeysResponse_GetIdentitiesContractKeysResponseV0_IdentitiesKeys; @@ -112,6 +125,18 @@ CF_EXTERN_C_BEGIN @class GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0; @class GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal; @class GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals; +@class GetStatusRequest_GetStatusRequestV0; +@class GetStatusResponse_GetStatusResponseV0; +@class GetStatusResponse_GetStatusResponseV0_Chain; +@class GetStatusResponse_GetStatusResponseV0_Network; +@class GetStatusResponse_GetStatusResponseV0_Node; +@class GetStatusResponse_GetStatusResponseV0_StateSync; +@class GetStatusResponse_GetStatusResponseV0_Time; +@class GetStatusResponse_GetStatusResponseV0_Version; +@class GetStatusResponse_GetStatusResponseV0_Version_Protocol; +@class GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive; +@class GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash; +@class GetStatusResponse_GetStatusResponseV0_Version_Software; @class GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0; @class GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0; @class GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0; @@ -1340,6 +1365,339 @@ GPB_FINAL @interface GetIdentitiesContractKeysResponse_GetIdentitiesContractKeys @end +#pragma mark - GetEvonodesProposedEpochBlocksByIdsRequest + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByIdsRequest_FieldNumber) { + GetEvonodesProposedEpochBlocksByIdsRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByIdsRequest_Version_OneOfCase) { + GetEvonodesProposedEpochBlocksByIdsRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetEvonodesProposedEpochBlocksByIdsRequest_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksByIdsRequest : GPBMessage + +@property(nonatomic, readonly) GetEvonodesProposedEpochBlocksByIdsRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetEvonodesProposedEpochBlocksByIdsRequest_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksByIdsRequest *message); + +#pragma mark - GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber) { + GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_Epoch = 1, + GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_IdsArray = 2, + GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_Prove = 3, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 : GPBMessage + +/** The epoch we are querying for, if none is set, get current epoch */ +@property(nonatomic, readwrite) uint32_t epoch; + +@property(nonatomic, readwrite) BOOL hasEpoch; +/** IDs of the evonodes for which we want to get their proposed blocks */ +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *idsArray; +/** The number of items in @c idsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger idsArray_Count; + +/** Flag to request a proof as the response */ +@property(nonatomic, readwrite) BOOL prove; + +@end + +#pragma mark - GetEvonodesProposedEpochBlocksResponse + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_FieldNumber) { + GetEvonodesProposedEpochBlocksResponse_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_Version_OneOfCase) { + GetEvonodesProposedEpochBlocksResponse_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetEvonodesProposedEpochBlocksResponse_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksResponse : GPBMessage + +@property(nonatomic, readonly) GetEvonodesProposedEpochBlocksResponse_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetEvonodesProposedEpochBlocksResponse_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksResponse *message); + +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber) { + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_EvonodesProposedBlockCountsInfo = 1, + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_Proof = 2, + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_Metadata = 3, +}; + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_Result_OneOfCase) { + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_Result_OneOfCase_GPBUnsetOneOfCase = 0, + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_Result_OneOfCase_EvonodesProposedBlockCountsInfo = 1, + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_Result_OneOfCase_Proof = 2, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 : GPBMessage + +@property(nonatomic, readonly) GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_Result_OneOfCase resultOneOfCase; + +/** The actual result */ +@property(nonatomic, readwrite, strong, null_resettable) GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks *evonodesProposedBlockCountsInfo; + +/** Proof of the keys data, if requested */ +@property(nonatomic, readwrite, strong, null_resettable) Proof *proof; + +/** Metadata about the blockchain state */ +@property(nonatomic, readwrite, strong, null_resettable) ResponseMetadata *metadata; +/** Test to see if @c metadata has been set. */ +@property(nonatomic, readwrite) BOOL hasMetadata; + +@end + +/** + * Clears whatever value was set for the oneof 'result'. + **/ +void GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_ClearResultOneOfCase(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 *message); + +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks_FieldNumber) { + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks_FieldNumber_ProTxHash = 1, + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks_FieldNumber_Count = 2, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSData *proTxHash; + +@property(nonatomic, readwrite) uint64_t count; + +@end + +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks_FieldNumber) { + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks_FieldNumber_EvonodesProposedBlockCountsArray = 1, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *evonodesProposedBlockCountsArray; +/** The number of items in @c evonodesProposedBlockCountsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger evonodesProposedBlockCountsArray_Count; + +@end + +#pragma mark - GetEvonodesProposedEpochBlocksByRangeRequest + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByRangeRequest_FieldNumber) { + GetEvonodesProposedEpochBlocksByRangeRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByRangeRequest_Version_OneOfCase) { + GetEvonodesProposedEpochBlocksByRangeRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetEvonodesProposedEpochBlocksByRangeRequest_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksByRangeRequest : GPBMessage + +@property(nonatomic, readonly) GetEvonodesProposedEpochBlocksByRangeRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetEvonodesProposedEpochBlocksByRangeRequest_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksByRangeRequest *message); + +#pragma mark - GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber) { + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Epoch = 1, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Limit = 2, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_StartAfter = 3, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_StartAt = 4, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Prove = 5, +}; + +typedef GPB_ENUM(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_Start_OneOfCase) { + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_Start_OneOfCase_GPBUnsetOneOfCase = 0, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_Start_OneOfCase_StartAfter = 3, + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_Start_OneOfCase_StartAt = 4, +}; + +GPB_FINAL @interface GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 : GPBMessage + +/** The epoch we are querying for, if none is set, get current epoch */ +@property(nonatomic, readwrite) uint32_t epoch; + +@property(nonatomic, readwrite) BOOL hasEpoch; +/** Maximum number of evonodes proposed epoch blocks to return */ +@property(nonatomic, readwrite) uint32_t limit; + +@property(nonatomic, readwrite) BOOL hasLimit; +@property(nonatomic, readonly) GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_Start_OneOfCase startOneOfCase; + +/** Start retrieval after this document */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *startAfter; + +/** Start retrieval at this document */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *startAt; + +/** Flag to request a proof as the response */ +@property(nonatomic, readwrite) BOOL prove; + +@end + +/** + * Clears whatever value was set for the oneof 'start'. + **/ +void GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_ClearStartOneOfCase(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 *message); + +#pragma mark - GetIdentitiesBalancesRequest + +typedef GPB_ENUM(GetIdentitiesBalancesRequest_FieldNumber) { + GetIdentitiesBalancesRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetIdentitiesBalancesRequest_Version_OneOfCase) { + GetIdentitiesBalancesRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetIdentitiesBalancesRequest_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetIdentitiesBalancesRequest : GPBMessage + +@property(nonatomic, readonly) GetIdentitiesBalancesRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetIdentitiesBalancesRequest_ClearVersionOneOfCase(GetIdentitiesBalancesRequest *message); + +#pragma mark - GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 + +typedef GPB_ENUM(GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0_FieldNumber) { + GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0_FieldNumber_IdsArray = 1, + GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0_FieldNumber_Prove = 2, +}; + +GPB_FINAL @interface GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *idsArray; +/** The number of items in @c idsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger idsArray_Count; + +@property(nonatomic, readwrite) BOOL prove; + +@end + +#pragma mark - GetIdentitiesBalancesResponse + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_FieldNumber) { + GetIdentitiesBalancesResponse_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_Version_OneOfCase) { + GetIdentitiesBalancesResponse_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetIdentitiesBalancesResponse_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetIdentitiesBalancesResponse : GPBMessage + +@property(nonatomic, readonly) GetIdentitiesBalancesResponse_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetIdentitiesBalancesResponse_ClearVersionOneOfCase(GetIdentitiesBalancesResponse *message); + +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber) { + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_IdentitiesBalances = 1, + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_Proof = 2, + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_Metadata = 3, +}; + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_Result_OneOfCase) { + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_Result_OneOfCase_GPBUnsetOneOfCase = 0, + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_Result_OneOfCase_IdentitiesBalances = 1, + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_Result_OneOfCase_Proof = 2, +}; + +GPB_FINAL @interface GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 : GPBMessage + +@property(nonatomic, readonly) GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_Result_OneOfCase resultOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances *identitiesBalances; + +@property(nonatomic, readwrite, strong, null_resettable) Proof *proof; + +@property(nonatomic, readwrite, strong, null_resettable) ResponseMetadata *metadata; +/** Test to see if @c metadata has been set. */ +@property(nonatomic, readwrite) BOOL hasMetadata; + +@end + +/** + * Clears whatever value was set for the oneof 'result'. + **/ +void GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_ClearResultOneOfCase(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 *message); + +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance_FieldNumber) { + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance_FieldNumber_IdentityId = 1, + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance_FieldNumber_Balance = 2, +}; + +GPB_FINAL @interface GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSData *identityId; + +@property(nonatomic, readwrite) uint64_t balance; + +@property(nonatomic, readwrite) BOOL hasBalance; +@end + +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances + +typedef GPB_ENUM(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances_FieldNumber) { + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances_FieldNumber_EntriesArray = 1, +}; + +GPB_FINAL @interface GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *entriesArray; +/** The number of items in @c entriesArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger entriesArray_Count; + +@end + #pragma mark - GetProofsRequest typedef GPB_ENUM(GetProofsRequest_FieldNumber) { @@ -4156,6 +4514,454 @@ GPB_FINAL @interface GetPathElementsResponse_GetPathElementsResponseV0_Elements @end +#pragma mark - GetStatusRequest + +typedef GPB_ENUM(GetStatusRequest_FieldNumber) { + GetStatusRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetStatusRequest_Version_OneOfCase) { + GetStatusRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetStatusRequest_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetStatusRequest : GPBMessage + +@property(nonatomic, readonly) GetStatusRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusRequest_GetStatusRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetStatusRequest_ClearVersionOneOfCase(GetStatusRequest *message); + +#pragma mark - GetStatusRequest_GetStatusRequestV0 + +GPB_FINAL @interface GetStatusRequest_GetStatusRequestV0 : GPBMessage + +@end + +#pragma mark - GetStatusResponse + +typedef GPB_ENUM(GetStatusResponse_FieldNumber) { + GetStatusResponse_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetStatusResponse_Version_OneOfCase) { + GetStatusResponse_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetStatusResponse_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetStatusResponse : GPBMessage + +@property(nonatomic, readonly) GetStatusResponse_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetStatusResponse_ClearVersionOneOfCase(GetStatusResponse *message); + +#pragma mark - GetStatusResponse_GetStatusResponseV0 + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_FieldNumber_Version = 1, + GetStatusResponse_GetStatusResponseV0_FieldNumber_Node = 2, + GetStatusResponse_GetStatusResponseV0_FieldNumber_Chain = 3, + GetStatusResponse_GetStatusResponseV0_FieldNumber_Network = 4, + GetStatusResponse_GetStatusResponseV0_FieldNumber_StateSync = 5, + GetStatusResponse_GetStatusResponseV0_FieldNumber_Time = 6, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0 : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Version *version; +/** Test to see if @c version has been set. */ +@property(nonatomic, readwrite) BOOL hasVersion; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Node *node; +/** Test to see if @c node has been set. */ +@property(nonatomic, readwrite) BOOL hasNode; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Chain *chain; +/** Test to see if @c chain has been set. */ +@property(nonatomic, readwrite) BOOL hasChain; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Network *network; +/** Test to see if @c network has been set. */ +@property(nonatomic, readwrite) BOOL hasNetwork; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_StateSync *stateSync; +/** Test to see if @c stateSync has been set. */ +@property(nonatomic, readwrite) BOOL hasStateSync; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Time *time; +/** Test to see if @c time has been set. */ +@property(nonatomic, readwrite) BOOL hasTime; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Version_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Version_FieldNumber_Software = 1, + GetStatusResponse_GetStatusResponseV0_Version_FieldNumber_Protocol = 2, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Version : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Version_Software *software; +/** Test to see if @c software has been set. */ +@property(nonatomic, readwrite) BOOL hasSoftware; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Version_Protocol *protocol; +/** Test to see if @c protocol has been set. */ +@property(nonatomic, readwrite) BOOL hasProtocol; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Software + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Dapi = 1, + GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Drive = 2, + GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Tenderdash = 3, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Version_Software : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSString *dapi; + +/** It will be missing if Drive is not responding */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *drive; +/** Test to see if @c drive has been set. */ +@property(nonatomic, readwrite) BOOL hasDrive; + +/** It will be missing if Tenderdash is not responding */ +@property(nonatomic, readwrite, copy, null_resettable) NSString *tenderdash; +/** Test to see if @c tenderdash has been set. */ +@property(nonatomic, readwrite) BOOL hasTenderdash; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Version_Protocol_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Version_Protocol_FieldNumber_Tenderdash = 1, + GetStatusResponse_GetStatusResponseV0_Version_Protocol_FieldNumber_Drive = 2, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Version_Protocol : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash *tenderdash; +/** Test to see if @c tenderdash has been set. */ +@property(nonatomic, readwrite) BOOL hasTenderdash; + +@property(nonatomic, readwrite, strong, null_resettable) GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive *drive; +/** Test to see if @c drive has been set. */ +@property(nonatomic, readwrite) BOOL hasDrive; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash_FieldNumber_P2P = 1, + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash_FieldNumber_Block = 2, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash : GPBMessage + +@property(nonatomic, readwrite) uint32_t p2P; + +@property(nonatomic, readwrite) uint32_t block; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive_FieldNumber_Latest = 3, + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive_FieldNumber_Current = 4, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive : GPBMessage + +@property(nonatomic, readwrite) uint32_t latest; + +@property(nonatomic, readwrite) uint32_t current; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Time + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Time_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Local = 1, + GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Block = 2, + GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Genesis = 3, + GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Epoch = 4, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Time : GPBMessage + +@property(nonatomic, readwrite) uint64_t local; + +/** It will be missing if Drive is not responding */ +@property(nonatomic, readwrite) uint64_t block; + +@property(nonatomic, readwrite) BOOL hasBlock; +/** It will be missing if Drive is not responding */ +@property(nonatomic, readwrite) uint64_t genesis; + +@property(nonatomic, readwrite) BOOL hasGenesis; +/** It will be missing if Drive is not responding */ +@property(nonatomic, readwrite) uint32_t epoch; + +@property(nonatomic, readwrite) BOOL hasEpoch; +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Node + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Node_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Node_FieldNumber_Id_p = 1, + GetStatusResponse_GetStatusResponseV0_Node_FieldNumber_ProTxHash = 2, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Node : GPBMessage + +/** Platform node ID */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *id_p; + +/** Evo masternode pro tx hash. It will be absent if the node is a fullnode */ +@property(nonatomic, readwrite, copy, null_resettable) NSData *proTxHash; +/** Test to see if @c proTxHash has been set. */ +@property(nonatomic, readwrite) BOOL hasProTxHash; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Chain + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_CatchingUp = 1, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestBlockHash = 2, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestAppHash = 3, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestBlockHeight = 4, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestBlockHash = 5, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestAppHash = 6, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestBlockHeight = 7, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_MaxPeerBlockHeight = 9, + GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_CoreChainLockedHeight = 10, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Chain : GPBMessage + +@property(nonatomic, readwrite) BOOL catchingUp; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *latestBlockHash; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *latestAppHash; + +@property(nonatomic, readwrite) uint64_t latestBlockHeight; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *earliestBlockHash; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *earliestAppHash; + +@property(nonatomic, readwrite) uint64_t earliestBlockHeight; + +@property(nonatomic, readwrite) uint64_t maxPeerBlockHeight; + +/** + * Latest known core height in consensus. + * It will be missing if Drive is not responding + **/ +@property(nonatomic, readwrite) uint32_t coreChainLockedHeight; + +@property(nonatomic, readwrite) BOOL hasCoreChainLockedHeight; +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_Network + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_Network_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_ChainId = 1, + GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_PeersCount = 2, + GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_Listening = 3, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_Network : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSString *chainId; + +@property(nonatomic, readwrite) uint32_t peersCount; + +@property(nonatomic, readwrite) BOOL listening; + +@end + +#pragma mark - GetStatusResponse_GetStatusResponseV0_StateSync + +typedef GPB_ENUM(GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber) { + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_TotalSyncedTime = 1, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_RemainingTime = 2, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_TotalSnapshots = 3, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_ChunkProcessAvgTime = 4, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_SnapshotHeight = 5, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_SnapshotChunksCount = 6, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_BackfilledBlocks = 7, + GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_BackfillBlocksTotal = 8, +}; + +GPB_FINAL @interface GetStatusResponse_GetStatusResponseV0_StateSync : GPBMessage + +@property(nonatomic, readwrite) uint64_t totalSyncedTime; + +@property(nonatomic, readwrite) uint64_t remainingTime; + +@property(nonatomic, readwrite) uint32_t totalSnapshots; + +@property(nonatomic, readwrite) uint64_t chunkProcessAvgTime; + +@property(nonatomic, readwrite) uint64_t snapshotHeight; + +@property(nonatomic, readwrite) uint64_t snapshotChunksCount; + +@property(nonatomic, readwrite) uint64_t backfilledBlocks; + +@property(nonatomic, readwrite) uint64_t backfillBlocksTotal; + +@end + +#pragma mark - GetCurrentQuorumsInfoRequest + +typedef GPB_ENUM(GetCurrentQuorumsInfoRequest_FieldNumber) { + GetCurrentQuorumsInfoRequest_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetCurrentQuorumsInfoRequest_Version_OneOfCase) { + GetCurrentQuorumsInfoRequest_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetCurrentQuorumsInfoRequest_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetCurrentQuorumsInfoRequest : GPBMessage + +@property(nonatomic, readonly) GetCurrentQuorumsInfoRequest_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetCurrentQuorumsInfoRequest_ClearVersionOneOfCase(GetCurrentQuorumsInfoRequest *message); + +#pragma mark - GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 + +GPB_FINAL @interface GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 : GPBMessage + +@end + +#pragma mark - GetCurrentQuorumsInfoResponse + +typedef GPB_ENUM(GetCurrentQuorumsInfoResponse_FieldNumber) { + GetCurrentQuorumsInfoResponse_FieldNumber_V0 = 1, +}; + +typedef GPB_ENUM(GetCurrentQuorumsInfoResponse_Version_OneOfCase) { + GetCurrentQuorumsInfoResponse_Version_OneOfCase_GPBUnsetOneOfCase = 0, + GetCurrentQuorumsInfoResponse_Version_OneOfCase_V0 = 1, +}; + +GPB_FINAL @interface GetCurrentQuorumsInfoResponse : GPBMessage + +@property(nonatomic, readonly) GetCurrentQuorumsInfoResponse_Version_OneOfCase versionOneOfCase; + +@property(nonatomic, readwrite, strong, null_resettable) GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 *v0; + +@end + +/** + * Clears whatever value was set for the oneof 'version'. + **/ +void GetCurrentQuorumsInfoResponse_ClearVersionOneOfCase(GetCurrentQuorumsInfoResponse *message); + +#pragma mark - GetCurrentQuorumsInfoResponse_ValidatorV0 + +typedef GPB_ENUM(GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber) { + GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_ProTxHash = 1, + GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_NodeIp = 2, + GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_IsBanned = 3, +}; + +GPB_FINAL @interface GetCurrentQuorumsInfoResponse_ValidatorV0 : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSData *proTxHash; + +@property(nonatomic, readwrite, copy, null_resettable) NSString *nodeIp; + +@property(nonatomic, readwrite) BOOL isBanned; + +@end + +#pragma mark - GetCurrentQuorumsInfoResponse_ValidatorSetV0 + +typedef GPB_ENUM(GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber) { + GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_QuorumHash = 1, + GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_CoreHeight = 2, + GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_MembersArray = 3, + GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_ThresholdPublicKey = 4, +}; + +GPB_FINAL @interface GetCurrentQuorumsInfoResponse_ValidatorSetV0 : GPBMessage + +@property(nonatomic, readwrite, copy, null_resettable) NSData *quorumHash; + +@property(nonatomic, readwrite) uint32_t coreHeight; + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *membersArray; +/** The number of items in @c membersArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger membersArray_Count; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *thresholdPublicKey; + +@end + +#pragma mark - GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 + +typedef GPB_ENUM(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber) { + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_QuorumHashesArray = 1, + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_CurrentQuorumHash = 2, + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_ValidatorSetsArray = 3, + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_LastBlockProposer = 4, + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_Metadata = 5, +}; + +GPB_FINAL @interface GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 : GPBMessage + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *quorumHashesArray; +/** The number of items in @c quorumHashesArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger quorumHashesArray_Count; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *currentQuorumHash; + +@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *validatorSetsArray; +/** The number of items in @c validatorSetsArray without causing the array to be created. */ +@property(nonatomic, readonly) NSUInteger validatorSetsArray_Count; + +@property(nonatomic, readwrite, copy, null_resettable) NSData *lastBlockProposer; + +@property(nonatomic, readwrite, strong, null_resettable) ResponseMetadata *metadata; +/** Test to see if @c metadata has been set. */ +@property(nonatomic, readwrite) BOOL hasMetadata; + +@end + NS_ASSUME_NONNULL_END CF_EXTERN_C_END 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 2ff171f5a5..e0bff0f273 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 @@ -64,6 +64,12 @@ GPBObjCClassDeclaration(GetContestedResourcesResponse); GPBObjCClassDeclaration(GetContestedResourcesResponse_GetContestedResourcesResponseV0); GPBObjCClassDeclaration(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoRequest); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoResponse); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoResponse_ValidatorSetV0); +GPBObjCClassDeclaration(GetCurrentQuorumsInfoResponse_ValidatorV0); GPBObjCClassDeclaration(GetDataContractHistoryRequest); GPBObjCClassDeclaration(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0); GPBObjCClassDeclaration(GetDataContractHistoryResponse); @@ -91,6 +97,20 @@ GPBObjCClassDeclaration(GetEpochsInfoResponse_GetEpochsInfoResponseV0); GPBObjCClassDeclaration(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo); GPBObjCClassDeclaration(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksByIdsRequest); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksByRangeRequest); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksResponse); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks); +GPBObjCClassDeclaration(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks); +GPBObjCClassDeclaration(GetIdentitiesBalancesRequest); +GPBObjCClassDeclaration(GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0); +GPBObjCClassDeclaration(GetIdentitiesBalancesResponse); +GPBObjCClassDeclaration(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0); +GPBObjCClassDeclaration(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances); +GPBObjCClassDeclaration(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance); GPBObjCClassDeclaration(GetIdentitiesContractKeysRequest); GPBObjCClassDeclaration(GetIdentitiesContractKeysRequest_GetIdentitiesContractKeysRequestV0); GPBObjCClassDeclaration(GetIdentitiesContractKeysResponse); @@ -158,6 +178,20 @@ GPBObjCClassDeclaration(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0); GPBObjCClassDeclaration(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal); GPBObjCClassDeclaration(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals); +GPBObjCClassDeclaration(GetStatusRequest); +GPBObjCClassDeclaration(GetStatusRequest_GetStatusRequestV0); +GPBObjCClassDeclaration(GetStatusResponse); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Chain); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Network); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Node); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_StateSync); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Time); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Version); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Version_Protocol); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash); +GPBObjCClassDeclaration(GetStatusResponse_GetStatusResponseV0_Version_Software); GPBObjCClassDeclaration(GetTotalCreditsInPlatformRequest); GPBObjCClassDeclaration(GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0); GPBObjCClassDeclaration(GetTotalCreditsInPlatformResponse); @@ -2975,17 +3009,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProofsRequest +#pragma mark - GetEvonodesProposedEpochBlocksByIdsRequest -@implementation GetProofsRequest +@implementation GetEvonodesProposedEpochBlocksByIdsRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProofsRequest__storage_ { +typedef struct GetEvonodesProposedEpochBlocksByIdsRequest__storage_ { uint32_t _has_storage_[2]; - GetProofsRequest_GetProofsRequestV0 *v0; -} GetProofsRequest__storage_; + GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 *v0; +} GetEvonodesProposedEpochBlocksByIdsRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -2995,21 +3029,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0), - .number = GetProofsRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0), + .number = GetEvonodesProposedEpochBlocksByIdsRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProofsRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByIdsRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksByIdsRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksByIdsRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -3027,27 +3061,24 @@ + (GPBDescriptor *)descriptor { @end -void GetProofsRequest_ClearVersionOneOfCase(GetProofsRequest *message) { - GPBDescriptor *descriptor = [GetProofsRequest descriptor]; +void GetEvonodesProposedEpochBlocksByIdsRequest_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksByIdsRequest *message) { + GPBDescriptor *descriptor = [GetEvonodesProposedEpochBlocksByIdsRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProofsRequest_GetProofsRequestV0 +#pragma mark - GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 -@implementation GetProofsRequest_GetProofsRequestV0 +@implementation GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 -@dynamic identitiesArray, identitiesArray_Count; -@dynamic contractsArray, contractsArray_Count; -@dynamic documentsArray, documentsArray_Count; -@dynamic votesArray, votesArray_Count; +@dynamic hasEpoch, epoch; +@dynamic idsArray, idsArray_Count; +@dynamic prove; -typedef struct GetProofsRequest_GetProofsRequestV0__storage_ { +typedef struct GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *identitiesArray; - NSMutableArray *contractsArray; - NSMutableArray *documentsArray; - NSMutableArray *votesArray; -} GetProofsRequest_GetProofsRequestV0__storage_; + uint32_t epoch; + NSMutableArray *idsArray; +} GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3056,51 +3087,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "identitiesArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_IdentityRequest), - .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_IdentitiesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, identitiesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, - }, - { - .name = "contractsArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_ContractRequest), - .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_ContractsArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, contractsArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, + .name = "epoch", + .dataTypeSpecific.clazz = Nil, + .number = GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_Epoch, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0__storage_, epoch), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, }, { - .name = "documentsArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_DocumentRequest), - .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_DocumentsArray, + .name = "idsArray", + .dataTypeSpecific.clazz = Nil, + .number = GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_IdsArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, documentsArray), + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0__storage_, idsArray), .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeBytes, }, { - .name = "votesArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest), - .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_VotesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, votesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0_FieldNumber_Prove, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksByIdsRequest_GetEvonodesProposedEpochBlocksByIdsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEvonodesProposedEpochBlocksByIdsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3111,23 +3133,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProofsRequest_GetProofsRequestV0_DocumentRequest +#pragma mark - GetEvonodesProposedEpochBlocksResponse -@implementation GetProofsRequest_GetProofsRequestV0_DocumentRequest +@implementation GetEvonodesProposedEpochBlocksResponse -@dynamic contractId; -@dynamic documentType; -@dynamic documentTypeKeepsHistory; -@dynamic documentId; -@dynamic documentContestedStatus; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_ { - uint32_t _has_storage_[1]; - GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus documentContestedStatus; - NSData *contractId; - NSString *documentType; - NSData *documentId; -} GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_; +typedef struct GetEvonodesProposedEpochBlocksResponse__storage_ { + uint32_t _has_storage_[2]; + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 *v0; +} GetEvonodesProposedEpochBlocksResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3136,60 +3152,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_ContractId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, contractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "documentType", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentType, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentType), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "documentTypeKeepsHistory", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentTypeKeepsHistory, - .hasIndex = 2, - .offset = 3, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - { - .name = "documentId", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentId, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "documentContestedStatus", - .dataTypeSpecific.enumDescFunc = GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_EnumDescriptor, - .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus, - .hasIndex = 5, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentContestedStatus), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeEnum, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0), + .number = GetEvonodesProposedEpochBlocksResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_DocumentRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; + 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 @@ -3200,67 +3185,26 @@ + (GPBDescriptor *)descriptor { @end -int32_t GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_RawValue(GetProofsRequest_GetProofsRequestV0_DocumentRequest *message) { - GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_DocumentRequest descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus]; - return GPBGetMessageRawEnumField(message, field); -} - -void SetGetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_RawValue(GetProofsRequest_GetProofsRequestV0_DocumentRequest *message, int32_t value) { - GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_DocumentRequest descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus]; - GPBSetMessageRawEnumField(message, field, value); -} - -#pragma mark - Enum GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus - -GPBEnumDescriptor *GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_EnumDescriptor(void) { - static _Atomic(GPBEnumDescriptor*) descriptor = nil; - if (!descriptor) { - static const char *valueNames = - "NotContested\000MaybeContested\000Contested\000"; - static const int32_t values[] = { - GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_NotContested, - GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_MaybeContested, - GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_Contested, - }; - GPBEnumDescriptor *worker = - [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus) - valueNames:valueNames - values:values - count:(uint32_t)(sizeof(values) / sizeof(int32_t)) - enumVerifier:GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_IsValidValue]; - GPBEnumDescriptor *expected = nil; - if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { - [worker release]; - } - } - return descriptor; -} - -BOOL GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_IsValidValue(int32_t value__) { - switch (value__) { - case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_NotContested: - case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_MaybeContested: - case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_Contested: - return YES; - default: - return NO; - } +void GetEvonodesProposedEpochBlocksResponse_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksResponse *message) { + GPBDescriptor *descriptor = [GetEvonodesProposedEpochBlocksResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); } +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 -#pragma mark - GetProofsRequest_GetProofsRequestV0_IdentityRequest - -@implementation GetProofsRequest_GetProofsRequestV0_IdentityRequest +@implementation GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 -@dynamic identityId; -@dynamic requestType; +@dynamic resultOneOfCase; +@dynamic evonodesProposedBlockCountsInfo; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_ { - uint32_t _has_storage_[1]; - GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type requestType; - NSData *identityId; -} GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_; +typedef struct GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks *evonodesProposedBlockCountsInfo; + Proof *proof; + ResponseMetadata *metadata; +} GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3269,33 +3213,48 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "identityId", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_IdentityId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_, identityId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "evonodesProposedBlockCountsInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks), + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_EvonodesProposedBlockCountsInfo, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_, evonodesProposedBlockCountsInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "requestType", - .dataTypeSpecific.enumDescFunc = GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_EnumDescriptor, - .number = GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_, requestType), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeEnum, + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_IdentityRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEvonodesProposedEpochBlocksResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3306,67 +3265,78 @@ + (GPBDescriptor *)descriptor { @end -int32_t GetProofsRequest_GetProofsRequestV0_IdentityRequest_RequestType_RawValue(GetProofsRequest_GetProofsRequestV0_IdentityRequest *message) { - GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_IdentityRequest descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType]; - return GPBGetMessageRawEnumField(message, field); +void GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_ClearResultOneOfCase(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 *message) { + GPBDescriptor *descriptor = [GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); } +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks -void SetGetProofsRequest_GetProofsRequestV0_IdentityRequest_RequestType_RawValue(GetProofsRequest_GetProofsRequestV0_IdentityRequest *message, int32_t value) { - GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_IdentityRequest descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType]; - GPBSetMessageRawEnumField(message, field, value); -} +@implementation GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks -#pragma mark - Enum GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type +@dynamic proTxHash; +@dynamic count; -GPBEnumDescriptor *GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_EnumDescriptor(void) { - static _Atomic(GPBEnumDescriptor*) descriptor = nil; +typedef struct GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks__storage_ { + uint32_t _has_storage_[1]; + NSData *proTxHash; + uint64_t count; +} GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks__storage_; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = nil; if (!descriptor) { - static const char *valueNames = - "FullIdentity\000Balance\000Keys\000Revision\000"; - static const int32_t values[] = { - GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_FullIdentity, - GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Balance, - GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Keys, - GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Revision, + static GPBMessageFieldDescription fields[] = { + { + .name = "proTxHash", + .dataTypeSpecific.clazz = Nil, + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks_FieldNumber_ProTxHash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks__storage_, proTxHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "count", + .dataTypeSpecific.clazz = Nil, + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks_FieldNumber_Count, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks__storage_, count), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, }; - GPBEnumDescriptor *worker = - [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type) - valueNames:valueNames - values:values - count:(uint32_t)(sizeof(values) / sizeof(int32_t)) - enumVerifier:GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_IsValidValue]; - GPBEnumDescriptor *expected = nil; - if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { - [worker release]; - } + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; } return descriptor; } -BOOL GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_IsValidValue(int32_t value__) { - switch (value__) { - case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_FullIdentity: - case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Balance: - case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Keys: - case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Revision: - return YES; - default: - return NO; - } -} +@end -#pragma mark - GetProofsRequest_GetProofsRequestV0_ContractRequest +#pragma mark - GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks -@implementation GetProofsRequest_GetProofsRequestV0_ContractRequest +@implementation GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks -@dynamic contractId; +@dynamic evonodesProposedBlockCountsArray, evonodesProposedBlockCountsArray_Count; -typedef struct GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_ { +typedef struct GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks__storage_ { uint32_t _has_storage_[1]; - NSData *contractId; -} GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_; + NSMutableArray *evonodesProposedBlockCountsArray; +} GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3375,24 +3345,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", - .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_ContractRequest_FieldNumber_ContractId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_, contractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "evonodesProposedBlockCountsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodeProposedBlocks), + .number = GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks_FieldNumber_EvonodesProposedBlockCountsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks__storage_, evonodesProposedBlockCountsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_ContractRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0_EvonodesProposedBlocks__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEvonodesProposedEpochBlocksResponse_GetEvonodesProposedEpochBlocksResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3403,17 +3373,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProofsRequest_GetProofsRequestV0_VoteStatusRequest +#pragma mark - GetEvonodesProposedEpochBlocksByRangeRequest -@implementation GetProofsRequest_GetProofsRequestV0_VoteStatusRequest +@implementation GetEvonodesProposedEpochBlocksByRangeRequest -@dynamic requestTypeOneOfCase; -@dynamic contestedResourceVoteStatusRequest; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_ { +typedef struct GetEvonodesProposedEpochBlocksByRangeRequest__storage_ { uint32_t _has_storage_[2]; - GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest *contestedResourceVoteStatusRequest; -} GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_; + GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 *v0; +} GetEvonodesProposedEpochBlocksByRangeRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3422,30 +3392,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceVoteStatusRequest", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest), - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_FieldNumber_ContestedResourceVoteStatusRequest, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0), + .number = GetEvonodesProposedEpochBlocksByRangeRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_, contestedResourceVoteStatusRequest), + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByRangeRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_VoteStatusRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksByRangeRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksByRangeRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { - "requestType", + "version", }; [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3456,29 +3425,29 @@ + (GPBDescriptor *)descriptor { @end -void GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ClearRequestTypeOneOfCase(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest *message) { - GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_VoteStatusRequest descriptor]; +void GetEvonodesProposedEpochBlocksByRangeRequest_ClearVersionOneOfCase(GetEvonodesProposedEpochBlocksByRangeRequest *message) { + GPBDescriptor *descriptor = [GetEvonodesProposedEpochBlocksByRangeRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest +#pragma mark - GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 -@implementation GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest +@implementation GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 -@dynamic contractId; -@dynamic documentTypeName; -@dynamic indexName; -@dynamic indexValuesArray, indexValuesArray_Count; -@dynamic voterIdentifier; +@dynamic startOneOfCase; +@dynamic hasEpoch, epoch; +@dynamic hasLimit, limit; +@dynamic startAfter; +@dynamic startAt; +@dynamic prove; -typedef struct GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_ { - uint32_t _has_storage_[1]; - NSData *contractId; - NSString *documentTypeName; - NSString *indexName; - NSMutableArray *indexValuesArray; - NSData *voterIdentifier; -} GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_; +typedef struct GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_ { + uint32_t _has_storage_[2]; + uint32_t epoch; + uint32_t limit; + NSData *startAfter; + NSData *startAt; +} GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3487,60 +3456,66 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", + .name = "epoch", .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_ContractId, + .number = GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Epoch, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, contractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_, epoch), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, }, { - .name = "documentTypeName", + .name = "limit", .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_DocumentTypeName, + .number = GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Limit, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, documentTypeName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_, limit), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, }, { - .name = "indexName", + .name = "startAfter", .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_IndexName, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, indexName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .number = GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_StartAfter, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_, startAfter), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeBytes, }, { - .name = "indexValuesArray", + .name = "startAt", .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_IndexValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, indexValuesArray), - .flags = GPBFieldRepeated, + .number = GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_StartAt, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_, startAt), + .flags = GPBFieldOptional, .dataType = GPBDataTypeBytes, }, { - .name = "voterIdentifier", + .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_VoterIdentifier, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, voterIdentifier), + .number = GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_FieldNumber_Prove, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest class] + [GPBDescriptor allocDescriptorForClass:[GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_) + storageSize:sizeof(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest)]; + static const char *oneofs[] = { + "start", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEvonodesProposedEpochBlocksByRangeRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3551,17 +3526,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProofsResponse +void GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0_ClearStartOneOfCase(GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 *message) { + GPBDescriptor *descriptor = [GetEvonodesProposedEpochBlocksByRangeRequest_GetEvonodesProposedEpochBlocksByRangeRequestV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetIdentitiesBalancesRequest -@implementation GetProofsResponse +@implementation GetIdentitiesBalancesRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProofsResponse__storage_ { +typedef struct GetIdentitiesBalancesRequest__storage_ { uint32_t _has_storage_[2]; - GetProofsResponse_GetProofsResponseV0 *v0; -} GetProofsResponse__storage_; + GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 *v0; +} GetIdentitiesBalancesRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3571,21 +3551,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProofsResponse_GetProofsResponseV0), - .number = GetProofsResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0), + .number = GetIdentitiesBalancesRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProofsResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsResponse class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsResponse__storage_) + storageSize:sizeof(GetIdentitiesBalancesRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -3603,24 +3583,22 @@ + (GPBDescriptor *)descriptor { @end -void GetProofsResponse_ClearVersionOneOfCase(GetProofsResponse *message) { - GPBDescriptor *descriptor = [GetProofsResponse descriptor]; +void GetIdentitiesBalancesRequest_ClearVersionOneOfCase(GetIdentitiesBalancesRequest *message) { + GPBDescriptor *descriptor = [GetIdentitiesBalancesRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProofsResponse_GetProofsResponseV0 +#pragma mark - GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 -@implementation GetProofsResponse_GetProofsResponseV0 +@implementation GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 -@dynamic resultOneOfCase; -@dynamic proof; -@dynamic hasMetadata, metadata; +@dynamic idsArray, idsArray_Count; +@dynamic prove; -typedef struct GetProofsResponse_GetProofsResponseV0__storage_ { - uint32_t _has_storage_[2]; - Proof *proof; - ResponseMetadata *metadata; -} GetProofsResponse_GetProofsResponseV0__storage_; +typedef struct GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *idsArray; +} GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3629,39 +3607,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetProofsResponse_GetProofsResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProofsResponse_GetProofsResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "idsArray", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0_FieldNumber_IdsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0__storage_, idsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetProofsResponse_GetProofsResponseV0_FieldNumber_Metadata, + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0_FieldNumber_Prove, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProofsResponse_GetProofsResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = 1, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProofsResponse_GetProofsResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProofsResponse_GetProofsResponseV0__storage_) + storageSize:sizeof(GetIdentitiesBalancesRequest_GetIdentitiesBalancesRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentitiesBalancesRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3672,135 +3644,17 @@ + (GPBDescriptor *)descriptor { @end -void GetProofsResponse_GetProofsResponseV0_ClearResultOneOfCase(GetProofsResponse_GetProofsResponseV0 *message) { - GPBDescriptor *descriptor = [GetProofsResponse_GetProofsResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetDataContractRequest +#pragma mark - GetIdentitiesBalancesResponse -@implementation GetDataContractRequest +@implementation GetIdentitiesBalancesResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetDataContractRequest__storage_ { +typedef struct GetIdentitiesBalancesResponse__storage_ { uint32_t _has_storage_[2]; - GetDataContractRequest_GetDataContractRequestV0 *v0; -} GetDataContractRequest__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(GetDataContractRequest_GetDataContractRequestV0), - .number = GetDataContractRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractRequest__storage_, v0), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractRequest class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractRequest__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 GetDataContractRequest_ClearVersionOneOfCase(GetDataContractRequest *message) { - GPBDescriptor *descriptor = [GetDataContractRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetDataContractRequest_GetDataContractRequestV0 - -@implementation GetDataContractRequest_GetDataContractRequestV0 - -@dynamic id_p; -@dynamic prove; - -typedef struct GetDataContractRequest_GetDataContractRequestV0__storage_ { - uint32_t _has_storage_[1]; - NSData *id_p; -} GetDataContractRequest_GetDataContractRequestV0__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 = "id_p", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractRequest_GetDataContractRequestV0_FieldNumber_Id_p, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractRequest_GetDataContractRequestV0__storage_, id_p), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractRequest_GetDataContractRequestV0_FieldNumber_Prove, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractRequest_GetDataContractRequestV0 class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractRequest_GetDataContractRequestV0__storage_) - flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractRequest)]; - #if defined(DEBUG) && DEBUG - NSAssert(descriptor == nil, @"Startup recursed!"); - #endif // DEBUG - descriptor = localDescriptor; - } - return descriptor; -} - -@end - -#pragma mark - GetDataContractResponse - -@implementation GetDataContractResponse - -@dynamic versionOneOfCase; -@dynamic v0; - -typedef struct GetDataContractResponse__storage_ { - uint32_t _has_storage_[2]; - GetDataContractResponse_GetDataContractResponseV0 *v0; -} GetDataContractResponse__storage_; + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 *v0; +} GetIdentitiesBalancesResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3810,21 +3664,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractResponse_GetDataContractResponseV0), - .number = GetDataContractResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0), + .number = GetIdentitiesBalancesResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractResponse class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractResponse__storage_) + storageSize:sizeof(GetIdentitiesBalancesResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -3842,26 +3696,26 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractResponse_ClearVersionOneOfCase(GetDataContractResponse *message) { - GPBDescriptor *descriptor = [GetDataContractResponse descriptor]; +void GetIdentitiesBalancesResponse_ClearVersionOneOfCase(GetIdentitiesBalancesResponse *message) { + GPBDescriptor *descriptor = [GetIdentitiesBalancesResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractResponse_GetDataContractResponseV0 +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 -@implementation GetDataContractResponse_GetDataContractResponseV0 +@implementation GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 @dynamic resultOneOfCase; -@dynamic dataContract; +@dynamic identitiesBalances; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetDataContractResponse_GetDataContractResponseV0__storage_ { +typedef struct GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_ { uint32_t _has_storage_[2]; - NSData *dataContract; + GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances *identitiesBalances; Proof *proof; ResponseMetadata *metadata; -} GetDataContractResponse_GetDataContractResponseV0__storage_; +} GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3870,40 +3724,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContract", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_DataContract, + .name = "identitiesBalances", + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances), + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_IdentitiesBalances, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, dataContract), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_, identitiesBalances), .flags = GPBFieldOptional, - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeMessage, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_Proof, + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_Metadata, + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractResponse_GetDataContractResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractResponse_GetDataContractResponseV0__storage_) + storageSize:sizeof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -3911,7 +3765,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentitiesBalancesResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3922,22 +3776,23 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractResponse_GetDataContractResponseV0_ClearResultOneOfCase(GetDataContractResponse_GetDataContractResponseV0 *message) { - GPBDescriptor *descriptor = [GetDataContractResponse_GetDataContractResponseV0 descriptor]; +void GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_ClearResultOneOfCase(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 *message) { + GPBDescriptor *descriptor = [GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractsRequest +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance -@implementation GetDataContractsRequest +@implementation GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic identityId; +@dynamic hasBalance, balance; -typedef struct GetDataContractsRequest__storage_ { - uint32_t _has_storage_[2]; - GetDataContractsRequest_GetDataContractsRequestV0 *v0; -} GetDataContractsRequest__storage_; +typedef struct GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance__storage_ { + uint32_t _has_storage_[1]; + NSData *identityId; + uint64_t balance; +} GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -3946,29 +3801,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsRequest_GetDataContractsRequestV0), - .number = GetDataContractsRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractsRequest__storage_, v0), + .name = "identityId", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance_FieldNumber_IdentityId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance__storage_, identityId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "balance", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance_FieldNumber_Balance, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance__storage_, balance), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeUInt64, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsRequest class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsRequest__storage_) + storageSize:sizeof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -3979,22 +3838,16 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractsRequest_ClearVersionOneOfCase(GetDataContractsRequest *message) { - GPBDescriptor *descriptor = [GetDataContractsRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetDataContractsRequest_GetDataContractsRequestV0 +#pragma mark - GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances -@implementation GetDataContractsRequest_GetDataContractsRequestV0 +@implementation GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances -@dynamic idsArray, idsArray_Count; -@dynamic prove; +@dynamic entriesArray, entriesArray_Count; -typedef struct GetDataContractsRequest_GetDataContractsRequestV0__storage_ { +typedef struct GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *idsArray; -} GetDataContractsRequest_GetDataContractsRequestV0__storage_; + NSMutableArray *entriesArray; +} GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4003,33 +3856,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "idsArray", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractsRequest_GetDataContractsRequestV0_FieldNumber_IdsArray, + .name = "entriesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentityBalance), + .number = GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances_FieldNumber_EntriesArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetDataContractsRequest_GetDataContractsRequestV0__storage_, idsArray), + .offset = (uint32_t)offsetof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances__storage_, entriesArray), .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractsRequest_GetDataContractsRequestV0_FieldNumber_Prove, - .hasIndex = 0, - .offset = 1, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsRequest_GetDataContractsRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsRequest_GetDataContractsRequestV0__storage_) + storageSize:sizeof(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0_IdentitiesBalances__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentitiesBalancesResponse_GetIdentitiesBalancesResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4040,17 +3884,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDataContractsResponse +#pragma mark - GetProofsRequest -@implementation GetDataContractsResponse +@implementation GetProofsRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetDataContractsResponse__storage_ { +typedef struct GetProofsRequest__storage_ { uint32_t _has_storage_[2]; - GetDataContractsResponse_GetDataContractsResponseV0 *v0; -} GetDataContractsResponse__storage_; + GetProofsRequest_GetProofsRequestV0 *v0; +} GetProofsRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4060,21 +3904,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_GetDataContractsResponseV0), - .number = GetDataContractsResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0), + .number = GetProofsRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractsResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetProofsRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsResponse__storage_) + storageSize:sizeof(GetProofsRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -4092,58 +3936,80 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractsResponse_ClearVersionOneOfCase(GetDataContractsResponse *message) { - GPBDescriptor *descriptor = [GetDataContractsResponse descriptor]; +void GetProofsRequest_ClearVersionOneOfCase(GetProofsRequest *message) { + GPBDescriptor *descriptor = [GetProofsRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractsResponse_DataContractEntry +#pragma mark - GetProofsRequest_GetProofsRequestV0 -@implementation GetDataContractsResponse_DataContractEntry +@implementation GetProofsRequest_GetProofsRequestV0 -@dynamic identifier; -@dynamic hasDataContract, dataContract; +@dynamic identitiesArray, identitiesArray_Count; +@dynamic contractsArray, contractsArray_Count; +@dynamic documentsArray, documentsArray_Count; +@dynamic votesArray, votesArray_Count; -typedef struct GetDataContractsResponse_DataContractEntry__storage_ { +typedef struct GetProofsRequest_GetProofsRequestV0__storage_ { uint32_t _has_storage_[1]; - NSData *identifier; - GPBBytesValue *dataContract; -} GetDataContractsResponse_DataContractEntry__storage_; - -// This method is threadsafe because it is initially called -// in +initialize for each subclass. -+ (GPBDescriptor *)descriptor { + NSMutableArray *identitiesArray; + NSMutableArray *contractsArray; + NSMutableArray *documentsArray; + NSMutableArray *votesArray; +} GetProofsRequest_GetProofsRequestV0__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 = "identifier", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractsResponse_DataContractEntry_FieldNumber_Identifier, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContractEntry__storage_, identifier), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "identitiesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_IdentityRequest), + .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_IdentitiesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, identitiesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, }, { - .name = "dataContract", - .dataTypeSpecific.clazz = GPBObjCClass(GPBBytesValue), - .number = GetDataContractsResponse_DataContractEntry_FieldNumber_DataContract, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContractEntry__storage_, dataContract), - .flags = GPBFieldOptional, + .name = "contractsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_ContractRequest), + .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_ContractsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, contractsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + { + .name = "documentsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_DocumentRequest), + .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_DocumentsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, documentsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + { + .name = "votesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest), + .number = GetProofsRequest_GetProofsRequestV0_FieldNumber_VotesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0__storage_, votesArray), + .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_DataContractEntry class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsResponse_DataContractEntry__storage_) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4154,16 +4020,23 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDataContractsResponse_DataContracts +#pragma mark - GetProofsRequest_GetProofsRequestV0_DocumentRequest -@implementation GetDataContractsResponse_DataContracts +@implementation GetProofsRequest_GetProofsRequestV0_DocumentRequest -@dynamic dataContractEntriesArray, dataContractEntriesArray_Count; +@dynamic contractId; +@dynamic documentType; +@dynamic documentTypeKeepsHistory; +@dynamic documentId; +@dynamic documentContestedStatus; -typedef struct GetDataContractsResponse_DataContracts__storage_ { +typedef struct GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *dataContractEntriesArray; -} GetDataContractsResponse_DataContracts__storage_; + GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus documentContestedStatus; + NSData *contractId; + NSString *documentType; + NSData *documentId; +} GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4172,24 +4045,60 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContractEntriesArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_DataContractEntry), - .number = GetDataContractsResponse_DataContracts_FieldNumber_DataContractEntriesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContracts__storage_, dataContractEntriesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, + .name = "contractId", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_ContractId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "documentType", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentType, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentType), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "documentTypeKeepsHistory", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentTypeKeepsHistory, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + { + .name = "documentId", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentId, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "documentContestedStatus", + .dataTypeSpecific.enumDescFunc = GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_EnumDescriptor, + .number = GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_, documentContestedStatus), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeEnum, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_DataContracts class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_DocumentRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsResponse_DataContracts__storage_) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_DocumentRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4200,21 +4109,67 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDataContractsResponse_GetDataContractsResponseV0 +int32_t GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_RawValue(GetProofsRequest_GetProofsRequestV0_DocumentRequest *message) { + GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_DocumentRequest descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus]; + return GPBGetMessageRawEnumField(message, field); +} -@implementation GetDataContractsResponse_GetDataContractsResponseV0 +void SetGetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_RawValue(GetProofsRequest_GetProofsRequestV0_DocumentRequest *message, int32_t value) { + GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_DocumentRequest descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_DocumentRequest_FieldNumber_DocumentContestedStatus]; + GPBSetMessageRawEnumField(message, field, value); +} -@dynamic resultOneOfCase; -@dynamic dataContracts; -@dynamic proof; -@dynamic hasMetadata, metadata; +#pragma mark - Enum GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus -typedef struct GetDataContractsResponse_GetDataContractsResponseV0__storage_ { - uint32_t _has_storage_[2]; - GetDataContractsResponse_DataContracts *dataContracts; - Proof *proof; - ResponseMetadata *metadata; -} GetDataContractsResponse_GetDataContractsResponseV0__storage_; +GPBEnumDescriptor *GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_EnumDescriptor(void) { + static _Atomic(GPBEnumDescriptor*) descriptor = nil; + if (!descriptor) { + static const char *valueNames = + "NotContested\000MaybeContested\000Contested\000"; + static const int32_t values[] = { + GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_NotContested, + GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_MaybeContested, + GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_Contested, + }; + GPBEnumDescriptor *worker = + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus) + valueNames:valueNames + values:values + count:(uint32_t)(sizeof(values) / sizeof(int32_t)) + enumVerifier:GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_IsValidValue]; + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { + [worker release]; + } + } + return descriptor; +} + +BOOL GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_IsValidValue(int32_t value__) { + switch (value__) { + case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_NotContested: + case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_MaybeContested: + case GetProofsRequest_GetProofsRequestV0_DocumentRequest_DocumentContestedStatus_Contested: + return YES; + default: + return NO; + } +} + +#pragma mark - GetProofsRequest_GetProofsRequestV0_IdentityRequest + +@implementation GetProofsRequest_GetProofsRequestV0_IdentityRequest + +@dynamic identityId; +@dynamic requestType; + +typedef struct GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_ { + uint32_t _has_storage_[1]; + GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type requestType; + NSData *identityId; +} GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4223,48 +4178,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContracts", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_DataContracts), - .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_DataContracts, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, dataContracts), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "identityId", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_IdentityId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_, identityId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "requestType", + .dataTypeSpecific.enumDescFunc = GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_EnumDescriptor, + .number = GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_, requestType), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeEnum, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_GetDataContractsResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_IdentityRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractsResponse_GetDataContractsResponseV0__storage_) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_IdentityRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4275,22 +4215,114 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractsResponse_GetDataContractsResponseV0_ClearResultOneOfCase(GetDataContractsResponse_GetDataContractsResponseV0 *message) { - GPBDescriptor *descriptor = [GetDataContractsResponse_GetDataContractsResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); +int32_t GetProofsRequest_GetProofsRequestV0_IdentityRequest_RequestType_RawValue(GetProofsRequest_GetProofsRequestV0_IdentityRequest *message) { + GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_IdentityRequest descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType]; + return GPBGetMessageRawEnumField(message, field); } -#pragma mark - GetDataContractHistoryRequest -@implementation GetDataContractHistoryRequest +void SetGetProofsRequest_GetProofsRequestV0_IdentityRequest_RequestType_RawValue(GetProofsRequest_GetProofsRequestV0_IdentityRequest *message, int32_t value) { + GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_IdentityRequest descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetProofsRequest_GetProofsRequestV0_IdentityRequest_FieldNumber_RequestType]; + GPBSetMessageRawEnumField(message, field, value); +} -@dynamic versionOneOfCase; -@dynamic v0; +#pragma mark - Enum GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type -typedef struct GetDataContractHistoryRequest__storage_ { +GPBEnumDescriptor *GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_EnumDescriptor(void) { + static _Atomic(GPBEnumDescriptor*) descriptor = nil; + if (!descriptor) { + static const char *valueNames = + "FullIdentity\000Balance\000Keys\000Revision\000"; + static const int32_t values[] = { + GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_FullIdentity, + GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Balance, + GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Keys, + GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Revision, + }; + GPBEnumDescriptor *worker = + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type) + valueNames:valueNames + values:values + count:(uint32_t)(sizeof(values) / sizeof(int32_t)) + enumVerifier:GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_IsValidValue]; + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { + [worker release]; + } + } + return descriptor; +} + +BOOL GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_IsValidValue(int32_t value__) { + switch (value__) { + case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_FullIdentity: + case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Balance: + case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Keys: + case GetProofsRequest_GetProofsRequestV0_IdentityRequest_Type_Revision: + return YES; + default: + return NO; + } +} + +#pragma mark - GetProofsRequest_GetProofsRequestV0_ContractRequest + +@implementation GetProofsRequest_GetProofsRequestV0_ContractRequest + +@dynamic contractId; + +typedef struct GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_ { + uint32_t _has_storage_[1]; + NSData *contractId; +} GetProofsRequest_GetProofsRequestV0_ContractRequest__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 = "contractId", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_ContractRequest_FieldNumber_ContractId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_ContractRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_ContractRequest__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetProofsRequest_GetProofsRequestV0_VoteStatusRequest + +@implementation GetProofsRequest_GetProofsRequestV0_VoteStatusRequest + +@dynamic requestTypeOneOfCase; +@dynamic contestedResourceVoteStatusRequest; + +typedef struct GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_ { uint32_t _has_storage_[2]; - GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 *v0; -} GetDataContractHistoryRequest__storage_; + GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest *contestedResourceVoteStatusRequest; +} GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4299,29 +4331,30 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0), - .number = GetDataContractHistoryRequest_FieldNumber_V0, + .name = "contestedResourceVoteStatusRequest", + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest), + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_FieldNumber_ContestedResourceVoteStatusRequest, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractHistoryRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_, contestedResourceVoteStatusRequest), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryRequest class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_VoteStatusRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryRequest__storage_) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { - "version", + "requestType", }; [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4332,28 +4365,29 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractHistoryRequest_ClearVersionOneOfCase(GetDataContractHistoryRequest *message) { - GPBDescriptor *descriptor = [GetDataContractHistoryRequest descriptor]; +void GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ClearRequestTypeOneOfCase(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest *message) { + GPBDescriptor *descriptor = [GetProofsRequest_GetProofsRequestV0_VoteStatusRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 +#pragma mark - GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest -@implementation GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 +@implementation GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest -@dynamic id_p; -@dynamic hasLimit, limit; -@dynamic hasOffset, offset; -@dynamic startAtMs; -@dynamic prove; +@dynamic contractId; +@dynamic documentTypeName; +@dynamic indexName; +@dynamic indexValuesArray, indexValuesArray_Count; +@dynamic voterIdentifier; -typedef struct GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_ { +typedef struct GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_ { uint32_t _has_storage_[1]; - NSData *id_p; - GPBUInt32Value *limit; - GPBUInt32Value *offset; - uint64_t startAtMs; -} GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_; + NSData *contractId; + NSString *documentTypeName; + NSString *indexName; + NSMutableArray *indexValuesArray; + NSData *voterIdentifier; +} GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4362,60 +4396,60 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "id_p", + .name = "contractId", .dataTypeSpecific.clazz = Nil, - .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Id_p, + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_ContractId, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, id_p), + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, contractId), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, { - .name = "limit", - .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), - .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Limit, + .name = "documentTypeName", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_DocumentTypeName, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, limit), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, documentTypeName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, { - .name = "offset", - .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), - .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Offset, + .name = "indexName", + .dataTypeSpecific.clazz = Nil, + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_IndexName, .hasIndex = 2, - .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, offset), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, indexName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, { - .name = "startAtMs", + .name = "indexValuesArray", .dataTypeSpecific.clazz = Nil, - .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_StartAtMs, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, startAtMs), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_IndexValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, indexValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, }, { - .name = "prove", + .name = "voterIdentifier", .dataTypeSpecific.clazz = Nil, - .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Prove, - .hasIndex = 4, - .offset = 5, // Stored in _has_storage_ to save space. + .number = GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest_FieldNumber_VoterIdentifier, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_, voterIdentifier), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .dataType = GPBDataTypeBytes, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_) + storageSize:sizeof(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest_ContestedResourceVoteStatusRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsRequest_GetProofsRequestV0_VoteStatusRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4426,17 +4460,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDataContractHistoryResponse +#pragma mark - GetProofsResponse -@implementation GetDataContractHistoryResponse +@implementation GetProofsResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetDataContractHistoryResponse__storage_ { +typedef struct GetProofsResponse__storage_ { uint32_t _has_storage_[2]; - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 *v0; -} GetDataContractHistoryResponse__storage_; + GetProofsResponse_GetProofsResponseV0 *v0; +} GetProofsResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4446,21 +4480,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0), - .number = GetDataContractHistoryResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetProofsResponse_GetProofsResponseV0), + .number = GetProofsResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetProofsResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse class] + [GPBDescriptor allocDescriptorForClass:[GetProofsResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryResponse__storage_) + storageSize:sizeof(GetProofsResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -4478,26 +4512,24 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractHistoryResponse_ClearVersionOneOfCase(GetDataContractHistoryResponse *message) { - GPBDescriptor *descriptor = [GetDataContractHistoryResponse descriptor]; +void GetProofsResponse_ClearVersionOneOfCase(GetProofsResponse *message) { + GPBDescriptor *descriptor = [GetProofsResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 +#pragma mark - GetProofsResponse_GetProofsResponseV0 -@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 +@implementation GetProofsResponse_GetProofsResponseV0 @dynamic resultOneOfCase; -@dynamic dataContractHistory; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_ { +typedef struct GetProofsResponse_GetProofsResponseV0__storage_ { uint32_t _has_storage_[2]; - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory *dataContractHistory; Proof *proof; ResponseMetadata *metadata; -} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_; +} GetProofsResponse_GetProofsResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4506,40 +4538,31 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContractHistory", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory), - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_DataContractHistory, + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetProofsResponse_GetProofsResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, dataContractHistory), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetProofsResponse_GetProofsResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_Metadata, + .number = GetProofsResponse_GetProofsResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetProofsResponse_GetProofsResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetProofsResponse_GetProofsResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_) + storageSize:sizeof(GetProofsResponse_GetProofsResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -4547,7 +4570,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProofsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4558,23 +4581,22 @@ + (GPBDescriptor *)descriptor { @end -void GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_ClearResultOneOfCase(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 *message) { - GPBDescriptor *descriptor = [GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 descriptor]; +void GetProofsResponse_GetProofsResponseV0_ClearResultOneOfCase(GetProofsResponse_GetProofsResponseV0 *message) { + GPBDescriptor *descriptor = [GetProofsResponse_GetProofsResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry +#pragma mark - GetDataContractRequest -@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry +@implementation GetDataContractRequest -@dynamic date; -@dynamic value; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_ { - uint32_t _has_storage_[1]; - NSData *value; - uint64_t date; -} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_; +typedef struct GetDataContractRequest__storage_ { + uint32_t _has_storage_[2]; + GetDataContractRequest_GetDataContractRequestV0 *v0; +} GetDataContractRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4583,33 +4605,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "date", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry_FieldNumber_Date, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_, date), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "value", - .dataTypeSpecific.clazz = Nil, - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry_FieldNumber_Value, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_, value), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractRequest_GetDataContractRequestV0), + .number = GetDataContractRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDataContractRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_) + storageSize:sizeof(GetDataContractRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0)]; + 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 @@ -4620,16 +4638,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory +void GetDataContractRequest_ClearVersionOneOfCase(GetDataContractRequest *message) { + GPBDescriptor *descriptor = [GetDataContractRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetDataContractRequest_GetDataContractRequestV0 -@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory +@implementation GetDataContractRequest_GetDataContractRequestV0 -@dynamic dataContractEntriesArray, dataContractEntriesArray_Count; +@dynamic id_p; +@dynamic prove; -typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_ { +typedef struct GetDataContractRequest_GetDataContractRequestV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *dataContractEntriesArray; -} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_; + NSData *id_p; +} GetDataContractRequest_GetDataContractRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4638,24 +4662,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContractEntriesArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry), - .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory_FieldNumber_DataContractEntriesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_, dataContractEntriesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, + .name = "id_p", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractRequest_GetDataContractRequestV0_FieldNumber_Id_p, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetDataContractRequest_GetDataContractRequestV0__storage_, id_p), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractRequest_GetDataContractRequestV0_FieldNumber_Prove, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractRequest_GetDataContractRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_) + storageSize:sizeof(GetDataContractRequest_GetDataContractRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4666,17 +4699,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetDocumentsRequest +#pragma mark - GetDataContractResponse -@implementation GetDocumentsRequest +@implementation GetDataContractResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetDocumentsRequest__storage_ { +typedef struct GetDataContractResponse__storage_ { uint32_t _has_storage_[2]; - GetDocumentsRequest_GetDocumentsRequestV0 *v0; -} GetDocumentsRequest__storage_; + GetDataContractResponse_GetDataContractResponseV0 *v0; +} GetDataContractResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4686,21 +4719,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsRequest_GetDocumentsRequestV0), - .number = GetDocumentsRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractResponse_GetDataContractResponseV0), + .number = GetDataContractResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetDataContractResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDocumentsRequest class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDocumentsRequest__storage_) + storageSize:sizeof(GetDataContractResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -4718,35 +4751,26 @@ + (GPBDescriptor *)descriptor { @end -void GetDocumentsRequest_ClearVersionOneOfCase(GetDocumentsRequest *message) { - GPBDescriptor *descriptor = [GetDocumentsRequest descriptor]; +void GetDataContractResponse_ClearVersionOneOfCase(GetDataContractResponse *message) { + GPBDescriptor *descriptor = [GetDataContractResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDocumentsRequest_GetDocumentsRequestV0 +#pragma mark - GetDataContractResponse_GetDataContractResponseV0 -@implementation GetDocumentsRequest_GetDocumentsRequestV0 +@implementation GetDataContractResponse_GetDataContractResponseV0 -@dynamic startOneOfCase; -@dynamic dataContractId; -@dynamic documentType; -@dynamic where; -@dynamic orderBy; -@dynamic limit; -@dynamic startAfter; -@dynamic startAt; -@dynamic prove; +@dynamic resultOneOfCase; +@dynamic dataContract; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetDocumentsRequest_GetDocumentsRequestV0__storage_ { +typedef struct GetDataContractResponse_GetDataContractResponseV0__storage_ { uint32_t _has_storage_[2]; - uint32_t limit; - NSData *dataContractId; - NSString *documentType; - NSData *where; - NSData *orderBy; - NSData *startAfter; - NSData *startAt; -} GetDocumentsRequest_GetDocumentsRequestV0__storage_; + NSData *dataContract; + Proof *proof; + ResponseMetadata *metadata; +} GetDataContractResponse_GetDataContractResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4755,93 +4779,48 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "dataContractId", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_DataContractId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, dataContractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "documentType", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_DocumentType, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, documentType), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "where", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Where, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, where), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "orderBy", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_OrderBy, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, orderBy), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "limit", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Limit, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, limit), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, - }, - { - .name = "startAfter", + .name = "dataContract", .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_StartAfter, + .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_DataContract, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, startAfter), + .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, dataContract), .flags = GPBFieldOptional, .dataType = GPBDataTypeBytes, }, { - .name = "startAt", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_StartAt, + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, startAt), + .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, proof), .flags = GPBFieldOptional, - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeMessage, }, { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Prove, - .hasIndex = 5, - .offset = 6, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetDataContractResponse_GetDataContractResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetDataContractResponse_GetDataContractResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDocumentsRequest_GetDocumentsRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractResponse_GetDataContractResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDocumentsRequest_GetDocumentsRequestV0__storage_) + storageSize:sizeof(GetDataContractResponse_GetDataContractResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { - "start", + "result", }; [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -4852,22 +4831,22 @@ + (GPBDescriptor *)descriptor { @end -void GetDocumentsRequest_GetDocumentsRequestV0_ClearStartOneOfCase(GetDocumentsRequest_GetDocumentsRequestV0 *message) { - GPBDescriptor *descriptor = [GetDocumentsRequest_GetDocumentsRequestV0 descriptor]; +void GetDataContractResponse_GetDataContractResponseV0_ClearResultOneOfCase(GetDataContractResponse_GetDataContractResponseV0 *message) { + GPBDescriptor *descriptor = [GetDataContractResponse_GetDataContractResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDocumentsResponse +#pragma mark - GetDataContractsRequest -@implementation GetDocumentsResponse +@implementation GetDataContractsRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetDocumentsResponse__storage_ { +typedef struct GetDataContractsRequest__storage_ { uint32_t _has_storage_[2]; - GetDocumentsResponse_GetDocumentsResponseV0 *v0; -} GetDocumentsResponse__storage_; + GetDataContractsRequest_GetDataContractsRequestV0 *v0; +} GetDataContractsRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -4877,21 +4856,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0), - .number = GetDocumentsResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsRequest_GetDataContractsRequestV0), + .number = GetDataContractsRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetDataContractsRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDocumentsResponse__storage_) + storageSize:sizeof(GetDataContractsRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -4909,101 +4888,22 @@ + (GPBDescriptor *)descriptor { @end -void GetDocumentsResponse_ClearVersionOneOfCase(GetDocumentsResponse *message) { - GPBDescriptor *descriptor = [GetDocumentsResponse descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetDocumentsResponse_GetDocumentsResponseV0 - -@implementation GetDocumentsResponse_GetDocumentsResponseV0 - -@dynamic resultOneOfCase; -@dynamic documents; -@dynamic proof; -@dynamic hasMetadata, metadata; - -typedef struct GetDocumentsResponse_GetDocumentsResponseV0__storage_ { - uint32_t _has_storage_[2]; - GetDocumentsResponse_GetDocumentsResponseV0_Documents *documents; - Proof *proof; - ResponseMetadata *metadata; -} GetDocumentsResponse_GetDocumentsResponseV0__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 = "documents", - .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0_Documents), - .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Documents, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, documents), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse_GetDocumentsResponseV0 class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDocumentsResponse_GetDocumentsResponseV0__storage_) - flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsResponse)]; - #if defined(DEBUG) && DEBUG - NSAssert(descriptor == nil, @"Startup recursed!"); - #endif // DEBUG - descriptor = localDescriptor; - } - return descriptor; -} - -@end - -void GetDocumentsResponse_GetDocumentsResponseV0_ClearResultOneOfCase(GetDocumentsResponse_GetDocumentsResponseV0 *message) { - GPBDescriptor *descriptor = [GetDocumentsResponse_GetDocumentsResponseV0 descriptor]; +void GetDataContractsRequest_ClearVersionOneOfCase(GetDataContractsRequest *message) { + GPBDescriptor *descriptor = [GetDataContractsRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetDocumentsResponse_GetDocumentsResponseV0_Documents +#pragma mark - GetDataContractsRequest_GetDataContractsRequestV0 -@implementation GetDocumentsResponse_GetDocumentsResponseV0_Documents +@implementation GetDataContractsRequest_GetDataContractsRequestV0 -@dynamic documentsArray, documentsArray_Count; +@dynamic idsArray, idsArray_Count; +@dynamic prove; -typedef struct GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_ { +typedef struct GetDataContractsRequest_GetDataContractsRequestV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *documentsArray; -} GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_; + NSMutableArray *idsArray; +} GetDataContractsRequest_GetDataContractsRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5012,24 +4912,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "documentsArray", + .name = "idsArray", .dataTypeSpecific.clazz = Nil, - .number = GetDocumentsResponse_GetDocumentsResponseV0_Documents_FieldNumber_DocumentsArray, + .number = GetDataContractsRequest_GetDataContractsRequestV0_FieldNumber_IdsArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_, documentsArray), + .offset = (uint32_t)offsetof(GetDataContractsRequest_GetDataContractsRequestV0__storage_, idsArray), .flags = GPBFieldRepeated, .dataType = GPBDataTypeBytes, }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractsRequest_GetDataContractsRequestV0_FieldNumber_Prove, + .hasIndex = 0, + .offset = 1, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse_GetDocumentsResponseV0_Documents class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsRequest_GetDataContractsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_) + storageSize:sizeof(GetDataContractsRequest_GetDataContractsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5040,17 +4949,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetIdentityByPublicKeyHashRequest +#pragma mark - GetDataContractsResponse -@implementation GetIdentityByPublicKeyHashRequest +@implementation GetDataContractsResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetIdentityByPublicKeyHashRequest__storage_ { +typedef struct GetDataContractsResponse__storage_ { uint32_t _has_storage_[2]; - GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 *v0; -} GetIdentityByPublicKeyHashRequest__storage_; + GetDataContractsResponse_GetDataContractsResponseV0 *v0; +} GetDataContractsResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5060,21 +4969,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0), - .number = GetIdentityByPublicKeyHashRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_GetDataContractsResponseV0), + .number = GetDataContractsResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetDataContractsResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashRequest class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetIdentityByPublicKeyHashRequest__storage_) + storageSize:sizeof(GetDataContractsResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -5092,22 +5001,23 @@ + (GPBDescriptor *)descriptor { @end -void GetIdentityByPublicKeyHashRequest_ClearVersionOneOfCase(GetIdentityByPublicKeyHashRequest *message) { - GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashRequest descriptor]; +void GetDataContractsResponse_ClearVersionOneOfCase(GetDataContractsResponse *message) { + GPBDescriptor *descriptor = [GetDataContractsResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 +#pragma mark - GetDataContractsResponse_DataContractEntry -@implementation GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 +@implementation GetDataContractsResponse_DataContractEntry -@dynamic publicKeyHash; -@dynamic prove; +@dynamic identifier; +@dynamic hasDataContract, dataContract; -typedef struct GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_ { +typedef struct GetDataContractsResponse_DataContractEntry__storage_ { uint32_t _has_storage_[1]; - NSData *publicKeyHash; -} GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_; + NSData *identifier; + GPBBytesValue *dataContract; +} GetDataContractsResponse_DataContractEntry__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5116,33 +5026,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "publicKeyHash", + .name = "identifier", .dataTypeSpecific.clazz = Nil, - .number = GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0_FieldNumber_PublicKeyHash, + .number = GetDataContractsResponse_DataContractEntry_FieldNumber_Identifier, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_, publicKeyHash), + .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContractEntry__storage_, identifier), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0_FieldNumber_Prove, + .name = "dataContract", + .dataTypeSpecific.clazz = GPBObjCClass(GPBBytesValue), + .number = GetDataContractsResponse_DataContractEntry_FieldNumber_DataContract, .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContractEntry__storage_, dataContract), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_DataContractEntry class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_) + storageSize:sizeof(GetDataContractsResponse_DataContractEntry__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentityByPublicKeyHashRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5153,17 +5063,16 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetIdentityByPublicKeyHashResponse +#pragma mark - GetDataContractsResponse_DataContracts -@implementation GetIdentityByPublicKeyHashResponse +@implementation GetDataContractsResponse_DataContracts -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic dataContractEntriesArray, dataContractEntriesArray_Count; -typedef struct GetIdentityByPublicKeyHashResponse__storage_ { - uint32_t _has_storage_[2]; - GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 *v0; -} GetIdentityByPublicKeyHashResponse__storage_; +typedef struct GetDataContractsResponse_DataContracts__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *dataContractEntriesArray; +} GetDataContractsResponse_DataContracts__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5172,29 +5081,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0), - .number = GetIdentityByPublicKeyHashResponse_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse__storage_, v0), - .flags = GPBFieldOptional, + .name = "dataContractEntriesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_DataContractEntry), + .number = GetDataContractsResponse_DataContracts_FieldNumber_DataContractEntriesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetDataContractsResponse_DataContracts__storage_, dataContractEntriesArray), + .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashResponse class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_DataContracts class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetIdentityByPublicKeyHashResponse__storage_) + storageSize:sizeof(GetDataContractsResponse_DataContracts__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5205,26 +5109,21 @@ + (GPBDescriptor *)descriptor { @end -void GetIdentityByPublicKeyHashResponse_ClearVersionOneOfCase(GetIdentityByPublicKeyHashResponse *message) { - GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashResponse descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 +#pragma mark - GetDataContractsResponse_GetDataContractsResponseV0 -@implementation GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 +@implementation GetDataContractsResponse_GetDataContractsResponseV0 @dynamic resultOneOfCase; -@dynamic identity; +@dynamic dataContracts; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_ { +typedef struct GetDataContractsResponse_GetDataContractsResponseV0__storage_ { uint32_t _has_storage_[2]; - NSData *identity; + GetDataContractsResponse_DataContracts *dataContracts; Proof *proof; ResponseMetadata *metadata; -} GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_; +} GetDataContractsResponse_GetDataContractsResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5233,40 +5132,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "identity", - .dataTypeSpecific.clazz = Nil, - .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Identity, + .name = "dataContracts", + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractsResponse_DataContracts), + .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_DataContracts, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, identity), + .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, dataContracts), .flags = GPBFieldOptional, - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeMessage, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Proof, + .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Metadata, + .number = GetDataContractsResponse_GetDataContractsResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetDataContractsResponse_GetDataContractsResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractsResponse_GetDataContractsResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_) + storageSize:sizeof(GetDataContractsResponse_GetDataContractsResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -5274,7 +5173,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentityByPublicKeyHashResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5285,22 +5184,22 @@ + (GPBDescriptor *)descriptor { @end -void GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_ClearResultOneOfCase(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 *message) { - GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 descriptor]; +void GetDataContractsResponse_GetDataContractsResponseV0_ClearResultOneOfCase(GetDataContractsResponse_GetDataContractsResponseV0 *message) { + GPBDescriptor *descriptor = [GetDataContractsResponse_GetDataContractsResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - WaitForStateTransitionResultRequest +#pragma mark - GetDataContractHistoryRequest -@implementation WaitForStateTransitionResultRequest +@implementation GetDataContractHistoryRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct WaitForStateTransitionResultRequest__storage_ { +typedef struct GetDataContractHistoryRequest__storage_ { uint32_t _has_storage_[2]; - WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 *v0; -} WaitForStateTransitionResultRequest__storage_; + GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 *v0; +} GetDataContractHistoryRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5310,21 +5209,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0), - .number = WaitForStateTransitionResultRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0), + .number = GetDataContractHistoryRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetDataContractHistoryRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultRequest class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(WaitForStateTransitionResultRequest__storage_) + storageSize:sizeof(GetDataContractHistoryRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -5342,22 +5241,28 @@ + (GPBDescriptor *)descriptor { @end -void WaitForStateTransitionResultRequest_ClearVersionOneOfCase(WaitForStateTransitionResultRequest *message) { - GPBDescriptor *descriptor = [WaitForStateTransitionResultRequest descriptor]; +void GetDataContractHistoryRequest_ClearVersionOneOfCase(GetDataContractHistoryRequest *message) { + GPBDescriptor *descriptor = [GetDataContractHistoryRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 +#pragma mark - GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 -@implementation WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 +@implementation GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 -@dynamic stateTransitionHash; +@dynamic id_p; +@dynamic hasLimit, limit; +@dynamic hasOffset, offset; +@dynamic startAtMs; @dynamic prove; -typedef struct WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_ { +typedef struct GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_ { uint32_t _has_storage_[1]; - NSData *stateTransitionHash; -} WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_; + NSData *id_p; + GPBUInt32Value *limit; + GPBUInt32Value *offset; + uint64_t startAtMs; +} GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5366,33 +5271,60 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "stateTransitionHash", + .name = "id_p", .dataTypeSpecific.clazz = Nil, - .number = WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0_FieldNumber_StateTransitionHash, + .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Id_p, .hasIndex = 0, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_, stateTransitionHash), + .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, id_p), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, + { + .name = "limit", + .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), + .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Limit, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, limit), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "offset", + .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), + .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Offset, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, offset), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "startAtMs", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_StartAtMs, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_, startAtMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, { .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0_FieldNumber_Prove, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. + .number = GetDataContractHistoryRequest_GetDataContractHistoryRequestV0_FieldNumber_Prove, + .hasIndex = 4, + .offset = 5, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryRequest_GetDataContractHistoryRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_) + storageSize:sizeof(GetDataContractHistoryRequest_GetDataContractHistoryRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(WaitForStateTransitionResultRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5403,17 +5335,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - WaitForStateTransitionResultResponse +#pragma mark - GetDataContractHistoryResponse -@implementation WaitForStateTransitionResultResponse +@implementation GetDataContractHistoryResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct WaitForStateTransitionResultResponse__storage_ { +typedef struct GetDataContractHistoryResponse__storage_ { uint32_t _has_storage_[2]; - WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 *v0; -} WaitForStateTransitionResultResponse__storage_; + GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 *v0; +} GetDataContractHistoryResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5423,21 +5355,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0), - .number = WaitForStateTransitionResultResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0), + .number = GetDataContractHistoryResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultResponse class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(WaitForStateTransitionResultResponse__storage_) + storageSize:sizeof(GetDataContractHistoryResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -5455,26 +5387,26 @@ + (GPBDescriptor *)descriptor { @end -void WaitForStateTransitionResultResponse_ClearVersionOneOfCase(WaitForStateTransitionResultResponse *message) { - GPBDescriptor *descriptor = [WaitForStateTransitionResultResponse descriptor]; +void GetDataContractHistoryResponse_ClearVersionOneOfCase(GetDataContractHistoryResponse *message) { + GPBDescriptor *descriptor = [GetDataContractHistoryResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 +#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 -@implementation WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 +@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 @dynamic resultOneOfCase; -@dynamic error; +@dynamic dataContractHistory; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_ { +typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_ { uint32_t _has_storage_[2]; - StateTransitionBroadcastError *error; + GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory *dataContractHistory; Proof *proof; ResponseMetadata *metadata; -} WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_; +} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5483,40 +5415,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "error", - .dataTypeSpecific.clazz = GPBObjCClass(StateTransitionBroadcastError), - .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Error, + .name = "dataContractHistory", + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory), + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_DataContractHistory, .hasIndex = -1, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, error), + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, dataContractHistory), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Proof, + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Metadata, + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_) + storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -5524,7 +5456,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(WaitForStateTransitionResultResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5535,22 +5467,23 @@ + (GPBDescriptor *)descriptor { @end -void WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_ClearResultOneOfCase(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 *message) { - GPBDescriptor *descriptor = [WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 descriptor]; +void GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_ClearResultOneOfCase(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 *message) { + GPBDescriptor *descriptor = [GetDataContractHistoryResponse_GetDataContractHistoryResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetConsensusParamsRequest +#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry -@implementation GetConsensusParamsRequest +@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic date; +@dynamic value; -typedef struct GetConsensusParamsRequest__storage_ { - uint32_t _has_storage_[2]; - GetConsensusParamsRequest_GetConsensusParamsRequestV0 *v0; -} GetConsensusParamsRequest__storage_; +typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_ { + uint32_t _has_storage_[1]; + NSData *value; + uint64_t date; +} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5559,29 +5492,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsRequest_GetConsensusParamsRequestV0), - .number = GetConsensusParamsRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetConsensusParamsRequest__storage_, v0), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "date", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry_FieldNumber_Date, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_, date), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "value", + .dataTypeSpecific.clazz = Nil, + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry_FieldNumber_Value, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_, value), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsRequest class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsRequest__storage_) + storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5592,22 +5529,16 @@ + (GPBDescriptor *)descriptor { @end -void GetConsensusParamsRequest_ClearVersionOneOfCase(GetConsensusParamsRequest *message) { - GPBDescriptor *descriptor = [GetConsensusParamsRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetConsensusParamsRequest_GetConsensusParamsRequestV0 +#pragma mark - GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory -@implementation GetConsensusParamsRequest_GetConsensusParamsRequestV0 +@implementation GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory -@dynamic height; -@dynamic prove; +@dynamic dataContractEntriesArray, dataContractEntriesArray_Count; -typedef struct GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_ { +typedef struct GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_ { uint32_t _has_storage_[1]; - int32_t height; -} GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_; + NSMutableArray *dataContractEntriesArray; +} GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5616,33 +5547,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "height", - .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsRequest_GetConsensusParamsRequestV0_FieldNumber_Height, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_, height), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeInt32, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsRequest_GetConsensusParamsRequestV0_FieldNumber_Prove, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .name = "dataContractEntriesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistoryEntry), + .number = GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory_FieldNumber_DataContractEntriesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_, dataContractEntriesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsRequest_GetConsensusParamsRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_) + storageSize:sizeof(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0_DataContractHistory__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDataContractHistoryResponse_GetDataContractHistoryResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5653,17 +5575,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetConsensusParamsResponse +#pragma mark - GetDocumentsRequest -@implementation GetConsensusParamsResponse +@implementation GetDocumentsRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetConsensusParamsResponse__storage_ { +typedef struct GetDocumentsRequest__storage_ { uint32_t _has_storage_[2]; - GetConsensusParamsResponse_GetConsensusParamsResponseV0 *v0; -} GetConsensusParamsResponse__storage_; + GetDocumentsRequest_GetDocumentsRequestV0 *v0; +} GetDocumentsRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5673,21 +5595,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_GetConsensusParamsResponseV0), - .number = GetConsensusParamsResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsRequest_GetDocumentsRequestV0), + .number = GetDocumentsRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetDocumentsRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse class] + [GPBDescriptor allocDescriptorForClass:[GetDocumentsRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsResponse__storage_) + storageSize:sizeof(GetDocumentsRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -5705,25 +5627,35 @@ + (GPBDescriptor *)descriptor { @end -void GetConsensusParamsResponse_ClearVersionOneOfCase(GetConsensusParamsResponse *message) { - GPBDescriptor *descriptor = [GetConsensusParamsResponse descriptor]; +void GetDocumentsRequest_ClearVersionOneOfCase(GetDocumentsRequest *message) { + GPBDescriptor *descriptor = [GetDocumentsRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetConsensusParamsResponse_ConsensusParamsBlock +#pragma mark - GetDocumentsRequest_GetDocumentsRequestV0 -@implementation GetConsensusParamsResponse_ConsensusParamsBlock +@implementation GetDocumentsRequest_GetDocumentsRequestV0 -@dynamic maxBytes; -@dynamic maxGas; -@dynamic timeIotaMs; +@dynamic startOneOfCase; +@dynamic dataContractId; +@dynamic documentType; +@dynamic where; +@dynamic orderBy; +@dynamic limit; +@dynamic startAfter; +@dynamic startAt; +@dynamic prove; -typedef struct GetConsensusParamsResponse_ConsensusParamsBlock__storage_ { - uint32_t _has_storage_[1]; - NSString *maxBytes; - NSString *maxGas; - NSString *timeIotaMs; -} GetConsensusParamsResponse_ConsensusParamsBlock__storage_; +typedef struct GetDocumentsRequest_GetDocumentsRequestV0__storage_ { + uint32_t _has_storage_[2]; + uint32_t limit; + NSData *dataContractId; + NSString *documentType; + NSData *where; + NSData *orderBy; + NSData *startAfter; + NSData *startAt; +} GetDocumentsRequest_GetDocumentsRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5732,42 +5664,93 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "maxBytes", + .name = "dataContractId", .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_MaxBytes, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_DataContractId, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, maxBytes), + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, dataContractId), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .dataType = GPBDataTypeBytes, }, { - .name = "maxGas", + .name = "documentType", .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_MaxGas, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_DocumentType, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, maxGas), + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, documentType), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeString, }, { - .name = "timeIotaMs", + .name = "where", .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_TimeIotaMs, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Where, .hasIndex = 2, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, timeIotaMs), + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, where), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .dataType = GPBDataTypeBytes, + }, + { + .name = "orderBy", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_OrderBy, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, orderBy), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "limit", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Limit, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, limit), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "startAfter", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_StartAfter, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, startAfter), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeBytes, + }, + { + .name = "startAt", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_StartAt, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDocumentsRequest_GetDocumentsRequestV0__storage_, startAt), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeBytes, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsRequest_GetDocumentsRequestV0_FieldNumber_Prove, + .hasIndex = 5, + .offset = 6, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_ConsensusParamsBlock class] + [GPBDescriptor allocDescriptorForClass:[GetDocumentsRequest_GetDocumentsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_) + storageSize:sizeof(GetDocumentsRequest_GetDocumentsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; + static const char *oneofs[] = { + "start", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5778,20 +5761,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetConsensusParamsResponse_ConsensusParamsEvidence +void GetDocumentsRequest_GetDocumentsRequestV0_ClearStartOneOfCase(GetDocumentsRequest_GetDocumentsRequestV0 *message) { + GPBDescriptor *descriptor = [GetDocumentsRequest_GetDocumentsRequestV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetDocumentsResponse -@implementation GetConsensusParamsResponse_ConsensusParamsEvidence +@implementation GetDocumentsResponse -@dynamic maxAgeNumBlocks; -@dynamic maxAgeDuration; -@dynamic maxBytes; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetConsensusParamsResponse_ConsensusParamsEvidence__storage_ { - uint32_t _has_storage_[1]; - NSString *maxAgeNumBlocks; - NSString *maxAgeDuration; - NSString *maxBytes; -} GetConsensusParamsResponse_ConsensusParamsEvidence__storage_; +typedef struct GetDocumentsResponse__storage_ { + uint32_t _has_storage_[2]; + GetDocumentsResponse_GetDocumentsResponseV0 *v0; +} GetDocumentsResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5800,42 +5785,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "maxAgeNumBlocks", - .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxAgeNumBlocks, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxAgeNumBlocks), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "maxAgeDuration", - .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxAgeDuration, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxAgeDuration), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "maxBytes", - .dataTypeSpecific.clazz = Nil, - .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxBytes, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxBytes), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0), + .number = GetDocumentsResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDocumentsResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_ConsensusParamsEvidence class] + [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_) + storageSize:sizeof(GetDocumentsResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; + 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 @@ -5846,18 +5818,26 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetConsensusParamsResponse_GetConsensusParamsResponseV0 +void GetDocumentsResponse_ClearVersionOneOfCase(GetDocumentsResponse *message) { + GPBDescriptor *descriptor = [GetDocumentsResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetDocumentsResponse_GetDocumentsResponseV0 -@implementation GetConsensusParamsResponse_GetConsensusParamsResponseV0 +@implementation GetDocumentsResponse_GetDocumentsResponseV0 -@dynamic hasBlock, block; -@dynamic hasEvidence, evidence; +@dynamic resultOneOfCase; +@dynamic documents; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_ { - uint32_t _has_storage_[1]; - GetConsensusParamsResponse_ConsensusParamsBlock *block; - GetConsensusParamsResponse_ConsensusParamsEvidence *evidence; -} GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_; +typedef struct GetDocumentsResponse_GetDocumentsResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetDocumentsResponse_GetDocumentsResponseV0_Documents *documents; + Proof *proof; + ResponseMetadata *metadata; +} GetDocumentsResponse_GetDocumentsResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5866,33 +5846,48 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "block", - .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_ConsensusParamsBlock), - .number = GetConsensusParamsResponse_GetConsensusParamsResponseV0_FieldNumber_Block, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_, block), + .name = "documents", + .dataTypeSpecific.clazz = GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0_Documents), + .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Documents, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, documents), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { - .name = "evidence", - .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_ConsensusParamsEvidence), - .number = GetConsensusParamsResponse_GetConsensusParamsResponseV0_FieldNumber_Evidence, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_, evidence), + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetDocumentsResponse_GetDocumentsResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_GetConsensusParamsResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse_GetDocumentsResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_) + storageSize:sizeof(GetDocumentsResponse_GetDocumentsResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -5903,17 +5898,68 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeStateRequest +void GetDocumentsResponse_GetDocumentsResponseV0_ClearResultOneOfCase(GetDocumentsResponse_GetDocumentsResponseV0 *message) { + GPBDescriptor *descriptor = [GetDocumentsResponse_GetDocumentsResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetDocumentsResponse_GetDocumentsResponseV0_Documents -@implementation GetProtocolVersionUpgradeStateRequest +@implementation GetDocumentsResponse_GetDocumentsResponseV0_Documents + +@dynamic documentsArray, documentsArray_Count; + +typedef struct GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *documentsArray; +} GetDocumentsResponse_GetDocumentsResponseV0_Documents__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 = "documentsArray", + .dataTypeSpecific.clazz = Nil, + .number = GetDocumentsResponse_GetDocumentsResponseV0_Documents_FieldNumber_DocumentsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_, documentsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetDocumentsResponse_GetDocumentsResponseV0_Documents class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetDocumentsResponse_GetDocumentsResponseV0_Documents__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetDocumentsResponse_GetDocumentsResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetIdentityByPublicKeyHashRequest + +@implementation GetIdentityByPublicKeyHashRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProtocolVersionUpgradeStateRequest__storage_ { +typedef struct GetIdentityByPublicKeyHashRequest__storage_ { uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 *v0; -} GetProtocolVersionUpgradeStateRequest__storage_; + GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 *v0; +} GetIdentityByPublicKeyHashRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5923,21 +5969,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0), - .number = GetProtocolVersionUpgradeStateRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0), + .number = GetIdentityByPublicKeyHashRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateRequest class] + [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateRequest__storage_) + storageSize:sizeof(GetIdentityByPublicKeyHashRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -5955,20 +6001,22 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeStateRequest_ClearVersionOneOfCase(GetProtocolVersionUpgradeStateRequest *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateRequest descriptor]; +void GetIdentityByPublicKeyHashRequest_ClearVersionOneOfCase(GetIdentityByPublicKeyHashRequest *message) { + GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 +#pragma mark - GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 -@implementation GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 +@implementation GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 +@dynamic publicKeyHash; @dynamic prove; -typedef struct GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_ { +typedef struct GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_ { uint32_t _has_storage_[1]; -} GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_; + NSData *publicKeyHash; +} GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -5977,24 +6025,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "prove", + .name = "publicKeyHash", .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0_FieldNumber_Prove, + .number = GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0_FieldNumber_PublicKeyHash, .hasIndex = 0, - .offset = 1, // Stored in _has_storage_ to save space. + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_, publicKeyHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0_FieldNumber_Prove, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_) + storageSize:sizeof(GetIdentityByPublicKeyHashRequest_GetIdentityByPublicKeyHashRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentityByPublicKeyHashRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6005,17 +6062,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeStateResponse +#pragma mark - GetIdentityByPublicKeyHashResponse -@implementation GetProtocolVersionUpgradeStateResponse +@implementation GetIdentityByPublicKeyHashResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProtocolVersionUpgradeStateResponse__storage_ { +typedef struct GetIdentityByPublicKeyHashResponse__storage_ { uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 *v0; -} GetProtocolVersionUpgradeStateResponse__storage_; + GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 *v0; +} GetIdentityByPublicKeyHashResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6025,21 +6082,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0), - .number = GetProtocolVersionUpgradeStateResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0), + .number = GetIdentityByPublicKeyHashResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse class] + [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateResponse__storage_) + storageSize:sizeof(GetIdentityByPublicKeyHashResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -6057,26 +6114,26 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeStateResponse_ClearVersionOneOfCase(GetProtocolVersionUpgradeStateResponse *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateResponse descriptor]; +void GetIdentityByPublicKeyHashResponse_ClearVersionOneOfCase(GetIdentityByPublicKeyHashResponse *message) { + GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 +#pragma mark - GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 -@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 +@implementation GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 @dynamic resultOneOfCase; -@dynamic versions; +@dynamic identity; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_ { +typedef struct GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_ { uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions *versions; + NSData *identity; Proof *proof; ResponseMetadata *metadata; -} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_; +} GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6085,40 +6142,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "versions", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions), - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Versions, + .name = "identity", + .dataTypeSpecific.clazz = Nil, + .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Identity, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, versions), + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, identity), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeBytes, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Proof, + .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Metadata, + .number = GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_) + storageSize:sizeof(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -6126,7 +6183,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetIdentityByPublicKeyHashResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6137,21 +6194,22 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_ClearResultOneOfCase(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 descriptor]; +void GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0_ClearResultOneOfCase(GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 *message) { + GPBDescriptor *descriptor = [GetIdentityByPublicKeyHashResponse_GetIdentityByPublicKeyHashResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions +#pragma mark - WaitForStateTransitionResultRequest -@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions +@implementation WaitForStateTransitionResultRequest -@dynamic versionsArray, versionsArray_Count; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_ { - uint32_t _has_storage_[1]; - NSMutableArray *versionsArray; -} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_; +typedef struct WaitForStateTransitionResultRequest__storage_ { + uint32_t _has_storage_[2]; + WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 *v0; +} WaitForStateTransitionResultRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6160,24 +6218,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "versionsArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry), - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions_FieldNumber_VersionsArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_, versionsArray), - .flags = GPBFieldRepeated, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0), + .number = WaitForStateTransitionResultRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(WaitForStateTransitionResultRequest__storage_, v0), + .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions class] + [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_) + storageSize:sizeof(WaitForStateTransitionResultRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0)]; + 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 @@ -6188,18 +6251,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry +void WaitForStateTransitionResultRequest_ClearVersionOneOfCase(WaitForStateTransitionResultRequest *message) { + GPBDescriptor *descriptor = [WaitForStateTransitionResultRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 -@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry +@implementation WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 -@dynamic versionNumber; -@dynamic voteCount; +@dynamic stateTransitionHash; +@dynamic prove; -typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_ { +typedef struct WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_ { uint32_t _has_storage_[1]; - uint32_t versionNumber; - uint32_t voteCount; -} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_; + NSData *stateTransitionHash; +} WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6208,33 +6275,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "versionNumber", + .name = "stateTransitionHash", .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry_FieldNumber_VersionNumber, + .number = WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0_FieldNumber_StateTransitionHash, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_, versionNumber), + .offset = (uint32_t)offsetof(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_, stateTransitionHash), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, + .dataType = GPBDataTypeBytes, }, { - .name = "voteCount", + .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry_FieldNumber_VoteCount, + .number = WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0_FieldNumber_Prove, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_, voteCount), + .offset = 2, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry class] + [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_) + storageSize:sizeof(WaitForStateTransitionResultRequest_WaitForStateTransitionResultRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(WaitForStateTransitionResultRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6245,17 +6312,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeVoteStatusRequest +#pragma mark - WaitForStateTransitionResultResponse -@implementation GetProtocolVersionUpgradeVoteStatusRequest +@implementation WaitForStateTransitionResultResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProtocolVersionUpgradeVoteStatusRequest__storage_ { +typedef struct WaitForStateTransitionResultResponse__storage_ { uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 *v0; -} GetProtocolVersionUpgradeVoteStatusRequest__storage_; + WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 *v0; +} WaitForStateTransitionResultResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6265,21 +6332,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0), - .number = GetProtocolVersionUpgradeVoteStatusRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0), + .number = WaitForStateTransitionResultResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest__storage_, v0), + .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusRequest class] + [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusRequest__storage_) + storageSize:sizeof(WaitForStateTransitionResultResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -6297,24 +6364,26 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeVoteStatusRequest_ClearVersionOneOfCase(GetProtocolVersionUpgradeVoteStatusRequest *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusRequest descriptor]; +void WaitForStateTransitionResultResponse_ClearVersionOneOfCase(WaitForStateTransitionResultResponse *message) { + GPBDescriptor *descriptor = [WaitForStateTransitionResultResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 +#pragma mark - WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 -@implementation GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 +@implementation WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 -@dynamic startProTxHash; -@dynamic count; -@dynamic prove; +@dynamic resultOneOfCase; +@dynamic error; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_ { - uint32_t _has_storage_[1]; - uint32_t count; - NSData *startProTxHash; -} GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_; +typedef struct WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_ { + uint32_t _has_storage_[2]; + StateTransitionBroadcastError *error; + Proof *proof; + ResponseMetadata *metadata; +} WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6323,42 +6392,48 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startProTxHash", - .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_StartProTxHash, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_, startProTxHash), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "error", + .dataTypeSpecific.clazz = GPBObjCClass(StateTransitionBroadcastError), + .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Error, + .hasIndex = -1, + .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, error), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "count", - .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_Count, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_, count), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_Prove, - .hasIndex = 2, - .offset = 3, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_) + storageSize:sizeof(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusRequest)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(WaitForStateTransitionResultResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6369,17 +6444,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse +void WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0_ClearResultOneOfCase(WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 *message) { + GPBDescriptor *descriptor = [WaitForStateTransitionResultResponse_WaitForStateTransitionResultResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetConsensusParamsRequest -@implementation GetProtocolVersionUpgradeVoteStatusResponse +@implementation GetConsensusParamsRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetProtocolVersionUpgradeVoteStatusResponse__storage_ { +typedef struct GetConsensusParamsRequest__storage_ { uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 *v0; -} GetProtocolVersionUpgradeVoteStatusResponse__storage_; + GetConsensusParamsRequest_GetConsensusParamsRequestV0 *v0; +} GetConsensusParamsRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6389,21 +6469,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0), - .number = GetProtocolVersionUpgradeVoteStatusResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsRequest_GetConsensusParamsRequestV0), + .number = GetConsensusParamsRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetConsensusParamsRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse__storage_) + storageSize:sizeof(GetConsensusParamsRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -6421,26 +6501,22 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeVoteStatusResponse_ClearVersionOneOfCase(GetProtocolVersionUpgradeVoteStatusResponse *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusResponse descriptor]; +void GetConsensusParamsRequest_ClearVersionOneOfCase(GetConsensusParamsRequest *message) { + GPBDescriptor *descriptor = [GetConsensusParamsRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 +#pragma mark - GetConsensusParamsRequest_GetConsensusParamsRequestV0 -@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 +@implementation GetConsensusParamsRequest_GetConsensusParamsRequestV0 -@dynamic resultOneOfCase; -@dynamic versions; -@dynamic proof; -@dynamic hasMetadata, metadata; +@dynamic height; +@dynamic prove; -typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_ { - uint32_t _has_storage_[2]; - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals *versions; - Proof *proof; - ResponseMetadata *metadata; -} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_; +typedef struct GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_ { + uint32_t _has_storage_[1]; + int32_t height; +} GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6449,48 +6525,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "versions", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals), - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Versions, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, versions), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "height", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsRequest_GetConsensusParamsRequestV0_FieldNumber_Height, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_, height), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeInt32, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsRequest_GetConsensusParamsRequestV0_FieldNumber_Prove, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsRequest_GetConsensusParamsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_) + storageSize:sizeof(GetConsensusParamsRequest_GetConsensusParamsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6501,21 +6562,17 @@ + (GPBDescriptor *)descriptor { @end -void GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_ClearResultOneOfCase(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 *message) { - GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals +#pragma mark - GetConsensusParamsResponse -@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals +@implementation GetConsensusParamsResponse -@dynamic versionSignalsArray, versionSignalsArray_Count; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_ { - uint32_t _has_storage_[1]; - NSMutableArray *versionSignalsArray; -} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_; +typedef struct GetConsensusParamsResponse__storage_ { + uint32_t _has_storage_[2]; + GetConsensusParamsResponse_GetConsensusParamsResponseV0 *v0; +} GetConsensusParamsResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6524,24 +6581,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "versionSignalsArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal), - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals_FieldNumber_VersionSignalsArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_, versionSignalsArray), - .flags = GPBFieldRepeated, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_GetConsensusParamsResponseV0), + .number = GetConsensusParamsResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse__storage_, v0), + .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_) + storageSize:sizeof(GetConsensusParamsResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0)]; + 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 @@ -6552,18 +6614,25 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal +void GetConsensusParamsResponse_ClearVersionOneOfCase(GetConsensusParamsResponse *message) { + GPBDescriptor *descriptor = [GetConsensusParamsResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetConsensusParamsResponse_ConsensusParamsBlock -@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal +@implementation GetConsensusParamsResponse_ConsensusParamsBlock -@dynamic proTxHash; -@dynamic version; +@dynamic maxBytes; +@dynamic maxGas; +@dynamic timeIotaMs; -typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_ { +typedef struct GetConsensusParamsResponse_ConsensusParamsBlock__storage_ { uint32_t _has_storage_[1]; - uint32_t version; - NSData *proTxHash; -} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_; + NSString *maxBytes; + NSString *maxGas; + NSString *timeIotaMs; +} GetConsensusParamsResponse_ConsensusParamsBlock__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6572,33 +6641,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "proTxHash", + .name = "maxBytes", .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal_FieldNumber_ProTxHash, + .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_MaxBytes, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_, proTxHash), + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, maxBytes), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeString, }, { - .name = "version", + .name = "maxGas", .dataTypeSpecific.clazz = Nil, - .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal_FieldNumber_Version, + .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_MaxGas, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_, version), + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, maxGas), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, + .dataType = GPBDataTypeString, + }, + { + .name = "timeIotaMs", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsResponse_ConsensusParamsBlock_FieldNumber_TimeIotaMs, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_, timeIotaMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_ConsensusParamsBlock class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_) + storageSize:sizeof(GetConsensusParamsResponse_ConsensusParamsBlock__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6609,17 +6687,20 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetEpochsInfoRequest +#pragma mark - GetConsensusParamsResponse_ConsensusParamsEvidence -@implementation GetEpochsInfoRequest +@implementation GetConsensusParamsResponse_ConsensusParamsEvidence -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic maxAgeNumBlocks; +@dynamic maxAgeDuration; +@dynamic maxBytes; -typedef struct GetEpochsInfoRequest__storage_ { - uint32_t _has_storage_[2]; - GetEpochsInfoRequest_GetEpochsInfoRequestV0 *v0; -} GetEpochsInfoRequest__storage_; +typedef struct GetConsensusParamsResponse_ConsensusParamsEvidence__storage_ { + uint32_t _has_storage_[1]; + NSString *maxAgeNumBlocks; + NSString *maxAgeDuration; + NSString *maxBytes; +} GetConsensusParamsResponse_ConsensusParamsEvidence__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6628,29 +6709,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoRequest_GetEpochsInfoRequestV0), - .number = GetEpochsInfoRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetEpochsInfoRequest__storage_, v0), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "maxAgeNumBlocks", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxAgeNumBlocks, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxAgeNumBlocks), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "maxAgeDuration", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxAgeDuration, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxAgeDuration), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "maxBytes", + .dataTypeSpecific.clazz = Nil, + .number = GetConsensusParamsResponse_ConsensusParamsEvidence_FieldNumber_MaxBytes, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_, maxBytes), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoRequest class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_ConsensusParamsEvidence class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoRequest__storage_) + storageSize:sizeof(GetConsensusParamsResponse_ConsensusParamsEvidence__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6661,25 +6755,18 @@ + (GPBDescriptor *)descriptor { @end -void GetEpochsInfoRequest_ClearVersionOneOfCase(GetEpochsInfoRequest *message) { - GPBDescriptor *descriptor = [GetEpochsInfoRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetEpochsInfoRequest_GetEpochsInfoRequestV0 +#pragma mark - GetConsensusParamsResponse_GetConsensusParamsResponseV0 -@implementation GetEpochsInfoRequest_GetEpochsInfoRequestV0 +@implementation GetConsensusParamsResponse_GetConsensusParamsResponseV0 -@dynamic hasStartEpoch, startEpoch; -@dynamic count; -@dynamic ascending; -@dynamic prove; +@dynamic hasBlock, block; +@dynamic hasEvidence, evidence; -typedef struct GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_ { +typedef struct GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_ { uint32_t _has_storage_[1]; - uint32_t count; - GPBUInt32Value *startEpoch; -} GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_; + GetConsensusParamsResponse_ConsensusParamsBlock *block; + GetConsensusParamsResponse_ConsensusParamsEvidence *evidence; +} GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6688,51 +6775,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startEpoch", - .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), - .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_StartEpoch, + .name = "block", + .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_ConsensusParamsBlock), + .number = GetConsensusParamsResponse_GetConsensusParamsResponseV0_FieldNumber_Block, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_, startEpoch), + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_, block), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { - .name = "count", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Count, + .name = "evidence", + .dataTypeSpecific.clazz = GPBObjCClass(GetConsensusParamsResponse_ConsensusParamsEvidence), + .number = GetConsensusParamsResponse_GetConsensusParamsResponseV0_FieldNumber_Evidence, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_, count), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, - }, - { - .name = "ascending", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Ascending, - .hasIndex = 2, - .offset = 3, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Prove, - .hasIndex = 4, - .offset = 5, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .offset = (uint32_t)offsetof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_, evidence), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoRequest_GetEpochsInfoRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetConsensusParamsResponse_GetConsensusParamsResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_) + storageSize:sizeof(GetConsensusParamsResponse_GetConsensusParamsResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetConsensusParamsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6743,17 +6812,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetEpochsInfoResponse +#pragma mark - GetProtocolVersionUpgradeStateRequest -@implementation GetEpochsInfoResponse +@implementation GetProtocolVersionUpgradeStateRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetEpochsInfoResponse__storage_ { +typedef struct GetProtocolVersionUpgradeStateRequest__storage_ { uint32_t _has_storage_[2]; - GetEpochsInfoResponse_GetEpochsInfoResponseV0 *v0; -} GetEpochsInfoResponse__storage_; + GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 *v0; +} GetProtocolVersionUpgradeStateRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6763,21 +6832,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0), - .number = GetEpochsInfoResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0), + .number = GetProtocolVersionUpgradeStateRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoResponse__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeStateRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -6795,26 +6864,20 @@ + (GPBDescriptor *)descriptor { @end -void GetEpochsInfoResponse_ClearVersionOneOfCase(GetEpochsInfoResponse *message) { - GPBDescriptor *descriptor = [GetEpochsInfoResponse descriptor]; +void GetProtocolVersionUpgradeStateRequest_ClearVersionOneOfCase(GetProtocolVersionUpgradeStateRequest *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0 +#pragma mark - GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 -@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0 +@implementation GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 -@dynamic resultOneOfCase; -@dynamic epochs; -@dynamic proof; -@dynamic hasMetadata, metadata; +@dynamic prove; -typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_ { - uint32_t _has_storage_[2]; - GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos *epochs; - Proof *proof; - ResponseMetadata *metadata; -} GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_; +typedef struct GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_ { + uint32_t _has_storage_[1]; +} GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6823,40 +6886,148 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "epochs", - .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos), - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Epochs, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, epochs), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Proof, + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0_FieldNumber_Prove, + .hasIndex = 0, + .offset = 1, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetProtocolVersionUpgradeStateRequest_GetProtocolVersionUpgradeStateRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetProtocolVersionUpgradeStateResponse + +@implementation GetProtocolVersionUpgradeStateResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetProtocolVersionUpgradeStateResponse__storage_ { + uint32_t _has_storage_[2]; + GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 *v0; +} GetProtocolVersionUpgradeStateResponse__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(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0), + .number = GetProtocolVersionUpgradeStateResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetProtocolVersionUpgradeStateResponse__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 GetProtocolVersionUpgradeStateResponse_ClearVersionOneOfCase(GetProtocolVersionUpgradeStateResponse *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 + +@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 + +@dynamic resultOneOfCase; +@dynamic versions; +@dynamic proof; +@dynamic hasMetadata, metadata; + +typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions *versions; + Proof *proof; + ResponseMetadata *metadata; +} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__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 = "versions", + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions), + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Versions, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, versions), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Metadata, + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -6864,7 +7035,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6875,21 +7046,21 @@ + (GPBDescriptor *)descriptor { @end -void GetEpochsInfoResponse_GetEpochsInfoResponseV0_ClearResultOneOfCase(GetEpochsInfoResponse_GetEpochsInfoResponseV0 *message) { - GPBDescriptor *descriptor = [GetEpochsInfoResponse_GetEpochsInfoResponseV0 descriptor]; +void GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_ClearResultOneOfCase(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos +#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions -@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos +@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions -@dynamic epochInfosArray, epochInfosArray_Count; +@dynamic versionsArray, versionsArray_Count; -typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_ { +typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *epochInfosArray; -} GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_; + NSMutableArray *versionsArray; +} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6898,24 +7069,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "epochInfosArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo), - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos_FieldNumber_EpochInfosArray, + .name = "versionsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry), + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions_FieldNumber_VersionsArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_, epochInfosArray), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_, versionsArray), .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_Versions__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -6926,26 +7097,18 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo +#pragma mark - GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry -@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo +@implementation GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry -@dynamic number; -@dynamic firstBlockHeight; -@dynamic firstCoreBlockHeight; -@dynamic startTime; -@dynamic feeMultiplier; -@dynamic protocolVersion; +@dynamic versionNumber; +@dynamic voteCount; -typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_ { +typedef struct GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_ { uint32_t _has_storage_[1]; - uint32_t number; - uint32_t firstCoreBlockHeight; - uint32_t protocolVersion; - uint64_t firstBlockHeight; - uint64_t startTime; - double feeMultiplier; -} GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_; + uint32_t versionNumber; + uint32_t voteCount; +} GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -6954,69 +7117,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "number", + .name = "versionNumber", .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_Number, + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry_FieldNumber_VersionNumber, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, number), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_, versionNumber), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeUInt32, }, { - .name = "firstBlockHeight", + .name = "voteCount", .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FirstBlockHeight, + .number = GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry_FieldNumber_VoteCount, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, firstBlockHeight), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "firstCoreBlockHeight", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FirstCoreBlockHeight, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, firstCoreBlockHeight), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, - }, - { - .name = "startTime", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_StartTime, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, startTime), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "feeMultiplier", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FeeMultiplier, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, feeMultiplier), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeDouble, - }, - { - .name = "protocolVersion", - .dataTypeSpecific.clazz = Nil, - .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_ProtocolVersion, - .hasIndex = 5, - .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, protocolVersion), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_, voteCount), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeUInt32, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0_VersionEntry__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeStateResponse_GetProtocolVersionUpgradeStateResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7027,17 +7154,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourcesRequest +#pragma mark - GetProtocolVersionUpgradeVoteStatusRequest -@implementation GetContestedResourcesRequest +@implementation GetProtocolVersionUpgradeVoteStatusRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourcesRequest__storage_ { +typedef struct GetProtocolVersionUpgradeVoteStatusRequest__storage_ { uint32_t _has_storage_[2]; - GetContestedResourcesRequest_GetContestedResourcesRequestV0 *v0; -} GetContestedResourcesRequest__storage_; + GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 *v0; +} GetProtocolVersionUpgradeVoteStatusRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7047,21 +7174,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesRequest_GetContestedResourcesRequestV0), - .number = GetContestedResourcesRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0), + .number = GetProtocolVersionUpgradeVoteStatusRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesRequest__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -7079,35 +7206,24 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourcesRequest_ClearVersionOneOfCase(GetContestedResourcesRequest *message) { - GPBDescriptor *descriptor = [GetContestedResourcesRequest descriptor]; +void GetProtocolVersionUpgradeVoteStatusRequest_ClearVersionOneOfCase(GetProtocolVersionUpgradeVoteStatusRequest *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourcesRequest_GetContestedResourcesRequestV0 +#pragma mark - GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 -@implementation GetContestedResourcesRequest_GetContestedResourcesRequestV0 +@implementation GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 -@dynamic contractId; -@dynamic documentTypeName; -@dynamic indexName; -@dynamic startIndexValuesArray, startIndexValuesArray_Count; -@dynamic endIndexValuesArray, endIndexValuesArray_Count; -@dynamic hasStartAtValueInfo, startAtValueInfo; -@dynamic hasCount, count; -@dynamic orderAscending; +@dynamic startProTxHash; +@dynamic count; @dynamic prove; -typedef struct GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_ { +typedef struct GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_ { uint32_t _has_storage_[1]; uint32_t count; - NSData *contractId; - NSString *documentTypeName; - NSString *indexName; - NSMutableArray *startIndexValuesArray; - NSMutableArray *endIndexValuesArray; - GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo *startAtValueInfo; -} GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_; + NSData *startProTxHash; +} GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7116,152 +7232,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", + .name = "startProTxHash", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_ContractId, + .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_StartProTxHash, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, contractId), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_, startProTxHash), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, { - .name = "documentTypeName", + .name = "count", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_DocumentTypeName, + .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_Count, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, documentTypeName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "indexName", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_IndexName, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, indexName), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_, count), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "startIndexValuesArray", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_StartIndexValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, startIndexValuesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "endIndexValuesArray", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_EndIndexValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, endIndexValuesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "startAtValueInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo), - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_StartAtValueInfo, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, startAtValueInfo), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "count", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_Count, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, count), - .flags = GPBFieldOptional, .dataType = GPBDataTypeUInt32, }, - { - .name = "orderAscending", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_OrderAscending, - .hasIndex = 5, - .offset = 6, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, { .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_Prove, - .hasIndex = 7, - .offset = 8, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest_GetContestedResourcesRequestV0 class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_) - flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesRequest)]; - #if defined(DEBUG) && DEBUG - NSAssert(descriptor == nil, @"Startup recursed!"); - #endif // DEBUG - descriptor = localDescriptor; - } - return descriptor; -} - -@end - -#pragma mark - GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo - -@implementation GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo - -@dynamic startValue; -@dynamic startValueIncluded; - -typedef struct GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_ { - uint32_t _has_storage_[1]; - NSData *startValue; -} GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__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 = "startValue", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo_FieldNumber_StartValue, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_, startValue), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "startValueIncluded", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo_FieldNumber_StartValueIncluded, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. + .number = GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0_FieldNumber_Prove, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusRequest_GetProtocolVersionUpgradeVoteStatusRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesRequest_GetContestedResourcesRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7272,17 +7278,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourcesResponse +#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse -@implementation GetContestedResourcesResponse +@implementation GetProtocolVersionUpgradeVoteStatusResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourcesResponse__storage_ { +typedef struct GetProtocolVersionUpgradeVoteStatusResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourcesResponse_GetContestedResourcesResponseV0 *v0; -} GetContestedResourcesResponse__storage_; + GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 *v0; +} GetProtocolVersionUpgradeVoteStatusResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7292,21 +7298,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesResponse_GetContestedResourcesResponseV0), - .number = GetContestedResourcesResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0), + .number = GetProtocolVersionUpgradeVoteStatusResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourcesResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesResponse__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -7324,26 +7330,26 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourcesResponse_ClearVersionOneOfCase(GetContestedResourcesResponse *message) { - GPBDescriptor *descriptor = [GetContestedResourcesResponse descriptor]; +void GetProtocolVersionUpgradeVoteStatusResponse_ClearVersionOneOfCase(GetProtocolVersionUpgradeVoteStatusResponse *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourcesResponse_GetContestedResourcesResponseV0 +#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 -@implementation GetContestedResourcesResponse_GetContestedResourcesResponseV0 +@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 @dynamic resultOneOfCase; -@dynamic contestedResourceValues; +@dynamic versions; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_ { +typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_ { uint32_t _has_storage_[2]; - GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues *contestedResourceValues; + GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals *versions; Proof *proof; ResponseMetadata *metadata; -} GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_; +} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7352,40 +7358,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceValues", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues), - .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_ContestedResourceValues, + .name = "versions", + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals), + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Versions, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, contestedResourceValues), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, versions), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_Proof, + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_Metadata, + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse_GetContestedResourcesResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -7393,7 +7399,2140 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_ClearResultOneOfCase(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 *message) { + GPBDescriptor *descriptor = [GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals + +@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals + +@dynamic versionSignalsArray, versionSignalsArray_Count; + +typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *versionSignalsArray; +} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__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 = "versionSignalsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal), + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals_FieldNumber_VersionSignalsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_, versionSignalsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignals__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal + +@implementation GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal + +@dynamic proTxHash; +@dynamic version; + +typedef struct GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_ { + uint32_t _has_storage_[1]; + uint32_t version; + NSData *proTxHash; +} GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__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 = "proTxHash", + .dataTypeSpecific.clazz = Nil, + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal_FieldNumber_ProTxHash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_, proTxHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "version", + .dataTypeSpecific.clazz = Nil, + .number = GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal_FieldNumber_Version, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_, version), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0_VersionSignal__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetProtocolVersionUpgradeVoteStatusResponse_GetProtocolVersionUpgradeVoteStatusResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetEpochsInfoRequest + +@implementation GetEpochsInfoRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetEpochsInfoRequest__storage_ { + uint32_t _has_storage_[2]; + GetEpochsInfoRequest_GetEpochsInfoRequestV0 *v0; +} GetEpochsInfoRequest__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(GetEpochsInfoRequest_GetEpochsInfoRequestV0), + .number = GetEpochsInfoRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEpochsInfoRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoRequest__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 GetEpochsInfoRequest_ClearVersionOneOfCase(GetEpochsInfoRequest *message) { + GPBDescriptor *descriptor = [GetEpochsInfoRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetEpochsInfoRequest_GetEpochsInfoRequestV0 + +@implementation GetEpochsInfoRequest_GetEpochsInfoRequestV0 + +@dynamic hasStartEpoch, startEpoch; +@dynamic count; +@dynamic ascending; +@dynamic prove; + +typedef struct GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_ { + uint32_t _has_storage_[1]; + uint32_t count; + GPBUInt32Value *startEpoch; +} GetEpochsInfoRequest_GetEpochsInfoRequestV0__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 = "startEpoch", + .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), + .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_StartEpoch, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_, startEpoch), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "count", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Count, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_, count), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "ascending", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Ascending, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoRequest_GetEpochsInfoRequestV0_FieldNumber_Prove, + .hasIndex = 4, + .offset = 5, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoRequest_GetEpochsInfoRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoRequest_GetEpochsInfoRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetEpochsInfoResponse + +@implementation GetEpochsInfoResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetEpochsInfoResponse__storage_ { + uint32_t _has_storage_[2]; + GetEpochsInfoResponse_GetEpochsInfoResponseV0 *v0; +} GetEpochsInfoResponse__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(GetEpochsInfoResponse_GetEpochsInfoResponseV0), + .number = GetEpochsInfoResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoResponse__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 GetEpochsInfoResponse_ClearVersionOneOfCase(GetEpochsInfoResponse *message) { + GPBDescriptor *descriptor = [GetEpochsInfoResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0 + +@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0 + +@dynamic resultOneOfCase; +@dynamic epochs; +@dynamic proof; +@dynamic hasMetadata, metadata; + +typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos *epochs; + Proof *proof; + ResponseMetadata *metadata; +} GetEpochsInfoResponse_GetEpochsInfoResponseV0__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 = "epochs", + .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos), + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Epochs, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, epochs), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetEpochsInfoResponse_GetEpochsInfoResponseV0_ClearResultOneOfCase(GetEpochsInfoResponse_GetEpochsInfoResponseV0 *message) { + GPBDescriptor *descriptor = [GetEpochsInfoResponse_GetEpochsInfoResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos + +@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos + +@dynamic epochInfosArray, epochInfosArray_Count; + +typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *epochInfosArray; +} GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__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 = "epochInfosArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo), + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos_FieldNumber_EpochInfosArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_, epochInfosArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfos__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo + +@implementation GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo + +@dynamic number; +@dynamic firstBlockHeight; +@dynamic firstCoreBlockHeight; +@dynamic startTime; +@dynamic feeMultiplier; +@dynamic protocolVersion; + +typedef struct GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_ { + uint32_t _has_storage_[1]; + uint32_t number; + uint32_t firstCoreBlockHeight; + uint32_t protocolVersion; + uint64_t firstBlockHeight; + uint64_t startTime; + double feeMultiplier; +} GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__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 = "number", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_Number, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, number), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "firstBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FirstBlockHeight, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, firstBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "firstCoreBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FirstCoreBlockHeight, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, firstCoreBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "startTime", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_StartTime, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, startTime), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "feeMultiplier", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_FeeMultiplier, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, feeMultiplier), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeDouble, + }, + { + .name = "protocolVersion", + .dataTypeSpecific.clazz = Nil, + .number = GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo_FieldNumber_ProtocolVersion, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_, protocolVersion), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetEpochsInfoResponse_GetEpochsInfoResponseV0_EpochInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetEpochsInfoResponse_GetEpochsInfoResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetContestedResourcesRequest + +@implementation GetContestedResourcesRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetContestedResourcesRequest__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourcesRequest_GetContestedResourcesRequestV0 *v0; +} GetContestedResourcesRequest__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(GetContestedResourcesRequest_GetContestedResourcesRequestV0), + .number = GetContestedResourcesRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesRequest__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 GetContestedResourcesRequest_ClearVersionOneOfCase(GetContestedResourcesRequest *message) { + GPBDescriptor *descriptor = [GetContestedResourcesRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourcesRequest_GetContestedResourcesRequestV0 + +@implementation GetContestedResourcesRequest_GetContestedResourcesRequestV0 + +@dynamic contractId; +@dynamic documentTypeName; +@dynamic indexName; +@dynamic startIndexValuesArray, startIndexValuesArray_Count; +@dynamic endIndexValuesArray, endIndexValuesArray_Count; +@dynamic hasStartAtValueInfo, startAtValueInfo; +@dynamic hasCount, count; +@dynamic orderAscending; +@dynamic prove; + +typedef struct GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_ { + uint32_t _has_storage_[1]; + uint32_t count; + NSData *contractId; + NSString *documentTypeName; + NSString *indexName; + NSMutableArray *startIndexValuesArray; + NSMutableArray *endIndexValuesArray; + GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo *startAtValueInfo; +} GetContestedResourcesRequest_GetContestedResourcesRequestV0__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 = "contractId", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_ContractId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "documentTypeName", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_DocumentTypeName, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, documentTypeName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "indexName", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_IndexName, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, indexName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "startIndexValuesArray", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_StartIndexValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, startIndexValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "endIndexValuesArray", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_EndIndexValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, endIndexValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "startAtValueInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo), + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_StartAtValueInfo, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, startAtValueInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "count", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_Count, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_, count), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "orderAscending", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_OrderAscending, + .hasIndex = 5, + .offset = 6, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_FieldNumber_Prove, + .hasIndex = 7, + .offset = 8, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest_GetContestedResourcesRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesRequest_GetContestedResourcesRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo + +@implementation GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo + +@dynamic startValue; +@dynamic startValueIncluded; + +typedef struct GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_ { + uint32_t _has_storage_[1]; + NSData *startValue; +} GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__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 = "startValue", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo_FieldNumber_StartValue, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_, startValue), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "startValueIncluded", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo_FieldNumber_StartValueIncluded, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesRequest_GetContestedResourcesRequestV0_StartAtValueInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesRequest_GetContestedResourcesRequestV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetContestedResourcesResponse + +@implementation GetContestedResourcesResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetContestedResourcesResponse__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourcesResponse_GetContestedResourcesResponseV0 *v0; +} GetContestedResourcesResponse__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(GetContestedResourcesResponse_GetContestedResourcesResponseV0), + .number = GetContestedResourcesResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourcesResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesResponse__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 GetContestedResourcesResponse_ClearVersionOneOfCase(GetContestedResourcesResponse *message) { + GPBDescriptor *descriptor = [GetContestedResourcesResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourcesResponse_GetContestedResourcesResponseV0 + +@implementation GetContestedResourcesResponse_GetContestedResourcesResponseV0 + +@dynamic resultOneOfCase; +@dynamic contestedResourceValues; +@dynamic proof; +@dynamic hasMetadata, metadata; + +typedef struct GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues *contestedResourceValues; + Proof *proof; + ResponseMetadata *metadata; +} GetContestedResourcesResponse_GetContestedResourcesResponseV0__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 = "contestedResourceValues", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues), + .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_ContestedResourceValues, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, contestedResourceValues), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse_GetContestedResourcesResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesResponse_GetContestedResourcesResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetContestedResourcesResponse_GetContestedResourcesResponseV0_ClearResultOneOfCase(GetContestedResourcesResponse_GetContestedResourcesResponseV0 *message) { + GPBDescriptor *descriptor = [GetContestedResourcesResponse_GetContestedResourcesResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues + +@implementation GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues + +@dynamic contestedResourceValuesArray, contestedResourceValuesArray_Count; + +typedef struct GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *contestedResourceValuesArray; +} GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__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 = "contestedResourceValuesArray", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues_FieldNumber_ContestedResourceValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_, contestedResourceValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesResponse_GetContestedResourcesResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetVotePollsByEndDateRequest + +@implementation GetVotePollsByEndDateRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetVotePollsByEndDateRequest__storage_ { + uint32_t _has_storage_[2]; + GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 *v0; +} GetVotePollsByEndDateRequest__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(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0), + .number = GetVotePollsByEndDateRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateRequest__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 GetVotePollsByEndDateRequest_ClearVersionOneOfCase(GetVotePollsByEndDateRequest *message) { + GPBDescriptor *descriptor = [GetVotePollsByEndDateRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 + +@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 + +@dynamic hasStartTimeInfo, startTimeInfo; +@dynamic hasEndTimeInfo, endTimeInfo; +@dynamic hasLimit, limit; +@dynamic hasOffset, offset; +@dynamic ascending; +@dynamic prove; + +typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_ { + uint32_t _has_storage_[1]; + uint32_t limit; + uint32_t offset; + GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo *startTimeInfo; + GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo *endTimeInfo; +} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__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 = "startTimeInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo), + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_StartTimeInfo, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, startTimeInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "endTimeInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo), + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_EndTimeInfo, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, endTimeInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "limit", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Limit, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, limit), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "offset", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Offset, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, offset), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "ascending", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Ascending, + .hasIndex = 4, + .offset = 5, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Prove, + .hasIndex = 6, + .offset = 7, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo + +@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo + +@dynamic startTimeMs; +@dynamic startTimeIncluded; + +typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_ { + uint32_t _has_storage_[1]; + uint64_t startTimeMs; +} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__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 = "startTimeMs", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo_FieldNumber_StartTimeMs, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_, startTimeMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "startTimeIncluded", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo_FieldNumber_StartTimeIncluded, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo + +@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo + +@dynamic endTimeMs; +@dynamic endTimeIncluded; + +typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_ { + uint32_t _has_storage_[1]; + uint64_t endTimeMs; +} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__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 = "endTimeMs", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo_FieldNumber_EndTimeMs, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_, endTimeMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "endTimeIncluded", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo_FieldNumber_EndTimeIncluded, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetVotePollsByEndDateResponse + +@implementation GetVotePollsByEndDateResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetVotePollsByEndDateResponse__storage_ { + uint32_t _has_storage_[2]; + GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 *v0; +} GetVotePollsByEndDateResponse__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(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0), + .number = GetVotePollsByEndDateResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateResponse__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 GetVotePollsByEndDateResponse_ClearVersionOneOfCase(GetVotePollsByEndDateResponse *message) { + GPBDescriptor *descriptor = [GetVotePollsByEndDateResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 + +@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 + +@dynamic resultOneOfCase; +@dynamic votePollsByTimestamps; +@dynamic proof; +@dynamic hasMetadata, metadata; + +typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps *votePollsByTimestamps; + Proof *proof; + ResponseMetadata *metadata; +} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__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 = "votePollsByTimestamps", + .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps), + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_VotePollsByTimestamps, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, votePollsByTimestamps), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_ClearResultOneOfCase(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 *message) { + GPBDescriptor *descriptor = [GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp + +@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp + +@dynamic timestamp; +@dynamic serializedVotePollsArray, serializedVotePollsArray_Count; + +typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *serializedVotePollsArray; + uint64_t timestamp; +} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__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 = "timestamp", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp_FieldNumber_Timestamp, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_, timestamp), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "serializedVotePollsArray", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp_FieldNumber_SerializedVotePollsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_, serializedVotePollsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps + +@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps + +@dynamic votePollsByTimestampsArray, votePollsByTimestampsArray_Count; +@dynamic finishedResults; + +typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *votePollsByTimestampsArray; +} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__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 = "votePollsByTimestampsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp), + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps_FieldNumber_VotePollsByTimestampsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_, votePollsByTimestampsArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + { + .name = "finishedResults", + .dataTypeSpecific.clazz = Nil, + .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps_FieldNumber_FinishedResults, + .hasIndex = 0, + .offset = 1, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetContestedResourceVoteStateRequest + +@implementation GetContestedResourceVoteStateRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetContestedResourceVoteStateRequest__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *v0; +} GetContestedResourceVoteStateRequest__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(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0), + .number = GetContestedResourceVoteStateRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateRequest__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 GetContestedResourceVoteStateRequest_ClearVersionOneOfCase(GetContestedResourceVoteStateRequest *message) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 + +@implementation GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 + +@dynamic contractId; +@dynamic documentTypeName; +@dynamic indexName; +@dynamic indexValuesArray, indexValuesArray_Count; +@dynamic resultType; +@dynamic allowIncludeLockedAndAbstainingVoteTally; +@dynamic hasStartAtIdentifierInfo, startAtIdentifierInfo; +@dynamic hasCount, count; +@dynamic prove; + +typedef struct GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_ { + uint32_t _has_storage_[1]; + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType resultType; + uint32_t count; + NSData *contractId; + NSString *documentTypeName; + NSString *indexName; + NSMutableArray *indexValuesArray; + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo *startAtIdentifierInfo; +} GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__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 = "contractId", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ContractId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "documentTypeName", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_DocumentTypeName, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, documentTypeName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "indexName", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_IndexName, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, indexName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "indexValuesArray", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_IndexValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, indexValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "resultType", + .dataTypeSpecific.enumDescFunc = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_EnumDescriptor, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, resultType), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeEnum, + }, + { + .name = "allowIncludeLockedAndAbstainingVoteTally", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_AllowIncludeLockedAndAbstainingVoteTally, + .hasIndex = 4, + .offset = 5, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + { + .name = "startAtIdentifierInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo), + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_StartAtIdentifierInfo, + .hasIndex = 6, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, startAtIdentifierInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "count", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_Count, + .hasIndex = 7, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, count), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_Prove, + .hasIndex = 8, + .offset = 9, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +int32_t GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_RawValue(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *message) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType]; + return GPBGetMessageRawEnumField(message, field); +} + +void SetGetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_RawValue(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *message, int32_t value) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType]; + GPBSetMessageRawEnumField(message, field, value); +} + +#pragma mark - Enum GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType + +GPBEnumDescriptor *GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_EnumDescriptor(void) { + static _Atomic(GPBEnumDescriptor*) descriptor = nil; + if (!descriptor) { + static const char *valueNames = + "Documents\000VoteTally\000DocumentsAndVoteTall" + "y\000"; + static const int32_t values[] = { + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_Documents, + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_VoteTally, + GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_DocumentsAndVoteTally, + }; + GPBEnumDescriptor *worker = + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType) + valueNames:valueNames + values:values + count:(uint32_t)(sizeof(values) / sizeof(int32_t)) + enumVerifier:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_IsValidValue]; + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { + [worker release]; + } + } + return descriptor; +} + +BOOL GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_IsValidValue(int32_t value__) { + switch (value__) { + case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_Documents: + case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_VoteTally: + case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_DocumentsAndVoteTally: + return YES; + default: + return NO; + } +} + +#pragma mark - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo + +@implementation GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo + +@dynamic startIdentifier; +@dynamic startIdentifierIncluded; + +typedef struct GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_ { + uint32_t _has_storage_[1]; + NSData *startIdentifier; +} GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__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 = "startIdentifier", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifier, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_, startIdentifier), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "startIdentifierIncluded", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifierIncluded, + .hasIndex = 1, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetContestedResourceVoteStateResponse + +@implementation GetContestedResourceVoteStateResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetContestedResourceVoteStateResponse__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 *v0; +} GetContestedResourceVoteStateResponse__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(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0), + .number = GetContestedResourceVoteStateResponse_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateResponse__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 GetContestedResourceVoteStateResponse_ClearVersionOneOfCase(GetContestedResourceVoteStateResponse *message) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 + +@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 + +@dynamic resultOneOfCase; +@dynamic contestedResourceContenders; +@dynamic proof; +@dynamic hasMetadata, metadata; + +typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders *contestedResourceContenders; + Proof *proof; + ResponseMetadata *metadata; +} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__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 = "contestedResourceContenders", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders), + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_ContestedResourceContenders, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, contestedResourceContenders), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ClearResultOneOfCase(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 *message) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo + +@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo + +@dynamic finishedVoteOutcome; +@dynamic hasWonByIdentityId, wonByIdentityId; +@dynamic finishedAtBlockHeight; +@dynamic finishedAtCoreBlockHeight; +@dynamic finishedAtBlockTimeMs; +@dynamic finishedAtEpoch; + +typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_ { + uint32_t _has_storage_[1]; + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome finishedVoteOutcome; + uint32_t finishedAtCoreBlockHeight; + uint32_t finishedAtEpoch; + NSData *wonByIdentityId; + uint64_t finishedAtBlockHeight; + uint64_t finishedAtBlockTimeMs; +} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__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 = "finishedVoteOutcome", + .dataTypeSpecific.enumDescFunc = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_EnumDescriptor, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedVoteOutcome), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeEnum, + }, + { + .name = "wonByIdentityId", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_WonByIdentityId, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, wonByIdentityId), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeBytes, + }, + { + .name = "finishedAtBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtBlockHeight, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "finishedAtCoreBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtCoreBlockHeight, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtCoreBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "finishedAtBlockTimeMs", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtBlockTimeMs, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtBlockTimeMs), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "finishedAtEpoch", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtEpoch, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtEpoch), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +int32_t GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_RawValue(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *message) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome]; + return GPBGetMessageRawEnumField(message, field); +} + +void SetGetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_RawValue(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *message, int32_t value) { + GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome]; + GPBSetMessageRawEnumField(message, field, value); +} + +#pragma mark - Enum GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome + +GPBEnumDescriptor *GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_EnumDescriptor(void) { + static _Atomic(GPBEnumDescriptor*) descriptor = nil; + if (!descriptor) { + static const char *valueNames = + "TowardsIdentity\000Locked\000NoPreviousWinner\000"; + static const int32_t values[] = { + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_TowardsIdentity, + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_Locked, + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_NoPreviousWinner, + }; + GPBEnumDescriptor *worker = + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome) + valueNames:valueNames + values:values + count:(uint32_t)(sizeof(values) / sizeof(int32_t)) + enumVerifier:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_IsValidValue]; + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { + [worker release]; + } + } + return descriptor; +} + +BOOL GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_IsValidValue(int32_t value__) { + switch (value__) { + case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_TowardsIdentity: + case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_Locked: + case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_NoPreviousWinner: + return YES; + default: + return NO; + } +} + +#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders + +@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders + +@dynamic contendersArray, contendersArray_Count; +@dynamic hasAbstainVoteTally, abstainVoteTally; +@dynamic hasLockVoteTally, lockVoteTally; +@dynamic hasFinishedVoteInfo, finishedVoteInfo; + +typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_ { + uint32_t _has_storage_[1]; + uint32_t abstainVoteTally; + uint32_t lockVoteTally; + NSMutableArray *contendersArray; + GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *finishedVoteInfo; +} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__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 = "contendersArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender), + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_ContendersArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, contendersArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + { + .name = "abstainVoteTally", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_AbstainVoteTally, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, abstainVoteTally), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "lockVoteTally", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_LockVoteTally, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, lockVoteTally), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "finishedVoteInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo), + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_FinishedVoteInfo, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, finishedVoteInfo), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7404,21 +9543,20 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourcesResponse_GetContestedResourcesResponseV0_ClearResultOneOfCase(GetContestedResourcesResponse_GetContestedResourcesResponseV0 *message) { - GPBDescriptor *descriptor = [GetContestedResourcesResponse_GetContestedResourcesResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues +#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender -@implementation GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues +@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender -@dynamic contestedResourceValuesArray, contestedResourceValuesArray_Count; +@dynamic identifier; +@dynamic hasVoteCount, voteCount; +@dynamic hasDocument, document; -typedef struct GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_ { +typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *contestedResourceValuesArray; -} GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_; + uint32_t voteCount; + NSData *identifier; + NSData *document; +} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7427,24 +9565,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceValuesArray", + .name = "identifier", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues_FieldNumber_ContestedResourceValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_, contestedResourceValuesArray), - .flags = GPBFieldRepeated, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_Identifier, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, identifier), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "voteCount", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_VoteCount, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, voteCount), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, + { + .name = "document", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_Document, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, document), + .flags = GPBFieldOptional, .dataType = GPBDataTypeBytes, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourcesResponse_GetContestedResourcesResponseV0_ContestedResourceValues__storage_) + storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourcesResponse_GetContestedResourcesResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7455,17 +9611,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetVotePollsByEndDateRequest +#pragma mark - GetContestedResourceVotersForIdentityRequest -@implementation GetVotePollsByEndDateRequest +@implementation GetContestedResourceVotersForIdentityRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetVotePollsByEndDateRequest__storage_ { +typedef struct GetContestedResourceVotersForIdentityRequest__storage_ { uint32_t _has_storage_[2]; - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 *v0; -} GetVotePollsByEndDateRequest__storage_; + GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 *v0; +} GetContestedResourceVotersForIdentityRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7475,21 +9631,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0), - .number = GetVotePollsByEndDateRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0), + .number = GetContestedResourceVotersForIdentityRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateRequest__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -7507,29 +9663,35 @@ + (GPBDescriptor *)descriptor { @end -void GetVotePollsByEndDateRequest_ClearVersionOneOfCase(GetVotePollsByEndDateRequest *message) { - GPBDescriptor *descriptor = [GetVotePollsByEndDateRequest descriptor]; +void GetContestedResourceVotersForIdentityRequest_ClearVersionOneOfCase(GetContestedResourceVotersForIdentityRequest *message) { + GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 +#pragma mark - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 -@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 +@implementation GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 -@dynamic hasStartTimeInfo, startTimeInfo; -@dynamic hasEndTimeInfo, endTimeInfo; -@dynamic hasLimit, limit; -@dynamic hasOffset, offset; -@dynamic ascending; +@dynamic contractId; +@dynamic documentTypeName; +@dynamic indexName; +@dynamic indexValuesArray, indexValuesArray_Count; +@dynamic contestantId; +@dynamic hasStartAtIdentifierInfo, startAtIdentifierInfo; +@dynamic hasCount, count; +@dynamic orderAscending; @dynamic prove; -typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_ { +typedef struct GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_ { uint32_t _has_storage_[1]; - uint32_t limit; - uint32_t offset; - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo *startTimeInfo; - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo *endTimeInfo; -} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_; + uint32_t count; + NSData *contractId; + NSString *documentTypeName; + NSString *indexName; + NSMutableArray *indexValuesArray; + NSData *contestantId; + GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo *startAtIdentifierInfo; +} GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7538,125 +9700,96 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startTimeInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo), - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_StartTimeInfo, + .name = "contractId", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_ContractId, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, startTimeInfo), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, }, { - .name = "endTimeInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo), - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_EndTimeInfo, + .name = "documentTypeName", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_DocumentTypeName, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, endTimeInfo), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, documentTypeName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, { - .name = "limit", + .name = "indexName", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Limit, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_IndexName, .hasIndex = 2, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, limit), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, indexName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, { - .name = "offset", + .name = "indexValuesArray", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Offset, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_IndexValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, indexValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "contestantId", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_ContestantId, .hasIndex = 3, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_, offset), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, contestantId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "startAtIdentifierInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo), + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_StartAtIdentifierInfo, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, startAtIdentifierInfo), .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, + .dataType = GPBDataTypeMessage, }, { - .name = "ascending", + .name = "count", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Ascending, - .hasIndex = 4, - .offset = 5, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_Count, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, count), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, }, { - .name = "prove", + .name = "orderAscending", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_FieldNumber_Prove, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_OrderAscending, .hasIndex = 6, .offset = 7, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0 class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0__storage_) - flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest)]; - #if defined(DEBUG) && DEBUG - NSAssert(descriptor == nil, @"Startup recursed!"); - #endif // DEBUG - descriptor = localDescriptor; - } - return descriptor; -} - -@end - -#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo - -@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo - -@dynamic startTimeMs; -@dynamic startTimeIncluded; - -typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_ { - uint32_t _has_storage_[1]; - uint64_t startTimeMs; -} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__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 = "startTimeMs", - .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo_FieldNumber_StartTimeMs, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_, startTimeMs), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, { - .name = "startTimeIncluded", + .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo_FieldNumber_StartTimeIncluded, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_Prove, + .hasIndex = 8, + .offset = 9, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_StartAtTimeInfo__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7667,17 +9800,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo +#pragma mark - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo -@implementation GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo +@implementation GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo -@dynamic endTimeMs; -@dynamic endTimeIncluded; +@dynamic startIdentifier; +@dynamic startIdentifierIncluded; -typedef struct GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_ { +typedef struct GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_ { uint32_t _has_storage_[1]; - uint64_t endTimeMs; -} GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_; + NSData *startIdentifier; +} GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7686,18 +9819,18 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "endTimeMs", + .name = "startIdentifier", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo_FieldNumber_EndTimeMs, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifier, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_, endTimeMs), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_, startIdentifier), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, + .dataType = GPBDataTypeBytes, }, { - .name = "endTimeIncluded", + .name = "startIdentifierIncluded", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo_FieldNumber_EndTimeIncluded, + .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifierIncluded, .hasIndex = 1, .offset = 2, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), @@ -7705,14 +9838,14 @@ + (GPBDescriptor *)descriptor { }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0_EndAtTimeInfo__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateRequest_GetVotePollsByEndDateRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7723,17 +9856,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetVotePollsByEndDateResponse +#pragma mark - GetContestedResourceVotersForIdentityResponse -@implementation GetVotePollsByEndDateResponse +@implementation GetContestedResourceVotersForIdentityResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetVotePollsByEndDateResponse__storage_ { +typedef struct GetContestedResourceVotersForIdentityResponse__storage_ { uint32_t _has_storage_[2]; - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 *v0; -} GetVotePollsByEndDateResponse__storage_; + GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 *v0; +} GetContestedResourceVotersForIdentityResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7743,21 +9876,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0), - .number = GetVotePollsByEndDateResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0), + .number = GetContestedResourceVotersForIdentityResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateResponse__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -7775,26 +9908,26 @@ + (GPBDescriptor *)descriptor { @end -void GetVotePollsByEndDateResponse_ClearVersionOneOfCase(GetVotePollsByEndDateResponse *message) { - GPBDescriptor *descriptor = [GetVotePollsByEndDateResponse descriptor]; +void GetContestedResourceVotersForIdentityResponse_ClearVersionOneOfCase(GetContestedResourceVotersForIdentityResponse *message) { + GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 +#pragma mark - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 -@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 +@implementation GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 @dynamic resultOneOfCase; -@dynamic votePollsByTimestamps; +@dynamic contestedResourceVoters; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_ { +typedef struct GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_ { uint32_t _has_storage_[2]; - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps *votePollsByTimestamps; + GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters *contestedResourceVoters; Proof *proof; ResponseMetadata *metadata; -} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_; +} GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7803,40 +9936,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "votePollsByTimestamps", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps), - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_VotePollsByTimestamps, + .name = "contestedResourceVoters", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters), + .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_ContestedResourceVoters, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, votePollsByTimestamps), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, contestedResourceVoters), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_Proof, + .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_FieldNumber_Metadata, + .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -7844,7 +9977,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7855,23 +9988,22 @@ + (GPBDescriptor *)descriptor { @end -void GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_ClearResultOneOfCase(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 *message) { - GPBDescriptor *descriptor = [GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0 descriptor]; +void GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ClearResultOneOfCase(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 *message) { + GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp +#pragma mark - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters -@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp +@implementation GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters -@dynamic timestamp; -@dynamic serializedVotePollsArray, serializedVotePollsArray_Count; +@dynamic votersArray, votersArray_Count; +@dynamic finishedResults; -typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_ { +typedef struct GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *serializedVotePollsArray; - uint64_t timestamp; -} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_; + NSMutableArray *votersArray; +} GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7880,74 +10012,18 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "timestamp", - .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp_FieldNumber_Timestamp, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_, timestamp), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "serializedVotePollsArray", + .name = "votersArray", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp_FieldNumber_SerializedVotePollsArray, + .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters_FieldNumber_VotersArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_, serializedVotePollsArray), + .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_, votersArray), .flags = GPBFieldRepeated, .dataType = GPBDataTypeBytes, }, - }; - GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp class] - rootClass:[PlatformRoot class] - file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp__storage_) - flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0)]; - #if defined(DEBUG) && DEBUG - NSAssert(descriptor == nil, @"Startup recursed!"); - #endif // DEBUG - descriptor = localDescriptor; - } - return descriptor; -} - -@end - -#pragma mark - GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps - -@implementation GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps - -@dynamic votePollsByTimestampsArray, votePollsByTimestampsArray_Count; -@dynamic finishedResults; - -typedef struct GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_ { - uint32_t _has_storage_[1]; - NSMutableArray *votePollsByTimestampsArray; -} GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__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 = "votePollsByTimestampsArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamp), - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps_FieldNumber_VotePollsByTimestampsArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_, votePollsByTimestampsArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, - }, { .name = "finishedResults", .dataTypeSpecific.clazz = Nil, - .number = GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps_FieldNumber_FinishedResults, + .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters_FieldNumber_FinishedResults, .hasIndex = 0, .offset = 1, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), @@ -7955,14 +10031,14 @@ + (GPBDescriptor *)descriptor { }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0_SerializedVotePollsByTimestamps__storage_) + storageSize:sizeof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetVotePollsByEndDateResponse_GetVotePollsByEndDateResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -7973,17 +10049,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVoteStateRequest +#pragma mark - GetContestedResourceIdentityVotesRequest -@implementation GetContestedResourceVoteStateRequest +@implementation GetContestedResourceIdentityVotesRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceVoteStateRequest__storage_ { +typedef struct GetContestedResourceIdentityVotesRequest__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *v0; -} GetContestedResourceVoteStateRequest__storage_; + GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 *v0; +} GetContestedResourceIdentityVotesRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -7993,21 +10069,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0), - .number = GetContestedResourceVoteStateRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0), + .number = GetContestedResourceIdentityVotesRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateRequest__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -8025,35 +10101,29 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVoteStateRequest_ClearVersionOneOfCase(GetContestedResourceVoteStateRequest *message) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest descriptor]; +void GetContestedResourceIdentityVotesRequest_ClearVersionOneOfCase(GetContestedResourceIdentityVotesRequest *message) { + GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 +#pragma mark - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 -@implementation GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 +@implementation GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 -@dynamic contractId; -@dynamic documentTypeName; -@dynamic indexName; -@dynamic indexValuesArray, indexValuesArray_Count; -@dynamic resultType; -@dynamic allowIncludeLockedAndAbstainingVoteTally; -@dynamic hasStartAtIdentifierInfo, startAtIdentifierInfo; -@dynamic hasCount, count; +@dynamic identityId; +@dynamic hasLimit, limit; +@dynamic hasOffset, offset; +@dynamic orderAscending; +@dynamic hasStartAtVotePollIdInfo, startAtVotePollIdInfo; @dynamic prove; -typedef struct GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_ { +typedef struct GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_ { uint32_t _has_storage_[1]; - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType resultType; - uint32_t count; - NSData *contractId; - NSString *documentTypeName; - NSString *indexName; - NSMutableArray *indexValuesArray; - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo *startAtIdentifierInfo; -} GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_; + NSData *identityId; + GPBUInt32Value *limit; + GPBUInt32Value *offset; + GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo *startAtVotePollIdInfo; +} GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8062,96 +10132,69 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", + .name = "identityId", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ContractId, + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_IdentityId, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, contractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "documentTypeName", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_DocumentTypeName, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, documentTypeName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "indexName", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_IndexName, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, indexName), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, identityId), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .dataType = GPBDataTypeBytes, }, { - .name = "indexValuesArray", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_IndexValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, indexValuesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, + .name = "limit", + .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Limit, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, limit), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "resultType", - .dataTypeSpecific.enumDescFunc = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_EnumDescriptor, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, resultType), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeEnum, + .name = "offset", + .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Offset, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, offset), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "allowIncludeLockedAndAbstainingVoteTally", + .name = "orderAscending", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_AllowIncludeLockedAndAbstainingVoteTally, - .hasIndex = 4, - .offset = 5, // Stored in _has_storage_ to save space. + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_OrderAscending, + .hasIndex = 3, + .offset = 4, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, { - .name = "startAtIdentifierInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo), - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_StartAtIdentifierInfo, - .hasIndex = 6, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, startAtIdentifierInfo), + .name = "startAtVotePollIdInfo", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo), + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_StartAtVotePollIdInfo, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, startAtVotePollIdInfo), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, - { - .name = "count", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_Count, - .hasIndex = 7, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_, count), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, - }, { .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_Prove, - .hasIndex = 8, - .offset = 9, // Stored in _has_storage_ to save space. + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Prove, + .hasIndex = 6, + .offset = 7, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8162,67 +10205,17 @@ + (GPBDescriptor *)descriptor { @end -int32_t GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_RawValue(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *message) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType]; - return GPBGetMessageRawEnumField(message, field); -} - -void SetGetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_RawValue(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 *message, int32_t value) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0 descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_FieldNumber_ResultType]; - GPBSetMessageRawEnumField(message, field, value); -} - -#pragma mark - Enum GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType - -GPBEnumDescriptor *GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_EnumDescriptor(void) { - static _Atomic(GPBEnumDescriptor*) descriptor = nil; - if (!descriptor) { - static const char *valueNames = - "Documents\000VoteTally\000DocumentsAndVoteTall" - "y\000"; - static const int32_t values[] = { - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_Documents, - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_VoteTally, - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_DocumentsAndVoteTally, - }; - GPBEnumDescriptor *worker = - [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType) - valueNames:valueNames - values:values - count:(uint32_t)(sizeof(values) / sizeof(int32_t)) - enumVerifier:GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_IsValidValue]; - GPBEnumDescriptor *expected = nil; - if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { - [worker release]; - } - } - return descriptor; -} - -BOOL GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_IsValidValue(int32_t value__) { - switch (value__) { - case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_Documents: - case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_VoteTally: - case GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_ResultType_DocumentsAndVoteTally: - return YES; - default: - return NO; - } -} - -#pragma mark - GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo +#pragma mark - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo -@implementation GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo +@implementation GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo -@dynamic startIdentifier; -@dynamic startIdentifierIncluded; +@dynamic startAtPollIdentifier; +@dynamic startPollIdentifierIncluded; -typedef struct GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_ { +typedef struct GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_ { uint32_t _has_storage_[1]; - NSData *startIdentifier; -} GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_; + NSData *startAtPollIdentifier; +} GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8231,18 +10224,18 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startIdentifier", + .name = "startAtPollIdentifier", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifier, + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo_FieldNumber_StartAtPollIdentifier, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_, startIdentifier), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_, startAtPollIdentifier), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, { - .name = "startIdentifierIncluded", + .name = "startPollIdentifierIncluded", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifierIncluded, + .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo_FieldNumber_StartPollIdentifierIncluded, .hasIndex = 1, .offset = 2, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), @@ -8250,14 +10243,14 @@ + (GPBDescriptor *)descriptor { }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0_StartAtIdentifierInfo__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateRequest_GetContestedResourceVoteStateRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8268,17 +10261,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVoteStateResponse +#pragma mark - GetContestedResourceIdentityVotesResponse -@implementation GetContestedResourceVoteStateResponse +@implementation GetContestedResourceIdentityVotesResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceVoteStateResponse__storage_ { +typedef struct GetContestedResourceIdentityVotesResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 *v0; -} GetContestedResourceVoteStateResponse__storage_; + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 *v0; +} GetContestedResourceIdentityVotesResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8288,21 +10281,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0), - .number = GetContestedResourceVoteStateResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0), + .number = GetContestedResourceIdentityVotesResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateResponse__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -8320,26 +10313,102 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVoteStateResponse_ClearVersionOneOfCase(GetContestedResourceVoteStateResponse *message) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse descriptor]; +void GetContestedResourceIdentityVotesResponse_ClearVersionOneOfCase(GetContestedResourceIdentityVotesResponse *message) { + GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 +#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 -@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 +@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 @dynamic resultOneOfCase; -@dynamic contestedResourceContenders; +@dynamic votes; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_ { +typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders *contestedResourceContenders; + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes *votes; Proof *proof; ResponseMetadata *metadata; -} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_; +} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__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 = "votes", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes), + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Votes, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, votes), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ClearResultOneOfCase(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 *message) { + GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes + +@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes + +@dynamic contestedResourceIdentityVotesArray, contestedResourceIdentityVotesArray_Count; +@dynamic finishedResults; + +typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_ { + uint32_t _has_storage_[1]; + NSMutableArray *contestedResourceIdentityVotesArray; +} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8348,48 +10417,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceContenders", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders), - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_ContestedResourceContenders, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, contestedResourceContenders), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, proof), - .flags = GPBFieldOptional, + .name = "contestedResourceIdentityVotesArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote), + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes_FieldNumber_ContestedResourceIdentityVotesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_, contestedResourceIdentityVotesArray), + .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FieldNumber_Metadata, + .name = "finishedResults", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes_FieldNumber_FinishedResults, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .offset = 1, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8400,31 +10454,18 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ClearResultOneOfCase(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 *message) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo +#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice -@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo +@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice -@dynamic finishedVoteOutcome; -@dynamic hasWonByIdentityId, wonByIdentityId; -@dynamic finishedAtBlockHeight; -@dynamic finishedAtCoreBlockHeight; -@dynamic finishedAtBlockTimeMs; -@dynamic finishedAtEpoch; +@dynamic voteChoiceType; +@dynamic hasIdentityId, identityId; -typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_ { +typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_ { uint32_t _has_storage_[1]; - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome finishedVoteOutcome; - uint32_t finishedAtCoreBlockHeight; - uint32_t finishedAtEpoch; - NSData *wonByIdentityId; - uint64_t finishedAtBlockHeight; - uint64_t finishedAtBlockTimeMs; -} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_; + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType voteChoiceType; + NSData *identityId; +} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8433,69 +10474,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "finishedVoteOutcome", - .dataTypeSpecific.enumDescFunc = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_EnumDescriptor, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome, + .name = "voteChoiceType", + .dataTypeSpecific.enumDescFunc = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_EnumDescriptor, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedVoteOutcome), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_, voteChoiceType), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeEnum, }, { - .name = "wonByIdentityId", + .name = "identityId", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_WonByIdentityId, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_IdentityId, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, wonByIdentityId), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_, identityId), .flags = GPBFieldOptional, .dataType = GPBDataTypeBytes, }, - { - .name = "finishedAtBlockHeight", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtBlockHeight, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtBlockHeight), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "finishedAtCoreBlockHeight", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtCoreBlockHeight, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtCoreBlockHeight), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, - }, - { - .name = "finishedAtBlockTimeMs", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtBlockTimeMs, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtBlockTimeMs), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt64, - }, - { - .name = "finishedAtEpoch", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedAtEpoch, - .hasIndex = 5, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_, finishedAtEpoch), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeUInt32, - }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo class] + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo__storage_) + storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8506,36 +10511,36 @@ + (GPBDescriptor *)descriptor { @end -int32_t GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_RawValue(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *message) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome]; +int32_t GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_RawValue(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *message) { + GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType]; return GPBGetMessageRawEnumField(message, field); } -void SetGetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_RawValue(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *message, int32_t value) { - GPBDescriptor *descriptor = [GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FieldNumber_FinishedVoteOutcome]; +void SetGetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_RawValue(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *message, int32_t value) { + GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice descriptor]; + GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType]; GPBSetMessageRawEnumField(message, field, value); } -#pragma mark - Enum GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome +#pragma mark - Enum GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType -GPBEnumDescriptor *GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_EnumDescriptor(void) { +GPBEnumDescriptor *GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_EnumDescriptor(void) { static _Atomic(GPBEnumDescriptor*) descriptor = nil; if (!descriptor) { static const char *valueNames = - "TowardsIdentity\000Locked\000NoPreviousWinner\000"; + "TowardsIdentity\000Abstain\000Lock\000"; static const int32_t values[] = { - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_TowardsIdentity, - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_Locked, - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_NoPreviousWinner, + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_TowardsIdentity, + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Abstain, + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Lock, }; GPBEnumDescriptor *worker = - [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome) + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType) valueNames:valueNames values:values count:(uint32_t)(sizeof(values) / sizeof(int32_t)) - enumVerifier:GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_IsValidValue]; + enumVerifier:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_IsValidValue]; GPBEnumDescriptor *expected = nil; if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { [worker release]; @@ -8544,33 +10549,33 @@ void SetGetContestedResourceVoteStateResponse_GetContestedResourceVoteStateRespo return descriptor; } -BOOL GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_IsValidValue(int32_t value__) { +BOOL GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_IsValidValue(int32_t value__) { switch (value__) { - case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_TowardsIdentity: - case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_Locked: - case GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo_FinishedVoteOutcome_NoPreviousWinner: + case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_TowardsIdentity: + case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Abstain: + case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Lock: return YES; default: return NO; } } -#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders +#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote -@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders +@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote -@dynamic contendersArray, contendersArray_Count; -@dynamic hasAbstainVoteTally, abstainVoteTally; -@dynamic hasLockVoteTally, lockVoteTally; -@dynamic hasFinishedVoteInfo, finishedVoteInfo; +@dynamic contractId; +@dynamic documentTypeName; +@dynamic serializedIndexStorageValuesArray, serializedIndexStorageValuesArray_Count; +@dynamic hasVoteChoice, voteChoice; -typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_ { +typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_ { uint32_t _has_storage_[1]; - uint32_t abstainVoteTally; - uint32_t lockVoteTally; - NSMutableArray *contendersArray; - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo *finishedVoteInfo; -} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_; + NSData *contractId; + NSString *documentTypeName; + NSMutableArray *serializedIndexStorageValuesArray; + GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *voteChoice; +} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8579,51 +10584,103 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contendersArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender), - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_ContendersArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, contendersArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeMessage, - }, - { - .name = "abstainVoteTally", + .name = "contractId", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_AbstainVoteTally, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_ContractId, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, abstainVoteTally), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, contractId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, }, { - .name = "lockVoteTally", + .name = "documentTypeName", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_LockVoteTally, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_DocumentTypeName, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, lockVoteTally), + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, documentTypeName), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "serializedIndexStorageValuesArray", + .dataTypeSpecific.clazz = Nil, + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_SerializedIndexStorageValuesArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, serializedIndexStorageValuesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "voteChoice", + .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice), + .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_VoteChoice, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, voteChoice), .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, + .dataType = GPBDataTypeMessage, }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetPrefundedSpecializedBalanceRequest + +@implementation GetPrefundedSpecializedBalanceRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetPrefundedSpecializedBalanceRequest__storage_ { + uint32_t _has_storage_[2]; + GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 *v0; +} GetPrefundedSpecializedBalanceRequest__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 = "finishedVoteInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_FinishedVoteInfo), - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders_FieldNumber_FinishedVoteInfo, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_, finishedVoteInfo), + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0), + .number = GetPrefundedSpecializedBalanceRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders class] + [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_ContestedResourceContenders__storage_) + storageSize:sizeof(GetPrefundedSpecializedBalanceRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; + 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 @@ -8634,20 +10691,22 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender +void GetPrefundedSpecializedBalanceRequest_ClearVersionOneOfCase(GetPrefundedSpecializedBalanceRequest *message) { + GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 -@implementation GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender +@implementation GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 -@dynamic identifier; -@dynamic hasVoteCount, voteCount; -@dynamic hasDocument, document; +@dynamic id_p; +@dynamic prove; -typedef struct GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_ { +typedef struct GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_ { uint32_t _has_storage_[1]; - uint32_t voteCount; - NSData *identifier; - NSData *document; -} GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_; + NSData *id_p; +} GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8656,42 +10715,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "identifier", + .name = "id_p", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_Identifier, + .number = GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0_FieldNumber_Id_p, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, identifier), + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_, id_p), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, { - .name = "voteCount", + .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_VoteCount, + .number = GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0_FieldNumber_Prove, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, voteCount), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, - }, - { - .name = "document", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender_FieldNumber_Document, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_, document), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeBytes, + .offset = 2, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender class] + [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0_Contender__storage_) + storageSize:sizeof(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVoteStateResponse_GetContestedResourceVoteStateResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPrefundedSpecializedBalanceRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8702,17 +10752,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVotersForIdentityRequest +#pragma mark - GetPrefundedSpecializedBalanceResponse -@implementation GetContestedResourceVotersForIdentityRequest +@implementation GetPrefundedSpecializedBalanceResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceVotersForIdentityRequest__storage_ { +typedef struct GetPrefundedSpecializedBalanceResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 *v0; -} GetContestedResourceVotersForIdentityRequest__storage_; + GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 *v0; +} GetPrefundedSpecializedBalanceResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8722,21 +10772,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0), - .number = GetContestedResourceVotersForIdentityRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0), + .number = GetPrefundedSpecializedBalanceResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest class] + [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityRequest__storage_) + storageSize:sizeof(GetPrefundedSpecializedBalanceResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -8754,35 +10804,26 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVotersForIdentityRequest_ClearVersionOneOfCase(GetContestedResourceVotersForIdentityRequest *message) { - GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityRequest descriptor]; +void GetPrefundedSpecializedBalanceResponse_ClearVersionOneOfCase(GetPrefundedSpecializedBalanceResponse *message) { + GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 +#pragma mark - GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 -@implementation GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 +@implementation GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 -@dynamic contractId; -@dynamic documentTypeName; -@dynamic indexName; -@dynamic indexValuesArray, indexValuesArray_Count; -@dynamic contestantId; -@dynamic hasStartAtIdentifierInfo, startAtIdentifierInfo; -@dynamic hasCount, count; -@dynamic orderAscending; -@dynamic prove; +@dynamic resultOneOfCase; +@dynamic balance; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_ { - uint32_t _has_storage_[1]; - uint32_t count; - NSData *contractId; - NSString *documentTypeName; - NSString *indexName; - NSMutableArray *indexValuesArray; - NSData *contestantId; - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo *startAtIdentifierInfo; -} GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_; +typedef struct GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_ { + uint32_t _has_storage_[2]; + Proof *proof; + ResponseMetadata *metadata; + uint64_t balance; +} GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8791,96 +10832,105 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_ContractId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, contractId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "documentTypeName", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_DocumentTypeName, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, documentTypeName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, - }, - { - .name = "indexName", + .name = "balance", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_IndexName, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, indexName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeString, + .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Balance, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, balance), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt64, }, { - .name = "indexValuesArray", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_IndexValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, indexValuesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, proof), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "contestantId", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_ContestantId, - .hasIndex = 3, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, contestantId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPrefundedSpecializedBalanceResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +void GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_ClearResultOneOfCase(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 *message) { + GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetTotalCreditsInPlatformRequest + +@implementation GetTotalCreditsInPlatformRequest + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetTotalCreditsInPlatformRequest__storage_ { + uint32_t _has_storage_[2]; + GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 *v0; +} GetTotalCreditsInPlatformRequest__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 = "startAtIdentifierInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo), - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_StartAtIdentifierInfo, - .hasIndex = 4, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, startAtIdentifierInfo), + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0), + .number = GetTotalCreditsInPlatformRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, - { - .name = "count", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_Count, - .hasIndex = 5, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_, count), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeUInt32, - }, - { - .name = "orderAscending", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_OrderAscending, - .hasIndex = 6, - .offset = 7, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_FieldNumber_Prove, - .hasIndex = 8, - .offset = 9, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0__storage_) + storageSize:sizeof(GetTotalCreditsInPlatformRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityRequest)]; + 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 @@ -8891,17 +10941,20 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo +void GetTotalCreditsInPlatformRequest_ClearVersionOneOfCase(GetTotalCreditsInPlatformRequest *message) { + GPBDescriptor *descriptor = [GetTotalCreditsInPlatformRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 -@implementation GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo +@implementation GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 -@dynamic startIdentifier; -@dynamic startIdentifierIncluded; +@dynamic prove; -typedef struct GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_ { +typedef struct GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_ { uint32_t _has_storage_[1]; - NSData *startIdentifier; -} GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_; +} GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8910,33 +10963,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startIdentifier", + .name = "prove", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifier, + .number = GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0_FieldNumber_Prove, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_, startIdentifier), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "startIdentifierIncluded", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo_FieldNumber_StartIdentifierIncluded, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. + .offset = 1, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo class] + [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0_StartAtIdentifierInfo__storage_) + storageSize:sizeof(GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityRequest_GetContestedResourceVotersForIdentityRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetTotalCreditsInPlatformRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -8947,17 +10991,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceVotersForIdentityResponse +#pragma mark - GetTotalCreditsInPlatformResponse -@implementation GetContestedResourceVotersForIdentityResponse +@implementation GetTotalCreditsInPlatformResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceVotersForIdentityResponse__storage_ { +typedef struct GetTotalCreditsInPlatformResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 *v0; -} GetContestedResourceVotersForIdentityResponse__storage_; + GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 *v0; +} GetTotalCreditsInPlatformResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -8967,21 +11011,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0), - .number = GetContestedResourceVotersForIdentityResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0), + .number = GetTotalCreditsInPlatformResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse class] + [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityResponse__storage_) + storageSize:sizeof(GetTotalCreditsInPlatformResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -8999,26 +11043,26 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVotersForIdentityResponse_ClearVersionOneOfCase(GetContestedResourceVotersForIdentityResponse *message) { - GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityResponse descriptor]; +void GetTotalCreditsInPlatformResponse_ClearVersionOneOfCase(GetTotalCreditsInPlatformResponse *message) { + GPBDescriptor *descriptor = [GetTotalCreditsInPlatformResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 +#pragma mark - GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 -@implementation GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 +@implementation GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 @dynamic resultOneOfCase; -@dynamic contestedResourceVoters; +@dynamic credits; @dynamic proof; @dynamic hasMetadata, metadata; -typedef struct GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_ { +typedef struct GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters *contestedResourceVoters; Proof *proof; ResponseMetadata *metadata; -} GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_; + uint64_t credits; +} GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9027,40 +11071,40 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceVoters", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters), - .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_ContestedResourceVoters, + .name = "credits", + .dataTypeSpecific.clazz = Nil, + .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Credits, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, contestedResourceVoters), + .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, credits), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeUInt64, }, { .name = "proof", .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_Proof, + .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Proof, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, proof), + .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { .name = "metadata", .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_FieldNumber_Metadata, + .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Metadata, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0__storage_) + storageSize:sizeof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "result", @@ -9068,7 +11112,7 @@ + (GPBDescriptor *)descriptor { [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetTotalCreditsInPlatformResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9079,22 +11123,81 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ClearResultOneOfCase(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 *message) { - GPBDescriptor *descriptor = [GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0 descriptor]; +void GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_ClearResultOneOfCase(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 *message) { + GPBDescriptor *descriptor = [GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters +#pragma mark - GetPathElementsRequest -@implementation GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters +@implementation GetPathElementsRequest -@dynamic votersArray, votersArray_Count; -@dynamic finishedResults; +@dynamic versionOneOfCase; +@dynamic v0; -typedef struct GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_ { +typedef struct GetPathElementsRequest__storage_ { + uint32_t _has_storage_[2]; + GetPathElementsRequest_GetPathElementsRequestV0 *v0; +} GetPathElementsRequest__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(GetPathElementsRequest_GetPathElementsRequestV0), + .number = GetPathElementsRequest_FieldNumber_V0, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPathElementsRequest__storage_, v0), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetPathElementsRequest class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetPathElementsRequest__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 GetPathElementsRequest_ClearVersionOneOfCase(GetPathElementsRequest *message) { + GPBDescriptor *descriptor = [GetPathElementsRequest descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetPathElementsRequest_GetPathElementsRequestV0 + +@implementation GetPathElementsRequest_GetPathElementsRequestV0 + +@dynamic pathArray, pathArray_Count; +@dynamic keysArray, keysArray_Count; +@dynamic prove; + +typedef struct GetPathElementsRequest_GetPathElementsRequestV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *votersArray; -} GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_; + NSMutableArray *pathArray; + NSMutableArray *keysArray; +} GetPathElementsRequest_GetPathElementsRequestV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9103,18 +11206,27 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "votersArray", + .name = "pathArray", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters_FieldNumber_VotersArray, + .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_PathArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_, votersArray), + .offset = (uint32_t)offsetof(GetPathElementsRequest_GetPathElementsRequestV0__storage_, pathArray), .flags = GPBFieldRepeated, .dataType = GPBDataTypeBytes, }, { - .name = "finishedResults", + .name = "keysArray", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters_FieldNumber_FinishedResults, + .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_KeysArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetPathElementsRequest_GetPathElementsRequestV0__storage_, keysArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "prove", + .dataTypeSpecific.clazz = Nil, + .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_Prove, .hasIndex = 0, .offset = 1, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), @@ -9122,14 +11234,14 @@ + (GPBDescriptor *)descriptor { }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters class] + [GPBDescriptor allocDescriptorForClass:[GetPathElementsRequest_GetPathElementsRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0_ContestedResourceVoters__storage_) + storageSize:sizeof(GetPathElementsRequest_GetPathElementsRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceVotersForIdentityResponse_GetContestedResourceVotersForIdentityResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9140,17 +11252,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceIdentityVotesRequest +#pragma mark - GetPathElementsResponse -@implementation GetContestedResourceIdentityVotesRequest +@implementation GetPathElementsResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceIdentityVotesRequest__storage_ { +typedef struct GetPathElementsResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 *v0; -} GetContestedResourceIdentityVotesRequest__storage_; + GetPathElementsResponse_GetPathElementsResponseV0 *v0; +} GetPathElementsResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9160,21 +11272,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0), - .number = GetContestedResourceIdentityVotesRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0), + .number = GetPathElementsResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetPathElementsResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest class] + [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesRequest__storage_) + storageSize:sizeof(GetPathElementsResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -9192,29 +11304,26 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceIdentityVotesRequest_ClearVersionOneOfCase(GetContestedResourceIdentityVotesRequest *message) { - GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesRequest descriptor]; +void GetPathElementsResponse_ClearVersionOneOfCase(GetPathElementsResponse *message) { + GPBDescriptor *descriptor = [GetPathElementsResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 +#pragma mark - GetPathElementsResponse_GetPathElementsResponseV0 -@implementation GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 +@implementation GetPathElementsResponse_GetPathElementsResponseV0 -@dynamic identityId; -@dynamic hasLimit, limit; -@dynamic hasOffset, offset; -@dynamic orderAscending; -@dynamic hasStartAtVotePollIdInfo, startAtVotePollIdInfo; -@dynamic prove; +@dynamic resultOneOfCase; +@dynamic elements; +@dynamic proof; +@dynamic hasMetadata, metadata; -typedef struct GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_ { - uint32_t _has_storage_[1]; - NSData *identityId; - GPBUInt32Value *limit; - GPBUInt32Value *offset; - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo *startAtVotePollIdInfo; -} GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_; +typedef struct GetPathElementsResponse_GetPathElementsResponseV0__storage_ { + uint32_t _has_storage_[2]; + GetPathElementsResponse_GetPathElementsResponseV0_Elements *elements; + Proof *proof; + ResponseMetadata *metadata; +} GetPathElementsResponse_GetPathElementsResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9223,69 +11332,48 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "identityId", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_IdentityId, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, identityId), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, - }, - { - .name = "limit", - .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Limit, - .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, limit), + .name = "elements", + .dataTypeSpecific.clazz = GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0_Elements), + .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Elements, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, elements), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { - .name = "offset", - .dataTypeSpecific.clazz = GPBObjCClass(GPBUInt32Value), - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Offset, - .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, offset), + .name = "proof", + .dataTypeSpecific.clazz = GPBObjCClass(Proof), + .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Proof, + .hasIndex = -1, + .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, proof), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { - .name = "orderAscending", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_OrderAscending, - .hasIndex = 3, - .offset = 4, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - { - .name = "startAtVotePollIdInfo", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo), - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_StartAtVotePollIdInfo, - .hasIndex = 5, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_, startAtVotePollIdInfo), + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Metadata, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, metadata), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_FieldNumber_Prove, - .hasIndex = 6, - .offset = 7, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse_GetPathElementsResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0__storage_) + storageSize:sizeof(GetPathElementsResponse_GetPathElementsResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesRequest)]; + static const char *oneofs[] = { + "result", + }; + [localDescriptor setupOneofs:oneofs + count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) + firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9296,17 +11384,21 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo +void GetPathElementsResponse_GetPathElementsResponseV0_ClearResultOneOfCase(GetPathElementsResponse_GetPathElementsResponseV0 *message) { + GPBDescriptor *descriptor = [GetPathElementsResponse_GetPathElementsResponseV0 descriptor]; + GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; + GPBClearOneof(message, oneof); +} +#pragma mark - GetPathElementsResponse_GetPathElementsResponseV0_Elements -@implementation GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo +@implementation GetPathElementsResponse_GetPathElementsResponseV0_Elements -@dynamic startAtPollIdentifier; -@dynamic startPollIdentifierIncluded; +@dynamic elementsArray, elementsArray_Count; -typedef struct GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_ { +typedef struct GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_ { uint32_t _has_storage_[1]; - NSData *startAtPollIdentifier; -} GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_; + NSMutableArray *elementsArray; +} GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9315,33 +11407,24 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "startAtPollIdentifier", + .name = "elementsArray", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo_FieldNumber_StartAtPollIdentifier, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_, startAtPollIdentifier), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .number = GetPathElementsResponse_GetPathElementsResponseV0_Elements_FieldNumber_ElementsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_, elementsArray), + .flags = GPBFieldRepeated, .dataType = GPBDataTypeBytes, }, - { - .name = "startPollIdentifierIncluded", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo_FieldNumber_StartPollIdentifierIncluded, - .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo class] + [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse_GetPathElementsResponseV0_Elements class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0_StartAtVotePollIdInfo__storage_) + storageSize:sizeof(GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesRequest_GetContestedResourceIdentityVotesRequestV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9352,17 +11435,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceIdentityVotesResponse +#pragma mark - GetStatusRequest -@implementation GetContestedResourceIdentityVotesResponse +@implementation GetStatusRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetContestedResourceIdentityVotesResponse__storage_ { +typedef struct GetStatusRequest__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 *v0; -} GetContestedResourceIdentityVotesResponse__storage_; + GetStatusRequest_GetStatusRequestV0 *v0; +} GetStatusRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9372,21 +11455,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0), - .number = GetContestedResourceIdentityVotesResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusRequest_GetStatusRequestV0), + .number = GetStatusRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetStatusRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse class] + [GPBDescriptor allocDescriptorForClass:[GetStatusRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesResponse__storage_) + storageSize:sizeof(GetStatusRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -9404,26 +11487,55 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceIdentityVotesResponse_ClearVersionOneOfCase(GetContestedResourceIdentityVotesResponse *message) { - GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse descriptor]; +void GetStatusRequest_ClearVersionOneOfCase(GetStatusRequest *message) { + GPBDescriptor *descriptor = [GetStatusRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 +#pragma mark - GetStatusRequest_GetStatusRequestV0 -@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 +@implementation GetStatusRequest_GetStatusRequestV0 -@dynamic resultOneOfCase; -@dynamic votes; -@dynamic proof; -@dynamic hasMetadata, metadata; -typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_ { +typedef struct GetStatusRequest_GetStatusRequestV0__storage_ { + uint32_t _has_storage_[1]; +} GetStatusRequest_GetStatusRequestV0__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:[GetStatusRequest_GetStatusRequestV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:NULL + fieldCount:0 + storageSize:sizeof(GetStatusRequest_GetStatusRequestV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusRequest)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetStatusResponse + +@implementation GetStatusResponse + +@dynamic versionOneOfCase; +@dynamic v0; + +typedef struct GetStatusResponse__storage_ { uint32_t _has_storage_[2]; - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes *votes; - Proof *proof; - ResponseMetadata *metadata; -} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_; + GetStatusResponse_GetStatusResponseV0 *v0; +} GetStatusResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9432,48 +11544,29 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "votes", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes), - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Votes, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, votes), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Proof, + .name = "v0", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0), + .number = GetStatusResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_, metadata), + .offset = (uint32_t)offsetof(GetStatusResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0__storage_) + storageSize:sizeof(GetStatusResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { - "result", + "version", }; [localDescriptor setupOneofs:oneofs count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9484,22 +11577,31 @@ + (GPBDescriptor *)descriptor { @end -void GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ClearResultOneOfCase(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 *message) { - GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0 descriptor]; +void GetStatusResponse_ClearVersionOneOfCase(GetStatusResponse *message) { + GPBDescriptor *descriptor = [GetStatusResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes +#pragma mark - GetStatusResponse_GetStatusResponseV0 -@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes +@implementation GetStatusResponse_GetStatusResponseV0 -@dynamic contestedResourceIdentityVotesArray, contestedResourceIdentityVotesArray_Count; -@dynamic finishedResults; +@dynamic hasVersion, version; +@dynamic hasNode, node; +@dynamic hasChain, chain; +@dynamic hasNetwork, network; +@dynamic hasStateSync, stateSync; +@dynamic hasTime, time; -typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_ { +typedef struct GetStatusResponse_GetStatusResponseV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *contestedResourceIdentityVotesArray; -} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_; + GetStatusResponse_GetStatusResponseV0_Version *version; + GetStatusResponse_GetStatusResponseV0_Node *node; + GetStatusResponse_GetStatusResponseV0_Chain *chain; + GetStatusResponse_GetStatusResponseV0_Network *network; + GetStatusResponse_GetStatusResponseV0_StateSync *stateSync; + GetStatusResponse_GetStatusResponseV0_Time *time; +} GetStatusResponse_GetStatusResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9508,33 +11610,69 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contestedResourceIdentityVotesArray", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote), - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes_FieldNumber_ContestedResourceIdentityVotesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_, contestedResourceIdentityVotesArray), - .flags = GPBFieldRepeated, + .name = "version", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_Version, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, version), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "node", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Node), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_Node, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, node), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "chain", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Chain), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_Chain, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, chain), + .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, { - .name = "finishedResults", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes_FieldNumber_FinishedResults, - .hasIndex = 0, - .offset = 1, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .name = "network", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Network), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_Network, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, network), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "stateSync", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_StateSync), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_StateSync, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, stateSync), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "time", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Time), + .number = GetStatusResponse_GetStatusResponseV0_FieldNumber_Time, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0__storage_, time), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVotes__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9545,18 +11683,18 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version -@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice +@implementation GetStatusResponse_GetStatusResponseV0_Version -@dynamic voteChoiceType; -@dynamic hasIdentityId, identityId; +@dynamic hasSoftware, software; +@dynamic hasProtocol, protocol; -typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_ { +typedef struct GetStatusResponse_GetStatusResponseV0_Version__storage_ { uint32_t _has_storage_[1]; - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType voteChoiceType; - NSData *identityId; -} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_; + GetStatusResponse_GetStatusResponseV0_Version_Software *software; + GetStatusResponse_GetStatusResponseV0_Version_Protocol *protocol; +} GetStatusResponse_GetStatusResponseV0_Version__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9565,33 +11703,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "voteChoiceType", - .dataTypeSpecific.enumDescFunc = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_EnumDescriptor, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType, + .name = "software", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Software), + .number = GetStatusResponse_GetStatusResponseV0_Version_FieldNumber_Software, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_, voteChoiceType), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeEnum, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version__storage_, software), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, }, { - .name = "identityId", - .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_IdentityId, + .name = "protocol", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Protocol), + .number = GetStatusResponse_GetStatusResponseV0_Version_FieldNumber_Protocol, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_, identityId), + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version__storage_, protocol), .flags = GPBFieldOptional, - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Version class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Version__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9602,71 +11740,20 @@ + (GPBDescriptor *)descriptor { @end -int32_t GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_RawValue(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *message) { - GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType]; - return GPBGetMessageRawEnumField(message, field); -} - -void SetGetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_RawValue(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *message, int32_t value) { - GPBDescriptor *descriptor = [GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice descriptor]; - GPBFieldDescriptor *field = [descriptor fieldWithNumber:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_FieldNumber_VoteChoiceType]; - GPBSetMessageRawEnumField(message, field, value); -} - -#pragma mark - Enum GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType - -GPBEnumDescriptor *GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_EnumDescriptor(void) { - static _Atomic(GPBEnumDescriptor*) descriptor = nil; - if (!descriptor) { - static const char *valueNames = - "TowardsIdentity\000Abstain\000Lock\000"; - static const int32_t values[] = { - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_TowardsIdentity, - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Abstain, - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Lock, - }; - GPBEnumDescriptor *worker = - [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType) - valueNames:valueNames - values:values - count:(uint32_t)(sizeof(values) / sizeof(int32_t)) - enumVerifier:GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_IsValidValue]; - GPBEnumDescriptor *expected = nil; - if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { - [worker release]; - } - } - return descriptor; -} - -BOOL GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_IsValidValue(int32_t value__) { - switch (value__) { - case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_TowardsIdentity: - case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Abstain: - case GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice_VoteChoiceType_Lock: - return YES; - default: - return NO; - } -} - -#pragma mark - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Software -@implementation GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote +@implementation GetStatusResponse_GetStatusResponseV0_Version_Software -@dynamic contractId; -@dynamic documentTypeName; -@dynamic serializedIndexStorageValuesArray, serializedIndexStorageValuesArray_Count; -@dynamic hasVoteChoice, voteChoice; +@dynamic dapi; +@dynamic hasDrive, drive; +@dynamic hasTenderdash, tenderdash; -typedef struct GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_ { +typedef struct GetStatusResponse_GetStatusResponseV0_Version_Software__storage_ { uint32_t _has_storage_[1]; - NSData *contractId; - NSString *documentTypeName; - NSMutableArray *serializedIndexStorageValuesArray; - GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice *voteChoice; -} GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_; + NSString *dapi; + NSString *drive; + NSString *tenderdash; +} GetStatusResponse_GetStatusResponseV0_Version_Software__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9675,51 +11762,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "contractId", + .name = "dapi", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_ContractId, + .number = GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Dapi, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, contractId), + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Software__storage_, dapi), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .dataType = GPBDataTypeString, }, { - .name = "documentTypeName", + .name = "drive", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_DocumentTypeName, + .number = GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Drive, .hasIndex = 1, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, documentTypeName), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Software__storage_, drive), + .flags = GPBFieldOptional, .dataType = GPBDataTypeString, }, { - .name = "serializedIndexStorageValuesArray", + .name = "tenderdash", .dataTypeSpecific.clazz = Nil, - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_SerializedIndexStorageValuesArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, serializedIndexStorageValuesArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "voteChoice", - .dataTypeSpecific.clazz = GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ResourceVoteChoice), - .number = GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote_FieldNumber_VoteChoice, + .number = GetStatusResponse_GetStatusResponseV0_Version_Software_FieldNumber_Tenderdash, .hasIndex = 2, - .offset = (uint32_t)offsetof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_, voteChoice), + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Software__storage_, tenderdash), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeString, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Version_Software class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0_ContestedResourceIdentityVote__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Version_Software__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetContestedResourceIdentityVotesResponse_GetContestedResourceIdentityVotesResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9730,17 +11808,18 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetPrefundedSpecializedBalanceRequest +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol -@implementation GetPrefundedSpecializedBalanceRequest +@implementation GetStatusResponse_GetStatusResponseV0_Version_Protocol -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic hasTenderdash, tenderdash; +@dynamic hasDrive, drive; -typedef struct GetPrefundedSpecializedBalanceRequest__storage_ { - uint32_t _has_storage_[2]; - GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 *v0; -} GetPrefundedSpecializedBalanceRequest__storage_; +typedef struct GetStatusResponse_GetStatusResponseV0_Version_Protocol__storage_ { + uint32_t _has_storage_[1]; + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash *tenderdash; + GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive *drive; +} GetStatusResponse_GetStatusResponseV0_Version_Protocol__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9749,29 +11828,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0), - .number = GetPrefundedSpecializedBalanceRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceRequest__storage_, v0), + .name = "tenderdash", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash), + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_FieldNumber_Tenderdash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol__storage_, tenderdash), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, + { + .name = "drive", + .dataTypeSpecific.clazz = GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive), + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_FieldNumber_Drive, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol__storage_, drive), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceRequest class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Version_Protocol class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPrefundedSpecializedBalanceRequest__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Version_Protocol__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9782,22 +11865,18 @@ + (GPBDescriptor *)descriptor { @end -void GetPrefundedSpecializedBalanceRequest_ClearVersionOneOfCase(GetPrefundedSpecializedBalanceRequest *message) { - GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash -@implementation GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 +@implementation GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash -@dynamic id_p; -@dynamic prove; +@dynamic p2P; +@dynamic block; -typedef struct GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_ { +typedef struct GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash__storage_ { uint32_t _has_storage_[1]; - NSData *id_p; -} GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_; + uint32_t p2P; + uint32_t block; +} GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9806,33 +11885,38 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "id_p", + .name = "p2P", .dataTypeSpecific.clazz = Nil, - .number = GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0_FieldNumber_Id_p, + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash_FieldNumber_P2P, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_, id_p), - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBytes, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash__storage_, p2P), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, }, { - .name = "prove", + .name = "block", .dataTypeSpecific.clazz = Nil, - .number = GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0_FieldNumber_Prove, + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash_FieldNumber_Block, .hasIndex = 1, - .offset = 2, // Stored in _has_storage_ to save space. + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash__storage_, block), .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, + .dataType = GPBDataTypeUInt32, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPrefundedSpecializedBalanceRequest_GetPrefundedSpecializedBalanceRequestV0__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Tenderdash__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPrefundedSpecializedBalanceRequest)]; +#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS + static const char *extraTextFormatInfo = + "\001\001\002!\000"; + [localDescriptor setupExtraTextInfo:extraTextFormatInfo]; +#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Protocol)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9843,17 +11927,18 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetPrefundedSpecializedBalanceResponse +#pragma mark - GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive -@implementation GetPrefundedSpecializedBalanceResponse +@implementation GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic latest; +@dynamic current; -typedef struct GetPrefundedSpecializedBalanceResponse__storage_ { - uint32_t _has_storage_[2]; - GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 *v0; -} GetPrefundedSpecializedBalanceResponse__storage_; +typedef struct GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive__storage_ { + uint32_t _has_storage_[1]; + uint32_t latest; + uint32_t current; +} GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9862,29 +11947,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0), - .number = GetPrefundedSpecializedBalanceResponse_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse__storage_, v0), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "latest", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive_FieldNumber_Latest, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive__storage_, latest), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "current", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive_FieldNumber_Current, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive__storage_, current), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceResponse class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPrefundedSpecializedBalanceResponse__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Version_Protocol_Drive__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0_Version_Protocol)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9895,26 +11984,22 @@ + (GPBDescriptor *)descriptor { @end -void GetPrefundedSpecializedBalanceResponse_ClearVersionOneOfCase(GetPrefundedSpecializedBalanceResponse *message) { - GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceResponse descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 - -@implementation GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 - -@dynamic resultOneOfCase; -@dynamic balance; -@dynamic proof; -@dynamic hasMetadata, metadata; - -typedef struct GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_ { - uint32_t _has_storage_[2]; - Proof *proof; - ResponseMetadata *metadata; - uint64_t balance; -} GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_; +#pragma mark - GetStatusResponse_GetStatusResponseV0_Time + +@implementation GetStatusResponse_GetStatusResponseV0_Time + +@dynamic local; +@dynamic hasBlock, block; +@dynamic hasGenesis, genesis; +@dynamic hasEpoch, epoch; + +typedef struct GetStatusResponse_GetStatusResponseV0_Time__storage_ { + uint32_t _has_storage_[1]; + uint32_t epoch; + uint64_t local; + uint64_t block; + uint64_t genesis; +} GetStatusResponse_GetStatusResponseV0_Time__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9923,48 +12008,51 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "balance", + .name = "local", .dataTypeSpecific.clazz = Nil, - .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Balance, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, balance), + .number = GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Local, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Time__storage_, local), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "block", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Block, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Time__storage_, block), .flags = GPBFieldOptional, .dataType = GPBDataTypeUInt64, }, { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, proof), + .name = "genesis", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Genesis, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Time__storage_, genesis), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeUInt64, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_, metadata), + .name = "epoch", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Time_FieldNumber_Epoch, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Time__storage_, epoch), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeUInt32, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Time class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Time__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPrefundedSpecializedBalanceResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -9975,22 +12063,18 @@ + (GPBDescriptor *)descriptor { @end -void GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0_ClearResultOneOfCase(GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 *message) { - GPBDescriptor *descriptor = [GetPrefundedSpecializedBalanceResponse_GetPrefundedSpecializedBalanceResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetTotalCreditsInPlatformRequest +#pragma mark - GetStatusResponse_GetStatusResponseV0_Node -@implementation GetTotalCreditsInPlatformRequest +@implementation GetStatusResponse_GetStatusResponseV0_Node -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic id_p; +@dynamic hasProTxHash, proTxHash; -typedef struct GetTotalCreditsInPlatformRequest__storage_ { - uint32_t _has_storage_[2]; - GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 *v0; -} GetTotalCreditsInPlatformRequest__storage_; +typedef struct GetStatusResponse_GetStatusResponseV0_Node__storage_ { + uint32_t _has_storage_[1]; + NSData *id_p; + NSData *proTxHash; +} GetStatusResponse_GetStatusResponseV0_Node__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -9999,29 +12083,33 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0), - .number = GetTotalCreditsInPlatformRequest_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformRequest__storage_, v0), + .name = "id_p", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Node_FieldNumber_Id_p, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Node__storage_, id_p), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "proTxHash", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Node_FieldNumber_ProTxHash, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Node__storage_, proTxHash), .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .dataType = GPBDataTypeBytes, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformRequest class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Node class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetTotalCreditsInPlatformRequest__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Node__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10032,20 +12120,31 @@ + (GPBDescriptor *)descriptor { @end -void GetTotalCreditsInPlatformRequest_ClearVersionOneOfCase(GetTotalCreditsInPlatformRequest *message) { - GPBDescriptor *descriptor = [GetTotalCreditsInPlatformRequest descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 +#pragma mark - GetStatusResponse_GetStatusResponseV0_Chain -@implementation GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 +@implementation GetStatusResponse_GetStatusResponseV0_Chain -@dynamic prove; +@dynamic catchingUp; +@dynamic latestBlockHash; +@dynamic latestAppHash; +@dynamic latestBlockHeight; +@dynamic earliestBlockHash; +@dynamic earliestAppHash; +@dynamic earliestBlockHeight; +@dynamic maxPeerBlockHeight; +@dynamic hasCoreChainLockedHeight, coreChainLockedHeight; -typedef struct GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_ { +typedef struct GetStatusResponse_GetStatusResponseV0_Chain__storage_ { uint32_t _has_storage_[1]; -} GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_; + uint32_t coreChainLockedHeight; + NSData *latestBlockHash; + NSData *latestAppHash; + NSData *earliestBlockHash; + NSData *earliestAppHash; + uint64_t latestBlockHeight; + uint64_t earliestBlockHeight; + uint64_t maxPeerBlockHeight; +} GetStatusResponse_GetStatusResponseV0_Chain__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10054,24 +12153,96 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "prove", + .name = "catchingUp", .dataTypeSpecific.clazz = Nil, - .number = GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0_FieldNumber_Prove, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_CatchingUp, .hasIndex = 0, .offset = 1, // Stored in _has_storage_ to save space. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBool, }, + { + .name = "latestBlockHash", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestBlockHash, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, latestBlockHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "latestAppHash", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestAppHash, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, latestAppHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "latestBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_LatestBlockHeight, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, latestBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "earliestBlockHash", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestBlockHash, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, earliestBlockHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "earliestAppHash", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestAppHash, + .hasIndex = 6, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, earliestAppHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "earliestBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_EarliestBlockHeight, + .hasIndex = 7, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, earliestBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "maxPeerBlockHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_MaxPeerBlockHeight, + .hasIndex = 8, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, maxPeerBlockHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "coreChainLockedHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Chain_FieldNumber_CoreChainLockedHeight, + .hasIndex = 9, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Chain__storage_, coreChainLockedHeight), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeUInt32, + }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Chain class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetTotalCreditsInPlatformRequest_GetTotalCreditsInPlatformRequestV0__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Chain__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetTotalCreditsInPlatformRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10082,17 +12253,19 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetTotalCreditsInPlatformResponse +#pragma mark - GetStatusResponse_GetStatusResponseV0_Network -@implementation GetTotalCreditsInPlatformResponse +@implementation GetStatusResponse_GetStatusResponseV0_Network -@dynamic versionOneOfCase; -@dynamic v0; +@dynamic chainId; +@dynamic peersCount; +@dynamic listening; -typedef struct GetTotalCreditsInPlatformResponse__storage_ { - uint32_t _has_storage_[2]; - GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 *v0; -} GetTotalCreditsInPlatformResponse__storage_; +typedef struct GetStatusResponse_GetStatusResponseV0_Network__storage_ { + uint32_t _has_storage_[1]; + uint32_t peersCount; + NSString *chainId; +} GetStatusResponse_GetStatusResponseV0_Network__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10101,29 +12274,42 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0), - .number = GetTotalCreditsInPlatformResponse_FieldNumber_V0, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse__storage_, v0), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "chainId", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_ChainId, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Network__storage_, chainId), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, + }, + { + .name = "peersCount", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_PeersCount, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_Network__storage_, peersCount), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "listening", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_Network_FieldNumber_Listening, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformResponse class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_Network class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetTotalCreditsInPlatformResponse__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_Network__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "version", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10134,26 +12320,30 @@ + (GPBDescriptor *)descriptor { @end -void GetTotalCreditsInPlatformResponse_ClearVersionOneOfCase(GetTotalCreditsInPlatformResponse *message) { - GPBDescriptor *descriptor = [GetTotalCreditsInPlatformResponse descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 +#pragma mark - GetStatusResponse_GetStatusResponseV0_StateSync -@implementation GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 +@implementation GetStatusResponse_GetStatusResponseV0_StateSync -@dynamic resultOneOfCase; -@dynamic credits; -@dynamic proof; -@dynamic hasMetadata, metadata; +@dynamic totalSyncedTime; +@dynamic remainingTime; +@dynamic totalSnapshots; +@dynamic chunkProcessAvgTime; +@dynamic snapshotHeight; +@dynamic snapshotChunksCount; +@dynamic backfilledBlocks; +@dynamic backfillBlocksTotal; -typedef struct GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_ { - uint32_t _has_storage_[2]; - Proof *proof; - ResponseMetadata *metadata; - uint64_t credits; -} GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_; +typedef struct GetStatusResponse_GetStatusResponseV0_StateSync__storage_ { + uint32_t _has_storage_[1]; + uint32_t totalSnapshots; + uint64_t totalSyncedTime; + uint64_t remainingTime; + uint64_t chunkProcessAvgTime; + uint64_t snapshotHeight; + uint64_t snapshotChunksCount; + uint64_t backfilledBlocks; + uint64_t backfillBlocksTotal; +} GetStatusResponse_GetStatusResponseV0_StateSync__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10162,48 +12352,87 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "credits", + .name = "totalSyncedTime", .dataTypeSpecific.clazz = Nil, - .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Credits, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, credits), - .flags = GPBFieldOptional, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_TotalSyncedTime, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, totalSyncedTime), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "remainingTime", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_RemainingTime, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, remainingTime), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "totalSnapshots", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_TotalSnapshots, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, totalSnapshots), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "chunkProcessAvgTime", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_ChunkProcessAvgTime, + .hasIndex = 3, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, chunkProcessAvgTime), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "snapshotHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_SnapshotHeight, + .hasIndex = 4, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, snapshotHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "snapshotChunksCount", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_SnapshotChunksCount, + .hasIndex = 5, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, snapshotChunksCount), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, + }, + { + .name = "backfilledBlocks", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_BackfilledBlocks, + .hasIndex = 6, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, backfilledBlocks), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeUInt64, }, { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, - }, - { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_FieldNumber_Metadata, - .hasIndex = 0, - .offset = (uint32_t)offsetof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_, metadata), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "backfillBlocksTotal", + .dataTypeSpecific.clazz = Nil, + .number = GetStatusResponse_GetStatusResponseV0_StateSync_FieldNumber_BackfillBlocksTotal, + .hasIndex = 7, + .offset = (uint32_t)offsetof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_, backfillBlocksTotal), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt64, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetStatusResponse_GetStatusResponseV0_StateSync class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0__storage_) + storageSize:sizeof(GetStatusResponse_GetStatusResponseV0_StateSync__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetTotalCreditsInPlatformResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetStatusResponse_GetStatusResponseV0)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10214,22 +12443,17 @@ + (GPBDescriptor *)descriptor { @end -void GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0_ClearResultOneOfCase(GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 *message) { - GPBDescriptor *descriptor = [GetTotalCreditsInPlatformResponse_GetTotalCreditsInPlatformResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetPathElementsRequest +#pragma mark - GetCurrentQuorumsInfoRequest -@implementation GetPathElementsRequest +@implementation GetCurrentQuorumsInfoRequest @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetPathElementsRequest__storage_ { +typedef struct GetCurrentQuorumsInfoRequest__storage_ { uint32_t _has_storage_[2]; - GetPathElementsRequest_GetPathElementsRequestV0 *v0; -} GetPathElementsRequest__storage_; + GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 *v0; +} GetCurrentQuorumsInfoRequest__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10239,21 +12463,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetPathElementsRequest_GetPathElementsRequestV0), - .number = GetPathElementsRequest_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0), + .number = GetCurrentQuorumsInfoRequest_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPathElementsRequest__storage_, v0), + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoRequest__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPathElementsRequest class] + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoRequest class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPathElementsRequest__storage_) + storageSize:sizeof(GetCurrentQuorumsInfoRequest__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -10271,68 +12495,34 @@ + (GPBDescriptor *)descriptor { @end -void GetPathElementsRequest_ClearVersionOneOfCase(GetPathElementsRequest *message) { - GPBDescriptor *descriptor = [GetPathElementsRequest descriptor]; +void GetCurrentQuorumsInfoRequest_ClearVersionOneOfCase(GetCurrentQuorumsInfoRequest *message) { + GPBDescriptor *descriptor = [GetCurrentQuorumsInfoRequest descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetPathElementsRequest_GetPathElementsRequestV0 +#pragma mark - GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 -@implementation GetPathElementsRequest_GetPathElementsRequestV0 +@implementation GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 -@dynamic pathArray, pathArray_Count; -@dynamic keysArray, keysArray_Count; -@dynamic prove; -typedef struct GetPathElementsRequest_GetPathElementsRequestV0__storage_ { +typedef struct GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *pathArray; - NSMutableArray *keysArray; -} GetPathElementsRequest_GetPathElementsRequestV0__storage_; +} GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0__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 = "pathArray", - .dataTypeSpecific.clazz = Nil, - .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_PathArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetPathElementsRequest_GetPathElementsRequestV0__storage_, pathArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "keysArray", - .dataTypeSpecific.clazz = Nil, - .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_KeysArray, - .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetPathElementsRequest_GetPathElementsRequestV0__storage_, keysArray), - .flags = GPBFieldRepeated, - .dataType = GPBDataTypeBytes, - }, - { - .name = "prove", - .dataTypeSpecific.clazz = Nil, - .number = GetPathElementsRequest_GetPathElementsRequestV0_FieldNumber_Prove, - .hasIndex = 0, - .offset = 1, // Stored in _has_storage_ to save space. - .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), - .dataType = GPBDataTypeBool, - }, - }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPathElementsRequest_GetPathElementsRequestV0 class] + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() - fields:fields - fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPathElementsRequest_GetPathElementsRequestV0__storage_) + fields:NULL + fieldCount:0 + storageSize:sizeof(GetCurrentQuorumsInfoRequest_GetCurrentQuorumsInfoRequestV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsRequest)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetCurrentQuorumsInfoRequest)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10343,17 +12533,17 @@ + (GPBDescriptor *)descriptor { @end -#pragma mark - GetPathElementsResponse +#pragma mark - GetCurrentQuorumsInfoResponse -@implementation GetPathElementsResponse +@implementation GetCurrentQuorumsInfoResponse @dynamic versionOneOfCase; @dynamic v0; -typedef struct GetPathElementsResponse__storage_ { +typedef struct GetCurrentQuorumsInfoResponse__storage_ { uint32_t _has_storage_[2]; - GetPathElementsResponse_GetPathElementsResponseV0 *v0; -} GetPathElementsResponse__storage_; + GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 *v0; +} GetCurrentQuorumsInfoResponse__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10363,21 +12553,21 @@ + (GPBDescriptor *)descriptor { static GPBMessageFieldDescription fields[] = { { .name = "v0", - .dataTypeSpecific.clazz = GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0), - .number = GetPathElementsResponse_FieldNumber_V0, + .dataTypeSpecific.clazz = GPBObjCClass(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0), + .number = GetCurrentQuorumsInfoResponse_FieldNumber_V0, .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPathElementsResponse__storage_, v0), + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse__storage_, v0), .flags = GPBFieldOptional, .dataType = GPBDataTypeMessage, }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse class] + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoResponse class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPathElementsResponse__storage_) + storageSize:sizeof(GetCurrentQuorumsInfoResponse__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; static const char *oneofs[] = { "version", @@ -10395,26 +12585,24 @@ + (GPBDescriptor *)descriptor { @end -void GetPathElementsResponse_ClearVersionOneOfCase(GetPathElementsResponse *message) { - GPBDescriptor *descriptor = [GetPathElementsResponse descriptor]; +void GetCurrentQuorumsInfoResponse_ClearVersionOneOfCase(GetCurrentQuorumsInfoResponse *message) { + GPBDescriptor *descriptor = [GetCurrentQuorumsInfoResponse descriptor]; GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; GPBClearOneof(message, oneof); } -#pragma mark - GetPathElementsResponse_GetPathElementsResponseV0 +#pragma mark - GetCurrentQuorumsInfoResponse_ValidatorV0 -@implementation GetPathElementsResponse_GetPathElementsResponseV0 +@implementation GetCurrentQuorumsInfoResponse_ValidatorV0 -@dynamic resultOneOfCase; -@dynamic elements; -@dynamic proof; -@dynamic hasMetadata, metadata; +@dynamic proTxHash; +@dynamic nodeIp; +@dynamic isBanned; -typedef struct GetPathElementsResponse_GetPathElementsResponseV0__storage_ { - uint32_t _has_storage_[2]; - GetPathElementsResponse_GetPathElementsResponseV0_Elements *elements; - Proof *proof; - ResponseMetadata *metadata; -} GetPathElementsResponse_GetPathElementsResponseV0__storage_; +typedef struct GetCurrentQuorumsInfoResponse_ValidatorV0__storage_ { + uint32_t _has_storage_[1]; + NSData *proTxHash; + NSString *nodeIp; +} GetCurrentQuorumsInfoResponse_ValidatorV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10423,48 +12611,121 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "elements", - .dataTypeSpecific.clazz = GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0_Elements), - .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Elements, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, elements), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "proTxHash", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_ProTxHash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorV0__storage_, proTxHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, }, { - .name = "proof", - .dataTypeSpecific.clazz = GPBObjCClass(Proof), - .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Proof, - .hasIndex = -1, - .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, proof), - .flags = GPBFieldOptional, - .dataType = GPBDataTypeMessage, + .name = "nodeIp", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_NodeIp, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorV0__storage_, nodeIp), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeString, }, { - .name = "metadata", - .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), - .number = GetPathElementsResponse_GetPathElementsResponseV0_FieldNumber_Metadata, + .name = "isBanned", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorV0_FieldNumber_IsBanned, + .hasIndex = 2, + .offset = 3, // Stored in _has_storage_ to save space. + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBool, + }, + }; + GPBDescriptor *localDescriptor = + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoResponse_ValidatorV0 class] + rootClass:[PlatformRoot class] + file:PlatformRoot_FileDescriptor() + fields:fields + fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) + storageSize:sizeof(GetCurrentQuorumsInfoResponse_ValidatorV0__storage_) + flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetCurrentQuorumsInfoResponse)]; + #if defined(DEBUG) && DEBUG + NSAssert(descriptor == nil, @"Startup recursed!"); + #endif // DEBUG + descriptor = localDescriptor; + } + return descriptor; +} + +@end + +#pragma mark - GetCurrentQuorumsInfoResponse_ValidatorSetV0 + +@implementation GetCurrentQuorumsInfoResponse_ValidatorSetV0 + +@dynamic quorumHash; +@dynamic coreHeight; +@dynamic membersArray, membersArray_Count; +@dynamic thresholdPublicKey; + +typedef struct GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_ { + uint32_t _has_storage_[1]; + uint32_t coreHeight; + NSData *quorumHash; + NSMutableArray *membersArray; + NSData *thresholdPublicKey; +} GetCurrentQuorumsInfoResponse_ValidatorSetV0__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 = "quorumHash", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_QuorumHash, .hasIndex = 0, - .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0__storage_, metadata), - .flags = GPBFieldOptional, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_, quorumHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "coreHeight", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_CoreHeight, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_, coreHeight), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeUInt32, + }, + { + .name = "membersArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetCurrentQuorumsInfoResponse_ValidatorV0), + .number = GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_MembersArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_, membersArray), + .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, + { + .name = "thresholdPublicKey", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_ValidatorSetV0_FieldNumber_ThresholdPublicKey, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_, thresholdPublicKey), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse_GetPathElementsResponseV0 class] + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoResponse_ValidatorSetV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPathElementsResponse_GetPathElementsResponseV0__storage_) + storageSize:sizeof(GetCurrentQuorumsInfoResponse_ValidatorSetV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - static const char *oneofs[] = { - "result", - }; - [localDescriptor setupOneofs:oneofs - count:(uint32_t)(sizeof(oneofs) / sizeof(char*)) - firstHasIndex:-1]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsResponse)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetCurrentQuorumsInfoResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG @@ -10475,21 +12736,24 @@ + (GPBDescriptor *)descriptor { @end -void GetPathElementsResponse_GetPathElementsResponseV0_ClearResultOneOfCase(GetPathElementsResponse_GetPathElementsResponseV0 *message) { - GPBDescriptor *descriptor = [GetPathElementsResponse_GetPathElementsResponseV0 descriptor]; - GPBOneofDescriptor *oneof = [descriptor.oneofs objectAtIndex:0]; - GPBClearOneof(message, oneof); -} -#pragma mark - GetPathElementsResponse_GetPathElementsResponseV0_Elements +#pragma mark - GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 -@implementation GetPathElementsResponse_GetPathElementsResponseV0_Elements +@implementation GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 -@dynamic elementsArray, elementsArray_Count; +@dynamic quorumHashesArray, quorumHashesArray_Count; +@dynamic currentQuorumHash; +@dynamic validatorSetsArray, validatorSetsArray_Count; +@dynamic lastBlockProposer; +@dynamic hasMetadata, metadata; -typedef struct GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_ { +typedef struct GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_ { uint32_t _has_storage_[1]; - NSMutableArray *elementsArray; -} GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_; + NSMutableArray *quorumHashesArray; + NSData *currentQuorumHash; + NSMutableArray *validatorSetsArray; + NSData *lastBlockProposer; + ResponseMetadata *metadata; +} GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_; // This method is threadsafe because it is initially called // in +initialize for each subclass. @@ -10498,24 +12762,60 @@ + (GPBDescriptor *)descriptor { if (!descriptor) { static GPBMessageFieldDescription fields[] = { { - .name = "elementsArray", + .name = "quorumHashesArray", .dataTypeSpecific.clazz = Nil, - .number = GetPathElementsResponse_GetPathElementsResponseV0_Elements_FieldNumber_ElementsArray, + .number = GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_QuorumHashesArray, .hasIndex = GPBNoHasBit, - .offset = (uint32_t)offsetof(GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_, elementsArray), + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_, quorumHashesArray), + .flags = GPBFieldRepeated, + .dataType = GPBDataTypeBytes, + }, + { + .name = "currentQuorumHash", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_CurrentQuorumHash, + .hasIndex = 0, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_, currentQuorumHash), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), + .dataType = GPBDataTypeBytes, + }, + { + .name = "validatorSetsArray", + .dataTypeSpecific.clazz = GPBObjCClass(GetCurrentQuorumsInfoResponse_ValidatorSetV0), + .number = GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_ValidatorSetsArray, + .hasIndex = GPBNoHasBit, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_, validatorSetsArray), .flags = GPBFieldRepeated, + .dataType = GPBDataTypeMessage, + }, + { + .name = "lastBlockProposer", + .dataTypeSpecific.clazz = Nil, + .number = GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_LastBlockProposer, + .hasIndex = 1, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_, lastBlockProposer), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), .dataType = GPBDataTypeBytes, }, + { + .name = "metadata", + .dataTypeSpecific.clazz = GPBObjCClass(ResponseMetadata), + .number = GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0_FieldNumber_Metadata, + .hasIndex = 2, + .offset = (uint32_t)offsetof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_, metadata), + .flags = GPBFieldOptional, + .dataType = GPBDataTypeMessage, + }, }; GPBDescriptor *localDescriptor = - [GPBDescriptor allocDescriptorForClass:[GetPathElementsResponse_GetPathElementsResponseV0_Elements class] + [GPBDescriptor allocDescriptorForClass:[GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0 class] rootClass:[PlatformRoot class] file:PlatformRoot_FileDescriptor() fields:fields fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) - storageSize:sizeof(GetPathElementsResponse_GetPathElementsResponseV0_Elements__storage_) + storageSize:sizeof(GetCurrentQuorumsInfoResponse_GetCurrentQuorumsInfoResponseV0__storage_) flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; - [localDescriptor setupContainingMessageClass:GPBObjCClass(GetPathElementsResponse_GetPathElementsResponseV0)]; + [localDescriptor setupContainingMessageClass:GPBObjCClass(GetCurrentQuorumsInfoResponse)]; #if defined(DEBUG) && DEBUG NSAssert(descriptor == nil, @"Startup recursed!"); #endif // DEBUG 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 dede490b71..9bfcd4ba16 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 @@ -26,6 +26,8 @@ @class GetContestedResourceVotersForIdentityResponse; @class GetContestedResourcesRequest; @class GetContestedResourcesResponse; +@class GetCurrentQuorumsInfoRequest; +@class GetCurrentQuorumsInfoResponse; @class GetDataContractHistoryRequest; @class GetDataContractHistoryResponse; @class GetDataContractRequest; @@ -36,6 +38,11 @@ @class GetDocumentsResponse; @class GetEpochsInfoRequest; @class GetEpochsInfoResponse; +@class GetEvonodesProposedEpochBlocksByIdsRequest; +@class GetEvonodesProposedEpochBlocksByRangeRequest; +@class GetEvonodesProposedEpochBlocksResponse; +@class GetIdentitiesBalancesRequest; +@class GetIdentitiesBalancesResponse; @class GetIdentitiesContractKeysRequest; @class GetIdentitiesContractKeysResponse; @class GetIdentityBalanceAndRevisionRequest; @@ -62,6 +69,8 @@ @class GetProtocolVersionUpgradeStateResponse; @class GetProtocolVersionUpgradeVoteStatusRequest; @class GetProtocolVersionUpgradeVoteStatusResponse; +@class GetStatusRequest; +@class GetStatusResponse; @class GetTotalCreditsInPlatformRequest; @class GetTotalCreditsInPlatformResponse; @class GetVotePollsByEndDateRequest; @@ -126,10 +135,22 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCUnaryProtoCall *)getIdentityBalanceWithMessage:(GetIdentityBalanceRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; +#pragma mark getIdentitiesBalances(GetIdentitiesBalancesRequest) returns (GetIdentitiesBalancesResponse) + +- (GRPCUnaryProtoCall *)getIdentitiesBalancesWithMessage:(GetIdentitiesBalancesRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + #pragma mark getIdentityBalanceAndRevision(GetIdentityBalanceAndRevisionRequest) returns (GetIdentityBalanceAndRevisionResponse) - (GRPCUnaryProtoCall *)getIdentityBalanceAndRevisionWithMessage:(GetIdentityBalanceAndRevisionRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; +#pragma mark getEvonodesProposedEpochBlocksByIds(GetEvonodesProposedEpochBlocksByIdsRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (GRPCUnaryProtoCall *)getEvonodesProposedEpochBlocksByIdsWithMessage:(GetEvonodesProposedEpochBlocksByIdsRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + +#pragma mark getEvonodesProposedEpochBlocksByRange(GetEvonodesProposedEpochBlocksByRangeRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (GRPCUnaryProtoCall *)getEvonodesProposedEpochBlocksByRangeWithMessage:(GetEvonodesProposedEpochBlocksByRangeRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + #pragma mark getProofs(GetProofsRequest) returns (GetProofsResponse) - (GRPCUnaryProtoCall *)getProofsWithMessage:(GetProofsRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; @@ -221,6 +242,14 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCUnaryProtoCall *)getPathElementsWithMessage:(GetPathElementsRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; +#pragma mark getStatus(GetStatusRequest) returns (GetStatusResponse) + +- (GRPCUnaryProtoCall *)getStatusWithMessage:(GetStatusRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + +#pragma mark getCurrentQuorumsInfo(GetCurrentQuorumsInfoRequest) returns (GetCurrentQuorumsInfoResponse) + +- (GRPCUnaryProtoCall *)getCurrentQuorumsInfoWithMessage:(GetCurrentQuorumsInfoRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions; + @end /** @@ -278,6 +307,13 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCProtoCall *)RPCTogetIdentityBalanceWithRequest:(GetIdentityBalanceRequest *)request handler:(void(^)(GetIdentityBalanceResponse *_Nullable response, NSError *_Nullable error))handler; +#pragma mark getIdentitiesBalances(GetIdentitiesBalancesRequest) returns (GetIdentitiesBalancesResponse) + +- (void)getIdentitiesBalancesWithRequest:(GetIdentitiesBalancesRequest *)request handler:(void(^)(GetIdentitiesBalancesResponse *_Nullable response, NSError *_Nullable error))handler; + +- (GRPCProtoCall *)RPCTogetIdentitiesBalancesWithRequest:(GetIdentitiesBalancesRequest *)request handler:(void(^)(GetIdentitiesBalancesResponse *_Nullable response, NSError *_Nullable error))handler; + + #pragma mark getIdentityBalanceAndRevision(GetIdentityBalanceAndRevisionRequest) returns (GetIdentityBalanceAndRevisionResponse) - (void)getIdentityBalanceAndRevisionWithRequest:(GetIdentityBalanceAndRevisionRequest *)request handler:(void(^)(GetIdentityBalanceAndRevisionResponse *_Nullable response, NSError *_Nullable error))handler; @@ -285,6 +321,20 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCProtoCall *)RPCTogetIdentityBalanceAndRevisionWithRequest:(GetIdentityBalanceAndRevisionRequest *)request handler:(void(^)(GetIdentityBalanceAndRevisionResponse *_Nullable response, NSError *_Nullable error))handler; +#pragma mark getEvonodesProposedEpochBlocksByIds(GetEvonodesProposedEpochBlocksByIdsRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (void)getEvonodesProposedEpochBlocksByIdsWithRequest:(GetEvonodesProposedEpochBlocksByIdsRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler; + +- (GRPCProtoCall *)RPCTogetEvonodesProposedEpochBlocksByIdsWithRequest:(GetEvonodesProposedEpochBlocksByIdsRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler; + + +#pragma mark getEvonodesProposedEpochBlocksByRange(GetEvonodesProposedEpochBlocksByRangeRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (void)getEvonodesProposedEpochBlocksByRangeWithRequest:(GetEvonodesProposedEpochBlocksByRangeRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler; + +- (GRPCProtoCall *)RPCTogetEvonodesProposedEpochBlocksByRangeWithRequest:(GetEvonodesProposedEpochBlocksByRangeRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler; + + #pragma mark getProofs(GetProofsRequest) returns (GetProofsResponse) - (void)getProofsWithRequest:(GetProofsRequest *)request handler:(void(^)(GetProofsResponse *_Nullable response, NSError *_Nullable error))handler; @@ -468,6 +518,20 @@ NS_ASSUME_NONNULL_BEGIN - (GRPCProtoCall *)RPCTogetPathElementsWithRequest:(GetPathElementsRequest *)request handler:(void(^)(GetPathElementsResponse *_Nullable response, NSError *_Nullable error))handler; +#pragma mark getStatus(GetStatusRequest) returns (GetStatusResponse) + +- (void)getStatusWithRequest:(GetStatusRequest *)request handler:(void(^)(GetStatusResponse *_Nullable response, NSError *_Nullable error))handler; + +- (GRPCProtoCall *)RPCTogetStatusWithRequest:(GetStatusRequest *)request handler:(void(^)(GetStatusResponse *_Nullable response, NSError *_Nullable error))handler; + + +#pragma mark getCurrentQuorumsInfo(GetCurrentQuorumsInfoRequest) returns (GetCurrentQuorumsInfoResponse) + +- (void)getCurrentQuorumsInfoWithRequest:(GetCurrentQuorumsInfoRequest *)request handler:(void(^)(GetCurrentQuorumsInfoResponse *_Nullable response, NSError *_Nullable error))handler; + +- (GRPCProtoCall *)RPCTogetCurrentQuorumsInfoWithRequest:(GetCurrentQuorumsInfoRequest *)request handler:(void(^)(GetCurrentQuorumsInfoResponse *_Nullable response, NSError *_Nullable error))handler; + + @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 24fe99cc69..b8e6852fe6 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 @@ -210,6 +210,26 @@ - (GRPCUnaryProtoCall *)getIdentityBalanceWithMessage:(GetIdentityBalanceRequest responseClass:[GetIdentityBalanceResponse class]]; } +#pragma mark getIdentitiesBalances(GetIdentitiesBalancesRequest) returns (GetIdentitiesBalancesResponse) + +- (void)getIdentitiesBalancesWithRequest:(GetIdentitiesBalancesRequest *)request handler:(void(^)(GetIdentitiesBalancesResponse *_Nullable response, NSError *_Nullable error))handler{ + [[self RPCTogetIdentitiesBalancesWithRequest:request handler:handler] start]; +} +// Returns a not-yet-started RPC object. +- (GRPCProtoCall *)RPCTogetIdentitiesBalancesWithRequest:(GetIdentitiesBalancesRequest *)request handler:(void(^)(GetIdentitiesBalancesResponse *_Nullable response, NSError *_Nullable error))handler{ + return [self RPCToMethod:@"getIdentitiesBalances" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[GetIdentitiesBalancesResponse class] + responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]]; +} +- (GRPCUnaryProtoCall *)getIdentitiesBalancesWithMessage:(GetIdentitiesBalancesRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"getIdentitiesBalances" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[GetIdentitiesBalancesResponse class]]; +} + #pragma mark getIdentityBalanceAndRevision(GetIdentityBalanceAndRevisionRequest) returns (GetIdentityBalanceAndRevisionResponse) - (void)getIdentityBalanceAndRevisionWithRequest:(GetIdentityBalanceAndRevisionRequest *)request handler:(void(^)(GetIdentityBalanceAndRevisionResponse *_Nullable response, NSError *_Nullable error))handler{ @@ -230,6 +250,46 @@ - (GRPCUnaryProtoCall *)getIdentityBalanceAndRevisionWithMessage:(GetIdentityBal responseClass:[GetIdentityBalanceAndRevisionResponse class]]; } +#pragma mark getEvonodesProposedEpochBlocksByIds(GetEvonodesProposedEpochBlocksByIdsRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (void)getEvonodesProposedEpochBlocksByIdsWithRequest:(GetEvonodesProposedEpochBlocksByIdsRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler{ + [[self RPCTogetEvonodesProposedEpochBlocksByIdsWithRequest:request handler:handler] start]; +} +// Returns a not-yet-started RPC object. +- (GRPCProtoCall *)RPCTogetEvonodesProposedEpochBlocksByIdsWithRequest:(GetEvonodesProposedEpochBlocksByIdsRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler{ + return [self RPCToMethod:@"getEvonodesProposedEpochBlocksByIds" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[GetEvonodesProposedEpochBlocksResponse class] + responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]]; +} +- (GRPCUnaryProtoCall *)getEvonodesProposedEpochBlocksByIdsWithMessage:(GetEvonodesProposedEpochBlocksByIdsRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"getEvonodesProposedEpochBlocksByIds" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[GetEvonodesProposedEpochBlocksResponse class]]; +} + +#pragma mark getEvonodesProposedEpochBlocksByRange(GetEvonodesProposedEpochBlocksByRangeRequest) returns (GetEvonodesProposedEpochBlocksResponse) + +- (void)getEvonodesProposedEpochBlocksByRangeWithRequest:(GetEvonodesProposedEpochBlocksByRangeRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler{ + [[self RPCTogetEvonodesProposedEpochBlocksByRangeWithRequest:request handler:handler] start]; +} +// Returns a not-yet-started RPC object. +- (GRPCProtoCall *)RPCTogetEvonodesProposedEpochBlocksByRangeWithRequest:(GetEvonodesProposedEpochBlocksByRangeRequest *)request handler:(void(^)(GetEvonodesProposedEpochBlocksResponse *_Nullable response, NSError *_Nullable error))handler{ + return [self RPCToMethod:@"getEvonodesProposedEpochBlocksByRange" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[GetEvonodesProposedEpochBlocksResponse class] + responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]]; +} +- (GRPCUnaryProtoCall *)getEvonodesProposedEpochBlocksByRangeWithMessage:(GetEvonodesProposedEpochBlocksByRangeRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"getEvonodesProposedEpochBlocksByRange" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[GetEvonodesProposedEpochBlocksResponse class]]; +} + #pragma mark getProofs(GetProofsRequest) returns (GetProofsResponse) - (void)getProofsWithRequest:(GetProofsRequest *)request handler:(void(^)(GetProofsResponse *_Nullable response, NSError *_Nullable error))handler{ @@ -675,5 +735,45 @@ - (GRPCUnaryProtoCall *)getPathElementsWithMessage:(GetPathElementsRequest *)mes responseClass:[GetPathElementsResponse class]]; } +#pragma mark getStatus(GetStatusRequest) returns (GetStatusResponse) + +- (void)getStatusWithRequest:(GetStatusRequest *)request handler:(void(^)(GetStatusResponse *_Nullable response, NSError *_Nullable error))handler{ + [[self RPCTogetStatusWithRequest:request handler:handler] start]; +} +// Returns a not-yet-started RPC object. +- (GRPCProtoCall *)RPCTogetStatusWithRequest:(GetStatusRequest *)request handler:(void(^)(GetStatusResponse *_Nullable response, NSError *_Nullable error))handler{ + return [self RPCToMethod:@"getStatus" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[GetStatusResponse class] + responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]]; +} +- (GRPCUnaryProtoCall *)getStatusWithMessage:(GetStatusRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"getStatus" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[GetStatusResponse class]]; +} + +#pragma mark getCurrentQuorumsInfo(GetCurrentQuorumsInfoRequest) returns (GetCurrentQuorumsInfoResponse) + +- (void)getCurrentQuorumsInfoWithRequest:(GetCurrentQuorumsInfoRequest *)request handler:(void(^)(GetCurrentQuorumsInfoResponse *_Nullable response, NSError *_Nullable error))handler{ + [[self RPCTogetCurrentQuorumsInfoWithRequest:request handler:handler] start]; +} +// Returns a not-yet-started RPC object. +- (GRPCProtoCall *)RPCTogetCurrentQuorumsInfoWithRequest:(GetCurrentQuorumsInfoRequest *)request handler:(void(^)(GetCurrentQuorumsInfoResponse *_Nullable response, NSError *_Nullable error))handler{ + return [self RPCToMethod:@"getCurrentQuorumsInfo" + requestsWriter:[GRXWriter writerWithValue:request] + responseClass:[GetCurrentQuorumsInfoResponse class] + responsesWriteable:[GRXWriteable writeableWithSingleHandler:handler]]; +} +- (GRPCUnaryProtoCall *)getCurrentQuorumsInfoWithMessage:(GetCurrentQuorumsInfoRequest *)message responseHandler:(id)handler callOptions:(GRPCCallOptions *_Nullable)callOptions { + return [self RPCToMethod:@"getCurrentQuorumsInfo" + message:message + responseHandler:handler + callOptions:callOptions + responseClass:[GetCurrentQuorumsInfoResponse 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 f27a207378..be8a64f309 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\"\x90\x01\n\x10ResponseMetadata\x12\x0e\n\x06height\x18\x01 \x01(\x04\x12 \n\x18\x63ore_chain_locked_height\x18\x02 \x01(\r\x12\r\n\x05\x65poch\x18\x03 \x01(\r\x12\x0f\n\x07time_ms\x18\x04 \x01(\x04\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\"\xb8\x02\n\x18GetIdentityNonceResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetIdentityNonceResponse.GetIdentityNonceResponseV0H\x00\x1a\xb2\x01\n\x1aGetIdentityNonceResponseV0\x12\x18\n\x0eidentity_nonce\x18\x01 \x01(\x04H\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\"\xe1\x02\n GetIdentityContractNonceResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse.GetIdentityContractNonceResponseV0H\x00\x1a\xc3\x01\n\"GetIdentityContractNonceResponseV0\x12!\n\x17identity_contract_nonce\x18\x01 \x01(\x04H\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\x02\n\x1aGetIdentityBalanceResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetIdentityBalanceResponse.GetIdentityBalanceResponseV0H\x00\x1a\xad\x01\n\x1cGetIdentityBalanceResponseV0\x12\x11\n\x07\x62\x61lance\x18\x01 \x01(\x04H\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\"\xa9\x04\n%GetIdentityBalanceAndRevisionResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0H\x00\x1a\xfc\x02\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\x37\n\x12\x42\x61lanceAndRevision\x12\x0f\n\x07\x62\x61lance\x18\x01 \x01(\x04\x12\x10\n\x08revision\x18\x02 \x01(\x04\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\"\xcb\x0b\n\x10GetProofsRequest\x12L\n\x02v0\x18\x01 \x01(\x0b\x32>.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0H\x00\x1a\xdd\n\n\x12GetProofsRequestV0\x12\x62\n\nidentities\x18\x01 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest\x12\x61\n\tcontracts\x18\x02 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest\x12\x61\n\tdocuments\x18\x03 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest\x12_\n\x05votes\x18\x04 \x03(\x0b\x32P.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest\x1a\xd5\x02\n\x0f\x44ocumentRequest\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x15\n\rdocument_type\x18\x02 \x01(\t\x12#\n\x1b\x64ocument_type_keeps_history\x18\x03 \x01(\x08\x12\x13\n\x0b\x64ocument_id\x18\x04 \x01(\x0c\x12\x89\x01\n\x19\x64ocument_contested_status\x18\x05 \x01(\x0e\x32\x66.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus\"P\n\x17\x44ocumentContestedStatus\x12\x11\n\rNOT_CONTESTED\x10\x00\x12\x13\n\x0fMAYBE_CONTESTED\x10\x01\x12\r\n\tCONTESTED\x10\x02\x1a\xd1\x01\n\x0fIdentityRequest\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12i\n\x0crequest_type\x18\x02 \x01(\x0e\x32S.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type\">\n\x04Type\x12\x11\n\rFULL_IDENTITY\x10\x00\x12\x0b\n\x07\x42\x41LANCE\x10\x01\x12\x08\n\x04KEYS\x10\x02\x12\x0c\n\x08REVISION\x10\x03\x1a&\n\x0f\x43ontractRequest\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x1a\xe7\x02\n\x11VoteStatusRequest\x12\xa5\x01\n&contested_resource_vote_status_request\x18\x01 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequestH\x00\x1a\x99\x01\n\"ContestedResourceVoteStatusRequest\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\x18\n\x10voter_identifier\x18\x05 \x01(\x0c\x42\x0e\n\x0crequest_typeB\t\n\x07version\"\x82\x02\n\x11GetProofsResponse\x12N\n\x02v0\x18\x01 \x01(\x0b\x32@.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0H\x00\x1a\x91\x01\n\x13GetProofsResponseV0\x12\x31\n\x05proof\x18\x01 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x02 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\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\"\xc1\x02\n\x1dGetDataContractHistoryRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0H\x00\x1a\xac\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\x13\n\x0bstart_at_ms\x18\x04 \x01(\x04\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xae\x05\n\x1eGetDataContractHistoryResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0H\x00\x1a\x96\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\x37\n\x18\x44\x61taContractHistoryEntry\x12\x0c\n\x04\x64\x61te\x18\x01 \x01(\x04\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\"\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\"\x91\x05\n\x15GetEpochsInfoResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0H\x00\x1a\x94\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\x9e\x01\n\tEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1a\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x12\n\nstart_time\x18\x04 \x01(\x04\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\"\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\"\xca\x05\n\x1cGetVotePollsByEndDateRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0H\x00\x1a\xb8\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\x1a\x45\n\x0fStartAtTimeInfo\x12\x15\n\rstart_time_ms\x18\x01 \x01(\x04\x12\x1b\n\x13start_time_included\x18\x02 \x01(\x08\x1a?\n\rEndAtTimeInfo\x12\x13\n\x0b\x65nd_time_ms\x18\x01 \x01(\x04\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\"\xff\x05\n\x1dGetVotePollsByEndDateResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0H\x00\x1a\xea\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\x1aR\n\x1eSerializedVotePollsByTimestamp\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\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\"\x8c\x0c\n%GetContestedResourceVoteStateResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0H\x00\x1a\xdf\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\xd2\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\x12%\n\x1d\x66inished_at_core_block_height\x18\x04 \x01(\r\x12!\n\x19\x66inished_at_block_time_ms\x18\x05 \x01(\x04\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\"\xe9\x02\n&GetPrefundedSpecializedBalanceResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0H\x00\x1a\xb9\x01\n(GetPrefundedSpecializedBalanceResponseV0\x12\x11\n\x07\x62\x61lance\x18\x01 \x01(\x04H\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\"\xd5\x02\n!GetTotalCreditsInPlatformResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0H\x00\x1a\xb4\x01\n#GetTotalCreditsInPlatformResponseV0\x12\x11\n\x07\x63redits\x18\x01 \x01(\x04H\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*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\xba\x1e\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\xa2\x01\n\x1dgetIdentityBalanceAndRevision\x12?.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionRequest\x1a@.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse\x12\x66\n\tgetProofs\x12+.org.dash.platform.dapi.v0.GetProofsRequest\x1a,.org.dash.platform.dapi.v0.GetProofsResponse\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\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\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.GetPathElementsResponseb\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\"\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\"\x90\x01\n\x10ResponseMetadata\x12\x0e\n\x06height\x18\x01 \x01(\x04\x12 \n\x18\x63ore_chain_locked_height\x18\x02 \x01(\r\x12\r\n\x05\x65poch\x18\x03 \x01(\r\x12\x0f\n\x07time_ms\x18\x04 \x01(\x04\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\"\xb8\x02\n\x18GetIdentityNonceResponse\x12\\\n\x02v0\x18\x01 \x01(\x0b\x32N.org.dash.platform.dapi.v0.GetIdentityNonceResponse.GetIdentityNonceResponseV0H\x00\x1a\xb2\x01\n\x1aGetIdentityNonceResponseV0\x12\x18\n\x0eidentity_nonce\x18\x01 \x01(\x04H\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\"\xe1\x02\n GetIdentityContractNonceResponse\x12l\n\x02v0\x18\x01 \x01(\x0b\x32^.org.dash.platform.dapi.v0.GetIdentityContractNonceResponse.GetIdentityContractNonceResponseV0H\x00\x1a\xc3\x01\n\"GetIdentityContractNonceResponseV0\x12!\n\x17identity_contract_nonce\x18\x01 \x01(\x04H\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\x02\n\x1aGetIdentityBalanceResponse\x12`\n\x02v0\x18\x01 \x01(\x0b\x32R.org.dash.platform.dapi.v0.GetIdentityBalanceResponse.GetIdentityBalanceResponseV0H\x00\x1a\xad\x01\n\x1cGetIdentityBalanceResponseV0\x12\x11\n\x07\x62\x61lance\x18\x01 \x01(\x04H\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\"\xa9\x04\n%GetIdentityBalanceAndRevisionResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetIdentityBalanceAndRevisionResponse.GetIdentityBalanceAndRevisionResponseV0H\x00\x1a\xfc\x02\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\x37\n\x12\x42\x61lanceAndRevision\x12\x0f\n\x07\x62\x61lance\x18\x01 \x01(\x04\x12\x10\n\x08revision\x18\x02 \x01(\x04\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\"\x8e\x06\n&GetEvonodesProposedEpochBlocksResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0H\x00\x1a\xde\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\r\n\x05\x63ount\x18\x02 \x01(\x04\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\"\x9b\x05\n\x1dGetIdentitiesBalancesResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0H\x00\x1a\x86\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\x1aH\n\x0fIdentityBalance\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\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\"\xcb\x0b\n\x10GetProofsRequest\x12L\n\x02v0\x18\x01 \x01(\x0b\x32>.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0H\x00\x1a\xdd\n\n\x12GetProofsRequestV0\x12\x62\n\nidentities\x18\x01 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest\x12\x61\n\tcontracts\x18\x02 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest\x12\x61\n\tdocuments\x18\x03 \x03(\x0b\x32N.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest\x12_\n\x05votes\x18\x04 \x03(\x0b\x32P.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest\x1a\xd5\x02\n\x0f\x44ocumentRequest\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x12\x15\n\rdocument_type\x18\x02 \x01(\t\x12#\n\x1b\x64ocument_type_keeps_history\x18\x03 \x01(\x08\x12\x13\n\x0b\x64ocument_id\x18\x04 \x01(\x0c\x12\x89\x01\n\x19\x64ocument_contested_status\x18\x05 \x01(\x0e\x32\x66.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus\"P\n\x17\x44ocumentContestedStatus\x12\x11\n\rNOT_CONTESTED\x10\x00\x12\x13\n\x0fMAYBE_CONTESTED\x10\x01\x12\r\n\tCONTESTED\x10\x02\x1a\xd1\x01\n\x0fIdentityRequest\x12\x13\n\x0bidentity_id\x18\x01 \x01(\x0c\x12i\n\x0crequest_type\x18\x02 \x01(\x0e\x32S.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type\">\n\x04Type\x12\x11\n\rFULL_IDENTITY\x10\x00\x12\x0b\n\x07\x42\x41LANCE\x10\x01\x12\x08\n\x04KEYS\x10\x02\x12\x0c\n\x08REVISION\x10\x03\x1a&\n\x0f\x43ontractRequest\x12\x13\n\x0b\x63ontract_id\x18\x01 \x01(\x0c\x1a\xe7\x02\n\x11VoteStatusRequest\x12\xa5\x01\n&contested_resource_vote_status_request\x18\x01 \x01(\x0b\x32s.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequestH\x00\x1a\x99\x01\n\"ContestedResourceVoteStatusRequest\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\x18\n\x10voter_identifier\x18\x05 \x01(\x0c\x42\x0e\n\x0crequest_typeB\t\n\x07version\"\x82\x02\n\x11GetProofsResponse\x12N\n\x02v0\x18\x01 \x01(\x0b\x32@.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0H\x00\x1a\x91\x01\n\x13GetProofsResponseV0\x12\x31\n\x05proof\x18\x01 \x01(\x0b\x32 .org.dash.platform.dapi.v0.ProofH\x00\x12=\n\x08metadata\x18\x02 \x01(\x0b\x32+.org.dash.platform.dapi.v0.ResponseMetadataB\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\"\xc1\x02\n\x1dGetDataContractHistoryRequest\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0H\x00\x1a\xac\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\x13\n\x0bstart_at_ms\x18\x04 \x01(\x04\x12\r\n\x05prove\x18\x05 \x01(\x08\x42\t\n\x07version\"\xae\x05\n\x1eGetDataContractHistoryResponse\x12h\n\x02v0\x18\x01 \x01(\x0b\x32Z.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0H\x00\x1a\x96\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\x37\n\x18\x44\x61taContractHistoryEntry\x12\x0c\n\x04\x64\x61te\x18\x01 \x01(\x04\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\"\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\"\x91\x05\n\x15GetEpochsInfoResponse\x12V\n\x02v0\x18\x01 \x01(\x0b\x32H.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0H\x00\x1a\x94\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\x9e\x01\n\tEpochInfo\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x1a\n\x12\x66irst_block_height\x18\x02 \x01(\x04\x12\x1f\n\x17\x66irst_core_block_height\x18\x03 \x01(\r\x12\x12\n\nstart_time\x18\x04 \x01(\x04\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\"\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\"\xca\x05\n\x1cGetVotePollsByEndDateRequest\x12\x64\n\x02v0\x18\x01 \x01(\x0b\x32V.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0H\x00\x1a\xb8\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\x1a\x45\n\x0fStartAtTimeInfo\x12\x15\n\rstart_time_ms\x18\x01 \x01(\x04\x12\x1b\n\x13start_time_included\x18\x02 \x01(\x08\x1a?\n\rEndAtTimeInfo\x12\x13\n\x0b\x65nd_time_ms\x18\x01 \x01(\x04\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\"\xff\x05\n\x1dGetVotePollsByEndDateResponse\x12\x66\n\x02v0\x18\x01 \x01(\x0b\x32X.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0H\x00\x1a\xea\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\x1aR\n\x1eSerializedVotePollsByTimestamp\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\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\"\x8c\x0c\n%GetContestedResourceVoteStateResponse\x12v\n\x02v0\x18\x01 \x01(\x0b\x32h.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0H\x00\x1a\xdf\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\xd2\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\x12%\n\x1d\x66inished_at_core_block_height\x18\x04 \x01(\r\x12!\n\x19\x66inished_at_block_time_ms\x18\x05 \x01(\x04\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\"\xe9\x02\n&GetPrefundedSpecializedBalanceResponse\x12x\n\x02v0\x18\x01 \x01(\x0b\x32j.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0H\x00\x1a\xb9\x01\n(GetPrefundedSpecializedBalanceResponseV0\x12\x11\n\x07\x62\x61lance\x18\x01 \x01(\x04H\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\"\xd5\x02\n!GetTotalCreditsInPlatformResponse\x12n\n\x02v0\x18\x01 \x01(\x0b\x32`.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0H\x00\x1a\xb4\x01\n#GetTotalCreditsInPlatformResponseV0\x12\x11\n\x07\x63redits\x18\x01 \x01(\x04H\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\"\x9c\x10\n\x11GetStatusResponse\x12N\n\x02v0\x18\x01 \x01(\x0b\x32@.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0H\x00\x1a\xab\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\xee\x04\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\xb8\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\x1as\n\x04Time\x12\r\n\x05local\x18\x01 \x01(\x04\x12\x12\n\x05\x62lock\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07genesis\x18\x03 \x01(\x04H\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\xa7\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\x1b\n\x13latest_block_height\x18\x04 \x01(\x04\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\x1d\n\x15\x65\x61rliest_block_height\x18\x07 \x01(\x04\x12\x1d\n\x15max_peer_block_height\x18\t \x01(\x04\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\xe9\x01\n\tStateSync\x12\x19\n\x11total_synced_time\x18\x01 \x01(\x04\x12\x16\n\x0eremaining_time\x18\x02 \x01(\x04\x12\x17\n\x0ftotal_snapshots\x18\x03 \x01(\r\x12\x1e\n\x16\x63hunk_process_avg_time\x18\x04 \x01(\x04\x12\x17\n\x0fsnapshot_height\x18\x05 \x01(\x04\x12\x1d\n\x15snapshot_chunks_count\x18\x06 \x01(\x04\x12\x19\n\x11\x62\x61\x63kfilled_blocks\x18\x07 \x01(\x04\x12\x1d\n\x15\x62\x61\x63kfill_blocks_total\x18\x08 \x01(\x04\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*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\xa4$\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\x12\x66\n\tgetProofs\x12+.org.dash.platform.dapi.v0.GetProofsRequest\x1a,.org.dash.platform.dapi.v0.GetProofsResponse\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\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\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.GetCurrentQuorumsInfoResponseb\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=26114, - serialized_end=26204, + serialized_start=31512, + serialized_end=31602, ) _sym_db.RegisterEnumDescriptor(_KEYPURPOSE) @@ -125,8 +125,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7011, - serialized_end=7091, + serialized_start=9342, + serialized_end=9422, ) _sym_db.RegisterEnumDescriptor(_GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST_DOCUMENTCONTESTEDSTATUS) @@ -160,8 +160,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7241, - serialized_end=7303, + serialized_start=9572, + serialized_end=9634, ) _sym_db.RegisterEnumDescriptor(_GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST_TYPE) @@ -190,8 +190,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=19256, - serialized_end=19329, + serialized_start=21587, + serialized_end=21660, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_RESULTTYPE) @@ -220,8 +220,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=20243, - serialized_end=20322, + serialized_start=22574, + serialized_end=22653, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO_FINISHEDVOTEOUTCOME) @@ -250,8 +250,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=23951, - serialized_end=24012, + serialized_start=26282, + serialized_end=26343, ) _sym_db.RegisterEnumDescriptor(_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE_VOTECHOICETYPE) @@ -2106,84 +2106,111 @@ ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST = _descriptor.Descriptor( - name='DocumentRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest', +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0 = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksByIdsRequestV0', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.contract_id', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='epoch', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.epoch', index=0, + number=1, 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), _descriptor.FieldDescriptor( - name='document_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='ids', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.ids', index=1, + number=2, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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='document_type_keeps_history', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_type_keeps_history', index=2, + name='prove', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prove', index=2, number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, 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='_epoch', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0._epoch', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6410, + serialized_end=6514, +) + +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksByIdsRequest', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ _descriptor.FieldDescriptor( - name='document_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_id', index=3, - number=4, 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), - _descriptor.FieldDescriptor( - name='document_contested_status', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_contested_status', index=4, - number=5, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.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=[], + nested_types=[_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0, ], enum_types=[ - _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST_DOCUMENTCONTESTEDSTATUS, ], serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=6750, - serialized_end=7091, + serialized_start=6233, + serialized_end=6525, ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST = _descriptor.Descriptor( - name='IdentityRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest', + +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODEPROPOSEDBLOCKS = _descriptor.Descriptor( + name='EvonodeProposedBlocks', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identity_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.identity_id', index=0, + name='pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.pro_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), _descriptor.FieldDescriptor( - name='request_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.request_type', index=1, - number=2, type=14, cpp_type=8, label=1, + name='count', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.count', 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, @@ -2193,7 +2220,6 @@ ], nested_types=[], enum_types=[ - _GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST_TYPE, ], serialized_options=None, is_extendable=False, @@ -2201,22 +2227,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7094, - serialized_end=7303, + serialized_start=7031, + serialized_end=7090, ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0_CONTRACTREQUEST = _descriptor.Descriptor( - name='ContractRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest', +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS = _descriptor.Descriptor( + name='EvonodesProposedBlocks', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.contract_id', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='evonodes_proposed_block_counts', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.evonodes_proposed_block_counts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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), @@ -2232,57 +2258,43 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7305, - serialized_end=7343, + serialized_start=7093, + serialized_end=7289, ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST_CONTESTEDRESOURCEVOTESTATUSREQUEST = _descriptor.Descriptor( - name='ContestedResourceVoteStatusRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest', +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0 = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksResponseV0', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.contract_id', 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), - _descriptor.FieldDescriptor( - name='document_type_name', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.document_type_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='index_name', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.index_name', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='evonodes_proposed_block_counts_info', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.evonodes_proposed_block_counts_info', 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='index_values', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.index_values', index=3, - number=4, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='proof', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.proof', 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='voter_identifier', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.voter_identifier', index=4, - number=5, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='metadata', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.metadata', 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=[], + nested_types=[_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODEPROPOSEDBLOCKS, _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS, ], enum_types=[ ], serialized_options=None, @@ -2290,21 +2302,26 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=7536, - serialized_end=7689, + serialized_start=6693, + serialized_end=7299, ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST = _descriptor.Descriptor( - name='VoteStatusRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest', +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksResponse', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_vote_status_request', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.contested_resource_vote_status_request', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.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, @@ -2313,7 +2330,7 @@ ], extensions=[ ], - nested_types=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST_CONTESTEDRESOURCEVOTESTATUSREQUEST, ], + nested_types=[_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -2322,55 +2339,63 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='request_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.request_type', + name='version', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7346, - serialized_end=7705, + serialized_start=6528, + serialized_end=7310, ) -_GETPROOFSREQUEST_GETPROOFSREQUESTV0 = _descriptor.Descriptor( - name='GetProofsRequestV0', - full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0', + +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0 = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksByRangeRequestV0', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identities', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='epoch', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.epoch', index=0, + number=1, 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), _descriptor.FieldDescriptor( - name='contracts', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='limit', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.limit', 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), _descriptor.FieldDescriptor( - name='documents', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='start_after', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.start_after', 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), _descriptor.FieldDescriptor( - name='votes', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='start_at', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.start_at', index=3, + number=4, 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), + _descriptor.FieldDescriptor( + name='prove', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prove', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_CONTRACTREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -2378,21 +2403,36 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='start', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.start', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_epoch', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0._epoch', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_limit', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0._limit', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=6332, - serialized_end=7705, + serialized_start=7497, + serialized_end=7672, ) -_GETPROOFSREQUEST = _descriptor.Descriptor( - name='GetProofsRequest', - full_name='org.dash.platform.dapi.v0.GetProofsRequest', +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST = _descriptor.Descriptor( + name='GetEvonodesProposedEpochBlocksByRangeRequest', + full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest', 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.GetProofsRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.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, @@ -2401,7 +2441,7 @@ ], extensions=[ ], - nested_types=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0, ], + nested_types=[_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -2410,35 +2450,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProofsRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6233, - serialized_end=7716, + serialized_start=7313, + serialized_end=7683, ) -_GETPROOFSRESPONSE_GETPROOFSRESPONSEV0 = _descriptor.Descriptor( - name='GetProofsResponseV0', - full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0', +_GETIDENTITIESBALANCESREQUEST_GETIDENTITIESBALANCESREQUESTV0 = _descriptor.Descriptor( + name='GetIdentitiesBalancesRequestV0', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='proof', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.proof', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='ids', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.ids', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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='metadata', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.metadata', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='prove', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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), @@ -2453,26 +2493,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=7821, - serialized_end=7966, + serialized_start=7820, + serialized_end=7880, ) -_GETPROOFSRESPONSE = _descriptor.Descriptor( - name='GetProofsResponse', - full_name='org.dash.platform.dapi.v0.GetProofsResponse', +_GETIDENTITIESBALANCESREQUEST = _descriptor.Descriptor( + name='GetIdentitiesBalancesRequest', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest', 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.GetProofsResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.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, @@ -2481,7 +2516,7 @@ ], extensions=[ ], - nested_types=[_GETPROOFSRESPONSE_GETPROOFSRESPONSEV0, ], + nested_types=[_GETIDENTITIESBALANCESREQUEST_GETIDENTITIESBALANCESREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -2490,35 +2525,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProofsResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7719, - serialized_end=7977, + serialized_start=7686, + serialized_end=7891, ) -_GETDATACONTRACTREQUEST_GETDATACONTRACTREQUESTV0 = _descriptor.Descriptor( - name='GetDataContractRequestV0', - full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0', +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE = _descriptor.Descriptor( + name='IdentityBalance', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.id', index=0, + name='identity_id', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.identity_id', 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), _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='balance', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.balance', 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=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), @@ -2533,30 +2568,35 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='_balance', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance._balance', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=8096, - serialized_end=8149, + serialized_start=8322, + serialized_end=8394, ) -_GETDATACONTRACTREQUEST = _descriptor.Descriptor( - name='GetDataContractRequest', - full_name='org.dash.platform.dapi.v0.GetDataContractRequest', +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES = _descriptor.Descriptor( + name='IdentitiesBalances', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances', 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.GetDataContractRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='entries', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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=[_GETDATACONTRACTREQUEST_GETDATACONTRACTREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -2564,41 +2604,35 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=7980, - serialized_end=8160, + serialized_start=8397, + serialized_end=8540, ) - -_GETDATACONTRACTRESPONSE_GETDATACONTRACTRESPONSEV0 = _descriptor.Descriptor( - name='GetDataContractResponseV0', - full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0', +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0 = _descriptor.Descriptor( + name='GetIdentitiesBalancesResponseV0', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contract', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.data_contract', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='identities_balances', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.identities_balances', 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='proof', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.metadata', 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, @@ -2607,7 +2641,7 @@ ], extensions=[ ], - nested_types=[], + nested_types=[_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE, _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES, ], enum_types=[ ], serialized_options=None, @@ -2616,25 +2650,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8283, - serialized_end=8459, + serialized_start=8032, + serialized_end=8550, ) -_GETDATACONTRACTRESPONSE = _descriptor.Descriptor( - name='GetDataContractResponse', - full_name='org.dash.platform.dapi.v0.GetDataContractResponse', +_GETIDENTITIESBALANCESRESPONSE = _descriptor.Descriptor( + name='GetIdentitiesBalancesResponse', + full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse', 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.GetDataContractResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.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, @@ -2643,7 +2677,7 @@ ], extensions=[ ], - nested_types=[_GETDATACONTRACTRESPONSE_GETDATACONTRACTRESPONSEV0, ], + nested_types=[_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -2652,110 +2686,95 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8163, - serialized_end=8470, + serialized_start=7894, + serialized_end=8561, ) -_GETDATACONTRACTSREQUEST_GETDATACONTRACTSREQUESTV0 = _descriptor.Descriptor( - name='GetDataContractsRequestV0', - full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST = _descriptor.Descriptor( + name='DocumentRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='ids', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.ids', index=0, - number=1, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.contract_id', 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), _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='document_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_type', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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=8592, - serialized_end=8647, -) - -_GETDATACONTRACTSREQUEST = _descriptor.Descriptor( - name='GetDataContractsRequest', - full_name='org.dash.platform.dapi.v0.GetDataContractsRequest', - 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.GetDataContractsRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='document_type_keeps_history', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_type_keeps_history', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='document_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_id', index=3, + number=4, 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), + _descriptor.FieldDescriptor( + name='document_contested_status', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.document_contested_status', index=4, + number=5, type=14, cpp_type=8, 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=[_GETDATACONTRACTSREQUEST_GETDATACONTRACTSREQUESTV0, ], + nested_types=[], enum_types=[ + _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST_DOCUMENTCONTESTEDSTATUS, ], serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=8473, - serialized_end=8658, + serialized_start=9081, + serialized_end=9422, ) - -_GETDATACONTRACTSRESPONSE_DATACONTRACTENTRY = _descriptor.Descriptor( - name='DataContractEntry', - full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST = _descriptor.Descriptor( + name='IdentityRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identifier', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.identifier', index=0, + name='identity_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.identity_id', 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), _descriptor.FieldDescriptor( - name='data_contract', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.data_contract', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='request_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.request_type', index=1, + number=2, type=14, cpp_type=8, 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), @@ -2764,6 +2783,7 @@ ], nested_types=[], enum_types=[ + _GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST_TYPE, ], serialized_options=None, is_extendable=False, @@ -2771,22 +2791,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8783, - serialized_end=8874, + serialized_start=9425, + serialized_end=9634, ) -_GETDATACONTRACTSRESPONSE_DATACONTRACTS = _descriptor.Descriptor( - name='DataContracts', - full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0_CONTRACTREQUEST = _descriptor.Descriptor( + name='ContractRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contract_entries', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.data_contract_entries', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.contract_id', 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), @@ -2802,36 +2822,50 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8876, - serialized_end=8993, + serialized_start=9636, + serialized_end=9674, ) -_GETDATACONTRACTSRESPONSE_GETDATACONTRACTSRESPONSEV0 = _descriptor.Descriptor( - name='GetDataContractsResponseV0', - full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST_CONTESTEDRESOURCEVOTESTATUSREQUEST = _descriptor.Descriptor( + name='ContestedResourceVoteStatusRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contracts', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.data_contracts', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='contract_id', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.contract_id', 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), _descriptor.FieldDescriptor( - name='proof', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='document_type_name', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.document_type_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='index_name', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.index_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='index_values', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.index_values', index=3, + number=4, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='voter_identifier', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.voter_identifier', index=4, + number=5, 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), @@ -2846,26 +2880,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=8996, - serialized_end=9241, + serialized_start=9867, + serialized_end=10020, ) -_GETDATACONTRACTSRESPONSE = _descriptor.Descriptor( - name='GetDataContractsResponse', - full_name='org.dash.platform.dapi.v0.GetDataContractsResponse', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST = _descriptor.Descriptor( + name='VoteStatusRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest', 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.GetDataContractsResponse.v0', index=0, + name='contested_resource_vote_status_request', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.contested_resource_vote_status_request', 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, @@ -2874,7 +2903,7 @@ ], extensions=[ ], - nested_types=[_GETDATACONTRACTSRESPONSE_DATACONTRACTENTRY, _GETDATACONTRACTSRESPONSE_DATACONTRACTS, _GETDATACONTRACTSRESPONSE_GETDATACONTRACTSRESPONSEV0, ], + nested_types=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST_CONTESTEDRESOURCEVOTESTATUSREQUEST, ], enum_types=[ ], serialized_options=None, @@ -2883,63 +2912,55 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.version', + name='request_type', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.request_type', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8661, - serialized_end=9252, + serialized_start=9677, + serialized_end=10036, ) - -_GETDATACONTRACTHISTORYREQUEST_GETDATACONTRACTHISTORYREQUESTV0 = _descriptor.Descriptor( - name='GetDataContractHistoryRequestV0', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0', +_GETPROOFSREQUEST_GETPROOFSREQUESTV0 = _descriptor.Descriptor( + name='GetProofsRequestV0', + full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.id', 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), - _descriptor.FieldDescriptor( - name='limit', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.limit', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='identities', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.identities', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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='offset', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.offset', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='contracts', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.contracts', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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='start_at_ms', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.start_at_ms', index=3, - number=4, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='documents', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.documents', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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='prove', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prove', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='votes', full_name='org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.votes', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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=[], + nested_types=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_IDENTITYREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_CONTRACTREQUEST, _GETPROOFSREQUEST_GETPROOFSREQUESTV0_VOTESTATUSREQUEST, ], enum_types=[ ], serialized_options=None, @@ -2948,20 +2969,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9393, - serialized_end=9565, + serialized_start=8663, + serialized_end=10036, ) -_GETDATACONTRACTHISTORYREQUEST = _descriptor.Descriptor( - name='GetDataContractHistoryRequest', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest', +_GETPROOFSREQUEST = _descriptor.Descriptor( + name='GetProofsRequest', + full_name='org.dash.platform.dapi.v0.GetProofsRequest', 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.GetDataContractHistoryRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetProofsRequest.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, @@ -2970,7 +2991,7 @@ ], extensions=[ ], - nested_types=[_GETDATACONTRACTHISTORYREQUEST_GETDATACONTRACTHISTORYREQUESTV0, ], + nested_types=[_GETPROOFSREQUEST_GETPROOFSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -2979,35 +3000,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetProofsRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9255, - serialized_end=9576, + serialized_start=8564, + serialized_end=10047, ) -_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORYENTRY = _descriptor.Descriptor( - name='DataContractHistoryEntry', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry', +_GETPROOFSRESPONSE_GETPROOFSRESPONSEV0 = _descriptor.Descriptor( + name='GetProofsResponseV0', + full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='date', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.date', index=0, - number=1, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='proof', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.proof', 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='value', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.value', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='metadata', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.metadata', 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), @@ -3022,30 +3043,35 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=10016, - serialized_end=10071, + serialized_start=10152, + serialized_end=10297, ) -_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORY = _descriptor.Descriptor( - name='DataContractHistory', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory', +_GETPROOFSRESPONSE = _descriptor.Descriptor( + name='GetProofsResponse', + full_name='org.dash.platform.dapi.v0.GetProofsResponse', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contract_entries', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.data_contract_entries', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='v0', full_name='org.dash.platform.dapi.v0.GetProofsResponse.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=[], + nested_types=[_GETPROOFSRESPONSE_GETPROOFSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -3053,44 +3079,43 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetProofsResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=10074, - serialized_end=10244, + serialized_start=10050, + serialized_end=10308, ) -_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0 = _descriptor.Descriptor( - name='GetDataContractHistoryResponseV0', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0', + +_GETDATACONTRACTREQUEST_GETDATACONTRACTREQUESTV0 = _descriptor.Descriptor( + name='GetDataContractRequestV0', + full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contract_history', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.data_contract_history', 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='proof', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='id', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.id', 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), _descriptor.FieldDescriptor( - name='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='prove', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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=[_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORYENTRY, _GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORY, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -3098,26 +3123,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=9720, - serialized_end=10254, + serialized_start=10427, + serialized_end=10480, ) -_GETDATACONTRACTHISTORYRESPONSE = _descriptor.Descriptor( - name='GetDataContractHistoryResponse', - full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse', +_GETDATACONTRACTREQUEST = _descriptor.Descriptor( + name='GetDataContractRequest', + full_name='org.dash.platform.dapi.v0.GetDataContractRequest', 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.GetDataContractHistoryResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.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, @@ -3126,7 +3146,7 @@ ], extensions=[ ], - nested_types=[_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0, ], + nested_types=[_GETDATACONTRACTREQUEST_GETDATACONTRACTREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -3135,77 +3155,42 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9579, - serialized_end=10265, + serialized_start=10311, + serialized_end=10491, ) -_GETDOCUMENTSREQUEST_GETDOCUMENTSREQUESTV0 = _descriptor.Descriptor( - name='GetDocumentsRequestV0', - full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0', +_GETDATACONTRACTRESPONSE_GETDATACONTRACTRESPONSEV0 = _descriptor.Descriptor( + name='GetDataContractResponseV0', + full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='data_contract_id', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.data_contract_id', index=0, + name='data_contract', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.data_contract', 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), _descriptor.FieldDescriptor( - name='document_type', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.document_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='where', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.where', 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), - _descriptor.FieldDescriptor( - name='order_by', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.order_by', index=3, - number=4, 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), - _descriptor.FieldDescriptor( - name='limit', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.limit', index=4, - number=5, 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), - _descriptor.FieldDescriptor( - name='start_after', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start_after', index=5, - number=6, 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), - _descriptor.FieldDescriptor( - name='start_at', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start_at', index=6, - number=7, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='proof', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.proof', 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='prove', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prove', index=7, - number=8, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.metadata', 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), @@ -3221,25 +3206,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='start', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start', + name='result', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10376, - serialized_end=10563, + serialized_start=10614, + serialized_end=10790, ) -_GETDOCUMENTSREQUEST = _descriptor.Descriptor( - name='GetDocumentsRequest', - full_name='org.dash.platform.dapi.v0.GetDocumentsRequest', +_GETDATACONTRACTRESPONSE = _descriptor.Descriptor( + name='GetDataContractResponse', + full_name='org.dash.platform.dapi.v0.GetDataContractResponse', 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.GetDocumentsRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.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, @@ -3248,7 +3233,7 @@ ], extensions=[ ], - nested_types=[_GETDOCUMENTSREQUEST_GETDOCUMENTSREQUESTV0, ], + nested_types=[_GETDATACONTRACTRESPONSE_GETDATACONTRACTRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -3257,80 +3242,42 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10268, - serialized_end=10574, + serialized_start=10494, + serialized_end=10801, ) -_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0_DOCUMENTS = _descriptor.Descriptor( - name='Documents', - full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents', +_GETDATACONTRACTSREQUEST_GETDATACONTRACTSREQUESTV0 = _descriptor.Descriptor( + name='GetDataContractsRequestV0', + full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='documents', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.documents', index=0, + name='ids', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.ids', index=0, number=1, type=12, cpp_type=9, label=3, has_default_value=False, default_value=[], 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=10931, - serialized_end=10961, -) - -_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0 = _descriptor.Descriptor( - name='GetDocumentsResponseV0', - full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='documents', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.documents', 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='proof', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='prove', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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=[_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0_DOCUMENTS, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -3338,26 +3285,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=10688, - serialized_end=10971, + serialized_start=10923, + serialized_end=10978, ) -_GETDOCUMENTSRESPONSE = _descriptor.Descriptor( - name='GetDocumentsResponse', - full_name='org.dash.platform.dapi.v0.GetDocumentsResponse', +_GETDATACONTRACTSREQUEST = _descriptor.Descriptor( + name='GetDataContractsRequest', + full_name='org.dash.platform.dapi.v0.GetDataContractsRequest', 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.GetDocumentsResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.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, @@ -3366,7 +3308,7 @@ ], extensions=[ ], - nested_types=[_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0, ], + nested_types=[_GETDATACONTRACTSREQUEST_GETDATACONTRACTSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -3375,35 +3317,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractsRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=10577, - serialized_end=10982, + serialized_start=10804, + serialized_end=10989, ) -_GETIDENTITYBYPUBLICKEYHASHREQUEST_GETIDENTITYBYPUBLICKEYHASHREQUESTV0 = _descriptor.Descriptor( - name='GetIdentityByPublicKeyHashRequestV0', - full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0', +_GETDATACONTRACTSRESPONSE_DATACONTRACTENTRY = _descriptor.Descriptor( + name='DataContractEntry', + full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='public_key_hash', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.public_key_hash', index=0, + name='identifier', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.identifier', 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), _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='data_contract', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.data_contract', 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), @@ -3419,29 +3361,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11134, - serialized_end=11211, + serialized_start=11114, + serialized_end=11205, ) -_GETIDENTITYBYPUBLICKEYHASHREQUEST = _descriptor.Descriptor( - name='GetIdentityByPublicKeyHashRequest', - full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest', +_GETDATACONTRACTSRESPONSE_DATACONTRACTS = _descriptor.Descriptor( + name='DataContracts', + full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts', 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.GetIdentityByPublicKeyHashRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='data_contract_entries', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.data_contract_entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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=[_GETIDENTITYBYPUBLICKEYHASHREQUEST_GETIDENTITYBYPUBLICKEYHASHREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -3449,41 +3391,35 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=10985, - serialized_end=11222, + serialized_start=11207, + serialized_end=11324, ) - -_GETIDENTITYBYPUBLICKEYHASHRESPONSE_GETIDENTITYBYPUBLICKEYHASHRESPONSEV0 = _descriptor.Descriptor( - name='GetIdentityByPublicKeyHashResponseV0', - full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0', +_GETDATACONTRACTSRESPONSE_GETDATACONTRACTSRESPONSEV0 = _descriptor.Descriptor( + name='GetDataContractsResponseV0', + full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identity', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.identity', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='data_contracts', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.data_contracts', 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='proof', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.metadata', 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, @@ -3501,25 +3437,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11378, - serialized_end=11560, + serialized_start=11327, + serialized_end=11572, ) -_GETIDENTITYBYPUBLICKEYHASHRESPONSE = _descriptor.Descriptor( - name='GetIdentityByPublicKeyHashResponse', - full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse', +_GETDATACONTRACTSRESPONSE = _descriptor.Descriptor( + name='GetDataContractsResponse', + full_name='org.dash.platform.dapi.v0.GetDataContractsResponse', 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.GetIdentityByPublicKeyHashResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.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, @@ -3528,7 +3464,7 @@ ], extensions=[ ], - nested_types=[_GETIDENTITYBYPUBLICKEYHASHRESPONSE_GETIDENTITYBYPUBLICKEYHASHRESPONSEV0, ], + nested_types=[_GETDATACONTRACTSRESPONSE_DATACONTRACTENTRY, _GETDATACONTRACTSRESPONSE_DATACONTRACTS, _GETDATACONTRACTSRESPONSE_GETDATACONTRACTSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -3537,34 +3473,55 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractsResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11225, - serialized_end=11571, + serialized_start=10992, + serialized_end=11583, ) -_WAITFORSTATETRANSITIONRESULTREQUEST_WAITFORSTATETRANSITIONRESULTREQUESTV0 = _descriptor.Descriptor( - name='WaitForStateTransitionResultRequestV0', - full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0', +_GETDATACONTRACTHISTORYREQUEST_GETDATACONTRACTHISTORYREQUESTV0 = _descriptor.Descriptor( + name='GetDataContractHistoryRequestV0', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='state_transition_hash', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.state_transition_hash', index=0, + name='id', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.id', 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), _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, + name='limit', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.limit', 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='offset', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.offset', 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), + _descriptor.FieldDescriptor( + name='start_at_ms', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.start_at_ms', index=3, + number=4, 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='prove', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prove', index=4, + number=5, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -3581,20 +3538,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=11729, - serialized_end=11814, + serialized_start=11724, + serialized_end=11896, ) -_WAITFORSTATETRANSITIONRESULTREQUEST = _descriptor.Descriptor( - name='WaitForStateTransitionResultRequest', - full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest', - filename=None, - file=DESCRIPTOR, +_GETDATACONTRACTHISTORYREQUEST = _descriptor.Descriptor( + name='GetDataContractHistoryRequest', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest', + 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.WaitForStateTransitionResultRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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, @@ -3603,7 +3560,7 @@ ], extensions=[ ], - nested_types=[_WAITFORSTATETRANSITIONRESULTREQUEST_WAITFORSTATETRANSITIONRESULTREQUESTV0, ], + nested_types=[_GETDATACONTRACTHISTORYREQUEST_GETDATACONTRACTHISTORYREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -3612,42 +3569,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11574, - serialized_end=11825, + serialized_start=11586, + serialized_end=11907, ) -_WAITFORSTATETRANSITIONRESULTRESPONSE_WAITFORSTATETRANSITIONRESULTRESPONSEV0 = _descriptor.Descriptor( - name='WaitForStateTransitionResultResponseV0', - full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0', +_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORYENTRY = _descriptor.Descriptor( + name='DataContractHistoryEntry', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='error', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.error', 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='proof', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='date', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.date', 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='metadata', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='value', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.value', 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), @@ -3662,35 +3612,30 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=11987, - serialized_end=12226, + serialized_start=12347, + serialized_end=12402, ) -_WAITFORSTATETRANSITIONRESULTRESPONSE = _descriptor.Descriptor( - name='WaitForStateTransitionResultResponse', - full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse', +_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORY = _descriptor.Descriptor( + name='DataContractHistory', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory', 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.WaitForStateTransitionResultResponse.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='data_contract_entries', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.data_contract_entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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=[_WAITFORSTATETRANSITIONRESULTRESPONSE_WAITFORSTATETRANSITIONRESULTRESPONSEV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -3698,43 +3643,44 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=11828, - serialized_end=12237, + serialized_start=12405, + serialized_end=12575, ) - -_GETCONSENSUSPARAMSREQUEST_GETCONSENSUSPARAMSREQUESTV0 = _descriptor.Descriptor( - name='GetConsensusParamsRequestV0', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0', +_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0 = _descriptor.Descriptor( + name='GetDataContractHistoryResponseV0', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0', 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.GetConsensusParamsRequest.GetConsensusParamsRequestV0.height', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, + name='data_contract_history', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.data_contract_history', 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='prove', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='proof', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.metadata', 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=[], + nested_types=[_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORYENTRY, _GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0_DATACONTRACTHISTORY, ], enum_types=[ ], serialized_options=None, @@ -3742,21 +3688,26 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=12365, - serialized_end=12425, + serialized_start=12051, + serialized_end=12585, ) -_GETCONSENSUSPARAMSREQUEST = _descriptor.Descriptor( - name='GetConsensusParamsRequest', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest', +_GETDATACONTRACTHISTORYRESPONSE = _descriptor.Descriptor( + name='GetDataContractHistoryResponse', + full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse', 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.GetConsensusParamsRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.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, @@ -3765,7 +3716,7 @@ ], extensions=[ ], - nested_types=[_GETCONSENSUSPARAMSREQUEST_GETCONSENSUSPARAMSREQUESTV0, ], + nested_types=[_GETDATACONTRACTHISTORYRESPONSE_GETDATACONTRACTHISTORYRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -3774,125 +3725,77 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDataContractHistoryResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12240, - serialized_end=12436, + serialized_start=11910, + serialized_end=12596, ) -_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSBLOCK = _descriptor.Descriptor( - name='ConsensusParamsBlock', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock', +_GETDOCUMENTSREQUEST_GETDOCUMENTSREQUESTV0 = _descriptor.Descriptor( + name='GetDocumentsRequestV0', + full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='max_bytes', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.max_bytes', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='data_contract_id', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.data_contract_id', 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), _descriptor.FieldDescriptor( - name='max_gas', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.max_gas', index=1, + name='document_type', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.document_type', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), 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='time_iota_ms', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.time_iota_ms', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='where', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.where', 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=12567, - serialized_end=12647, -) - -_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSEVIDENCE = _descriptor.Descriptor( - name='ConsensusParamsEvidence', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ _descriptor.FieldDescriptor( - name='max_age_num_blocks', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_age_num_blocks', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='order_by', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.order_by', index=3, + number=4, 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), _descriptor.FieldDescriptor( - name='max_age_duration', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_age_duration', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='limit', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.limit', index=4, + number=5, 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), _descriptor.FieldDescriptor( - name='max_bytes', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_bytes', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='start_after', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start_after', index=5, + number=6, 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=12649, - serialized_end=12747, -) - -_GETCONSENSUSPARAMSRESPONSE_GETCONSENSUSPARAMSRESPONSEV0 = _descriptor.Descriptor( - name='GetConsensusParamsResponseV0', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ _descriptor.FieldDescriptor( - name='block', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.block', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='start_at', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start_at', index=6, + number=7, 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), _descriptor.FieldDescriptor( - name='evidence', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.evidence', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='prove', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prove', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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), @@ -3907,21 +3810,26 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='start', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.start', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=12750, - serialized_end=12968, + serialized_start=12707, + serialized_end=12894, ) -_GETCONSENSUSPARAMSRESPONSE = _descriptor.Descriptor( - name='GetConsensusParamsResponse', - full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse', +_GETDOCUMENTSREQUEST = _descriptor.Descriptor( + name='GetDocumentsRequest', + full_name='org.dash.platform.dapi.v0.GetDocumentsRequest', 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.GetConsensusParamsResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.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, @@ -3930,7 +3838,7 @@ ], extensions=[ ], - nested_types=[_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSBLOCK, _GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSEVIDENCE, _GETCONSENSUSPARAMSRESPONSE_GETCONSENSUSPARAMSRESPONSEV0, ], + nested_types=[_GETDOCUMENTSREQUEST_GETDOCUMENTSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -3939,28 +3847,28 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetDocumentsRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12439, - serialized_end=12979, + serialized_start=12599, + serialized_end=12905, ) -_GETPROTOCOLVERSIONUPGRADESTATEREQUEST_GETPROTOCOLVERSIONUPGRADESTATEREQUESTV0 = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeStateRequestV0', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0', +_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0_DOCUMENTS = _descriptor.Descriptor( + name='Documents', + full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prove', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='documents', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.documents', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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), @@ -3976,29 +3884,43 @@ extension_ranges=[], oneofs=[ ], - serialized_start=13143, - serialized_end=13199, + serialized_start=13262, + serialized_end=13292, ) -_GETPROTOCOLVERSIONUPGRADESTATEREQUEST = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeStateRequest', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest', +_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0 = _descriptor.Descriptor( + name='GetDocumentsResponseV0', + full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0', 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.GetProtocolVersionUpgradeStateRequest.v0', index=0, + name='documents', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.documents', 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='proof', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.metadata', 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=[_GETPROTOCOLVERSIONUPGRADESTATEREQUEST_GETPROTOCOLVERSIONUPGRADESTATEREQUESTV0, ], + nested_types=[_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0_DOCUMENTS, ], enum_types=[ ], serialized_options=None, @@ -4007,35 +3929,34 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.version', + name='result', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=12982, - serialized_end=13210, + serialized_start=13019, + serialized_end=13302, ) - -_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONS = _descriptor.Descriptor( - name='Versions', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions', +_GETDOCUMENTSRESPONSE = _descriptor.Descriptor( + name='GetDocumentsResponse', + full_name='org.dash.platform.dapi.v0.GetDocumentsResponse', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='v0', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.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=[], + nested_types=[_GETDOCUMENTSRESPONSE_GETDOCUMENTSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -4043,82 +3964,43 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetDocumentsResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=13675, - serialized_end=13825, + serialized_start=12908, + serialized_end=13313, ) -_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONENTRY = _descriptor.Descriptor( - name='VersionEntry', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='version_number', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.version_number', index=0, - number=1, 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), - _descriptor.FieldDescriptor( - name='vote_count', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.vote_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=13827, - serialized_end=13885, -) -_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0 = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeStateResponseV0', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0', +_GETIDENTITYBYPUBLICKEYHASHREQUEST_GETIDENTITYBYPUBLICKEYHASHREQUESTV0 = _descriptor.Descriptor( + name='GetIdentityByPublicKeyHashRequestV0', + full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.versions', 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='proof', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='public_key_hash', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.public_key_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), _descriptor.FieldDescriptor( - name='metadata', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='prove', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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=[_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONS, _GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONENTRY, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -4126,26 +4008,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=13378, - serialized_end=13895, + serialized_start=13465, + serialized_end=13542, ) -_GETPROTOCOLVERSIONUPGRADESTATERESPONSE = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeStateResponse', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse', +_GETIDENTITYBYPUBLICKEYHASHREQUEST = _descriptor.Descriptor( + name='GetIdentityByPublicKeyHashRequest', + full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest', 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.GetProtocolVersionUpgradeStateResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.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, @@ -4154,7 +4031,7 @@ ], extensions=[ ], - nested_types=[_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0, ], + nested_types=[_GETIDENTITYBYPUBLICKEYHASHREQUEST_GETIDENTITYBYPUBLICKEYHASHREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -4163,42 +4040,42 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13213, - serialized_end=13906, + serialized_start=13316, + serialized_end=13553, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUESTV0 = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeVoteStatusRequestV0', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0', +_GETIDENTITYBYPUBLICKEYHASHRESPONSE_GETIDENTITYBYPUBLICKEYHASHRESPONSEV0 = _descriptor.Descriptor( + name='GetIdentityByPublicKeyHashResponseV0', + full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.start_pro_tx_hash', index=0, + name='identity', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.identity', 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), _descriptor.FieldDescriptor( - name='count', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.count', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='proof', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.proof', 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='prove', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prove', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='metadata', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.metadata', 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), @@ -4213,21 +4090,26 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=14086, - serialized_end=14189, + serialized_start=13709, + serialized_end=13891, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeVoteStatusRequest', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest', +_GETIDENTITYBYPUBLICKEYHASHRESPONSE = _descriptor.Descriptor( + name='GetIdentityByPublicKeyHashResponse', + full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse', 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.GetProtocolVersionUpgradeVoteStatusRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.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, @@ -4236,7 +4118,7 @@ ], extensions=[ ], - nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUESTV0, ], + nested_types=[_GETIDENTITYBYPUBLICKEYHASHRESPONSE_GETIDENTITYBYPUBLICKEYHASHRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -4245,28 +4127,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=13909, - serialized_end=14200, + serialized_start=13556, + serialized_end=13902, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNALS = _descriptor.Descriptor( - name='VersionSignals', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals', +_WAITFORSTATETRANSITIONRESULTREQUEST_WAITFORSTATETRANSITIONRESULTREQUESTV0 = _descriptor.Descriptor( + name='WaitForStateTransitionResultRequestV0', + full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='version_signals', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.version_signals', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='state_transition_hash', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.state_transition_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), + _descriptor.FieldDescriptor( + name='prove', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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), @@ -4282,36 +4171,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=14703, - serialized_end=14878, + serialized_start=14060, + serialized_end=14145, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNAL = _descriptor.Descriptor( - name='VersionSignal', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal', +_WAITFORSTATETRANSITIONRESULTREQUEST = _descriptor.Descriptor( + name='WaitForStateTransitionResultRequest', + full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.pro_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), - _descriptor.FieldDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.version', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='v0', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.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=[], + nested_types=[_WAITFORSTATETRANSITIONRESULTREQUEST_WAITFORSTATETRANSITIONRESULTREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -4319,35 +4201,41 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=14880, - serialized_end=14933, + serialized_start=13905, + serialized_end=14156, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0 = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeVoteStatusResponseV0', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0', + +_WAITFORSTATETRANSITIONRESULTRESPONSE_WAITFORSTATETRANSITIONRESULTRESPONSEV0 = _descriptor.Descriptor( + name='WaitForStateTransitionResultResponseV0', + full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.versions', index=0, + name='error', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.error', 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='proof', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.metadata', 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, @@ -4356,7 +4244,7 @@ ], extensions=[ ], - nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNALS, _GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNAL, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -4365,25 +4253,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14384, - serialized_end=14943, + serialized_start=14318, + serialized_end=14557, ) -_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE = _descriptor.Descriptor( - name='GetProtocolVersionUpgradeVoteStatusResponse', - full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse', +_WAITFORSTATETRANSITIONRESULTRESPONSE = _descriptor.Descriptor( + name='WaitForStateTransitionResultResponse', + full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse', 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.GetProtocolVersionUpgradeVoteStatusResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.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, @@ -4392,7 +4280,7 @@ ], extensions=[ ], - nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0, ], + nested_types=[_WAITFORSTATETRANSITIONRESULTRESPONSE_WAITFORSTATETRANSITIONRESULTRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -4401,48 +4289,34 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14203, - serialized_end=14954, + serialized_start=14159, + serialized_end=14568, ) -_GETEPOCHSINFOREQUEST_GETEPOCHSINFOREQUESTV0 = _descriptor.Descriptor( - name='GetEpochsInfoRequestV0', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0', +_GETCONSENSUSPARAMSREQUEST_GETCONSENSUSPARAMSREQUESTV0 = _descriptor.Descriptor( + name='GetConsensusParamsRequestV0', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_epoch', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.start_epoch', 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='count', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.count', index=1, - number=2, type=13, cpp_type=3, label=1, + name='height', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.height', index=0, + number=1, type=5, cpp_type=1, 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='ascending', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.ascending', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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='prove', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prove', index=3, - number=4, type=8, cpp_type=7, label=1, + name='prove', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -4459,20 +4333,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15067, - serialized_end=15191, + serialized_start=14696, + serialized_end=14756, ) -_GETEPOCHSINFOREQUEST = _descriptor.Descriptor( - name='GetEpochsInfoRequest', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest', +_GETCONSENSUSPARAMSREQUEST = _descriptor.Descriptor( + name='GetConsensusParamsRequest', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest', 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.GetEpochsInfoRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.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, @@ -4481,7 +4355,7 @@ ], extensions=[ ], - nested_types=[_GETEPOCHSINFOREQUEST_GETEPOCHSINFOREQUESTV0, ], + nested_types=[_GETCONSENSUSPARAMSREQUEST_GETCONSENSUSPARAMSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -4490,28 +4364,42 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetConsensusParamsRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=14957, - serialized_end=15202, + serialized_start=14571, + serialized_end=14767, ) -_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFOS = _descriptor.Descriptor( - name='EpochInfos', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos', +_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSBLOCK = _descriptor.Descriptor( + name='ConsensusParamsBlock', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='epoch_infos', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epoch_infos', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='max_bytes', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.max_bytes', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='max_gas', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.max_gas', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='time_iota_ms', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.time_iota_ms', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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), @@ -4527,57 +4415,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15563, - serialized_end=15680, + serialized_start=14898, + serialized_end=14978, ) -_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFO = _descriptor.Descriptor( - name='EpochInfo', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo', +_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSEVIDENCE = _descriptor.Descriptor( + name='ConsensusParamsEvidence', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='number', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.number', index=0, - number=1, 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), - _descriptor.FieldDescriptor( - name='first_block_height', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.first_block_height', 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=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='first_core_block_height', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.first_core_block_height', index=2, - number=3, 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), - _descriptor.FieldDescriptor( - name='start_time', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.start_time', index=3, - number=4, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='max_age_num_blocks', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_age_num_blocks', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='fee_multiplier', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.fee_multiplier', index=4, - number=5, type=1, cpp_type=5, label=1, - has_default_value=False, default_value=float(0), + name='max_age_duration', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_age_duration', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='protocol_version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.protocol_version', index=5, - number=6, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='max_bytes', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.max_bytes', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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), @@ -4593,43 +4460,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15683, - serialized_end=15841, + serialized_start=14980, + serialized_end=15078, ) -_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0 = _descriptor.Descriptor( - name='GetEpochsInfoResponseV0', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0', +_GETCONSENSUSPARAMSRESPONSE_GETCONSENSUSPARAMSRESPONSEV0 = _descriptor.Descriptor( + name='GetConsensusParamsResponseV0', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='epochs', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.epochs', index=0, + name='block', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.block', 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='proof', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.proof', index=1, + name='evidence', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.evidence', 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='metadata', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.metadata', 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=[_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFOS, _GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFO, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -4637,26 +4497,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=15319, - serialized_end=15851, + serialized_start=15081, + serialized_end=15299, ) -_GETEPOCHSINFORESPONSE = _descriptor.Descriptor( - name='GetEpochsInfoResponse', - full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse', +_GETCONSENSUSPARAMSRESPONSE = _descriptor.Descriptor( + name='GetConsensusParamsResponse', + full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse', 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.GetEpochsInfoResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.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, @@ -4665,7 +4520,7 @@ ], extensions=[ ], - nested_types=[_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0, ], + nested_types=[_GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSBLOCK, _GETCONSENSUSPARAMSRESPONSE_CONSENSUSPARAMSEVIDENCE, _GETCONSENSUSPARAMSRESPONSE_GETCONSENSUSPARAMSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -4674,34 +4529,27 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetConsensusParamsResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=15205, - serialized_end=15862, + serialized_start=14770, + serialized_end=15310, ) -_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0_STARTATVALUEINFO = _descriptor.Descriptor( - name='StartAtValueInfo', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo', +_GETPROTOCOLVERSIONUPGRADESTATEREQUEST_GETPROTOCOLVERSIONUPGRADESTATEREQUESTV0 = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeStateRequestV0', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_value', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.start_value', 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), - _descriptor.FieldDescriptor( - name='start_value_included', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.start_value_included', index=1, - number=2, type=8, cpp_type=7, label=1, + name='prove', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prove', index=0, + number=1, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -4718,85 +4566,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16357, - serialized_end=16426, + serialized_start=15474, + serialized_end=15530, ) -_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0 = _descriptor.Descriptor( - name='GetContestedResourcesRequestV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0', +_GETPROTOCOLVERSIONUPGRADESTATEREQUEST = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeStateRequest', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.contract_id', 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), - _descriptor.FieldDescriptor( - name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.document_type_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.index_name', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='start_index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.start_index_values', index=3, - number=4, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], - 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='end_index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.end_index_values', index=4, - number=5, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], - 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='start_at_value_info', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.start_at_value_info', index=5, - number=6, type=11, cpp_type=10, label=1, + name='v0', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.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), - _descriptor.FieldDescriptor( - name='count', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.count', index=6, - number=7, 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), - _descriptor.FieldDescriptor( - name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.order_ascending', index=7, - number=8, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prove', index=8, - number=9, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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=[_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0_STARTATVALUEINFO, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADESTATEREQUEST_GETPROTOCOLVERSIONUPGRADESTATEREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -4805,39 +4597,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_start_at_value_info', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0._start_at_value_info', + name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), - _descriptor.OneofDescriptor( - name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0._count', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=16000, - serialized_end=16460, + serialized_start=15313, + serialized_end=15541, ) -_GETCONTESTEDRESOURCESREQUEST = _descriptor.Descriptor( - name='GetContestedResourcesRequest', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest', + +_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONS = _descriptor.Descriptor( + name='Versions', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions', 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.GetContestedResourcesRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.versions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], 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=[_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -4845,29 +4633,30 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=15865, - serialized_end=16471, + serialized_start=16006, + serialized_end=16156, ) - -_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0_CONTESTEDRESOURCEVALUES = _descriptor.Descriptor( - name='ContestedResourceValues', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues', +_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONENTRY = _descriptor.Descriptor( + name='VersionEntry', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.contested_resource_values', index=0, - number=1, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='version_number', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.version_number', index=0, + number=1, 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), + _descriptor.FieldDescriptor( + name='vote_count', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.vote_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), @@ -4883,34 +4672,34 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16913, - serialized_end=16973, + serialized_start=16158, + serialized_end=16216, ) -_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0 = _descriptor.Descriptor( - name='GetContestedResourcesResponseV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0', +_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0 = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeStateResponseV0', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.contested_resource_values', index=0, + name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.versions', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.metadata', 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, @@ -4919,7 +4708,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0_CONTESTEDRESOURCEVALUES, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONS, _GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0_VERSIONENTRY, ], enum_types=[ ], serialized_options=None, @@ -4928,25 +4717,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16612, - serialized_end=16983, + serialized_start=15709, + serialized_end=16226, ) -_GETCONTESTEDRESOURCESRESPONSE = _descriptor.Descriptor( - name='GetContestedResourcesResponse', - full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse', +_GETPROTOCOLVERSIONUPGRADESTATERESPONSE = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeStateResponse', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse', 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.GetContestedResourcesResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.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, @@ -4955,7 +4744,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADESTATERESPONSE_GETPROTOCOLVERSIONUPGRADESTATERESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -4964,72 +4753,41 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16474, - serialized_end=16994, + serialized_start=15544, + serialized_end=16237, ) -_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_STARTATTIMEINFO = _descriptor.Descriptor( - name='StartAtTimeInfo', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUESTV0 = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeVoteStatusRequestV0', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_time_ms', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.start_time_ms', 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='start_time_included', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.start_time_included', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='start_pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.start_pro_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=[ - ], - serialized_start=17507, - serialized_end=17576, -) - -_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_ENDATTIMEINFO = _descriptor.Descriptor( - name='EndAtTimeInfo', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ _descriptor.FieldDescriptor( - name='end_time_ms', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.end_time_ms', index=0, - number=1, type=4, cpp_type=4, label=1, + name='count', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.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), _descriptor.FieldDescriptor( - name='end_time_included', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.end_time_included', index=1, - number=2, type=8, cpp_type=7, label=1, + name='prove', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prove', index=2, + number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -5046,106 +4804,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17578, - serialized_end=17641, -) - -_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0 = _descriptor.Descriptor( - name='GetVotePollsByEndDateRequestV0', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='start_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.start_time_info', 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='end_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.end_time_info', 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='limit', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.limit', index=2, - number=3, 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), - _descriptor.FieldDescriptor( - name='offset', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.offset', index=3, - number=4, 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), - _descriptor.FieldDescriptor( - name='ascending', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.ascending', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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='prove', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prove', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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=[_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_STARTATTIMEINFO, _GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_ENDATTIMEINFO, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='_start_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._start_time_info', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - _descriptor.OneofDescriptor( - name='_end_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._end_time_info', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - _descriptor.OneofDescriptor( - name='_limit', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._limit', - index=2, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - _descriptor.OneofDescriptor( - name='_offset', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._offset', - index=3, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=17132, - serialized_end=17700, + serialized_start=16417, + serialized_end=16520, ) -_GETVOTEPOLLSBYENDDATEREQUEST = _descriptor.Descriptor( - name='GetVotePollsByEndDateRequest', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeVoteStatusRequest', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest', 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.GetVotePollsByEndDateRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.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, @@ -5154,7 +4826,7 @@ ], extensions=[ ], - nested_types=[_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -5163,34 +4835,27 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=16997, - serialized_end=17711, + serialized_start=16240, + serialized_end=16531, ) -_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMP = _descriptor.Descriptor( - name='SerializedVotePollsByTimestamp', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNALS = _descriptor.Descriptor( + name='VersionSignals', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='timestamp', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.timestamp', 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='serialized_vote_polls', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serialized_vote_polls', index=1, - number=2, type=12, cpp_type=9, label=3, + name='version_signals', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.version_signals', index=0, + number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -5207,29 +4872,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18160, - serialized_end=18242, + serialized_start=17034, + serialized_end=17209, ) -_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMPS = _descriptor.Descriptor( - name='SerializedVotePollsByTimestamps', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNAL = _descriptor.Descriptor( + name='VersionSignal', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='vote_polls_by_timestamps', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.vote_polls_by_timestamps', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.pro_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), _descriptor.FieldDescriptor( - name='finished_results', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.finished_results', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.version', 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), @@ -5245,34 +4910,34 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18245, - serialized_end=18460, + serialized_start=17211, + serialized_end=17264, ) -_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0 = _descriptor.Descriptor( - name='GetVotePollsByEndDateResponseV0', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0 = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeVoteStatusResponseV0', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='vote_polls_by_timestamps', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.vote_polls_by_timestamps', index=0, + name='versions', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.versions', 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='proof', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.metadata', 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, @@ -5281,7 +4946,7 @@ ], extensions=[ ], - nested_types=[_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMP, _GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMPS, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNALS, _GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0_VERSIONSIGNAL, ], enum_types=[ ], serialized_options=None, @@ -5290,25 +4955,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=17852, - serialized_end=18470, + serialized_start=16715, + serialized_end=17274, ) -_GETVOTEPOLLSBYENDDATERESPONSE = _descriptor.Descriptor( - name='GetVotePollsByEndDateResponse', - full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse', +_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE = _descriptor.Descriptor( + name='GetProtocolVersionUpgradeVoteStatusResponse', + full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse', 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.GetVotePollsByEndDateResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.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, @@ -5317,7 +4982,7 @@ ], extensions=[ ], - nested_types=[_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0, ], + nested_types=[_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -5326,34 +4991,48 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=17714, - serialized_end=18481, + serialized_start=16534, + serialized_end=17285, ) -_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_STARTATIDENTIFIERINFO = _descriptor.Descriptor( - name='StartAtIdentifierInfo', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo', +_GETEPOCHSINFOREQUEST_GETEPOCHSINFOREQUESTV0 = _descriptor.Descriptor( + name='GetEpochsInfoRequestV0', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.start_identifier', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='start_epoch', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.start_epoch', 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='start_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.start_identifier_included', index=1, - number=2, type=8, cpp_type=7, label=1, + name='count', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.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), + _descriptor.FieldDescriptor( + name='ascending', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.ascending', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='prove', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prove', index=3, + number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -5370,87 +5049,1948 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19170, - serialized_end=19254, + serialized_start=17398, + serialized_end=17522, ) -_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0 = _descriptor.Descriptor( - name='GetContestedResourceVoteStateRequestV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0', +_GETEPOCHSINFOREQUEST = _descriptor.Descriptor( + name='GetEpochsInfoRequest', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.contract_id', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='v0', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.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), - _descriptor.FieldDescriptor( - name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.document_type_name', index=1, - number=2, type=9, cpp_type=9, label=1, + ], + extensions=[ + ], + nested_types=[_GETEPOCHSINFOREQUEST_GETEPOCHSINFOREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=17288, + serialized_end=17533, +) + + +_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFOS = _descriptor.Descriptor( + name='EpochInfos', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='epoch_infos', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.epoch_infos', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + 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=17894, + serialized_end=18011, +) + +_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFO = _descriptor.Descriptor( + name='EpochInfo', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='number', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.number', index=0, + number=1, 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), + _descriptor.FieldDescriptor( + name='first_block_height', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.first_block_height', 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=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='first_core_block_height', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.first_core_block_height', index=2, + number=3, 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), + _descriptor.FieldDescriptor( + name='start_time', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.start_time', index=3, + number=4, 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='fee_multiplier', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.fee_multiplier', index=4, + number=5, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(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='protocol_version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.protocol_version', index=5, + number=6, 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=18014, + serialized_end=18172, +) + +_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0 = _descriptor.Descriptor( + name='GetEpochsInfoResponseV0', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='epochs', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.epochs', 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='proof', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.metadata', 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=[_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFOS, _GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0_EPOCHINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=17650, + serialized_end=18182, +) + +_GETEPOCHSINFORESPONSE = _descriptor.Descriptor( + name='GetEpochsInfoResponse', + full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse', + 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.GetEpochsInfoResponse.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=[_GETEPOCHSINFORESPONSE_GETEPOCHSINFORESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetEpochsInfoResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=17536, + serialized_end=18193, +) + + +_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0_STARTATVALUEINFO = _descriptor.Descriptor( + name='StartAtValueInfo', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_value', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.start_value', 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), + _descriptor.FieldDescriptor( + name='start_value_included', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.start_value_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=18688, + serialized_end=18757, +) + +_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0 = _descriptor.Descriptor( + name='GetContestedResourcesRequestV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.contract_id', 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), + _descriptor.FieldDescriptor( + name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.document_type_name', index=1, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), 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='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.index_name', index=2, - number=3, type=9, cpp_type=9, label=1, + name='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.index_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='start_index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.start_index_values', index=3, + number=4, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='end_index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.end_index_values', index=4, + number=5, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='start_at_value_info', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.start_at_value_info', index=5, + number=6, 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='count', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.count', index=6, + number=7, 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), + _descriptor.FieldDescriptor( + name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.order_ascending', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prove', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=[_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0_STARTATVALUEINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_at_value_info', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0._start_at_value_info', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0._count', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=18331, + serialized_end=18791, +) + +_GETCONTESTEDRESOURCESREQUEST = _descriptor.Descriptor( + name='GetContestedResourcesRequest', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest', + 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.GetContestedResourcesRequest.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=[_GETCONTESTEDRESOURCESREQUEST_GETCONTESTEDRESOURCESREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourcesRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=18196, + serialized_end=18802, +) + + +_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0_CONTESTEDRESOURCEVALUES = _descriptor.Descriptor( + name='ContestedResourceValues', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contested_resource_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.contested_resource_values', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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=19244, + serialized_end=19304, +) + +_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0 = _descriptor.Descriptor( + name='GetContestedResourcesResponseV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contested_resource_values', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.contested_resource_values', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.metadata', 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=[_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0_CONTESTEDRESOURCEVALUES, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=18943, + serialized_end=19314, +) + +_GETCONTESTEDRESOURCESRESPONSE = _descriptor.Descriptor( + name='GetContestedResourcesResponse', + full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse', + 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.GetContestedResourcesResponse.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=[_GETCONTESTEDRESOURCESRESPONSE_GETCONTESTEDRESOURCESRESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourcesResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=18805, + serialized_end=19325, +) + + +_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_STARTATTIMEINFO = _descriptor.Descriptor( + name='StartAtTimeInfo', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_time_ms', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.start_time_ms', 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='start_time_included', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.start_time_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=19838, + serialized_end=19907, +) + +_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_ENDATTIMEINFO = _descriptor.Descriptor( + name='EndAtTimeInfo', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='end_time_ms', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.end_time_ms', 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='end_time_included', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.end_time_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=19909, + serialized_end=19972, +) + +_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0 = _descriptor.Descriptor( + name='GetVotePollsByEndDateRequestV0', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.start_time_info', 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='end_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.end_time_info', 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='limit', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.limit', index=2, + number=3, 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), + _descriptor.FieldDescriptor( + name='offset', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.offset', index=3, + number=4, 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), + _descriptor.FieldDescriptor( + name='ascending', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.ascending', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='prove', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prove', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=[_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_STARTATTIMEINFO, _GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0_ENDATTIMEINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._start_time_info', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_time_info', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._end_time_info', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_limit', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._limit', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_offset', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0._offset', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=19463, + serialized_end=20031, +) + +_GETVOTEPOLLSBYENDDATEREQUEST = _descriptor.Descriptor( + name='GetVotePollsByEndDateRequest', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest', + 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.GetVotePollsByEndDateRequest.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=[_GETVOTEPOLLSBYENDDATEREQUEST_GETVOTEPOLLSBYENDDATEREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=19328, + serialized_end=20042, +) + + +_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMP = _descriptor.Descriptor( + name='SerializedVotePollsByTimestamp', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='timestamp', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.timestamp', 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='serialized_vote_polls', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serialized_vote_polls', index=1, + number=2, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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=20491, + serialized_end=20573, +) + +_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMPS = _descriptor.Descriptor( + name='SerializedVotePollsByTimestamps', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='vote_polls_by_timestamps', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.vote_polls_by_timestamps', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + 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='finished_results', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.finished_results', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=20576, + serialized_end=20791, +) + +_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0 = _descriptor.Descriptor( + name='GetVotePollsByEndDateResponseV0', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='vote_polls_by_timestamps', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.vote_polls_by_timestamps', 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='proof', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.metadata', 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=[_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMP, _GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0_SERIALIZEDVOTEPOLLSBYTIMESTAMPS, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=20183, + serialized_end=20801, +) + +_GETVOTEPOLLSBYENDDATERESPONSE = _descriptor.Descriptor( + name='GetVotePollsByEndDateResponse', + full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse', + 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.GetVotePollsByEndDateResponse.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=[_GETVOTEPOLLSBYENDDATERESPONSE_GETVOTEPOLLSBYENDDATERESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=20045, + serialized_end=20812, +) + + +_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_STARTATIDENTIFIERINFO = _descriptor.Descriptor( + name='StartAtIdentifierInfo', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.start_identifier', 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), + _descriptor.FieldDescriptor( + name='start_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.start_identifier_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=21501, + serialized_end=21585, +) + +_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0 = _descriptor.Descriptor( + name='GetContestedResourceVoteStateRequestV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.contract_id', 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), + _descriptor.FieldDescriptor( + name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.document_type_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.index_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.index_values', index=3, + number=4, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='result_type', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.result_type', index=4, + number=5, type=14, cpp_type=8, 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='allow_include_locked_and_abstaining_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.allow_include_locked_and_abstaining_vote_tally', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.start_at_identifier_info', index=6, + number=7, 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='count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.count', index=7, + number=8, 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), + _descriptor.FieldDescriptor( + name='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prove', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=[_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_STARTATIDENTIFIERINFO, ], + enum_types=[ + _GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_RESULTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0._start_at_identifier_info', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0._count', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=20974, + serialized_end=21699, +) + +_GETCONTESTEDRESOURCEVOTESTATEREQUEST = _descriptor.Descriptor( + name='GetContestedResourceVoteStateRequest', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest', + 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.GetContestedResourceVoteStateRequest.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=[_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=20815, + serialized_end=21710, +) + + +_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO = _descriptor.Descriptor( + name='FinishedVoteInfo', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='finished_vote_outcome', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_vote_outcome', index=0, + number=1, type=14, cpp_type=8, 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='won_by_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.won_by_identity_id', 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), + _descriptor.FieldDescriptor( + name='finished_at_block_height', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_block_height', index=2, + number=3, 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='finished_at_core_block_height', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_core_block_height', index=3, + number=4, 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), + _descriptor.FieldDescriptor( + name='finished_at_block_time_ms', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_block_time_ms', index=4, + number=5, 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='finished_at_epoch', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_epoch', index=5, + number=6, 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=[ + _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO_FINISHEDVOTEOUTCOME, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_won_by_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo._won_by_identity_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=22210, + serialized_end=22676, +) + +_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTESTEDRESOURCECONTENDERS = _descriptor.Descriptor( + name='ContestedResourceContenders', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contenders', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + 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='abstain_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.abstain_vote_tally', 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), + _descriptor.FieldDescriptor( + name='lock_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.lock_vote_tally', index=2, + number=3, 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), + _descriptor.FieldDescriptor( + name='finished_vote_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.finished_vote_info', index=3, + number=4, 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=[ + _descriptor.OneofDescriptor( + name='_abstain_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._abstain_vote_tally', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_lock_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._lock_vote_tally', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_finished_vote_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._finished_vote_info', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=22679, + serialized_end=23131, +) + +_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTENDER = _descriptor.Descriptor( + name='Contender', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.identifier', 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), + _descriptor.FieldDescriptor( + name='vote_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.vote_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), + _descriptor.FieldDescriptor( + name='document', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.document', 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=[ + _descriptor.OneofDescriptor( + name='_vote_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender._vote_count', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_document', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender._document', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=23133, + serialized_end=23240, +) + +_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0 = _descriptor.Descriptor( + name='GetContestedResourceVoteStateResponseV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contested_resource_contenders', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.contested_resource_contenders', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.metadata', 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=[_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO, _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTESTEDRESOURCECONTENDERS, _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTENDER, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=21875, + serialized_end=23250, +) + +_GETCONTESTEDRESOURCEVOTESTATERESPONSE = _descriptor.Descriptor( + name='GetContestedResourceVoteStateResponse', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse', + 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.GetContestedResourceVoteStateResponse.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=[_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=21713, + serialized_end=23261, +) + + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0_STARTATIDENTIFIERINFO = _descriptor.Descriptor( + name='StartAtIdentifierInfo', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.start_identifier', 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), + _descriptor.FieldDescriptor( + name='start_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.start_identifier_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=21501, + serialized_end=21585, +) + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0 = _descriptor.Descriptor( + name='GetContestedResourceVotersForIdentityRequestV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.contract_id', 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), + _descriptor.FieldDescriptor( + name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.document_type_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.index_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.index_values', index=3, + number=4, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='contestant_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.contestant_id', index=4, + number=5, 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), + _descriptor.FieldDescriptor( + name='start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.start_at_identifier_info', index=5, + number=6, 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='count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.count', index=6, + number=7, 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), + _descriptor.FieldDescriptor( + name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.order_ascending', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prove', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0_STARTATIDENTIFIERINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0._start_at_identifier_info', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0._count', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=23448, + serialized_end=23978, +) + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST = _descriptor.Descriptor( + name='GetContestedResourceVotersForIdentityRequest', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest', + 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.GetContestedResourceVotersForIdentityRequest.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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=23264, + serialized_end=23989, +) + + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0_CONTESTEDRESOURCEVOTERS = _descriptor.Descriptor( + name='ContestedResourceVoters', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='voters', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.voters', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='finished_results', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.finished_results', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=24529, + serialized_end=24596, +) + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0 = _descriptor.Descriptor( + name='GetContestedResourceVotersForIdentityResponseV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contested_resource_voters', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.contested_resource_voters', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.metadata', 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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0_CONTESTEDRESOURCEVOTERS, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=24179, + serialized_end=24606, +) + +_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE = _descriptor.Descriptor( + name='GetContestedResourceVotersForIdentityResponse', + full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse', + 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.GetContestedResourceVotersForIdentityResponse.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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=23992, + serialized_end=24617, +) + + +_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0_STARTATVOTEPOLLIDINFO = _descriptor.Descriptor( + name='StartAtVotePollIdInfo', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_at_poll_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.start_at_poll_identifier', 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), + _descriptor.FieldDescriptor( + name='start_poll_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.start_poll_identifier_included', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=25166, + serialized_end=25263, +) + +_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0 = _descriptor.Descriptor( + name='GetContestedResourceIdentityVotesRequestV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.identity_id', 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), + _descriptor.FieldDescriptor( + name='limit', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.limit', 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='offset', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.offset', 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), + _descriptor.FieldDescriptor( + name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.order_ascending', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='start_at_vote_poll_id_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.start_at_vote_poll_id_info', index=4, + number=5, 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prove', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=[_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0_STARTATVOTEPOLLIDINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_at_vote_poll_id_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0._start_at_vote_poll_id_info', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=24791, + serialized_end=25294, +) + +_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST = _descriptor.Descriptor( + name='GetContestedResourceIdentityVotesRequest', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest', + 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.GetContestedResourceIdentityVotesRequest.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=[_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.version', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=24620, + serialized_end=25305, +) + + +_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTES = _descriptor.Descriptor( + name='ContestedResourceIdentityVotes', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contested_resource_identity_votes', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contested_resource_identity_votes', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + 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='finished_results', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.finished_results', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=25808, + serialized_end=26055, +) + +_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE = _descriptor.Descriptor( + name='ResourceVoteChoice', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='vote_choice_type', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.vote_choice_type', index=0, + number=1, type=14, cpp_type=8, 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='identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.identity_id', 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=[ + _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE_VOTECHOICETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice._identity_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=26058, + serialized_end=26359, +) + +_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTE = _descriptor.Descriptor( + name='ContestedResourceIdentityVote', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.contract_id', 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), + _descriptor.FieldDescriptor( + name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.document_type_name', index=1, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), 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='index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.index_values', index=3, - number=4, type=12, cpp_type=9, label=3, + name='serialized_index_storage_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serialized_index_storage_values', index=2, + number=3, type=12, cpp_type=9, label=3, has_default_value=False, default_value=[], 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='result_type', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.result_type', index=4, - number=5, type=14, cpp_type=8, 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='allow_include_locked_and_abstaining_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.allow_include_locked_and_abstaining_vote_tally', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='vote_choice', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.vote_choice', index=3, + number=4, 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=26362, + serialized_end=26639, +) + +_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0 = _descriptor.Descriptor( + name='GetContestedResourceIdentityVotesResponseV0', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ _descriptor.FieldDescriptor( - name='start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.start_at_identifier_info', index=6, - number=7, type=11, cpp_type=10, label=1, + name='votes', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.votes', 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='count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.count', index=7, - number=8, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.proof', 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prove', index=8, - number=9, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.metadata', 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=[_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_STARTATIDENTIFIERINFO, ], + nested_types=[_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTES, _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE, _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTE, ], enum_types=[ - _GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0_RESULTTYPE, ], serialized_options=None, is_extendable=False, @@ -5458,30 +6998,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0._start_at_identifier_info', + name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), - _descriptor.OneofDescriptor( - name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0._count', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=18643, - serialized_end=19368, + serialized_start=25482, + serialized_end=26649, ) -_GETCONTESTEDRESOURCEVOTESTATEREQUEST = _descriptor.Descriptor( - name='GetContestedResourceVoteStateRequest', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest', +_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE = _descriptor.Descriptor( + name='GetContestedResourceIdentityVotesResponse', + full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse', 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.GetContestedResourceVoteStateRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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, @@ -5490,7 +7025,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCEVOTESTATEREQUEST_GETCONTESTEDRESOURCEVOTESTATEREQUESTV0, ], + nested_types=[_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -5499,72 +7034,74 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=18484, - serialized_end=19379, + serialized_start=25308, + serialized_end=26660, ) -_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO = _descriptor.Descriptor( - name='FinishedVoteInfo', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo', +_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST_GETPREFUNDEDSPECIALIZEDBALANCEREQUESTV0 = _descriptor.Descriptor( + name='GetPrefundedSpecializedBalanceRequestV0', + full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='finished_vote_outcome', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_vote_outcome', index=0, - number=1, type=14, cpp_type=8, 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='won_by_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.won_by_identity_id', index=1, - number=2, type=12, cpp_type=9, label=1, + name='id', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.id', 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), _descriptor.FieldDescriptor( - name='finished_at_block_height', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_block_height', index=2, - number=3, 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='finished_at_core_block_height', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_core_block_height', index=3, - number=4, 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), - _descriptor.FieldDescriptor( - name='finished_at_block_time_ms', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_block_time_ms', index=4, - number=5, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='prove', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prove', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, 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=26824, + serialized_end=26892, +) + +_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST = _descriptor.Descriptor( + name='GetPrefundedSpecializedBalanceRequest', + full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ _descriptor.FieldDescriptor( - name='finished_at_epoch', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.finished_at_epoch', index=5, - number=6, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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=[], + nested_types=[_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST_GETPREFUNDEDSPECIALIZEDBALANCEREQUESTV0, ], enum_types=[ - _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO_FINISHEDVOTEOUTCOME, ], serialized_options=None, is_extendable=False, @@ -5572,47 +7109,41 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_won_by_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo._won_by_identity_id', + name='version', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19879, - serialized_end=20345, + serialized_start=26663, + serialized_end=26903, ) -_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTESTEDRESOURCECONTENDERS = _descriptor.Descriptor( - name='ContestedResourceContenders', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders', + +_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE_GETPREFUNDEDSPECIALIZEDBALANCERESPONSEV0 = _descriptor.Descriptor( + name='GetPrefundedSpecializedBalanceResponseV0', + full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contenders', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.contenders', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - 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='abstain_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.abstain_vote_tally', index=1, - number=2, type=13, cpp_type=3, label=1, + name='balance', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.balance', 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='lock_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.lock_vote_tally', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, + name='proof', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.proof', 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='finished_vote_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.finished_vote_info', index=3, - number=4, type=11, cpp_type=10, label=1, + name='metadata', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.metadata', 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, @@ -5629,58 +7160,102 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_abstain_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._abstain_vote_tally', + name='result', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), + ], + serialized_start=27071, + serialized_end=27256, +) + +_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE = _descriptor.Descriptor( + name='GetPrefundedSpecializedBalanceResponse', + full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse', + 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.GetPrefundedSpecializedBalanceResponse.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=[_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE_GETPREFUNDEDSPECIALIZEDBALANCERESPONSEV0, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ _descriptor.OneofDescriptor( - name='_lock_vote_tally', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._lock_vote_tally', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - _descriptor.OneofDescriptor( - name='_finished_vote_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders._finished_vote_info', - index=2, containing_type=None, + name='version', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.version', + index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=20348, - serialized_end=20800, + serialized_start=26906, + serialized_end=27267, +) + + +_GETTOTALCREDITSINPLATFORMREQUEST_GETTOTALCREDITSINPLATFORMREQUESTV0 = _descriptor.Descriptor( + name='GetTotalCreditsInPlatformRequestV0', + full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='prove', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prove', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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=27416, + serialized_end=27467, ) -_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTENDER = _descriptor.Descriptor( - name='Contender', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender', +_GETTOTALCREDITSINPLATFORMREQUEST = _descriptor.Descriptor( + name='GetTotalCreditsInPlatformRequest', + full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.identifier', 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), - _descriptor.FieldDescriptor( - name='vote_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.vote_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), - _descriptor.FieldDescriptor( - name='document', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.document', index=2, - number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='v0', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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=[], + nested_types=[_GETTOTALCREDITSINPLATFORMREQUEST_GETTOTALCREDITSINPLATFORMREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -5689,44 +7264,40 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_vote_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender._vote_count', + name='version', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), - _descriptor.OneofDescriptor( - name='_document', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender._document', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=20802, - serialized_end=20909, + serialized_start=27270, + serialized_end=27478, ) -_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0 = _descriptor.Descriptor( - name='GetContestedResourceVoteStateResponseV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0', + +_GETTOTALCREDITSINPLATFORMRESPONSE_GETTOTALCREDITSINPLATFORMRESPONSEV0 = _descriptor.Descriptor( + name='GetTotalCreditsInPlatformResponseV0', + full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_contenders', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.contested_resource_contenders', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='credits', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.credits', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.proof', index=1, + name='proof', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.metadata', index=2, + name='metadata', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.metadata', 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, @@ -5735,7 +7306,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_FINISHEDVOTEINFO, _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTESTEDRESOURCECONTENDERS, _GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0_CONTENDER, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -5744,25 +7315,25 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.result', + name='result', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.result', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19544, - serialized_end=20919, + serialized_start=27631, + serialized_end=27811, ) -_GETCONTESTEDRESOURCEVOTESTATERESPONSE = _descriptor.Descriptor( - name='GetContestedResourceVoteStateResponse', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse', +_GETTOTALCREDITSINPLATFORMRESPONSE = _descriptor.Descriptor( + name='GetTotalCreditsInPlatformResponse', + full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse', 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.GetContestedResourceVoteStateResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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, @@ -5771,7 +7342,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCEVOTESTATERESPONSE_GETCONTESTEDRESOURCEVOTESTATERESPONSEV0, ], + nested_types=[_GETTOTALCREDITSINPLATFORMRESPONSE_GETTOTALCREDITSINPLATFORMRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -5780,34 +7351,41 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=19382, - serialized_end=20930, + serialized_start=27481, + serialized_end=27822, ) -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0_STARTATIDENTIFIERINFO = _descriptor.Descriptor( - name='StartAtIdentifierInfo', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo', +_GETPATHELEMENTSREQUEST_GETPATHELEMENTSREQUESTV0 = _descriptor.Descriptor( + name='GetPathElementsRequestV0', + full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.start_identifier', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='path', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.path', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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='start_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.start_identifier_included', index=1, - number=2, type=8, cpp_type=7, label=1, + name='keys', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.keys', index=1, + number=2, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], + 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='prove', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prove', index=2, + number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -5824,85 +7402,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19170, - serialized_end=19254, + serialized_start=27941, + serialized_end=28010, ) -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0 = _descriptor.Descriptor( - name='GetContestedResourceVotersForIdentityRequestV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0', +_GETPATHELEMENTSREQUEST = _descriptor.Descriptor( + name='GetPathElementsRequest', + full_name='org.dash.platform.dapi.v0.GetPathElementsRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.contract_id', 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), - _descriptor.FieldDescriptor( - name='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.document_type_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='index_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.index_name', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - 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='index_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.index_values', index=3, - number=4, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], - 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='contestant_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.contestant_id', index=4, - number=5, 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), - _descriptor.FieldDescriptor( - name='start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.start_at_identifier_info', index=5, - number=6, type=11, cpp_type=10, label=1, + name='v0', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.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), - _descriptor.FieldDescriptor( - name='count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.count', index=6, - number=7, 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), - _descriptor.FieldDescriptor( - name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.order_ascending', index=7, - number=8, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prove', index=8, - number=9, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0_STARTATIDENTIFIERINFO, ], + nested_types=[_GETPATHELEMENTSREQUEST_GETPATHELEMENTSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -5911,39 +7433,35 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='_start_at_identifier_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0._start_at_identifier_info', + name='version', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), - _descriptor.OneofDescriptor( - name='_count', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0._count', - index=1, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=21117, - serialized_end=21647, + serialized_start=27825, + serialized_end=28021, ) -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST = _descriptor.Descriptor( - name='GetContestedResourceVotersForIdentityRequest', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest', + +_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0_ELEMENTS = _descriptor.Descriptor( + name='Elements', + full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements', 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.GetContestedResourceVotersForIdentityRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='elements', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.elements', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -5951,43 +7469,44 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=20933, - serialized_end=21658, + serialized_start=28394, + serialized_end=28422, ) - -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0_CONTESTEDRESOURCEVOTERS = _descriptor.Descriptor( - name='ContestedResourceVoters', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters', +_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0 = _descriptor.Descriptor( + name='GetPathElementsResponseV0', + full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='voters', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.voters', index=0, - number=1, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='elements', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.elements', 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='finished_results', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.finished_results', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='proof', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.metadata', 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=[], + nested_types=[_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0_ELEMENTS, ], enum_types=[ ], serialized_options=None, @@ -5995,44 +7514,35 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.result', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=22198, - serialized_end=22265, + serialized_start=28144, + serialized_end=28432, ) -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0 = _descriptor.Descriptor( - name='GetContestedResourceVotersForIdentityResponseV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0', +_GETPATHELEMENTSRESPONSE = _descriptor.Descriptor( + name='GetPathElementsResponse', + full_name='org.dash.platform.dapi.v0.GetPathElementsResponse', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_voters', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.contested_resource_voters', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.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), - _descriptor.FieldDescriptor( - name='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.metadata', 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=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0_CONTESTEDRESOURCEVOTERS, ], + nested_types=[_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -6041,25 +7551,50 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.result', + name='version', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21848, - serialized_end=22275, + serialized_start=28024, + serialized_end=28443, ) -_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE = _descriptor.Descriptor( - name='GetContestedResourceVotersForIdentityResponse', - full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse', + +_GETSTATUSREQUEST_GETSTATUSREQUESTV0 = _descriptor.Descriptor( + name='GetStatusRequestV0', + full_name='org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0', + 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=28544, + serialized_end=28564, +) + +_GETSTATUSREQUEST = _descriptor.Descriptor( + name='GetStatusRequest', + full_name='org.dash.platform.dapi.v0.GetStatusRequest', 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.GetContestedResourceVotersForIdentityResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetStatusRequest.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, @@ -6068,7 +7603,7 @@ ], extensions=[ ], - nested_types=[_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSEV0, ], + nested_types=[_GETSTATUSREQUEST_GETSTATUSREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -6077,35 +7612,42 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetStatusRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21661, - serialized_end=22286, + serialized_start=28446, + serialized_end=28575, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0_STARTATVOTEPOLLIDINFO = _descriptor.Descriptor( - name='StartAtVotePollIdInfo', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE = _descriptor.Descriptor( + name='Software', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='start_at_poll_identifier', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.start_at_poll_identifier', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='dapi', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.dapi', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='start_poll_identifier_included', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.start_poll_identifier_included', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='drive', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.drive', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + 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='tenderdash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.tenderdash', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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), @@ -6120,65 +7662,47 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='_drive', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software._drive', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tenderdash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software._tenderdash', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=22835, - serialized_end=22932, + serialized_start=29452, + serialized_end=29546, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0 = _descriptor.Descriptor( - name='GetContestedResourceIdentityVotesRequestV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH = _descriptor.Descriptor( + name='Tenderdash', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.identity_id', 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), - _descriptor.FieldDescriptor( - name='limit', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.limit', 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='offset', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.offset', 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), - _descriptor.FieldDescriptor( - name='order_ascending', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.order_ascending', index=3, - number=4, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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='start_at_vote_poll_id_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.start_at_vote_poll_id_info', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='p2p', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.p2p', index=0, + number=1, 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), _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prove', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='block', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.block', 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=[_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0_STARTATVOTEPOLLIDINFO, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6186,35 +7710,37 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='_start_at_vote_poll_id_info', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0._start_at_vote_poll_id_info', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=22460, - serialized_end=22963, + serialized_start=29779, + serialized_end=29819, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST = _descriptor.Descriptor( - name='GetContestedResourceIdentityVotesRequest', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE = _descriptor.Descriptor( + name='Drive', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive', 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.GetContestedResourceIdentityVotesRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='latest', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.latest', index=0, + number=3, 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), + _descriptor.FieldDescriptor( + name='current', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.current', index=1, + number=4, 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=[_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST_GETCONTESTEDRESOURCEIDENTITYVOTESREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6222,43 +7748,37 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=22289, - serialized_end=22974, + serialized_start=29821, + serialized_end=29861, ) - -_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTES = _descriptor.Descriptor( - name='ContestedResourceIdentityVotes', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL = _descriptor.Descriptor( + name='Protocol', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contested_resource_identity_votes', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.contested_resource_identity_votes', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='tenderdash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.tenderdash', 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='finished_results', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.finished_results', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='drive', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.drive', 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=[], + nested_types=[_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE, ], enum_types=[ ], serialized_options=None, @@ -6267,87 +7787,81 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23477, - serialized_end=23724, + serialized_start=29549, + serialized_end=29861, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE = _descriptor.Descriptor( - name='ResourceVoteChoice', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION = _descriptor.Descriptor( + name='Version', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='vote_choice_type', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.vote_choice_type', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='software', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.software', 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='identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.identity_id', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='protocol', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.protocol', 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=[], + nested_types=[_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL, ], enum_types=[ - _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE_VOTECHOICETYPE, ], serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='_identity_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice._identity_id', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=23727, - serialized_end=24028, + serialized_start=29239, + serialized_end=29861, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTE = _descriptor.Descriptor( - name='ContestedResourceIdentityVote', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME = _descriptor.Descriptor( + name='Time', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='contract_id', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.contract_id', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='local', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.local', 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='document_type_name', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.document_type_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='block', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.block', 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=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='serialized_index_storage_values', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serialized_index_storage_values', index=2, - number=3, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='genesis', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.genesis', index=2, + number=3, 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='vote_choice', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.vote_choice', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='epoch', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.epoch', index=3, + number=4, 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), @@ -6362,44 +7876,52 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='_block', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time._block', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_genesis', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time._genesis', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_epoch', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time._epoch', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), ], - serialized_start=24031, - serialized_end=24308, + serialized_start=29863, + serialized_end=29978, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0 = _descriptor.Descriptor( - name='GetContestedResourceIdentityVotesResponseV0', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE = _descriptor.Descriptor( + name='Node', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='votes', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.votes', 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='proof', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='id', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.id', 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), _descriptor.FieldDescriptor( - name='metadata', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.pro_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=[_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTES, _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_RESOURCEVOTECHOICE, _GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0_CONTESTEDRESOURCEIDENTITYVOTE, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6408,34 +7930,90 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.result', + name='_pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node._pro_tx_hash', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=23151, - serialized_end=24318, + serialized_start=29980, + serialized_end=30040, ) -_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE = _descriptor.Descriptor( - name='GetContestedResourceIdentityVotesResponse', - full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN = _descriptor.Descriptor( + name='Chain', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain', 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.GetContestedResourceIdentityVotesResponse.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='catching_up', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.catching_up', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + 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='latest_block_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.latest_block_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), + _descriptor.FieldDescriptor( + name='latest_app_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.latest_app_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), + _descriptor.FieldDescriptor( + name='latest_block_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.latest_block_height', index=3, + number=4, 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='earliest_block_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.earliest_block_hash', index=4, + number=5, 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), + _descriptor.FieldDescriptor( + name='earliest_app_hash', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.earliest_app_hash', index=5, + number=6, 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), + _descriptor.FieldDescriptor( + name='earliest_block_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.earliest_block_height', index=6, + number=7, 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='max_peer_block_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.max_peer_block_height', index=7, + number=9, 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='core_chain_locked_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.core_chain_locked_height', index=8, + number=10, 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=[_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSEV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6444,34 +8022,40 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.version', + name='_core_chain_locked_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain._core_chain_locked_height', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=22977, - serialized_end=24329, + serialized_start=30043, + serialized_end=30338, ) - -_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST_GETPREFUNDEDSPECIALIZEDBALANCEREQUESTV0 = _descriptor.Descriptor( - name='GetPrefundedSpecializedBalanceRequestV0', - full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK = _descriptor.Descriptor( + name='Network', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.id', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='chain_id', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.chain_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='prove', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prove', index=1, - number=2, type=8, cpp_type=7, label=1, + name='peers_count', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.peers_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), + _descriptor.FieldDescriptor( + name='listening', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.listening', index=2, + number=3, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -6488,29 +8072,78 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24493, - serialized_end=24561, + serialized_start=30340, + serialized_end=30407, ) -_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST = _descriptor.Descriptor( - name='GetPrefundedSpecializedBalanceRequest', - full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC = _descriptor.Descriptor( + name='StateSync', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync', 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.GetPrefundedSpecializedBalanceRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='total_synced_time', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.total_synced_time', 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='remaining_time', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.remaining_time', 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=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_snapshots', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.total_snapshots', index=2, + number=3, 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), + _descriptor.FieldDescriptor( + name='chunk_process_avg_time', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.chunk_process_avg_time', index=3, + number=4, 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='snapshot_height', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.snapshot_height', index=4, + number=5, 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='snapshot_chunks_count', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.snapshot_chunks_count', index=5, + number=6, 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='backfilled_blocks', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.backfilled_blocks', index=6, + number=7, 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='backfill_blocks_total', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.backfill_blocks_total', index=7, + number=8, 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), ], extensions=[ ], - nested_types=[_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST_GETPREFUNDEDSPECIALIZEDBALANCEREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6518,123 +8151,65 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=24332, - serialized_end=24572, + serialized_start=30410, + serialized_end=30643, ) - -_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE_GETPREFUNDEDSPECIALIZEDBALANCERESPONSEV0 = _descriptor.Descriptor( - name='GetPrefundedSpecializedBalanceResponseV0', - full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0', +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 = _descriptor.Descriptor( + name='GetStatusResponseV0', + full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='balance', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.balance', index=0, - number=1, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='version', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.version', 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='proof', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.proof', index=1, + name='node', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.node', 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='metadata', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.metadata', index=2, + name='chain', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.chain', 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=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=24740, - serialized_end=24925, -) - -_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE = _descriptor.Descriptor( - name='GetPrefundedSpecializedBalanceResponse', - full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse', - 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.GetPrefundedSpecializedBalanceResponse.v0', index=0, - number=1, type=11, cpp_type=10, label=1, + name='network', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.network', index=3, + number=4, 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=[_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE_GETPREFUNDEDSPECIALIZEDBALANCERESPONSEV0, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=24575, - serialized_end=24936, -) - - -_GETTOTALCREDITSINPLATFORMREQUEST_GETTOTALCREDITSINPLATFORMREQUESTV0 = _descriptor.Descriptor( - name='GetTotalCreditsInPlatformRequestV0', - full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ _descriptor.FieldDescriptor( - name='prove', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prove', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='state_sync', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.state_sync', index=4, + number=5, 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='time', full_name='org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.time', index=5, + number=6, 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=[], + nested_types=[_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK, _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC, ], enum_types=[ ], serialized_options=None, @@ -6643,20 +8218,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=25085, - serialized_end=25136, + serialized_start=28680, + serialized_end=30643, ) -_GETTOTALCREDITSINPLATFORMREQUEST = _descriptor.Descriptor( - name='GetTotalCreditsInPlatformRequest', - full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest', +_GETSTATUSRESPONSE = _descriptor.Descriptor( + name='GetStatusResponse', + full_name='org.dash.platform.dapi.v0.GetStatusResponse', 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.GetTotalCreditsInPlatformRequest.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetStatusResponse.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, @@ -6665,7 +8240,7 @@ ], extensions=[ ], - nested_types=[_GETTOTALCREDITSINPLATFORMREQUEST_GETTOTALCREDITSINPLATFORMREQUESTV0, ], + nested_types=[_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -6674,45 +8249,24 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.version', + name='version', full_name='org.dash.platform.dapi.v0.GetStatusResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=24939, - serialized_end=25147, + serialized_start=28578, + serialized_end=30654, ) -_GETTOTALCREDITSINPLATFORMRESPONSE_GETTOTALCREDITSINPLATFORMRESPONSEV0 = _descriptor.Descriptor( - name='GetTotalCreditsInPlatformResponseV0', - full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0', +_GETCURRENTQUORUMSINFOREQUEST_GETCURRENTQUORUMSINFOREQUESTV0 = _descriptor.Descriptor( + name='GetCurrentQuorumsInfoRequestV0', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ - _descriptor.FieldDescriptor( - name='credits', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.credits', 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='proof', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.proof', 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='metadata', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.metadata', 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=[ ], @@ -6724,26 +8278,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=25300, - serialized_end=25480, + serialized_start=30791, + serialized_end=30823, ) -_GETTOTALCREDITSINPLATFORMRESPONSE = _descriptor.Descriptor( - name='GetTotalCreditsInPlatformResponse', - full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse', +_GETCURRENTQUORUMSINFOREQUEST = _descriptor.Descriptor( + name='GetCurrentQuorumsInfoRequest', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest', 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.GetTotalCreditsInPlatformResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.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, @@ -6752,7 +8301,7 @@ ], extensions=[ ], - nested_types=[_GETTOTALCREDITSINPLATFORMRESPONSE_GETTOTALCREDITSINPLATFORMRESPONSEV0, ], + nested_types=[_GETCURRENTQUORUMSINFOREQUEST_GETCURRENTQUORUMSINFOREQUESTV0, ], enum_types=[ ], serialized_options=None, @@ -6761,80 +8310,49 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25150, - serialized_end=25491, + serialized_start=30657, + serialized_end=30834, ) -_GETPATHELEMENTSREQUEST_GETPATHELEMENTSREQUESTV0 = _descriptor.Descriptor( - name='GetPathElementsRequestV0', - full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0', +_GETCURRENTQUORUMSINFORESPONSE_VALIDATORV0 = _descriptor.Descriptor( + name='ValidatorV0', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='path', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.path', index=0, - number=1, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='pro_tx_hash', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.pro_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), _descriptor.FieldDescriptor( - name='keys', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.keys', index=1, - number=2, type=12, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='node_ip', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.node_ip', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), 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='prove', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prove', index=2, + name='is_banned', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.is_banned', index=2, number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - 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=25610, - serialized_end=25679, -) - -_GETPATHELEMENTSREQUEST = _descriptor.Descriptor( - name='GetPathElementsRequest', - full_name='org.dash.platform.dapi.v0.GetPathElementsRequest', - 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.GetPathElementsRequest.v0', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + has_default_value=False, default_value=False, 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=[_GETPATHELEMENTSREQUEST_GETPATHELEMENTSREQUESTV0, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6842,32 +8360,47 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetPathElementsRequest.version', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=25494, - serialized_end=25690, + serialized_start=30974, + serialized_end=31044, ) - -_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0_ELEMENTS = _descriptor.Descriptor( - name='Elements', - full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements', +_GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0 = _descriptor.Descriptor( + name='ValidatorSetV0', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='elements', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.elements', index=0, - number=1, type=12, cpp_type=9, label=3, + name='quorum_hash', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.quorum_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), + _descriptor.FieldDescriptor( + name='core_height', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.core_height', 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), + _descriptor.FieldDescriptor( + name='members', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.members', index=2, + number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], 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='threshold_public_key', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.threshold_public_key', index=3, + number=4, 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=[ ], @@ -6880,35 +8413,49 @@ extension_ranges=[], oneofs=[ ], - serialized_start=26063, - serialized_end=26091, + serialized_start=31047, + serialized_end=31222, ) -_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0 = _descriptor.Descriptor( - name='GetPathElementsResponseV0', - full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0', +_GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0 = _descriptor.Descriptor( + name='GetCurrentQuorumsInfoResponseV0', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='elements', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.elements', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='quorum_hashes', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.quorum_hashes', index=0, + number=1, type=12, cpp_type=9, label=3, + has_default_value=False, default_value=[], 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='proof', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.proof', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='current_quorum_hash', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.current_quorum_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), _descriptor.FieldDescriptor( - name='metadata', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.metadata', index=2, - number=3, type=11, cpp_type=10, label=1, + name='validator_sets', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.validator_sets', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + 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='last_block_proposer', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.last_block_proposer', index=3, + number=4, 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), + _descriptor.FieldDescriptor( + name='metadata', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.metadata', index=4, + number=5, 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, @@ -6916,7 +8463,7 @@ ], extensions=[ ], - nested_types=[_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0_ELEMENTS, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -6924,26 +8471,21 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='result', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.result', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), ], - serialized_start=25813, - serialized_end=26101, + serialized_start=31225, + serialized_end=31499, ) -_GETPATHELEMENTSRESPONSE = _descriptor.Descriptor( - name='GetPathElementsResponse', - full_name='org.dash.platform.dapi.v0.GetPathElementsResponse', +_GETCURRENTQUORUMSINFORESPONSE = _descriptor.Descriptor( + name='GetCurrentQuorumsInfoResponse', + full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse', 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.GetPathElementsResponse.v0', index=0, + name='v0', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.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, @@ -6952,7 +8494,7 @@ ], extensions=[ ], - nested_types=[_GETPATHELEMENTSRESPONSE_GETPATHELEMENTSRESPONSEV0, ], + nested_types=[_GETCURRENTQUORUMSINFORESPONSE_VALIDATORV0, _GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0, _GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0, ], enum_types=[ ], serialized_options=None, @@ -6961,13 +8503,13 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='version', full_name='org.dash.platform.dapi.v0.GetPathElementsResponse.version', + name='version', full_name='org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.version', index=0, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=25693, - serialized_end=26112, + serialized_start=30837, + serialized_end=31510, ) _GETIDENTITYREQUEST_GETIDENTITYREQUESTV0.containing_type = _GETIDENTITYREQUEST @@ -7133,6 +8675,73 @@ _GETIDENTITIESCONTRACTKEYSRESPONSE.oneofs_by_name['version'].fields.append( _GETIDENTITIESCONTRACTKEYSRESPONSE.fields_by_name['v0']) _GETIDENTITIESCONTRACTKEYSRESPONSE.fields_by_name['v0'].containing_oneof = _GETIDENTITIESCONTRACTKEYSRESPONSE.oneofs_by_name['version'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0.containing_type = _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0.oneofs_by_name['_epoch'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0.fields_by_name['epoch']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0.fields_by_name['epoch'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0.oneofs_by_name['_epoch'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST.fields_by_name['v0'].message_type = _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0 +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST.oneofs_by_name['version'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST.fields_by_name['v0']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST.fields_by_name['v0'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST.oneofs_by_name['version'] +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODEPROPOSEDBLOCKS.containing_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0 +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS.fields_by_name['evonodes_proposed_block_counts'].message_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODEPROPOSEDBLOCKS +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS.containing_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0 +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['evonodes_proposed_block_counts_info'].message_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['proof'].message_type = _PROOF +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['metadata'].message_type = _RESPONSEMETADATA +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.containing_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.oneofs_by_name['result'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['evonodes_proposed_block_counts_info']) +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['evonodes_proposed_block_counts_info'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.oneofs_by_name['result'] +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.oneofs_by_name['result'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['proof']) +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.fields_by_name['proof'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0.oneofs_by_name['result'] +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE.fields_by_name['v0'].message_type = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0 +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE.oneofs_by_name['version'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE.fields_by_name['v0']) +_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE.fields_by_name['v0'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE.oneofs_by_name['version'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.containing_type = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['start'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['start_after']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['start_after'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['start'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['start'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['start_at']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['start_at'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['start'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['_epoch'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['epoch']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['epoch'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['_epoch'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['_limit'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['limit']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.fields_by_name['limit'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0.oneofs_by_name['_limit'] +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST.fields_by_name['v0'].message_type = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0 +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST.oneofs_by_name['version'].fields.append( + _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST.fields_by_name['v0']) +_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST.fields_by_name['v0'].containing_oneof = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST.oneofs_by_name['version'] +_GETIDENTITIESBALANCESREQUEST_GETIDENTITIESBALANCESREQUESTV0.containing_type = _GETIDENTITIESBALANCESREQUEST +_GETIDENTITIESBALANCESREQUEST.fields_by_name['v0'].message_type = _GETIDENTITIESBALANCESREQUEST_GETIDENTITIESBALANCESREQUESTV0 +_GETIDENTITIESBALANCESREQUEST.oneofs_by_name['version'].fields.append( + _GETIDENTITIESBALANCESREQUEST.fields_by_name['v0']) +_GETIDENTITIESBALANCESREQUEST.fields_by_name['v0'].containing_oneof = _GETIDENTITIESBALANCESREQUEST.oneofs_by_name['version'] +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE.containing_type = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0 +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE.oneofs_by_name['_balance'].fields.append( + _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE.fields_by_name['balance']) +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE.fields_by_name['balance'].containing_oneof = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE.oneofs_by_name['_balance'] +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES.fields_by_name['entries'].message_type = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES.containing_type = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0 +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['identities_balances'].message_type = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['proof'].message_type = _PROOF +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['metadata'].message_type = _RESPONSEMETADATA +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.containing_type = _GETIDENTITIESBALANCESRESPONSE +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.oneofs_by_name['result'].fields.append( + _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['identities_balances']) +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['identities_balances'].containing_oneof = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.oneofs_by_name['result'] +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.oneofs_by_name['result'].fields.append( + _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['proof']) +_GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.fields_by_name['proof'].containing_oneof = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0.oneofs_by_name['result'] +_GETIDENTITIESBALANCESRESPONSE.fields_by_name['v0'].message_type = _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0 +_GETIDENTITIESBALANCESRESPONSE.oneofs_by_name['version'].fields.append( + _GETIDENTITIESBALANCESRESPONSE.fields_by_name['v0']) +_GETIDENTITIESBALANCESRESPONSE.fields_by_name['v0'].containing_oneof = _GETIDENTITIESBALANCESRESPONSE.oneofs_by_name['version'] _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST.fields_by_name['document_contested_status'].enum_type = _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST_DOCUMENTCONTESTEDSTATUS _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST.containing_type = _GETPROOFSREQUEST_GETPROOFSREQUESTV0 _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST_DOCUMENTCONTESTEDSTATUS.containing_type = _GETPROOFSREQUEST_GETPROOFSREQUESTV0_DOCUMENTREQUEST @@ -7614,6 +9223,72 @@ _GETPATHELEMENTSRESPONSE.oneofs_by_name['version'].fields.append( _GETPATHELEMENTSRESPONSE.fields_by_name['v0']) _GETPATHELEMENTSRESPONSE.fields_by_name['v0'].containing_oneof = _GETPATHELEMENTSRESPONSE.oneofs_by_name['version'] +_GETSTATUSREQUEST_GETSTATUSREQUESTV0.containing_type = _GETSTATUSREQUEST +_GETSTATUSREQUEST.fields_by_name['v0'].message_type = _GETSTATUSREQUEST_GETSTATUSREQUESTV0 +_GETSTATUSREQUEST.oneofs_by_name['version'].fields.append( + _GETSTATUSREQUEST.fields_by_name['v0']) +_GETSTATUSREQUEST.fields_by_name['v0'].containing_oneof = _GETSTATUSREQUEST.oneofs_by_name['version'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.oneofs_by_name['_drive'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.fields_by_name['drive']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.fields_by_name['drive'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.oneofs_by_name['_drive'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.oneofs_by_name['_tenderdash'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.fields_by_name['tenderdash']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.fields_by_name['tenderdash'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE.oneofs_by_name['_tenderdash'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL.fields_by_name['tenderdash'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL.fields_by_name['drive'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION.fields_by_name['software'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION.fields_by_name['protocol'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_block'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['block']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['block'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_block'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_genesis'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['genesis']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['genesis'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_genesis'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_epoch'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['epoch']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.fields_by_name['epoch'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME.oneofs_by_name['_epoch'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE.oneofs_by_name['_pro_tx_hash'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE.fields_by_name['pro_tx_hash']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE.fields_by_name['pro_tx_hash'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE.oneofs_by_name['_pro_tx_hash'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN.oneofs_by_name['_core_chain_locked_height'].fields.append( + _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN.fields_by_name['core_chain_locked_height']) +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN.fields_by_name['core_chain_locked_height'].containing_oneof = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN.oneofs_by_name['_core_chain_locked_height'] +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC.containing_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['version'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['node'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['chain'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['network'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['state_sync'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.fields_by_name['time'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME +_GETSTATUSRESPONSE_GETSTATUSRESPONSEV0.containing_type = _GETSTATUSRESPONSE +_GETSTATUSRESPONSE.fields_by_name['v0'].message_type = _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0 +_GETSTATUSRESPONSE.oneofs_by_name['version'].fields.append( + _GETSTATUSRESPONSE.fields_by_name['v0']) +_GETSTATUSRESPONSE.fields_by_name['v0'].containing_oneof = _GETSTATUSRESPONSE.oneofs_by_name['version'] +_GETCURRENTQUORUMSINFOREQUEST_GETCURRENTQUORUMSINFOREQUESTV0.containing_type = _GETCURRENTQUORUMSINFOREQUEST +_GETCURRENTQUORUMSINFOREQUEST.fields_by_name['v0'].message_type = _GETCURRENTQUORUMSINFOREQUEST_GETCURRENTQUORUMSINFOREQUESTV0 +_GETCURRENTQUORUMSINFOREQUEST.oneofs_by_name['version'].fields.append( + _GETCURRENTQUORUMSINFOREQUEST.fields_by_name['v0']) +_GETCURRENTQUORUMSINFOREQUEST.fields_by_name['v0'].containing_oneof = _GETCURRENTQUORUMSINFOREQUEST.oneofs_by_name['version'] +_GETCURRENTQUORUMSINFORESPONSE_VALIDATORV0.containing_type = _GETCURRENTQUORUMSINFORESPONSE +_GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0.fields_by_name['members'].message_type = _GETCURRENTQUORUMSINFORESPONSE_VALIDATORV0 +_GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0.containing_type = _GETCURRENTQUORUMSINFORESPONSE +_GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0.fields_by_name['validator_sets'].message_type = _GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0 +_GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0.fields_by_name['metadata'].message_type = _RESPONSEMETADATA +_GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0.containing_type = _GETCURRENTQUORUMSINFORESPONSE +_GETCURRENTQUORUMSINFORESPONSE.fields_by_name['v0'].message_type = _GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0 +_GETCURRENTQUORUMSINFORESPONSE.oneofs_by_name['version'].fields.append( + _GETCURRENTQUORUMSINFORESPONSE.fields_by_name['v0']) +_GETCURRENTQUORUMSINFORESPONSE.fields_by_name['v0'].containing_oneof = _GETCURRENTQUORUMSINFORESPONSE.oneofs_by_name['version'] DESCRIPTOR.message_types_by_name['Proof'] = _PROOF DESCRIPTOR.message_types_by_name['ResponseMetadata'] = _RESPONSEMETADATA DESCRIPTOR.message_types_by_name['StateTransitionBroadcastError'] = _STATETRANSITIONBROADCASTERROR @@ -7638,6 +9313,11 @@ DESCRIPTOR.message_types_by_name['GetIdentityKeysResponse'] = _GETIDENTITYKEYSRESPONSE DESCRIPTOR.message_types_by_name['GetIdentitiesContractKeysRequest'] = _GETIDENTITIESCONTRACTKEYSREQUEST DESCRIPTOR.message_types_by_name['GetIdentitiesContractKeysResponse'] = _GETIDENTITIESCONTRACTKEYSRESPONSE +DESCRIPTOR.message_types_by_name['GetEvonodesProposedEpochBlocksByIdsRequest'] = _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST +DESCRIPTOR.message_types_by_name['GetEvonodesProposedEpochBlocksResponse'] = _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE +DESCRIPTOR.message_types_by_name['GetEvonodesProposedEpochBlocksByRangeRequest'] = _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST +DESCRIPTOR.message_types_by_name['GetIdentitiesBalancesRequest'] = _GETIDENTITIESBALANCESREQUEST +DESCRIPTOR.message_types_by_name['GetIdentitiesBalancesResponse'] = _GETIDENTITIESBALANCESRESPONSE DESCRIPTOR.message_types_by_name['GetProofsRequest'] = _GETPROOFSREQUEST DESCRIPTOR.message_types_by_name['GetProofsResponse'] = _GETPROOFSRESPONSE DESCRIPTOR.message_types_by_name['GetDataContractRequest'] = _GETDATACONTRACTREQUEST @@ -7676,6 +9356,10 @@ DESCRIPTOR.message_types_by_name['GetTotalCreditsInPlatformResponse'] = _GETTOTALCREDITSINPLATFORMRESPONSE DESCRIPTOR.message_types_by_name['GetPathElementsRequest'] = _GETPATHELEMENTSREQUEST DESCRIPTOR.message_types_by_name['GetPathElementsResponse'] = _GETPATHELEMENTSRESPONSE +DESCRIPTOR.message_types_by_name['GetStatusRequest'] = _GETSTATUSREQUEST +DESCRIPTOR.message_types_by_name['GetStatusResponse'] = _GETSTATUSRESPONSE +DESCRIPTOR.message_types_by_name['GetCurrentQuorumsInfoRequest'] = _GETCURRENTQUORUMSINFOREQUEST +DESCRIPTOR.message_types_by_name['GetCurrentQuorumsInfoResponse'] = _GETCURRENTQUORUMSINFORESPONSE DESCRIPTOR.enum_types_by_name['KeyPurpose'] = _KEYPURPOSE _sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -8015,6 +9699,113 @@ _sym_db.RegisterMessage(GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentityKeys) _sym_db.RegisterMessage(GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeys) +GetEvonodesProposedEpochBlocksByIdsRequest = _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksByIdsRequest', (_message.Message,), { + + 'GetEvonodesProposedEpochBlocksByIdsRequestV0' : _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksByIdsRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0) + }) + , + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest) + }) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksByIdsRequest) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0) + +GetEvonodesProposedEpochBlocksResponse = _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksResponse', (_message.Message,), { + + 'GetEvonodesProposedEpochBlocksResponseV0' : _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksResponseV0', (_message.Message,), { + + 'EvonodeProposedBlocks' : _reflection.GeneratedProtocolMessageType('EvonodeProposedBlocks', (_message.Message,), { + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODEPROPOSEDBLOCKS, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks) + }) + , + + 'EvonodesProposedBlocks' : _reflection.GeneratedProtocolMessageType('EvonodesProposedBlocks', (_message.Message,), { + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0_EVONODESPROPOSEDBLOCKS, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks) + }) + , + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSEV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0) + }) + , + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse) + }) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksResponse) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks) + +GetEvonodesProposedEpochBlocksByRangeRequest = _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksByRangeRequest', (_message.Message,), { + + 'GetEvonodesProposedEpochBlocksByRangeRequestV0' : _reflection.GeneratedProtocolMessageType('GetEvonodesProposedEpochBlocksByRangeRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0) + }) + , + 'DESCRIPTOR' : _GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest) + }) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksByRangeRequest) +_sym_db.RegisterMessage(GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0) + +GetIdentitiesBalancesRequest = _reflection.GeneratedProtocolMessageType('GetIdentitiesBalancesRequest', (_message.Message,), { + + 'GetIdentitiesBalancesRequestV0' : _reflection.GeneratedProtocolMessageType('GetIdentitiesBalancesRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _GETIDENTITIESBALANCESREQUEST_GETIDENTITIESBALANCESREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0) + }) + , + 'DESCRIPTOR' : _GETIDENTITIESBALANCESREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest) + }) +_sym_db.RegisterMessage(GetIdentitiesBalancesRequest) +_sym_db.RegisterMessage(GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0) + +GetIdentitiesBalancesResponse = _reflection.GeneratedProtocolMessageType('GetIdentitiesBalancesResponse', (_message.Message,), { + + 'GetIdentitiesBalancesResponseV0' : _reflection.GeneratedProtocolMessageType('GetIdentitiesBalancesResponseV0', (_message.Message,), { + + 'IdentityBalance' : _reflection.GeneratedProtocolMessageType('IdentityBalance', (_message.Message,), { + 'DESCRIPTOR' : _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITYBALANCE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance) + }) + , + + 'IdentitiesBalances' : _reflection.GeneratedProtocolMessageType('IdentitiesBalances', (_message.Message,), { + 'DESCRIPTOR' : _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0_IDENTITIESBALANCES, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances) + }) + , + 'DESCRIPTOR' : _GETIDENTITIESBALANCESRESPONSE_GETIDENTITIESBALANCESRESPONSEV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0) + }) + , + 'DESCRIPTOR' : _GETIDENTITIESBALANCESRESPONSE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse) + }) +_sym_db.RegisterMessage(GetIdentitiesBalancesResponse) +_sym_db.RegisterMessage(GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0) +_sym_db.RegisterMessage(GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance) +_sym_db.RegisterMessage(GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances) + GetProofsRequest = _reflection.GeneratedProtocolMessageType('GetProofsRequest', (_message.Message,), { 'GetProofsRequestV0' : _reflection.GeneratedProtocolMessageType('GetProofsRequestV0', (_message.Message,), { @@ -8865,6 +10656,162 @@ _sym_db.RegisterMessage(GetPathElementsResponse.GetPathElementsResponseV0) _sym_db.RegisterMessage(GetPathElementsResponse.GetPathElementsResponseV0.Elements) +GetStatusRequest = _reflection.GeneratedProtocolMessageType('GetStatusRequest', (_message.Message,), { + + 'GetStatusRequestV0' : _reflection.GeneratedProtocolMessageType('GetStatusRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSREQUEST_GETSTATUSREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0) + }) + , + 'DESCRIPTOR' : _GETSTATUSREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusRequest) + }) +_sym_db.RegisterMessage(GetStatusRequest) +_sym_db.RegisterMessage(GetStatusRequest.GetStatusRequestV0) + +GetStatusResponse = _reflection.GeneratedProtocolMessageType('GetStatusResponse', (_message.Message,), { + + 'GetStatusResponseV0' : _reflection.GeneratedProtocolMessageType('GetStatusResponseV0', (_message.Message,), { + + 'Version' : _reflection.GeneratedProtocolMessageType('Version', (_message.Message,), { + + 'Software' : _reflection.GeneratedProtocolMessageType('Software', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_SOFTWARE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software) + }) + , + + 'Protocol' : _reflection.GeneratedProtocolMessageType('Protocol', (_message.Message,), { + + 'Tenderdash' : _reflection.GeneratedProtocolMessageType('Tenderdash', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_TENDERDASH, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash) + }) + , + + 'Drive' : _reflection.GeneratedProtocolMessageType('Drive', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL_DRIVE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive) + }) + , + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION_PROTOCOL, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol) + }) + , + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_VERSION, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version) + }) + , + + 'Time' : _reflection.GeneratedProtocolMessageType('Time', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_TIME, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time) + }) + , + + 'Node' : _reflection.GeneratedProtocolMessageType('Node', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NODE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node) + }) + , + + 'Chain' : _reflection.GeneratedProtocolMessageType('Chain', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_CHAIN, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain) + }) + , + + 'Network' : _reflection.GeneratedProtocolMessageType('Network', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_NETWORK, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network) + }) + , + + 'StateSync' : _reflection.GeneratedProtocolMessageType('StateSync', (_message.Message,), { + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0_STATESYNC, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync) + }) + , + 'DESCRIPTOR' : _GETSTATUSRESPONSE_GETSTATUSRESPONSEV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0) + }) + , + 'DESCRIPTOR' : _GETSTATUSRESPONSE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetStatusResponse) + }) +_sym_db.RegisterMessage(GetStatusResponse) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Version) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Version.Software) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Version.Protocol) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Time) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Node) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Chain) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.Network) +_sym_db.RegisterMessage(GetStatusResponse.GetStatusResponseV0.StateSync) + +GetCurrentQuorumsInfoRequest = _reflection.GeneratedProtocolMessageType('GetCurrentQuorumsInfoRequest', (_message.Message,), { + + 'GetCurrentQuorumsInfoRequestV0' : _reflection.GeneratedProtocolMessageType('GetCurrentQuorumsInfoRequestV0', (_message.Message,), { + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFOREQUEST_GETCURRENTQUORUMSINFOREQUESTV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0) + }) + , + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFOREQUEST, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest) + }) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoRequest) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0) + +GetCurrentQuorumsInfoResponse = _reflection.GeneratedProtocolMessageType('GetCurrentQuorumsInfoResponse', (_message.Message,), { + + 'ValidatorV0' : _reflection.GeneratedProtocolMessageType('ValidatorV0', (_message.Message,), { + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFORESPONSE_VALIDATORV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0) + }) + , + + 'ValidatorSetV0' : _reflection.GeneratedProtocolMessageType('ValidatorSetV0', (_message.Message,), { + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFORESPONSE_VALIDATORSETV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0) + }) + , + + 'GetCurrentQuorumsInfoResponseV0' : _reflection.GeneratedProtocolMessageType('GetCurrentQuorumsInfoResponseV0', (_message.Message,), { + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFORESPONSE_GETCURRENTQUORUMSINFORESPONSEV0, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0) + }) + , + 'DESCRIPTOR' : _GETCURRENTQUORUMSINFORESPONSE, + '__module__' : 'platform_pb2' + # @@protoc_insertion_point(class_scope:org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse) + }) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoResponse) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoResponse.ValidatorV0) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoResponse.ValidatorSetV0) +_sym_db.RegisterMessage(GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0) + _SEARCHKEY_PURPOSEMAPENTRY._options = None _SECURITYLEVELMAP_SECURITYLEVELMAPENTRY._options = None @@ -8876,8 +10823,8 @@ index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=26207, - serialized_end=30105, + serialized_start=31605, + serialized_end=36249, methods=[ _descriptor.MethodDescriptor( name='broadcastStateTransition', @@ -8949,20 +10896,50 @@ serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='getIdentitiesBalances', + full_name='org.dash.platform.dapi.v0.Platform.getIdentitiesBalances', + index=7, + containing_service=None, + input_type=_GETIDENTITIESBALANCESREQUEST, + output_type=_GETIDENTITIESBALANCESRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), _descriptor.MethodDescriptor( name='getIdentityBalanceAndRevision', full_name='org.dash.platform.dapi.v0.Platform.getIdentityBalanceAndRevision', - index=7, + index=8, containing_service=None, input_type=_GETIDENTITYBALANCEANDREVISIONREQUEST, output_type=_GETIDENTITYBALANCEANDREVISIONRESPONSE, serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='getEvonodesProposedEpochBlocksByIds', + full_name='org.dash.platform.dapi.v0.Platform.getEvonodesProposedEpochBlocksByIds', + index=9, + containing_service=None, + input_type=_GETEVONODESPROPOSEDEPOCHBLOCKSBYIDSREQUEST, + output_type=_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='getEvonodesProposedEpochBlocksByRange', + full_name='org.dash.platform.dapi.v0.Platform.getEvonodesProposedEpochBlocksByRange', + index=10, + containing_service=None, + input_type=_GETEVONODESPROPOSEDEPOCHBLOCKSBYRANGEREQUEST, + output_type=_GETEVONODESPROPOSEDEPOCHBLOCKSRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), _descriptor.MethodDescriptor( name='getProofs', full_name='org.dash.platform.dapi.v0.Platform.getProofs', - index=8, + index=11, containing_service=None, input_type=_GETPROOFSREQUEST, output_type=_GETPROOFSRESPONSE, @@ -8972,7 +10949,7 @@ _descriptor.MethodDescriptor( name='getDataContract', full_name='org.dash.platform.dapi.v0.Platform.getDataContract', - index=9, + index=12, containing_service=None, input_type=_GETDATACONTRACTREQUEST, output_type=_GETDATACONTRACTRESPONSE, @@ -8982,7 +10959,7 @@ _descriptor.MethodDescriptor( name='getDataContractHistory', full_name='org.dash.platform.dapi.v0.Platform.getDataContractHistory', - index=10, + index=13, containing_service=None, input_type=_GETDATACONTRACTHISTORYREQUEST, output_type=_GETDATACONTRACTHISTORYRESPONSE, @@ -8992,7 +10969,7 @@ _descriptor.MethodDescriptor( name='getDataContracts', full_name='org.dash.platform.dapi.v0.Platform.getDataContracts', - index=11, + index=14, containing_service=None, input_type=_GETDATACONTRACTSREQUEST, output_type=_GETDATACONTRACTSRESPONSE, @@ -9002,7 +10979,7 @@ _descriptor.MethodDescriptor( name='getDocuments', full_name='org.dash.platform.dapi.v0.Platform.getDocuments', - index=12, + index=15, containing_service=None, input_type=_GETDOCUMENTSREQUEST, output_type=_GETDOCUMENTSRESPONSE, @@ -9012,7 +10989,7 @@ _descriptor.MethodDescriptor( name='getIdentityByPublicKeyHash', full_name='org.dash.platform.dapi.v0.Platform.getIdentityByPublicKeyHash', - index=13, + index=16, containing_service=None, input_type=_GETIDENTITYBYPUBLICKEYHASHREQUEST, output_type=_GETIDENTITYBYPUBLICKEYHASHRESPONSE, @@ -9022,7 +10999,7 @@ _descriptor.MethodDescriptor( name='waitForStateTransitionResult', full_name='org.dash.platform.dapi.v0.Platform.waitForStateTransitionResult', - index=14, + index=17, containing_service=None, input_type=_WAITFORSTATETRANSITIONRESULTREQUEST, output_type=_WAITFORSTATETRANSITIONRESULTRESPONSE, @@ -9032,7 +11009,7 @@ _descriptor.MethodDescriptor( name='getConsensusParams', full_name='org.dash.platform.dapi.v0.Platform.getConsensusParams', - index=15, + index=18, containing_service=None, input_type=_GETCONSENSUSPARAMSREQUEST, output_type=_GETCONSENSUSPARAMSRESPONSE, @@ -9042,7 +11019,7 @@ _descriptor.MethodDescriptor( name='getProtocolVersionUpgradeState', full_name='org.dash.platform.dapi.v0.Platform.getProtocolVersionUpgradeState', - index=16, + index=19, containing_service=None, input_type=_GETPROTOCOLVERSIONUPGRADESTATEREQUEST, output_type=_GETPROTOCOLVERSIONUPGRADESTATERESPONSE, @@ -9052,7 +11029,7 @@ _descriptor.MethodDescriptor( name='getProtocolVersionUpgradeVoteStatus', full_name='org.dash.platform.dapi.v0.Platform.getProtocolVersionUpgradeVoteStatus', - index=17, + index=20, containing_service=None, input_type=_GETPROTOCOLVERSIONUPGRADEVOTESTATUSREQUEST, output_type=_GETPROTOCOLVERSIONUPGRADEVOTESTATUSRESPONSE, @@ -9062,7 +11039,7 @@ _descriptor.MethodDescriptor( name='getEpochsInfo', full_name='org.dash.platform.dapi.v0.Platform.getEpochsInfo', - index=18, + index=21, containing_service=None, input_type=_GETEPOCHSINFOREQUEST, output_type=_GETEPOCHSINFORESPONSE, @@ -9072,7 +11049,7 @@ _descriptor.MethodDescriptor( name='getContestedResources', full_name='org.dash.platform.dapi.v0.Platform.getContestedResources', - index=19, + index=22, containing_service=None, input_type=_GETCONTESTEDRESOURCESREQUEST, output_type=_GETCONTESTEDRESOURCESRESPONSE, @@ -9082,7 +11059,7 @@ _descriptor.MethodDescriptor( name='getContestedResourceVoteState', full_name='org.dash.platform.dapi.v0.Platform.getContestedResourceVoteState', - index=20, + index=23, containing_service=None, input_type=_GETCONTESTEDRESOURCEVOTESTATEREQUEST, output_type=_GETCONTESTEDRESOURCEVOTESTATERESPONSE, @@ -9092,7 +11069,7 @@ _descriptor.MethodDescriptor( name='getContestedResourceVotersForIdentity', full_name='org.dash.platform.dapi.v0.Platform.getContestedResourceVotersForIdentity', - index=21, + index=24, containing_service=None, input_type=_GETCONTESTEDRESOURCEVOTERSFORIDENTITYREQUEST, output_type=_GETCONTESTEDRESOURCEVOTERSFORIDENTITYRESPONSE, @@ -9102,7 +11079,7 @@ _descriptor.MethodDescriptor( name='getContestedResourceIdentityVotes', full_name='org.dash.platform.dapi.v0.Platform.getContestedResourceIdentityVotes', - index=22, + index=25, containing_service=None, input_type=_GETCONTESTEDRESOURCEIDENTITYVOTESREQUEST, output_type=_GETCONTESTEDRESOURCEIDENTITYVOTESRESPONSE, @@ -9112,7 +11089,7 @@ _descriptor.MethodDescriptor( name='getVotePollsByEndDate', full_name='org.dash.platform.dapi.v0.Platform.getVotePollsByEndDate', - index=23, + index=26, containing_service=None, input_type=_GETVOTEPOLLSBYENDDATEREQUEST, output_type=_GETVOTEPOLLSBYENDDATERESPONSE, @@ -9122,7 +11099,7 @@ _descriptor.MethodDescriptor( name='getPrefundedSpecializedBalance', full_name='org.dash.platform.dapi.v0.Platform.getPrefundedSpecializedBalance', - index=24, + index=27, containing_service=None, input_type=_GETPREFUNDEDSPECIALIZEDBALANCEREQUEST, output_type=_GETPREFUNDEDSPECIALIZEDBALANCERESPONSE, @@ -9132,7 +11109,7 @@ _descriptor.MethodDescriptor( name='getTotalCreditsInPlatform', full_name='org.dash.platform.dapi.v0.Platform.getTotalCreditsInPlatform', - index=25, + index=28, containing_service=None, input_type=_GETTOTALCREDITSINPLATFORMREQUEST, output_type=_GETTOTALCREDITSINPLATFORMRESPONSE, @@ -9142,13 +11119,33 @@ _descriptor.MethodDescriptor( name='getPathElements', full_name='org.dash.platform.dapi.v0.Platform.getPathElements', - index=26, + index=29, containing_service=None, input_type=_GETPATHELEMENTSREQUEST, output_type=_GETPATHELEMENTSRESPONSE, serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='getStatus', + full_name='org.dash.platform.dapi.v0.Platform.getStatus', + index=30, + containing_service=None, + input_type=_GETSTATUSREQUEST, + output_type=_GETSTATUSRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='getCurrentQuorumsInfo', + full_name='org.dash.platform.dapi.v0.Platform.getCurrentQuorumsInfo', + index=31, + containing_service=None, + input_type=_GETCURRENTQUORUMSINFOREQUEST, + output_type=_GETCURRENTQUORUMSINFORESPONSE, + 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 83189ff09f..b8c3847869 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 @@ -49,11 +49,26 @@ def __init__(self, channel): request_serializer=platform__pb2.GetIdentityBalanceRequest.SerializeToString, response_deserializer=platform__pb2.GetIdentityBalanceResponse.FromString, ) + self.getIdentitiesBalances = channel.unary_unary( + '/org.dash.platform.dapi.v0.Platform/getIdentitiesBalances', + request_serializer=platform__pb2.GetIdentitiesBalancesRequest.SerializeToString, + response_deserializer=platform__pb2.GetIdentitiesBalancesResponse.FromString, + ) self.getIdentityBalanceAndRevision = channel.unary_unary( '/org.dash.platform.dapi.v0.Platform/getIdentityBalanceAndRevision', request_serializer=platform__pb2.GetIdentityBalanceAndRevisionRequest.SerializeToString, response_deserializer=platform__pb2.GetIdentityBalanceAndRevisionResponse.FromString, ) + self.getEvonodesProposedEpochBlocksByIds = channel.unary_unary( + '/org.dash.platform.dapi.v0.Platform/getEvonodesProposedEpochBlocksByIds', + request_serializer=platform__pb2.GetEvonodesProposedEpochBlocksByIdsRequest.SerializeToString, + response_deserializer=platform__pb2.GetEvonodesProposedEpochBlocksResponse.FromString, + ) + self.getEvonodesProposedEpochBlocksByRange = channel.unary_unary( + '/org.dash.platform.dapi.v0.Platform/getEvonodesProposedEpochBlocksByRange', + request_serializer=platform__pb2.GetEvonodesProposedEpochBlocksByRangeRequest.SerializeToString, + response_deserializer=platform__pb2.GetEvonodesProposedEpochBlocksResponse.FromString, + ) self.getProofs = channel.unary_unary( '/org.dash.platform.dapi.v0.Platform/getProofs', request_serializer=platform__pb2.GetProofsRequest.SerializeToString, @@ -149,6 +164,16 @@ def __init__(self, channel): request_serializer=platform__pb2.GetPathElementsRequest.SerializeToString, response_deserializer=platform__pb2.GetPathElementsResponse.FromString, ) + self.getStatus = channel.unary_unary( + '/org.dash.platform.dapi.v0.Platform/getStatus', + request_serializer=platform__pb2.GetStatusRequest.SerializeToString, + response_deserializer=platform__pb2.GetStatusResponse.FromString, + ) + self.getCurrentQuorumsInfo = channel.unary_unary( + '/org.dash.platform.dapi.v0.Platform/getCurrentQuorumsInfo', + request_serializer=platform__pb2.GetCurrentQuorumsInfoRequest.SerializeToString, + response_deserializer=platform__pb2.GetCurrentQuorumsInfoResponse.FromString, + ) class PlatformServicer(object): @@ -196,12 +221,30 @@ def getIdentityBalance(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def getIdentitiesBalances(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def getIdentityBalanceAndRevision(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def getEvonodesProposedEpochBlocksByIds(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getEvonodesProposedEpochBlocksByRange(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def getProofs(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -321,6 +364,18 @@ def getPathElements(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def getStatus(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def getCurrentQuorumsInfo(self, request, context): + """Missing associated documentation comment in .proto file.""" + 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 = { @@ -359,11 +414,26 @@ def add_PlatformServicer_to_server(servicer, server): request_deserializer=platform__pb2.GetIdentityBalanceRequest.FromString, response_serializer=platform__pb2.GetIdentityBalanceResponse.SerializeToString, ), + 'getIdentitiesBalances': grpc.unary_unary_rpc_method_handler( + servicer.getIdentitiesBalances, + request_deserializer=platform__pb2.GetIdentitiesBalancesRequest.FromString, + response_serializer=platform__pb2.GetIdentitiesBalancesResponse.SerializeToString, + ), 'getIdentityBalanceAndRevision': grpc.unary_unary_rpc_method_handler( servicer.getIdentityBalanceAndRevision, request_deserializer=platform__pb2.GetIdentityBalanceAndRevisionRequest.FromString, response_serializer=platform__pb2.GetIdentityBalanceAndRevisionResponse.SerializeToString, ), + 'getEvonodesProposedEpochBlocksByIds': grpc.unary_unary_rpc_method_handler( + servicer.getEvonodesProposedEpochBlocksByIds, + request_deserializer=platform__pb2.GetEvonodesProposedEpochBlocksByIdsRequest.FromString, + response_serializer=platform__pb2.GetEvonodesProposedEpochBlocksResponse.SerializeToString, + ), + 'getEvonodesProposedEpochBlocksByRange': grpc.unary_unary_rpc_method_handler( + servicer.getEvonodesProposedEpochBlocksByRange, + request_deserializer=platform__pb2.GetEvonodesProposedEpochBlocksByRangeRequest.FromString, + response_serializer=platform__pb2.GetEvonodesProposedEpochBlocksResponse.SerializeToString, + ), 'getProofs': grpc.unary_unary_rpc_method_handler( servicer.getProofs, request_deserializer=platform__pb2.GetProofsRequest.FromString, @@ -459,6 +529,16 @@ def add_PlatformServicer_to_server(servicer, server): request_deserializer=platform__pb2.GetPathElementsRequest.FromString, response_serializer=platform__pb2.GetPathElementsResponse.SerializeToString, ), + 'getStatus': grpc.unary_unary_rpc_method_handler( + servicer.getStatus, + request_deserializer=platform__pb2.GetStatusRequest.FromString, + response_serializer=platform__pb2.GetStatusResponse.SerializeToString, + ), + 'getCurrentQuorumsInfo': grpc.unary_unary_rpc_method_handler( + servicer.getCurrentQuorumsInfo, + request_deserializer=platform__pb2.GetCurrentQuorumsInfoRequest.FromString, + response_serializer=platform__pb2.GetCurrentQuorumsInfoResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'org.dash.platform.dapi.v0.Platform', rpc_method_handlers) @@ -588,6 +668,23 @@ def getIdentityBalance(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def getIdentitiesBalances(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_unary(request, target, '/org.dash.platform.dapi.v0.Platform/getIdentitiesBalances', + platform__pb2.GetIdentitiesBalancesRequest.SerializeToString, + platform__pb2.GetIdentitiesBalancesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def getIdentityBalanceAndRevision(request, target, @@ -605,6 +702,40 @@ def getIdentityBalanceAndRevision(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def getEvonodesProposedEpochBlocksByIds(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_unary(request, target, '/org.dash.platform.dapi.v0.Platform/getEvonodesProposedEpochBlocksByIds', + platform__pb2.GetEvonodesProposedEpochBlocksByIdsRequest.SerializeToString, + platform__pb2.GetEvonodesProposedEpochBlocksResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getEvonodesProposedEpochBlocksByRange(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_unary(request, target, '/org.dash.platform.dapi.v0.Platform/getEvonodesProposedEpochBlocksByRange', + platform__pb2.GetEvonodesProposedEpochBlocksByRangeRequest.SerializeToString, + platform__pb2.GetEvonodesProposedEpochBlocksResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def getProofs(request, target, @@ -927,3 +1058,37 @@ def getPathElements(request, platform__pb2.GetPathElementsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getStatus(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_unary(request, target, '/org.dash.platform.dapi.v0.Platform/getStatus', + platform__pb2.GetStatusRequest.SerializeToString, + platform__pb2.GetStatusResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def getCurrentQuorumsInfo(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_unary(request, target, '/org.dash.platform.dapi.v0.Platform/getCurrentQuorumsInfo', + platform__pb2.GetCurrentQuorumsInfoRequest.SerializeToString, + platform__pb2.GetCurrentQuorumsInfoResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/packages/dapi-grpc/clients/platform/v0/web/PlatformPromiseClient.js b/packages/dapi-grpc/clients/platform/v0/web/PlatformPromiseClient.js index 9805cd84ff..13be28a2d5 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/PlatformPromiseClient.js +++ b/packages/dapi-grpc/clients/platform/v0/web/PlatformPromiseClient.js @@ -232,6 +232,20 @@ class PlatformPromiseClient { ); } + /** + * @param {!GetStatusRequest} getStatusRequest + * @param {?Object} metadata + * @return {Promise} + */ + getStatus(getStatusRequest, metadata = {}) { + return promisify( + this.client.getStatus.bind(this.client), + )( + getStatusRequest, + metadata, + ); + } + /** * @param {string} protocolVersion */ 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 e4c266bee1..e9028523b9 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 @@ -1320,242 +1320,176 @@ export namespace GetIdentitiesContractKeysResponse { } } -export class GetProofsRequest extends jspb.Message { +export class GetEvonodesProposedEpochBlocksByIdsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProofsRequest.GetProofsRequestV0 | undefined; - setV0(value?: GetProofsRequest.GetProofsRequestV0): void; + getV0(): GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 | undefined; + setV0(value?: GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0): void; - getVersionCase(): GetProofsRequest.VersionCase; + getVersionCase(): GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProofsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetProofsRequest): GetProofsRequest.AsObject; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksByIdsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksByIdsRequest): GetEvonodesProposedEpochBlocksByIdsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProofsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProofsRequest; - static deserializeBinaryFromReader(message: GetProofsRequest, reader: jspb.BinaryReader): GetProofsRequest; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksByIdsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksByIdsRequest; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksByIdsRequest, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksByIdsRequest; } -export namespace GetProofsRequest { +export namespace GetEvonodesProposedEpochBlocksByIdsRequest { export type AsObject = { - v0?: GetProofsRequest.GetProofsRequestV0.AsObject, + v0?: GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.AsObject, } - export class GetProofsRequestV0 extends jspb.Message { - clearIdentitiesList(): void; - getIdentitiesList(): Array; - setIdentitiesList(value: Array): void; - addIdentities(value?: GetProofsRequest.GetProofsRequestV0.IdentityRequest, index?: number): GetProofsRequest.GetProofsRequestV0.IdentityRequest; - - clearContractsList(): void; - getContractsList(): Array; - setContractsList(value: Array): void; - addContracts(value?: GetProofsRequest.GetProofsRequestV0.ContractRequest, index?: number): GetProofsRequest.GetProofsRequestV0.ContractRequest; + export class GetEvonodesProposedEpochBlocksByIdsRequestV0 extends jspb.Message { + hasEpoch(): boolean; + clearEpoch(): void; + getEpoch(): number; + setEpoch(value: number): void; - clearDocumentsList(): void; - getDocumentsList(): Array; - setDocumentsList(value: Array): void; - addDocuments(value?: GetProofsRequest.GetProofsRequestV0.DocumentRequest, index?: number): GetProofsRequest.GetProofsRequestV0.DocumentRequest; + clearIdsList(): void; + getIdsList(): Array; + getIdsList_asU8(): Array; + getIdsList_asB64(): Array; + setIdsList(value: Array): void; + addIds(value: Uint8Array | string, index?: number): Uint8Array | string; - clearVotesList(): void; - getVotesList(): Array; - setVotesList(value: Array): void; - addVotes(value?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, index?: number): GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; + getProve(): boolean; + setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProofsRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProofsRequestV0): GetProofsRequestV0.AsObject; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksByIdsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksByIdsRequestV0): GetEvonodesProposedEpochBlocksByIdsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProofsRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProofsRequestV0; - static deserializeBinaryFromReader(message: GetProofsRequestV0, reader: jspb.BinaryReader): GetProofsRequestV0; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksByIdsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksByIdsRequestV0; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksByIdsRequestV0, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksByIdsRequestV0; } - export namespace GetProofsRequestV0 { + export namespace GetEvonodesProposedEpochBlocksByIdsRequestV0 { export type AsObject = { - identitiesList: Array, - contractsList: Array, - documentsList: Array, - votesList: Array, + epoch: number, + idsList: Array, + prove: boolean, } + } - export class DocumentRequest extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} - getDocumentType(): string; - setDocumentType(value: string): void; +export class GetEvonodesProposedEpochBlocksResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 | undefined; + setV0(value?: GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0): void; - getDocumentTypeKeepsHistory(): boolean; - setDocumentTypeKeepsHistory(value: boolean): void; + getVersionCase(): GetEvonodesProposedEpochBlocksResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksResponse): GetEvonodesProposedEpochBlocksResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksResponse; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksResponse, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksResponse; +} - getDocumentId(): Uint8Array | string; - getDocumentId_asU8(): Uint8Array; - getDocumentId_asB64(): string; - setDocumentId(value: Uint8Array | string): void; +export namespace GetEvonodesProposedEpochBlocksResponse { + export type AsObject = { + v0?: GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.AsObject, + } - getDocumentContestedStatus(): GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap]; - setDocumentContestedStatus(value: GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap]): void; + export class GetEvonodesProposedEpochBlocksResponseV0 extends jspb.Message { + hasEvonodesProposedBlockCountsInfo(): boolean; + clearEvonodesProposedBlockCountsInfo(): void; + getEvonodesProposedBlockCountsInfo(): GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks | undefined; + setEvonodesProposedBlockCountsInfo(value?: GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DocumentRequest.AsObject; - static toObject(includeInstance: boolean, msg: DocumentRequest): DocumentRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DocumentRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DocumentRequest; - static deserializeBinaryFromReader(message: DocumentRequest, reader: jspb.BinaryReader): DocumentRequest; - } + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; - export namespace DocumentRequest { - export type AsObject = { - contractId: Uint8Array | string, - documentType: string, - documentTypeKeepsHistory: boolean, - documentId: Uint8Array | string, - documentContestedStatus: GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap], - } + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; - export interface DocumentContestedStatusMap { - NOT_CONTESTED: 0; - MAYBE_CONTESTED: 1; - CONTESTED: 2; - } + getResultCase(): GetEvonodesProposedEpochBlocksResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksResponseV0): GetEvonodesProposedEpochBlocksResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksResponseV0; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksResponseV0, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksResponseV0; + } - export const DocumentContestedStatus: DocumentContestedStatusMap; + export namespace GetEvonodesProposedEpochBlocksResponseV0 { + export type AsObject = { + evonodesProposedBlockCountsInfo?: GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, } - export class IdentityRequest extends jspb.Message { - getIdentityId(): Uint8Array | string; - getIdentityId_asU8(): Uint8Array; - getIdentityId_asB64(): string; - setIdentityId(value: Uint8Array | string): void; + export class EvonodeProposedBlocks extends jspb.Message { + getProTxHash(): Uint8Array | string; + getProTxHash_asU8(): Uint8Array; + getProTxHash_asB64(): string; + setProTxHash(value: Uint8Array | string): void; - getRequestType(): GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap]; - setRequestType(value: GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap]): void; + getCount(): number; + setCount(value: number): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): IdentityRequest.AsObject; - static toObject(includeInstance: boolean, msg: IdentityRequest): IdentityRequest.AsObject; + toObject(includeInstance?: boolean): EvonodeProposedBlocks.AsObject; + static toObject(includeInstance: boolean, msg: EvonodeProposedBlocks): EvonodeProposedBlocks.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: IdentityRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): IdentityRequest; - static deserializeBinaryFromReader(message: IdentityRequest, reader: jspb.BinaryReader): IdentityRequest; + static serializeBinaryToWriter(message: EvonodeProposedBlocks, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EvonodeProposedBlocks; + static deserializeBinaryFromReader(message: EvonodeProposedBlocks, reader: jspb.BinaryReader): EvonodeProposedBlocks; } - export namespace IdentityRequest { + export namespace EvonodeProposedBlocks { export type AsObject = { - identityId: Uint8Array | string, - requestType: GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap], - } - - export interface TypeMap { - FULL_IDENTITY: 0; - BALANCE: 1; - KEYS: 2; - REVISION: 3; + proTxHash: Uint8Array | string, + count: number, } - - export const Type: TypeMap; } - export class ContractRequest extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; + export class EvonodesProposedBlocks extends jspb.Message { + clearEvonodesProposedBlockCountsList(): void; + getEvonodesProposedBlockCountsList(): Array; + setEvonodesProposedBlockCountsList(value: Array): void; + addEvonodesProposedBlockCounts(value?: GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, index?: number): GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContractRequest.AsObject; - static toObject(includeInstance: boolean, msg: ContractRequest): ContractRequest.AsObject; + toObject(includeInstance?: boolean): EvonodesProposedBlocks.AsObject; + static toObject(includeInstance: boolean, msg: EvonodesProposedBlocks): EvonodesProposedBlocks.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContractRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContractRequest; - static deserializeBinaryFromReader(message: ContractRequest, reader: jspb.BinaryReader): ContractRequest; + static serializeBinaryToWriter(message: EvonodesProposedBlocks, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EvonodesProposedBlocks; + static deserializeBinaryFromReader(message: EvonodesProposedBlocks, reader: jspb.BinaryReader): EvonodesProposedBlocks; } - export namespace ContractRequest { + export namespace EvonodesProposedBlocks { export type AsObject = { - contractId: Uint8Array | string, + evonodesProposedBlockCountsList: Array, } } - export class VoteStatusRequest extends jspb.Message { - hasContestedResourceVoteStatusRequest(): boolean; - clearContestedResourceVoteStatusRequest(): void; - getContestedResourceVoteStatusRequest(): GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest | undefined; - setContestedResourceVoteStatusRequest(value?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest): void; - - getRequestTypeCase(): VoteStatusRequest.RequestTypeCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VoteStatusRequest.AsObject; - static toObject(includeInstance: boolean, msg: VoteStatusRequest): VoteStatusRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VoteStatusRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VoteStatusRequest; - static deserializeBinaryFromReader(message: VoteStatusRequest, reader: jspb.BinaryReader): VoteStatusRequest; - } - - export namespace VoteStatusRequest { - export type AsObject = { - contestedResourceVoteStatusRequest?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.AsObject, - } - - export class ContestedResourceVoteStatusRequest extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; - - getDocumentTypeName(): string; - setDocumentTypeName(value: string): void; - - getIndexName(): string; - setIndexName(value: string): void; - - clearIndexValuesList(): void; - getIndexValuesList(): Array; - getIndexValuesList_asU8(): Array; - getIndexValuesList_asB64(): Array; - setIndexValuesList(value: Array): void; - addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; - - getVoterIdentifier(): Uint8Array | string; - getVoterIdentifier_asU8(): Uint8Array; - getVoterIdentifier_asB64(): string; - setVoterIdentifier(value: Uint8Array | string): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceVoteStatusRequest.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceVoteStatusRequest): ContestedResourceVoteStatusRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceVoteStatusRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceVoteStatusRequest; - static deserializeBinaryFromReader(message: ContestedResourceVoteStatusRequest, reader: jspb.BinaryReader): ContestedResourceVoteStatusRequest; - } - - export namespace ContestedResourceVoteStatusRequest { - export type AsObject = { - contractId: Uint8Array | string, - documentTypeName: string, - indexName: string, - indexValuesList: Array, - voterIdentifier: Uint8Array | string, - } - } - - export enum RequestTypeCase { - REQUEST_TYPE_NOT_SET = 0, - CONTESTED_RESOURCE_VOTE_STATUS_REQUEST = 1, - } + export enum ResultCase { + RESULT_NOT_SET = 0, + EVONODES_PROPOSED_BLOCK_COUNTS_INFO = 1, + PROOF = 2, } } @@ -1565,59 +1499,80 @@ export namespace GetProofsRequest { } } -export class GetProofsResponse extends jspb.Message { +export class GetEvonodesProposedEpochBlocksByRangeRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProofsResponse.GetProofsResponseV0 | undefined; - setV0(value?: GetProofsResponse.GetProofsResponseV0): void; + getV0(): GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 | undefined; + setV0(value?: GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0): void; - getVersionCase(): GetProofsResponse.VersionCase; + getVersionCase(): GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProofsResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetProofsResponse): GetProofsResponse.AsObject; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksByRangeRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksByRangeRequest): GetEvonodesProposedEpochBlocksByRangeRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProofsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProofsResponse; - static deserializeBinaryFromReader(message: GetProofsResponse, reader: jspb.BinaryReader): GetProofsResponse; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksByRangeRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksByRangeRequest; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksByRangeRequest, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksByRangeRequest; } -export namespace GetProofsResponse { +export namespace GetEvonodesProposedEpochBlocksByRangeRequest { export type AsObject = { - v0?: GetProofsResponse.GetProofsResponseV0.AsObject, + v0?: GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.AsObject, } - export class GetProofsResponseV0 extends jspb.Message { - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + export class GetEvonodesProposedEpochBlocksByRangeRequestV0 extends jspb.Message { + hasEpoch(): boolean; + clearEpoch(): void; + getEpoch(): number; + setEpoch(value: number): void; - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + hasLimit(): boolean; + clearLimit(): void; + getLimit(): number; + setLimit(value: number): void; - getResultCase(): GetProofsResponseV0.ResultCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProofsResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProofsResponseV0): GetProofsResponseV0.AsObject; + hasStartAfter(): boolean; + clearStartAfter(): void; + getStartAfter(): Uint8Array | string; + getStartAfter_asU8(): Uint8Array; + getStartAfter_asB64(): string; + setStartAfter(value: Uint8Array | string): void; + + hasStartAt(): boolean; + clearStartAt(): void; + getStartAt(): Uint8Array | string; + getStartAt_asU8(): Uint8Array; + getStartAt_asB64(): string; + setStartAt(value: Uint8Array | string): void; + + getProve(): boolean; + setProve(value: boolean): void; + + getStartCase(): GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetEvonodesProposedEpochBlocksByRangeRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetEvonodesProposedEpochBlocksByRangeRequestV0): GetEvonodesProposedEpochBlocksByRangeRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProofsResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProofsResponseV0; - static deserializeBinaryFromReader(message: GetProofsResponseV0, reader: jspb.BinaryReader): GetProofsResponseV0; + static serializeBinaryToWriter(message: GetEvonodesProposedEpochBlocksByRangeRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEvonodesProposedEpochBlocksByRangeRequestV0; + static deserializeBinaryFromReader(message: GetEvonodesProposedEpochBlocksByRangeRequestV0, reader: jspb.BinaryReader): GetEvonodesProposedEpochBlocksByRangeRequestV0; } - export namespace GetProofsResponseV0 { + export namespace GetEvonodesProposedEpochBlocksByRangeRequestV0 { export type AsObject = { - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, + epoch: number, + limit: number, + startAfter: Uint8Array | string, + startAt: Uint8Array | string, + prove: boolean, } - export enum ResultCase { - RESULT_NOT_SET = 0, - PROOF = 1, + export enum StartCase { + START_NOT_SET = 0, + START_AFTER = 3, + START_AT = 4, } } @@ -1627,50 +1582,52 @@ export namespace GetProofsResponse { } } -export class GetDataContractRequest extends jspb.Message { +export class GetIdentitiesBalancesRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDataContractRequest.GetDataContractRequestV0 | undefined; - setV0(value?: GetDataContractRequest.GetDataContractRequestV0): void; + getV0(): GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 | undefined; + setV0(value?: GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0): void; - getVersionCase(): GetDataContractRequest.VersionCase; + getVersionCase(): GetIdentitiesBalancesRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractRequest): GetDataContractRequest.AsObject; + toObject(includeInstance?: boolean): GetIdentitiesBalancesRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentitiesBalancesRequest): GetIdentitiesBalancesRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractRequest; - static deserializeBinaryFromReader(message: GetDataContractRequest, reader: jspb.BinaryReader): GetDataContractRequest; + static serializeBinaryToWriter(message: GetIdentitiesBalancesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentitiesBalancesRequest; + static deserializeBinaryFromReader(message: GetIdentitiesBalancesRequest, reader: jspb.BinaryReader): GetIdentitiesBalancesRequest; } -export namespace GetDataContractRequest { +export namespace GetIdentitiesBalancesRequest { export type AsObject = { - v0?: GetDataContractRequest.GetDataContractRequestV0.AsObject, + v0?: GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.AsObject, } - export class GetDataContractRequestV0 extends jspb.Message { - getId(): Uint8Array | string; - getId_asU8(): Uint8Array; - getId_asB64(): string; - setId(value: Uint8Array | string): void; + export class GetIdentitiesBalancesRequestV0 extends jspb.Message { + clearIdsList(): void; + getIdsList(): Array; + getIdsList_asU8(): Array; + getIdsList_asB64(): Array; + setIdsList(value: Array): void; + addIds(value: Uint8Array | string, index?: number): Uint8Array | string; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractRequestV0): GetDataContractRequestV0.AsObject; + toObject(includeInstance?: boolean): GetIdentitiesBalancesRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentitiesBalancesRequestV0): GetIdentitiesBalancesRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractRequestV0; - static deserializeBinaryFromReader(message: GetDataContractRequestV0, reader: jspb.BinaryReader): GetDataContractRequestV0; + static serializeBinaryToWriter(message: GetIdentitiesBalancesRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentitiesBalancesRequestV0; + static deserializeBinaryFromReader(message: GetIdentitiesBalancesRequestV0, reader: jspb.BinaryReader): GetIdentitiesBalancesRequestV0; } - export namespace GetDataContractRequestV0 { + export namespace GetIdentitiesBalancesRequestV0 { export type AsObject = { - id: Uint8Array | string, + idsList: Array, prove: boolean, } } @@ -1681,35 +1638,33 @@ export namespace GetDataContractRequest { } } -export class GetDataContractResponse extends jspb.Message { +export class GetIdentitiesBalancesResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDataContractResponse.GetDataContractResponseV0 | undefined; - setV0(value?: GetDataContractResponse.GetDataContractResponseV0): void; + getV0(): GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 | undefined; + setV0(value?: GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0): void; - getVersionCase(): GetDataContractResponse.VersionCase; + getVersionCase(): GetIdentitiesBalancesResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractResponse): GetDataContractResponse.AsObject; + toObject(includeInstance?: boolean): GetIdentitiesBalancesResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentitiesBalancesResponse): GetIdentitiesBalancesResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractResponse; - static deserializeBinaryFromReader(message: GetDataContractResponse, reader: jspb.BinaryReader): GetDataContractResponse; + static serializeBinaryToWriter(message: GetIdentitiesBalancesResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentitiesBalancesResponse; + static deserializeBinaryFromReader(message: GetIdentitiesBalancesResponse, reader: jspb.BinaryReader): GetIdentitiesBalancesResponse; } -export namespace GetDataContractResponse { +export namespace GetIdentitiesBalancesResponse { export type AsObject = { - v0?: GetDataContractResponse.GetDataContractResponseV0.AsObject, + v0?: GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.AsObject, } - export class GetDataContractResponseV0 extends jspb.Message { - hasDataContract(): boolean; - clearDataContract(): void; - getDataContract(): Uint8Array | string; - getDataContract_asU8(): Uint8Array; - getDataContract_asB64(): string; - setDataContract(value: Uint8Array | string): void; + export class GetIdentitiesBalancesResponseV0 extends jspb.Message { + hasIdentitiesBalances(): boolean; + clearIdentitiesBalances(): void; + getIdentitiesBalances(): GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances | undefined; + setIdentitiesBalances(value?: GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances): void; hasProof(): boolean; clearProof(): void; @@ -1721,27 +1676,77 @@ export namespace GetDataContractResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetDataContractResponseV0.ResultCase; + getResultCase(): GetIdentitiesBalancesResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractResponseV0): GetDataContractResponseV0.AsObject; + toObject(includeInstance?: boolean): GetIdentitiesBalancesResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentitiesBalancesResponseV0): GetIdentitiesBalancesResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractResponseV0; - static deserializeBinaryFromReader(message: GetDataContractResponseV0, reader: jspb.BinaryReader): GetDataContractResponseV0; + static serializeBinaryToWriter(message: GetIdentitiesBalancesResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentitiesBalancesResponseV0; + static deserializeBinaryFromReader(message: GetIdentitiesBalancesResponseV0, reader: jspb.BinaryReader): GetIdentitiesBalancesResponseV0; } - export namespace GetDataContractResponseV0 { + export namespace GetIdentitiesBalancesResponseV0 { export type AsObject = { - dataContract: Uint8Array | string, + identitiesBalances?: GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } + export class IdentityBalance extends jspb.Message { + getIdentityId(): Uint8Array | string; + getIdentityId_asU8(): Uint8Array; + getIdentityId_asB64(): string; + setIdentityId(value: Uint8Array | string): void; + + hasBalance(): boolean; + clearBalance(): void; + getBalance(): number; + setBalance(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IdentityBalance.AsObject; + static toObject(includeInstance: boolean, msg: IdentityBalance): IdentityBalance.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: IdentityBalance, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IdentityBalance; + static deserializeBinaryFromReader(message: IdentityBalance, reader: jspb.BinaryReader): IdentityBalance; + } + + export namespace IdentityBalance { + export type AsObject = { + identityId: Uint8Array | string, + balance: number, + } + } + + export class IdentitiesBalances extends jspb.Message { + clearEntriesList(): void; + getEntriesList(): Array; + setEntriesList(value: Array): void; + addEntries(value?: GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, index?: number): GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IdentitiesBalances.AsObject; + static toObject(includeInstance: boolean, msg: IdentitiesBalances): IdentitiesBalances.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: IdentitiesBalances, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IdentitiesBalances; + static deserializeBinaryFromReader(message: IdentitiesBalances, reader: jspb.BinaryReader): IdentitiesBalances; + } + + export namespace IdentitiesBalances { + export type AsObject = { + entriesList: Array, + } + } + export enum ResultCase { RESULT_NOT_SET = 0, - DATA_CONTRACT = 1, + IDENTITIES_BALANCES = 1, PROOF = 2, } } @@ -1752,140 +1757,274 @@ export namespace GetDataContractResponse { } } -export class GetDataContractsRequest extends jspb.Message { +export class GetProofsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDataContractsRequest.GetDataContractsRequestV0 | undefined; - setV0(value?: GetDataContractsRequest.GetDataContractsRequestV0): void; + getV0(): GetProofsRequest.GetProofsRequestV0 | undefined; + setV0(value?: GetProofsRequest.GetProofsRequestV0): void; - getVersionCase(): GetDataContractsRequest.VersionCase; + getVersionCase(): GetProofsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractsRequest): GetDataContractsRequest.AsObject; + toObject(includeInstance?: boolean): GetProofsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetProofsRequest): GetProofsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractsRequest; - static deserializeBinaryFromReader(message: GetDataContractsRequest, reader: jspb.BinaryReader): GetDataContractsRequest; + static serializeBinaryToWriter(message: GetProofsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProofsRequest; + static deserializeBinaryFromReader(message: GetProofsRequest, reader: jspb.BinaryReader): GetProofsRequest; } -export namespace GetDataContractsRequest { +export namespace GetProofsRequest { export type AsObject = { - v0?: GetDataContractsRequest.GetDataContractsRequestV0.AsObject, + v0?: GetProofsRequest.GetProofsRequestV0.AsObject, } - export class GetDataContractsRequestV0 extends jspb.Message { - clearIdsList(): void; - getIdsList(): Array; - getIdsList_asU8(): Array; - getIdsList_asB64(): Array; - setIdsList(value: Array): void; - addIds(value: Uint8Array | string, index?: number): Uint8Array | string; + export class GetProofsRequestV0 extends jspb.Message { + clearIdentitiesList(): void; + getIdentitiesList(): Array; + setIdentitiesList(value: Array): void; + addIdentities(value?: GetProofsRequest.GetProofsRequestV0.IdentityRequest, index?: number): GetProofsRequest.GetProofsRequestV0.IdentityRequest; - getProve(): boolean; - setProve(value: boolean): void; + clearContractsList(): void; + getContractsList(): Array; + setContractsList(value: Array): void; + addContracts(value?: GetProofsRequest.GetProofsRequestV0.ContractRequest, index?: number): GetProofsRequest.GetProofsRequestV0.ContractRequest; + + clearDocumentsList(): void; + getDocumentsList(): Array; + setDocumentsList(value: Array): void; + addDocuments(value?: GetProofsRequest.GetProofsRequestV0.DocumentRequest, index?: number): GetProofsRequest.GetProofsRequestV0.DocumentRequest; + + clearVotesList(): void; + getVotesList(): Array; + setVotesList(value: Array): void; + addVotes(value?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, index?: number): GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractsRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractsRequestV0): GetDataContractsRequestV0.AsObject; + toObject(includeInstance?: boolean): GetProofsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProofsRequestV0): GetProofsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractsRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractsRequestV0; - static deserializeBinaryFromReader(message: GetDataContractsRequestV0, reader: jspb.BinaryReader): GetDataContractsRequestV0; + static serializeBinaryToWriter(message: GetProofsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProofsRequestV0; + static deserializeBinaryFromReader(message: GetProofsRequestV0, reader: jspb.BinaryReader): GetProofsRequestV0; } - export namespace GetDataContractsRequestV0 { + export namespace GetProofsRequestV0 { export type AsObject = { - idsList: Array, - prove: boolean, + identitiesList: Array, + contractsList: Array, + documentsList: Array, + votesList: Array, } - } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} + export class DocumentRequest extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; -export class GetDataContractsResponse extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetDataContractsResponse.GetDataContractsResponseV0 | undefined; - setV0(value?: GetDataContractsResponse.GetDataContractsResponseV0): void; + getDocumentType(): string; + setDocumentType(value: string): void; - getVersionCase(): GetDataContractsResponse.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractsResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractsResponse): GetDataContractsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractsResponse; - static deserializeBinaryFromReader(message: GetDataContractsResponse, reader: jspb.BinaryReader): GetDataContractsResponse; -} + getDocumentTypeKeepsHistory(): boolean; + setDocumentTypeKeepsHistory(value: boolean): void; -export namespace GetDataContractsResponse { - export type AsObject = { - v0?: GetDataContractsResponse.GetDataContractsResponseV0.AsObject, - } + getDocumentId(): Uint8Array | string; + getDocumentId_asU8(): Uint8Array; + getDocumentId_asB64(): string; + setDocumentId(value: Uint8Array | string): void; - export class DataContractEntry extends jspb.Message { - getIdentifier(): Uint8Array | string; - getIdentifier_asU8(): Uint8Array; - getIdentifier_asB64(): string; - setIdentifier(value: Uint8Array | string): void; + getDocumentContestedStatus(): GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap]; + setDocumentContestedStatus(value: GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap]): void; - hasDataContract(): boolean; - clearDataContract(): void; - getDataContract(): google_protobuf_wrappers_pb.BytesValue | undefined; - setDataContract(value?: google_protobuf_wrappers_pb.BytesValue): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DocumentRequest.AsObject; + static toObject(includeInstance: boolean, msg: DocumentRequest): DocumentRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: DocumentRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DocumentRequest; + static deserializeBinaryFromReader(message: DocumentRequest, reader: jspb.BinaryReader): DocumentRequest; + } - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DataContractEntry.AsObject; - static toObject(includeInstance: boolean, msg: DataContractEntry): DataContractEntry.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DataContractEntry, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DataContractEntry; - static deserializeBinaryFromReader(message: DataContractEntry, reader: jspb.BinaryReader): DataContractEntry; - } + export namespace DocumentRequest { + export type AsObject = { + contractId: Uint8Array | string, + documentType: string, + documentTypeKeepsHistory: boolean, + documentId: Uint8Array | string, + documentContestedStatus: GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap[keyof GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatusMap], + } - export namespace DataContractEntry { - export type AsObject = { - identifier: Uint8Array | string, - dataContract?: google_protobuf_wrappers_pb.BytesValue.AsObject, + export interface DocumentContestedStatusMap { + NOT_CONTESTED: 0; + MAYBE_CONTESTED: 1; + CONTESTED: 2; + } + + export const DocumentContestedStatus: DocumentContestedStatusMap; } - } - export class DataContracts extends jspb.Message { - clearDataContractEntriesList(): void; - getDataContractEntriesList(): Array; - setDataContractEntriesList(value: Array): void; - addDataContractEntries(value?: GetDataContractsResponse.DataContractEntry, index?: number): GetDataContractsResponse.DataContractEntry; + export class IdentityRequest extends jspb.Message { + getIdentityId(): Uint8Array | string; + getIdentityId_asU8(): Uint8Array; + getIdentityId_asB64(): string; + setIdentityId(value: Uint8Array | string): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DataContracts.AsObject; - static toObject(includeInstance: boolean, msg: DataContracts): DataContracts.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DataContracts, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DataContracts; - static deserializeBinaryFromReader(message: DataContracts, reader: jspb.BinaryReader): DataContracts; - } + getRequestType(): GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap]; + setRequestType(value: GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap]): void; - export namespace DataContracts { - export type AsObject = { - dataContractEntriesList: Array, + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IdentityRequest.AsObject; + static toObject(includeInstance: boolean, msg: IdentityRequest): IdentityRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: IdentityRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IdentityRequest; + static deserializeBinaryFromReader(message: IdentityRequest, reader: jspb.BinaryReader): IdentityRequest; + } + + export namespace IdentityRequest { + export type AsObject = { + identityId: Uint8Array | string, + requestType: GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap[keyof GetProofsRequest.GetProofsRequestV0.IdentityRequest.TypeMap], + } + + export interface TypeMap { + FULL_IDENTITY: 0; + BALANCE: 1; + KEYS: 2; + REVISION: 3; + } + + export const Type: TypeMap; + } + + export class ContractRequest extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContractRequest.AsObject; + static toObject(includeInstance: boolean, msg: ContractRequest): ContractRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContractRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContractRequest; + static deserializeBinaryFromReader(message: ContractRequest, reader: jspb.BinaryReader): ContractRequest; + } + + export namespace ContractRequest { + export type AsObject = { + contractId: Uint8Array | string, + } + } + + export class VoteStatusRequest extends jspb.Message { + hasContestedResourceVoteStatusRequest(): boolean; + clearContestedResourceVoteStatusRequest(): void; + getContestedResourceVoteStatusRequest(): GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest | undefined; + setContestedResourceVoteStatusRequest(value?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest): void; + + getRequestTypeCase(): VoteStatusRequest.RequestTypeCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): VoteStatusRequest.AsObject; + static toObject(includeInstance: boolean, msg: VoteStatusRequest): VoteStatusRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: VoteStatusRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): VoteStatusRequest; + static deserializeBinaryFromReader(message: VoteStatusRequest, reader: jspb.BinaryReader): VoteStatusRequest; + } + + export namespace VoteStatusRequest { + export type AsObject = { + contestedResourceVoteStatusRequest?: GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.AsObject, + } + + export class ContestedResourceVoteStatusRequest extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + getDocumentTypeName(): string; + setDocumentTypeName(value: string): void; + + getIndexName(): string; + setIndexName(value: string): void; + + clearIndexValuesList(): void; + getIndexValuesList(): Array; + getIndexValuesList_asU8(): Array; + getIndexValuesList_asB64(): Array; + setIndexValuesList(value: Array): void; + addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + getVoterIdentifier(): Uint8Array | string; + getVoterIdentifier_asU8(): Uint8Array; + getVoterIdentifier_asB64(): string; + setVoterIdentifier(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceVoteStatusRequest.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceVoteStatusRequest): ContestedResourceVoteStatusRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceVoteStatusRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceVoteStatusRequest; + static deserializeBinaryFromReader(message: ContestedResourceVoteStatusRequest, reader: jspb.BinaryReader): ContestedResourceVoteStatusRequest; + } + + export namespace ContestedResourceVoteStatusRequest { + export type AsObject = { + contractId: Uint8Array | string, + documentTypeName: string, + indexName: string, + indexValuesList: Array, + voterIdentifier: Uint8Array | string, + } + } + + export enum RequestTypeCase { + REQUEST_TYPE_NOT_SET = 0, + CONTESTED_RESOURCE_VOTE_STATUS_REQUEST = 1, + } } } - export class GetDataContractsResponseV0 extends jspb.Message { - hasDataContracts(): boolean; - clearDataContracts(): void; - getDataContracts(): GetDataContractsResponse.DataContracts | undefined; - setDataContracts(value?: GetDataContractsResponse.DataContracts): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetProofsResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetProofsResponse.GetProofsResponseV0 | undefined; + setV0(value?: GetProofsResponse.GetProofsResponseV0): void; + + getVersionCase(): GetProofsResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetProofsResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetProofsResponse): GetProofsResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetProofsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProofsResponse; + static deserializeBinaryFromReader(message: GetProofsResponse, reader: jspb.BinaryReader): GetProofsResponse; +} + +export namespace GetProofsResponse { + export type AsObject = { + v0?: GetProofsResponse.GetProofsResponseV0.AsObject, + } + export class GetProofsResponseV0 extends jspb.Message { hasProof(): boolean; clearProof(): void; getProof(): Proof | undefined; @@ -1896,28 +2035,26 @@ export namespace GetDataContractsResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetDataContractsResponseV0.ResultCase; + getResultCase(): GetProofsResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractsResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractsResponseV0): GetDataContractsResponseV0.AsObject; + toObject(includeInstance?: boolean): GetProofsResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProofsResponseV0): GetProofsResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractsResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractsResponseV0; - static deserializeBinaryFromReader(message: GetDataContractsResponseV0, reader: jspb.BinaryReader): GetDataContractsResponseV0; + static serializeBinaryToWriter(message: GetProofsResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProofsResponseV0; + static deserializeBinaryFromReader(message: GetProofsResponseV0, reader: jspb.BinaryReader): GetProofsResponseV0; } - export namespace GetDataContractsResponseV0 { + export namespace GetProofsResponseV0 { export type AsObject = { - dataContracts?: GetDataContractsResponse.DataContracts.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } export enum ResultCase { RESULT_NOT_SET = 0, - DATA_CONTRACTS = 1, - PROOF = 2, + PROOF = 1, } } @@ -1927,66 +2064,50 @@ export namespace GetDataContractsResponse { } } -export class GetDataContractHistoryRequest extends jspb.Message { +export class GetDataContractRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 | undefined; - setV0(value?: GetDataContractHistoryRequest.GetDataContractHistoryRequestV0): void; + getV0(): GetDataContractRequest.GetDataContractRequestV0 | undefined; + setV0(value?: GetDataContractRequest.GetDataContractRequestV0): void; - getVersionCase(): GetDataContractHistoryRequest.VersionCase; + getVersionCase(): GetDataContractRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractHistoryRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractHistoryRequest): GetDataContractHistoryRequest.AsObject; + toObject(includeInstance?: boolean): GetDataContractRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractRequest): GetDataContractRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractHistoryRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryRequest; - static deserializeBinaryFromReader(message: GetDataContractHistoryRequest, reader: jspb.BinaryReader): GetDataContractHistoryRequest; + static serializeBinaryToWriter(message: GetDataContractRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractRequest; + static deserializeBinaryFromReader(message: GetDataContractRequest, reader: jspb.BinaryReader): GetDataContractRequest; } -export namespace GetDataContractHistoryRequest { +export namespace GetDataContractRequest { export type AsObject = { - v0?: GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.AsObject, + v0?: GetDataContractRequest.GetDataContractRequestV0.AsObject, } - export class GetDataContractHistoryRequestV0 extends jspb.Message { + export class GetDataContractRequestV0 extends jspb.Message { getId(): Uint8Array | string; getId_asU8(): Uint8Array; getId_asB64(): string; setId(value: Uint8Array | string): void; - hasLimit(): boolean; - clearLimit(): void; - getLimit(): google_protobuf_wrappers_pb.UInt32Value | undefined; - setLimit(value?: google_protobuf_wrappers_pb.UInt32Value): void; - - hasOffset(): boolean; - clearOffset(): void; - getOffset(): google_protobuf_wrappers_pb.UInt32Value | undefined; - setOffset(value?: google_protobuf_wrappers_pb.UInt32Value): void; - - getStartAtMs(): number; - setStartAtMs(value: number): void; - getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractHistoryRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractHistoryRequestV0): GetDataContractHistoryRequestV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractRequestV0): GetDataContractRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractHistoryRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryRequestV0; - static deserializeBinaryFromReader(message: GetDataContractHistoryRequestV0, reader: jspb.BinaryReader): GetDataContractHistoryRequestV0; + static serializeBinaryToWriter(message: GetDataContractRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractRequestV0; + static deserializeBinaryFromReader(message: GetDataContractRequestV0, reader: jspb.BinaryReader): GetDataContractRequestV0; } - export namespace GetDataContractHistoryRequestV0 { + export namespace GetDataContractRequestV0 { export type AsObject = { id: Uint8Array | string, - limit?: google_protobuf_wrappers_pb.UInt32Value.AsObject, - offset?: google_protobuf_wrappers_pb.UInt32Value.AsObject, - startAtMs: number, prove: boolean, } } @@ -1997,33 +2118,35 @@ export namespace GetDataContractHistoryRequest { } } -export class GetDataContractHistoryResponse extends jspb.Message { +export class GetDataContractResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 | undefined; - setV0(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0): void; + getV0(): GetDataContractResponse.GetDataContractResponseV0 | undefined; + setV0(value?: GetDataContractResponse.GetDataContractResponseV0): void; - getVersionCase(): GetDataContractHistoryResponse.VersionCase; + getVersionCase(): GetDataContractResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractHistoryResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractHistoryResponse): GetDataContractHistoryResponse.AsObject; + toObject(includeInstance?: boolean): GetDataContractResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractResponse): GetDataContractResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractHistoryResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryResponse; - static deserializeBinaryFromReader(message: GetDataContractHistoryResponse, reader: jspb.BinaryReader): GetDataContractHistoryResponse; + static serializeBinaryToWriter(message: GetDataContractResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractResponse; + static deserializeBinaryFromReader(message: GetDataContractResponse, reader: jspb.BinaryReader): GetDataContractResponse; } -export namespace GetDataContractHistoryResponse { +export namespace GetDataContractResponse { export type AsObject = { - v0?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.AsObject, + v0?: GetDataContractResponse.GetDataContractResponseV0.AsObject, } - export class GetDataContractHistoryResponseV0 extends jspb.Message { - hasDataContractHistory(): boolean; - clearDataContractHistory(): void; - getDataContractHistory(): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory | undefined; - setDataContractHistory(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory): void; + export class GetDataContractResponseV0 extends jspb.Message { + hasDataContract(): boolean; + clearDataContract(): void; + getDataContract(): Uint8Array | string; + getDataContract_asU8(): Uint8Array; + getDataContract_asB64(): string; + setDataContract(value: Uint8Array | string): void; hasProof(): boolean; clearProof(): void; @@ -2035,75 +2158,27 @@ export namespace GetDataContractHistoryResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetDataContractHistoryResponseV0.ResultCase; + getResultCase(): GetDataContractResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDataContractHistoryResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDataContractHistoryResponseV0): GetDataContractHistoryResponseV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractResponseV0): GetDataContractResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDataContractHistoryResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryResponseV0; - static deserializeBinaryFromReader(message: GetDataContractHistoryResponseV0, reader: jspb.BinaryReader): GetDataContractHistoryResponseV0; + static serializeBinaryToWriter(message: GetDataContractResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractResponseV0; + static deserializeBinaryFromReader(message: GetDataContractResponseV0, reader: jspb.BinaryReader): GetDataContractResponseV0; } - export namespace GetDataContractHistoryResponseV0 { + export namespace GetDataContractResponseV0 { export type AsObject = { - dataContractHistory?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.AsObject, + dataContract: Uint8Array | string, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class DataContractHistoryEntry extends jspb.Message { - getDate(): number; - setDate(value: number): void; - - getValue(): Uint8Array | string; - getValue_asU8(): Uint8Array; - getValue_asB64(): string; - setValue(value: Uint8Array | string): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DataContractHistoryEntry.AsObject; - static toObject(includeInstance: boolean, msg: DataContractHistoryEntry): DataContractHistoryEntry.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DataContractHistoryEntry, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DataContractHistoryEntry; - static deserializeBinaryFromReader(message: DataContractHistoryEntry, reader: jspb.BinaryReader): DataContractHistoryEntry; - } - - export namespace DataContractHistoryEntry { - export type AsObject = { - date: number, - value: Uint8Array | string, - } - } - - export class DataContractHistory extends jspb.Message { - clearDataContractEntriesList(): void; - getDataContractEntriesList(): Array; - setDataContractEntriesList(value: Array): void; - addDataContractEntries(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, index?: number): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DataContractHistory.AsObject; - static toObject(includeInstance: boolean, msg: DataContractHistory): DataContractHistory.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DataContractHistory, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DataContractHistory; - static deserializeBinaryFromReader(message: DataContractHistory, reader: jspb.BinaryReader): DataContractHistory; - } - - export namespace DataContractHistory { - export type AsObject = { - dataContractEntriesList: Array, - } - } - export enum ResultCase { RESULT_NOT_SET = 0, - DATA_CONTRACT_HISTORY = 1, + DATA_CONTRACT = 1, PROOF = 2, } } @@ -2114,95 +2189,54 @@ export namespace GetDataContractHistoryResponse { } } -export class GetDocumentsRequest extends jspb.Message { +export class GetDataContractsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDocumentsRequest.GetDocumentsRequestV0 | undefined; - setV0(value?: GetDocumentsRequest.GetDocumentsRequestV0): void; + getV0(): GetDataContractsRequest.GetDataContractsRequestV0 | undefined; + setV0(value?: GetDataContractsRequest.GetDataContractsRequestV0): void; - getVersionCase(): GetDocumentsRequest.VersionCase; + getVersionCase(): GetDataContractsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDocumentsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetDocumentsRequest): GetDocumentsRequest.AsObject; + toObject(includeInstance?: boolean): GetDataContractsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractsRequest): GetDataContractsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDocumentsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDocumentsRequest; - static deserializeBinaryFromReader(message: GetDocumentsRequest, reader: jspb.BinaryReader): GetDocumentsRequest; + static serializeBinaryToWriter(message: GetDataContractsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractsRequest; + static deserializeBinaryFromReader(message: GetDataContractsRequest, reader: jspb.BinaryReader): GetDataContractsRequest; } -export namespace GetDocumentsRequest { +export namespace GetDataContractsRequest { export type AsObject = { - v0?: GetDocumentsRequest.GetDocumentsRequestV0.AsObject, + v0?: GetDataContractsRequest.GetDataContractsRequestV0.AsObject, } - export class GetDocumentsRequestV0 extends jspb.Message { - getDataContractId(): Uint8Array | string; - getDataContractId_asU8(): Uint8Array; - getDataContractId_asB64(): string; - setDataContractId(value: Uint8Array | string): void; - - getDocumentType(): string; - setDocumentType(value: string): void; - - getWhere(): Uint8Array | string; - getWhere_asU8(): Uint8Array; - getWhere_asB64(): string; - setWhere(value: Uint8Array | string): void; - - getOrderBy(): Uint8Array | string; - getOrderBy_asU8(): Uint8Array; - getOrderBy_asB64(): string; - setOrderBy(value: Uint8Array | string): void; - - getLimit(): number; - setLimit(value: number): void; - - hasStartAfter(): boolean; - clearStartAfter(): void; - getStartAfter(): Uint8Array | string; - getStartAfter_asU8(): Uint8Array; - getStartAfter_asB64(): string; - setStartAfter(value: Uint8Array | string): void; - - hasStartAt(): boolean; - clearStartAt(): void; - getStartAt(): Uint8Array | string; - getStartAt_asU8(): Uint8Array; - getStartAt_asB64(): string; - setStartAt(value: Uint8Array | string): void; + export class GetDataContractsRequestV0 extends jspb.Message { + clearIdsList(): void; + getIdsList(): Array; + getIdsList_asU8(): Array; + getIdsList_asB64(): Array; + setIdsList(value: Array): void; + addIds(value: Uint8Array | string, index?: number): Uint8Array | string; getProve(): boolean; setProve(value: boolean): void; - getStartCase(): GetDocumentsRequestV0.StartCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDocumentsRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDocumentsRequestV0): GetDocumentsRequestV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractsRequestV0): GetDataContractsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDocumentsRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDocumentsRequestV0; - static deserializeBinaryFromReader(message: GetDocumentsRequestV0, reader: jspb.BinaryReader): GetDocumentsRequestV0; + static serializeBinaryToWriter(message: GetDataContractsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractsRequestV0; + static deserializeBinaryFromReader(message: GetDataContractsRequestV0, reader: jspb.BinaryReader): GetDataContractsRequestV0; } - export namespace GetDocumentsRequestV0 { + export namespace GetDataContractsRequestV0 { export type AsObject = { - dataContractId: Uint8Array | string, - documentType: string, - where: Uint8Array | string, - orderBy: Uint8Array | string, - limit: number, - startAfter: Uint8Array | string, - startAt: Uint8Array | string, + idsList: Array, prove: boolean, } - - export enum StartCase { - START_NOT_SET = 0, - START_AFTER = 6, - START_AT = 7, - } } export enum VersionCase { @@ -2211,182 +2245,83 @@ export namespace GetDocumentsRequest { } } -export class GetDocumentsResponse extends jspb.Message { +export class GetDataContractsResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetDocumentsResponse.GetDocumentsResponseV0 | undefined; - setV0(value?: GetDocumentsResponse.GetDocumentsResponseV0): void; + getV0(): GetDataContractsResponse.GetDataContractsResponseV0 | undefined; + setV0(value?: GetDataContractsResponse.GetDataContractsResponseV0): void; - getVersionCase(): GetDocumentsResponse.VersionCase; + getVersionCase(): GetDataContractsResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDocumentsResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetDocumentsResponse): GetDocumentsResponse.AsObject; + toObject(includeInstance?: boolean): GetDataContractsResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractsResponse): GetDataContractsResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDocumentsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDocumentsResponse; - static deserializeBinaryFromReader(message: GetDocumentsResponse, reader: jspb.BinaryReader): GetDocumentsResponse; + static serializeBinaryToWriter(message: GetDataContractsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractsResponse; + static deserializeBinaryFromReader(message: GetDataContractsResponse, reader: jspb.BinaryReader): GetDataContractsResponse; } -export namespace GetDocumentsResponse { +export namespace GetDataContractsResponse { export type AsObject = { - v0?: GetDocumentsResponse.GetDocumentsResponseV0.AsObject, + v0?: GetDataContractsResponse.GetDataContractsResponseV0.AsObject, } - export class GetDocumentsResponseV0 extends jspb.Message { - hasDocuments(): boolean; - clearDocuments(): void; - getDocuments(): GetDocumentsResponse.GetDocumentsResponseV0.Documents | undefined; - setDocuments(value?: GetDocumentsResponse.GetDocumentsResponseV0.Documents): void; - - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + export class DataContractEntry extends jspb.Message { + getIdentifier(): Uint8Array | string; + getIdentifier_asU8(): Uint8Array; + getIdentifier_asB64(): string; + setIdentifier(value: Uint8Array | string): void; - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + hasDataContract(): boolean; + clearDataContract(): void; + getDataContract(): google_protobuf_wrappers_pb.BytesValue | undefined; + setDataContract(value?: google_protobuf_wrappers_pb.BytesValue): void; - getResultCase(): GetDocumentsResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDocumentsResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetDocumentsResponseV0): GetDocumentsResponseV0.AsObject; + toObject(includeInstance?: boolean): DataContractEntry.AsObject; + static toObject(includeInstance: boolean, msg: DataContractEntry): DataContractEntry.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDocumentsResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDocumentsResponseV0; - static deserializeBinaryFromReader(message: GetDocumentsResponseV0, reader: jspb.BinaryReader): GetDocumentsResponseV0; - } - - export namespace GetDocumentsResponseV0 { - export type AsObject = { - documents?: GetDocumentsResponse.GetDocumentsResponseV0.Documents.AsObject, - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, - } - - export class Documents extends jspb.Message { - clearDocumentsList(): void; - getDocumentsList(): Array; - getDocumentsList_asU8(): Array; - getDocumentsList_asB64(): Array; - setDocumentsList(value: Array): void; - addDocuments(value: Uint8Array | string, index?: number): Uint8Array | string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Documents.AsObject; - static toObject(includeInstance: boolean, msg: Documents): Documents.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Documents, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Documents; - static deserializeBinaryFromReader(message: Documents, reader: jspb.BinaryReader): Documents; - } - - export namespace Documents { - export type AsObject = { - documentsList: Array, - } - } - - export enum ResultCase { - RESULT_NOT_SET = 0, - DOCUMENTS = 1, - PROOF = 2, - } - } - - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, + static serializeBinaryToWriter(message: DataContractEntry, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DataContractEntry; + static deserializeBinaryFromReader(message: DataContractEntry, reader: jspb.BinaryReader): DataContractEntry; } -} - -export class GetIdentityByPublicKeyHashRequest extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 | undefined; - setV0(value?: GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0): void; - - getVersionCase(): GetIdentityByPublicKeyHashRequest.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashRequest): GetIdentityByPublicKeyHashRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashRequest; - static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashRequest, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashRequest; -} -export namespace GetIdentityByPublicKeyHashRequest { - export type AsObject = { - v0?: GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.AsObject, + export namespace DataContractEntry { + export type AsObject = { + identifier: Uint8Array | string, + dataContract?: google_protobuf_wrappers_pb.BytesValue.AsObject, + } } - export class GetIdentityByPublicKeyHashRequestV0 extends jspb.Message { - getPublicKeyHash(): Uint8Array | string; - getPublicKeyHash_asU8(): Uint8Array; - getPublicKeyHash_asB64(): string; - setPublicKeyHash(value: Uint8Array | string): void; - - getProve(): boolean; - setProve(value: boolean): void; + export class DataContracts extends jspb.Message { + clearDataContractEntriesList(): void; + getDataContractEntriesList(): Array; + setDataContractEntriesList(value: Array): void; + addDataContractEntries(value?: GetDataContractsResponse.DataContractEntry, index?: number): GetDataContractsResponse.DataContractEntry; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashRequestV0): GetIdentityByPublicKeyHashRequestV0.AsObject; + toObject(includeInstance?: boolean): DataContracts.AsObject; + static toObject(includeInstance: boolean, msg: DataContracts): DataContracts.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashRequestV0; - static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashRequestV0, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashRequestV0; + static serializeBinaryToWriter(message: DataContracts, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DataContracts; + static deserializeBinaryFromReader(message: DataContracts, reader: jspb.BinaryReader): DataContracts; } - export namespace GetIdentityByPublicKeyHashRequestV0 { + export namespace DataContracts { export type AsObject = { - publicKeyHash: Uint8Array | string, - prove: boolean, + dataContractEntriesList: Array, } } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} - -export class GetIdentityByPublicKeyHashResponse extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 | undefined; - setV0(value?: GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0): void; - - getVersionCase(): GetIdentityByPublicKeyHashResponse.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashResponse): GetIdentityByPublicKeyHashResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashResponse; - static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashResponse, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashResponse; -} - -export namespace GetIdentityByPublicKeyHashResponse { - export type AsObject = { - v0?: GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.AsObject, - } - - export class GetIdentityByPublicKeyHashResponseV0 extends jspb.Message { - hasIdentity(): boolean; - clearIdentity(): void; - getIdentity(): Uint8Array | string; - getIdentity_asU8(): Uint8Array; - getIdentity_asB64(): string; - setIdentity(value: Uint8Array | string): void; + export class GetDataContractsResponseV0 extends jspb.Message { + hasDataContracts(): boolean; + clearDataContracts(): void; + getDataContracts(): GetDataContractsResponse.DataContracts | undefined; + setDataContracts(value?: GetDataContractsResponse.DataContracts): void; hasProof(): boolean; clearProof(): void; @@ -2398,27 +2333,27 @@ export namespace GetIdentityByPublicKeyHashResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetIdentityByPublicKeyHashResponseV0.ResultCase; + getResultCase(): GetDataContractsResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashResponseV0): GetIdentityByPublicKeyHashResponseV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractsResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractsResponseV0): GetDataContractsResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashResponseV0; - static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashResponseV0, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashResponseV0; + static serializeBinaryToWriter(message: GetDataContractsResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractsResponseV0; + static deserializeBinaryFromReader(message: GetDataContractsResponseV0, reader: jspb.BinaryReader): GetDataContractsResponseV0; } - export namespace GetIdentityByPublicKeyHashResponseV0 { + export namespace GetDataContractsResponseV0 { export type AsObject = { - identity: Uint8Array | string, + dataContracts?: GetDataContractsResponse.DataContracts.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } export enum ResultCase { RESULT_NOT_SET = 0, - IDENTITY = 1, + DATA_CONTRACTS = 1, PROOF = 2, } } @@ -2429,50 +2364,66 @@ export namespace GetIdentityByPublicKeyHashResponse { } } -export class WaitForStateTransitionResultRequest extends jspb.Message { +export class GetDataContractHistoryRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 | undefined; - setV0(value?: WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0): void; + getV0(): GetDataContractHistoryRequest.GetDataContractHistoryRequestV0 | undefined; + setV0(value?: GetDataContractHistoryRequest.GetDataContractHistoryRequestV0): void; - getVersionCase(): WaitForStateTransitionResultRequest.VersionCase; + getVersionCase(): GetDataContractHistoryRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): WaitForStateTransitionResultRequest.AsObject; - static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultRequest): WaitForStateTransitionResultRequest.AsObject; + toObject(includeInstance?: boolean): GetDataContractHistoryRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractHistoryRequest): GetDataContractHistoryRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: WaitForStateTransitionResultRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultRequest; - static deserializeBinaryFromReader(message: WaitForStateTransitionResultRequest, reader: jspb.BinaryReader): WaitForStateTransitionResultRequest; + static serializeBinaryToWriter(message: GetDataContractHistoryRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryRequest; + static deserializeBinaryFromReader(message: GetDataContractHistoryRequest, reader: jspb.BinaryReader): GetDataContractHistoryRequest; } -export namespace WaitForStateTransitionResultRequest { +export namespace GetDataContractHistoryRequest { export type AsObject = { - v0?: WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.AsObject, + v0?: GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.AsObject, } - export class WaitForStateTransitionResultRequestV0 extends jspb.Message { - getStateTransitionHash(): Uint8Array | string; - getStateTransitionHash_asU8(): Uint8Array; - getStateTransitionHash_asB64(): string; - setStateTransitionHash(value: Uint8Array | string): void; + export class GetDataContractHistoryRequestV0 extends jspb.Message { + getId(): Uint8Array | string; + getId_asU8(): Uint8Array; + getId_asB64(): string; + setId(value: Uint8Array | string): void; + + hasLimit(): boolean; + clearLimit(): void; + getLimit(): google_protobuf_wrappers_pb.UInt32Value | undefined; + setLimit(value?: google_protobuf_wrappers_pb.UInt32Value): void; + + hasOffset(): boolean; + clearOffset(): void; + getOffset(): google_protobuf_wrappers_pb.UInt32Value | undefined; + setOffset(value?: google_protobuf_wrappers_pb.UInt32Value): void; + + getStartAtMs(): number; + setStartAtMs(value: number): void; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): WaitForStateTransitionResultRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultRequestV0): WaitForStateTransitionResultRequestV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractHistoryRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractHistoryRequestV0): GetDataContractHistoryRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: WaitForStateTransitionResultRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultRequestV0; - static deserializeBinaryFromReader(message: WaitForStateTransitionResultRequestV0, reader: jspb.BinaryReader): WaitForStateTransitionResultRequestV0; + static serializeBinaryToWriter(message: GetDataContractHistoryRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryRequestV0; + static deserializeBinaryFromReader(message: GetDataContractHistoryRequestV0, reader: jspb.BinaryReader): GetDataContractHistoryRequestV0; } - export namespace WaitForStateTransitionResultRequestV0 { + export namespace GetDataContractHistoryRequestV0 { export type AsObject = { - stateTransitionHash: Uint8Array | string, + id: Uint8Array | string, + limit?: google_protobuf_wrappers_pb.UInt32Value.AsObject, + offset?: google_protobuf_wrappers_pb.UInt32Value.AsObject, + startAtMs: number, prove: boolean, } } @@ -2483,33 +2434,33 @@ export namespace WaitForStateTransitionResultRequest { } } -export class WaitForStateTransitionResultResponse extends jspb.Message { +export class GetDataContractHistoryResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 | undefined; - setV0(value?: WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0): void; + getV0(): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0 | undefined; + setV0(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0): void; - getVersionCase(): WaitForStateTransitionResultResponse.VersionCase; + getVersionCase(): GetDataContractHistoryResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): WaitForStateTransitionResultResponse.AsObject; - static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultResponse): WaitForStateTransitionResultResponse.AsObject; + toObject(includeInstance?: boolean): GetDataContractHistoryResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractHistoryResponse): GetDataContractHistoryResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: WaitForStateTransitionResultResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultResponse; - static deserializeBinaryFromReader(message: WaitForStateTransitionResultResponse, reader: jspb.BinaryReader): WaitForStateTransitionResultResponse; + static serializeBinaryToWriter(message: GetDataContractHistoryResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryResponse; + static deserializeBinaryFromReader(message: GetDataContractHistoryResponse, reader: jspb.BinaryReader): GetDataContractHistoryResponse; } -export namespace WaitForStateTransitionResultResponse { +export namespace GetDataContractHistoryResponse { export type AsObject = { - v0?: WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.AsObject, + v0?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.AsObject, } - export class WaitForStateTransitionResultResponseV0 extends jspb.Message { - hasError(): boolean; - clearError(): void; - getError(): StateTransitionBroadcastError | undefined; - setError(value?: StateTransitionBroadcastError): void; + export class GetDataContractHistoryResponseV0 extends jspb.Message { + hasDataContractHistory(): boolean; + clearDataContractHistory(): void; + getDataContractHistory(): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory | undefined; + setDataContractHistory(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory): void; hasProof(): boolean; clearProof(): void; @@ -2521,27 +2472,75 @@ export namespace WaitForStateTransitionResultResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): WaitForStateTransitionResultResponseV0.ResultCase; + getResultCase(): GetDataContractHistoryResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): WaitForStateTransitionResultResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultResponseV0): WaitForStateTransitionResultResponseV0.AsObject; + toObject(includeInstance?: boolean): GetDataContractHistoryResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDataContractHistoryResponseV0): GetDataContractHistoryResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: WaitForStateTransitionResultResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultResponseV0; - static deserializeBinaryFromReader(message: WaitForStateTransitionResultResponseV0, reader: jspb.BinaryReader): WaitForStateTransitionResultResponseV0; + static serializeBinaryToWriter(message: GetDataContractHistoryResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDataContractHistoryResponseV0; + static deserializeBinaryFromReader(message: GetDataContractHistoryResponseV0, reader: jspb.BinaryReader): GetDataContractHistoryResponseV0; } - export namespace WaitForStateTransitionResultResponseV0 { + export namespace GetDataContractHistoryResponseV0 { export type AsObject = { - error?: StateTransitionBroadcastError.AsObject, + dataContractHistory?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } + export class DataContractHistoryEntry extends jspb.Message { + getDate(): number; + setDate(value: number): void; + + getValue(): Uint8Array | string; + getValue_asU8(): Uint8Array; + getValue_asB64(): string; + setValue(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DataContractHistoryEntry.AsObject; + static toObject(includeInstance: boolean, msg: DataContractHistoryEntry): DataContractHistoryEntry.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: DataContractHistoryEntry, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DataContractHistoryEntry; + static deserializeBinaryFromReader(message: DataContractHistoryEntry, reader: jspb.BinaryReader): DataContractHistoryEntry; + } + + export namespace DataContractHistoryEntry { + export type AsObject = { + date: number, + value: Uint8Array | string, + } + } + + export class DataContractHistory extends jspb.Message { + clearDataContractEntriesList(): void; + getDataContractEntriesList(): Array; + setDataContractEntriesList(value: Array): void; + addDataContractEntries(value?: GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, index?: number): GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DataContractHistory.AsObject; + static toObject(includeInstance: boolean, msg: DataContractHistory): DataContractHistory.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: DataContractHistory, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DataContractHistory; + static deserializeBinaryFromReader(message: DataContractHistory, reader: jspb.BinaryReader): DataContractHistory; + } + + export namespace DataContractHistory { + export type AsObject = { + dataContractEntriesList: Array, + } + } + export enum ResultCase { RESULT_NOT_SET = 0, - ERROR = 1, + DATA_CONTRACT_HISTORY = 1, PROOF = 2, } } @@ -2552,50 +2551,95 @@ export namespace WaitForStateTransitionResultResponse { } } -export class GetConsensusParamsRequest extends jspb.Message { +export class GetDocumentsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetConsensusParamsRequest.GetConsensusParamsRequestV0 | undefined; - setV0(value?: GetConsensusParamsRequest.GetConsensusParamsRequestV0): void; + getV0(): GetDocumentsRequest.GetDocumentsRequestV0 | undefined; + setV0(value?: GetDocumentsRequest.GetDocumentsRequestV0): void; - getVersionCase(): GetConsensusParamsRequest.VersionCase; + getVersionCase(): GetDocumentsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetConsensusParamsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetConsensusParamsRequest): GetConsensusParamsRequest.AsObject; + toObject(includeInstance?: boolean): GetDocumentsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetDocumentsRequest): GetDocumentsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetConsensusParamsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetConsensusParamsRequest; - static deserializeBinaryFromReader(message: GetConsensusParamsRequest, reader: jspb.BinaryReader): GetConsensusParamsRequest; + static serializeBinaryToWriter(message: GetDocumentsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDocumentsRequest; + static deserializeBinaryFromReader(message: GetDocumentsRequest, reader: jspb.BinaryReader): GetDocumentsRequest; } -export namespace GetConsensusParamsRequest { +export namespace GetDocumentsRequest { export type AsObject = { - v0?: GetConsensusParamsRequest.GetConsensusParamsRequestV0.AsObject, + v0?: GetDocumentsRequest.GetDocumentsRequestV0.AsObject, } - export class GetConsensusParamsRequestV0 extends jspb.Message { - getHeight(): number; - setHeight(value: number): void; + export class GetDocumentsRequestV0 extends jspb.Message { + getDataContractId(): Uint8Array | string; + getDataContractId_asU8(): Uint8Array; + getDataContractId_asB64(): string; + setDataContractId(value: Uint8Array | string): void; + + getDocumentType(): string; + setDocumentType(value: string): void; + + getWhere(): Uint8Array | string; + getWhere_asU8(): Uint8Array; + getWhere_asB64(): string; + setWhere(value: Uint8Array | string): void; + + getOrderBy(): Uint8Array | string; + getOrderBy_asU8(): Uint8Array; + getOrderBy_asB64(): string; + setOrderBy(value: Uint8Array | string): void; + + getLimit(): number; + setLimit(value: number): void; + + hasStartAfter(): boolean; + clearStartAfter(): void; + getStartAfter(): Uint8Array | string; + getStartAfter_asU8(): Uint8Array; + getStartAfter_asB64(): string; + setStartAfter(value: Uint8Array | string): void; + + hasStartAt(): boolean; + clearStartAt(): void; + getStartAt(): Uint8Array | string; + getStartAt_asU8(): Uint8Array; + getStartAt_asB64(): string; + setStartAt(value: Uint8Array | string): void; getProve(): boolean; setProve(value: boolean): void; + getStartCase(): GetDocumentsRequestV0.StartCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetConsensusParamsRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetConsensusParamsRequestV0): GetConsensusParamsRequestV0.AsObject; + toObject(includeInstance?: boolean): GetDocumentsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDocumentsRequestV0): GetDocumentsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetConsensusParamsRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetConsensusParamsRequestV0; - static deserializeBinaryFromReader(message: GetConsensusParamsRequestV0, reader: jspb.BinaryReader): GetConsensusParamsRequestV0; + static serializeBinaryToWriter(message: GetDocumentsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDocumentsRequestV0; + static deserializeBinaryFromReader(message: GetDocumentsRequestV0, reader: jspb.BinaryReader): GetDocumentsRequestV0; } - export namespace GetConsensusParamsRequestV0 { + export namespace GetDocumentsRequestV0 { export type AsObject = { - height: number, + dataContractId: Uint8Array | string, + documentType: string, + where: Uint8Array | string, + orderBy: Uint8Array | string, + limit: number, + startAfter: Uint8Array | string, + startAt: Uint8Array | string, prove: boolean, } + + export enum StartCase { + START_NOT_SET = 0, + START_AFTER = 6, + START_AT = 7, + } } export enum VersionCase { @@ -2604,109 +2648,90 @@ export namespace GetConsensusParamsRequest { } } -export class GetConsensusParamsResponse extends jspb.Message { +export class GetDocumentsResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetConsensusParamsResponse.GetConsensusParamsResponseV0 | undefined; - setV0(value?: GetConsensusParamsResponse.GetConsensusParamsResponseV0): void; + getV0(): GetDocumentsResponse.GetDocumentsResponseV0 | undefined; + setV0(value?: GetDocumentsResponse.GetDocumentsResponseV0): void; - getVersionCase(): GetConsensusParamsResponse.VersionCase; + getVersionCase(): GetDocumentsResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetConsensusParamsResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetConsensusParamsResponse): GetConsensusParamsResponse.AsObject; + toObject(includeInstance?: boolean): GetDocumentsResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetDocumentsResponse): GetDocumentsResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetConsensusParamsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetConsensusParamsResponse; - static deserializeBinaryFromReader(message: GetConsensusParamsResponse, reader: jspb.BinaryReader): GetConsensusParamsResponse; + static serializeBinaryToWriter(message: GetDocumentsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDocumentsResponse; + static deserializeBinaryFromReader(message: GetDocumentsResponse, reader: jspb.BinaryReader): GetDocumentsResponse; } -export namespace GetConsensusParamsResponse { +export namespace GetDocumentsResponse { export type AsObject = { - v0?: GetConsensusParamsResponse.GetConsensusParamsResponseV0.AsObject, + v0?: GetDocumentsResponse.GetDocumentsResponseV0.AsObject, } - export class ConsensusParamsBlock extends jspb.Message { - getMaxBytes(): string; - setMaxBytes(value: string): void; + export class GetDocumentsResponseV0 extends jspb.Message { + hasDocuments(): boolean; + clearDocuments(): void; + getDocuments(): GetDocumentsResponse.GetDocumentsResponseV0.Documents | undefined; + setDocuments(value?: GetDocumentsResponse.GetDocumentsResponseV0.Documents): void; - getMaxGas(): string; - setMaxGas(value: string): void; + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; - getTimeIotaMs(): string; - setTimeIotaMs(value: string): void; + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + getResultCase(): GetDocumentsResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ConsensusParamsBlock.AsObject; - static toObject(includeInstance: boolean, msg: ConsensusParamsBlock): ConsensusParamsBlock.AsObject; + toObject(includeInstance?: boolean): GetDocumentsResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetDocumentsResponseV0): GetDocumentsResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ConsensusParamsBlock, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ConsensusParamsBlock; - static deserializeBinaryFromReader(message: ConsensusParamsBlock, reader: jspb.BinaryReader): ConsensusParamsBlock; + static serializeBinaryToWriter(message: GetDocumentsResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDocumentsResponseV0; + static deserializeBinaryFromReader(message: GetDocumentsResponseV0, reader: jspb.BinaryReader): GetDocumentsResponseV0; } - export namespace ConsensusParamsBlock { + export namespace GetDocumentsResponseV0 { export type AsObject = { - maxBytes: string, - maxGas: string, - timeIotaMs: string, + documents?: GetDocumentsResponse.GetDocumentsResponseV0.Documents.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, } - } - - export class ConsensusParamsEvidence extends jspb.Message { - getMaxAgeNumBlocks(): string; - setMaxAgeNumBlocks(value: string): void; - getMaxAgeDuration(): string; - setMaxAgeDuration(value: string): void; + export class Documents extends jspb.Message { + clearDocumentsList(): void; + getDocumentsList(): Array; + getDocumentsList_asU8(): Array; + getDocumentsList_asB64(): Array; + setDocumentsList(value: Array): void; + addDocuments(value: Uint8Array | string, index?: number): Uint8Array | string; - getMaxBytes(): string; - setMaxBytes(value: string): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Documents.AsObject; + static toObject(includeInstance: boolean, msg: Documents): Documents.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Documents, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Documents; + static deserializeBinaryFromReader(message: Documents, reader: jspb.BinaryReader): Documents; + } - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ConsensusParamsEvidence.AsObject; - static toObject(includeInstance: boolean, msg: ConsensusParamsEvidence): ConsensusParamsEvidence.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ConsensusParamsEvidence, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ConsensusParamsEvidence; - static deserializeBinaryFromReader(message: ConsensusParamsEvidence, reader: jspb.BinaryReader): ConsensusParamsEvidence; - } + export namespace Documents { + export type AsObject = { + documentsList: Array, + } + } - export namespace ConsensusParamsEvidence { - export type AsObject = { - maxAgeNumBlocks: string, - maxAgeDuration: string, - maxBytes: string, - } - } - - export class GetConsensusParamsResponseV0 extends jspb.Message { - hasBlock(): boolean; - clearBlock(): void; - getBlock(): GetConsensusParamsResponse.ConsensusParamsBlock | undefined; - setBlock(value?: GetConsensusParamsResponse.ConsensusParamsBlock): void; - - hasEvidence(): boolean; - clearEvidence(): void; - getEvidence(): GetConsensusParamsResponse.ConsensusParamsEvidence | undefined; - setEvidence(value?: GetConsensusParamsResponse.ConsensusParamsEvidence): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetConsensusParamsResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetConsensusParamsResponseV0): GetConsensusParamsResponseV0.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetConsensusParamsResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetConsensusParamsResponseV0; - static deserializeBinaryFromReader(message: GetConsensusParamsResponseV0, reader: jspb.BinaryReader): GetConsensusParamsResponseV0; - } - - export namespace GetConsensusParamsResponseV0 { - export type AsObject = { - block?: GetConsensusParamsResponse.ConsensusParamsBlock.AsObject, - evidence?: GetConsensusParamsResponse.ConsensusParamsEvidence.AsObject, + export enum ResultCase { + RESULT_NOT_SET = 0, + DOCUMENTS = 1, + PROOF = 2, } } @@ -2716,44 +2741,50 @@ export namespace GetConsensusParamsResponse { } } -export class GetProtocolVersionUpgradeStateRequest extends jspb.Message { +export class GetIdentityByPublicKeyHashRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 | undefined; - setV0(value?: GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0): void; + getV0(): GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0 | undefined; + setV0(value?: GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0): void; - getVersionCase(): GetProtocolVersionUpgradeStateRequest.VersionCase; + getVersionCase(): GetIdentityByPublicKeyHashRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateRequest): GetProtocolVersionUpgradeStateRequest.AsObject; + toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashRequest): GetIdentityByPublicKeyHashRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateRequest; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateRequest, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateRequest; + static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashRequest; + static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashRequest, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashRequest; } -export namespace GetProtocolVersionUpgradeStateRequest { +export namespace GetIdentityByPublicKeyHashRequest { export type AsObject = { - v0?: GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.AsObject, + v0?: GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.AsObject, } - export class GetProtocolVersionUpgradeStateRequestV0 extends jspb.Message { + export class GetIdentityByPublicKeyHashRequestV0 extends jspb.Message { + getPublicKeyHash(): Uint8Array | string; + getPublicKeyHash_asU8(): Uint8Array; + getPublicKeyHash_asB64(): string; + setPublicKeyHash(value: Uint8Array | string): void; + getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateRequestV0): GetProtocolVersionUpgradeStateRequestV0.AsObject; + toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashRequestV0): GetIdentityByPublicKeyHashRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateRequestV0; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateRequestV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateRequestV0; + static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashRequestV0; + static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashRequestV0, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashRequestV0; } - export namespace GetProtocolVersionUpgradeStateRequestV0 { + export namespace GetIdentityByPublicKeyHashRequestV0 { export type AsObject = { + publicKeyHash: Uint8Array | string, prove: boolean, } } @@ -2764,33 +2795,35 @@ export namespace GetProtocolVersionUpgradeStateRequest { } } -export class GetProtocolVersionUpgradeStateResponse extends jspb.Message { +export class GetIdentityByPublicKeyHashResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 | undefined; - setV0(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0): void; + getV0(): GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0 | undefined; + setV0(value?: GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0): void; - getVersionCase(): GetProtocolVersionUpgradeStateResponse.VersionCase; + getVersionCase(): GetIdentityByPublicKeyHashResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateResponse): GetProtocolVersionUpgradeStateResponse.AsObject; + toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashResponse): GetIdentityByPublicKeyHashResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateResponse; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateResponse, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateResponse; + static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashResponse; + static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashResponse, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashResponse; } -export namespace GetProtocolVersionUpgradeStateResponse { +export namespace GetIdentityByPublicKeyHashResponse { export type AsObject = { - v0?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.AsObject, + v0?: GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.AsObject, } - export class GetProtocolVersionUpgradeStateResponseV0 extends jspb.Message { - hasVersions(): boolean; - clearVersions(): void; - getVersions(): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions | undefined; - setVersions(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions): void; + export class GetIdentityByPublicKeyHashResponseV0 extends jspb.Message { + hasIdentity(): boolean; + clearIdentity(): void; + getIdentity(): Uint8Array | string; + getIdentity_asU8(): Uint8Array; + getIdentity_asB64(): string; + setIdentity(value: Uint8Array | string): void; hasProof(): boolean; clearProof(): void; @@ -2802,73 +2835,27 @@ export namespace GetProtocolVersionUpgradeStateResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetProtocolVersionUpgradeStateResponseV0.ResultCase; + getResultCase(): GetIdentityByPublicKeyHashResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateResponseV0): GetProtocolVersionUpgradeStateResponseV0.AsObject; + toObject(includeInstance?: boolean): GetIdentityByPublicKeyHashResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetIdentityByPublicKeyHashResponseV0): GetIdentityByPublicKeyHashResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateResponseV0; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateResponseV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateResponseV0; + static serializeBinaryToWriter(message: GetIdentityByPublicKeyHashResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetIdentityByPublicKeyHashResponseV0; + static deserializeBinaryFromReader(message: GetIdentityByPublicKeyHashResponseV0, reader: jspb.BinaryReader): GetIdentityByPublicKeyHashResponseV0; } - export namespace GetProtocolVersionUpgradeStateResponseV0 { + export namespace GetIdentityByPublicKeyHashResponseV0 { export type AsObject = { - versions?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.AsObject, + identity: Uint8Array | string, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class Versions extends jspb.Message { - clearVersionsList(): void; - getVersionsList(): Array; - setVersionsList(value: Array): void; - addVersions(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, index?: number): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Versions.AsObject; - static toObject(includeInstance: boolean, msg: Versions): Versions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Versions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Versions; - static deserializeBinaryFromReader(message: Versions, reader: jspb.BinaryReader): Versions; - } - - export namespace Versions { - export type AsObject = { - versionsList: Array, - } - } - - export class VersionEntry extends jspb.Message { - getVersionNumber(): number; - setVersionNumber(value: number): void; - - getVoteCount(): number; - setVoteCount(value: number): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VersionEntry.AsObject; - static toObject(includeInstance: boolean, msg: VersionEntry): VersionEntry.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VersionEntry, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VersionEntry; - static deserializeBinaryFromReader(message: VersionEntry, reader: jspb.BinaryReader): VersionEntry; - } - - export namespace VersionEntry { - export type AsObject = { - versionNumber: number, - voteCount: number, - } - } - export enum ResultCase { RESULT_NOT_SET = 0, - VERSIONS = 1, + IDENTITY = 1, PROOF = 2, } } @@ -2879,54 +2866,50 @@ export namespace GetProtocolVersionUpgradeStateResponse { } } -export class GetProtocolVersionUpgradeVoteStatusRequest extends jspb.Message { +export class WaitForStateTransitionResultRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 | undefined; - setV0(value?: GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0): void; + getV0(): WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0 | undefined; + setV0(value?: WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0): void; - getVersionCase(): GetProtocolVersionUpgradeVoteStatusRequest.VersionCase; + getVersionCase(): WaitForStateTransitionResultRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusRequest): GetProtocolVersionUpgradeVoteStatusRequest.AsObject; + toObject(includeInstance?: boolean): WaitForStateTransitionResultRequest.AsObject; + static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultRequest): WaitForStateTransitionResultRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusRequest; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusRequest, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusRequest; + static serializeBinaryToWriter(message: WaitForStateTransitionResultRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultRequest; + static deserializeBinaryFromReader(message: WaitForStateTransitionResultRequest, reader: jspb.BinaryReader): WaitForStateTransitionResultRequest; } -export namespace GetProtocolVersionUpgradeVoteStatusRequest { +export namespace WaitForStateTransitionResultRequest { export type AsObject = { - v0?: GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject, + v0?: WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.AsObject, } - export class GetProtocolVersionUpgradeVoteStatusRequestV0 extends jspb.Message { - getStartProTxHash(): Uint8Array | string; - getStartProTxHash_asU8(): Uint8Array; - getStartProTxHash_asB64(): string; - setStartProTxHash(value: Uint8Array | string): void; - - getCount(): number; - setCount(value: number): void; + export class WaitForStateTransitionResultRequestV0 extends jspb.Message { + getStateTransitionHash(): Uint8Array | string; + getStateTransitionHash_asU8(): Uint8Array; + getStateTransitionHash_asB64(): string; + setStateTransitionHash(value: Uint8Array | string): void; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusRequestV0): GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject; + toObject(includeInstance?: boolean): WaitForStateTransitionResultRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultRequestV0): WaitForStateTransitionResultRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusRequestV0; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusRequestV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusRequestV0; + static serializeBinaryToWriter(message: WaitForStateTransitionResultRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultRequestV0; + static deserializeBinaryFromReader(message: WaitForStateTransitionResultRequestV0, reader: jspb.BinaryReader): WaitForStateTransitionResultRequestV0; } - export namespace GetProtocolVersionUpgradeVoteStatusRequestV0 { + export namespace WaitForStateTransitionResultRequestV0 { export type AsObject = { - startProTxHash: Uint8Array | string, - count: number, + stateTransitionHash: Uint8Array | string, prove: boolean, } } @@ -2937,33 +2920,33 @@ export namespace GetProtocolVersionUpgradeVoteStatusRequest { } } -export class GetProtocolVersionUpgradeVoteStatusResponse extends jspb.Message { +export class WaitForStateTransitionResultResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 | undefined; - setV0(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0): void; + getV0(): WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0 | undefined; + setV0(value?: WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0): void; - getVersionCase(): GetProtocolVersionUpgradeVoteStatusResponse.VersionCase; + getVersionCase(): WaitForStateTransitionResultResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusResponse): GetProtocolVersionUpgradeVoteStatusResponse.AsObject; + toObject(includeInstance?: boolean): WaitForStateTransitionResultResponse.AsObject; + static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultResponse): WaitForStateTransitionResultResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusResponse; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusResponse, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusResponse; + static serializeBinaryToWriter(message: WaitForStateTransitionResultResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultResponse; + static deserializeBinaryFromReader(message: WaitForStateTransitionResultResponse, reader: jspb.BinaryReader): WaitForStateTransitionResultResponse; } -export namespace GetProtocolVersionUpgradeVoteStatusResponse { +export namespace WaitForStateTransitionResultResponse { export type AsObject = { - v0?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject, + v0?: WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.AsObject, } - export class GetProtocolVersionUpgradeVoteStatusResponseV0 extends jspb.Message { - hasVersions(): boolean; - clearVersions(): void; - getVersions(): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals | undefined; - setVersions(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals): void; + export class WaitForStateTransitionResultResponseV0 extends jspb.Message { + hasError(): boolean; + clearError(): void; + getError(): StateTransitionBroadcastError | undefined; + setError(value?: StateTransitionBroadcastError): void; hasProof(): boolean; clearProof(): void; @@ -2975,75 +2958,27 @@ export namespace GetProtocolVersionUpgradeVoteStatusResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase; + getResultCase(): WaitForStateTransitionResultResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusResponseV0): GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject; + toObject(includeInstance?: boolean): WaitForStateTransitionResultResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: WaitForStateTransitionResultResponseV0): WaitForStateTransitionResultResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusResponseV0; - static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusResponseV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusResponseV0; + static serializeBinaryToWriter(message: WaitForStateTransitionResultResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): WaitForStateTransitionResultResponseV0; + static deserializeBinaryFromReader(message: WaitForStateTransitionResultResponseV0, reader: jspb.BinaryReader): WaitForStateTransitionResultResponseV0; } - export namespace GetProtocolVersionUpgradeVoteStatusResponseV0 { + export namespace WaitForStateTransitionResultResponseV0 { export type AsObject = { - versions?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.AsObject, + error?: StateTransitionBroadcastError.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class VersionSignals extends jspb.Message { - clearVersionSignalsList(): void; - getVersionSignalsList(): Array; - setVersionSignalsList(value: Array): void; - addVersionSignals(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, index?: number): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VersionSignals.AsObject; - static toObject(includeInstance: boolean, msg: VersionSignals): VersionSignals.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VersionSignals, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VersionSignals; - static deserializeBinaryFromReader(message: VersionSignals, reader: jspb.BinaryReader): VersionSignals; - } - - export namespace VersionSignals { - export type AsObject = { - versionSignalsList: Array, - } - } - - export class VersionSignal extends jspb.Message { - getProTxHash(): Uint8Array | string; - getProTxHash_asU8(): Uint8Array; - getProTxHash_asB64(): string; - setProTxHash(value: Uint8Array | string): void; - - getVersion(): number; - setVersion(value: number): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): VersionSignal.AsObject; - static toObject(includeInstance: boolean, msg: VersionSignal): VersionSignal.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: VersionSignal, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): VersionSignal; - static deserializeBinaryFromReader(message: VersionSignal, reader: jspb.BinaryReader): VersionSignal; - } - - export namespace VersionSignal { - export type AsObject = { - proTxHash: Uint8Array | string, - version: number, - } - } - export enum ResultCase { RESULT_NOT_SET = 0, - VERSIONS = 1, + ERROR = 1, PROOF = 2, } } @@ -3054,58 +2989,48 @@ export namespace GetProtocolVersionUpgradeVoteStatusResponse { } } -export class GetEpochsInfoRequest extends jspb.Message { +export class GetConsensusParamsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetEpochsInfoRequest.GetEpochsInfoRequestV0 | undefined; - setV0(value?: GetEpochsInfoRequest.GetEpochsInfoRequestV0): void; + getV0(): GetConsensusParamsRequest.GetConsensusParamsRequestV0 | undefined; + setV0(value?: GetConsensusParamsRequest.GetConsensusParamsRequestV0): void; - getVersionCase(): GetEpochsInfoRequest.VersionCase; + getVersionCase(): GetConsensusParamsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetEpochsInfoRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetEpochsInfoRequest): GetEpochsInfoRequest.AsObject; + toObject(includeInstance?: boolean): GetConsensusParamsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetConsensusParamsRequest): GetConsensusParamsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetEpochsInfoRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetEpochsInfoRequest; - static deserializeBinaryFromReader(message: GetEpochsInfoRequest, reader: jspb.BinaryReader): GetEpochsInfoRequest; + static serializeBinaryToWriter(message: GetConsensusParamsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetConsensusParamsRequest; + static deserializeBinaryFromReader(message: GetConsensusParamsRequest, reader: jspb.BinaryReader): GetConsensusParamsRequest; } -export namespace GetEpochsInfoRequest { +export namespace GetConsensusParamsRequest { export type AsObject = { - v0?: GetEpochsInfoRequest.GetEpochsInfoRequestV0.AsObject, + v0?: GetConsensusParamsRequest.GetConsensusParamsRequestV0.AsObject, } - export class GetEpochsInfoRequestV0 extends jspb.Message { - hasStartEpoch(): boolean; - clearStartEpoch(): void; - getStartEpoch(): google_protobuf_wrappers_pb.UInt32Value | undefined; - setStartEpoch(value?: google_protobuf_wrappers_pb.UInt32Value): void; - - getCount(): number; - setCount(value: number): void; - - getAscending(): boolean; - setAscending(value: boolean): void; + export class GetConsensusParamsRequestV0 extends jspb.Message { + getHeight(): number; + setHeight(value: number): void; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetEpochsInfoRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetEpochsInfoRequestV0): GetEpochsInfoRequestV0.AsObject; + toObject(includeInstance?: boolean): GetConsensusParamsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetConsensusParamsRequestV0): GetConsensusParamsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetEpochsInfoRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetEpochsInfoRequestV0; - static deserializeBinaryFromReader(message: GetEpochsInfoRequestV0, reader: jspb.BinaryReader): GetEpochsInfoRequestV0; + static serializeBinaryToWriter(message: GetConsensusParamsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetConsensusParamsRequestV0; + static deserializeBinaryFromReader(message: GetConsensusParamsRequestV0, reader: jspb.BinaryReader): GetConsensusParamsRequestV0; } - export namespace GetEpochsInfoRequestV0 { + export namespace GetConsensusParamsRequestV0 { export type AsObject = { - startEpoch?: google_protobuf_wrappers_pb.UInt32Value.AsObject, - count: number, - ascending: boolean, + height: number, prove: boolean, } } @@ -3116,130 +3041,111 @@ export namespace GetEpochsInfoRequest { } } -export class GetEpochsInfoResponse extends jspb.Message { +export class GetConsensusParamsResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetEpochsInfoResponse.GetEpochsInfoResponseV0 | undefined; - setV0(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0): void; + getV0(): GetConsensusParamsResponse.GetConsensusParamsResponseV0 | undefined; + setV0(value?: GetConsensusParamsResponse.GetConsensusParamsResponseV0): void; - getVersionCase(): GetEpochsInfoResponse.VersionCase; + getVersionCase(): GetConsensusParamsResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetEpochsInfoResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetEpochsInfoResponse): GetEpochsInfoResponse.AsObject; + toObject(includeInstance?: boolean): GetConsensusParamsResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetConsensusParamsResponse): GetConsensusParamsResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetEpochsInfoResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetEpochsInfoResponse; - static deserializeBinaryFromReader(message: GetEpochsInfoResponse, reader: jspb.BinaryReader): GetEpochsInfoResponse; + static serializeBinaryToWriter(message: GetConsensusParamsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetConsensusParamsResponse; + static deserializeBinaryFromReader(message: GetConsensusParamsResponse, reader: jspb.BinaryReader): GetConsensusParamsResponse; } -export namespace GetEpochsInfoResponse { +export namespace GetConsensusParamsResponse { export type AsObject = { - v0?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.AsObject, + v0?: GetConsensusParamsResponse.GetConsensusParamsResponseV0.AsObject, } - export class GetEpochsInfoResponseV0 extends jspb.Message { - hasEpochs(): boolean; - clearEpochs(): void; - getEpochs(): GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos | undefined; - setEpochs(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos): void; + export class ConsensusParamsBlock extends jspb.Message { + getMaxBytes(): string; + setMaxBytes(value: string): void; - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + getMaxGas(): string; + setMaxGas(value: string): void; - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + getTimeIotaMs(): string; + setTimeIotaMs(value: string): void; - getResultCase(): GetEpochsInfoResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetEpochsInfoResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetEpochsInfoResponseV0): GetEpochsInfoResponseV0.AsObject; + toObject(includeInstance?: boolean): ConsensusParamsBlock.AsObject; + static toObject(includeInstance: boolean, msg: ConsensusParamsBlock): ConsensusParamsBlock.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetEpochsInfoResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetEpochsInfoResponseV0; - static deserializeBinaryFromReader(message: GetEpochsInfoResponseV0, reader: jspb.BinaryReader): GetEpochsInfoResponseV0; + static serializeBinaryToWriter(message: ConsensusParamsBlock, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ConsensusParamsBlock; + static deserializeBinaryFromReader(message: ConsensusParamsBlock, reader: jspb.BinaryReader): ConsensusParamsBlock; } - export namespace GetEpochsInfoResponseV0 { + export namespace ConsensusParamsBlock { export type AsObject = { - epochs?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.AsObject, - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, + maxBytes: string, + maxGas: string, + timeIotaMs: string, } + } - export class EpochInfos extends jspb.Message { - clearEpochInfosList(): void; - getEpochInfosList(): Array; - setEpochInfosList(value: Array): void; - addEpochInfos(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, index?: number): GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; + export class ConsensusParamsEvidence extends jspb.Message { + getMaxAgeNumBlocks(): string; + setMaxAgeNumBlocks(value: string): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): EpochInfos.AsObject; - static toObject(includeInstance: boolean, msg: EpochInfos): EpochInfos.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: EpochInfos, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): EpochInfos; - static deserializeBinaryFromReader(message: EpochInfos, reader: jspb.BinaryReader): EpochInfos; - } + getMaxAgeDuration(): string; + setMaxAgeDuration(value: string): void; - export namespace EpochInfos { - export type AsObject = { - epochInfosList: Array, - } - } + getMaxBytes(): string; + setMaxBytes(value: string): void; - export class EpochInfo extends jspb.Message { - getNumber(): number; - setNumber(value: number): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ConsensusParamsEvidence.AsObject; + static toObject(includeInstance: boolean, msg: ConsensusParamsEvidence): ConsensusParamsEvidence.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ConsensusParamsEvidence, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ConsensusParamsEvidence; + static deserializeBinaryFromReader(message: ConsensusParamsEvidence, reader: jspb.BinaryReader): ConsensusParamsEvidence; + } - getFirstBlockHeight(): number; - setFirstBlockHeight(value: number): void; + export namespace ConsensusParamsEvidence { + export type AsObject = { + maxAgeNumBlocks: string, + maxAgeDuration: string, + maxBytes: string, + } + } - getFirstCoreBlockHeight(): number; - setFirstCoreBlockHeight(value: number): void; + export class GetConsensusParamsResponseV0 extends jspb.Message { + hasBlock(): boolean; + clearBlock(): void; + getBlock(): GetConsensusParamsResponse.ConsensusParamsBlock | undefined; + setBlock(value?: GetConsensusParamsResponse.ConsensusParamsBlock): void; - getStartTime(): number; - setStartTime(value: number): void; + hasEvidence(): boolean; + clearEvidence(): void; + getEvidence(): GetConsensusParamsResponse.ConsensusParamsEvidence | undefined; + setEvidence(value?: GetConsensusParamsResponse.ConsensusParamsEvidence): void; - getFeeMultiplier(): number; - setFeeMultiplier(value: number): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetConsensusParamsResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetConsensusParamsResponseV0): GetConsensusParamsResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetConsensusParamsResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetConsensusParamsResponseV0; + static deserializeBinaryFromReader(message: GetConsensusParamsResponseV0, reader: jspb.BinaryReader): GetConsensusParamsResponseV0; + } - getProtocolVersion(): number; - setProtocolVersion(value: number): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): EpochInfo.AsObject; - static toObject(includeInstance: boolean, msg: EpochInfo): EpochInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: EpochInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): EpochInfo; - static deserializeBinaryFromReader(message: EpochInfo, reader: jspb.BinaryReader): EpochInfo; - } - - export namespace EpochInfo { - export type AsObject = { - number: number, - firstBlockHeight: number, - firstCoreBlockHeight: number, - startTime: number, - feeMultiplier: number, - protocolVersion: number, - } - } - - export enum ResultCase { - RESULT_NOT_SET = 0, - EPOCHS = 1, - PROOF = 2, - } - } + export namespace GetConsensusParamsResponseV0 { + export type AsObject = { + block?: GetConsensusParamsResponse.ConsensusParamsBlock.AsObject, + evidence?: GetConsensusParamsResponse.ConsensusParamsEvidence.AsObject, + } + } export enum VersionCase { VERSION_NOT_SET = 0, @@ -3247,118 +3153,46 @@ export namespace GetEpochsInfoResponse { } } -export class GetContestedResourcesRequest extends jspb.Message { +export class GetProtocolVersionUpgradeStateRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourcesRequest.GetContestedResourcesRequestV0 | undefined; - setV0(value?: GetContestedResourcesRequest.GetContestedResourcesRequestV0): void; + getV0(): GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0 | undefined; + setV0(value?: GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0): void; - getVersionCase(): GetContestedResourcesRequest.VersionCase; + getVersionCase(): GetProtocolVersionUpgradeStateRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourcesRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourcesRequest): GetContestedResourcesRequest.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateRequest): GetProtocolVersionUpgradeStateRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourcesRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourcesRequest; - static deserializeBinaryFromReader(message: GetContestedResourcesRequest, reader: jspb.BinaryReader): GetContestedResourcesRequest; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateRequest; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateRequest, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateRequest; } -export namespace GetContestedResourcesRequest { +export namespace GetProtocolVersionUpgradeStateRequest { export type AsObject = { - v0?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.AsObject, + v0?: GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.AsObject, } - export class GetContestedResourcesRequestV0 extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; - - getDocumentTypeName(): string; - setDocumentTypeName(value: string): void; - - getIndexName(): string; - setIndexName(value: string): void; - - clearStartIndexValuesList(): void; - getStartIndexValuesList(): Array; - getStartIndexValuesList_asU8(): Array; - getStartIndexValuesList_asB64(): Array; - setStartIndexValuesList(value: Array): void; - addStartIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; - - clearEndIndexValuesList(): void; - getEndIndexValuesList(): Array; - getEndIndexValuesList_asU8(): Array; - getEndIndexValuesList_asB64(): Array; - setEndIndexValuesList(value: Array): void; - addEndIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; - - hasStartAtValueInfo(): boolean; - clearStartAtValueInfo(): void; - getStartAtValueInfo(): GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo | undefined; - setStartAtValueInfo(value?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo): void; - - hasCount(): boolean; - clearCount(): void; - getCount(): number; - setCount(value: number): void; - - getOrderAscending(): boolean; - setOrderAscending(value: boolean): void; - + export class GetProtocolVersionUpgradeStateRequestV0 extends jspb.Message { getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourcesRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourcesRequestV0): GetContestedResourcesRequestV0.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateRequestV0): GetProtocolVersionUpgradeStateRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourcesRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourcesRequestV0; - static deserializeBinaryFromReader(message: GetContestedResourcesRequestV0, reader: jspb.BinaryReader): GetContestedResourcesRequestV0; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateRequestV0; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateRequestV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateRequestV0; } - export namespace GetContestedResourcesRequestV0 { + export namespace GetProtocolVersionUpgradeStateRequestV0 { export type AsObject = { - contractId: Uint8Array | string, - documentTypeName: string, - indexName: string, - startIndexValuesList: Array, - endIndexValuesList: Array, - startAtValueInfo?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.AsObject, - count: number, - orderAscending: boolean, prove: boolean, } - - export class StartAtValueInfo extends jspb.Message { - getStartValue(): Uint8Array | string; - getStartValue_asU8(): Uint8Array; - getStartValue_asB64(): string; - setStartValue(value: Uint8Array | string): void; - - getStartValueIncluded(): boolean; - setStartValueIncluded(value: boolean): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StartAtValueInfo.AsObject; - static toObject(includeInstance: boolean, msg: StartAtValueInfo): StartAtValueInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StartAtValueInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StartAtValueInfo; - static deserializeBinaryFromReader(message: StartAtValueInfo, reader: jspb.BinaryReader): StartAtValueInfo; - } - - export namespace StartAtValueInfo { - export type AsObject = { - startValue: Uint8Array | string, - startValueIncluded: boolean, - } - } } export enum VersionCase { @@ -3367,33 +3201,33 @@ export namespace GetContestedResourcesRequest { } } -export class GetContestedResourcesResponse extends jspb.Message { +export class GetProtocolVersionUpgradeStateResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourcesResponse.GetContestedResourcesResponseV0 | undefined; - setV0(value?: GetContestedResourcesResponse.GetContestedResourcesResponseV0): void; + getV0(): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0 | undefined; + setV0(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0): void; - getVersionCase(): GetContestedResourcesResponse.VersionCase; + getVersionCase(): GetProtocolVersionUpgradeStateResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourcesResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourcesResponse): GetContestedResourcesResponse.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateResponse): GetProtocolVersionUpgradeStateResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourcesResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourcesResponse; - static deserializeBinaryFromReader(message: GetContestedResourcesResponse, reader: jspb.BinaryReader): GetContestedResourcesResponse; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateResponse; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateResponse, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateResponse; } -export namespace GetContestedResourcesResponse { +export namespace GetProtocolVersionUpgradeStateResponse { export type AsObject = { - v0?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.AsObject, + v0?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.AsObject, } - export class GetContestedResourcesResponseV0 extends jspb.Message { - hasContestedResourceValues(): boolean; - clearContestedResourceValues(): void; - getContestedResourceValues(): GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues | undefined; - setContestedResourceValues(value?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues): void; + export class GetProtocolVersionUpgradeStateResponseV0 extends jspb.Message { + hasVersions(): boolean; + clearVersions(): void; + getVersions(): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions | undefined; + setVersions(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions): void; hasProof(): boolean; clearProof(): void; @@ -3405,51 +3239,73 @@ export namespace GetContestedResourcesResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetContestedResourcesResponseV0.ResultCase; + getResultCase(): GetProtocolVersionUpgradeStateResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourcesResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourcesResponseV0): GetContestedResourcesResponseV0.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeStateResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeStateResponseV0): GetProtocolVersionUpgradeStateResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourcesResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourcesResponseV0; - static deserializeBinaryFromReader(message: GetContestedResourcesResponseV0, reader: jspb.BinaryReader): GetContestedResourcesResponseV0; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeStateResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeStateResponseV0; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeStateResponseV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeStateResponseV0; } - export namespace GetContestedResourcesResponseV0 { + export namespace GetProtocolVersionUpgradeStateResponseV0 { export type AsObject = { - contestedResourceValues?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.AsObject, + versions?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class ContestedResourceValues extends jspb.Message { - clearContestedResourceValuesList(): void; - getContestedResourceValuesList(): Array; - getContestedResourceValuesList_asU8(): Array; - getContestedResourceValuesList_asB64(): Array; - setContestedResourceValuesList(value: Array): void; - addContestedResourceValues(value: Uint8Array | string, index?: number): Uint8Array | string; + export class Versions extends jspb.Message { + clearVersionsList(): void; + getVersionsList(): Array; + setVersionsList(value: Array): void; + addVersions(value?: GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, index?: number): GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceValues.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceValues): ContestedResourceValues.AsObject; + toObject(includeInstance?: boolean): Versions.AsObject; + static toObject(includeInstance: boolean, msg: Versions): Versions.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceValues, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceValues; - static deserializeBinaryFromReader(message: ContestedResourceValues, reader: jspb.BinaryReader): ContestedResourceValues; + static serializeBinaryToWriter(message: Versions, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Versions; + static deserializeBinaryFromReader(message: Versions, reader: jspb.BinaryReader): Versions; } - export namespace ContestedResourceValues { + export namespace Versions { export type AsObject = { - contestedResourceValuesList: Array, + versionsList: Array, + } + } + + export class VersionEntry extends jspb.Message { + getVersionNumber(): number; + setVersionNumber(value: number): void; + + getVoteCount(): number; + setVoteCount(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): VersionEntry.AsObject; + static toObject(includeInstance: boolean, msg: VersionEntry): VersionEntry.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: VersionEntry, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): VersionEntry; + static deserializeBinaryFromReader(message: VersionEntry, reader: jspb.BinaryReader): VersionEntry; + } + + export namespace VersionEntry { + export type AsObject = { + versionNumber: number, + voteCount: number, } } export enum ResultCase { RESULT_NOT_SET = 0, - CONTESTED_RESOURCE_VALUES = 1, + VERSIONS = 1, PROOF = 2, } } @@ -3460,122 +3316,56 @@ export namespace GetContestedResourcesResponse { } } -export class GetVotePollsByEndDateRequest extends jspb.Message { +export class GetProtocolVersionUpgradeVoteStatusRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 | undefined; - setV0(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0): void; + getV0(): GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0 | undefined; + setV0(value?: GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0): void; - getVersionCase(): GetVotePollsByEndDateRequest.VersionCase; + getVersionCase(): GetProtocolVersionUpgradeVoteStatusRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetVotePollsByEndDateRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateRequest): GetVotePollsByEndDateRequest.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusRequest): GetProtocolVersionUpgradeVoteStatusRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetVotePollsByEndDateRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateRequest; - static deserializeBinaryFromReader(message: GetVotePollsByEndDateRequest, reader: jspb.BinaryReader): GetVotePollsByEndDateRequest; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusRequest; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusRequest, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusRequest; } -export namespace GetVotePollsByEndDateRequest { +export namespace GetProtocolVersionUpgradeVoteStatusRequest { export type AsObject = { - v0?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.AsObject, + v0?: GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject, } - export class GetVotePollsByEndDateRequestV0 extends jspb.Message { - hasStartTimeInfo(): boolean; - clearStartTimeInfo(): void; - getStartTimeInfo(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo | undefined; - setStartTimeInfo(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo): void; - - hasEndTimeInfo(): boolean; - clearEndTimeInfo(): void; - getEndTimeInfo(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo | undefined; - setEndTimeInfo(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo): void; - - hasLimit(): boolean; - clearLimit(): void; - getLimit(): number; - setLimit(value: number): void; - - hasOffset(): boolean; - clearOffset(): void; - getOffset(): number; - setOffset(value: number): void; + export class GetProtocolVersionUpgradeVoteStatusRequestV0 extends jspb.Message { + getStartProTxHash(): Uint8Array | string; + getStartProTxHash_asU8(): Uint8Array; + getStartProTxHash_asB64(): string; + setStartProTxHash(value: Uint8Array | string): void; - getAscending(): boolean; - setAscending(value: boolean): void; + getCount(): number; + setCount(value: number): void; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetVotePollsByEndDateRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateRequestV0): GetVotePollsByEndDateRequestV0.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusRequestV0): GetProtocolVersionUpgradeVoteStatusRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetVotePollsByEndDateRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateRequestV0; - static deserializeBinaryFromReader(message: GetVotePollsByEndDateRequestV0, reader: jspb.BinaryReader): GetVotePollsByEndDateRequestV0; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusRequestV0; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusRequestV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusRequestV0; } - export namespace GetVotePollsByEndDateRequestV0 { + export namespace GetProtocolVersionUpgradeVoteStatusRequestV0 { export type AsObject = { - startTimeInfo?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.AsObject, - endTimeInfo?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.AsObject, - limit: number, - offset: number, - ascending: boolean, + startProTxHash: Uint8Array | string, + count: number, prove: boolean, } - - export class StartAtTimeInfo extends jspb.Message { - getStartTimeMs(): number; - setStartTimeMs(value: number): void; - - getStartTimeIncluded(): boolean; - setStartTimeIncluded(value: boolean): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StartAtTimeInfo.AsObject; - static toObject(includeInstance: boolean, msg: StartAtTimeInfo): StartAtTimeInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StartAtTimeInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StartAtTimeInfo; - static deserializeBinaryFromReader(message: StartAtTimeInfo, reader: jspb.BinaryReader): StartAtTimeInfo; - } - - export namespace StartAtTimeInfo { - export type AsObject = { - startTimeMs: number, - startTimeIncluded: boolean, - } - } - - export class EndAtTimeInfo extends jspb.Message { - getEndTimeMs(): number; - setEndTimeMs(value: number): void; - - getEndTimeIncluded(): boolean; - setEndTimeIncluded(value: boolean): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): EndAtTimeInfo.AsObject; - static toObject(includeInstance: boolean, msg: EndAtTimeInfo): EndAtTimeInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: EndAtTimeInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): EndAtTimeInfo; - static deserializeBinaryFromReader(message: EndAtTimeInfo, reader: jspb.BinaryReader): EndAtTimeInfo; - } - - export namespace EndAtTimeInfo { - export type AsObject = { - endTimeMs: number, - endTimeIncluded: boolean, - } - } } export enum VersionCase { @@ -3584,33 +3374,33 @@ export namespace GetVotePollsByEndDateRequest { } } -export class GetVotePollsByEndDateResponse extends jspb.Message { +export class GetProtocolVersionUpgradeVoteStatusResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 | undefined; - setV0(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0): void; + getV0(): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0 | undefined; + setV0(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0): void; - getVersionCase(): GetVotePollsByEndDateResponse.VersionCase; + getVersionCase(): GetProtocolVersionUpgradeVoteStatusResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetVotePollsByEndDateResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateResponse): GetVotePollsByEndDateResponse.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusResponse): GetProtocolVersionUpgradeVoteStatusResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetVotePollsByEndDateResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateResponse; - static deserializeBinaryFromReader(message: GetVotePollsByEndDateResponse, reader: jspb.BinaryReader): GetVotePollsByEndDateResponse; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusResponse; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusResponse, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusResponse; } -export namespace GetVotePollsByEndDateResponse { +export namespace GetProtocolVersionUpgradeVoteStatusResponse { export type AsObject = { - v0?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.AsObject, + v0?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject, } - export class GetVotePollsByEndDateResponseV0 extends jspb.Message { - hasVotePollsByTimestamps(): boolean; - clearVotePollsByTimestamps(): void; - getVotePollsByTimestamps(): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps | undefined; - setVotePollsByTimestamps(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps): void; + export class GetProtocolVersionUpgradeVoteStatusResponseV0 extends jspb.Message { + hasVersions(): boolean; + clearVersions(): void; + getVersions(): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals | undefined; + setVersions(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals): void; hasProof(): boolean; clearProof(): void; @@ -3622,81 +3412,75 @@ export namespace GetVotePollsByEndDateResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetVotePollsByEndDateResponseV0.ResultCase; + getResultCase(): GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetVotePollsByEndDateResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateResponseV0): GetVotePollsByEndDateResponseV0.AsObject; + toObject(includeInstance?: boolean): GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetProtocolVersionUpgradeVoteStatusResponseV0): GetProtocolVersionUpgradeVoteStatusResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetVotePollsByEndDateResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateResponseV0; - static deserializeBinaryFromReader(message: GetVotePollsByEndDateResponseV0, reader: jspb.BinaryReader): GetVotePollsByEndDateResponseV0; + static serializeBinaryToWriter(message: GetProtocolVersionUpgradeVoteStatusResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetProtocolVersionUpgradeVoteStatusResponseV0; + static deserializeBinaryFromReader(message: GetProtocolVersionUpgradeVoteStatusResponseV0, reader: jspb.BinaryReader): GetProtocolVersionUpgradeVoteStatusResponseV0; } - export namespace GetVotePollsByEndDateResponseV0 { + export namespace GetProtocolVersionUpgradeVoteStatusResponseV0 { export type AsObject = { - votePollsByTimestamps?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.AsObject, + versions?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class SerializedVotePollsByTimestamp extends jspb.Message { - getTimestamp(): number; - setTimestamp(value: number): void; - - clearSerializedVotePollsList(): void; - getSerializedVotePollsList(): Array; - getSerializedVotePollsList_asU8(): Array; - getSerializedVotePollsList_asB64(): Array; - setSerializedVotePollsList(value: Array): void; - addSerializedVotePolls(value: Uint8Array | string, index?: number): Uint8Array | string; + export class VersionSignals extends jspb.Message { + clearVersionSignalsList(): void; + getVersionSignalsList(): Array; + setVersionSignalsList(value: Array): void; + addVersionSignals(value?: GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, index?: number): GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SerializedVotePollsByTimestamp.AsObject; - static toObject(includeInstance: boolean, msg: SerializedVotePollsByTimestamp): SerializedVotePollsByTimestamp.AsObject; + toObject(includeInstance?: boolean): VersionSignals.AsObject; + static toObject(includeInstance: boolean, msg: VersionSignals): VersionSignals.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SerializedVotePollsByTimestamp, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SerializedVotePollsByTimestamp; - static deserializeBinaryFromReader(message: SerializedVotePollsByTimestamp, reader: jspb.BinaryReader): SerializedVotePollsByTimestamp; + static serializeBinaryToWriter(message: VersionSignals, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): VersionSignals; + static deserializeBinaryFromReader(message: VersionSignals, reader: jspb.BinaryReader): VersionSignals; } - export namespace SerializedVotePollsByTimestamp { + export namespace VersionSignals { export type AsObject = { - timestamp: number, - serializedVotePollsList: Array, + versionSignalsList: Array, } } - export class SerializedVotePollsByTimestamps extends jspb.Message { - clearVotePollsByTimestampsList(): void; - getVotePollsByTimestampsList(): Array; - setVotePollsByTimestampsList(value: Array): void; - addVotePollsByTimestamps(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, index?: number): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + export class VersionSignal extends jspb.Message { + getProTxHash(): Uint8Array | string; + getProTxHash_asU8(): Uint8Array; + getProTxHash_asB64(): string; + setProTxHash(value: Uint8Array | string): void; - getFinishedResults(): boolean; - setFinishedResults(value: boolean): void; + getVersion(): number; + setVersion(value: number): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SerializedVotePollsByTimestamps.AsObject; - static toObject(includeInstance: boolean, msg: SerializedVotePollsByTimestamps): SerializedVotePollsByTimestamps.AsObject; + toObject(includeInstance?: boolean): VersionSignal.AsObject; + static toObject(includeInstance: boolean, msg: VersionSignal): VersionSignal.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SerializedVotePollsByTimestamps, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SerializedVotePollsByTimestamps; - static deserializeBinaryFromReader(message: SerializedVotePollsByTimestamps, reader: jspb.BinaryReader): SerializedVotePollsByTimestamps; + static serializeBinaryToWriter(message: VersionSignal, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): VersionSignal; + static deserializeBinaryFromReader(message: VersionSignal, reader: jspb.BinaryReader): VersionSignal; } - export namespace SerializedVotePollsByTimestamps { + export namespace VersionSignal { export type AsObject = { - votePollsByTimestampsList: Array, - finishedResults: boolean, + proTxHash: Uint8Array | string, + version: number, } } export enum ResultCase { RESULT_NOT_SET = 0, - VOTE_POLLS_BY_TIMESTAMPS = 1, + VERSIONS = 1, PROOF = 2, } } @@ -3707,122 +3491,60 @@ export namespace GetVotePollsByEndDateResponse { } } -export class GetContestedResourceVoteStateRequest extends jspb.Message { +export class GetEpochsInfoRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 | undefined; - setV0(value?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0): void; + getV0(): GetEpochsInfoRequest.GetEpochsInfoRequestV0 | undefined; + setV0(value?: GetEpochsInfoRequest.GetEpochsInfoRequestV0): void; - getVersionCase(): GetContestedResourceVoteStateRequest.VersionCase; + getVersionCase(): GetEpochsInfoRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVoteStateRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateRequest): GetContestedResourceVoteStateRequest.AsObject; + toObject(includeInstance?: boolean): GetEpochsInfoRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetEpochsInfoRequest): GetEpochsInfoRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVoteStateRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateRequest; - static deserializeBinaryFromReader(message: GetContestedResourceVoteStateRequest, reader: jspb.BinaryReader): GetContestedResourceVoteStateRequest; + static serializeBinaryToWriter(message: GetEpochsInfoRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEpochsInfoRequest; + static deserializeBinaryFromReader(message: GetEpochsInfoRequest, reader: jspb.BinaryReader): GetEpochsInfoRequest; } -export namespace GetContestedResourceVoteStateRequest { +export namespace GetEpochsInfoRequest { export type AsObject = { - v0?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.AsObject, + v0?: GetEpochsInfoRequest.GetEpochsInfoRequestV0.AsObject, } - export class GetContestedResourceVoteStateRequestV0 extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; - - getDocumentTypeName(): string; - setDocumentTypeName(value: string): void; + export class GetEpochsInfoRequestV0 extends jspb.Message { + hasStartEpoch(): boolean; + clearStartEpoch(): void; + getStartEpoch(): google_protobuf_wrappers_pb.UInt32Value | undefined; + setStartEpoch(value?: google_protobuf_wrappers_pb.UInt32Value): void; - getIndexName(): string; - setIndexName(value: string): void; + getCount(): number; + setCount(value: number): void; - clearIndexValuesList(): void; - getIndexValuesList(): Array; - getIndexValuesList_asU8(): Array; - getIndexValuesList_asB64(): Array; - setIndexValuesList(value: Array): void; - addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + getAscending(): boolean; + setAscending(value: boolean): void; - getResultType(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap]; - setResultType(value: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap]): void; - - getAllowIncludeLockedAndAbstainingVoteTally(): boolean; - setAllowIncludeLockedAndAbstainingVoteTally(value: boolean): void; - - hasStartAtIdentifierInfo(): boolean; - clearStartAtIdentifierInfo(): void; - getStartAtIdentifierInfo(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo | undefined; - setStartAtIdentifierInfo(value?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo): void; - - hasCount(): boolean; - clearCount(): void; - getCount(): number; - setCount(value: number): void; - - getProve(): boolean; - setProve(value: boolean): void; + getProve(): boolean; + setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVoteStateRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateRequestV0): GetContestedResourceVoteStateRequestV0.AsObject; + toObject(includeInstance?: boolean): GetEpochsInfoRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetEpochsInfoRequestV0): GetEpochsInfoRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVoteStateRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateRequestV0; - static deserializeBinaryFromReader(message: GetContestedResourceVoteStateRequestV0, reader: jspb.BinaryReader): GetContestedResourceVoteStateRequestV0; + static serializeBinaryToWriter(message: GetEpochsInfoRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEpochsInfoRequestV0; + static deserializeBinaryFromReader(message: GetEpochsInfoRequestV0, reader: jspb.BinaryReader): GetEpochsInfoRequestV0; } - export namespace GetContestedResourceVoteStateRequestV0 { + export namespace GetEpochsInfoRequestV0 { export type AsObject = { - contractId: Uint8Array | string, - documentTypeName: string, - indexName: string, - indexValuesList: Array, - resultType: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap], - allowIncludeLockedAndAbstainingVoteTally: boolean, - startAtIdentifierInfo?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.AsObject, + startEpoch?: google_protobuf_wrappers_pb.UInt32Value.AsObject, count: number, + ascending: boolean, prove: boolean, } - - export class StartAtIdentifierInfo extends jspb.Message { - getStartIdentifier(): Uint8Array | string; - getStartIdentifier_asU8(): Uint8Array; - getStartIdentifier_asB64(): string; - setStartIdentifier(value: Uint8Array | string): void; - - getStartIdentifierIncluded(): boolean; - setStartIdentifierIncluded(value: boolean): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StartAtIdentifierInfo.AsObject; - static toObject(includeInstance: boolean, msg: StartAtIdentifierInfo): StartAtIdentifierInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StartAtIdentifierInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StartAtIdentifierInfo; - static deserializeBinaryFromReader(message: StartAtIdentifierInfo, reader: jspb.BinaryReader): StartAtIdentifierInfo; - } - - export namespace StartAtIdentifierInfo { - export type AsObject = { - startIdentifier: Uint8Array | string, - startIdentifierIncluded: boolean, - } - } - - export interface ResultTypeMap { - DOCUMENTS: 0; - VOTE_TALLY: 1; - DOCUMENTS_AND_VOTE_TALLY: 2; - } - - export const ResultType: ResultTypeMap; } export enum VersionCase { @@ -3831,33 +3553,33 @@ export namespace GetContestedResourceVoteStateRequest { } } -export class GetContestedResourceVoteStateResponse extends jspb.Message { +export class GetEpochsInfoResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 | undefined; - setV0(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0): void; + getV0(): GetEpochsInfoResponse.GetEpochsInfoResponseV0 | undefined; + setV0(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0): void; - getVersionCase(): GetContestedResourceVoteStateResponse.VersionCase; + getVersionCase(): GetEpochsInfoResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVoteStateResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateResponse): GetContestedResourceVoteStateResponse.AsObject; + toObject(includeInstance?: boolean): GetEpochsInfoResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetEpochsInfoResponse): GetEpochsInfoResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVoteStateResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateResponse; - static deserializeBinaryFromReader(message: GetContestedResourceVoteStateResponse, reader: jspb.BinaryReader): GetContestedResourceVoteStateResponse; + static serializeBinaryToWriter(message: GetEpochsInfoResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEpochsInfoResponse; + static deserializeBinaryFromReader(message: GetEpochsInfoResponse, reader: jspb.BinaryReader): GetEpochsInfoResponse; } -export namespace GetContestedResourceVoteStateResponse { +export namespace GetEpochsInfoResponse { export type AsObject = { - v0?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.AsObject, + v0?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.AsObject, } - export class GetContestedResourceVoteStateResponseV0 extends jspb.Message { - hasContestedResourceContenders(): boolean; - clearContestedResourceContenders(): void; - getContestedResourceContenders(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders | undefined; - setContestedResourceContenders(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders): void; + export class GetEpochsInfoResponseV0 extends jspb.Message { + hasEpochs(): boolean; + clearEpochs(): void; + getEpochs(): GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos | undefined; + setEpochs(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos): void; hasProof(): boolean; clearProof(): void; @@ -3869,155 +3591,1358 @@ export namespace GetContestedResourceVoteStateResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetContestedResourceVoteStateResponseV0.ResultCase; + getResultCase(): GetEpochsInfoResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVoteStateResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateResponseV0): GetContestedResourceVoteStateResponseV0.AsObject; + toObject(includeInstance?: boolean): GetEpochsInfoResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetEpochsInfoResponseV0): GetEpochsInfoResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVoteStateResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateResponseV0; - static deserializeBinaryFromReader(message: GetContestedResourceVoteStateResponseV0, reader: jspb.BinaryReader): GetContestedResourceVoteStateResponseV0; + static serializeBinaryToWriter(message: GetEpochsInfoResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEpochsInfoResponseV0; + static deserializeBinaryFromReader(message: GetEpochsInfoResponseV0, reader: jspb.BinaryReader): GetEpochsInfoResponseV0; } - export namespace GetContestedResourceVoteStateResponseV0 { + export namespace GetEpochsInfoResponseV0 { export type AsObject = { - contestedResourceContenders?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.AsObject, + epochs?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.AsObject, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class FinishedVoteInfo extends jspb.Message { - getFinishedVoteOutcome(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap]; - setFinishedVoteOutcome(value: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap]): void; - - hasWonByIdentityId(): boolean; - clearWonByIdentityId(): void; - getWonByIdentityId(): Uint8Array | string; - getWonByIdentityId_asU8(): Uint8Array; - getWonByIdentityId_asB64(): string; - setWonByIdentityId(value: Uint8Array | string): void; - - getFinishedAtBlockHeight(): number; - setFinishedAtBlockHeight(value: number): void; - - getFinishedAtCoreBlockHeight(): number; - setFinishedAtCoreBlockHeight(value: number): void; - - getFinishedAtBlockTimeMs(): number; - setFinishedAtBlockTimeMs(value: number): void; - - getFinishedAtEpoch(): number; - setFinishedAtEpoch(value: number): void; + export class EpochInfos extends jspb.Message { + clearEpochInfosList(): void; + getEpochInfosList(): Array; + setEpochInfosList(value: Array): void; + addEpochInfos(value?: GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, index?: number): GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): FinishedVoteInfo.AsObject; - static toObject(includeInstance: boolean, msg: FinishedVoteInfo): FinishedVoteInfo.AsObject; + toObject(includeInstance?: boolean): EpochInfos.AsObject; + static toObject(includeInstance: boolean, msg: EpochInfos): EpochInfos.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: FinishedVoteInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): FinishedVoteInfo; - static deserializeBinaryFromReader(message: FinishedVoteInfo, reader: jspb.BinaryReader): FinishedVoteInfo; + static serializeBinaryToWriter(message: EpochInfos, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EpochInfos; + static deserializeBinaryFromReader(message: EpochInfos, reader: jspb.BinaryReader): EpochInfos; } - export namespace FinishedVoteInfo { + export namespace EpochInfos { export type AsObject = { - finishedVoteOutcome: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap], - wonByIdentityId: Uint8Array | string, - finishedAtBlockHeight: number, - finishedAtCoreBlockHeight: number, - finishedAtBlockTimeMs: number, - finishedAtEpoch: number, + epochInfosList: Array, } + } - export interface FinishedVoteOutcomeMap { - TOWARDS_IDENTITY: 0; - LOCKED: 1; - NO_PREVIOUS_WINNER: 2; - } + export class EpochInfo extends jspb.Message { + getNumber(): number; + setNumber(value: number): void; - export const FinishedVoteOutcome: FinishedVoteOutcomeMap; - } + getFirstBlockHeight(): number; + setFirstBlockHeight(value: number): void; - export class ContestedResourceContenders extends jspb.Message { - clearContendersList(): void; - getContendersList(): Array; - setContendersList(value: Array): void; - addContenders(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, index?: number): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + getFirstCoreBlockHeight(): number; + setFirstCoreBlockHeight(value: number): void; - hasAbstainVoteTally(): boolean; - clearAbstainVoteTally(): void; - getAbstainVoteTally(): number; - setAbstainVoteTally(value: number): void; + getStartTime(): number; + setStartTime(value: number): void; - hasLockVoteTally(): boolean; - clearLockVoteTally(): void; - getLockVoteTally(): number; - setLockVoteTally(value: number): void; + getFeeMultiplier(): number; + setFeeMultiplier(value: number): void; - hasFinishedVoteInfo(): boolean; - clearFinishedVoteInfo(): void; - getFinishedVoteInfo(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo | undefined; - setFinishedVoteInfo(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo): void; + getProtocolVersion(): number; + setProtocolVersion(value: number): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceContenders.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceContenders): ContestedResourceContenders.AsObject; + toObject(includeInstance?: boolean): EpochInfo.AsObject; + static toObject(includeInstance: boolean, msg: EpochInfo): EpochInfo.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceContenders, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceContenders; - static deserializeBinaryFromReader(message: ContestedResourceContenders, reader: jspb.BinaryReader): ContestedResourceContenders; + static serializeBinaryToWriter(message: EpochInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EpochInfo; + static deserializeBinaryFromReader(message: EpochInfo, reader: jspb.BinaryReader): EpochInfo; } - export namespace ContestedResourceContenders { + export namespace EpochInfo { export type AsObject = { - contendersList: Array, - abstainVoteTally: number, - lockVoteTally: number, - finishedVoteInfo?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.AsObject, + number: number, + firstBlockHeight: number, + firstCoreBlockHeight: number, + startTime: number, + feeMultiplier: number, + protocolVersion: number, } } - export class Contender extends jspb.Message { - getIdentifier(): Uint8Array | string; - getIdentifier_asU8(): Uint8Array; - getIdentifier_asB64(): string; - setIdentifier(value: Uint8Array | string): void; + export enum ResultCase { + RESULT_NOT_SET = 0, + EPOCHS = 1, + PROOF = 2, + } + } - hasVoteCount(): boolean; - clearVoteCount(): void; - getVoteCount(): number; - setVoteCount(value: number): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} - hasDocument(): boolean; - clearDocument(): void; - getDocument(): Uint8Array | string; - getDocument_asU8(): Uint8Array; - getDocument_asB64(): string; - setDocument(value: Uint8Array | string): void; +export class GetContestedResourcesRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourcesRequest.GetContestedResourcesRequestV0 | undefined; + setV0(value?: GetContestedResourcesRequest.GetContestedResourcesRequestV0): void; + + getVersionCase(): GetContestedResourcesRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourcesRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourcesRequest): GetContestedResourcesRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourcesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourcesRequest; + static deserializeBinaryFromReader(message: GetContestedResourcesRequest, reader: jspb.BinaryReader): GetContestedResourcesRequest; +} + +export namespace GetContestedResourcesRequest { + export type AsObject = { + v0?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.AsObject, + } + + export class GetContestedResourcesRequestV0 extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + getDocumentTypeName(): string; + setDocumentTypeName(value: string): void; + + getIndexName(): string; + setIndexName(value: string): void; + + clearStartIndexValuesList(): void; + getStartIndexValuesList(): Array; + getStartIndexValuesList_asU8(): Array; + getStartIndexValuesList_asB64(): Array; + setStartIndexValuesList(value: Array): void; + addStartIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + clearEndIndexValuesList(): void; + getEndIndexValuesList(): Array; + getEndIndexValuesList_asU8(): Array; + getEndIndexValuesList_asB64(): Array; + setEndIndexValuesList(value: Array): void; + addEndIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + hasStartAtValueInfo(): boolean; + clearStartAtValueInfo(): void; + getStartAtValueInfo(): GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo | undefined; + setStartAtValueInfo(value?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo): void; + + hasCount(): boolean; + clearCount(): void; + getCount(): number; + setCount(value: number): void; + + getOrderAscending(): boolean; + setOrderAscending(value: boolean): void; + + getProve(): boolean; + setProve(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourcesRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourcesRequestV0): GetContestedResourcesRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourcesRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourcesRequestV0; + static deserializeBinaryFromReader(message: GetContestedResourcesRequestV0, reader: jspb.BinaryReader): GetContestedResourcesRequestV0; + } + + export namespace GetContestedResourcesRequestV0 { + export type AsObject = { + contractId: Uint8Array | string, + documentTypeName: string, + indexName: string, + startIndexValuesList: Array, + endIndexValuesList: Array, + startAtValueInfo?: GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.AsObject, + count: number, + orderAscending: boolean, + prove: boolean, + } + + export class StartAtValueInfo extends jspb.Message { + getStartValue(): Uint8Array | string; + getStartValue_asU8(): Uint8Array; + getStartValue_asB64(): string; + setStartValue(value: Uint8Array | string): void; + + getStartValueIncluded(): boolean; + setStartValueIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StartAtValueInfo.AsObject; + static toObject(includeInstance: boolean, msg: StartAtValueInfo): StartAtValueInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StartAtValueInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StartAtValueInfo; + static deserializeBinaryFromReader(message: StartAtValueInfo, reader: jspb.BinaryReader): StartAtValueInfo; + } + + export namespace StartAtValueInfo { + export type AsObject = { + startValue: Uint8Array | string, + startValueIncluded: boolean, + } + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourcesResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourcesResponse.GetContestedResourcesResponseV0 | undefined; + setV0(value?: GetContestedResourcesResponse.GetContestedResourcesResponseV0): void; + + getVersionCase(): GetContestedResourcesResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourcesResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourcesResponse): GetContestedResourcesResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourcesResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourcesResponse; + static deserializeBinaryFromReader(message: GetContestedResourcesResponse, reader: jspb.BinaryReader): GetContestedResourcesResponse; +} + +export namespace GetContestedResourcesResponse { + export type AsObject = { + v0?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.AsObject, + } + + export class GetContestedResourcesResponseV0 extends jspb.Message { + hasContestedResourceValues(): boolean; + clearContestedResourceValues(): void; + getContestedResourceValues(): GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues | undefined; + setContestedResourceValues(value?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetContestedResourcesResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourcesResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourcesResponseV0): GetContestedResourcesResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourcesResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourcesResponseV0; + static deserializeBinaryFromReader(message: GetContestedResourcesResponseV0, reader: jspb.BinaryReader): GetContestedResourcesResponseV0; + } + + export namespace GetContestedResourcesResponseV0 { + export type AsObject = { + contestedResourceValues?: GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class ContestedResourceValues extends jspb.Message { + clearContestedResourceValuesList(): void; + getContestedResourceValuesList(): Array; + getContestedResourceValuesList_asU8(): Array; + getContestedResourceValuesList_asB64(): Array; + setContestedResourceValuesList(value: Array): void; + addContestedResourceValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceValues.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceValues): ContestedResourceValues.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceValues, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceValues; + static deserializeBinaryFromReader(message: ContestedResourceValues, reader: jspb.BinaryReader): ContestedResourceValues; + } + + export namespace ContestedResourceValues { + export type AsObject = { + contestedResourceValuesList: Array, + } + } + + export enum ResultCase { + RESULT_NOT_SET = 0, + CONTESTED_RESOURCE_VALUES = 1, + PROOF = 2, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetVotePollsByEndDateRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0 | undefined; + setV0(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0): void; + + getVersionCase(): GetVotePollsByEndDateRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetVotePollsByEndDateRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateRequest): GetVotePollsByEndDateRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetVotePollsByEndDateRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateRequest; + static deserializeBinaryFromReader(message: GetVotePollsByEndDateRequest, reader: jspb.BinaryReader): GetVotePollsByEndDateRequest; +} + +export namespace GetVotePollsByEndDateRequest { + export type AsObject = { + v0?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.AsObject, + } + + export class GetVotePollsByEndDateRequestV0 extends jspb.Message { + hasStartTimeInfo(): boolean; + clearStartTimeInfo(): void; + getStartTimeInfo(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo | undefined; + setStartTimeInfo(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo): void; + + hasEndTimeInfo(): boolean; + clearEndTimeInfo(): void; + getEndTimeInfo(): GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo | undefined; + setEndTimeInfo(value?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo): void; + + hasLimit(): boolean; + clearLimit(): void; + getLimit(): number; + setLimit(value: number): void; + + hasOffset(): boolean; + clearOffset(): void; + getOffset(): number; + setOffset(value: number): void; + + getAscending(): boolean; + setAscending(value: boolean): void; + + getProve(): boolean; + setProve(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetVotePollsByEndDateRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateRequestV0): GetVotePollsByEndDateRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetVotePollsByEndDateRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateRequestV0; + static deserializeBinaryFromReader(message: GetVotePollsByEndDateRequestV0, reader: jspb.BinaryReader): GetVotePollsByEndDateRequestV0; + } + + export namespace GetVotePollsByEndDateRequestV0 { + export type AsObject = { + startTimeInfo?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.AsObject, + endTimeInfo?: GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.AsObject, + limit: number, + offset: number, + ascending: boolean, + prove: boolean, + } + + export class StartAtTimeInfo extends jspb.Message { + getStartTimeMs(): number; + setStartTimeMs(value: number): void; + + getStartTimeIncluded(): boolean; + setStartTimeIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StartAtTimeInfo.AsObject; + static toObject(includeInstance: boolean, msg: StartAtTimeInfo): StartAtTimeInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StartAtTimeInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StartAtTimeInfo; + static deserializeBinaryFromReader(message: StartAtTimeInfo, reader: jspb.BinaryReader): StartAtTimeInfo; + } + + export namespace StartAtTimeInfo { + export type AsObject = { + startTimeMs: number, + startTimeIncluded: boolean, + } + } + + export class EndAtTimeInfo extends jspb.Message { + getEndTimeMs(): number; + setEndTimeMs(value: number): void; + + getEndTimeIncluded(): boolean; + setEndTimeIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): EndAtTimeInfo.AsObject; + static toObject(includeInstance: boolean, msg: EndAtTimeInfo): EndAtTimeInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: EndAtTimeInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EndAtTimeInfo; + static deserializeBinaryFromReader(message: EndAtTimeInfo, reader: jspb.BinaryReader): EndAtTimeInfo; + } + + export namespace EndAtTimeInfo { + export type AsObject = { + endTimeMs: number, + endTimeIncluded: boolean, + } + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetVotePollsByEndDateResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0 | undefined; + setV0(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0): void; + + getVersionCase(): GetVotePollsByEndDateResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetVotePollsByEndDateResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateResponse): GetVotePollsByEndDateResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetVotePollsByEndDateResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateResponse; + static deserializeBinaryFromReader(message: GetVotePollsByEndDateResponse, reader: jspb.BinaryReader): GetVotePollsByEndDateResponse; +} + +export namespace GetVotePollsByEndDateResponse { + export type AsObject = { + v0?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.AsObject, + } + + export class GetVotePollsByEndDateResponseV0 extends jspb.Message { + hasVotePollsByTimestamps(): boolean; + clearVotePollsByTimestamps(): void; + getVotePollsByTimestamps(): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps | undefined; + setVotePollsByTimestamps(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetVotePollsByEndDateResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetVotePollsByEndDateResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetVotePollsByEndDateResponseV0): GetVotePollsByEndDateResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetVotePollsByEndDateResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetVotePollsByEndDateResponseV0; + static deserializeBinaryFromReader(message: GetVotePollsByEndDateResponseV0, reader: jspb.BinaryReader): GetVotePollsByEndDateResponseV0; + } + + export namespace GetVotePollsByEndDateResponseV0 { + export type AsObject = { + votePollsByTimestamps?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class SerializedVotePollsByTimestamp extends jspb.Message { + getTimestamp(): number; + setTimestamp(value: number): void; + + clearSerializedVotePollsList(): void; + getSerializedVotePollsList(): Array; + getSerializedVotePollsList_asU8(): Array; + getSerializedVotePollsList_asB64(): Array; + setSerializedVotePollsList(value: Array): void; + addSerializedVotePolls(value: Uint8Array | string, index?: number): Uint8Array | string; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SerializedVotePollsByTimestamp.AsObject; + static toObject(includeInstance: boolean, msg: SerializedVotePollsByTimestamp): SerializedVotePollsByTimestamp.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SerializedVotePollsByTimestamp, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SerializedVotePollsByTimestamp; + static deserializeBinaryFromReader(message: SerializedVotePollsByTimestamp, reader: jspb.BinaryReader): SerializedVotePollsByTimestamp; + } + + export namespace SerializedVotePollsByTimestamp { + export type AsObject = { + timestamp: number, + serializedVotePollsList: Array, + } + } + + export class SerializedVotePollsByTimestamps extends jspb.Message { + clearVotePollsByTimestampsList(): void; + getVotePollsByTimestampsList(): Array; + setVotePollsByTimestampsList(value: Array): void; + addVotePollsByTimestamps(value?: GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, index?: number): GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + + getFinishedResults(): boolean; + setFinishedResults(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SerializedVotePollsByTimestamps.AsObject; + static toObject(includeInstance: boolean, msg: SerializedVotePollsByTimestamps): SerializedVotePollsByTimestamps.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SerializedVotePollsByTimestamps, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SerializedVotePollsByTimestamps; + static deserializeBinaryFromReader(message: SerializedVotePollsByTimestamps, reader: jspb.BinaryReader): SerializedVotePollsByTimestamps; + } + + export namespace SerializedVotePollsByTimestamps { + export type AsObject = { + votePollsByTimestampsList: Array, + finishedResults: boolean, + } + } + + export enum ResultCase { + RESULT_NOT_SET = 0, + VOTE_POLLS_BY_TIMESTAMPS = 1, + PROOF = 2, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceVoteStateRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0 | undefined; + setV0(value?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0): void; + + getVersionCase(): GetContestedResourceVoteStateRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVoteStateRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateRequest): GetContestedResourceVoteStateRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVoteStateRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateRequest; + static deserializeBinaryFromReader(message: GetContestedResourceVoteStateRequest, reader: jspb.BinaryReader): GetContestedResourceVoteStateRequest; +} + +export namespace GetContestedResourceVoteStateRequest { + export type AsObject = { + v0?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.AsObject, + } + + export class GetContestedResourceVoteStateRequestV0 extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + getDocumentTypeName(): string; + setDocumentTypeName(value: string): void; + + getIndexName(): string; + setIndexName(value: string): void; + + clearIndexValuesList(): void; + getIndexValuesList(): Array; + getIndexValuesList_asU8(): Array; + getIndexValuesList_asB64(): Array; + setIndexValuesList(value: Array): void; + addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + getResultType(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap]; + setResultType(value: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap]): void; + + getAllowIncludeLockedAndAbstainingVoteTally(): boolean; + setAllowIncludeLockedAndAbstainingVoteTally(value: boolean): void; + + hasStartAtIdentifierInfo(): boolean; + clearStartAtIdentifierInfo(): void; + getStartAtIdentifierInfo(): GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo | undefined; + setStartAtIdentifierInfo(value?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo): void; + + hasCount(): boolean; + clearCount(): void; + getCount(): number; + setCount(value: number): void; + + getProve(): boolean; + setProve(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVoteStateRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateRequestV0): GetContestedResourceVoteStateRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVoteStateRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateRequestV0; + static deserializeBinaryFromReader(message: GetContestedResourceVoteStateRequestV0, reader: jspb.BinaryReader): GetContestedResourceVoteStateRequestV0; + } + + export namespace GetContestedResourceVoteStateRequestV0 { + export type AsObject = { + contractId: Uint8Array | string, + documentTypeName: string, + indexName: string, + indexValuesList: Array, + resultType: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap[keyof GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultTypeMap], + allowIncludeLockedAndAbstainingVoteTally: boolean, + startAtIdentifierInfo?: GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.AsObject, + count: number, + prove: boolean, + } + + export class StartAtIdentifierInfo extends jspb.Message { + getStartIdentifier(): Uint8Array | string; + getStartIdentifier_asU8(): Uint8Array; + getStartIdentifier_asB64(): string; + setStartIdentifier(value: Uint8Array | string): void; + + getStartIdentifierIncluded(): boolean; + setStartIdentifierIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StartAtIdentifierInfo.AsObject; + static toObject(includeInstance: boolean, msg: StartAtIdentifierInfo): StartAtIdentifierInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StartAtIdentifierInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StartAtIdentifierInfo; + static deserializeBinaryFromReader(message: StartAtIdentifierInfo, reader: jspb.BinaryReader): StartAtIdentifierInfo; + } + + export namespace StartAtIdentifierInfo { + export type AsObject = { + startIdentifier: Uint8Array | string, + startIdentifierIncluded: boolean, + } + } + + export interface ResultTypeMap { + DOCUMENTS: 0; + VOTE_TALLY: 1; + DOCUMENTS_AND_VOTE_TALLY: 2; + } + + export const ResultType: ResultTypeMap; + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceVoteStateResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0 | undefined; + setV0(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0): void; + + getVersionCase(): GetContestedResourceVoteStateResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVoteStateResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateResponse): GetContestedResourceVoteStateResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVoteStateResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateResponse; + static deserializeBinaryFromReader(message: GetContestedResourceVoteStateResponse, reader: jspb.BinaryReader): GetContestedResourceVoteStateResponse; +} + +export namespace GetContestedResourceVoteStateResponse { + export type AsObject = { + v0?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.AsObject, + } + + export class GetContestedResourceVoteStateResponseV0 extends jspb.Message { + hasContestedResourceContenders(): boolean; + clearContestedResourceContenders(): void; + getContestedResourceContenders(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders | undefined; + setContestedResourceContenders(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetContestedResourceVoteStateResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVoteStateResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVoteStateResponseV0): GetContestedResourceVoteStateResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVoteStateResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVoteStateResponseV0; + static deserializeBinaryFromReader(message: GetContestedResourceVoteStateResponseV0, reader: jspb.BinaryReader): GetContestedResourceVoteStateResponseV0; + } + + export namespace GetContestedResourceVoteStateResponseV0 { + export type AsObject = { + contestedResourceContenders?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class FinishedVoteInfo extends jspb.Message { + getFinishedVoteOutcome(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap]; + setFinishedVoteOutcome(value: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap]): void; + + hasWonByIdentityId(): boolean; + clearWonByIdentityId(): void; + getWonByIdentityId(): Uint8Array | string; + getWonByIdentityId_asU8(): Uint8Array; + getWonByIdentityId_asB64(): string; + setWonByIdentityId(value: Uint8Array | string): void; + + getFinishedAtBlockHeight(): number; + setFinishedAtBlockHeight(value: number): void; + + getFinishedAtCoreBlockHeight(): number; + setFinishedAtCoreBlockHeight(value: number): void; + + getFinishedAtBlockTimeMs(): number; + setFinishedAtBlockTimeMs(value: number): void; + + getFinishedAtEpoch(): number; + setFinishedAtEpoch(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): FinishedVoteInfo.AsObject; + static toObject(includeInstance: boolean, msg: FinishedVoteInfo): FinishedVoteInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: FinishedVoteInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): FinishedVoteInfo; + static deserializeBinaryFromReader(message: FinishedVoteInfo, reader: jspb.BinaryReader): FinishedVoteInfo; + } + + export namespace FinishedVoteInfo { + export type AsObject = { + finishedVoteOutcome: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap[keyof GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcomeMap], + wonByIdentityId: Uint8Array | string, + finishedAtBlockHeight: number, + finishedAtCoreBlockHeight: number, + finishedAtBlockTimeMs: number, + finishedAtEpoch: number, + } + + export interface FinishedVoteOutcomeMap { + TOWARDS_IDENTITY: 0; + LOCKED: 1; + NO_PREVIOUS_WINNER: 2; + } + + export const FinishedVoteOutcome: FinishedVoteOutcomeMap; + } + + export class ContestedResourceContenders extends jspb.Message { + clearContendersList(): void; + getContendersList(): Array; + setContendersList(value: Array): void; + addContenders(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, index?: number): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + + hasAbstainVoteTally(): boolean; + clearAbstainVoteTally(): void; + getAbstainVoteTally(): number; + setAbstainVoteTally(value: number): void; + + hasLockVoteTally(): boolean; + clearLockVoteTally(): void; + getLockVoteTally(): number; + setLockVoteTally(value: number): void; + + hasFinishedVoteInfo(): boolean; + clearFinishedVoteInfo(): void; + getFinishedVoteInfo(): GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo | undefined; + setFinishedVoteInfo(value?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceContenders.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceContenders): ContestedResourceContenders.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceContenders, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceContenders; + static deserializeBinaryFromReader(message: ContestedResourceContenders, reader: jspb.BinaryReader): ContestedResourceContenders; + } + + export namespace ContestedResourceContenders { + export type AsObject = { + contendersList: Array, + abstainVoteTally: number, + lockVoteTally: number, + finishedVoteInfo?: GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.AsObject, + } + } + + export class Contender extends jspb.Message { + getIdentifier(): Uint8Array | string; + getIdentifier_asU8(): Uint8Array; + getIdentifier_asB64(): string; + setIdentifier(value: Uint8Array | string): void; + + hasVoteCount(): boolean; + clearVoteCount(): void; + getVoteCount(): number; + setVoteCount(value: number): void; + + hasDocument(): boolean; + clearDocument(): void; + getDocument(): Uint8Array | string; + getDocument_asU8(): Uint8Array; + getDocument_asB64(): string; + setDocument(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Contender.AsObject; + static toObject(includeInstance: boolean, msg: Contender): Contender.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Contender, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Contender; + static deserializeBinaryFromReader(message: Contender, reader: jspb.BinaryReader): Contender; + } + + export namespace Contender { + export type AsObject = { + identifier: Uint8Array | string, + voteCount: number, + document: Uint8Array | string, + } + } + + export enum ResultCase { + RESULT_NOT_SET = 0, + CONTESTED_RESOURCE_CONTENDERS = 1, + PROOF = 2, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceVotersForIdentityRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 | undefined; + setV0(value?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0): void; + + getVersionCase(): GetContestedResourceVotersForIdentityRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityRequest): GetContestedResourceVotersForIdentityRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityRequest; + static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityRequest, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityRequest; +} + +export namespace GetContestedResourceVotersForIdentityRequest { + export type AsObject = { + v0?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.AsObject, + } + + export class GetContestedResourceVotersForIdentityRequestV0 extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + getDocumentTypeName(): string; + setDocumentTypeName(value: string): void; + + getIndexName(): string; + setIndexName(value: string): void; + + clearIndexValuesList(): void; + getIndexValuesList(): Array; + getIndexValuesList_asU8(): Array; + getIndexValuesList_asB64(): Array; + setIndexValuesList(value: Array): void; + addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + getContestantId(): Uint8Array | string; + getContestantId_asU8(): Uint8Array; + getContestantId_asB64(): string; + setContestantId(value: Uint8Array | string): void; + + hasStartAtIdentifierInfo(): boolean; + clearStartAtIdentifierInfo(): void; + getStartAtIdentifierInfo(): GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo | undefined; + setStartAtIdentifierInfo(value?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo): void; + + hasCount(): boolean; + clearCount(): void; + getCount(): number; + setCount(value: number): void; + + getOrderAscending(): boolean; + setOrderAscending(value: boolean): void; + + getProve(): boolean; + setProve(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityRequestV0): GetContestedResourceVotersForIdentityRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityRequestV0; + static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityRequestV0, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityRequestV0; + } + + export namespace GetContestedResourceVotersForIdentityRequestV0 { + export type AsObject = { + contractId: Uint8Array | string, + documentTypeName: string, + indexName: string, + indexValuesList: Array, + contestantId: Uint8Array | string, + startAtIdentifierInfo?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.AsObject, + count: number, + orderAscending: boolean, + prove: boolean, + } + + export class StartAtIdentifierInfo extends jspb.Message { + getStartIdentifier(): Uint8Array | string; + getStartIdentifier_asU8(): Uint8Array; + getStartIdentifier_asB64(): string; + setStartIdentifier(value: Uint8Array | string): void; + + getStartIdentifierIncluded(): boolean; + setStartIdentifierIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StartAtIdentifierInfo.AsObject; + static toObject(includeInstance: boolean, msg: StartAtIdentifierInfo): StartAtIdentifierInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StartAtIdentifierInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StartAtIdentifierInfo; + static deserializeBinaryFromReader(message: StartAtIdentifierInfo, reader: jspb.BinaryReader): StartAtIdentifierInfo; + } + + export namespace StartAtIdentifierInfo { + export type AsObject = { + startIdentifier: Uint8Array | string, + startIdentifierIncluded: boolean, + } + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceVotersForIdentityResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 | undefined; + setV0(value?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0): void; + + getVersionCase(): GetContestedResourceVotersForIdentityResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityResponse): GetContestedResourceVotersForIdentityResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityResponse; + static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityResponse, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityResponse; +} + +export namespace GetContestedResourceVotersForIdentityResponse { + export type AsObject = { + v0?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.AsObject, + } + + export class GetContestedResourceVotersForIdentityResponseV0 extends jspb.Message { + hasContestedResourceVoters(): boolean; + clearContestedResourceVoters(): void; + getContestedResourceVoters(): GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters | undefined; + setContestedResourceVoters(value?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetContestedResourceVotersForIdentityResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityResponseV0): GetContestedResourceVotersForIdentityResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityResponseV0; + static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityResponseV0, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityResponseV0; + } + + export namespace GetContestedResourceVotersForIdentityResponseV0 { + export type AsObject = { + contestedResourceVoters?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class ContestedResourceVoters extends jspb.Message { + clearVotersList(): void; + getVotersList(): Array; + getVotersList_asU8(): Array; + getVotersList_asB64(): Array; + setVotersList(value: Array): void; + addVoters(value: Uint8Array | string, index?: number): Uint8Array | string; + + getFinishedResults(): boolean; + setFinishedResults(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceVoters.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceVoters): ContestedResourceVoters.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceVoters, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceVoters; + static deserializeBinaryFromReader(message: ContestedResourceVoters, reader: jspb.BinaryReader): ContestedResourceVoters; + } + + export namespace ContestedResourceVoters { + export type AsObject = { + votersList: Array, + finishedResults: boolean, + } + } + + export enum ResultCase { + RESULT_NOT_SET = 0, + CONTESTED_RESOURCE_VOTERS = 1, + PROOF = 2, + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceIdentityVotesRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 | undefined; + setV0(value?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0): void; + + getVersionCase(): GetContestedResourceIdentityVotesRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesRequest): GetContestedResourceIdentityVotesRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesRequest; + static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesRequest, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesRequest; +} + +export namespace GetContestedResourceIdentityVotesRequest { + export type AsObject = { + v0?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.AsObject, + } + + export class GetContestedResourceIdentityVotesRequestV0 extends jspb.Message { + getIdentityId(): Uint8Array | string; + getIdentityId_asU8(): Uint8Array; + getIdentityId_asB64(): string; + setIdentityId(value: Uint8Array | string): void; + + hasLimit(): boolean; + clearLimit(): void; + getLimit(): google_protobuf_wrappers_pb.UInt32Value | undefined; + setLimit(value?: google_protobuf_wrappers_pb.UInt32Value): void; + + hasOffset(): boolean; + clearOffset(): void; + getOffset(): google_protobuf_wrappers_pb.UInt32Value | undefined; + setOffset(value?: google_protobuf_wrappers_pb.UInt32Value): void; + + getOrderAscending(): boolean; + setOrderAscending(value: boolean): void; + + hasStartAtVotePollIdInfo(): boolean; + clearStartAtVotePollIdInfo(): void; + getStartAtVotePollIdInfo(): GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo | undefined; + setStartAtVotePollIdInfo(value?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo): void; + + getProve(): boolean; + setProve(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesRequestV0): GetContestedResourceIdentityVotesRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesRequestV0; + static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesRequestV0, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesRequestV0; + } + + export namespace GetContestedResourceIdentityVotesRequestV0 { + export type AsObject = { + identityId: Uint8Array | string, + limit?: google_protobuf_wrappers_pb.UInt32Value.AsObject, + offset?: google_protobuf_wrappers_pb.UInt32Value.AsObject, + orderAscending: boolean, + startAtVotePollIdInfo?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.AsObject, + prove: boolean, + } + + export class StartAtVotePollIdInfo extends jspb.Message { + getStartAtPollIdentifier(): Uint8Array | string; + getStartAtPollIdentifier_asU8(): Uint8Array; + getStartAtPollIdentifier_asB64(): string; + setStartAtPollIdentifier(value: Uint8Array | string): void; + + getStartPollIdentifierIncluded(): boolean; + setStartPollIdentifierIncluded(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StartAtVotePollIdInfo.AsObject; + static toObject(includeInstance: boolean, msg: StartAtVotePollIdInfo): StartAtVotePollIdInfo.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StartAtVotePollIdInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StartAtVotePollIdInfo; + static deserializeBinaryFromReader(message: StartAtVotePollIdInfo, reader: jspb.BinaryReader): StartAtVotePollIdInfo; + } + + export namespace StartAtVotePollIdInfo { + export type AsObject = { + startAtPollIdentifier: Uint8Array | string, + startPollIdentifierIncluded: boolean, + } + } + } + + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetContestedResourceIdentityVotesResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 | undefined; + setV0(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0): void; + + getVersionCase(): GetContestedResourceIdentityVotesResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesResponse): GetContestedResourceIdentityVotesResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesResponse; + static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesResponse, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesResponse; +} + +export namespace GetContestedResourceIdentityVotesResponse { + export type AsObject = { + v0?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.AsObject, + } + + export class GetContestedResourceIdentityVotesResponseV0 extends jspb.Message { + hasVotes(): boolean; + clearVotes(): void; + getVotes(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes | undefined; + setVotes(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetContestedResourceIdentityVotesResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesResponseV0): GetContestedResourceIdentityVotesResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesResponseV0; + static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesResponseV0, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesResponseV0; + } + + export namespace GetContestedResourceIdentityVotesResponseV0 { + export type AsObject = { + votes?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class ContestedResourceIdentityVotes extends jspb.Message { + clearContestedResourceIdentityVotesList(): void; + getContestedResourceIdentityVotesList(): Array; + setContestedResourceIdentityVotesList(value: Array): void; + addContestedResourceIdentityVotes(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, index?: number): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + + getFinishedResults(): boolean; + setFinishedResults(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceIdentityVotes.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceIdentityVotes): ContestedResourceIdentityVotes.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceIdentityVotes, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceIdentityVotes; + static deserializeBinaryFromReader(message: ContestedResourceIdentityVotes, reader: jspb.BinaryReader): ContestedResourceIdentityVotes; + } + + export namespace ContestedResourceIdentityVotes { + export type AsObject = { + contestedResourceIdentityVotesList: Array, + finishedResults: boolean, + } + } + + export class ResourceVoteChoice extends jspb.Message { + getVoteChoiceType(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap]; + setVoteChoiceType(value: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap]): void; + + hasIdentityId(): boolean; + clearIdentityId(): void; + getIdentityId(): Uint8Array | string; + getIdentityId_asU8(): Uint8Array; + getIdentityId_asB64(): string; + setIdentityId(value: Uint8Array | string): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contender.AsObject; - static toObject(includeInstance: boolean, msg: Contender): Contender.AsObject; + toObject(includeInstance?: boolean): ResourceVoteChoice.AsObject; + static toObject(includeInstance: boolean, msg: ResourceVoteChoice): ResourceVoteChoice.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contender, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contender; - static deserializeBinaryFromReader(message: Contender, reader: jspb.BinaryReader): Contender; + static serializeBinaryToWriter(message: ResourceVoteChoice, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ResourceVoteChoice; + static deserializeBinaryFromReader(message: ResourceVoteChoice, reader: jspb.BinaryReader): ResourceVoteChoice; } - export namespace Contender { + export namespace ResourceVoteChoice { export type AsObject = { - identifier: Uint8Array | string, - voteCount: number, - document: Uint8Array | string, + voteChoiceType: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap], + identityId: Uint8Array | string, + } + + export interface VoteChoiceTypeMap { + TOWARDS_IDENTITY: 0; + ABSTAIN: 1; + LOCK: 2; + } + + export const VoteChoiceType: VoteChoiceTypeMap; + } + + export class ContestedResourceIdentityVote extends jspb.Message { + getContractId(): Uint8Array | string; + getContractId_asU8(): Uint8Array; + getContractId_asB64(): string; + setContractId(value: Uint8Array | string): void; + + getDocumentTypeName(): string; + setDocumentTypeName(value: string): void; + + clearSerializedIndexStorageValuesList(): void; + getSerializedIndexStorageValuesList(): Array; + getSerializedIndexStorageValuesList_asU8(): Array; + getSerializedIndexStorageValuesList_asB64(): Array; + setSerializedIndexStorageValuesList(value: Array): void; + addSerializedIndexStorageValues(value: Uint8Array | string, index?: number): Uint8Array | string; + + hasVoteChoice(): boolean; + clearVoteChoice(): void; + getVoteChoice(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice | undefined; + setVoteChoice(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ContestedResourceIdentityVote.AsObject; + static toObject(includeInstance: boolean, msg: ContestedResourceIdentityVote): ContestedResourceIdentityVote.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ContestedResourceIdentityVote, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ContestedResourceIdentityVote; + static deserializeBinaryFromReader(message: ContestedResourceIdentityVote, reader: jspb.BinaryReader): ContestedResourceIdentityVote; + } + + export namespace ContestedResourceIdentityVote { + export type AsObject = { + contractId: Uint8Array | string, + documentTypeName: string, + serializedIndexStorageValuesList: Array, + voteChoice?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.AsObject, } } export enum ResultCase { RESULT_NOT_SET = 0, - CONTESTED_RESOURCE_CONTENDERS = 1, + VOTES = 1, PROOF = 2, } } @@ -4028,115 +4953,168 @@ export namespace GetContestedResourceVoteStateResponse { } } -export class GetContestedResourceVotersForIdentityRequest extends jspb.Message { +export class GetPrefundedSpecializedBalanceRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0 | undefined; - setV0(value?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0): void; + getV0(): GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 | undefined; + setV0(value?: GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0): void; - getVersionCase(): GetContestedResourceVotersForIdentityRequest.VersionCase; + getVersionCase(): GetPrefundedSpecializedBalanceRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityRequest): GetContestedResourceVotersForIdentityRequest.AsObject; + toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceRequest): GetPrefundedSpecializedBalanceRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityRequest; - static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityRequest, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityRequest; + static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceRequest; + static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceRequest, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceRequest; } -export namespace GetContestedResourceVotersForIdentityRequest { +export namespace GetPrefundedSpecializedBalanceRequest { export type AsObject = { - v0?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.AsObject, + v0?: GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.AsObject, } - export class GetContestedResourceVotersForIdentityRequestV0 extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; + export class GetPrefundedSpecializedBalanceRequestV0 extends jspb.Message { + getId(): Uint8Array | string; + getId_asU8(): Uint8Array; + getId_asB64(): string; + setId(value: Uint8Array | string): void; - getDocumentTypeName(): string; - setDocumentTypeName(value: string): void; + getProve(): boolean; + setProve(value: boolean): void; - getIndexName(): string; - setIndexName(value: string): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceRequestV0): GetPrefundedSpecializedBalanceRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceRequestV0; + static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceRequestV0, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceRequestV0; + } - clearIndexValuesList(): void; - getIndexValuesList(): Array; - getIndexValuesList_asU8(): Array; - getIndexValuesList_asB64(): Array; - setIndexValuesList(value: Array): void; - addIndexValues(value: Uint8Array | string, index?: number): Uint8Array | string; + export namespace GetPrefundedSpecializedBalanceRequestV0 { + export type AsObject = { + id: Uint8Array | string, + prove: boolean, + } + } - getContestantId(): Uint8Array | string; - getContestantId_asU8(): Uint8Array; - getContestantId_asB64(): string; - setContestantId(value: Uint8Array | string): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} - hasStartAtIdentifierInfo(): boolean; - clearStartAtIdentifierInfo(): void; - getStartAtIdentifierInfo(): GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo | undefined; - setStartAtIdentifierInfo(value?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo): void; +export class GetPrefundedSpecializedBalanceResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 | undefined; + setV0(value?: GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0): void; - hasCount(): boolean; - clearCount(): void; - getCount(): number; - setCount(value: number): void; + getVersionCase(): GetPrefundedSpecializedBalanceResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceResponse): GetPrefundedSpecializedBalanceResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceResponse; + static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceResponse, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceResponse; +} - getOrderAscending(): boolean; - setOrderAscending(value: boolean): void; +export namespace GetPrefundedSpecializedBalanceResponse { + export type AsObject = { + v0?: GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.AsObject, + } - getProve(): boolean; - setProve(value: boolean): void; + export class GetPrefundedSpecializedBalanceResponseV0 extends jspb.Message { + hasBalance(): boolean; + clearBalance(): void; + getBalance(): number; + setBalance(value: number): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetPrefundedSpecializedBalanceResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityRequestV0): GetContestedResourceVotersForIdentityRequestV0.AsObject; + toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceResponseV0): GetPrefundedSpecializedBalanceResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityRequestV0; - static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityRequestV0, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityRequestV0; + static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceResponseV0; + static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceResponseV0, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceResponseV0; } - export namespace GetContestedResourceVotersForIdentityRequestV0 { + export namespace GetPrefundedSpecializedBalanceResponseV0 { export type AsObject = { - contractId: Uint8Array | string, - documentTypeName: string, - indexName: string, - indexValuesList: Array, - contestantId: Uint8Array | string, - startAtIdentifierInfo?: GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.AsObject, - count: number, - orderAscending: boolean, - prove: boolean, + balance: number, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, } - export class StartAtIdentifierInfo extends jspb.Message { - getStartIdentifier(): Uint8Array | string; - getStartIdentifier_asU8(): Uint8Array; - getStartIdentifier_asB64(): string; - setStartIdentifier(value: Uint8Array | string): void; + export enum ResultCase { + RESULT_NOT_SET = 0, + BALANCE = 1, + PROOF = 2, + } + } - getStartIdentifierIncluded(): boolean; - setStartIdentifierIncluded(value: boolean): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetTotalCreditsInPlatformRequest extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 | undefined; + setV0(value?: GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0): void; + + getVersionCase(): GetTotalCreditsInPlatformRequest.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetTotalCreditsInPlatformRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformRequest): GetTotalCreditsInPlatformRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetTotalCreditsInPlatformRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformRequest; + static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformRequest, reader: jspb.BinaryReader): GetTotalCreditsInPlatformRequest; +} + +export namespace GetTotalCreditsInPlatformRequest { + export type AsObject = { + v0?: GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.AsObject, + } + + export class GetTotalCreditsInPlatformRequestV0 extends jspb.Message { + getProve(): boolean; + setProve(value: boolean): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StartAtIdentifierInfo.AsObject; - static toObject(includeInstance: boolean, msg: StartAtIdentifierInfo): StartAtIdentifierInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StartAtIdentifierInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StartAtIdentifierInfo; - static deserializeBinaryFromReader(message: StartAtIdentifierInfo, reader: jspb.BinaryReader): StartAtIdentifierInfo; - } + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetTotalCreditsInPlatformRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformRequestV0): GetTotalCreditsInPlatformRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetTotalCreditsInPlatformRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformRequestV0; + static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformRequestV0, reader: jspb.BinaryReader): GetTotalCreditsInPlatformRequestV0; + } - export namespace StartAtIdentifierInfo { - export type AsObject = { - startIdentifier: Uint8Array | string, - startIdentifierIncluded: boolean, - } + export namespace GetTotalCreditsInPlatformRequestV0 { + export type AsObject = { + prove: boolean, } } @@ -4146,33 +5124,33 @@ export namespace GetContestedResourceVotersForIdentityRequest { } } -export class GetContestedResourceVotersForIdentityResponse extends jspb.Message { +export class GetTotalCreditsInPlatformResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0 | undefined; - setV0(value?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0): void; + getV0(): GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 | undefined; + setV0(value?: GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0): void; - getVersionCase(): GetContestedResourceVotersForIdentityResponse.VersionCase; + getVersionCase(): GetTotalCreditsInPlatformResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityResponse): GetContestedResourceVotersForIdentityResponse.AsObject; + toObject(includeInstance?: boolean): GetTotalCreditsInPlatformResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformResponse): GetTotalCreditsInPlatformResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityResponse; - static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityResponse, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityResponse; + static serializeBinaryToWriter(message: GetTotalCreditsInPlatformResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformResponse; + static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformResponse, reader: jspb.BinaryReader): GetTotalCreditsInPlatformResponse; } -export namespace GetContestedResourceVotersForIdentityResponse { +export namespace GetTotalCreditsInPlatformResponse { export type AsObject = { - v0?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.AsObject, + v0?: GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.AsObject, } - export class GetContestedResourceVotersForIdentityResponseV0 extends jspb.Message { - hasContestedResourceVoters(): boolean; - clearContestedResourceVoters(): void; - getContestedResourceVoters(): GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters | undefined; - setContestedResourceVoters(value?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters): void; + export class GetTotalCreditsInPlatformResponseV0 extends jspb.Message { + hasCredits(): boolean; + clearCredits(): void; + getCredits(): number; + setCredits(value: number): void; hasProof(): boolean; clearProof(): void; @@ -4184,55 +5162,27 @@ export namespace GetContestedResourceVotersForIdentityResponse { getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetContestedResourceVotersForIdentityResponseV0.ResultCase; + getResultCase(): GetTotalCreditsInPlatformResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceVotersForIdentityResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceVotersForIdentityResponseV0): GetContestedResourceVotersForIdentityResponseV0.AsObject; + toObject(includeInstance?: boolean): GetTotalCreditsInPlatformResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformResponseV0): GetTotalCreditsInPlatformResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceVotersForIdentityResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceVotersForIdentityResponseV0; - static deserializeBinaryFromReader(message: GetContestedResourceVotersForIdentityResponseV0, reader: jspb.BinaryReader): GetContestedResourceVotersForIdentityResponseV0; + static serializeBinaryToWriter(message: GetTotalCreditsInPlatformResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformResponseV0; + static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformResponseV0, reader: jspb.BinaryReader): GetTotalCreditsInPlatformResponseV0; } - export namespace GetContestedResourceVotersForIdentityResponseV0 { + export namespace GetTotalCreditsInPlatformResponseV0 { export type AsObject = { - contestedResourceVoters?: GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.AsObject, + credits: number, proof?: Proof.AsObject, metadata?: ResponseMetadata.AsObject, } - export class ContestedResourceVoters extends jspb.Message { - clearVotersList(): void; - getVotersList(): Array; - getVotersList_asU8(): Array; - getVotersList_asB64(): Array; - setVotersList(value: Array): void; - addVoters(value: Uint8Array | string, index?: number): Uint8Array | string; - - getFinishedResults(): boolean; - setFinishedResults(value: boolean): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceVoters.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceVoters): ContestedResourceVoters.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceVoters, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceVoters; - static deserializeBinaryFromReader(message: ContestedResourceVoters, reader: jspb.BinaryReader): ContestedResourceVoters; - } - - export namespace ContestedResourceVoters { - export type AsObject = { - votersList: Array, - finishedResults: boolean, - } - } - export enum ResultCase { RESULT_NOT_SET = 0, - CONTESTED_RESOURCE_VOTERS = 1, + CREDITS = 1, PROOF = 2, } } @@ -4243,100 +5193,155 @@ export namespace GetContestedResourceVotersForIdentityResponse { } } -export class GetContestedResourceIdentityVotesRequest extends jspb.Message { +export class GetPathElementsRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0 | undefined; - setV0(value?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0): void; + getV0(): GetPathElementsRequest.GetPathElementsRequestV0 | undefined; + setV0(value?: GetPathElementsRequest.GetPathElementsRequestV0): void; - getVersionCase(): GetContestedResourceIdentityVotesRequest.VersionCase; + getVersionCase(): GetPathElementsRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesRequest): GetContestedResourceIdentityVotesRequest.AsObject; + toObject(includeInstance?: boolean): GetPathElementsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetPathElementsRequest): GetPathElementsRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesRequest; - static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesRequest, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesRequest; + static serializeBinaryToWriter(message: GetPathElementsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPathElementsRequest; + static deserializeBinaryFromReader(message: GetPathElementsRequest, reader: jspb.BinaryReader): GetPathElementsRequest; } -export namespace GetContestedResourceIdentityVotesRequest { +export namespace GetPathElementsRequest { export type AsObject = { - v0?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.AsObject, + v0?: GetPathElementsRequest.GetPathElementsRequestV0.AsObject, } - export class GetContestedResourceIdentityVotesRequestV0 extends jspb.Message { - getIdentityId(): Uint8Array | string; - getIdentityId_asU8(): Uint8Array; - getIdentityId_asB64(): string; - setIdentityId(value: Uint8Array | string): void; - - hasLimit(): boolean; - clearLimit(): void; - getLimit(): google_protobuf_wrappers_pb.UInt32Value | undefined; - setLimit(value?: google_protobuf_wrappers_pb.UInt32Value): void; - - hasOffset(): boolean; - clearOffset(): void; - getOffset(): google_protobuf_wrappers_pb.UInt32Value | undefined; - setOffset(value?: google_protobuf_wrappers_pb.UInt32Value): void; - - getOrderAscending(): boolean; - setOrderAscending(value: boolean): void; + export class GetPathElementsRequestV0 extends jspb.Message { + clearPathList(): void; + getPathList(): Array; + getPathList_asU8(): Array; + getPathList_asB64(): Array; + setPathList(value: Array): void; + addPath(value: Uint8Array | string, index?: number): Uint8Array | string; - hasStartAtVotePollIdInfo(): boolean; - clearStartAtVotePollIdInfo(): void; - getStartAtVotePollIdInfo(): GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo | undefined; - setStartAtVotePollIdInfo(value?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo): void; + clearKeysList(): void; + getKeysList(): Array; + getKeysList_asU8(): Array; + getKeysList_asB64(): Array; + setKeysList(value: Array): void; + addKeys(value: Uint8Array | string, index?: number): Uint8Array | string; getProve(): boolean; setProve(value: boolean): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesRequestV0): GetContestedResourceIdentityVotesRequestV0.AsObject; + toObject(includeInstance?: boolean): GetPathElementsRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetPathElementsRequestV0): GetPathElementsRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesRequestV0; - static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesRequestV0, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesRequestV0; + static serializeBinaryToWriter(message: GetPathElementsRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPathElementsRequestV0; + static deserializeBinaryFromReader(message: GetPathElementsRequestV0, reader: jspb.BinaryReader): GetPathElementsRequestV0; } - export namespace GetContestedResourceIdentityVotesRequestV0 { + export namespace GetPathElementsRequestV0 { export type AsObject = { - identityId: Uint8Array | string, - limit?: google_protobuf_wrappers_pb.UInt32Value.AsObject, - offset?: google_protobuf_wrappers_pb.UInt32Value.AsObject, - orderAscending: boolean, - startAtVotePollIdInfo?: GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.AsObject, + pathList: Array, + keysList: Array, prove: boolean, } + } - export class StartAtVotePollIdInfo extends jspb.Message { - getStartAtPollIdentifier(): Uint8Array | string; - getStartAtPollIdentifier_asU8(): Uint8Array; - getStartAtPollIdentifier_asB64(): string; - setStartAtPollIdentifier(value: Uint8Array | string): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} - getStartPollIdentifierIncluded(): boolean; - setStartPollIdentifierIncluded(value: boolean): void; +export class GetPathElementsResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetPathElementsResponse.GetPathElementsResponseV0 | undefined; + setV0(value?: GetPathElementsResponse.GetPathElementsResponseV0): void; + + getVersionCase(): GetPathElementsResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetPathElementsResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetPathElementsResponse): GetPathElementsResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetPathElementsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPathElementsResponse; + static deserializeBinaryFromReader(message: GetPathElementsResponse, reader: jspb.BinaryReader): GetPathElementsResponse; +} + +export namespace GetPathElementsResponse { + export type AsObject = { + v0?: GetPathElementsResponse.GetPathElementsResponseV0.AsObject, + } + + export class GetPathElementsResponseV0 extends jspb.Message { + hasElements(): boolean; + clearElements(): void; + getElements(): GetPathElementsResponse.GetPathElementsResponseV0.Elements | undefined; + setElements(value?: GetPathElementsResponse.GetPathElementsResponseV0.Elements): void; + + hasProof(): boolean; + clearProof(): void; + getProof(): Proof | undefined; + setProof(value?: Proof): void; + + hasMetadata(): boolean; + clearMetadata(): void; + getMetadata(): ResponseMetadata | undefined; + setMetadata(value?: ResponseMetadata): void; + + getResultCase(): GetPathElementsResponseV0.ResultCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetPathElementsResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetPathElementsResponseV0): GetPathElementsResponseV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetPathElementsResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPathElementsResponseV0; + static deserializeBinaryFromReader(message: GetPathElementsResponseV0, reader: jspb.BinaryReader): GetPathElementsResponseV0; + } + + export namespace GetPathElementsResponseV0 { + export type AsObject = { + elements?: GetPathElementsResponse.GetPathElementsResponseV0.Elements.AsObject, + proof?: Proof.AsObject, + metadata?: ResponseMetadata.AsObject, + } + + export class Elements extends jspb.Message { + clearElementsList(): void; + getElementsList(): Array; + getElementsList_asU8(): Array; + getElementsList_asB64(): Array; + setElementsList(value: Array): void; + addElements(value: Uint8Array | string, index?: number): Uint8Array | string; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StartAtVotePollIdInfo.AsObject; - static toObject(includeInstance: boolean, msg: StartAtVotePollIdInfo): StartAtVotePollIdInfo.AsObject; + toObject(includeInstance?: boolean): Elements.AsObject; + static toObject(includeInstance: boolean, msg: Elements): Elements.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: StartAtVotePollIdInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StartAtVotePollIdInfo; - static deserializeBinaryFromReader(message: StartAtVotePollIdInfo, reader: jspb.BinaryReader): StartAtVotePollIdInfo; + static serializeBinaryToWriter(message: Elements, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Elements; + static deserializeBinaryFromReader(message: Elements, reader: jspb.BinaryReader): Elements; } - export namespace StartAtVotePollIdInfo { + export namespace Elements { export type AsObject = { - startAtPollIdentifier: Uint8Array | string, - startPollIdentifierIncluded: boolean, + elementsList: Array, } } + + export enum ResultCase { + RESULT_NOT_SET = 0, + ELEMENTS = 1, + PROOF = 2, + } } export enum VersionCase { @@ -4345,291 +5350,463 @@ export namespace GetContestedResourceIdentityVotesRequest { } } -export class GetContestedResourceIdentityVotesResponse extends jspb.Message { +export class GetStatusRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0 | undefined; - setV0(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0): void; + getV0(): GetStatusRequest.GetStatusRequestV0 | undefined; + setV0(value?: GetStatusRequest.GetStatusRequestV0): void; - getVersionCase(): GetContestedResourceIdentityVotesResponse.VersionCase; + getVersionCase(): GetStatusRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesResponse): GetContestedResourceIdentityVotesResponse.AsObject; + toObject(includeInstance?: boolean): GetStatusRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetStatusRequest): GetStatusRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesResponse; - static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesResponse, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesResponse; + static serializeBinaryToWriter(message: GetStatusRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetStatusRequest; + static deserializeBinaryFromReader(message: GetStatusRequest, reader: jspb.BinaryReader): GetStatusRequest; } -export namespace GetContestedResourceIdentityVotesResponse { +export namespace GetStatusRequest { export type AsObject = { - v0?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.AsObject, + v0?: GetStatusRequest.GetStatusRequestV0.AsObject, } - export class GetContestedResourceIdentityVotesResponseV0 extends jspb.Message { - hasVotes(): boolean; - clearVotes(): void; - getVotes(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes | undefined; - setVotes(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes): void; + export class GetStatusRequestV0 extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetStatusRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetStatusRequestV0): GetStatusRequestV0.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetStatusRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetStatusRequestV0; + static deserializeBinaryFromReader(message: GetStatusRequestV0, reader: jspb.BinaryReader): GetStatusRequestV0; + } - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + export namespace GetStatusRequestV0 { + export type AsObject = { + } + } - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + export enum VersionCase { + VERSION_NOT_SET = 0, + V0 = 1, + } +} + +export class GetStatusResponse extends jspb.Message { + hasV0(): boolean; + clearV0(): void; + getV0(): GetStatusResponse.GetStatusResponseV0 | undefined; + setV0(value?: GetStatusResponse.GetStatusResponseV0): void; + + getVersionCase(): GetStatusResponse.VersionCase; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetStatusResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetStatusResponse): GetStatusResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetStatusResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetStatusResponse; + static deserializeBinaryFromReader(message: GetStatusResponse, reader: jspb.BinaryReader): GetStatusResponse; +} + +export namespace GetStatusResponse { + export type AsObject = { + v0?: GetStatusResponse.GetStatusResponseV0.AsObject, + } + + export class GetStatusResponseV0 extends jspb.Message { + hasVersion(): boolean; + clearVersion(): void; + getVersion(): GetStatusResponse.GetStatusResponseV0.Version | undefined; + setVersion(value?: GetStatusResponse.GetStatusResponseV0.Version): void; + + hasNode(): boolean; + clearNode(): void; + getNode(): GetStatusResponse.GetStatusResponseV0.Node | undefined; + setNode(value?: GetStatusResponse.GetStatusResponseV0.Node): void; + + hasChain(): boolean; + clearChain(): void; + getChain(): GetStatusResponse.GetStatusResponseV0.Chain | undefined; + setChain(value?: GetStatusResponse.GetStatusResponseV0.Chain): void; + + hasNetwork(): boolean; + clearNetwork(): void; + getNetwork(): GetStatusResponse.GetStatusResponseV0.Network | undefined; + setNetwork(value?: GetStatusResponse.GetStatusResponseV0.Network): void; + + hasStateSync(): boolean; + clearStateSync(): void; + getStateSync(): GetStatusResponse.GetStatusResponseV0.StateSync | undefined; + setStateSync(value?: GetStatusResponse.GetStatusResponseV0.StateSync): void; + + hasTime(): boolean; + clearTime(): void; + getTime(): GetStatusResponse.GetStatusResponseV0.Time | undefined; + setTime(value?: GetStatusResponse.GetStatusResponseV0.Time): void; - getResultCase(): GetContestedResourceIdentityVotesResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetContestedResourceIdentityVotesResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetContestedResourceIdentityVotesResponseV0): GetContestedResourceIdentityVotesResponseV0.AsObject; + toObject(includeInstance?: boolean): GetStatusResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetStatusResponseV0): GetStatusResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetContestedResourceIdentityVotesResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetContestedResourceIdentityVotesResponseV0; - static deserializeBinaryFromReader(message: GetContestedResourceIdentityVotesResponseV0, reader: jspb.BinaryReader): GetContestedResourceIdentityVotesResponseV0; + static serializeBinaryToWriter(message: GetStatusResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetStatusResponseV0; + static deserializeBinaryFromReader(message: GetStatusResponseV0, reader: jspb.BinaryReader): GetStatusResponseV0; } - export namespace GetContestedResourceIdentityVotesResponseV0 { + export namespace GetStatusResponseV0 { export type AsObject = { - votes?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.AsObject, - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, + version?: GetStatusResponse.GetStatusResponseV0.Version.AsObject, + node?: GetStatusResponse.GetStatusResponseV0.Node.AsObject, + chain?: GetStatusResponse.GetStatusResponseV0.Chain.AsObject, + network?: GetStatusResponse.GetStatusResponseV0.Network.AsObject, + stateSync?: GetStatusResponse.GetStatusResponseV0.StateSync.AsObject, + time?: GetStatusResponse.GetStatusResponseV0.Time.AsObject, } - export class ContestedResourceIdentityVotes extends jspb.Message { - clearContestedResourceIdentityVotesList(): void; - getContestedResourceIdentityVotesList(): Array; - setContestedResourceIdentityVotesList(value: Array): void; - addContestedResourceIdentityVotes(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, index?: number): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + export class Version extends jspb.Message { + hasSoftware(): boolean; + clearSoftware(): void; + getSoftware(): GetStatusResponse.GetStatusResponseV0.Version.Software | undefined; + setSoftware(value?: GetStatusResponse.GetStatusResponseV0.Version.Software): void; - getFinishedResults(): boolean; - setFinishedResults(value: boolean): void; + hasProtocol(): boolean; + clearProtocol(): void; + getProtocol(): GetStatusResponse.GetStatusResponseV0.Version.Protocol | undefined; + setProtocol(value?: GetStatusResponse.GetStatusResponseV0.Version.Protocol): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceIdentityVotes.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceIdentityVotes): ContestedResourceIdentityVotes.AsObject; + toObject(includeInstance?: boolean): Version.AsObject; + static toObject(includeInstance: boolean, msg: Version): Version.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceIdentityVotes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceIdentityVotes; - static deserializeBinaryFromReader(message: ContestedResourceIdentityVotes, reader: jspb.BinaryReader): ContestedResourceIdentityVotes; + static serializeBinaryToWriter(message: Version, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Version; + static deserializeBinaryFromReader(message: Version, reader: jspb.BinaryReader): Version; } - export namespace ContestedResourceIdentityVotes { + export namespace Version { export type AsObject = { - contestedResourceIdentityVotesList: Array, - finishedResults: boolean, + software?: GetStatusResponse.GetStatusResponseV0.Version.Software.AsObject, + protocol?: GetStatusResponse.GetStatusResponseV0.Version.Protocol.AsObject, } - } - export class ResourceVoteChoice extends jspb.Message { - getVoteChoiceType(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap]; - setVoteChoiceType(value: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap]): void; + export class Software extends jspb.Message { + getDapi(): string; + setDapi(value: string): void; - hasIdentityId(): boolean; - clearIdentityId(): void; - getIdentityId(): Uint8Array | string; - getIdentityId_asU8(): Uint8Array; - getIdentityId_asB64(): string; - setIdentityId(value: Uint8Array | string): void; + hasDrive(): boolean; + clearDrive(): void; + getDrive(): string; + setDrive(value: string): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ResourceVoteChoice.AsObject; - static toObject(includeInstance: boolean, msg: ResourceVoteChoice): ResourceVoteChoice.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ResourceVoteChoice, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ResourceVoteChoice; - static deserializeBinaryFromReader(message: ResourceVoteChoice, reader: jspb.BinaryReader): ResourceVoteChoice; - } + hasTenderdash(): boolean; + clearTenderdash(): void; + getTenderdash(): string; + setTenderdash(value: string): void; - export namespace ResourceVoteChoice { - export type AsObject = { - voteChoiceType: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap[keyof GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceTypeMap], - identityId: Uint8Array | string, + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Software.AsObject; + static toObject(includeInstance: boolean, msg: Software): Software.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Software, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Software; + static deserializeBinaryFromReader(message: Software, reader: jspb.BinaryReader): Software; } - export interface VoteChoiceTypeMap { - TOWARDS_IDENTITY: 0; - ABSTAIN: 1; - LOCK: 2; + export namespace Software { + export type AsObject = { + dapi: string, + drive: string, + tenderdash: string, + } } - export const VoteChoiceType: VoteChoiceTypeMap; + export class Protocol extends jspb.Message { + hasTenderdash(): boolean; + clearTenderdash(): void; + getTenderdash(): GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash | undefined; + setTenderdash(value?: GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash): void; + + hasDrive(): boolean; + clearDrive(): void; + getDrive(): GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive | undefined; + setDrive(value?: GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Protocol.AsObject; + static toObject(includeInstance: boolean, msg: Protocol): Protocol.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Protocol, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Protocol; + static deserializeBinaryFromReader(message: Protocol, reader: jspb.BinaryReader): Protocol; + } + + export namespace Protocol { + export type AsObject = { + tenderdash?: GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.AsObject, + drive?: GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.AsObject, + } + + export class Tenderdash extends jspb.Message { + getP2p(): number; + setP2p(value: number): void; + + getBlock(): number; + setBlock(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Tenderdash.AsObject; + static toObject(includeInstance: boolean, msg: Tenderdash): Tenderdash.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Tenderdash, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Tenderdash; + static deserializeBinaryFromReader(message: Tenderdash, reader: jspb.BinaryReader): Tenderdash; + } + + export namespace Tenderdash { + export type AsObject = { + p2p: number, + block: number, + } + } + + export class Drive extends jspb.Message { + getLatest(): number; + setLatest(value: number): void; + + getCurrent(): number; + setCurrent(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Drive.AsObject; + static toObject(includeInstance: boolean, msg: Drive): Drive.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Drive, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Drive; + static deserializeBinaryFromReader(message: Drive, reader: jspb.BinaryReader): Drive; + } + + export namespace Drive { + export type AsObject = { + latest: number, + current: number, + } + } + } } - export class ContestedResourceIdentityVote extends jspb.Message { - getContractId(): Uint8Array | string; - getContractId_asU8(): Uint8Array; - getContractId_asB64(): string; - setContractId(value: Uint8Array | string): void; + export class Time extends jspb.Message { + getLocal(): number; + setLocal(value: number): void; - getDocumentTypeName(): string; - setDocumentTypeName(value: string): void; + hasBlock(): boolean; + clearBlock(): void; + getBlock(): number; + setBlock(value: number): void; - clearSerializedIndexStorageValuesList(): void; - getSerializedIndexStorageValuesList(): Array; - getSerializedIndexStorageValuesList_asU8(): Array; - getSerializedIndexStorageValuesList_asB64(): Array; - setSerializedIndexStorageValuesList(value: Array): void; - addSerializedIndexStorageValues(value: Uint8Array | string, index?: number): Uint8Array | string; + hasGenesis(): boolean; + clearGenesis(): void; + getGenesis(): number; + setGenesis(value: number): void; - hasVoteChoice(): boolean; - clearVoteChoice(): void; - getVoteChoice(): GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice | undefined; - setVoteChoice(value?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice): void; + hasEpoch(): boolean; + clearEpoch(): void; + getEpoch(): number; + setEpoch(value: number): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ContestedResourceIdentityVote.AsObject; - static toObject(includeInstance: boolean, msg: ContestedResourceIdentityVote): ContestedResourceIdentityVote.AsObject; + toObject(includeInstance?: boolean): Time.AsObject; + static toObject(includeInstance: boolean, msg: Time): Time.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ContestedResourceIdentityVote, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ContestedResourceIdentityVote; - static deserializeBinaryFromReader(message: ContestedResourceIdentityVote, reader: jspb.BinaryReader): ContestedResourceIdentityVote; + static serializeBinaryToWriter(message: Time, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Time; + static deserializeBinaryFromReader(message: Time, reader: jspb.BinaryReader): Time; } - export namespace ContestedResourceIdentityVote { + export namespace Time { export type AsObject = { - contractId: Uint8Array | string, - documentTypeName: string, - serializedIndexStorageValuesList: Array, - voteChoice?: GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.AsObject, + local: number, + block: number, + genesis: number, + epoch: number, } } - export enum ResultCase { - RESULT_NOT_SET = 0, - VOTES = 1, - PROOF = 2, + export class Node extends jspb.Message { + getId(): Uint8Array | string; + getId_asU8(): Uint8Array; + getId_asB64(): string; + setId(value: Uint8Array | string): void; + + hasProTxHash(): boolean; + clearProTxHash(): void; + getProTxHash(): Uint8Array | string; + getProTxHash_asU8(): Uint8Array; + getProTxHash_asB64(): string; + setProTxHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Node.AsObject; + static toObject(includeInstance: boolean, msg: Node): Node.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Node, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Node; + static deserializeBinaryFromReader(message: Node, reader: jspb.BinaryReader): Node; } - } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} + export namespace Node { + export type AsObject = { + id: Uint8Array | string, + proTxHash: Uint8Array | string, + } + } -export class GetPrefundedSpecializedBalanceRequest extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0 | undefined; - setV0(value?: GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0): void; + export class Chain extends jspb.Message { + getCatchingUp(): boolean; + setCatchingUp(value: boolean): void; - getVersionCase(): GetPrefundedSpecializedBalanceRequest.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceRequest): GetPrefundedSpecializedBalanceRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceRequest; - static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceRequest, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceRequest; -} + getLatestBlockHash(): Uint8Array | string; + getLatestBlockHash_asU8(): Uint8Array; + getLatestBlockHash_asB64(): string; + setLatestBlockHash(value: Uint8Array | string): void; -export namespace GetPrefundedSpecializedBalanceRequest { - export type AsObject = { - v0?: GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.AsObject, - } + getLatestAppHash(): Uint8Array | string; + getLatestAppHash_asU8(): Uint8Array; + getLatestAppHash_asB64(): string; + setLatestAppHash(value: Uint8Array | string): void; - export class GetPrefundedSpecializedBalanceRequestV0 extends jspb.Message { - getId(): Uint8Array | string; - getId_asU8(): Uint8Array; - getId_asB64(): string; - setId(value: Uint8Array | string): void; + getLatestBlockHeight(): number; + setLatestBlockHeight(value: number): void; - getProve(): boolean; - setProve(value: boolean): void; + getEarliestBlockHash(): Uint8Array | string; + getEarliestBlockHash_asU8(): Uint8Array; + getEarliestBlockHash_asB64(): string; + setEarliestBlockHash(value: Uint8Array | string): void; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceRequestV0): GetPrefundedSpecializedBalanceRequestV0.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceRequestV0; - static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceRequestV0, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceRequestV0; - } + getEarliestAppHash(): Uint8Array | string; + getEarliestAppHash_asU8(): Uint8Array; + getEarliestAppHash_asB64(): string; + setEarliestAppHash(value: Uint8Array | string): void; + + getEarliestBlockHeight(): number; + setEarliestBlockHeight(value: number): void; + + getMaxPeerBlockHeight(): number; + setMaxPeerBlockHeight(value: number): void; + + hasCoreChainLockedHeight(): boolean; + clearCoreChainLockedHeight(): void; + getCoreChainLockedHeight(): number; + setCoreChainLockedHeight(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Chain.AsObject; + static toObject(includeInstance: boolean, msg: Chain): Chain.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Chain, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Chain; + static deserializeBinaryFromReader(message: Chain, reader: jspb.BinaryReader): Chain; + } + + export namespace Chain { + export type AsObject = { + catchingUp: boolean, + latestBlockHash: Uint8Array | string, + latestAppHash: Uint8Array | string, + latestBlockHeight: number, + earliestBlockHash: Uint8Array | string, + earliestAppHash: Uint8Array | string, + earliestBlockHeight: number, + maxPeerBlockHeight: number, + coreChainLockedHeight: number, + } + } + + export class Network extends jspb.Message { + getChainId(): string; + setChainId(value: string): void; + + getPeersCount(): number; + setPeersCount(value: number): void; + + getListening(): boolean; + setListening(value: boolean): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Network.AsObject; + static toObject(includeInstance: boolean, msg: Network): Network.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Network, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Network; + static deserializeBinaryFromReader(message: Network, reader: jspb.BinaryReader): Network; + } - export namespace GetPrefundedSpecializedBalanceRequestV0 { - export type AsObject = { - id: Uint8Array | string, - prove: boolean, + export namespace Network { + export type AsObject = { + chainId: string, + peersCount: number, + listening: boolean, + } } - } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} + export class StateSync extends jspb.Message { + getTotalSyncedTime(): number; + setTotalSyncedTime(value: number): void; -export class GetPrefundedSpecializedBalanceResponse extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0 | undefined; - setV0(value?: GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0): void; + getRemainingTime(): number; + setRemainingTime(value: number): void; - getVersionCase(): GetPrefundedSpecializedBalanceResponse.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceResponse): GetPrefundedSpecializedBalanceResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceResponse; - static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceResponse, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceResponse; -} + getTotalSnapshots(): number; + setTotalSnapshots(value: number): void; -export namespace GetPrefundedSpecializedBalanceResponse { - export type AsObject = { - v0?: GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.AsObject, - } + getChunkProcessAvgTime(): number; + setChunkProcessAvgTime(value: number): void; - export class GetPrefundedSpecializedBalanceResponseV0 extends jspb.Message { - hasBalance(): boolean; - clearBalance(): void; - getBalance(): number; - setBalance(value: number): void; + getSnapshotHeight(): number; + setSnapshotHeight(value: number): void; - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + getSnapshotChunksCount(): number; + setSnapshotChunksCount(value: number): void; - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + getBackfilledBlocks(): number; + setBackfilledBlocks(value: number): void; - getResultCase(): GetPrefundedSpecializedBalanceResponseV0.ResultCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPrefundedSpecializedBalanceResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetPrefundedSpecializedBalanceResponseV0): GetPrefundedSpecializedBalanceResponseV0.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPrefundedSpecializedBalanceResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPrefundedSpecializedBalanceResponseV0; - static deserializeBinaryFromReader(message: GetPrefundedSpecializedBalanceResponseV0, reader: jspb.BinaryReader): GetPrefundedSpecializedBalanceResponseV0; - } + getBackfillBlocksTotal(): number; + setBackfillBlocksTotal(value: number): void; - export namespace GetPrefundedSpecializedBalanceResponseV0 { - export type AsObject = { - balance: number, - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StateSync.AsObject; + static toObject(includeInstance: boolean, msg: StateSync): StateSync.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StateSync, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StateSync; + static deserializeBinaryFromReader(message: StateSync, reader: jspb.BinaryReader): StateSync; } - export enum ResultCase { - RESULT_NOT_SET = 0, - BALANCE = 1, - PROOF = 2, + export namespace StateSync { + export type AsObject = { + totalSyncedTime: number, + remainingTime: number, + totalSnapshots: number, + chunkProcessAvgTime: number, + snapshotHeight: number, + snapshotChunksCount: number, + backfilledBlocks: number, + backfillBlocksTotal: number, + } } } @@ -4639,45 +5816,41 @@ export namespace GetPrefundedSpecializedBalanceResponse { } } -export class GetTotalCreditsInPlatformRequest extends jspb.Message { +export class GetCurrentQuorumsInfoRequest extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0 | undefined; - setV0(value?: GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0): void; + getV0(): GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 | undefined; + setV0(value?: GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0): void; - getVersionCase(): GetTotalCreditsInPlatformRequest.VersionCase; + getVersionCase(): GetCurrentQuorumsInfoRequest.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetTotalCreditsInPlatformRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformRequest): GetTotalCreditsInPlatformRequest.AsObject; + toObject(includeInstance?: boolean): GetCurrentQuorumsInfoRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetCurrentQuorumsInfoRequest): GetCurrentQuorumsInfoRequest.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetTotalCreditsInPlatformRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformRequest; - static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformRequest, reader: jspb.BinaryReader): GetTotalCreditsInPlatformRequest; + static serializeBinaryToWriter(message: GetCurrentQuorumsInfoRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCurrentQuorumsInfoRequest; + static deserializeBinaryFromReader(message: GetCurrentQuorumsInfoRequest, reader: jspb.BinaryReader): GetCurrentQuorumsInfoRequest; } -export namespace GetTotalCreditsInPlatformRequest { +export namespace GetCurrentQuorumsInfoRequest { export type AsObject = { - v0?: GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.AsObject, + v0?: GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.AsObject, } - export class GetTotalCreditsInPlatformRequestV0 extends jspb.Message { - getProve(): boolean; - setProve(value: boolean): void; - + export class GetCurrentQuorumsInfoRequestV0 extends jspb.Message { serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetTotalCreditsInPlatformRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformRequestV0): GetTotalCreditsInPlatformRequestV0.AsObject; + toObject(includeInstance?: boolean): GetCurrentQuorumsInfoRequestV0.AsObject; + static toObject(includeInstance: boolean, msg: GetCurrentQuorumsInfoRequestV0): GetCurrentQuorumsInfoRequestV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetTotalCreditsInPlatformRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformRequestV0; - static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformRequestV0, reader: jspb.BinaryReader): GetTotalCreditsInPlatformRequestV0; + static serializeBinaryToWriter(message: GetCurrentQuorumsInfoRequestV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCurrentQuorumsInfoRequestV0; + static deserializeBinaryFromReader(message: GetCurrentQuorumsInfoRequestV0, reader: jspb.BinaryReader): GetCurrentQuorumsInfoRequestV0; } - export namespace GetTotalCreditsInPlatformRequestV0 { + export namespace GetCurrentQuorumsInfoRequestV0 { export type AsObject = { - prove: boolean, } } @@ -4687,224 +5860,142 @@ export namespace GetTotalCreditsInPlatformRequest { } } -export class GetTotalCreditsInPlatformResponse extends jspb.Message { +export class GetCurrentQuorumsInfoResponse extends jspb.Message { hasV0(): boolean; clearV0(): void; - getV0(): GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0 | undefined; - setV0(value?: GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0): void; + getV0(): GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 | undefined; + setV0(value?: GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0): void; - getVersionCase(): GetTotalCreditsInPlatformResponse.VersionCase; + getVersionCase(): GetCurrentQuorumsInfoResponse.VersionCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetTotalCreditsInPlatformResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformResponse): GetTotalCreditsInPlatformResponse.AsObject; + toObject(includeInstance?: boolean): GetCurrentQuorumsInfoResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetCurrentQuorumsInfoResponse): GetCurrentQuorumsInfoResponse.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetTotalCreditsInPlatformResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformResponse; - static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformResponse, reader: jspb.BinaryReader): GetTotalCreditsInPlatformResponse; + static serializeBinaryToWriter(message: GetCurrentQuorumsInfoResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCurrentQuorumsInfoResponse; + static deserializeBinaryFromReader(message: GetCurrentQuorumsInfoResponse, reader: jspb.BinaryReader): GetCurrentQuorumsInfoResponse; } -export namespace GetTotalCreditsInPlatformResponse { +export namespace GetCurrentQuorumsInfoResponse { export type AsObject = { - v0?: GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.AsObject, + v0?: GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.AsObject, } - export class GetTotalCreditsInPlatformResponseV0 extends jspb.Message { - hasCredits(): boolean; - clearCredits(): void; - getCredits(): number; - setCredits(value: number): void; + export class ValidatorV0 extends jspb.Message { + getProTxHash(): Uint8Array | string; + getProTxHash_asU8(): Uint8Array; + getProTxHash_asB64(): string; + setProTxHash(value: Uint8Array | string): void; - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + getNodeIp(): string; + setNodeIp(value: string): void; - hasMetadata(): boolean; - clearMetadata(): void; - getMetadata(): ResponseMetadata | undefined; - setMetadata(value?: ResponseMetadata): void; + getIsBanned(): boolean; + setIsBanned(value: boolean): void; - getResultCase(): GetTotalCreditsInPlatformResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetTotalCreditsInPlatformResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetTotalCreditsInPlatformResponseV0): GetTotalCreditsInPlatformResponseV0.AsObject; + toObject(includeInstance?: boolean): ValidatorV0.AsObject; + static toObject(includeInstance: boolean, msg: ValidatorV0): ValidatorV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetTotalCreditsInPlatformResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetTotalCreditsInPlatformResponseV0; - static deserializeBinaryFromReader(message: GetTotalCreditsInPlatformResponseV0, reader: jspb.BinaryReader): GetTotalCreditsInPlatformResponseV0; + static serializeBinaryToWriter(message: ValidatorV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ValidatorV0; + static deserializeBinaryFromReader(message: ValidatorV0, reader: jspb.BinaryReader): ValidatorV0; } - export namespace GetTotalCreditsInPlatformResponseV0 { + export namespace ValidatorV0 { export type AsObject = { - credits: number, - proof?: Proof.AsObject, - metadata?: ResponseMetadata.AsObject, - } - - export enum ResultCase { - RESULT_NOT_SET = 0, - CREDITS = 1, - PROOF = 2, + proTxHash: Uint8Array | string, + nodeIp: string, + isBanned: boolean, } } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} - -export class GetPathElementsRequest extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetPathElementsRequest.GetPathElementsRequestV0 | undefined; - setV0(value?: GetPathElementsRequest.GetPathElementsRequestV0): void; - - getVersionCase(): GetPathElementsRequest.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPathElementsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetPathElementsRequest): GetPathElementsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPathElementsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPathElementsRequest; - static deserializeBinaryFromReader(message: GetPathElementsRequest, reader: jspb.BinaryReader): GetPathElementsRequest; -} - -export namespace GetPathElementsRequest { - export type AsObject = { - v0?: GetPathElementsRequest.GetPathElementsRequestV0.AsObject, - } + export class ValidatorSetV0 extends jspb.Message { + getQuorumHash(): Uint8Array | string; + getQuorumHash_asU8(): Uint8Array; + getQuorumHash_asB64(): string; + setQuorumHash(value: Uint8Array | string): void; - export class GetPathElementsRequestV0 extends jspb.Message { - clearPathList(): void; - getPathList(): Array; - getPathList_asU8(): Array; - getPathList_asB64(): Array; - setPathList(value: Array): void; - addPath(value: Uint8Array | string, index?: number): Uint8Array | string; + getCoreHeight(): number; + setCoreHeight(value: number): void; - clearKeysList(): void; - getKeysList(): Array; - getKeysList_asU8(): Array; - getKeysList_asB64(): Array; - setKeysList(value: Array): void; - addKeys(value: Uint8Array | string, index?: number): Uint8Array | string; + clearMembersList(): void; + getMembersList(): Array; + setMembersList(value: Array): void; + addMembers(value?: GetCurrentQuorumsInfoResponse.ValidatorV0, index?: number): GetCurrentQuorumsInfoResponse.ValidatorV0; - getProve(): boolean; - setProve(value: boolean): void; + getThresholdPublicKey(): Uint8Array | string; + getThresholdPublicKey_asU8(): Uint8Array; + getThresholdPublicKey_asB64(): string; + setThresholdPublicKey(value: Uint8Array | string): void; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPathElementsRequestV0.AsObject; - static toObject(includeInstance: boolean, msg: GetPathElementsRequestV0): GetPathElementsRequestV0.AsObject; + toObject(includeInstance?: boolean): ValidatorSetV0.AsObject; + static toObject(includeInstance: boolean, msg: ValidatorSetV0): ValidatorSetV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPathElementsRequestV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPathElementsRequestV0; - static deserializeBinaryFromReader(message: GetPathElementsRequestV0, reader: jspb.BinaryReader): GetPathElementsRequestV0; + static serializeBinaryToWriter(message: ValidatorSetV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ValidatorSetV0; + static deserializeBinaryFromReader(message: ValidatorSetV0, reader: jspb.BinaryReader): ValidatorSetV0; } - export namespace GetPathElementsRequestV0 { + export namespace ValidatorSetV0 { export type AsObject = { - pathList: Array, - keysList: Array, - prove: boolean, + quorumHash: Uint8Array | string, + coreHeight: number, + membersList: Array, + thresholdPublicKey: Uint8Array | string, } } - export enum VersionCase { - VERSION_NOT_SET = 0, - V0 = 1, - } -} - -export class GetPathElementsResponse extends jspb.Message { - hasV0(): boolean; - clearV0(): void; - getV0(): GetPathElementsResponse.GetPathElementsResponseV0 | undefined; - setV0(value?: GetPathElementsResponse.GetPathElementsResponseV0): void; - - getVersionCase(): GetPathElementsResponse.VersionCase; - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPathElementsResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetPathElementsResponse): GetPathElementsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPathElementsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPathElementsResponse; - static deserializeBinaryFromReader(message: GetPathElementsResponse, reader: jspb.BinaryReader): GetPathElementsResponse; -} + export class GetCurrentQuorumsInfoResponseV0 extends jspb.Message { + clearQuorumHashesList(): void; + getQuorumHashesList(): Array; + getQuorumHashesList_asU8(): Array; + getQuorumHashesList_asB64(): Array; + setQuorumHashesList(value: Array): void; + addQuorumHashes(value: Uint8Array | string, index?: number): Uint8Array | string; -export namespace GetPathElementsResponse { - export type AsObject = { - v0?: GetPathElementsResponse.GetPathElementsResponseV0.AsObject, - } + getCurrentQuorumHash(): Uint8Array | string; + getCurrentQuorumHash_asU8(): Uint8Array; + getCurrentQuorumHash_asB64(): string; + setCurrentQuorumHash(value: Uint8Array | string): void; - export class GetPathElementsResponseV0 extends jspb.Message { - hasElements(): boolean; - clearElements(): void; - getElements(): GetPathElementsResponse.GetPathElementsResponseV0.Elements | undefined; - setElements(value?: GetPathElementsResponse.GetPathElementsResponseV0.Elements): void; + clearValidatorSetsList(): void; + getValidatorSetsList(): Array; + setValidatorSetsList(value: Array): void; + addValidatorSets(value?: GetCurrentQuorumsInfoResponse.ValidatorSetV0, index?: number): GetCurrentQuorumsInfoResponse.ValidatorSetV0; - hasProof(): boolean; - clearProof(): void; - getProof(): Proof | undefined; - setProof(value?: Proof): void; + getLastBlockProposer(): Uint8Array | string; + getLastBlockProposer_asU8(): Uint8Array; + getLastBlockProposer_asB64(): string; + setLastBlockProposer(value: Uint8Array | string): void; hasMetadata(): boolean; clearMetadata(): void; getMetadata(): ResponseMetadata | undefined; setMetadata(value?: ResponseMetadata): void; - getResultCase(): GetPathElementsResponseV0.ResultCase; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetPathElementsResponseV0.AsObject; - static toObject(includeInstance: boolean, msg: GetPathElementsResponseV0): GetPathElementsResponseV0.AsObject; + toObject(includeInstance?: boolean): GetCurrentQuorumsInfoResponseV0.AsObject; + static toObject(includeInstance: boolean, msg: GetCurrentQuorumsInfoResponseV0): GetCurrentQuorumsInfoResponseV0.AsObject; static extensions: {[key: number]: jspb.ExtensionFieldInfo}; static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetPathElementsResponseV0, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetPathElementsResponseV0; - static deserializeBinaryFromReader(message: GetPathElementsResponseV0, reader: jspb.BinaryReader): GetPathElementsResponseV0; + static serializeBinaryToWriter(message: GetCurrentQuorumsInfoResponseV0, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCurrentQuorumsInfoResponseV0; + static deserializeBinaryFromReader(message: GetCurrentQuorumsInfoResponseV0, reader: jspb.BinaryReader): GetCurrentQuorumsInfoResponseV0; } - export namespace GetPathElementsResponseV0 { + export namespace GetCurrentQuorumsInfoResponseV0 { export type AsObject = { - elements?: GetPathElementsResponse.GetPathElementsResponseV0.Elements.AsObject, - proof?: Proof.AsObject, + quorumHashesList: Array, + currentQuorumHash: Uint8Array | string, + validatorSetsList: Array, + lastBlockProposer: Uint8Array | string, metadata?: ResponseMetadata.AsObject, } - - export class Elements extends jspb.Message { - clearElementsList(): void; - getElementsList(): Array; - getElementsList_asU8(): Array; - getElementsList_asB64(): Array; - setElementsList(value: Array): void; - addElements(value: Uint8Array | string, index?: number): Uint8Array | string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Elements.AsObject; - static toObject(includeInstance: boolean, msg: Elements): Elements.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Elements, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Elements; - static deserializeBinaryFromReader(message: Elements, reader: jspb.BinaryReader): Elements; - } - - export namespace Elements { - export type AsObject = { - elementsList: Array, - } - } - - export enum ResultCase { - RESULT_NOT_SET = 0, - ELEMENTS = 1, - PROOF = 2, - } } export enum VersionCase { 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 be474b049e..ca80ce2ad7 100644 --- a/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js +++ b/packages/dapi-grpc/clients/platform/v0/web/platform_pb.js @@ -75,6 +75,14 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase', null, { proto }); @@ -118,6 +126,28 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpoc goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.GetIdentitiesContractKeysRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysRequest.VersionCase', null, { proto }); @@ -227,6 +257,22 @@ goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVote goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software', null, { proto }); +goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0', null, { proto }); goog.exportSymbol('proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase', null, { proto }); @@ -1165,6 +1211,300 @@ if (goog.DEBUG && !COMPILED) { */ proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeys.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.GetIdentitiesContractKeysResponseV0.IdentitiesKeys'; } +/** + * 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.GetEvonodesProposedEpochBlocksByIdsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks'; +} +/** + * 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.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByRangeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest'; +} +/** + * 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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0'; +} +/** + * 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.GetIdentitiesBalancesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest'; +} +/** + * 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.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0'; +} +/** + * 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.GetIdentitiesBalancesResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance'; +} +/** + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.displayName = 'proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -3496,191 +3836,611 @@ if (goog.DEBUG && !COMPILED) { */ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.displayName = 'proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements'; } - - - -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} + * 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.Proof.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.Proof.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusRequest'; +} /** - * 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.Proof} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * 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.Proof.toObject = function(includeInstance, msg) { - var f, obj = { - grovedbProof: msg.getGrovedbProof_asB64(), - quorumHash: msg.getQuorumHash_asB64(), - signature: msg.getSignature_asB64(), - round: jspb.Message.getFieldWithDefault(msg, 4, 0), - blockIdHash: msg.getBlockIdHash_asB64(), - quorumType: jspb.Message.getFieldWithDefault(msg, 6, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0'; } - - /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.Proof} + * 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.Proof.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.Proof; - return proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse'; +} /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.Proof} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.Proof} + * 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.Proof.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.setGrovedbProof(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setQuorumHash(value); - break; - case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setSignature(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setRound(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setBlockIdHash(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setQuorumType(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0'; +} /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * 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.Proof.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version'; +} /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.Proof} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * 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.Proof.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getGrovedbProof_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getQuorumHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getSignature_asU8(); - if (f.length > 0) { - writer.writeBytes( - 3, - f - ); - } - f = message.getRound(); - if (f !== 0) { - writer.writeUint32( - 4, - f - ); - } - f = message.getBlockIdHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f - ); - } - f = message.getQuorumType(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software'; +} /** - * optional bytes grovedb_proof = 1; - * @return {string} + * 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.Proof.prototype.getGrovedbProof = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; - - +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol'; +} /** - * optional bytes grovedb_proof = 1; - * This is a type-conversion wrapper around `getGrovedbProof()` - * @return {string} + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Time = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Node = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Chain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.Network = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network'; +} +/** + * 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.GetStatusResponse.GetStatusResponseV0.StateSync = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.displayName = 'proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync'; +} +/** + * 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.GetCurrentQuorumsInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest'; +} +/** + * 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.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.ValidatorV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.ValidatorSetV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0'; +} +/** + * 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.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0 = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.repeatedFields_, null); +}; +goog.inherits(proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.displayName = 'proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0'; +} + + + +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.Proof.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.Proof.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.Proof} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.Proof.toObject = function(includeInstance, msg) { + var f, obj = { + grovedbProof: msg.getGrovedbProof_asB64(), + quorumHash: msg.getQuorumHash_asB64(), + signature: msg.getSignature_asB64(), + round: jspb.Message.getFieldWithDefault(msg, 4, 0), + blockIdHash: msg.getBlockIdHash_asB64(), + quorumType: jspb.Message.getFieldWithDefault(msg, 6, 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.Proof} + */ +proto.org.dash.platform.dapi.v0.Proof.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.Proof; + return proto.org.dash.platform.dapi.v0.Proof.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.Proof} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.Proof.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.setGrovedbProof(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setQuorumHash(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setSignature(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRound(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setBlockIdHash(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setQuorumType(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.Proof.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.Proof.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.Proof} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getGrovedbProof_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getSignature_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } + f = message.getRound(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getBlockIdHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getQuorumType(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * optional bytes grovedb_proof = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.Proof.prototype.getGrovedbProof = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes grovedb_proof = 1; + * This is a type-conversion wrapper around `getGrovedbProof()` + * @return {string} */ proto.org.dash.platform.dapi.v0.Proof.prototype.getGrovedbProof_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( @@ -12470,21 +13230,21 @@ proto.org.dash.platform.dapi.v0.GetIdentitiesContractKeysResponse.prototype.hasV * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_[0])); }; @@ -12502,8 +13262,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.toObject(opt_includeInstance, this); }; @@ -12512,13 +13272,13 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(o * @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.GetProofsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -12532,23 +13292,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInst /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.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.GetProofsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -12556,8 +13316,8 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = f var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -12573,9 +13333,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = f * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -12583,18 +13343,18 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = fun /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter ); } }; @@ -12606,7 +13366,7 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = funct * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.repeatedFields_ = [1,2,3,4]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.repeatedFields_ = [2]; @@ -12623,8 +13383,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject(opt_includeInstance, this); }; @@ -12633,20 +13393,15 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.to * @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.GetProofsRequest.GetProofsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - identitiesList: jspb.Message.toObjectList(msg.getIdentitiesList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject, includeInstance), - contractsList: jspb.Message.toObjectList(msg.getContractsList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject, includeInstance), - documentsList: jspb.Message.toObjectList(msg.getDocumentsList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject, includeInstance), - votesList: jspb.Message.toObjectList(msg.getVotesList(), - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject, includeInstance) + epoch: jspb.Message.getFieldWithDefault(msg, 1, 0), + idsList: msg.getIdsList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -12660,23 +13415,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = f /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.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.GetProofsRequest.GetProofsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -12684,24 +13439,16 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeB var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader); - msg.addIdentities(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader); - msg.addContracts(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIds(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader); - msg.addDocuments(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader); - msg.addVotes(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -12716,9 +13463,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeB * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -12726,354 +13473,213 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.se /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentitiesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint32( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter + f ); } - f = message.getContractsList(); + f = message.getIdsList_asU8(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeRepeatedBytes( 2, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter + f ); } - f = message.getDocumentsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getProve(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter - ); - } - f = message.getVotesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 4, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter + f ); } }; - - - -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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - contractId: msg.getContractId_asB64(), - documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), - documentTypeKeepsHistory: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - documentId: msg.getDocumentId_asB64(), - documentContestedStatus: jspb.Message.getFieldWithDefault(msg, 5, 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + * optional uint32 epoch = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.setContractId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentType(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDocumentTypeKeepsHistory(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDocumentId(value); - break; - case 5: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (reader.readEnum()); - msg.setDocumentContestedStatus(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 1, value); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 1, undefined); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getDocumentType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDocumentTypeKeepsHistory(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getDocumentId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } - f = message.getDocumentContestedStatus(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus = { - NOT_CONTESTED: 0, - MAYBE_CONTESTED: 1, - CONTESTED: 2 -}; - -/** - * optional bytes contract_id = 1; - * @return {string} + * repeated bytes ids = 2; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); }; /** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * repeated bytes ids = 2; + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIdsList())); }; /** - * optional bytes contract_id = 1; + * repeated bytes ids = 2; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getIdsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIdsList())); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setIdsList = function(value) { + return jspb.Message.setField(this, 2, value || []); }; /** - * optional string document_type = 2; - * @return {string} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.addIds = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); }; /** - * optional bool document_type_keeps_history = 3; + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentTypeKeepsHistory = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.getProve = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentTypeKeepsHistory = function(value) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional bytes document_id = 4; - * @return {string} + * optional GetEvonodesProposedEpochBlocksByIdsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0, 1)); }; /** - * optional bytes document_id = 4; - * This is a type-conversion wrapper around `getDocumentId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDocumentId())); + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.GetEvonodesProposedEpochBlocksByIdsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.oneofGroups_[0], value); }; /** - * optional bytes document_id = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocumentId()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDocumentId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentId = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByIdsRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; + /** - * optional DocumentContestedStatus document_contested_status = 5; - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} + * 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentContestedStatus = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_ = [[1]]; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentContestedStatus = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - +/** + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_[0])); +}; @@ -13090,8 +13696,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.toObject(opt_includeInstance, this); }; @@ -13100,14 +13706,13 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ * @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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.toObject = function(includeInstance, msg) { var f, obj = { - identityId: msg.getIdentityId_asB64(), - requestType: jspb.Message.getFieldWithDefault(msg, 2, 0) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -13121,23 +13726,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.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.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13145,12 +13750,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentityId(value); - break; - case 2: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (reader.readEnum()); - msg.setRequestType(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -13165,9 +13767,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13175,102 +13777,52 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentityId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getRequestType(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter ); } }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type = { - FULL_IDENTITY: 0, - BALANCE: 1, - KEYS: 2, - REVISION: 3 -}; - -/** - * optional bytes identity_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes identity_id = 1; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); -}; - - -/** - * optional bytes identity_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); -}; - /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + * 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.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setIdentityId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_ = [[1,2]]; /** - * optional Type request_type = 2; - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getRequestType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + EVONODES_PROPOSED_BLOCK_COUNTS_INFO: 1, + PROOF: 2 }; - /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setRequestType = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0])); }; - - if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -13284,8 +13836,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject(opt_includeInstance, this); }; @@ -13294,13 +13846,15 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ * @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.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64() + evonodesProposedBlockCountsInfo: (f = msg.getEvonodesProposedBlockCountsInfo()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -13314,23 +13868,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.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.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13338,8 +13892,19 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinaryFromReader); + msg.setEvonodesProposedBlockCountsInfo(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -13354,9 +13919,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13364,89 +13929,39 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getEvonodesProposedBlockCountsInfo(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - - -/** - * 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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase = { - REQUEST_TYPE_NOT_SET: 0, - CONTESTED_RESOURCE_VOTE_STATUS_REQUEST: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getRequestTypeCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0])); -}; @@ -13463,8 +13978,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject(opt_includeInstance, this); }; @@ -13473,13 +13988,14 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceVoteStatusRequest: (f = msg.getContestedResourceVoteStatusRequest()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(includeInstance, f) + proTxHash: msg.getProTxHash_asB64(), + count: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -13493,23 +14009,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13517,9 +14033,12 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader); - msg.setContestedResourceVoteStatusRequest(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setCount(value); break; default: reader.skipField(); @@ -13534,9 +14053,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13544,20 +14063,86 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceVoteStatusRequest(); - if (f != null) { - writer.writeMessage( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter + f ); } + f = message.getCount(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } +}; + + +/** + * optional bytes pro_tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); +}; + + +/** + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint64 count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; @@ -13567,7 +14152,7 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.repeatedFields_ = [1]; @@ -13584,8 +14169,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject(opt_includeInstance, this); }; @@ -13594,17 +14179,14 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * @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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - voterIdentifier: msg.getVoterIdentifier_asB64() + evonodesProposedBlockCountsList: jspb.Message.toObjectList(msg.getEvonodesProposedBlockCountsList(), + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.toObject, includeInstance) }; if (includeInstance) { @@ -13618,23 +14200,23 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.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.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -13642,24 +14224,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setVoterIdentifier(value); + var value = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.deserializeBinaryFromReader); + msg.addEvonodesProposedBlockCounts(value); break; default: reader.skipField(); @@ -13674,9 +14241,9 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -13684,256 +14251,197 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); + f = message.getEvonodesProposedBlockCountsList(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getVoterIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks.serializeBinaryToWriter ); } }; /** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * repeated EvonodeProposedBlocks evonodes_proposed_block_counts = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.getEvonodesProposedBlockCountsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, 1)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.setEvonodesProposedBlockCountsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional string document_type_name = 2; - * @return {string} + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.addEvonodesProposedBlockCounts = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodeProposedBlocks, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks.prototype.clearEvonodesProposedBlockCountsList = function() { + return this.setEvonodesProposedBlockCountsList([]); }; /** - * optional string index_name = 3; - * @return {string} + * optional EvonodesProposedBlocks evonodes_proposed_block_counts_info = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getEvonodesProposedBlockCountsInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks, 1)); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.EvonodesProposedBlocks|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setEvonodesProposedBlockCountsInfo = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0], value); }; /** - * repeated bytes index_values = 4; - * @return {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearEvonodesProposedBlockCountsInfo = function() { + return this.setEvonodesProposedBlockCountsInfo(undefined); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` - * @return {!Array} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasEvonodesProposedBlockCountsInfo = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * repeated bytes index_values = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` - * @return {!Array} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.oneofGroups_[0], value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.addIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes voter_identifier = 5; - * @return {string} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional bytes voter_identifier = 5; - * This is a type-conversion wrapper around `getVoterIdentifier()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getVoterIdentifier())); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * optional bytes voter_identifier = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getVoterIdentifier()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getVoterIdentifier())); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setVoterIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional ContestedResourceVoteStatusRequest contested_resource_vote_status_request = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} + * optional GetEvonodesProposedEpochBlocksResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getContestedResourceVoteStatusRequest = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.GetEvonodesProposedEpochBlocksResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.setContestedResourceVoteStatusRequest = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.clearContestedResourceVoteStatusRequest = function() { - return this.setContestedResourceVoteStatusRequest(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.clearV0 = function() { + return this.setV0(undefined); }; @@ -13941,197 +14449,147 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRe * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.hasContestedResourceVoteStatusRequest = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; + /** - * repeated IdentityRequest identities = 1; - * @return {!Array} + * 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.GetProofsRequest.GetProofsRequestV0.prototype.getIdentitiesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, 1)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_ = [[1]]; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setIdentitiesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addIdentities = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_[0])); }; + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this + * 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.GetProofsRequest.GetProofsRequestV0.prototype.clearIdentitiesList = function() { - return this.setIdentitiesList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.toObject(opt_includeInstance, this); }; /** - * repeated ContractRequest contracts = 2; - * @return {!Array} + * 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.GetEvonodesProposedEpochBlocksByRangeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getContractsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, 2)); -}; - +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject(includeInstance, f) + }; -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setContractsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 2, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addContracts = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, opt_index); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearContractsList = function() { - return this.setContractsList([]); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.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.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * repeated DocumentRequest documents = 3; - * @return {!Array} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getDocumentsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setDocumentsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addDocuments = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearDocumentsList = function() { - return this.setDocumentsList([]); -}; - - -/** - * repeated VoteStatusRequest votes = 4; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getVotesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, 4)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setVotesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 4, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addVotes = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearVotesList = function() { - return this.setVotesList([]); -}; - - -/** - * optional GetProofsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter + ); + } }; @@ -14144,21 +14602,22 @@ proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_ = [[3,4]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase = { + START_NOT_SET: 0, + START_AFTER: 3, + START_AT: 4 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0])); }; @@ -14176,8 +14635,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject(opt_includeInstance, this); }; @@ -14186,13 +14645,17 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function( * @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.GetProofsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(includeInstance, f) + epoch: jspb.Message.getFieldWithDefault(msg, 1, 0), + limit: jspb.Message.getFieldWithDefault(msg, 2, 0), + startAfter: msg.getStartAfter_asB64(), + startAt: msg.getStartAt_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) }; if (includeInstance) { @@ -14206,23 +14669,23 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeIns /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse; - return proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0; + return proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.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.GetProofsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14230,9 +14693,24 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAfter(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAt(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -14247,9 +14725,9 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14257,238 +14735,230 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = fu /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); + f = /** @type {number} */ (jspb.Message.getField(message, 1)); if (f != null) { - writer.writeMessage( + writer.writeUint32( 1, - f, - proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeBytes( + 3, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeBytes( + 4, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 5, + f ); } }; +/** + * optional uint32 epoch = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + /** - * 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 + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 1, value); +}; + /** - * @enum {number} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - PROOF: 1 +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 1, undefined); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 1) != null; }; +/** + * optional uint32 limit = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 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} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * 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.GetProofsResponse.GetProofsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearLimit = function() { + return jspb.Message.setField(this, 2, undefined); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bytes start_after = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; - return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bytes start_after = 3; + * This is a type-conversion wrapper around `getStartAfter()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.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.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAfter())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes start_after = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAfter()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAfter_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAfter())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setStartAfter = function(value) { + return jspb.Message.setOneofField(this, 3, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], value); }; /** - * optional Proof proof = 1; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearStartAfter = function() { + return jspb.Message.setOneofField(this, 3, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0], value); + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasStartAfter = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this + * optional bytes start_at = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes start_at = 4; + * This is a type-conversion wrapper around `getStartAt()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAt())); }; /** - * optional ResponseMetadata metadata = 2; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes start_at = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAt()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 2)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getStartAt_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAt())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 2, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setStartAt = function(value) { + return jspb.Message.setOneofField(this, 4, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.clearStartAt = function() { + return jspb.Message.setOneofField(this, 4, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.oneofGroups_[0], undefined); }; @@ -14496,35 +14966,53 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.hasStartAt = function() { + return jspb.Message.getField(this, 4) != null; }; /** - * optional GetProofsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} + * optional bool prove = 5; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional GetEvonodesProposedEpochBlocksByRangeRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.GetEvonodesProposedEpochBlocksByRangeRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -14533,7 +15021,7 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetEvonodesProposedEpochBlocksByRangeRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -14547,21 +15035,21 @@ proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_[0])); }; @@ -14579,8 +15067,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.toObject(opt_includeInstance, this); }; @@ -14589,13 +15077,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = func * @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.GetDataContractRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -14609,23 +15097,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(inclu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.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.GetDataContractRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14633,8 +15121,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromRead var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -14650,9 +15138,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromRead * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14660,24 +15148,31 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -14693,8 +15188,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject(opt_includeInstance, this); }; @@ -14703,13 +15198,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. * @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.GetDataContractRequest.GetDataContractRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - id: msg.getId_asB64(), + idsList: msg.getIdsList_asB64(), prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; @@ -14724,23 +15219,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.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.GetDataContractRequest.GetDataContractRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14749,7 +15244,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setId(value); + msg.addIds(value); break; case 2: var value = /** @type {boolean} */ (reader.readBool()); @@ -14768,9 +15263,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -14778,15 +15273,15 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getId_asU8(); + f = message.getIdsList_asU8(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedBytes( 1, f ); @@ -14802,89 +15297,108 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0. /** - * optional bytes id = 1; - * @return {string} + * repeated bytes ids = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * optional bytes id = 1; - * This is a type-conversion wrapper around `getId()` - * @return {string} + * repeated bytes ids = 1; + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getId())); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIdsList())); }; /** - * optional bytes id = 1; + * repeated bytes ids = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getId()` - * @return {!Uint8Array} + * This is a type-conversion wrapper around `getIdsList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getId())); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getIdsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIdsList())); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.setIdsList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** - * optional bool prove = 2; - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.addIds = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setProve = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); +}; + + +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDataContractRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} + * optional GetIdentitiesBalancesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.GetIdentitiesBalancesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -14893,7 +15407,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = funct * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -14907,21 +15421,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = functio * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_[0])); }; @@ -14939,8 +15453,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.toObject(opt_includeInstance, this); }; @@ -14949,13 +15463,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = fun * @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.GetDataContractResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -14969,23 +15483,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.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.GetDataContractResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -14993,8 +15507,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -15010,9 +15524,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15020,18 +15534,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter ); } }; @@ -15046,22 +15560,22 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase = { RESULT_NOT_SET: 0, - DATA_CONTRACT: 1, + IDENTITIES_BALANCES: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0])); }; @@ -15079,8 +15593,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject(opt_includeInstance, this); }; @@ -15089,13 +15603,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * @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.GetDataContractResponse.GetDataContractResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContract: msg.getDataContract_asB64(), + identitiesBalances: (f = msg.getIdentitiesBalances()) && proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -15111,23 +15625,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.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.GetDataContractResponse.GetDataContractResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15135,8 +15649,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDataContract(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.deserializeBinaryFromReader); + msg.setIdentitiesBalances(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -15161,9 +15676,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15171,17 +15686,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + f = message.getIdentitiesBalances(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.serializeBinaryToWriter ); } f = message.getProof(); @@ -15203,54 +15719,196 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes data_contract = 1; + * 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.toObject = function(includeInstance, msg) { + var f, obj = { + identityId: msg.getIdentityId_asB64(), + balance: 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.setIdentityId(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBalance(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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint64( + 2, + f + ); + } +}; + + +/** + * optional bytes identity_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes data_contract = 1; - * This is a type-conversion wrapper around `getDataContract()` + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDataContract())); + this.getIdentityId())); }; /** - * optional bytes data_contract = 1; + * optional bytes identity_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDataContract()` + * This is a type-conversion wrapper around `getIdentityId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getIdentityId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDataContract())); + this.getIdentityId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setDataContract = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint64 balance = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.getBalance = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.setBalance = function(value) { + return jspb.Message.setField(this, 2, value); }; /** * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearDataContract = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.clearBalance = function() { + return jspb.Message.setField(this, 2, undefined); }; @@ -15258,7 +15916,204 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasDataContract = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.prototype.hasBalance = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.repeatedFields_ = [1]; + + + +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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.toObject = function(includeInstance, msg) { + var f, obj = { + entriesList: jspb.Message.toObjectList(msg.getEntriesList(), + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.toObject, includeInstance) + }; + + 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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances; + return proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.deserializeBinaryFromReader); + msg.addEntries(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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.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.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated IdentityBalance entries = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.getEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.setEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.addEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentityBalance, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances.prototype.clearEntriesList = function() { + return this.setEntriesList([]); +}; + + +/** + * optional IdentitiesBalances identities_balances = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getIdentitiesBalances = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.IdentitiesBalances|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setIdentitiesBalances = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearIdentitiesBalances = function() { + return this.setIdentitiesBalances(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasIdentitiesBalances = function() { return jspb.Message.getField(this, 1) != null; }; @@ -15267,7 +16122,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -15275,18 +16130,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -15295,7 +16150,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -15304,7 +16159,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -15312,18 +16167,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -15332,35 +16187,35 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetDataContractResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} + * optional GetIdentitiesBalancesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.GetIdentitiesBalancesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -15369,7 +16224,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = func * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentitiesBalancesResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -15383,21 +16238,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = functi * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0])); }; @@ -15415,8 +16270,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject(opt_includeInstance, this); }; @@ -15425,13 +16280,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = fun * @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.GetDataContractsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -15445,23 +16300,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.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.GetDataContractsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15469,8 +16324,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -15486,9 +16341,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15496,18 +16351,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter ); } }; @@ -15519,7 +16374,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.repeatedFields_ = [1,2,3,4]; @@ -15536,8 +16391,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject(opt_includeInstance, this); }; @@ -15546,14 +16401,20 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV * @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.GetDataContractsRequest.GetDataContractsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - idsList: msg.getIdsList_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + identitiesList: jspb.Message.toObjectList(msg.getIdentitiesList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject, includeInstance), + contractsList: jspb.Message.toObjectList(msg.getContractsList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject, includeInstance), + documentsList: jspb.Message.toObjectList(msg.getDocumentsList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject, includeInstance), + votesList: jspb.Message.toObjectList(msg.getVotesList(), + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject, includeInstance) }; if (includeInstance) { @@ -15567,23 +16428,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.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.GetDataContractsRequest.GetDataContractsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15591,12 +16452,24 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIds(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader); + msg.addIdentities(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader); + msg.addContracts(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinaryFromReader); + msg.addDocuments(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader); + msg.addVotes(value); break; default: reader.skipField(); @@ -15611,9 +16484,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15621,23 +16494,201 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdsList_asU8(); + f = message.getIdentitiesList(); if (f.length > 0) { - writer.writeRepeatedBytes( + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter + ); + } + f = message.getContractsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter + ); + } + f = message.getDocumentsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter + ); + } + f = message.getVotesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), + documentTypeKeepsHistory: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + documentId: msg.getDocumentId_asB64(), + documentContestedStatus: jspb.Message.getFieldWithDefault(msg, 5, 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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentType(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setDocumentTypeKeepsHistory(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDocumentId(value); + break; + case 5: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (reader.readEnum()); + msg.setDocumentContestedStatus(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.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.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.GetProofsRequest.GetProofsRequestV0.DocumentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, f ); } - f = message.getProve(); + f = message.getDocumentType(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDocumentTypeKeepsHistory(); if (f) { writer.writeBool( - 2, + 3, + f + ); + } + f = message.getDocumentId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getDocumentContestedStatus(); + if (f !== 0.0) { + writer.writeEnum( + 5, f ); } @@ -15645,149 +16696,155 @@ proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV /** - * repeated bytes ids = 1; - * @return {!Array} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus = { + NOT_CONTESTED: 0, + MAYBE_CONTESTED: 1, + CONTESTED: 2 +}; + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * repeated bytes ids = 1; - * This is a type-conversion wrapper around `getIdsList()` - * @return {!Array} + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIdsList())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); }; /** - * repeated bytes ids = 1; + * optional bytes contract_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdsList()` - * @return {!Array} + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIdsList())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setIdsList = function(value) { - return jspb.Message.setField(this, 1, value || []); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * optional string document_type = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.addIds = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentType = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.clearIdsList = function() { - return this.setIdsList([]); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentType = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * optional bool prove = 2; + * optional bool document_type_keeps_history = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentTypeKeepsHistory = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentTypeKeepsHistory = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetDataContractsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} + * optional bytes document_id = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0], value); + * optional bytes document_id = 4; + * This is a type-conversion wrapper around `getDocumentId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDocumentId())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this + * optional bytes document_id = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocumentId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDocumentId())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentId = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); }; - -/** - * 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.GetDataContractsResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * optional DocumentContestedStatus document_contested_status = 5; + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.getDocumentContestedStatus = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.DocumentContestedStatus} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest.prototype.setDocumentContestedStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 5, value); }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -15801,8 +16858,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject(opt_includeInstance, this); }; @@ -15811,13 +16868,14 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = fu * @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.GetDataContractsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(includeInstance, f) + identityId: msg.getIdentityId_asB64(), + requestType: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -15831,23 +16889,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(inc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.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.GetDataContractsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15855,9 +16913,12 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromRe var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setIdentityId(value); + break; + case 2: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (reader.readEnum()); + msg.setRequestType(value); break; default: reader.skipField(); @@ -15872,9 +16933,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromRe * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -15882,23 +16943,99 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBina /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getRequestType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f ); } }; +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type = { + FULL_IDENTITY: 0, + BALANCE: 1, + KEYS: 2, + REVISION: 3 +}; + +/** + * optional bytes identity_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional Type request_type = 2; + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.getRequestType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.Type} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest.prototype.setRequestType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + @@ -15915,8 +17052,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject(opt_includeInstance, this); }; @@ -15925,14 +17062,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.proto * @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.GetDataContractsResponse.DataContractEntry} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.toObject = function(includeInstance, msg) { var f, obj = { - identifier: msg.getIdentifier_asB64(), - dataContract: (f = msg.getDataContract()) && google_protobuf_wrappers_pb.BytesValue.toObject(includeInstance, f) + contractId: msg.getContractId_asB64() }; if (includeInstance) { @@ -15946,23 +17082,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObj /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.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.GetDataContractsResponse.DataContractEntry} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -15971,12 +17107,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deser switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentifier(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.BytesValue; - reader.readMessage(value,google_protobuf_wrappers_pb.BytesValue.deserializeBinaryFromReader); - msg.setDataContract(value); + msg.setContractId(value); break; default: reader.skipField(); @@ -15991,9 +17122,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deser * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16001,116 +17132,89 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.proto /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentifier_asU8(); + f = message.getContractId_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getDataContract(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.BytesValue.serializeBinaryToWriter - ); - } }; /** - * optional bytes identifier = 1; + * optional bytes contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes identifier = 1; - * This is a type-conversion wrapper around `getIdentifier()` + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentifier())); + this.getContractId())); }; /** - * optional bytes identifier = 1; + * optional bytes contract_id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentifier()` + * This is a type-conversion wrapper around `getContractId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.getContractId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentifier())); + this.getContractId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setIdentifier = function(value) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest.prototype.setContractId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; -/** - * optional google.protobuf.BytesValue data_contract = 2; - * @return {?proto.google.protobuf.BytesValue} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getDataContract = function() { - return /** @type{?proto.google.protobuf.BytesValue} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BytesValue, 2)); -}; - - -/** - * @param {?proto.google.protobuf.BytesValue|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setDataContract = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this + * 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.GetDataContractsResponse.DataContractEntry.prototype.clearDataContract = function() { - return this.setDataContract(undefined); -}; - +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_ = [[1]]; /** - * Returns whether this field is set. - * @return {boolean} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.hasDataContract = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase = { + REQUEST_TYPE_NOT_SET: 0, + CONTESTED_RESOURCE_VOTE_STATUS_REQUEST: 1 }; - - /** - * List of repeated fields within this message type. - * @private {!Array} - * @const + * @return {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getRequestTypeCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.RequestTypeCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0])); +}; @@ -16127,8 +17231,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -16137,14 +17241,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype * @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.GetDataContractsResponse.DataContracts} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject, includeInstance) + contestedResourceVoteStatusRequest: (f = msg.getContestedResourceVoteStatusRequest()) && proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(includeInstance, f) }; if (includeInstance) { @@ -16158,23 +17261,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.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.GetDataContractsResponse.DataContracts} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -16182,9 +17285,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader); - msg.addDataContractEntries(value); + var value = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader); + msg.setContestedResourceVoteStatusRequest(value); break; default: reader.skipField(); @@ -16199,9 +17302,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16209,87 +17312,30 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractEntriesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getContestedResourceVoteStatusRequest(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter ); } }; -/** - * repeated DataContractEntry data_contract_entries = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.getDataContractEntriesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.setDataContractEntriesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.addDataContractEntries = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.clearDataContractEntriesList = function() { - return this.setDataContractEntriesList([]); -}; - - /** - * 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - DATA_CONTRACTS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.repeatedFields_ = [4]; @@ -16306,8 +17352,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -16316,15 +17362,17 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons * @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.GetDataContractsResponse.GetDataContractsResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContracts: (f = msg.getDataContracts()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + voterIdentifier: msg.getVoterIdentifier_asB64() }; if (includeInstance) { @@ -16338,23 +17386,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.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.GetDataContractsResponse.GetDataContractsResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -16362,19 +17410,24 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader); - msg.setDataContracts(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setContractId(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setVoterIdentifier(value); break; default: reader.skipField(); @@ -16389,9 +17442,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -16399,666 +17452,444 @@ proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsRespons /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContracts(); - if (f != null) { - writer.writeMessage( + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getVoterIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f ); } }; /** - * optional DataContracts data_contracts = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} + * optional bytes contract_id = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getDataContracts = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setDataContracts = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearDataContracts = function() { - return this.setDataContracts(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasDataContracts = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional string document_type_name = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * optional string index_name = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * repeated bytes index_values = 4; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); }; /** - * optional GetDataContractsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0], value); + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this + * optional bytes voter_identifier = 5; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes voter_identifier = 5; + * This is a type-conversion wrapper around `getVoterIdentifier()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getVoterIdentifier())); }; - /** - * 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 + * optional bytes voter_identifier = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getVoterIdentifier()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.getVoterIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getVoterIdentifier())); +}; + /** - * @enum {number} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest.prototype.setVoterIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} + * optional ContestedResourceVoteStatusRequest contested_resource_vote_status_request = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.getContestedResourceVoteStatusRequest = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest, 1)); }; +/** + * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.ContestedResourceVoteStatusRequest|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.setContestedResourceVoteStatusRequest = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.oneofGroups_[0], 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} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.clearContestedResourceVoteStatusRequest = function() { + return this.setContestedResourceVoteStatusRequest(undefined); }; /** - * 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.GetDataContractHistoryRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.GetDataContractHistoryRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - id: msg.getId_asB64(), - limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - startAtMs: jspb.Message.getFieldWithDefault(msg, 4, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) - }; - - 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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.setId(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setLimit(value); - break; - case 3: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setOffset(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartAtMs(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getLimit(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOffset(); - if (f != null) { - writer.writeMessage( - 3, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getStartAtMs(); - if (f !== 0) { - writer.writeUint64( - 4, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 5, - f - ); - } +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest.prototype.hasContestedResourceVoteStatusRequest = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional bytes id = 1; - * @return {string} + * repeated IdentityRequest identities = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getIdentitiesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, 1)); }; /** - * optional bytes id = 1; - * This is a type-conversion wrapper around `getId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getId())); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setIdentitiesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bytes id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getId()` - * @return {!Uint8Array} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getId())); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addIdentities = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.IdentityRequest, opt_index); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearIdentitiesList = function() { + return this.setIdentitiesList([]); }; /** - * optional google.protobuf.UInt32Value limit = 2; - * @return {?proto.google.protobuf.UInt32Value} + * repeated ContractRequest contracts = 2; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getLimit = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getContractsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, 2)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setContractsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearLimit = function() { - return this.setLimit(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addContracts = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.ContractRequest, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearContractsList = function() { + return this.setContractsList([]); }; /** - * optional google.protobuf.UInt32Value offset = 3; - * @return {?proto.google.protobuf.UInt32Value} + * repeated DocumentRequest documents = 3; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getOffset = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getDocumentsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, 3)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setDocumentsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearOffset = function() { - return this.setOffset(undefined); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addDocuments = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.DocumentRequest, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearDocumentsList = function() { + return this.setDocumentsList([]); }; /** - * optional uint64 start_at_ms = 4; - * @return {number} + * repeated VoteStatusRequest votes = 4; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getStartAtMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.getVotesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, 4)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setStartAtMs = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.setVotesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); }; /** - * optional bool prove = 5; - * @return {boolean} + * @param {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.addVotes = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.VoteStatusRequest, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0.prototype.clearVotesList = function() { + return this.setVotesList([]); }; /** - * optional GetDataContractHistoryRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} + * optional GetProofsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProofsRequest.GetProofsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProofsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -17067,7 +17898,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProofsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -17081,21 +17912,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0])); }; @@ -17113,8 +17944,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject(opt_includeInstance, this); }; @@ -17123,13 +17954,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObjec * @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.GetDataContractHistoryResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17143,23 +17974,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = functi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse; + return proto.org.dash.platform.dapi.v0.GetProofsResponse.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.GetDataContractHistoryResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17167,8 +17998,8 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -17184,9 +18015,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17194,18 +18025,18 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.seriali /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter ); } }; @@ -17220,22 +18051,21 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryTo * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - DATA_CONTRACT_HISTORY: 1, - PROOF: 2 + PROOF: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0])); }; @@ -17253,8 +18083,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject(opt_includeInstance, this); }; @@ -17263,13 +18093,12 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContractHistory: (f = msg.getDataContractHistory()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -17285,23 +18114,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0; + return proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17309,16 +18138,11 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader); - msg.setDataContractHistory(value); - break; - case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); msg.setProof(value); break; - case 3: + case 2: var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); msg.setMetadata(value); @@ -17336,9 +18160,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17346,24 +18170,16 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractHistory(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter - ); - } f = message.getProof(); if (f != null) { writer.writeMessage( - 2, + 1, f, proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); @@ -17371,7 +18187,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi f = message.getMetadata(); if (f != null) { writer.writeMessage( - 3, + 2, f, proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); @@ -17379,197 +18195,142 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi }; - - - -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} + * optional Proof proof = 1; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 1)); }; /** - * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject = function(includeInstance, msg) { - var f, obj = { - date: jspb.Message.getFieldWithDefault(msg, 1, 0), - value: msg.getValue_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.oneofGroups_[0], value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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.setDate(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setValue(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional ResponseMetadata metadata = 2; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 2)); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDate(); - if (f !== 0) { - writer.writeUint64( - 1, - f - ); - } - f = message.getValue_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** - * optional uint64 date = 1; - * @return {number} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getDate = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setDate = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes value = 2; - * @return {string} + * optional GetProofsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0, 1)); }; /** - * optional bytes value = 2; - * This is a type-conversion wrapper around `getValue()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getValue())); + * @param {?proto.org.dash.platform.dapi.v0.GetProofsResponse.GetProofsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProofsResponse.oneofGroups_[0], value); }; /** - * optional bytes value = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getValue()` - * @return {!Uint8Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProofsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getValue())); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setValue = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProofsResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0])); +}; @@ -17586,8 +18347,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject(opt_includeInstance, this); }; @@ -17596,14 +18357,13 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * @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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.toObject = function(includeInstance, msg) { var f, obj = { - dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17617,23 +18377,23 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; - return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17641,9 +18401,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader); - msg.addDataContractEntries(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -17658,9 +18418,9 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17668,196 +18428,231 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractEntriesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated DataContractHistoryEntry data_contract_entries = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.getDataContractEntriesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.setDataContractEntriesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} - */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.addDataContractEntries = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, opt_index); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.clearDataContractEntriesList = function() { - return this.setDataContractEntriesList([]); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject(opt_includeInstance, this); }; /** - * optional DataContractHistory data_contract_history = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} + * 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.GetDataContractRequest.GetDataContractRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getDataContractHistory = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory, 1)); -}; - +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + id: msg.getId_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; -/** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setDataContractHistory = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearDataContractHistory = function() { - return this.setDataContractHistory(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.deserializeBinaryFromReader(msg, reader); }; /** - * Returns whether this field is set. - * @return {boolean} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasDataContractHistory = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.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.setId(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * optional bytes id = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getId())); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getId()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getId())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this + * optional bool prove = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDataContractHistoryResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + * optional GetDataContractRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractRequest.GetDataContractRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -17866,7 +18661,7 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -17880,22 +18675,22 @@ proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0])); +}; @@ -17912,8 +18707,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject(opt_includeInstance, this); }; @@ -17922,13 +18717,13 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = functio * @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.GetDocumentsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -17942,23 +18737,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeI /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest; - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.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.GetDocumentsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -17966,8 +18761,8 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -17983,9 +18778,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -17993,18 +18788,18 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter ); } }; @@ -18019,22 +18814,22 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = fu * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_ = [[6,7]]; +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase = { - START_NOT_SET: 0, - START_AFTER: 6, - START_AT: 7 +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + DATA_CONTRACT: 1, + PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0])); }; @@ -18052,8 +18847,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject(opt_includeInstance, this); }; @@ -18062,20 +18857,15 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * @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.GetDocumentsRequest.GetDocumentsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - dataContractId: msg.getDataContractId_asB64(), - documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), - where: msg.getWhere_asB64(), - orderBy: msg.getOrderBy_asB64(), - limit: jspb.Message.getFieldWithDefault(msg, 5, 0), - startAfter: msg.getStartAfter_asB64(), - startAt: msg.getStartAt_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) + dataContract: msg.getDataContract_asB64(), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -18089,23 +18879,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObje /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; - return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.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.GetDocumentsRequest.GetDocumentsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18114,35 +18904,17 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deseri switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDataContractId(value); + msg.setDataContract(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentType(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setWhere(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setOrderBy(value); - break; - case 5: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLimit(value); - break; - case 6: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAfter(value); - break; - case 7: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAt(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -18157,9 +18929,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deseri * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18167,281 +18939,123 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDataContractId_asU8(); - if (f.length > 0) { + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { writer.writeBytes( 1, f ); } - f = message.getDocumentType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getWhere_asU8(); - if (f.length > 0) { - writer.writeBytes( - 3, - f - ); - } - f = message.getOrderBy_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } - f = message.getLimit(); - if (f !== 0) { - writer.writeUint32( - 5, - f - ); - } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 6)); + f = message.getProof(); if (f != null) { - writer.writeBytes( - 6, - f + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 7)); + f = message.getMetadata(); if (f != null) { - writer.writeBytes( - 7, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 8, - f + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; /** - * optional bytes data_contract_id = 1; + * optional bytes data_contract = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes data_contract_id = 1; - * This is a type-conversion wrapper around `getDataContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDataContractId())); -}; - - -/** - * optional bytes data_contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDataContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDataContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDataContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDocumentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDocumentType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bytes where = 3; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * optional bytes where = 3; - * This is a type-conversion wrapper around `getWhere()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getWhere())); -}; - - -/** - * optional bytes where = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getWhere()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getWhere())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setWhere = function(value) { - return jspb.Message.setProto3BytesField(this, 3, value); -}; - - -/** - * optional bytes order_by = 4; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * optional bytes order_by = 4; - * This is a type-conversion wrapper around `getOrderBy()` + * optional bytes data_contract = 1; + * This is a type-conversion wrapper around `getDataContract()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getOrderBy())); + this.getDataContract())); }; /** - * optional bytes order_by = 4; + * optional bytes data_contract = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getOrderBy()` + * This is a type-conversion wrapper around `getDataContract()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getDataContract_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getOrderBy())); + this.getDataContract())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setOrderBy = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); -}; - - -/** - * optional uint32 limit = 5; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getLimit = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setDataContract = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); }; /** - * optional bytes start_after = 6; - * @return {string} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearDataContract = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], undefined); }; /** - * optional bytes start_after = 6; - * This is a type-conversion wrapper around `getStartAfter()` - * @return {string} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAfter())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasDataContract = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional bytes start_after = 6; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAfter()` - * @return {!Uint8Array} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAfter())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAfter = function(value) { - return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAfter = function() { - return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -18449,59 +19063,36 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAfter = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional bytes start_at = 7; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * optional bytes start_at = 7; - * This is a type-conversion wrapper around `getStartAt()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAt())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bytes start_at = 7; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAt()` - * @return {!Uint8Array} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAt())); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAt = function(value) { - return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAt = function() { - return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; @@ -18509,53 +19100,35 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAt = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional bool prove = 8; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetDocumentsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} + * optional GetDataContractResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractResponse.GetDataContractResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -18564,7 +19137,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -18578,21 +19151,21 @@ proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0])); }; @@ -18610,8 +19183,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject(opt_includeInstance, this); }; @@ -18620,13 +19193,13 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = functi * @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.GetDocumentsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -18640,23 +19213,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(include /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.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.GetDocumentsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18664,8 +19237,8 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -18681,9 +19254,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18691,186 +19264,18 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter - ); - } -}; - - - -/** - * 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.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - DOCUMENTS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - documents: (f = msg.getDocuments()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetDocumentsResponse.GetDocumentsResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader); - msg.setDocuments(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(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.GetDocumentsResponse.GetDocumentsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetDocumentsResponse.GetDocumentsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDocuments(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter ); } }; @@ -18882,7 +19287,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.seri * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.repeatedFields_ = [1]; @@ -18899,8 +19304,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject(opt_includeInstance, this); }; @@ -18909,13 +19314,14 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu * @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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - documentsList: msg.getDocumentsList_asB64() + idsList: msg.getIdsList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -18929,23 +19335,23 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; - return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.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.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -18954,7 +19360,11 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addDocuments(value); + msg.addIds(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -18969,9 +19379,9 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -18979,60 +19389,67 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getDocumentsList_asU8(); + f = message.getIdsList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * repeated bytes documents = 1; + * repeated bytes ids = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes documents = 1; - * This is a type-conversion wrapper around `getDocumentsList()` + * repeated bytes ids = 1; + * This is a type-conversion wrapper around `getIdsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getDocumentsList())); + this.getIdsList())); }; /** - * repeated bytes documents = 1; + * repeated bytes ids = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocumentsList()` + * This is a type-conversion wrapper around `getIdsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getIdsList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getDocumentsList())); + this.getIdsList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.setDocumentsList = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setIdsList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -19040,157 +19457,64 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Docu /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.addDocuments = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.addIds = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.clearDocumentsList = function() { - return this.setDocumentsList([]); -}; - - -/** - * optional Documents documents = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getDocuments = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setDocuments = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearDocuments = function() { - return this.setDocuments(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasDocuments = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.clearIdsList = function() { + return this.setIdsList([]); }; /** - * Returns whether this field is set. + * optional bool prove = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetDocumentsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} + * optional GetDataContractsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsRequest.GetDataContractsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -19199,7 +19523,7 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = functio * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -19213,21 +19537,21 @@ proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function( * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0])); }; @@ -19245,8 +19569,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject(opt_includeInstance, this); }; @@ -19255,13 +19579,13 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toOb * @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.GetIdentityByPublicKeyHashRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -19275,23 +19599,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = fun /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.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.GetIdentityByPublicKeyHashRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19299,8 +19623,8 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBin var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -19316,9 +19640,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBin * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19326,18 +19650,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.seri /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter ); } }; @@ -19359,8 +19683,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject(opt_includeInstance, this); }; @@ -19369,14 +19693,14 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP * @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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject = function(includeInstance, msg) { var f, obj = { - publicKeyHash: msg.getPublicKeyHash_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + identifier: msg.getIdentifier_asB64(), + dataContract: (f = msg.getDataContract()) && google_protobuf_wrappers_pb.BytesValue.toObject(includeInstance, f) }; if (includeInstance) { @@ -19390,23 +19714,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.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.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19415,11 +19739,12 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPublicKeyHash(value); + msg.setIdentifier(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new google_protobuf_wrappers_pb.BytesValue; + reader.readMessage(value,google_protobuf_wrappers_pb.BytesValue.deserializeBinaryFromReader); + msg.setDataContract(value); break; default: reader.skipField(); @@ -19434,9 +19759,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19444,114 +19769,97 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getPublicKeyHash_asU8(); + f = message.getIdentifier_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getDataContract(); + if (f != null) { + writer.writeMessage( 2, - f + f, + google_protobuf_wrappers_pb.BytesValue.serializeBinaryToWriter ); } }; /** - * optional bytes public_key_hash = 1; + * optional bytes identifier = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes public_key_hash = 1; - * This is a type-conversion wrapper around `getPublicKeyHash()` + * optional bytes identifier = 1; + * This is a type-conversion wrapper around `getIdentifier()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPublicKeyHash())); + this.getIdentifier())); }; /** - * optional bytes public_key_hash = 1; + * optional bytes identifier = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPublicKeyHash()` + * This is a type-conversion wrapper around `getIdentifier()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getIdentifier_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPublicKeyHash())); + this.getIdentifier())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setPublicKeyHash = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setIdentifier = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional GetIdentityByPublicKeyHashRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + * optional google.protobuf.BytesValue data_contract = 2; + * @return {?proto.google.protobuf.BytesValue} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.getDataContract = function() { + return /** @type{?proto.google.protobuf.BytesValue} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BytesValue, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + * @param {?proto.google.protobuf.BytesValue|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.setDataContract = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.clearDataContract = function() { + return this.setDataContract(undefined); }; @@ -19559,36 +19867,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clea * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.prototype.hasDataContract = function() { + return jspb.Message.getField(this, 2) != 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.repeatedFields_ = [1]; @@ -19605,8 +19895,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(opt_includeInstance, this); }; @@ -19615,13 +19905,14 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toO * @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.GetIdentityByPublicKeyHashResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(includeInstance, f) + dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.toObject, includeInstance) }; if (includeInstance) { @@ -19635,23 +19926,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = fu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.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.GetIdentityByPublicKeyHashResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19659,9 +19950,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBi var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.deserializeBinaryFromReader); + msg.addDataContractEntries(value); break; default: reader.skipField(); @@ -19676,9 +19967,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBi * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19686,23 +19977,61 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.ser /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDataContractEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry.serializeBinaryToWriter ); } }; +/** + * repeated DataContractEntry data_contract_entries = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.getDataContractEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.setDataContractEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry} + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.addDataContractEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContractEntry, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.prototype.clearDataContractEntriesList = function() { + return this.setDataContractEntriesList([]); +}; + + /** * Oneof group definitions for this message. Each group defines the field @@ -19712,22 +20041,22 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBina * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - IDENTITY: 1, + DATA_CONTRACTS: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0])); }; @@ -19745,8 +20074,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject(opt_includeInstance, this); }; @@ -19755,13 +20084,13 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * @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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - identity: msg.getIdentity_asB64(), + dataContracts: (f = msg.getDataContracts()) && proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -19777,23 +20106,23 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; - return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -19801,8 +20130,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentity(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.deserializeBinaryFromReader); + msg.setDataContracts(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -19827,9 +20157,9 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -19837,17 +20167,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + f = message.getDataContracts(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts.serializeBinaryToWriter ); } f = message.getProof(); @@ -19870,53 +20201,30 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** - * optional bytes identity = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes identity = 1; - * This is a type-conversion wrapper around `getIdentity()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentity())); -}; - - -/** - * optional bytes identity = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentity()` - * @return {!Uint8Array} + * optional DataContracts data_contracts = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentity())); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getDataContracts = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts, 1)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setIdentity = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.DataContracts|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setDataContracts = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearIdentity = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearDataContracts = function() { + return this.setDataContracts(undefined); }; @@ -19924,7 +20232,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasIdentity = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasDataContracts = function() { return jspb.Message.getField(this, 1) != null; }; @@ -19933,7 +20241,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -19941,18 +20249,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -19961,7 +20269,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -19970,7 +20278,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -19978,18 +20286,18 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -19998,35 +20306,35 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityBy * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetIdentityByPublicKeyHashResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} + * optional GetDataContractsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractsResponse.GetDataContractsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractsResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -20035,7 +20343,7 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.cle * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractsResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -20049,21 +20357,21 @@ proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.has * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0])); }; @@ -20081,8 +20389,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject(opt_includeInstance, this); }; @@ -20091,13 +20399,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.to * @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.WaitForStateTransitionResultRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -20111,23 +20419,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = f /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.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.WaitForStateTransitionResultRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20135,8 +20443,8 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeB var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -20152,9 +20460,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeB * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20162,18 +20470,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.se /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter ); } }; @@ -20195,8 +20503,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject(opt_includeInstance, this); }; @@ -20205,14 +20513,17 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState * @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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - stateTransitionHash: msg.getStateTransitionHash_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + id: msg.getId_asB64(), + limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + startAtMs: jspb.Message.getFieldWithDefault(msg, 4, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 5, false) }; if (includeInstance) { @@ -20226,23 +20537,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.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.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20251,9 +20562,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStateTransitionHash(value); + msg.setId(value); break; case 2: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setLimit(value); + break; + case 3: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setOffset(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setStartAtMs(value); + break; + case 5: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); break; @@ -20270,9 +20595,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20280,23 +20605,46 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStateTransitionHash_asU8(); + f = message.getId_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } + f = message.getLimit(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOffset(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getStartAtMs(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } f = message.getProve(); if (f) { writer.writeBool( - 2, + 5, f ); } @@ -20304,89 +20652,181 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForState /** - * optional bytes state_transition_hash = 1; + * optional bytes id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes state_transition_hash = 1; - * This is a type-conversion wrapper around `getStateTransitionHash()` + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStateTransitionHash())); + this.getId())); }; /** - * optional bytes state_transition_hash = 1; + * optional bytes id = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStateTransitionHash()` + * This is a type-conversion wrapper around `getId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStateTransitionHash())); + this.getId())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setStateTransitionHash = function(value) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} + * optional google.protobuf.UInt32Value limit = 2; + * @return {?proto.google.protobuf.UInt32Value} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getLimit = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** - * optional WaitForStateTransitionResultRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearLimit = function() { + return this.setLimit(undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0], value); + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.UInt32Value offset = 3; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getOffset = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.clearOffset = function() { + return this.setOffset(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint64 start_at_ms = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getStartAtMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setStartAtMs = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional bool prove = 5; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional GetDataContractHistoryRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.GetDataContractHistoryRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -20395,7 +20835,7 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.cl * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -20409,21 +20849,21 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.ha * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0])); }; @@ -20441,8 +20881,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject(opt_includeInstance, this); }; @@ -20451,13 +20891,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.t * @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.WaitForStateTransitionResultResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -20471,23 +20911,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.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.WaitForStateTransitionResultResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20495,8 +20935,8 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserialize var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -20512,9 +20952,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserialize * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20522,18 +20962,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.s /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter ); } }; @@ -20548,22 +20988,22 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBi * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase = { RESULT_NOT_SET: 0, - ERROR: 1, + DATA_CONTRACT_HISTORY: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0])); }; @@ -20581,8 +21021,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject(opt_includeInstance, this); }; @@ -20591,13 +21031,13 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat * @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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - error: (f = msg.getError()) && proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(includeInstance, f), + dataContractHistory: (f = msg.getDataContractHistory()) && proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -20613,23 +21053,23 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; - return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20637,9 +21077,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.deserializeBinaryFromReader); - msg.setError(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader); + msg.setDataContractHistory(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -20664,9 +21104,9 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20674,18 +21114,18 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getError(); + f = message.getDataContractHistory(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter ); } f = message.getProof(); @@ -20707,179 +21147,197 @@ proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStat }; -/** - * optional StateTransitionBroadcastError error = 1; - * @return {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getError = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setError = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); -}; - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearError = function() { - return this.setError(undefined); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Returns whether this field is set. - * @return {boolean} + * 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.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasError = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject(opt_includeInstance, this); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * 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.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject = function(includeInstance, msg) { + var f, obj = { + date: jspb.Message.getFieldWithDefault(msg, 1, 0), + value: msg.getValue_asB64() + }; -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader(msg, reader); }; /** - * Returns whether this field is set. - * @return {boolean} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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.setDate(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDate(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getValue_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + * optional uint64 date = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getDate = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setDate = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional WaitForStateTransitionResultResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + * optional bytes value = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0], value); + * optional bytes value = 2; + * This is a type-conversion wrapper around `getValue()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getValue())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this + * optional bytes value = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getValue()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.getValue_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getValue())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} returns this */ -proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.prototype.setValue = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; /** - * 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>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.repeatedFields_ = [1]; @@ -20896,8 +21354,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject(opt_includeInstance, this); }; @@ -20906,13 +21364,14 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = f * @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.GetConsensusParamsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(includeInstance, f) + dataContractEntriesList: jspb.Message.toObjectList(msg.getDataContractEntriesList(), + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.toObject, includeInstance) }; if (includeInstance) { @@ -20926,23 +21385,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(in /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory; + return proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.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.GetConsensusParamsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -20950,9 +21409,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromR var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.deserializeBinaryFromReader); + msg.addDataContractEntries(value); break; default: reader.skipField(); @@ -20967,9 +21426,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromR * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -20977,207 +21436,196 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBin /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDataContractEntriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry.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} + * repeated DataContractHistoryEntry data_contract_entries = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.getDataContractEntriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, 1)); }; /** - * 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.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - height: jspb.Message.getFieldWithDefault(msg, 1, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.setDataContractEntriesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.addDataContractEntries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistoryEntry, opt_index); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory.prototype.clearDataContractEntriesList = function() { + return this.setDataContractEntriesList([]); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * optional DataContractHistory data_contract_history = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setHeight(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getDataContractHistory = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory, 1)); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.DataContractHistory|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setDataContractHistory = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearDataContractHistory = function() { + return this.setDataContractHistory(undefined); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getHeight(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 2, - f - ); - } +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasDataContractHistory = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional int32 height = 1; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setHeight = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * optional bool prove = 2; + * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional GetConsensusParamsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetDataContractHistoryResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.GetDataContractHistoryResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -21186,7 +21634,7 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = fu * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDataContractHistoryResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -21200,21 +21648,21 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = func * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0])); }; @@ -21232,8 +21680,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject(opt_includeInstance, this); }; @@ -21242,13 +21690,13 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = * @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.GetConsensusParamsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -21262,23 +21710,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(i /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest; + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.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.GetConsensusParamsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -21286,8 +21734,8 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFrom var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -21303,9 +21751,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFrom * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -21313,24 +21761,50 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBi /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter ); } }; +/** + * 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.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_ = [[6,7]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase = { + START_NOT_SET: 0, + START_AFTER: 6, + START_AT: 7 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.StartCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -21346,8 +21820,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject(opt_includeInstance, this); }; @@ -21356,15 +21830,20 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. * @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.GetConsensusParamsResponse.ConsensusParamsBlock} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - maxBytes: jspb.Message.getFieldWithDefault(msg, 1, ""), - maxGas: jspb.Message.getFieldWithDefault(msg, 2, ""), - timeIotaMs: jspb.Message.getFieldWithDefault(msg, 3, "") + dataContractId: msg.getDataContractId_asB64(), + documentType: jspb.Message.getFieldWithDefault(msg, 2, ""), + where: msg.getWhere_asB64(), + orderBy: msg.getOrderBy_asB64(), + limit: jspb.Message.getFieldWithDefault(msg, 5, 0), + startAfter: msg.getStartAfter_asB64(), + startAt: msg.getStartAt_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) }; if (includeInstance) { @@ -21378,23 +21857,23 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0; + return proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.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.GetConsensusParamsResponse.ConsensusParamsBlock} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -21402,16 +21881,36 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxBytes(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDataContractId(value); break; case 2: var value = /** @type {string} */ (reader.readString()); - msg.setMaxGas(value); + msg.setDocumentType(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTimeIotaMs(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setWhere(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setOrderBy(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 6: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAfter(value); + break; + case 7: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartAt(value); + break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -21426,9 +21925,9 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -21436,433 +21935,341 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getMaxBytes(); + f = message.getDataContractId_asU8(); if (f.length > 0) { - writer.writeString( + writer.writeBytes( 1, f ); } - f = message.getMaxGas(); + f = message.getDocumentType(); if (f.length > 0) { writer.writeString( 2, f ); } - f = message.getTimeIotaMs(); + f = message.getWhere_asU8(); if (f.length > 0) { - writer.writeString( + writer.writeBytes( 3, f ); } + f = message.getOrderBy_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getLimit(); + if (f !== 0) { + writer.writeUint32( + 5, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 6)); + if (f != null) { + writer.writeBytes( + 6, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeBytes( + 7, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 8, + f + ); + } }; /** - * optional string max_bytes = 1; + * optional bytes data_contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxBytes = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * optional bytes data_contract_id = 1; + * This is a type-conversion wrapper around `getDataContractId()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxBytes = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDataContractId())); }; /** - * optional string max_gas = 2; + * optional bytes data_contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDataContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDataContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDataContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDataContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type = 2; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxGas = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getDocumentType = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxGas = function(value) { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setDocumentType = function(value) { return jspb.Message.setProto3StringField(this, 2, value); }; /** - * optional string time_iota_ms = 3; + * optional bytes where = 3; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getTimeIotaMs = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this + * optional bytes where = 3; + * This is a type-conversion wrapper around `getWhere()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setTimeIotaMs = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getWhere())); }; - - - -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} + * optional bytes where = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getWhere()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getWhere_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getWhere())); }; /** - * 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.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject = function(includeInstance, msg) { - var f, obj = { - maxAgeNumBlocks: jspb.Message.getFieldWithDefault(msg, 1, ""), - maxAgeDuration: jspb.Message.getFieldWithDefault(msg, 2, ""), - maxBytes: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setWhere = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + * optional bytes order_by = 4; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + * optional bytes order_by = 4; + * This is a type-conversion wrapper around `getOrderBy()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxAgeNumBlocks(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxAgeDuration(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setMaxBytes(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getOrderBy())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes order_by = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getOrderBy()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getOrderBy_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getOrderBy())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getMaxAgeNumBlocks(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getMaxAgeDuration(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getMaxBytes(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setOrderBy = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); }; /** - * optional string max_age_num_blocks = 1; - * @return {string} + * optional uint32 limit = 5; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeNumBlocks = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeNumBlocks = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); }; /** - * optional string max_age_duration = 2; + * optional bytes start_after = 6; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeDuration = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeDuration = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); }; /** - * optional string max_bytes = 3; + * optional bytes start_after = 6; + * This is a type-conversion wrapper around `getStartAfter()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxBytes = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAfter())); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + * optional bytes start_after = 6; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAfter()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxBytes = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAfter_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAfter())); }; - - - -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} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAfter = function(value) { + return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); }; /** - * 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.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - block: (f = msg.getBlock()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(includeInstance, f), - evidence: (f = msg.getEvidence()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAfter = function() { + return jspb.Message.setOneofField(this, 6, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; - return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAfter = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * optional bytes start_at = 7; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.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.GetConsensusParamsResponse.ConsensusParamsBlock; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader); - msg.setBlock(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader); - msg.setEvidence(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional bytes start_at = 7; + * This is a type-conversion wrapper around `getStartAt()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAt())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional bytes start_at = 7; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAt()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getBlock(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter - ); - } - f = message.getEvidence(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getStartAt_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAt())); }; /** - * optional ConsensusParamsBlock block = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getBlock = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setBlock = function(value) { - return jspb.Message.setWrapperField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setStartAt = function(value) { + return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearBlock = function() { - return this.setBlock(undefined); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.clearStartAt = function() { + return jspb.Message.setOneofField(this, 7, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.oneofGroups_[0], undefined); }; @@ -21870,72 +22277,53 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsRes * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasBlock = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional ConsensusParamsEvidence evidence = 2; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} - */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getEvidence = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setEvidence = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.hasStartAt = function() { + return jspb.Message.getField(this, 7) != null; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + * optional bool prove = 8; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearEvidence = function() { - return this.setEvidence(undefined); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasEvidence = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); }; /** - * optional GetConsensusParamsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + * optional GetDocumentsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsRequest.GetDocumentsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -21944,7 +22332,7 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = f * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -21958,21 +22346,21 @@ proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.hasV0 = fun * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0])); }; @@ -21990,8 +22378,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject(opt_includeInstance, this); }; @@ -22000,13 +22388,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype. * @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.GetProtocolVersionUpgradeStateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22020,23 +22408,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.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.GetProtocolVersionUpgradeStateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22044,8 +22432,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -22061,9 +22449,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22071,24 +22459,50 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter ); } }; +/** + * 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.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + DOCUMENTS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -22104,8 +22518,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject(opt_includeInstance, this); }; @@ -22114,13 +22528,15 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco * @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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + documents: (f = msg.getDocuments()) && proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -22134,23 +22550,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.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.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22158,8 +22574,19 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader); + msg.setDocuments(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -22174,9 +22601,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22184,102 +22611,46 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtoco /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getDocuments(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; -/** - * optional bool prove = 1; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); -}; - /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} returns this + * List of repeated fields within this message type. + * @private {!Array} + * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); -}; - - -/** - * optional GetProtocolVersionUpgradeStateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.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.GetProtocolVersionUpgradeStateResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0])); -}; +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.repeatedFields_ = [1]; @@ -22296,8 +22667,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject(opt_includeInstance, this); }; @@ -22306,13 +22677,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * @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.GetProtocolVersionUpgradeStateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(includeInstance, f) + documentsList: msg.getDocumentsList_asB64() }; if (includeInstance) { @@ -22326,23 +22697,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents; + return proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.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.GetProtocolVersionUpgradeStateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22350,9 +22721,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addDocuments(value); break; default: reader.skipField(); @@ -22367,9 +22737,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22377,23 +22747,231 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getDocumentsList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter + f ); } }; +/** + * repeated bytes documents = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * repeated bytes documents = 1; + * This is a type-conversion wrapper around `getDocumentsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getDocumentsList())); +}; + + +/** + * repeated bytes documents = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocumentsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.getDocumentsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getDocumentsList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.setDocumentsList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.addDocuments = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents.prototype.clearDocumentsList = function() { + return this.setDocumentsList([]); +}; + + +/** + * optional Documents documents = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getDocuments = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.Documents|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setDocuments = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearDocuments = function() { + return this.setDocuments(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasDocuments = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetDocumentsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetDocumentsResponse.GetDocumentsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetDocumentsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetDocumentsResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetDocumentsResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; +}; + + /** * Oneof group definitions for this message. Each group defines the field @@ -22403,22 +22981,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serialize * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VERSIONS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0])); }; @@ -22436,8 +23013,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject(opt_includeInstance, this); }; @@ -22446,15 +23023,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.toObject = function(includeInstance, msg) { var f, obj = { - versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22468,23 +23043,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22492,19 +23067,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader); - msg.setVersions(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -22519,9 +23084,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22529,47 +23094,24 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersions(); + f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.repeatedFields_ = [1]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -22585,8 +23127,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject(opt_includeInstance, this); }; @@ -22595,14 +23137,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - versionsList: jspb.Message.toObjectList(msg.getVersionsList(), - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject, includeInstance) + publicKeyHash: msg.getPublicKeyHash_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -22616,23 +23158,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22640,9 +23182,12 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader); - msg.addVersions(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPublicKeyHash(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -22657,9 +23202,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22667,64 +23212,154 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionsList(); + f = message.getPublicKeyHash_asU8(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f ); } }; /** - * repeated VersionEntry versions = 1; - * @return {!Array} + * optional bytes public_key_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.getVersionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.setVersionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * optional bytes public_key_hash = 1; + * This is a type-conversion wrapper around `getPublicKeyHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPublicKeyHash())); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * optional bytes public_key_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPublicKeyHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.addVersions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, opt_index); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getPublicKeyHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPublicKeyHash())); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.clearVersionsList = function() { - return this.setVersionsList([]); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setPublicKeyHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; - - - +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional GetIdentityByPublicKeyHashRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.GetIdentityByPublicKeyHashRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashRequest.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.GetIdentityByPublicKeyHashResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0])); +}; + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -22738,8 +23373,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject(opt_includeInstance, this); }; @@ -22748,14 +23383,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * @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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.toObject = function(includeInstance, msg) { var f, obj = { - versionNumber: jspb.Message.getFieldWithDefault(msg, 1, 0), - voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -22769,23 +23403,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -22793,12 +23427,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVersionNumber(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVoteCount(value); + var value = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -22813,9 +23444,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -22823,90 +23454,237 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionNumber(); - if (f !== 0) { - writer.writeUint32( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter ); } - f = message.getVoteCount(); - if (f !== 0) { - writer.writeUint32( - 2, - f - ); +}; + + + +/** + * 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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + IDENTITY: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + identity: msg.getIdentity_asB64(), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; } + return obj; }; +} /** - * optional uint32 version_number = 1; - * @return {number} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVersionNumber = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0; + return proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.deserializeBinaryFromReader(msg, reader); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVersionNumber = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.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.setIdentity(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional uint32 vote_count = 2; - * @return {number} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVoteCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVoteCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; /** - * optional Versions versions = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} + * optional bytes identity = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getVersions = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setVersions = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); + * optional bytes identity = 1; + * This is a type-conversion wrapper around `getIdentity()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentity())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * optional bytes identity = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentity()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearVersions = function() { - return this.setVersions(undefined); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getIdentity_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentity())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setIdentity = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearIdentity = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], undefined); }; @@ -22914,7 +23692,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasVersions = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasIdentity = function() { return jspb.Message.getField(this, 1) != null; }; @@ -22923,7 +23701,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -22931,18 +23709,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -22951,7 +23729,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -22960,7 +23738,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -22968,18 +23746,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -22988,35 +23766,35 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtoc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetProtocolVersionUpgradeStateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} + * optional GetIdentityByPublicKeyHashResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.GetIdentityByPublicKeyHashResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -23025,7 +23803,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetIdentityByPublicKeyHashResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -23039,21 +23817,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0])); }; @@ -23071,8 +23849,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject(opt_includeInstance, this); }; @@ -23081,13 +23859,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * @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.GetProtocolVersionUpgradeVoteStatusRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23101,23 +23879,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObj /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.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.GetProtocolVersionUpgradeVoteStatusRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23125,8 +23903,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deser var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -23142,9 +23920,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deser * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23152,18 +23930,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter ); } }; @@ -23185,8 +23963,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject(opt_includeInstance, this); }; @@ -23195,15 +23973,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr * @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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - startProTxHash: msg.getStartProTxHash_asB64(), - count: jspb.Message.getFieldWithDefault(msg, 2, 0), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) + stateTransitionHash: msg.getStateTransitionHash_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -23217,23 +23994,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.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.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23242,13 +24019,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartProTxHash(value); + msg.setStateTransitionHash(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 3: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); break; @@ -23265,9 +24038,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23275,30 +24048,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartProTxHash_asU8(); + f = message.getStateTransitionHash_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getCount(); - if (f !== 0) { - writer.writeUint32( - 2, - f - ); - } f = message.getProve(); if (f) { writer.writeBool( - 3, + 2, f ); } @@ -23306,107 +24072,89 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetPr /** - * optional bytes start_pro_tx_hash = 1; + * optional bytes state_transition_hash = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes start_pro_tx_hash = 1; - * This is a type-conversion wrapper around `getStartProTxHash()` + * optional bytes state_transition_hash = 1; + * This is a type-conversion wrapper around `getStateTransitionHash()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asB64 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartProTxHash())); + this.getStateTransitionHash())); }; /** - * optional bytes start_pro_tx_hash = 1; + * optional bytes state_transition_hash = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartProTxHash()` + * This is a type-conversion wrapper around `getStateTransitionHash()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asU8 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getStateTransitionHash_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartProTxHash())); + this.getStateTransitionHash())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setStartProTxHash = function(value) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setStateTransitionHash = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional uint32 count = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional bool prove = 3; + * optional bool prove = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetProtocolVersionUpgradeVoteStatusRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} + * optional WaitForStateTransitionResultRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0, 1)); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.WaitForStateTransitionResultRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -23415,7 +24163,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -23429,21 +24177,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.proto * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0])); }; @@ -23461,8 +24209,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject(opt_includeInstance, this); }; @@ -23471,13 +24219,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * @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.GetProtocolVersionUpgradeVoteStatusResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23491,23 +24239,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toOb /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.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.GetProtocolVersionUpgradeVoteStatusResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23515,8 +24263,8 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.dese var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -23532,9 +24280,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.dese * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23542,18 +24290,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter ); } }; @@ -23568,22 +24316,22 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.seri * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase = { RESULT_NOT_SET: 0, - VERSIONS: 1, + ERROR: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0])); }; @@ -23601,8 +24349,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject(opt_includeInstance, this); }; @@ -23611,13 +24359,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(includeInstance, f), + error: (f = msg.getError()) && proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -23633,23 +24381,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0; + return proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23657,9 +24405,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader); - msg.setVersions(value); + var value = new proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.deserializeBinaryFromReader); + msg.setError(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -23684,9 +24432,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23694,18 +24442,18 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersions(); + f = message.getError(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError.serializeBinaryToWriter ); } f = message.getProof(); @@ -23727,13 +24475,179 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP }; +/** + * optional StateTransitionBroadcastError error = 1; + * @return {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getError = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.StateTransitionBroadcastError|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setError = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearError = function() { + return this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional WaitForStateTransitionResultResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.WaitForStateTransitionResultResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse} returns this + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.WaitForStateTransitionResultResponse.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0])); +}; @@ -23750,8 +24664,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject(opt_includeInstance, this); }; @@ -23760,14 +24674,13 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.toObject = function(includeInstance, msg) { var f, obj = { - versionSignalsList: jspb.Message.toObjectList(msg.getVersionSignalsList(), - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -23781,23 +24694,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23805,9 +24718,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader); - msg.addVersionSignals(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -23822,9 +24735,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23832,61 +24745,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVersionSignalsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated VersionSignal version_signals = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.getVersionSignalsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.setVersionSignalsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.addVersionSignals = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.clearVersionSignalsList = function() { - return this.setVersionSignalsList([]); -}; - - @@ -23903,8 +24778,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject(opt_includeInstance, this); }; @@ -23913,14 +24788,14 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * @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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - proTxHash: msg.getProTxHash_asB64(), - version: jspb.Message.getFieldWithDefault(msg, 2, 0) + height: jspb.Message.getFieldWithDefault(msg, 1, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -23934,23 +24809,23 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; - return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -23958,12 +24833,12 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setProTxHash(value); + var value = /** @type {number} */ (reader.readInt32()); + msg.setHeight(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVersion(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -23978,9 +24853,9 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -23988,22 +24863,22 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProTxHash_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getHeight(); + if (f !== 0) { + writer.writeInt32( 1, f ); } - f = message.getVersion(); - if (f !== 0) { - writer.writeUint32( + f = message.getProve(); + if (f) { + writer.writeBool( 2, f ); @@ -24012,200 +24887,65 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetP /** - * optional bytes pro_tx_hash = 1; - * @return {string} + * optional int32 height = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * optional bytes pro_tx_hash = 1; - * This is a type-conversion wrapper around `getProTxHash()` - * @return {string} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getProTxHash())); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setHeight = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional bytes pro_tx_hash = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getProTxHash()` - * @return {!Uint8Array} + * optional bool prove = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getProTxHash())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setProTxHash = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional uint32 version = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getVersion = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setVersion = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional VersionSignals versions = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getVersions = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setVersions = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearVersions = function() { - return this.setVersions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasVersions = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * optional GetProtocolVersionUpgradeVoteStatusResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} + * optional GetConsensusParamsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.GetConsensusParamsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -24214,7 +24954,7 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -24228,21 +24968,21 @@ proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prot * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0])); }; @@ -24260,8 +25000,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject(opt_includeInstance, this); }; @@ -24270,13 +25010,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = functi * @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.GetEpochsInfoRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -24290,23 +25030,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(include /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.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.GetEpochsInfoRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24314,8 +25054,8 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -24331,9 +25071,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24341,18 +25081,18 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter ); } }; @@ -24374,8 +25114,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(opt_includeInstance, this); }; @@ -24384,16 +25124,15 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prot * @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.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject = function(includeInstance, msg) { var f, obj = { - startEpoch: (f = msg.getStartEpoch()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 2, 0), - ascending: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) + maxBytes: jspb.Message.getFieldWithDefault(msg, 1, ""), + maxGas: jspb.Message.getFieldWithDefault(msg, 2, ""), + timeIotaMs: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -24407,23 +25146,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toOb /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.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.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24431,21 +25170,16 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.dese var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setStartEpoch(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxBytes(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxGas(value); break; case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAscending(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {string} */ (reader.readString()); + msg.setTimeIotaMs(value); break; default: reader.skipField(); @@ -24460,9 +25194,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.dese * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24470,198 +25204,91 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartEpoch(); - if (f != null) { - writer.writeMessage( + f = message.getMaxBytes(); + if (f.length > 0) { + writer.writeString( 1, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + f ); } - f = message.getCount(); - if (f !== 0) { - writer.writeUint32( + f = message.getMaxGas(); + if (f.length > 0) { + writer.writeString( 2, f ); } - f = message.getAscending(); - if (f) { - writer.writeBool( + f = message.getTimeIotaMs(); + if (f.length > 0) { + writer.writeString( 3, f ); } - f = message.getProve(); - if (f) { - writer.writeBool( - 4, - f - ); - } -}; - - -/** - * optional google.protobuf.UInt32Value start_epoch = 1; - * @return {?proto.google.protobuf.UInt32Value} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getStartEpoch = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 1)); -}; - - -/** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setStartEpoch = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.clearStartEpoch = function() { - return this.setStartEpoch(undefined); }; /** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.hasStartEpoch = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional uint32 count = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setCount = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional bool ascending = 3; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + * optional string max_bytes = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxBytes = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bool prove = 4; - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxBytes = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + * optional string max_gas = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getMaxGas = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * optional GetEpochsInfoRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setMaxGas = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this + * optional string time_iota_ms = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.getTimeIotaMs = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.prototype.setTimeIotaMs = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; -/** - * 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.GetEpochsInfoResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -24677,8 +25304,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(opt_includeInstance, this); }; @@ -24687,13 +25314,15 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = funct * @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.GetEpochsInfoResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(includeInstance, f) + maxAgeNumBlocks: jspb.Message.getFieldWithDefault(msg, 1, ""), + maxAgeDuration: jspb.Message.getFieldWithDefault(msg, 2, ""), + maxBytes: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -24707,23 +25336,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includ /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.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.GetEpochsInfoResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24731,9 +25360,16 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReade var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {string} */ (reader.readString()); + msg.setMaxAgeNumBlocks(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setMaxAgeDuration(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setMaxBytes(value); break; default: reader.skipField(); @@ -24748,9 +25384,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReade * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24758,52 +25394,93 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getMaxAgeNumBlocks(); + if (f.length > 0) { + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getMaxAgeDuration(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getMaxBytes(); + if (f.length > 0) { + writer.writeString( + 3, + f ); } }; - /** - * 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 + * optional string max_age_num_blocks = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeNumBlocks = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + /** - * @enum {number} + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - EPOCHS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeNumBlocks = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} + * optional string max_age_duration = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxAgeDuration = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxAgeDuration = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string max_bytes = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.getMaxBytes = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.prototype.setMaxBytes = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -24817,8 +25494,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject(opt_includeInstance, this); }; @@ -24827,15 +25504,14 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.pr * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - epochs: (f = msg.getEpochs()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + block: (f = msg.getBlock()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.toObject(includeInstance, f), + evidence: (f = msg.getEvidence()) && proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.toObject(includeInstance, f) }; if (includeInstance) { @@ -24849,23 +25525,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.to /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0; + return proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -24873,19 +25549,14 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.de var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader); - msg.setEpochs(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.deserializeBinaryFromReader); + msg.setBlock(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.deserializeBinaryFromReader); + msg.setEvidence(value); break; default: reader.skipField(); @@ -24900,9 +25571,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.de * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -24910,46 +25581,167 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.pr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEpochs(); + f = message.getBlock(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock.serializeBinaryToWriter ); } - f = message.getProof(); + f = message.getEvidence(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence.serializeBinaryToWriter ); } }; +/** + * optional ConsensusParamsBlock block = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getBlock = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsBlock|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setBlock = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearBlock = function() { + return this.setBlock(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasBlock = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional ConsensusParamsEvidence evidence = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.getEvidence = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.ConsensusParamsEvidence|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.setEvidence = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.clearEvidence = function() { + return this.setEvidence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0.prototype.hasEvidence = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional GetConsensusParamsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.GetConsensusParamsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetConsensusParamsResponse.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0])); +}; @@ -24966,8 +25758,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject(opt_includeInstance, this); }; @@ -24976,14 +25768,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.toObject = function(includeInstance, msg) { var f, obj = { - epochInfosList: jspb.Message.toObjectList(msg.getEpochInfosList(), - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject, includeInstance) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -24997,23 +25788,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25021,9 +25812,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader); - msg.addEpochInfos(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -25038,9 +25829,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25048,61 +25839,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEpochInfosList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated EpochInfo epoch_infos = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.getEpochInfosList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.setEpochInfosList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.addEpochInfos = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.clearEpochInfosList = function() { - return this.setEpochInfosList([]); -}; - - @@ -25119,8 +25872,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject(opt_includeInstance, this); }; @@ -25129,18 +25882,13 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * @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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - number: jspb.Message.getFieldWithDefault(msg, 1, 0), - firstBlockHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), - firstCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), - startTime: jspb.Message.getFieldWithDefault(msg, 4, 0), - feeMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0), - protocolVersion: jspb.Message.getFieldWithDefault(msg, 6, 0) + prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) }; if (includeInstance) { @@ -25154,23 +25902,23 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; - return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25178,28 +25926,8 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint32()); - msg.setNumber(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFirstBlockHeight(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFirstCoreBlockHeight(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartTime(value); - break; - case 5: - var value = /** @type {number} */ (reader.readDouble()); - msg.setFeeMultiplier(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setProtocolVersion(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -25214,9 +25942,9 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25224,337 +25952,101 @@ proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.Ep /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getNumber(); - if (f !== 0) { - writer.writeUint32( + f = message.getProve(); + if (f) { + writer.writeBool( 1, f ); } - f = message.getFirstBlockHeight(); - if (f !== 0) { - writer.writeUint64( - 2, - f - ); - } - f = message.getFirstCoreBlockHeight(); - if (f !== 0) { - writer.writeUint32( - 3, - f - ); - } - f = message.getStartTime(); - if (f !== 0) { - writer.writeUint64( - 4, - f - ); - } - f = message.getFeeMultiplier(); - if (f !== 0.0) { - writer.writeDouble( - 5, - f - ); - } - f = message.getProtocolVersion(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } }; /** - * optional uint32 number = 1; - * @return {number} + * optional bool prove = 1; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getNumber = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setNumber = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; /** - * optional uint64 first_block_height = 2; - * @return {number} + * optional GetProtocolVersionUpgradeStateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.GetProtocolVersionUpgradeStateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.oneofGroups_[0], value); }; /** - * optional uint32 first_core_block_height = 3; - * @return {number} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstCoreBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstCoreBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; + /** - * optional uint64 start_time = 4; - * @return {number} + * 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getStartTime = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setStartTime = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional double fee_multiplier = 5; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFeeMultiplier = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFeeMultiplier = function(value) { - return jspb.Message.setProto3FloatField(this, 5, value); -}; - - -/** - * optional uint32 protocol_version = 6; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getProtocolVersion = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setProtocolVersion = function(value) { - return jspb.Message.setProto3IntField(this, 6, value); -}; - - -/** - * optional EpochInfos epochs = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getEpochs = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setEpochs = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearEpochs = function() { - return this.setEpochs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasEpochs = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional GetEpochsInfoResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.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.GetContestedResourcesRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0])); }; @@ -25572,8 +26064,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject(opt_includeInstance, this); }; @@ -25582,13 +26074,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject * @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.GetContestedResourcesRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -25602,23 +26094,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.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.GetContestedResourcesRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25626,8 +26118,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFr var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -25643,9 +26135,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25653,18 +26145,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serialize /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter ); } }; @@ -25672,11 +26164,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWr /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.repeatedFields_ = [4,5]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VERSIONS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0])); +}; @@ -25693,8 +26204,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject(opt_includeInstance, this); }; @@ -25703,21 +26214,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - startIndexValuesList: msg.getStartIndexValuesList_asB64(), - endIndexValuesList: msg.getEndIndexValuesList_asB64(), - startAtValueInfo: (f = msg.getStartAtValueInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 7, 0), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -25731,23 +26236,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25755,41 +26260,19 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader); + msg.setVersions(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addStartIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addEndIndexValues(value); - break; - case 6: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader); - msg.setStartAtValueInfo(value); - break; - case 7: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 9: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -25804,9 +26287,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25814,80 +26297,47 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getVersions(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getStartIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getEndIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter ); } - f = message.getStartAtValueInfo(); + f = message.getProof(); if (f != null) { writer.writeMessage( - 6, + 2, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 7)); + f = message.getMetadata(); if (f != null) { - writer.writeUint32( - 7, - f - ); - } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 9, - f + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -25903,8 +26353,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject(opt_includeInstance, this); }; @@ -25913,14 +26363,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * @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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.toObject = function(includeInstance, msg) { var f, obj = { - startValue: msg.getStartValue_asB64(), - startValueIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + versionsList: jspb.Message.toObjectList(msg.getVersionsList(), + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject, includeInstance) }; if (includeInstance) { @@ -25934,23 +26384,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -25958,12 +26408,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartValue(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartValueIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader); + msg.addVersions(value); break; default: reader.skipField(); @@ -25978,9 +26425,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -25988,314 +26435,246 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartValue_asU8(); + f = message.getVersionsList(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getStartValueIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter ); } }; /** - * optional bytes start_value = 1; - * @return {string} + * repeated VersionEntry versions = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.getVersionsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, 1)); }; /** - * optional bytes start_value = 1; - * This is a type-conversion wrapper around `getStartValue()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartValue())); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.setVersionsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bytes start_value = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartValue()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartValue())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValue = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bool start_value_included = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValueIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValueIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); -}; - - -/** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.addVersions = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry, opt_index); }; /** - * optional string index_name = 3; - * @return {string} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions.prototype.clearVersionsList = function() { + return this.setVersionsList([]); }; -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - -/** - * repeated bytes start_index_values = 4; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes start_index_values = 4; - * This is a type-conversion wrapper around `getStartIndexValuesList()` - * @return {!Array} + * 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.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getStartIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject(opt_includeInstance, this); }; /** - * repeated bytes start_index_values = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIndexValuesList()` - * @return {!Array} + * 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.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getStartIndexValuesList())); -}; - +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.toObject = function(includeInstance, msg) { + var f, obj = { + versionNumber: jspb.Message.getFieldWithDefault(msg, 1, 0), + voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; -/** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addStartIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartIndexValuesList = function() { - return this.setStartIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVersionNumber(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVoteCount(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * repeated bytes end_index_values = 5; - * @return {!Array} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * repeated bytes end_index_values = 5; - * This is a type-conversion wrapper around `getEndIndexValuesList()` - * @return {!Array} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getEndIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVersionNumber(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getVoteCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } }; /** - * repeated bytes end_index_values = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getEndIndexValuesList()` - * @return {!Array} + * optional uint32 version_number = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getEndIndexValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVersionNumber = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setEndIndexValuesList = function(value) { - return jspb.Message.setField(this, 5, value || []); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVersionNumber = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * optional uint32 vote_count = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addEndIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.getVoteCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearEndIndexValuesList = function() { - return this.setEndIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.VersionEntry.prototype.setVoteCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * optional StartAtValueInfo start_at_value_info = 6; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + * optional Versions versions = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartAtValueInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo, 6)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getVersions = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.Versions|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartAtValueInfo = function(value) { - return jspb.Message.setWrapperField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setVersions = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartAtValueInfo = function() { - return this.setStartAtValueInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearVersions = function() { + return this.setVersions(undefined); }; @@ -26303,35 +26682,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasStartAtValueInfo = function() { - return jspb.Message.getField(this, 6) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasVersions = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint32 count = 7; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 7, value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 7, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -26339,71 +26719,72 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourc * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 7) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional bool order_ascending = 8; - * @return {boolean} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * optional bool prove = 9; - * @return {boolean} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 9, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetContestedResourcesRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} + * optional GetProtocolVersionUpgradeStateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.GetProtocolVersionUpgradeStateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -26412,7 +26793,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeStateResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -26426,21 +26807,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = f * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0])); }; @@ -26458,8 +26839,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject(opt_includeInstance, this); }; @@ -26468,13 +26849,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject * @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.GetContestedResourcesResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -26488,23 +26869,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = functio /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.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.GetContestedResourcesResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -26512,8 +26893,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryF var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -26529,9 +26910,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryF * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -26539,50 +26920,24 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter ); } }; -/** - * 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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_VALUES: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -26598,8 +26953,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject(opt_includeInstance, this); }; @@ -26608,15 +26963,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour * @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.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceValues: (f = msg.getContestedResourceValues()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + startProTxHash: msg.getStartProTxHash_asB64(), + count: jspb.Message.getFieldWithDefault(msg, 2, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -26630,23 +26985,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -26654,19 +27009,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader); - msg.setContestedResourceValues(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setStartProTxHash(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -26681,9 +27033,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -26691,152 +27043,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceValues(); - if (f != null) { - writer.writeMessage( + f = message.getStartProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCount(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getProve(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.repeatedFields_ = [1]; - - - -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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject = function(includeInstance, msg) { - var f, obj = { - contestedResourceValuesList: msg.getContestedResourceValuesList_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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; - return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.addContestedResourceValues(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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContestedResourceValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 1, f ); } @@ -26844,201 +27074,107 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResour /** - * repeated bytes contested_resource_values = 1; - * @return {!Array} + * optional bytes start_pro_tx_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * repeated bytes contested_resource_values = 1; - * This is a type-conversion wrapper around `getContestedResourceValuesList()` - * @return {!Array} + * optional bytes start_pro_tx_hash = 1; + * This is a type-conversion wrapper around `getStartProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getContestedResourceValuesList())); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartProTxHash())); }; /** - * repeated bytes contested_resource_values = 1; + * optional bytes start_pro_tx_hash = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContestedResourceValuesList()` - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getContestedResourceValuesList())); -}; - - -/** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this + * This is a type-conversion wrapper around `getStartProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.setContestedResourceValuesList = function(value) { - return jspb.Message.setField(this, 1, value || []); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getStartProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartProTxHash())); }; /** * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.addContestedResourceValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.clearContestedResourceValuesList = function() { - return this.setContestedResourceValuesList([]); -}; - - -/** - * optional ContestedResourceValues contested_resource_values = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getContestedResourceValues = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setContestedResourceValues = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearContestedResourceValues = function() { - return this.setContestedResourceValues(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasContestedResourceValues = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setStartProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional uint32 count = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * Returns whether this field is set. + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetContestedResourcesResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} + * optional GetProtocolVersionUpgradeVoteStatusRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.GetProtocolVersionUpgradeVoteStatusRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -27047,7 +27183,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -27061,21 +27197,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0])); }; @@ -27093,8 +27229,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject(opt_includeInstance, this); }; @@ -27103,13 +27239,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject * @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.GetVotePollsByEndDateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -27123,23 +27259,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.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.GetVotePollsByEndDateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27147,8 +27283,8 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFr var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -27164,9 +27300,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFr * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27174,24 +27310,50 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serialize /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter ); } }; +/** + * 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.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VERSIONS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -27207,8 +27369,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject(opt_includeInstance, this); }; @@ -27217,18 +27379,15 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - startTimeInfo: (f = msg.getStartTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(includeInstance, f), - endTimeInfo: (f = msg.getEndTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(includeInstance, f), - limit: jspb.Message.getFieldWithDefault(msg, 3, 0), - offset: jspb.Message.getFieldWithDefault(msg, 4, 0), - ascending: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) + versions: (f = msg.getVersions()) && proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -27242,23 +27401,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27266,30 +27425,19 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader); - msg.setStartTimeInfo(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader); + msg.setVersions(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader); - msg.setEndTimeInfo(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLimit(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setOffset(value); - break; - case 5: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAscending(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -27304,9 +27452,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27314,60 +27462,47 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartTimeInfo(); + f = message.getVersions(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter ); } - f = message.getEndTimeInfo(); + f = message.getProof(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 3)); + f = message.getMetadata(); if (f != null) { - writer.writeUint32( + writer.writeMessage( 3, - f - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeUint32( - 4, - f - ); - } - f = message.getAscending(); - if (f) { - writer.writeBool( - 5, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 6, - f + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -27383,8 +27518,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject(opt_includeInstance, this); }; @@ -27393,14 +27528,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.toObject = function(includeInstance, msg) { var f, obj = { - startTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), - startTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + versionSignalsList: jspb.Message.toObjectList(msg.getVersionSignalsList(), + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject, includeInstance) }; if (includeInstance) { @@ -27414,23 +27549,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27438,12 +27573,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setStartTimeMs(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartTimeIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader); + msg.addVersionSignals(value); break; default: reader.skipField(); @@ -27458,9 +27590,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27468,62 +27600,58 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartTimeMs(); - if (f !== 0) { - writer.writeUint64( + f = message.getVersionSignalsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 1, - f - ); - } - f = message.getStartTimeIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter ); } }; /** - * optional uint64 start_time_ms = 1; - * @return {number} + * repeated VersionSignal version_signals = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.getVersionSignalsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.setVersionSignalsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * optional bool start_time_included = 2; - * @return {boolean} + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.addVersionSignals = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal, opt_index); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals.prototype.clearVersionSignalsList = function() { + return this.setVersionSignalsList([]); }; @@ -27543,8 +27671,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject(opt_includeInstance, this); }; @@ -27553,14 +27681,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * @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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.toObject = function(includeInstance, msg) { var f, obj = { - endTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), - endTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + proTxHash: msg.getProTxHash_asB64(), + version: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -27574,23 +27702,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal; + return proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -27598,12 +27726,12 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setEndTimeMs(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setEndTimeIncluded(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setVersion(value); break; default: reader.skipField(); @@ -27618,9 +27746,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -27628,22 +27756,22 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getEndTimeMs(); - if (f !== 0) { - writer.writeUint64( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, f ); } - f = message.getEndTimeIncluded(); - if (f) { - writer.writeBool( + f = message.getVersion(); + if (f !== 0) { + writer.writeUint32( 2, f ); @@ -27652,103 +27780,90 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa /** - * optional uint64 end_time_ms = 1; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + * optional bytes pro_tx_hash = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bool end_time_included = 2; - * @return {boolean} + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); }; /** - * optional StartAtTimeInfo start_time_info = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getStartTimeInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setStartTimeInfo = function(value) { - return jspb.Message.setWrapperField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * optional uint32 version = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearStartTimeInfo = function() { - return this.setStartTimeInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.getVersion = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasStartTimeInfo = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignal.prototype.setVersion = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * optional EndAtTimeInfo end_time_info = 2; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + * optional VersionSignals versions = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getEndTimeInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo, 2)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getVersions = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.VersionSignals|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setEndTimeInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setVersions = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearEndTimeInfo = function() { - return this.setEndTimeInfo(undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearVersions = function() { + return this.setVersions(undefined); }; @@ -27756,35 +27871,36 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasEndTimeInfo = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasVersions = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint32 limit = 3; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getLimit = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setField(this, 3, value); + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.oneofGroups_[0], value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearLimit = function() { - return jspb.Message.setField(this, 3, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; @@ -27792,35 +27908,36 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * optional uint32 offset = 4; - * @return {number} + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getOffset = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setField(this, 4, value); + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearOffset = function() { - return jspb.Message.setField(this, 4, undefined); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; @@ -27828,71 +27945,35 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDa * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional bool ascending = 5; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 5, value); -}; - - -/** - * optional bool prove = 6; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional GetVotePollsByEndDateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + * optional GetProtocolVersionUpgradeVoteStatusResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.GetProtocolVersionUpgradeVoteStatusResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -27901,7 +27982,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetProtocolVersionUpgradeVoteStatusResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -27915,21 +27996,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.hasV0 = f * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0])); }; @@ -27947,8 +28028,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject(opt_includeInstance, this); }; @@ -27957,13 +28038,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.toObject * @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.GetVotePollsByEndDateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -27977,23 +28058,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = functio /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.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.GetVotePollsByEndDateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28001,8 +28082,8 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryF var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -28018,9 +28099,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinaryF * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28028,50 +28109,24 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.serializ /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter ); } }; -/** - * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VOTE_POLLS_BY_TIMESTAMPS: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -28087,8 +28142,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject(opt_includeInstance, this); }; @@ -28097,15 +28152,16 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - votePollsByTimestamps: (f = msg.getVotePollsByTimestamps()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + startEpoch: (f = msg.getStartEpoch()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 2, 0), + ascending: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) }; if (includeInstance) { @@ -28119,23 +28175,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28143,19 +28199,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader); - msg.setVotePollsByTimestamps(value); + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setStartEpoch(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAscending(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -28170,9 +28228,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28180,46 +28238,197 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotePollsByTimestamps(); + f = message.getStartEpoch(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCount(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getAscending(); + if (f) { + writer.writeBool( 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 4, + f ); } }; +/** + * optional google.protobuf.UInt32Value start_epoch = 1; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getStartEpoch = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 1)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setStartEpoch = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + /** - * List of repeated fields within this message type. - * @private {!Array} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.clearStartEpoch = function() { + return this.setStartEpoch(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.hasStartEpoch = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional bool ascending = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional bool prove = 4; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional GetEpochsInfoRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.GetEpochsInfoRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoRequest.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.repeatedFields_ = [2]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0])); +}; @@ -28236,8 +28445,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject(opt_includeInstance, this); }; @@ -28246,14 +28455,13 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.toObject = function(includeInstance, msg) { var f, obj = { - timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0), - serializedVotePollsList: msg.getSerializedVotePollsList_asB64() + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -28267,23 +28475,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28291,12 +28499,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setTimestamp(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addSerializedVotePolls(value); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -28311,9 +28516,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28321,105 +28526,188 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getTimestamp(); - if (f !== 0) { - writer.writeUint64( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getSerializedVotePollsList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter ); } }; + /** - * optional uint64 timestamp = 1; - * @return {number} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getTimestamp = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_ = [[1,2]]; +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + EPOCHS: 1, + PROOF: 2 +}; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * @return {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setTimestamp = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0])); }; + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes serialized_vote_polls = 2; - * @return {!Array} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject(opt_includeInstance, this); }; /** - * repeated bytes serialized_vote_polls = 2; - * This is a type-conversion wrapper around `getSerializedVotePollsList()` - * @return {!Array} + * 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getSerializedVotePollsList())); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + epochs: (f = msg.getEpochs()) && proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * repeated bytes serialized_vote_polls = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getSerializedVotePollsList()` - * @return {!Array} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getSerializedVotePollsList())); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.deserializeBinaryFromReader(msg, reader); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setSerializedVotePollsList = function(value) { - return jspb.Message.setField(this, 2, value || []); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader); + msg.setEpochs(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.addSerializedVotePolls = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.clearSerializedVotePollsList = function() { - return this.setSerializedVotePollsList([]); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEpochs(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; @@ -28429,7 +28717,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.repeatedFields_ = [1]; @@ -28446,8 +28734,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject(opt_includeInstance, this); }; @@ -28456,15 +28744,14 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * @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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.toObject = function(includeInstance, msg) { var f, obj = { - votePollsByTimestampsList: jspb.Message.toObjectList(msg.getVotePollsByTimestampsList(), - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject, includeInstance), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + epochInfosList: jspb.Message.toObjectList(msg.getEpochInfosList(), + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject, includeInstance) }; if (includeInstance) { @@ -28478,23 +28765,23 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; - return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28502,13 +28789,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader); - msg.addVotePollsByTimestamps(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + var value = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader); + msg.addEpochInfos(value); break; default: reader.skipField(); @@ -28523,9 +28806,9 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28533,111 +28816,366 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotePollsByTimestampsList(); + f = message.getEpochInfosList(); if (f.length > 0) { writer.writeRepeatedMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter - ); - } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( - 2, - f + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter ); } }; /** - * repeated SerializedVotePollsByTimestamp vote_polls_by_timestamps = 1; - * @return {!Array} + * repeated EpochInfo epoch_infos = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getVotePollsByTimestampsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.getEpochInfosList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, 1)); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setVotePollsByTimestampsList = function(value) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.setEpochInfosList = function(value) { return jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp=} opt_value + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo=} opt_value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.addVotePollsByTimestamps = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, opt_index); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.addEpochInfos = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.clearVotePollsByTimestampsList = function() { - return this.setVotePollsByTimestampsList([]); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos.prototype.clearEpochInfosList = function() { + return this.setEpochInfosList([]); }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bool finished_results = 2; - * @return {boolean} + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject(opt_includeInstance, this); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns 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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.toObject = function(includeInstance, msg) { + var f, obj = { + number: jspb.Message.getFieldWithDefault(msg, 1, 0), + firstBlockHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), + firstCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), + startTime: jspb.Message.getFieldWithDefault(msg, 4, 0), + feeMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0), + protocolVersion: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional SerializedVotePollsByTimestamps vote_polls_by_timestamps = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getVotePollsByTimestamps = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo; + return proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader(msg, reader); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setNumber(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFirstBlockHeight(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFirstCoreBlockHeight(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setStartTime(value); + break; + case 5: + var value = /** @type {number} */ (reader.readDouble()); + msg.setFeeMultiplier(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setProtocolVersion(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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.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.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getNumber(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getFirstBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getFirstCoreBlockHeight(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getStartTime(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getFeeMultiplier(); + if (f !== 0.0) { + writer.writeDouble( + 5, + f + ); + } + f = message.getProtocolVersion(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * optional uint32 number = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getNumber = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setNumber = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 first_block_height = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint32 first_core_block_height = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFirstCoreBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFirstCoreBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint64 start_time = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getStartTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setStartTime = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional double fee_multiplier = 5; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getFeeMultiplier = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setFeeMultiplier = function(value) { + return jspb.Message.setProto3FloatField(this, 5, value); +}; + + +/** + * optional uint32 protocol_version = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.getProtocolVersion = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfo.prototype.setProtocolVersion = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional EpochInfos epochs = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} + */ +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getEpochs = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.EpochInfos|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setVotePollsByTimestamps = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setEpochs = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearVotePollsByTimestamps = function() { - return this.setVotePollsByTimestamps(undefined); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearEpochs = function() { + return this.setEpochs(undefined); }; @@ -28645,7 +29183,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasVotePollsByTimestamps = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasEpochs = function() { return jspb.Message.getField(this, 1) != null; }; @@ -28654,7 +29192,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -28662,18 +29200,18 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -28682,7 +29220,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -28691,7 +29229,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -28699,18 +29237,18 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -28719,35 +29257,35 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndD * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetVotePollsByEndDateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + * optional GetEpochsInfoResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.GetEpochsInfoResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -28756,7 +29294,7 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetEpochsInfoResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -28770,21 +29308,21 @@ proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.hasV0 = * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0])); }; @@ -28802,8 +29340,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject(opt_includeInstance, this); }; @@ -28812,13 +29350,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.t * @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.GetContestedResourceVoteStateRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -28832,23 +29370,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.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.GetContestedResourceVoteStateRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28856,8 +29394,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserialize var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -28873,9 +29411,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserialize * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -28883,18 +29421,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.s /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter ); } }; @@ -28906,7 +29444,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBi * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.repeatedFields_ = [4,5]; @@ -28923,8 +29461,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject(opt_includeInstance, this); }; @@ -28933,20 +29471,20 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.toObject = function(includeInstance, msg) { var f, obj = { contractId: msg.getContractId_asB64(), documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - resultType: jspb.Message.getFieldWithDefault(msg, 5, 0), - allowIncludeLockedAndAbstainingVoteTally: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), - startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 8, 0), + startIndexValuesList: msg.getStartIndexValuesList_asB64(), + endIndexValuesList: msg.getEndIndexValuesList_asB64(), + startAtValueInfo: (f = msg.getStartAtValueInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 7, 0), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) }; @@ -28961,23 +29499,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -28998,25 +29536,25 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste break; case 4: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); + msg.addStartIndexValues(value); break; case 5: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (reader.readEnum()); - msg.setResultType(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addEndIndexValues(value); break; case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowIncludeLockedAndAbstainingVoteTally(value); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader); + msg.setStartAtValueInfo(value); break; case 7: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); - msg.setStartAtIdentifierInfo(value); - break; - case 8: var value = /** @type {number} */ (reader.readUint32()); msg.setCount(value); break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; case 9: var value = /** @type {boolean} */ (reader.readBool()); msg.setProve(value); @@ -29034,9 +29572,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29044,11 +29582,11 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getContractId_asU8(); if (f.length > 0) { @@ -29071,38 +29609,38 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste f ); } - f = message.getIndexValuesList_asU8(); + f = message.getStartIndexValuesList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 4, f ); } - f = message.getResultType(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getEndIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 5, f ); } - f = message.getAllowIncludeLockedAndAbstainingVoteTally(); - if (f) { - writer.writeBool( - 6, - f - ); - } - f = message.getStartAtIdentifierInfo(); + f = message.getStartAtValueInfo(); if (f != null) { writer.writeMessage( - 7, + 6, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 8)); + f = /** @type {number} */ (jspb.Message.getField(message, 7)); if (f != null) { writer.writeUint32( + 7, + f + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( 8, f ); @@ -29117,15 +29655,6 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType = { - DOCUMENTS: 0, - VOTE_TALLY: 1, - DOCUMENTS_AND_VOTE_TALLY: 2 -}; - @@ -29142,8 +29671,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject(opt_includeInstance, this); }; @@ -29152,14 +29681,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * @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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.toObject = function(includeInstance, msg) { var f, obj = { - startIdentifier: msg.getStartIdentifier_asB64(), - startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + startValue: msg.getStartValue_asB64(), + startValueIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) }; if (includeInstance) { @@ -29173,23 +29702,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29198,11 +29727,11 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartIdentifier(value); + msg.setStartValue(value); break; case 2: var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartIdentifierIncluded(value); + msg.setStartValueIncluded(value); break; default: reader.skipField(); @@ -29217,9 +29746,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29227,20 +29756,20 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartIdentifier_asU8(); + f = message.getStartValue_asU8(); if (f.length > 0) { writer.writeBytes( 1, f ); } - f = message.getStartIdentifierIncluded(); + f = message.getStartValueIncluded(); if (f) { writer.writeBool( 2, @@ -29251,61 +29780,61 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** - * optional bytes start_identifier = 1; + * optional bytes start_value = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * optional bytes start_identifier = 1; - * This is a type-conversion wrapper around `getStartIdentifier()` + * optional bytes start_value = 1; + * This is a type-conversion wrapper around `getStartValue()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartIdentifier())); + this.getStartValue())); }; /** - * optional bytes start_identifier = 1; + * optional bytes start_value = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIdentifier()` + * This is a type-conversion wrapper around `getStartValue()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValue_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartIdentifier())); + this.getStartValue())); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValue = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool start_identifier_included = 2; + * optional bool start_value_included = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.getStartValueIncluded = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo.prototype.setStartValueIncluded = function(value) { return jspb.Message.setProto3BooleanField(this, 2, value); }; @@ -29314,7 +29843,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional bytes contract_id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; @@ -29324,7 +29853,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * This is a type-conversion wrapper around `getContractId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( this.getContractId())); }; @@ -29337,7 +29866,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * This is a type-conversion wrapper around `getContractId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getContractId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( this.getContractId())); }; @@ -29345,9 +29874,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setContractId = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setContractId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; @@ -29356,16 +29885,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional string document_type_name = 2; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getDocumentTypeName = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getDocumentTypeName = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setDocumentTypeName = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setDocumentTypeName = function(value) { return jspb.Message.setProto3StringField(this, 2, value); }; @@ -29374,58 +29903,58 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional string index_name = 3; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexName = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getIndexName = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexName = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setIndexName = function(value) { return jspb.Message.setProto3StringField(this, 3, value); }; /** - * repeated bytes index_values = 4; + * repeated bytes start_index_values = 4; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` + * repeated bytes start_index_values = 4; + * This is a type-conversion wrapper around `getStartIndexValuesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); + this.getStartIndexValuesList())); }; /** - * repeated bytes index_values = 4; + * repeated bytes start_index_values = 4; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` + * This is a type-conversion wrapper around `getStartIndexValuesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartIndexValuesList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); + this.getStartIndexValuesList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexValuesList = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartIndexValuesList = function(value) { return jspb.Message.setField(this, 4, value || []); }; @@ -29433,83 +29962,108 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.addIndexValues = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addStartIndexValues = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 4, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartIndexValuesList = function() { + return this.setStartIndexValuesList([]); }; /** - * optional ResultType result_type = 5; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} + * repeated bytes end_index_values = 5; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getResultType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * repeated bytes end_index_values = 5; + * This is a type-conversion wrapper around `getEndIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setResultType = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getEndIndexValuesList())); }; /** - * optional bool allow_include_locked_and_abstaining_vote_tally = 6; - * @return {boolean} + * repeated bytes end_index_values = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEndIndexValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getAllowIncludeLockedAndAbstainingVoteTally = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getEndIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getEndIndexValuesList())); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setAllowIncludeLockedAndAbstainingVoteTally = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setEndIndexValuesList = function(value) { + return jspb.Message.setField(this, 5, value || []); }; /** - * optional StartAtIdentifierInfo start_at_identifier_info = 7; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getStartAtIdentifierInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo, 7)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.addEndIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 5, value, opt_index); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearEndIndexValuesList = function() { + return this.setEndIndexValuesList([]); +}; + + +/** + * optional StartAtValueInfo start_at_value_info = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getStartAtValueInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo, 6)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.StartAtValueInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setStartAtIdentifierInfo = function(value) { - return jspb.Message.setWrapperField(this, 7, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setStartAtValueInfo = function(value) { + return jspb.Message.setWrapperField(this, 6, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearStartAtIdentifierInfo = function() { - return this.setStartAtIdentifierInfo(undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearStartAtValueInfo = function() { + return this.setStartAtValueInfo(undefined); }; @@ -29517,35 +30071,35 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasStartAtIdentifierInfo = function() { - return jspb.Message.getField(this, 7) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasStartAtValueInfo = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * optional uint32 count = 8; + * optional uint32 count = 7; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 7, value); }; /** * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 8, undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 7, undefined); }; @@ -29553,8 +30107,26 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 8) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional bool order_ascending = 8; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); }; @@ -29562,44 +30134,44 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetConteste * optional bool prove = 9; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getProve = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.getProve = function() { return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setProve = function(value) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0.prototype.setProve = function(value) { return jspb.Message.setProto3BooleanField(this, 9, value); }; /** - * optional GetContestedResourceVoteStateRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + * optional GetContestedResourcesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.GetContestedResourcesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -29608,7 +30180,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.c * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -29622,21 +30194,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.h * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0])); }; @@ -29654,8 +30226,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject(opt_includeInstance, this); }; @@ -29664,13 +30236,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * @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.GetContestedResourceVoteStateResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -29684,23 +30256,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.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.GetContestedResourceVoteStateResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29708,8 +30280,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -29725,9 +30297,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29735,18 +30307,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter ); } }; @@ -29761,22 +30333,22 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeB * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase = { RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_CONTENDERS: 1, + CONTESTED_RESOURCE_VALUES: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0])); }; @@ -29794,8 +30366,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject(opt_includeInstance, this); }; @@ -29804,13 +30376,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceContenders: (f = msg.getContestedResourceContenders()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(includeInstance, f), + contestedResourceValues: (f = msg.getContestedResourceValues()) && proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -29826,23 +30398,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29850,9 +30422,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader); - msg.setContestedResourceContenders(value); + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader); + msg.setContestedResourceValues(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -29877,9 +30449,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -29887,18 +30459,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceContenders(); + f = message.getContestedResourceValues(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter ); } f = message.getProof(); @@ -29921,6 +30493,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -29936,8 +30515,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject(opt_includeInstance, this); }; @@ -29946,18 +30525,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.toObject = function(includeInstance, msg) { var f, obj = { - finishedVoteOutcome: jspb.Message.getFieldWithDefault(msg, 1, 0), - wonByIdentityId: msg.getWonByIdentityId_asB64(), - finishedAtBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), - finishedAtCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), - finishedAtBlockTimeMs: jspb.Message.getFieldWithDefault(msg, 5, 0), - finishedAtEpoch: jspb.Message.getFieldWithDefault(msg, 6, 0) + contestedResourceValuesList: msg.getContestedResourceValuesList_asB64() }; if (includeInstance) { @@ -29971,23 +30545,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues; + return proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -29995,28 +30569,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (reader.readEnum()); - msg.setFinishedVoteOutcome(value); - break; - case 2: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setWonByIdentityId(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFinishedAtBlockHeight(value); - break; - case 4: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFinishedAtCoreBlockHeight(value); - break; - case 5: - var value = /** @type {number} */ (reader.readUint64()); - msg.setFinishedAtBlockTimeMs(value); - break; - case 6: - var value = /** @type {number} */ (reader.readUint32()); - msg.setFinishedAtEpoch(value); + msg.addContestedResourceValues(value); break; default: reader.skipField(); @@ -30031,9 +30585,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30041,132 +30595,108 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getFinishedVoteOutcome(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getContestedResourceValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( 1, f ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeBytes( - 2, - f - ); - } - f = message.getFinishedAtBlockHeight(); - if (f !== 0) { - writer.writeUint64( - 3, - f - ); - } - f = message.getFinishedAtCoreBlockHeight(); - if (f !== 0) { - writer.writeUint32( - 4, - f - ); - } - f = message.getFinishedAtBlockTimeMs(); - if (f !== 0) { - writer.writeUint64( - 5, - f - ); - } - f = message.getFinishedAtEpoch(); - if (f !== 0) { - writer.writeUint32( - 6, - f - ); - } }; /** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome = { - TOWARDS_IDENTITY: 0, - LOCKED: 1, - NO_PREVIOUS_WINNER: 2 -}; - -/** - * optional FinishedVoteOutcome finished_vote_outcome = 1; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} + * repeated bytes contested_resource_values = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedVoteOutcome = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * repeated bytes contested_resource_values = 1; + * This is a type-conversion wrapper around `getContestedResourceValuesList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedVoteOutcome = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getContestedResourceValuesList())); }; /** - * optional bytes won_by_identity_id = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); + * repeated bytes contested_resource_values = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContestedResourceValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.getContestedResourceValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getContestedResourceValuesList())); }; /** - * optional bytes won_by_identity_id = 2; - * This is a type-conversion wrapper around `getWonByIdentityId()` - * @return {string} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getWonByIdentityId())); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.setContestedResourceValuesList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** - * optional bytes won_by_identity_id = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getWonByIdentityId()` - * @return {!Uint8Array} + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getWonByIdentityId())); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.addContestedResourceValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setWonByIdentityId = function(value) { - return jspb.Message.setField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues.prototype.clearContestedResourceValuesList = function() { + return this.setContestedResourceValuesList([]); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * optional ContestedResourceValues contested_resource_values = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.clearWonByIdentityId = function() { - return jspb.Message.setField(this, 2, undefined); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getContestedResourceValues = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.ContestedResourceValues|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setContestedResourceValues = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearContestedResourceValues = function() { + return this.setContestedResourceValues(undefined); }; @@ -30174,90 +30704,147 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.hasWonByIdentityId = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasContestedResourceValues = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional uint64 finished_at_block_height = 3; - * @return {number} + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); }; /** - * optional uint32 finished_at_core_block_height = 4; - * @return {number} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtCoreBlockHeight = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtCoreBlockHeight = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; /** - * optional uint64 finished_at_block_time_ms = 5; - * @return {number} + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockTimeMs = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockTimeMs = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * optional uint32 finished_at_epoch = 6; - * @return {number} + * optional GetContestedResourcesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtEpoch = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0, 1)); }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.GetContestedResourcesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtEpoch = function(value) { - return jspb.Message.setProto3IntField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourcesResponse.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0])); +}; @@ -30274,8 +30861,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject(opt_includeInstance, this); }; @@ -30284,17 +30871,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.toObject = function(includeInstance, msg) { var f, obj = { - contendersList: jspb.Message.toObjectList(msg.getContendersList(), - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject, includeInstance), - abstainVoteTally: jspb.Message.getFieldWithDefault(msg, 2, 0), - lockVoteTally: jspb.Message.getFieldWithDefault(msg, 3, 0), - finishedVoteInfo: (f = msg.getFinishedVoteInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -30308,23 +30891,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -30332,22 +30915,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader); - msg.addContenders(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setAbstainVoteTally(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setLockVoteTally(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader); - msg.setFinishedVoteInfo(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -30362,9 +30932,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30372,192 +30942,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContendersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeUint32( - 2, - f - ); - } - f = /** @type {number} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeUint32( - 3, - f - ); - } - f = message.getFinishedVoteInfo(); + f = message.getV0(); if (f != null) { writer.writeMessage( - 4, + 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter ); } }; -/** - * repeated Contender contenders = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getContendersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setContendersList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.addContenders = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearContendersList = function() { - return this.setContendersList([]); -}; - - -/** - * optional uint32 abstain_vote_tally = 2; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getAbstainVoteTally = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setAbstainVoteTally = function(value) { - return jspb.Message.setField(this, 2, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearAbstainVoteTally = function() { - return jspb.Message.setField(this, 2, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasAbstainVoteTally = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional uint32 lock_vote_tally = 3; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getLockVoteTally = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setLockVoteTally = function(value) { - return jspb.Message.setField(this, 3, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearLockVoteTally = function() { - return jspb.Message.setField(this, 3, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasLockVoteTally = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional FinishedVoteInfo finished_vote_info = 4; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getFinishedVoteInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo, 4)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setFinishedVoteInfo = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearFinishedVoteInfo = function() { - return this.setFinishedVoteInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasFinishedVoteInfo = function() { - return jspb.Message.getField(this, 4) != null; -}; - - @@ -30574,8 +30975,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject(opt_includeInstance, this); }; @@ -30584,15 +30985,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * @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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - identifier: msg.getIdentifier_asB64(), - voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0), - document: msg.getDocument_asB64() + startTimeInfo: (f = msg.getStartTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(includeInstance, f), + endTimeInfo: (f = msg.getEndTimeInfo()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(includeInstance, f), + limit: jspb.Message.getFieldWithDefault(msg, 3, 0), + offset: jspb.Message.getFieldWithDefault(msg, 4, 0), + ascending: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) }; if (includeInstance) { @@ -30606,23 +31010,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -30630,16 +31034,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentifier(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinaryFromReader); + msg.setStartTimeInfo(value); break; case 2: - var value = /** @type {number} */ (reader.readUint32()); - msg.setVoteCount(value); + var value = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinaryFromReader); + msg.setEndTimeInfo(value); break; case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDocument(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setLimit(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setOffset(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAscending(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(value); break; default: reader.skipField(); @@ -30654,9 +31072,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -30664,199 +31082,404 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getStartTimeInfo(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 2)); + f = message.getEndTimeInfo(); if (f != null) { - writer.writeUint32( + writer.writeMessage( 2, - f + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + f = /** @type {number} */ (jspb.Message.getField(message, 3)); if (f != null) { - writer.writeBytes( + writer.writeUint32( 3, f ); } + f = /** @type {number} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeUint32( + 4, + f + ); + } + f = message.getAscending(); + if (f) { + writer.writeBool( + 5, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 6, + f + ); + } }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes identifier = 1; - * @return {string} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject(opt_includeInstance, this); }; /** - * optional bytes identifier = 1; - * This is a type-conversion wrapper around `getIdentifier()` - * @return {string} + * 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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentifier())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), + startTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes identifier = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentifier()` + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.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.setStartTimeMs(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartTimeIncluded(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentifier())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartTimeMs(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getStartTimeIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * optional uint32 vote_count = 2; + * optional uint64 start_time_ms = 1; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getVoteCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setVoteCount = function(value) { - return jspb.Message.setField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * optional bool start_time_included = 2; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearVoteCount = function() { - return jspb.Message.setField(this, 2, undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.getStartTimeIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasVoteCount = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo.prototype.setStartTimeIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * optional bytes document = 3; - * @return {string} + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject(opt_includeInstance, this); }; /** - * optional bytes document = 3; - * This is a type-conversion wrapper around `getDocument()` - * @return {string} + * 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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDocument())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.toObject = function(includeInstance, msg) { + var f, obj = { + endTimeMs: jspb.Message.getFieldWithDefault(msg, 1, 0), + endTimeIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes document = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDocument()` + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.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.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.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.setEndTimeMs(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEndTimeIncluded(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDocument())); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setDocument = function(value) { - return jspb.Message.setField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEndTimeMs(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getEndTimeIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + * optional uint64 end_time_ms = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearDocument = function() { - return jspb.Message.setField(this, 3, undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * Returns whether this field is set. + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional bool end_time_included = 2; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasDocument = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.getEndTimeIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); }; /** - * optional ContestedResourceContenders contested_resource_contenders = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getContestedResourceContenders = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders, 1)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo.prototype.setEndTimeIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * optional StartAtTimeInfo start_time_info = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getStartTimeInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.StartAtTimeInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setContestedResourceContenders = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setStartTimeInfo = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearContestedResourceContenders = function() { - return this.setContestedResourceContenders(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearStartTimeInfo = function() { + return this.setStartTimeInfo(undefined); }; @@ -30864,36 +31487,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasContestedResourceContenders = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasStartTimeInfo = function() { return jspb.Message.getField(this, 1) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional EndAtTimeInfo end_time_info = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getEndTimeInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.EndAtTimeInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setEndTimeInfo = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearEndTimeInfo = function() { + return this.setEndTimeInfo(undefined); }; @@ -30901,36 +31524,71 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasEndTimeInfo = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional uint32 limit = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearLimit = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint32 offset = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getOffset = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setField(this, 4, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.clearOffset = function() { + return jspb.Message.setField(this, 4, undefined); }; @@ -30938,35 +31596,7693 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContest * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional bool ascending = 5; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional bool prove = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional GetVotePollsByEndDateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.GetVotePollsByEndDateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateRequest.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.GetVotePollsByEndDateResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetVotePollsByEndDateResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VOTE_POLLS_BY_TIMESTAMPS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + votePollsByTimestamps: (f = msg.getVotePollsByTimestamps()) && proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinaryFromReader); + msg.setVotePollsByTimestamps(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotePollsByTimestamps(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.repeatedFields_ = [2]; + + + +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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject = function(includeInstance, msg) { + var f, obj = { + timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0), + serializedVotePollsList: msg.getSerializedVotePollsList_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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.setTimestamp(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addSerializedVotePolls(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTimestamp(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getSerializedVotePollsList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 2, + f + ); + } +}; + + +/** + * optional uint64 timestamp = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getTimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setTimestamp = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * This is a type-conversion wrapper around `getSerializedVotePollsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getSerializedVotePollsList())); +}; + + +/** + * repeated bytes serialized_vote_polls = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSerializedVotePollsList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.getSerializedVotePollsList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getSerializedVotePollsList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.setSerializedVotePollsList = function(value) { + return jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.addSerializedVotePolls = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.prototype.clearSerializedVotePollsList = function() { + return this.setSerializedVotePollsList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.repeatedFields_ = [1]; + + + +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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.toObject = function(includeInstance, msg) { + var f, obj = { + votePollsByTimestampsList: jspb.Message.toObjectList(msg.getVotePollsByTimestampsList(), + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.toObject, includeInstance), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps; + return proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.deserializeBinaryFromReader); + msg.addVotePollsByTimestamps(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.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.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotePollsByTimestampsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp.serializeBinaryToWriter + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated SerializedVotePollsByTimestamp vote_polls_by_timestamps = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getVotePollsByTimestampsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setVotePollsByTimestampsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.addVotePollsByTimestamps = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamp, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.clearVotePollsByTimestampsList = function() { + return this.setVotePollsByTimestampsList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional SerializedVotePollsByTimestamps vote_polls_by_timestamps = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getVotePollsByTimestamps = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.SerializedVotePollsByTimestamps|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setVotePollsByTimestamps = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearVotePollsByTimestamps = function() { + return this.setVotePollsByTimestamps(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasVotePollsByTimestamps = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetVotePollsByEndDateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.GetVotePollsByEndDateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetVotePollsByEndDateResponse.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.GetContestedResourceVoteStateRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.repeatedFields_ = [4]; + + + +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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + resultType: jspb.Message.getFieldWithDefault(msg, 5, 0), + allowIncludeLockedAndAbstainingVoteTally: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), + startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 8, 0), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + }; + + 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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (reader.readEnum()); + msg.setResultType(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setAllowIncludeLockedAndAbstainingVoteTally(value); + break; + case 7: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); + msg.setStartAtIdentifierInfo(value); + break; + case 8: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); + break; + case 9: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getResultType(); + if (f !== 0.0) { + writer.writeEnum( + 5, + f + ); + } + f = message.getAllowIncludeLockedAndAbstainingVoteTally(); + if (f) { + writer.writeBool( + 6, + f + ); + } + f = message.getStartAtIdentifierInfo(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 8)); + if (f != null) { + writer.writeUint32( + 8, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 9, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType = { + DOCUMENTS: 0, + VOTE_TALLY: 1, + DOCUMENTS_AND_VOTE_TALLY: 2 +}; + + + + +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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startIdentifier: msg.getStartIdentifier_asB64(), + startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.setStartIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartIdentifierIncluded(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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_identifier = 1; + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartIdentifier())); +}; + + +/** + * optional bytes start_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string index_name = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated bytes index_values = 4; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); +}; + + +/** + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); +}; + + +/** + * optional ResultType result_type = 5; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getResultType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.ResultType} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setResultType = function(value) { + return jspb.Message.setProto3EnumField(this, 5, value); +}; + + +/** + * optional bool allow_include_locked_and_abstaining_vote_tally = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getAllowIncludeLockedAndAbstainingVoteTally = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setAllowIncludeLockedAndAbstainingVoteTally = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional StartAtIdentifierInfo start_at_identifier_info = 7; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getStartAtIdentifierInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo, 7)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.StartAtIdentifierInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setStartAtIdentifierInfo = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearStartAtIdentifierInfo = function() { + return this.setStartAtIdentifierInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasStartAtIdentifierInfo = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional uint32 count = 8; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 8, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 8, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 8) != null; +}; + + +/** + * optional bool prove = 9; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 9, value); +}; + + +/** + * optional GetContestedResourceVoteStateRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.GetContestedResourceVoteStateRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateRequest.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.GetContestedResourceVoteStateResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVoteStateResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CONTESTED_RESOURCE_CONTENDERS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceContenders: (f = msg.getContestedResourceContenders()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinaryFromReader); + msg.setContestedResourceContenders(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceContenders(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.toObject = function(includeInstance, msg) { + var f, obj = { + finishedVoteOutcome: jspb.Message.getFieldWithDefault(msg, 1, 0), + wonByIdentityId: msg.getWonByIdentityId_asB64(), + finishedAtBlockHeight: jspb.Message.getFieldWithDefault(msg, 3, 0), + finishedAtCoreBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), + finishedAtBlockTimeMs: jspb.Message.getFieldWithDefault(msg, 5, 0), + finishedAtEpoch: jspb.Message.getFieldWithDefault(msg, 6, 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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (reader.readEnum()); + msg.setFinishedVoteOutcome(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setWonByIdentityId(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFinishedAtBlockHeight(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFinishedAtCoreBlockHeight(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFinishedAtBlockTimeMs(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setFinishedAtEpoch(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFinishedVoteOutcome(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( + 2, + f + ); + } + f = message.getFinishedAtBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } + f = message.getFinishedAtCoreBlockHeight(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getFinishedAtBlockTimeMs(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } + f = message.getFinishedAtEpoch(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome = { + TOWARDS_IDENTITY: 0, + LOCKED: 1, + NO_PREVIOUS_WINNER: 2 +}; + +/** + * optional FinishedVoteOutcome finished_vote_outcome = 1; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedVoteOutcome = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.FinishedVoteOutcome} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedVoteOutcome = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * This is a type-conversion wrapper around `getWonByIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getWonByIdentityId())); +}; + + +/** + * optional bytes won_by_identity_id = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getWonByIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getWonByIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getWonByIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setWonByIdentityId = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.clearWonByIdentityId = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.hasWonByIdentityId = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint64 finished_at_block_height = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint32 finished_at_core_block_height = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtCoreBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtCoreBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional uint64 finished_at_block_time_ms = 5; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtBlockTimeMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtBlockTimeMs = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional uint32 finished_at_epoch = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.getFinishedAtEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.prototype.setFinishedAtEpoch = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.repeatedFields_ = [1]; + + + +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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.toObject = function(includeInstance, msg) { + var f, obj = { + contendersList: jspb.Message.toObjectList(msg.getContendersList(), + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject, includeInstance), + abstainVoteTally: jspb.Message.getFieldWithDefault(msg, 2, 0), + lockVoteTally: jspb.Message.getFieldWithDefault(msg, 3, 0), + finishedVoteInfo: (f = msg.getFinishedVoteInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinaryFromReader); + msg.addContenders(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setAbstainVoteTally(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLockVoteTally(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.deserializeBinaryFromReader); + msg.setFinishedVoteInfo(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContendersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeUint32( + 3, + f + ); + } + f = message.getFinishedVoteInfo(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated Contender contenders = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getContendersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setContendersList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.addContenders = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearContendersList = function() { + return this.setContendersList([]); +}; + + +/** + * optional uint32 abstain_vote_tally = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getAbstainVoteTally = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setAbstainVoteTally = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearAbstainVoteTally = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasAbstainVoteTally = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint32 lock_vote_tally = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getLockVoteTally = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setLockVoteTally = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearLockVoteTally = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasLockVoteTally = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional FinishedVoteInfo finished_vote_info = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.getFinishedVoteInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo, 4)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.FinishedVoteInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.setFinishedVoteInfo = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.clearFinishedVoteInfo = function() { + return this.setFinishedVoteInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders.prototype.hasFinishedVoteInfo = function() { + return jspb.Message.getField(this, 4) != null; +}; + + + + + +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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.toObject = function(includeInstance, msg) { + var f, obj = { + identifier: msg.getIdentifier_asB64(), + voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0), + document: msg.getDocument_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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.setIdentifier(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setVoteCount(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setDocument(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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.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.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeBytes( + 3, + f + ); + } +}; + + +/** + * optional bytes identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identifier = 1; + * This is a type-conversion wrapper around `getIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentifier())); +}; + + +/** + * optional bytes identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint32 vote_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getVoteCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setVoteCount = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearVoteCount = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasVoteCount = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional bytes document = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes document = 3; + * This is a type-conversion wrapper around `getDocument()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getDocument())); +}; + + +/** + * optional bytes document = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getDocument()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.getDocument_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getDocument())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.setDocument = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.clearDocument = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.Contender.prototype.hasDocument = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional ContestedResourceContenders contested_resource_contenders = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getContestedResourceContenders = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.ContestedResourceContenders|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setContestedResourceContenders = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearContestedResourceContenders = function() { + return this.setContestedResourceContenders(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasContestedResourceContenders = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceVoteStateResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.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.GetContestedResourceVotersForIdentityRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.repeatedFields_ = [4]; + + + +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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexValuesList: msg.getIndexValuesList_asB64(), + contestantId: msg.getContestantId_asB64(), + startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), + count: jspb.Message.getFieldWithDefault(msg, 7, 0), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + }; + + 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setIndexName(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addIndexValues(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setContestantId(value); + break; + case 6: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); + msg.setStartAtIdentifierInfo(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCount(value); + break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; + case 9: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIndexName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getIndexValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 4, + f + ); + } + f = message.getContestantId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getStartAtIdentifierInfo(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeUint32( + 7, + f + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( + 8, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 9, + f + ); + } +}; + + + + + +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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startIdentifier: msg.getStartIdentifier_asB64(), + startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.setStartIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartIdentifierIncluded(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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_identifier = 1; + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartIdentifier())); +}; + + +/** + * optional bytes start_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string index_name = 3; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated bytes index_values = 4; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * repeated bytes index_values = 4; + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getIndexValuesList())); +}; + + +/** + * repeated bytes index_values = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIndexValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getIndexValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexValuesList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.addIndexValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearIndexValuesList = function() { + return this.setIndexValuesList([]); +}; + + +/** + * optional bytes contestant_id = 5; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * optional bytes contestant_id = 5; + * This is a type-conversion wrapper around `getContestantId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContestantId())); +}; + + +/** + * optional bytes contestant_id = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContestantId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContestantId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContestantId = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); +}; + + +/** + * optional StartAtIdentifierInfo start_at_identifier_info = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getStartAtIdentifierInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo, 6)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setStartAtIdentifierInfo = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearStartAtIdentifierInfo = function() { + return this.setStartAtIdentifierInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasStartAtIdentifierInfo = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional uint32 count = 7; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setCount = function(value) { + return jspb.Message.setField(this, 7, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearCount = function() { + return jspb.Message.setField(this, 7, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasCount = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional bool order_ascending = 8; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); +}; + + +/** + * optional bool prove = 9; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 9, value); +}; + + +/** + * optional GetContestedResourceVotersForIdentityRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.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.GetContestedResourceVotersForIdentityResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceVotersForIdentityResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CONTESTED_RESOURCE_VOTERS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceVoters: (f = msg.getContestedResourceVoters()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader); + msg.setContestedResourceVoters(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceVoters(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.repeatedFields_ = [1]; + + + +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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject = function(includeInstance, msg) { + var f, obj = { + votersList: msg.getVotersList_asB64(), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; + return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.addVoters(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotersList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 1, + f + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated bytes voters = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * repeated bytes voters = 1; + * This is a type-conversion wrapper around `getVotersList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getVotersList())); +}; + + +/** + * repeated bytes voters = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getVotersList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getVotersList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setVotersList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.addVoters = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.clearVotersList = function() { + return this.setVotersList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional ContestedResourceVoters contested_resource_voters = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getContestedResourceVoters = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setContestedResourceVoters = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearContestedResourceVoters = function() { + return this.setContestedResourceVoters(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasContestedResourceVoters = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceVotersForIdentityResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceIdentityVotesRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + identityId: msg.getIdentityId_asB64(), + limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), + orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + startAtVotePollIdInfo: (f = msg.getStartAtVotePollIdInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(includeInstance, f), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) + }; + + 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.setIdentityId(value); + break; + case 2: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setLimit(value); + break; + case 3: + var value = new google_protobuf_wrappers_pb.UInt32Value; + reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); + msg.setOffset(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOrderAscending(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader); + msg.setStartAtVotePollIdInfo(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdentityId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getLimit(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOffset(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter + ); + } + f = message.getOrderAscending(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getStartAtVotePollIdInfo(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 6, + f + ); + } +}; + + + + + +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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject = function(includeInstance, msg) { + var f, obj = { + startAtPollIdentifier: msg.getStartAtPollIdentifier_asB64(), + startPollIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.setStartAtPollIdentifier(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setStartPollIdentifierIncluded(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartAtPollIdentifier_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getStartPollIdentifierIncluded(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * This is a type-conversion wrapper around `getStartAtPollIdentifier()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getStartAtPollIdentifier())); +}; + + +/** + * optional bytes start_at_poll_identifier = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getStartAtPollIdentifier()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getStartAtPollIdentifier())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartAtPollIdentifier = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool start_poll_identifier_included = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartPollIdentifierIncluded = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartPollIdentifierIncluded = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional bytes identity_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes identity_id = 1; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setIdentityId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional google.protobuf.UInt32Value limit = 2; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getLimit = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setLimit = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearLimit = function() { + return this.setLimit(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasLimit = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.UInt32Value offset = 3; + * @return {?proto.google.protobuf.UInt32Value} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOffset = function() { + return /** @type{?proto.google.protobuf.UInt32Value} */ ( + jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); +}; + + +/** + * @param {?proto.google.protobuf.UInt32Value|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOffset = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearOffset = function() { + return this.setOffset(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasOffset = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional bool order_ascending = 4; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOrderAscending = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOrderAscending = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional StartAtVotePollIdInfo start_at_vote_poll_id_info = 5; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getStartAtVotePollIdInfo = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo, 5)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setStartAtVotePollIdInfo = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearStartAtVotePollIdInfo = function() { + return this.setStartAtVotePollIdInfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasStartAtVotePollIdInfo = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional bool prove = 6; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional GetContestedResourceIdentityVotesRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetContestedResourceIdentityVotesResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + VOTES: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + votes: (f = msg.getVotes()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(includeInstance, f), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader); + msg.setVotes(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVotes(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.repeatedFields_ = [1]; + + + +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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject = function(includeInstance, msg) { + var f, obj = { + contestedResourceIdentityVotesList: jspb.Message.toObjectList(msg.getContestedResourceIdentityVotesList(), + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject, includeInstance), + finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader); + msg.addContestedResourceIdentityVotes(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setFinishedResults(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContestedResourceIdentityVotesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter + ); + } + f = message.getFinishedResults(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * repeated ContestedResourceIdentityVote contested_resource_identity_votes = 1; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getContestedResourceIdentityVotesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setContestedResourceIdentityVotesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.addContestedResourceIdentityVotes = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.clearContestedResourceIdentityVotesList = function() { + return this.setContestedResourceIdentityVotesList([]); +}; + + +/** + * optional bool finished_results = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getFinishedResults = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setFinishedResults = function(value) { + return jspb.Message.setProto3BooleanField(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject = function(includeInstance, msg) { + var f, obj = { + voteChoiceType: jspb.Message.getFieldWithDefault(msg, 1, 0), + identityId: msg.getIdentityId_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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (reader.readEnum()); + msg.setVoteChoiceType(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setIdentityId(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVoteChoiceType(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( + 2, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType = { + TOWARDS_IDENTITY: 0, + ABSTAIN: 1, + LOCK: 2 +}; + +/** + * optional VoteChoiceType vote_choice_type = 1; + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getVoteChoiceType = function() { + return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setVoteChoiceType = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional bytes identity_id = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes identity_id = 2; + * This is a type-conversion wrapper around `getIdentityId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getIdentityId())); +}; + + +/** + * optional bytes identity_id = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getIdentityId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getIdentityId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setIdentityId = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.clearIdentityId = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.hasIdentityId = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.repeatedFields_ = [3]; + + + +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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject = function(includeInstance, msg) { + var f, obj = { + contractId: msg.getContractId_asB64(), + documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), + serializedIndexStorageValuesList: msg.getSerializedIndexStorageValuesList_asB64(), + voteChoice: (f = msg.getVoteChoice()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; + return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.setContractId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDocumentTypeName(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addSerializedIndexStorageValues(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader); + msg.setVoteChoice(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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContractId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getDocumentTypeName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSerializedIndexStorageValuesList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 3, + f + ); + } + f = message.getVoteChoice(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter + ); + } +}; + + +/** + * optional bytes contract_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes contract_id = 1; + * This is a type-conversion wrapper around `getContractId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getContractId())); +}; + + +/** + * optional bytes contract_id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getContractId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getContractId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setContractId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string document_type_name = 2; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getDocumentTypeName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setDocumentTypeName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getSerializedIndexStorageValuesList())); +}; + + +/** + * repeated bytes serialized_index_storage_values = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getSerializedIndexStorageValuesList())); +}; + + +/** + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setSerializedIndexStorageValuesList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.addSerializedIndexStorageValues = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearSerializedIndexStorageValuesList = function() { + return this.setSerializedIndexStorageValuesList([]); +}; + + +/** + * optional ResourceVoteChoice vote_choice = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getVoteChoice = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice, 4)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setVoteChoice = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearVoteChoice = function() { + return this.setVoteChoice(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.hasVoteChoice = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional ContestedResourceIdentityVotes votes = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getVotes = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setVotes = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearVotes = function() { + return this.setVotes(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasVotes = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetContestedResourceIdentityVotesResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.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.GetPrefundedSpecializedBalanceRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + id: msg.getId_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + }; + + 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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.setId(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getId_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getProve(); + if (f) { + writer.writeBool( + 2, + f + ); + } +}; + + +/** + * optional bytes id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes id = 1; + * This is a type-conversion wrapper around `getId()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getId())); +}; + + +/** + * optional bytes id = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getId()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getId())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setId = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bool prove = 2; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional GetPrefundedSpecializedBalanceRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.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.GetPrefundedSpecializedBalanceResponse.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetPrefundedSpecializedBalanceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter + ); + } +}; + + + +/** + * 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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + BALANCE: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject = function(includeInstance, msg) { + var f, obj = { + balance: jspb.Message.getFieldWithDefault(msg, 1, 0), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; + return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.setBalance(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint64( + 1, + f + ); + } + f = message.getProof(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 balance = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getBalance = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setBalance = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearBalance = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasBalance = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetPrefundedSpecializedBalanceResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.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.GetTotalCreditsInPlatformRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.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.GetTotalCreditsInPlatformRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + }; + + 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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setProve(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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProve(); + if (f) { + writer.writeBool( + 1, + f + ); + } +}; + + +/** + * optional bool prove = 1; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; /** - * optional GetContestedResourceVoteStateResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} + * optional GetTotalCreditsInPlatformRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.GetContestedResourceVoteStateResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -30975,7 +39291,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -30989,21 +39305,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVoteStateResponse.prototype. * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0])); }; @@ -31021,8 +39337,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject(opt_includeInstance, this); }; @@ -31031,13 +39347,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * @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.GetContestedResourceVotersForIdentityRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -31051,23 +39367,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.toO /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetContestedResourceVotersForIdentityRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31075,8 +39391,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.des var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -31092,9 +39408,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.des * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31102,18 +39418,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter ); } }; @@ -31121,11 +39437,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.ser /** - * List of repeated fields within this message type. - * @private {!Array} + * 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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.repeatedFields_ = [4]; +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase = { + RESULT_NOT_SET: 0, + CREDITS: 1, + PROOF: 2 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0])); +}; @@ -31142,8 +39477,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(opt_includeInstance, this); }; @@ -31152,21 +39487,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - indexName: jspb.Message.getFieldWithDefault(msg, 3, ""), - indexValuesList: msg.getIndexValuesList_asB64(), - contestantId: msg.getContestantId_asB64(), - startAtIdentifierInfo: (f = msg.getStartAtIdentifierInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(includeInstance, f), - count: jspb.Message.getFieldWithDefault(msg, 7, 0), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + credits: jspb.Message.getFieldWithDefault(msg, 1, 0), + proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -31180,23 +39509,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; + return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31204,41 +39533,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setCredits(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); + var value = new proto.org.dash.platform.dapi.v0.Proof; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); + msg.setProof(value); break; case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setIndexName(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addIndexValues(value); - break; - case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContestantId(value); - break; - case 6: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader); - msg.setStartAtIdentifierInfo(value); - break; - case 7: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCount(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 9: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -31253,9 +39559,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31263,80 +39569,332 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint64( 1, f ); } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( + f = message.getProof(); + if (f != null) { + writer.writeMessage( 2, - f - ); - } - f = message.getIndexName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIndexValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 4, - f - ); - } - f = message.getContestantId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 5, - f + f, + proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter ); } - f = message.getStartAtIdentifierInfo(); + f = message.getMetadata(); if (f != null) { writer.writeMessage( - 6, + 3, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter ); } - f = /** @type {number} */ (jspb.Message.getField(message, 7)); - if (f != null) { - writer.writeUint32( - 7, - f - ); +}; + + +/** + * optional uint64 credits = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getCredits = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setCredits = function(value) { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearCredits = function() { + return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasCredits = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional Proof proof = 2; + * @return {?proto.org.dash.platform.dapi.v0.Proof} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getProof = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearProof = function() { + return this.setProof(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasProof = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ResponseMetadata metadata = 3; + * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getMetadata = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearMetadata = function() { + return this.setMetadata(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional GetTotalCreditsInPlatformResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0, 1)); +}; + + +/** + * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this +*/ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetPathElementsRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 8, - f - ); + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest; + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest.GetPathElementsRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } } - f = message.getProve(); - if (f) { - writer.writeBool( - 9, - f + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.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.GetPathElementsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter ); } }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.repeatedFields_ = [1,2]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -31352,8 +39910,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(opt_includeInstance, this); }; @@ -31362,14 +39920,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * @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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - startIdentifier: msg.getStartIdentifier_asB64(), - startIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + pathList: msg.getPathList_asB64(), + keysList: msg.getKeysList_asB64(), + prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -31383,23 +39942,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; + return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.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.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31408,11 +39967,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartIdentifier(value); + msg.addPath(value); break; case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.addKeys(value); + break; + case 3: var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartIdentifierIncluded(value); + msg.setProve(value); break; default: reader.skipField(); @@ -31427,9 +39990,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31437,23 +40000,30 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartIdentifier_asU8(); + f = message.getPathList_asU8(); if (f.length > 0) { - writer.writeBytes( + writer.writeRepeatedBytes( 1, f ); } - f = message.getStartIdentifierIncluded(); + f = message.getKeysList_asU8(); + if (f.length > 0) { + writer.writeRepeatedBytes( + 2, + f + ); + } + f = message.getProve(); if (f) { writer.writeBool( - 2, + 3, f ); } @@ -31461,379 +40031,169 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.Get /** - * optional bytes start_identifier = 1; - * @return {string} + * repeated bytes path = 1; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * optional bytes start_identifier = 1; - * This is a type-conversion wrapper around `getStartIdentifier()` - * @return {string} + * repeated bytes path = 1; + * This is a type-conversion wrapper around `getPathList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartIdentifier())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asB64 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsB64( + this.getPathList())); }; /** - * optional bytes start_identifier = 1; + * repeated bytes path = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartIdentifier()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartIdentifier())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional bool start_identifier_included = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.getStartIdentifierIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo.prototype.setStartIdentifierIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - -/** - * optional bytes contract_id = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * This is a type-conversion wrapper around `getPathList()` + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asU8 = function() { + return /** @type {!Array} */ (jspb.Message.bytesListAsU8( + this.getPathList())); }; /** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * @param {!(Array|Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setPathList = function(value) { + return jspb.Message.setField(this, 1, value || []); }; /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string index_name = 3; - * @return {string} + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addPath = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearPathList = function() { + return this.setPathList([]); }; /** - * repeated bytes index_values = 4; + * repeated bytes keys = 2; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); }; /** - * repeated bytes index_values = 4; - * This is a type-conversion wrapper around `getIndexValuesList()` + * repeated bytes keys = 2; + * This is a type-conversion wrapper around `getKeysList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getIndexValuesList())); + this.getKeysList())); }; /** - * repeated bytes index_values = 4; + * repeated bytes keys = 2; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIndexValuesList()` + * This is a type-conversion wrapper around `getKeysList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getIndexValuesList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getIndexValuesList())); + this.getKeysList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setIndexValuesList = function(value) { - return jspb.Message.setField(this, 4, value || []); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setKeysList = function(value) { + return jspb.Message.setField(this, 2, value || []); }; /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.addIndexValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addKeys = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearIndexValuesList = function() { - return this.setIndexValuesList([]); -}; - - -/** - * optional bytes contestant_id = 5; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * optional bytes contestant_id = 5; - * This is a type-conversion wrapper around `getContestantId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContestantId())); -}; - - -/** - * optional bytes contestant_id = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContestantId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getContestantId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContestantId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setContestantId = function(value) { - return jspb.Message.setProto3BytesField(this, 5, value); -}; - - -/** - * optional StartAtIdentifierInfo start_at_identifier_info = 6; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getStartAtIdentifierInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo, 6)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.StartAtIdentifierInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setStartAtIdentifierInfo = function(value) { - return jspb.Message.setWrapperField(this, 6, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearStartAtIdentifierInfo = function() { - return this.setStartAtIdentifierInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasStartAtIdentifierInfo = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional uint32 count = 7; - * @return {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setCount = function(value) { - return jspb.Message.setField(this, 7, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.clearCount = function() { - return jspb.Message.setField(this, 7, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.hasCount = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional bool order_ascending = 8; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearKeysList = function() { + return this.setKeysList([]); }; /** - * optional bool prove = 9; + * optional bool prove = 3; * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getProve = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); }; /** * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 9, value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setProve = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; /** - * optional GetContestedResourceVotersForIdentityRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} + * optional GetPathElementsRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.GetContestedResourceVotersForIdentityRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -31842,7 +40202,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -31856,21 +40216,21 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityRequest.pro * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase = { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0])); }; @@ -31888,8 +40248,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject(opt_includeInstance, this); }; @@ -31898,13 +40258,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.pr * @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.GetContestedResourceVotersForIdentityResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -31918,23 +40278,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.to /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.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.GetContestedResourceVotersForIdentityResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -31942,8 +40302,8 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.de var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -31959,9 +40319,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.de * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -31969,18 +40329,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.pr /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter ); } }; @@ -31995,22 +40355,22 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.se * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_ = [[1,2]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase = { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase = { RESULT_NOT_SET: 0, - CONTESTED_RESOURCE_VOTERS: 1, + ELEMENTS: 1, PROOF: 2 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} + * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getResultCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0])); }; @@ -32028,8 +40388,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(opt_includeInstance, this); }; @@ -32038,13 +40398,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceVoters: (f = msg.getContestedResourceVoters()) && proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(includeInstance, f), + elements: (f = msg.getElements()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(includeInstance, f), proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; @@ -32060,23 +40420,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32084,9 +40444,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader); - msg.setContestedResourceVoters(value); + var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader); + msg.setElements(value); break; case 2: var value = new proto.org.dash.platform.dapi.v0.Proof; @@ -32111,9 +40471,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32121,18 +40481,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceVoters(); + f = message.getElements(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter ); } f = message.getProof(); @@ -32160,7 +40520,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.repeatedFields_ = [1]; @@ -32177,8 +40537,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(opt_includeInstance, this); }; @@ -32187,14 +40547,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * @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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject = function(includeInstance, msg) { var f, obj = { - votersList: msg.getVotersList_asB64(), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + elementsList: msg.getElementsList_asB64() }; if (includeInstance) { @@ -32208,23 +40567,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters; - return proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; + return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.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.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32233,11 +40592,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addVoters(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + msg.addElements(value); break; default: reader.skipField(); @@ -32252,9 +40607,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32262,67 +40617,60 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} message + * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotersList_asU8(); + f = message.getElementsList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( - 2, - f - ); - } }; /** - * repeated bytes voters = 1; + * repeated bytes elements = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes voters = 1; - * This is a type-conversion wrapper around `getVotersList()` + * repeated bytes elements = 1; + * This is a type-conversion wrapper around `getElementsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getVotersList())); + this.getElementsList())); }; /** - * repeated bytes voters = 1; + * repeated bytes elements = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getVotersList()` + * This is a type-conversion wrapper around `getElementsList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getVotersList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getVotersList())); + this.getElementsList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setVotersList = function(value) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.setElementsList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -32330,65 +40678,47 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.addVoters = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.addElements = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.clearVotersList = function() { - return this.setVotersList([]); -}; - - -/** - * optional bool finished_results = 2; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.clearElementsList = function() { + return this.setElementsList([]); }; /** - * optional ContestedResourceVoters contested_resource_voters = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} + * optional Elements elements = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getContestedResourceVoters = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getElements = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.ContestedResourceVoters|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setContestedResourceVoters = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setElements = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearContestedResourceVoters = function() { - return this.setContestedResourceVoters(undefined); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearElements = function() { + return this.setElements(undefined); }; @@ -32396,7 +40726,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasContestedResourceVoters = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasElements = function() { return jspb.Message.getField(this, 1) != null; }; @@ -32405,7 +40735,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * optional Proof proof = 2; * @return {?proto.org.dash.platform.dapi.v0.Proof} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getProof = function() { return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); }; @@ -32413,18 +40743,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setProof = function(value) { + return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearProof = function() { return this.setProof(undefined); }; @@ -32433,7 +40763,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasProof = function() { return jspb.Message.getField(this, 2) != null; }; @@ -32442,7 +40772,7 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * optional ResponseMetadata metadata = 3; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); }; @@ -32450,18 +40780,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.setMetadata = function(value) { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setMetadata = function(value) { return jspb.Message.setWrapperField(this, 3, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -32470,366 +40800,74 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.Ge * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0.prototype.hasMetadata = function() { +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasMetadata = function() { return jspb.Message.getField(this, 3) != null; }; /** - * optional GetContestedResourceVotersForIdentityResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} + * optional GetPathElementsResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.GetContestedResourceVotersForIdentityResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.prototype.clearV0 = function() { - return this.setV0(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceVotersForIdentityResponse.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.GetContestedResourceIdentityVotesRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.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.GetContestedResourceIdentityVotesRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.toObject = function(includeInstance, msg) { - var f, obj = { - identityId: msg.getIdentityId_asB64(), - limit: (f = msg.getLimit()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - offset: (f = msg.getOffset()) && google_protobuf_wrappers_pb.UInt32Value.toObject(includeInstance, f), - orderAscending: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), - startAtVotePollIdInfo: (f = msg.getStartAtVotePollIdInfo()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(includeInstance, f), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 6, false) - }; - - 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.setIdentityId(value); - break; - case 2: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setLimit(value); - break; - case 3: - var value = new google_protobuf_wrappers_pb.UInt32Value; - reader.readMessage(value,google_protobuf_wrappers_pb.UInt32Value.deserializeBinaryFromReader); - msg.setOffset(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setOrderAscending(value); - break; - case 5: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader); - msg.setStartAtVotePollIdInfo(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getIdentityId_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getLimit(); - if (f != null) { - writer.writeMessage( - 2, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOffset(); - if (f != null) { - writer.writeMessage( - 3, - f, - google_protobuf_wrappers_pb.UInt32Value.serializeBinaryToWriter - ); - } - f = message.getOrderAscending(); - if (f) { - writer.writeBool( - 4, - f - ); - } - f = message.getStartAtVotePollIdInfo(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 6, - f - ); - } +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = function() { + return this.setV0(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetPathElementsResponse.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.GetStatusRequest.oneofGroups_ = [[1]]; + +/** + * @enum {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 +}; + +/** + * @return {proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase} + */ +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetStatusRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_[0])); +}; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -32845,8 +40883,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusRequest.toObject(opt_includeInstance, this); }; @@ -32855,14 +40893,13 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * @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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.toObject = function(includeInstance, msg) { var f, obj = { - startAtPollIdentifier: msg.getStartAtPollIdentifier_asB64(), - startPollIdentifierIncluded: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -32876,23 +40913,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusRequest; + return proto.org.dash.platform.dapi.v0.GetStatusRequest.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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -32900,12 +40937,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setStartAtPollIdentifier(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setStartPollIdentifierIncluded(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader); + msg.setV0(value); break; default: reader.skipField(); @@ -32920,9 +40954,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -32930,156 +40964,149 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStartAtPollIdentifier_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getV0(); + if (f != null) { + writer.writeMessage( 1, - f - ); - } - f = message.getStartPollIdentifierIncluded(); - if (f) { - writer.writeBool( - 2, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter ); } }; -/** - * optional bytes start_at_poll_identifier = 1; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes start_at_poll_identifier = 1; - * This is a type-conversion wrapper around `getStartAtPollIdentifier()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getStartAtPollIdentifier())); -}; - -/** - * optional bytes start_at_poll_identifier = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getStartAtPollIdentifier()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartAtPollIdentifier_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getStartAtPollIdentifier())); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartAtPollIdentifier = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject(opt_includeInstance, this); }; /** - * optional bool start_poll_identifier_included = 2; - * @return {boolean} + * 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.GetStatusRequest.GetStatusRequestV0} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.getStartPollIdentifierIncluded = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.toObject = function(includeInstance, msg) { + var f, obj = { + }; -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo.prototype.setStartPollIdentifierIncluded = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional bytes identity_id = 1; - * @return {string} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0; + return proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader(msg, reader); }; /** - * optional bytes identity_id = 1; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * optional bytes identity_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` + * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setIdentityId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0.serializeBinaryToWriter = function(message, writer) { + var f = undefined; }; /** - * optional google.protobuf.UInt32Value limit = 2; - * @return {?proto.google.protobuf.UInt32Value} + * optional GetStatusRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getLimit = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 2)); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0, 1)); }; /** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusRequest.GetStatusRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setLimit = function(value) { - return jspb.Message.setWrapperField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetStatusRequest.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearLimit = function() { - return this.setLimit(undefined); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; @@ -33087,184 +41114,151 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetCont * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasLimit = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional google.protobuf.UInt32Value offset = 3; - * @return {?proto.google.protobuf.UInt32Value} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOffset = function() { - return /** @type{?proto.google.protobuf.UInt32Value} */ ( - jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt32Value, 3)); -}; - - -/** - * @param {?proto.google.protobuf.UInt32Value|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOffset = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearOffset = function() { - return this.setOffset(undefined); +proto.org.dash.platform.dapi.v0.GetStatusRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasOffset = function() { - return jspb.Message.getField(this, 3) != null; -}; - /** - * optional bool order_ascending = 4; - * @return {boolean} + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getOrderAscending = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); -}; - +proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_ = [[1]]; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setOrderAscending = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * optional StartAtVotePollIdInfo start_at_vote_poll_id_info = 5; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} + * @return {proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getStartAtVotePollIdInfo = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo, 5)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetStatusResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_[0])); }; -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.StartAtVotePollIdInfo|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setStartAtVotePollIdInfo = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * 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.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.clearStartAtVotePollIdInfo = function() { - return this.setStartAtVotePollIdInfo(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.toObject(opt_includeInstance, this); }; /** - * Returns whether this field is set. - * @return {boolean} + * 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.GetStatusResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.hasStartAtVotePollIdInfo = function() { - return jspb.Message.getField(this, 5) != null; -}; - +proto.org.dash.platform.dapi.v0.GetStatusResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject(includeInstance, f) + }; -/** - * optional bool prove = 6; - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} returns this + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.deserializeBinaryFromReader(msg, reader); }; /** - * optional GetContestedResourceIdentityVotesRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.GetContestedResourceIdentityVotesRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.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.GetStatusResponse.GetStatusResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Returns whether this field is set. - * @return {boolean} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter + ); + } }; -/** - * 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.GetContestedResourceIdentityVotesResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33280,8 +41274,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject(opt_includeInstance, this); }; @@ -33290,13 +41284,18 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot * @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.GetContestedResourceIdentityVotesResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(includeInstance, f) + version: (f = msg.getVersion()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject(includeInstance, f), + node: (f = msg.getNode()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject(includeInstance, f), + chain: (f = msg.getChain()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject(includeInstance, f), + network: (f = msg.getNetwork()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject(includeInstance, f), + stateSync: (f = msg.getStateSync()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject(includeInstance, f), + time: (f = msg.getTime()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject(includeInstance, f) }; if (includeInstance) { @@ -33310,23 +41309,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.toObje /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.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.GetContestedResourceIdentityVotesResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33334,9 +41333,34 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deseri var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.deserializeBinaryFromReader); + msg.setVersion(value); + break; + case 2: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinaryFromReader); + msg.setNode(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinaryFromReader); + msg.setChain(value); + break; + case 4: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinaryFromReader); + msg.setNetwork(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinaryFromReader); + msg.setStateSync(value); + break; + case 6: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinaryFromReader); + msg.setTime(value); break; default: reader.skipField(); @@ -33351,9 +41375,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.deseri * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33361,50 +41385,64 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); + f = message.getVersion(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter + ); + } + f = message.getNode(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter + ); + } + f = message.getChain(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter + ); + } + f = message.getNetwork(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter + ); + } + f = message.getStateSync(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter + ); + } + f = message.getTime(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter ); } }; -/** - * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_ = [[1,2]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - VOTES: 1, - PROOF: 2 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33420,8 +41458,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject(opt_includeInstance, this); }; @@ -33430,15 +41468,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.toObject = function(includeInstance, msg) { var f, obj = { - votes: (f = msg.getVotes()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + software: (f = msg.getSoftware()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject(includeInstance, f), + protocol: (f = msg.getProtocol()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject(includeInstance, f) }; if (includeInstance) { @@ -33452,43 +41489,38 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader); - msg.setVotes(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + switch (field) { + case 1: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinaryFromReader); + msg.setSoftware(value); break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + case 2: + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinaryFromReader); + msg.setProtocol(value); break; default: reader.skipField(); @@ -33503,9 +41535,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33513,47 +41545,32 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVotes(); + f = message.getSoftware(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter ); } - f = message.getProof(); + f = message.getProtocol(); if (f != null) { writer.writeMessage( 2, f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.repeatedFields_ = [1]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -33569,8 +41586,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject(opt_includeInstance, this); }; @@ -33579,15 +41596,15 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.toObject = function(includeInstance, msg) { var f, obj = { - contestedResourceIdentityVotesList: jspb.Message.toObjectList(msg.getContestedResourceIdentityVotesList(), - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject, includeInstance), - finishedResults: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + dapi: jspb.Message.getFieldWithDefault(msg, 1, ""), + drive: jspb.Message.getFieldWithDefault(msg, 2, ""), + tenderdash: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -33601,23 +41618,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33625,13 +41642,16 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader); - msg.addContestedResourceIdentityVotes(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDapi(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFinishedResults(value); + var value = /** @type {string} */ (reader.readString()); + msg.setDrive(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTenderdash(value); break; default: reader.skipField(); @@ -33646,9 +41666,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33656,83 +41676,123 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContestedResourceIdentityVotesList(); + f = message.getDapi(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter + f ); } - f = message.getFinishedResults(); - if (f) { - writer.writeBool( + f = /** @type {string} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeString( 2, f ); } + f = /** @type {string} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeString( + 3, + f + ); + } }; /** - * repeated ContestedResourceIdentityVote contested_resource_identity_votes = 1; - * @return {!Array} + * optional string dapi = 1; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getContestedResourceIdentityVotesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getDapi = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** - * @param {!Array} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setContestedResourceIdentityVotesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setDapi = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; /** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote=} opt_value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * optional string drive = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.addContestedResourceIdentityVotes = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote, opt_index); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getDrive = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.clearContestedResourceIdentityVotesList = function() { - return this.setContestedResourceIdentityVotesList([]); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setDrive = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * optional bool finished_results = 2; + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.clearDrive = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.getFinishedResults = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.hasDrive = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} returns this + * optional string tenderdash = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes.prototype.setFinishedResults = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.getTenderdash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.setTenderdash = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.clearTenderdash = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software.prototype.hasTenderdash = function() { + return jspb.Message.getField(this, 3) != null; }; @@ -33752,8 +41812,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject(opt_includeInstance, this); }; @@ -33762,14 +41822,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.toObject = function(includeInstance, msg) { var f, obj = { - voteChoiceType: jspb.Message.getFieldWithDefault(msg, 1, 0), - identityId: msg.getIdentityId_asB64() + tenderdash: (f = msg.getTenderdash()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject(includeInstance, f), + drive: (f = msg.getDrive()) && proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject(includeInstance, f) }; if (includeInstance) { @@ -33783,23 +41843,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -33807,12 +41867,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (reader.readEnum()); - msg.setVoteChoiceType(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinaryFromReader); + msg.setTenderdash(value); break; case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setIdentityId(value); + var value = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader); + msg.setDrive(value); break; default: reader.skipField(); @@ -33827,9 +41889,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -33837,123 +41899,31 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getVoteChoiceType(); - if (f !== 0.0) { - writer.writeEnum( + f = message.getTenderdash(); + if (f != null) { + writer.writeMessage( 1, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter ); } - f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + f = message.getDrive(); if (f != null) { - writer.writeBytes( + writer.writeMessage( 2, - f + f, + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter ); } }; -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType = { - TOWARDS_IDENTITY: 0, - ABSTAIN: 1, - LOCK: 2 -}; - -/** - * optional VoteChoiceType vote_choice_type = 1; - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getVoteChoiceType = function() { - return /** @type {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.VoteChoiceType} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setVoteChoiceType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional bytes identity_id = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes identity_id = 2; - * This is a type-conversion wrapper around `getIdentityId()` - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getIdentityId())); -}; - - -/** - * optional bytes identity_id = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getIdentityId()` - * @return {!Uint8Array} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.getIdentityId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getIdentityId())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.setIdentityId = function(value) { - return jspb.Message.setField(this, 2, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.clearIdentityId = function() { - return jspb.Message.setField(this, 2, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.prototype.hasIdentityId = function() { - return jspb.Message.getField(this, 2) != null; -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.repeatedFields_ = [3]; @@ -33970,8 +41940,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject(opt_includeInstance, this); }; @@ -33980,16 +41950,14 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * @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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.toObject = function(includeInstance, msg) { var f, obj = { - contractId: msg.getContractId_asB64(), - documentTypeName: jspb.Message.getFieldWithDefault(msg, 2, ""), - serializedIndexStorageValuesList: msg.getSerializedIndexStorageValuesList_asB64(), - voteChoice: (f = msg.getVoteChoice()) && proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.toObject(includeInstance, f) + p2p: jspb.Message.getFieldWithDefault(msg, 1, 0), + block: jspb.Message.getFieldWithDefault(msg, 2, 0) }; if (includeInstance) { @@ -34003,23 +41971,23 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote; - return proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34027,21 +41995,12 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setContractId(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setP2p(value); break; case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDocumentTypeName(value); - break; - case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addSerializedIndexStorageValues(value); - break; - case 4: - var value = new proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.deserializeBinaryFromReader); - msg.setVoteChoice(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setBlock(value); break; default: reader.skipField(); @@ -34056,9 +42015,9 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34066,227 +42025,250 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getContractId_asU8(); - if (f.length > 0) { - writer.writeBytes( + f = message.getP2p(); + if (f !== 0) { + writer.writeUint32( 1, f ); } - f = message.getDocumentTypeName(); - if (f.length > 0) { - writer.writeString( + f = message.getBlock(); + if (f !== 0) { + writer.writeUint32( 2, f ); } - f = message.getSerializedIndexStorageValuesList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 3, - f - ); - } - f = message.getVoteChoice(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice.serializeBinaryToWriter - ); - } }; /** - * optional bytes contract_id = 1; - * @return {string} + * optional uint32 p2p = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.getP2p = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * optional bytes contract_id = 1; - * This is a type-conversion wrapper around `getContractId()` - * @return {string} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.setP2p = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional bytes contract_id = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getContractId()` - * @return {!Uint8Array} + * optional uint32 block = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getContractId_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getContractId())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.getBlock = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setContractId = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash.prototype.setBlock = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; -/** - * optional string document_type_name = 2; - * @return {string} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getDocumentTypeName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - -/** - * @param {string} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setDocumentTypeName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * repeated bytes serialized_index_storage_values = 3; - * @return {!Array} + * 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.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject(opt_includeInstance, this); }; /** - * repeated bytes serialized_index_storage_values = 3; - * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` - * @return {!Array} + * 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.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getSerializedIndexStorageValuesList())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.toObject = function(includeInstance, msg) { + var f, obj = { + latest: jspb.Message.getFieldWithDefault(msg, 3, 0), + current: jspb.Message.getFieldWithDefault(msg, 4, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * repeated bytes serialized_index_storage_values = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getSerializedIndexStorageValuesList()` - * @return {!Array} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getSerializedIndexStorageValuesList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getSerializedIndexStorageValuesList())); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader(msg, reader); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setSerializedIndexStorageValuesList = function(value) { - return jspb.Message.setField(this, 3, value || []); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setLatest(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCurrent(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.addSerializedIndexStorageValues = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearSerializedIndexStorageValuesList = function() { - return this.setSerializedIndexStorageValuesList([]); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getLatest(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getCurrent(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } }; /** - * optional ResourceVoteChoice vote_choice = 4; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} + * optional uint32 latest = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.getVoteChoice = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice, 4)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.getLatest = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ResourceVoteChoice|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this -*/ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.setVoteChoice = function(value) { - return jspb.Message.setWrapperField(this, 4, value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.setLatest = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote} returns this + * optional uint32 current = 4; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.clearVoteChoice = function() { - return this.setVoteChoice(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.getCurrent = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVote.prototype.hasVoteChoice = function() { - return jspb.Message.getField(this, 4) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive.prototype.setCurrent = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; -/** - * optional ContestedResourceIdentityVotes votes = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} - */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getVotes = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes, 1)); +/** + * optional Tenderdash tenderdash = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.getTenderdash = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.ContestedResourceIdentityVotes|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Tenderdash|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setVotes = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.setTenderdash = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearVotes = function() { - return this.setVotes(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.clearTenderdash = function() { + return this.setTenderdash(undefined); }; @@ -34294,36 +42276,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasVotes = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.hasTenderdash = function() { return jspb.Message.getField(this, 1) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional Drive drive = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.getDrive = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.Drive|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.setDrive = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.clearDrive = function() { + return this.setDrive(undefined); }; @@ -34331,36 +42313,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasProof = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol.prototype.hasDrive = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional Software software = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.getSoftware = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Software|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.setSoftware = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.clearSoftware = function() { + return this.setSoftware(undefined); }; @@ -34368,36 +42350,36 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetCon * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.hasSoftware = function() { + return jspb.Message.getField(this, 1) != null; }; /** - * optional GetContestedResourceIdentityVotesResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} + * optional Protocol protocol = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.getProtocol = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol, 2)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.GetContestedResourceIdentityVotesResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.Protocol|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.setProtocol = function(value) { + return jspb.Message.setWrapperField(this, 2, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} returns this */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.clearProtocol = function() { + return this.setProtocol(undefined); }; @@ -34405,37 +42387,12 @@ proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.protot * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetContestedResourceIdentityVotesResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version.prototype.hasProtocol = function() { + return jspb.Message.getField(this, 2) != 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.GetPrefundedSpecializedBalanceRequest.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -34451,8 +42408,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject(opt_includeInstance, this); }; @@ -34461,13 +42418,16 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. * @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.GetPrefundedSpecializedBalanceRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(includeInstance, f) + local: jspb.Message.getFieldWithDefault(msg, 1, 0), + block: jspb.Message.getFieldWithDefault(msg, 2, 0), + genesis: jspb.Message.getFieldWithDefault(msg, 3, 0), + epoch: jspb.Message.getFieldWithDefault(msg, 4, 0) }; if (includeInstance) { @@ -34481,23 +42441,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.toObject = /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.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.GetPrefundedSpecializedBalanceRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34505,9 +42465,20 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializ var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setLocal(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBlock(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setGenesis(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setEpoch(value); break; default: reader.skipField(); @@ -34522,9 +42493,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.deserializ * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34532,20 +42503,166 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getLocal(); + if (f !== 0) { + writer.writeUint64( 1, - f, - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint64( + 2, + f ); } + f = /** @type {number} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeUint64( + 3, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeUint32( + 4, + f + ); + } +}; + + +/** + * optional uint64 local = 1; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getLocal = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setLocal = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 block = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getBlock = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setBlock = function(value) { + return jspb.Message.setField(this, 2, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearBlock = function() { + return jspb.Message.setField(this, 2, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasBlock = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint64 genesis = 3; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getGenesis = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setGenesis = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearGenesis = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasGenesis = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional uint32 epoch = 4; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.getEpoch = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.setEpoch = function(value) { + return jspb.Message.setField(this, 4, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.clearEpoch = function() { + return jspb.Message.setField(this, 4, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time.prototype.hasEpoch = function() { + return jspb.Message.getField(this, 4) != null; }; @@ -34565,8 +42682,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject(opt_includeInstance, this); }; @@ -34575,14 +42692,14 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * @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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.toObject = function(includeInstance, msg) { var f, obj = { id: msg.getId_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) + proTxHash: msg.getProTxHash_asB64() }; if (includeInstance) { @@ -34596,23 +42713,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.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.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34624,8 +42741,8 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund msg.setId(value); break; case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); break; default: reader.skipField(); @@ -34640,9 +42757,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34650,11 +42767,11 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getId_asU8(); if (f.length > 0) { @@ -34663,9 +42780,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund f ); } - f = message.getProve(); - if (f) { - writer.writeBool( + f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeBytes( 2, f ); @@ -34677,7 +42794,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * optional bytes id = 1; * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; @@ -34687,7 +42804,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * This is a type-conversion wrapper around `getId()` * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId_asB64 = function() { return /** @type {string} */ (jspb.Message.bytesAsB64( this.getId())); }; @@ -34700,7 +42817,7 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund * This is a type-conversion wrapper around `getId()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getId_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getId_asU8 = function() { return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( this.getId())); }; @@ -34708,56 +42825,61 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefund /** * @param {!(string|Uint8Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setId = function(value) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.setId = function(value) { return jspb.Message.setProto3BytesField(this, 1, value); }; /** - * optional bool prove = 2; - * @return {boolean} + * optional bytes pro_tx_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} returns this + * optional bytes pro_tx_hash = 2; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); }; /** - * optional GetPrefundedSpecializedBalanceRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} + * optional bytes pro_tx_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.GetPrefundedSpecializedBalanceRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.oneofGroups_[0], value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.setProTxHash = function(value) { + return jspb.Message.setField(this, 2, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest} returns this + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.clearProTxHash = function() { + return jspb.Message.setField(this, 2, undefined); }; @@ -34765,37 +42887,12 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype. * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node.prototype.hasProTxHash = function() { + return jspb.Message.getField(this, 2) != 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.GetPrefundedSpecializedBalanceResponse.oneofGroups_ = [[1]]; - -/** - * @enum {number} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 -}; - -/** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0])); -}; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -34811,8 +42908,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject(opt_includeInstance, this); }; @@ -34821,13 +42918,21 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype * @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.GetPrefundedSpecializedBalanceResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(includeInstance, f) + catchingUp: jspb.Message.getBooleanFieldWithDefault(msg, 1, false), + latestBlockHash: msg.getLatestBlockHash_asB64(), + latestAppHash: msg.getLatestAppHash_asB64(), + latestBlockHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), + earliestBlockHash: msg.getEarliestBlockHash_asB64(), + earliestAppHash: msg.getEarliestAppHash_asB64(), + earliestBlockHeight: jspb.Message.getFieldWithDefault(msg, 7, 0), + maxPeerBlockHeight: jspb.Message.getFieldWithDefault(msg, 9, 0), + coreChainLockedHeight: jspb.Message.getFieldWithDefault(msg, 10, 0) }; if (includeInstance) { @@ -34841,23 +42946,23 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.toObject /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.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.GetPrefundedSpecializedBalanceResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -34865,9 +42970,40 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deseriali var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {boolean} */ (reader.readBool()); + msg.setCatchingUp(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLatestBlockHash(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLatestAppHash(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setLatestBlockHeight(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setEarliestBlockHash(value); + break; + case 6: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setEarliestAppHash(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint64()); + msg.setEarliestBlockHeight(value); + break; + case 9: + var value = /** @type {number} */ (reader.readUint64()); + msg.setMaxPeerBlockHeight(value); + break; + case 10: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCoreChainLockedHeight(value); break; default: reader.skipField(); @@ -34882,9 +43018,9 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.deseriali * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -34892,364 +43028,357 @@ proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getCatchingUp(); + if (f) { + writer.writeBool( 1, - f, - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getLatestBlockHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getLatestAppHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } + f = message.getLatestBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getEarliestBlockHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getEarliestAppHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 6, + f + ); + } + f = message.getEarliestBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 7, + f + ); + } + f = message.getMaxPeerBlockHeight(); + if (f !== 0) { + writer.writeUint64( + 9, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 10)); + if (f != null) { + writer.writeUint32( + 10, + f ); } }; - /** - * 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 + * optional bool catching_up = 1; + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getCatchingUp = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + /** - * @enum {number} + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - BALANCE: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setCatchingUp = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} + * optional bytes latest_block_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; - -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} + * optional bytes latest_block_hash = 2; + * This is a type-conversion wrapper around `getLatestBlockHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLatestBlockHash())); }; /** - * 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.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional bytes latest_block_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLatestBlockHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - balance: jspb.Message.getFieldWithDefault(msg, 1, 0), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLatestBlockHash())); +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestBlockHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional bytes latest_app_hash = 3; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0; - return proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional bytes latest_app_hash = 3; + * This is a type-conversion wrapper around `getLatestAppHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.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.setBalance(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLatestAppHash())); }; /** - * Serializes the message to binary data (in protobuf wire format). + * optional bytes latest_app_hash = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLatestAppHash()` * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestAppHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLatestAppHash())); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = /** @type {number} */ (jspb.Message.getField(message, 1)); - if (f != null) { - writer.writeUint64( - 1, - f - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestAppHash = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); }; /** - * optional uint64 balance = 1; + * optional uint64 latest_block_height = 4; * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getBalance = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getLatestBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); }; /** * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setBalance = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setLatestBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional bytes earliest_block_hash = 5; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearBalance = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes earliest_block_hash = 5; + * This is a type-conversion wrapper around `getEarliestBlockHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasBalance = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getEarliestBlockHash())); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional bytes earliest_block_hash = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEarliestBlockHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getEarliestBlockHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.oneofGroups_[0], value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestBlockHash = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional bytes earliest_app_hash = 6; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional bytes earliest_app_hash = 6; + * This is a type-conversion wrapper around `getEarliestAppHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getEarliestAppHash())); }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional bytes earliest_app_hash = 6; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEarliestAppHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestAppHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getEarliestAppHash())); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestAppHash = function(value) { + return jspb.Message.setProto3BytesField(this, 6, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} returns this + * optional uint64 earliest_block_height = 7; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getEarliestBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setEarliestBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); }; /** - * optional GetPrefundedSpecializedBalanceResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} + * optional uint64 max_peer_block_height = 9; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getMaxPeerBlockHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.GetPrefundedSpecializedBalanceResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.oneofGroups_[0], value); + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setMaxPeerBlockHeight = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse} returns this + * optional uint32 core_chain_locked_height = 10; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.getCoreChainLockedHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetPrefundedSpecializedBalanceResponse.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.setCoreChainLockedHeight = function(value) { + return jspb.Message.setField(this, 10, value); }; - -/** - * 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.GetTotalCreditsInPlatformRequest.oneofGroups_ = [[1]]; - /** - * @enum {number} + * Clears the field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.clearCoreChainLockedHeight = function() { + return jspb.Message.setField(this, 10, undefined); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain.prototype.hasCoreChainLockedHeight = function() { + return jspb.Message.getField(this, 10) != null; }; + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -35263,8 +43392,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject(opt_includeInstance, this); }; @@ -35273,13 +43402,15 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.toObj * @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.GetTotalCreditsInPlatformRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(includeInstance, f) + chainId: jspb.Message.getFieldWithDefault(msg, 1, ""), + peersCount: jspb.Message.getFieldWithDefault(msg, 2, 0), + listening: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -35293,23 +43424,23 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.toObject = func /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.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.GetTotalCreditsInPlatformRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -35317,9 +43448,16 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBina var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {string} */ (reader.readString()); + msg.setChainId(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setPeersCount(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setListening(value); break; default: reader.skipField(); @@ -35334,9 +43472,9 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.deserializeBina * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -35344,23 +43482,90 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.seria /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getChainId(); + if (f.length > 0) { + writer.writeString( 1, - f, - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter + f + ); + } + f = message.getPeersCount(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } + f = message.getListening(); + if (f) { + writer.writeBool( + 3, + f ); } }; +/** + * optional string chain_id = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getChainId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setChainId = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional uint32 peers_count = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getPeersCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setPeersCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional bool listening = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.getListening = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network.prototype.setListening = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + @@ -35377,8 +43582,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject(opt_includeInstance, this); }; @@ -35387,13 +43592,20 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits * @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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.toObject = function(includeInstance, msg) { var f, obj = { - prove: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + totalSyncedTime: jspb.Message.getFieldWithDefault(msg, 1, 0), + remainingTime: jspb.Message.getFieldWithDefault(msg, 2, 0), + totalSnapshots: jspb.Message.getFieldWithDefault(msg, 3, 0), + chunkProcessAvgTime: jspb.Message.getFieldWithDefault(msg, 4, 0), + snapshotHeight: jspb.Message.getFieldWithDefault(msg, 5, 0), + snapshotChunksCount: jspb.Message.getFieldWithDefault(msg, 6, 0), + backfilledBlocks: jspb.Message.getFieldWithDefault(msg, 7, 0), + backfillBlocksTotal: jspb.Message.getFieldWithDefault(msg, 8, 0) }; if (includeInstance) { @@ -35407,23 +43619,23 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync; + return proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.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.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -35431,8 +43643,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setTotalSyncedTime(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRemainingTime(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setTotalSnapshots(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setChunkProcessAvgTime(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSnapshotHeight(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSnapshotChunksCount(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBackfilledBlocks(value); + break; + case 8: + var value = /** @type {number} */ (reader.readUint64()); + msg.setBackfillBlocksTotal(value); break; default: reader.skipField(); @@ -35447,9 +43687,9 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -35457,406 +43697,351 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCredits /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProve(); - if (f) { - writer.writeBool( + f = message.getTotalSyncedTime(); + if (f !== 0) { + writer.writeUint64( 1, f ); } + f = message.getRemainingTime(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getTotalSnapshots(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getChunkProcessAvgTime(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getSnapshotHeight(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } + f = message.getSnapshotChunksCount(); + if (f !== 0) { + writer.writeUint64( + 6, + f + ); + } + f = message.getBackfilledBlocks(); + if (f !== 0) { + writer.writeUint64( + 7, + f + ); + } + f = message.getBackfillBlocksTotal(); + if (f !== 0) { + writer.writeUint64( + 8, + f + ); + } }; /** - * optional bool prove = 1; - * @return {boolean} + * optional uint64 total_synced_time = 1; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getTotalSyncedTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setTotalSyncedTime = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; /** - * optional GetTotalCreditsInPlatformRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} + * optional uint64 remaining_time = 2; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.GetTotalCreditsInPlatformRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getRemainingTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest} returns this + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setRemainingTime = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); }; /** - * Returns whether this field is set. - * @return {boolean} + * optional uint32 total_snapshots = 3; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getTotalSnapshots = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; - -/** - * 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.GetTotalCreditsInPlatformResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setTotalSnapshots = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} + * optional uint64 chunk_process_avg_time = 4; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getChunkProcessAvgTime = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 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} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setChunkProcessAvgTime = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); }; /** - * 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.GetTotalCreditsInPlatformResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional uint64 snapshot_height = 5; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.toObject = function(includeInstance, msg) { - var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getSnapshotHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setSnapshotHeight = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} - */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader); - msg.setV0(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; + * optional uint64 snapshot_chunks_count = 6; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getSnapshotChunksCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setSnapshotChunksCount = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * optional uint64 backfilled_blocks = 7; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getBackfilledBlocks = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); }; +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setBackfilledBlocks = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + /** - * 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 + * optional uint64 backfill_blocks_total = 8; + * @return {number} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.getBackfillBlocksTotal = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + /** - * @enum {number} + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - CREDITS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync.prototype.setBackfillBlocksTotal = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} + * optional Version version = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getVersion = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version, 1)); }; +/** + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Version|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setVersion = function(value) { + return jspb.Message.setWrapperField(this, 1, 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} + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearVersion = function() { + return this.setVersion(undefined); }; /** - * 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.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.toObject = function(includeInstance, msg) { - var f, obj = { - credits: jspb.Message.getFieldWithDefault(msg, 1, 0), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) - }; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasVersion = function() { + return jspb.Message.getField(this, 1) != null; +}; - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; + +/** + * optional Node node = 2; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} + */ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getNode = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node, 2)); }; -} /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Node|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setNode = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0; - return proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.deserializeBinaryFromReader(msg, reader); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearNode = function() { + return this.setNode(undefined); }; /** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.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.setCredits(value); - break; - case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); - break; - case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasNode = function() { + return jspb.Message.getField(this, 2) != null; }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional Chain chain = 3; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getChain = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain, 3)); }; /** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Chain|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setChain = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = /** @type {number} */ (jspb.Message.getField(message, 1)); - if (f != null) { - writer.writeUint64( - 1, - f - ); - } - f = message.getProof(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter - ); - } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter - ); - } +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearChain = function() { + return this.setChain(undefined); }; /** - * optional uint64 credits = 1; - * @return {number} + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getCredits = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasChain = function() { + return jspb.Message.getField(this, 3) != null; }; /** - * @param {number} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * optional Network network = 4; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setCredits = function(value) { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getNetwork = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network, 4)); }; /** - * Clears the field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Network|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setNetwork = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearCredits = function() { - return jspb.Message.setOneofField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearNetwork = function() { + return this.setNetwork(undefined); }; @@ -35864,36 +44049,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasCredits = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasNetwork = function() { + return jspb.Message.getField(this, 4) != null; }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * optional StateSync state_sync = 5; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getStateSync = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync, 5)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.StateSync|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setStateSync = function(value) { + return jspb.Message.setWrapperField(this, 5, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearStateSync = function() { + return this.setStateSync(undefined); }; @@ -35901,36 +44086,36 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasStateSync = function() { + return jspb.Message.getField(this, 5) != null; }; /** - * optional ResponseMetadata metadata = 3; - * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} + * optional Time time = 6; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.getMetadata = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.getTime = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time, 6)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.Time|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.setTime = function(value) { + return jspb.Message.setWrapperField(this, 6, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.clearMetadata = function() { - return this.setMetadata(undefined); +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.clearTime = function() { + return this.setTime(undefined); }; @@ -35938,35 +44123,35 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCredit * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0.prototype.hasTime = function() { + return jspb.Message.getField(this, 6) != null; }; /** - * optional GetTotalCreditsInPlatformResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} + * optional GetStatusResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.GetTotalCreditsInPlatformResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetStatusResponse.GetStatusResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetStatusResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetStatusResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -35975,7 +44160,7 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.clea * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetStatusResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; @@ -35989,21 +44174,21 @@ proto.org.dash.platform.dapi.v0.GetTotalCreditsInPlatformResponse.prototype.hasV * @private {!Array>} * @const */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_ = [[1]]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_ = [[1]]; /** * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase = { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase = { VERSION_NOT_SET: 0, V0: 1 }; /** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} + * @return {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_[0])); }; @@ -36021,8 +44206,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.toObject(opt_includeInstance, this); }; @@ -36031,13 +44216,13 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.toObject = func * @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.GetPathElementsRequest} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(includeInstance, f) + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject(includeInstance, f) }; if (includeInstance) { @@ -36051,23 +44236,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.toObject = function(inclu /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest; - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.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.GetPathElementsRequest} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36075,8 +44260,8 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromRead var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader); + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.deserializeBinaryFromReader); msg.setV0(value); break; default: @@ -36092,9 +44277,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.deserializeBinaryFromRead * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36102,31 +44287,24 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.serializeBinary /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getV0(); if (f != null) { writer.writeMessage( 1, f, - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter ); } }; -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.repeatedFields_ = [1,2]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -36142,8 +44320,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject(opt_includeInstance, this); }; @@ -36152,15 +44330,13 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. * @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.GetPathElementsRequest.GetPathElementsRequestV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.toObject = function(includeInstance, msg) { var f, obj = { - pathList: msg.getPathList_asB64(), - keysList: msg.getKeysList_asB64(), - prove: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) + }; if (includeInstance) { @@ -36174,41 +44350,29 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0; - return proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.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.GetPathElementsRequest.GetPathElementsRequestV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.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.addPath(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addKeys(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setProve(value); - break; default: reader.skipField(); break; @@ -36222,9 +44386,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36232,238 +44396,191 @@ proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0. /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getPathList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 1, - f - ); - } - f = message.getKeysList_asU8(); - if (f.length > 0) { - writer.writeRepeatedBytes( - 2, - f - ); - } - f = message.getProve(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * repeated bytes path = 1; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * repeated bytes path = 1; - * This is a type-conversion wrapper around `getPathList()` - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getPathList())); }; /** - * repeated bytes path = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPathList()` - * @return {!Array} + * optional GetCurrentQuorumsInfoRequestV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getPathList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getPathList())); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0, 1)); }; /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setPathList = function(value) { - return jspb.Message.setField(this, 1, value || []); + * @param {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.GetCurrentQuorumsInfoRequestV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} returns this +*/ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.oneofGroups_[0], value); }; /** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * Clears the message field making it undefined. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addPath = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.clearV0 = function() { + return this.setV0(undefined); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearPathList = function() { - return this.setPathList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoRequest.prototype.hasV0 = function() { + return jspb.Message.getField(this, 1) != null; }; -/** - * repeated bytes keys = 2; - * @return {!Array} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); -}; - /** - * repeated bytes keys = 2; - * This is a type-conversion wrapper around `getKeysList()` - * @return {!Array} + * 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.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asB64 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getKeysList())); -}; - +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_ = [[1]]; /** - * repeated bytes keys = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getKeysList()` - * @return {!Array} + * @enum {number} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getKeysList_asU8 = function() { - return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getKeysList())); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase = { + VERSION_NOT_SET: 0, + V0: 1 }; - /** - * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * @return {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setKeysList = function(value) { - return jspb.Message.setField(this, 2, value || []); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.getVersionCase = function() { + return /** @type {proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_[0])); }; -/** - * @param {!(string|Uint8Array)} value - * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.addKeys = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 2, value, opt_index); -}; - +if (jspb.Message.GENERATE_TO_OBJECT) { /** - * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this + * 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.GetPathElementsRequest.GetPathElementsRequestV0.prototype.clearKeysList = function() { - return this.setKeysList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.toObject(opt_includeInstance, this); }; /** - * optional bool prove = 3; - * @return {boolean} + * 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.GetCurrentQuorumsInfoResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.getProve = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.toObject = function(includeInstance, msg) { + var f, obj = { + v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject(includeInstance, f) + }; -/** - * @param {boolean} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} returns this - */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0.prototype.setProve = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} /** - * optional GetPathElementsRequestV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0, 1)); -}; - - -/** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsRequest.GetPathElementsRequestV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsRequest.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.deserializeBinaryFromReader(msg, reader); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsRequest} returns this + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.clearV0 = function() { - return this.setV0(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.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.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinaryFromReader); + msg.setV0(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; }; /** - * Returns whether this field is set. - * @return {boolean} + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsRequest.prototype.hasV0 = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); }; - -/** - * 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.GetPathElementsResponse.oneofGroups_ = [[1]]; - /** - * @enum {number} + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase = { - VERSION_NOT_SET: 0, - V0: 1 +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getV0(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter + ); + } }; -/** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} - */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getVersionCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.VersionCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0])); -}; + @@ -36480,8 +44597,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject(opt_includeInstance, this); }; @@ -36490,13 +44607,15 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.toObject = fun * @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.GetPathElementsResponse} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject = function(includeInstance, msg) { var f, obj = { - v0: (f = msg.getV0()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(includeInstance, f) + proTxHash: msg.getProTxHash_asB64(), + nodeIp: jspb.Message.getFieldWithDefault(msg, 2, ""), + isBanned: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) }; if (includeInstance) { @@ -36510,23 +44629,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.toObject = function(incl /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.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.GetPathElementsResponse} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36534,9 +44653,16 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromRea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader); - msg.setV0(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setProTxHash(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNodeIp(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setIsBanned(value); break; default: reader.skipField(); @@ -36551,9 +44677,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.deserializeBinaryFromRea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36561,52 +44687,124 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.serializeBinar /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getV0(); - if (f != null) { - writer.writeMessage( + f = message.getProTxHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter + f + ); + } + f = message.getNodeIp(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getIsBanned(); + if (f) { + writer.writeBool( + 3, + f ); } }; +/** + * optional bytes pro_tx_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + /** - * 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 + * optional bytes pro_tx_hash = 1; + * This is a type-conversion wrapper around `getProTxHash()` + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_ = [[1,2]]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getProTxHash())); +}; + /** - * @enum {number} + * optional bytes pro_tx_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getProTxHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase = { - RESULT_NOT_SET: 0, - ELEMENTS: 1, - PROOF: 2 +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getProTxHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getProTxHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setProTxHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); }; + /** - * @return {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} + * optional string node_ip = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getResultCase = function() { - return /** @type {proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.ResultCase} */(jspb.Message.computeOneofCase(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0])); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getNodeIp = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setNodeIp = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool is_banned = 3; + * @return {boolean} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.getIsBanned = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.prototype.setIsBanned = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); }; +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.repeatedFields_ = [3]; + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -36620,8 +44818,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject(opt_includeInstance, this); }; @@ -36630,15 +44828,17 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * @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.GetPathElementsResponse.GetPathElementsResponseV0} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject = function(includeInstance, msg) { var f, obj = { - elements: (f = msg.getElements()) && proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(includeInstance, f), - proof: (f = msg.getProof()) && proto.org.dash.platform.dapi.v0.Proof.toObject(includeInstance, f), - metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) + quorumHash: msg.getQuorumHash_asB64(), + coreHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), + membersList: jspb.Message.toObjectList(msg.getMembersList(), + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.toObject, includeInstance), + thresholdPublicKey: msg.getThresholdPublicKey_asB64() }; if (includeInstance) { @@ -36652,23 +44852,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.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.GetPathElementsResponse.GetPathElementsResponseV0} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36676,19 +44876,21 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader); - msg.setElements(value); + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setQuorumHash(value); break; case 2: - var value = new proto.org.dash.platform.dapi.v0.Proof; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.Proof.deserializeBinaryFromReader); - msg.setProof(value); + var value = /** @type {number} */ (reader.readUint32()); + msg.setCoreHeight(value); break; case 3: - var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; - reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); - msg.setMetadata(value); + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.deserializeBinaryFromReader); + msg.addMembers(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setThresholdPublicKey(value); break; default: reader.skipField(); @@ -36703,9 +44905,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36713,46 +44915,191 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getElements(); - if (f != null) { - writer.writeMessage( + f = message.getQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( 1, - f, - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter + f ); } - f = message.getProof(); - if (f != null) { - writer.writeMessage( + f = message.getCoreHeight(); + if (f !== 0) { + writer.writeUint32( 2, - f, - proto.org.dash.platform.dapi.v0.Proof.serializeBinaryToWriter + f ); } - f = message.getMetadata(); - if (f != null) { - writer.writeMessage( + f = message.getMembersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 3, f, - proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0.serializeBinaryToWriter + ); + } + f = message.getThresholdPublicKey_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f ); } }; +/** + * optional bytes quorum_hash = 1; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes quorum_hash = 1; + * This is a type-conversion wrapper around `getQuorumHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getQuorumHash())); +}; + + +/** + * optional bytes quorum_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getQuorumHash()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getQuorumHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getQuorumHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setQuorumHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional uint32 core_height = 2; + * @return {number} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getCoreHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setCoreHeight = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * repeated ValidatorV0 members = 3; + * @return {!Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getMembersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this +*/ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setMembersList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.addMembers = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorV0, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.clearMembersList = function() { + return this.setMembersList([]); +}; + + +/** + * optional bytes threshold_public_key = 4; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * optional bytes threshold_public_key = 4; + * This is a type-conversion wrapper around `getThresholdPublicKey()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getThresholdPublicKey())); +}; + + +/** + * optional bytes threshold_public_key = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getThresholdPublicKey()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.getThresholdPublicKey_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getThresholdPublicKey())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.prototype.setThresholdPublicKey = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); +}; + + /** * List of repeated fields within this message type. * @private {!Array} * @const */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.repeatedFields_ = [1]; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.repeatedFields_ = [1,3]; @@ -36769,8 +45116,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.toObject = function(opt_includeInstance) { - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject(opt_includeInstance, this); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.toObject = function(opt_includeInstance) { + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject(opt_includeInstance, this); }; @@ -36779,13 +45126,18 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * @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.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The msg instance to transform. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.toObject = function(includeInstance, msg) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.toObject = function(includeInstance, msg) { var f, obj = { - elementsList: msg.getElementsList_asB64() + quorumHashesList: msg.getQuorumHashesList_asB64(), + currentQuorumHash: msg.getCurrentQuorumHash_asB64(), + validatorSetsList: jspb.Message.toObjectList(msg.getValidatorSetsList(), + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.toObject, includeInstance), + lastBlockProposer: msg.getLastBlockProposer_asB64(), + metadata: (f = msg.getMetadata()) && proto.org.dash.platform.dapi.v0.ResponseMetadata.toObject(includeInstance, f) }; if (includeInstance) { @@ -36799,23 +45151,23 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinary = function(bytes) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements; - return proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader(msg, reader); + var msg = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0; + return proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.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.GetPathElementsResponse.GetPathElementsResponseV0.Elements} msg The message object to deserialize into. + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.deserializeBinaryFromReader = function(msg, reader) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -36824,7 +45176,25 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV switch (field) { case 1: var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.addElements(value); + msg.addQuorumHashes(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setCurrentQuorumHash(value); + break; + case 3: + var value = new proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.deserializeBinaryFromReader); + msg.addValidatorSets(value); + break; + case 4: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setLastBlockProposer(value); + break; + case 5: + var value = new proto.org.dash.platform.dapi.v0.ResponseMetadata; + reader.readMessage(value,proto.org.dash.platform.dapi.v0.ResponseMetadata.deserializeBinaryFromReader); + msg.setMetadata(value); break; default: reader.skipField(); @@ -36839,9 +45209,9 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.serializeBinary = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter(this, writer); + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -36849,60 +45219,90 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} message + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.serializeBinaryToWriter = function(message, writer) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getElementsList_asU8(); + f = message.getQuorumHashesList_asU8(); if (f.length > 0) { writer.writeRepeatedBytes( 1, f ); } + f = message.getCurrentQuorumHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getValidatorSetsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0.serializeBinaryToWriter + ); + } + f = message.getLastBlockProposer_asU8(); + if (f.length > 0) { + writer.writeBytes( + 4, + f + ); + } + f = message.getMetadata(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.org.dash.platform.dapi.v0.ResponseMetadata.serializeBinaryToWriter + ); + } }; /** - * repeated bytes elements = 1; + * repeated bytes quorum_hashes = 1; * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList = function() { return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); }; /** - * repeated bytes elements = 1; - * This is a type-conversion wrapper around `getElementsList()` + * repeated bytes quorum_hashes = 1; + * This is a type-conversion wrapper around `getQuorumHashesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asB64 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList_asB64 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsB64( - this.getElementsList())); + this.getQuorumHashesList())); }; /** - * repeated bytes elements = 1; + * repeated bytes quorum_hashes = 1; * Note that Uint8Array is not supported on all browsers. * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getElementsList()` + * This is a type-conversion wrapper around `getQuorumHashesList()` * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.getElementsList_asU8 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getQuorumHashesList_asU8 = function() { return /** @type {!Array} */ (jspb.Message.bytesListAsU8( - this.getElementsList())); + this.getQuorumHashesList())); }; /** * @param {!(Array|Array)} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.setElementsList = function(value) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setQuorumHashesList = function(value) { return jspb.Message.setField(this, 1, value || []); }; @@ -36910,120 +45310,168 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV /** * @param {!(string|Uint8Array)} value * @param {number=} opt_index - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.addElements = function(value, opt_index) { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.addQuorumHashes = function(value, opt_index) { return jspb.Message.addToRepeatedField(this, 1, value, opt_index); }; /** * Clears the list making it empty but non-null. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements.prototype.clearElementsList = function() { - return this.setElementsList([]); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearQuorumHashesList = function() { + return this.setQuorumHashesList([]); }; /** - * optional Elements elements = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} + * optional bytes current_quorum_hash = 2; + * @return {string} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getElements = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements, 1)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.Elements|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this -*/ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setElements = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); + * optional bytes current_quorum_hash = 2; + * This is a type-conversion wrapper around `getCurrentQuorumHash()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getCurrentQuorumHash())); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * optional bytes current_quorum_hash = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getCurrentQuorumHash()` + * @return {!Uint8Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearElements = function() { - return this.setElements(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getCurrentQuorumHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getCurrentQuorumHash())); }; /** - * Returns whether this field is set. - * @return {boolean} + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasElements = function() { - return jspb.Message.getField(this, 1) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setCurrentQuorumHash = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); }; /** - * optional Proof proof = 2; - * @return {?proto.org.dash.platform.dapi.v0.Proof} + * repeated ValidatorSetV0 validator_sets = 3; + * @return {!Array} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getProof = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.Proof} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.Proof, 2)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getValidatorSetsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, 3)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.Proof|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @param {!Array} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setProof = function(value) { - return jspb.Message.setOneofWrapperField(this, 2, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setValidatorSetsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); }; /** - * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @param {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0=} opt_value + * @param {number=} opt_index + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearProof = function() { - return this.setProof(undefined); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.addValidatorSets = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.ValidatorSetV0, opt_index); }; /** - * Returns whether this field is set. - * @return {boolean} + * Clears the list making it empty but non-null. + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasProof = function() { - return jspb.Message.getField(this, 2) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearValidatorSetsList = function() { + return this.setValidatorSetsList([]); }; /** - * optional ResponseMetadata metadata = 3; + * optional bytes last_block_proposer = 4; + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * optional bytes last_block_proposer = 4; + * This is a type-conversion wrapper around `getLastBlockProposer()` + * @return {string} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getLastBlockProposer())); +}; + + +/** + * optional bytes last_block_proposer = 4; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getLastBlockProposer()` + * @return {!Uint8Array} + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getLastBlockProposer_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getLastBlockProposer())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this + */ +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setLastBlockProposer = function(value) { + return jspb.Message.setProto3BytesField(this, 4, value); +}; + + +/** + * optional ResponseMetadata metadata = 5; * @return {?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.getMetadata = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.getMetadata = function() { return /** @type{?proto.org.dash.platform.dapi.v0.ResponseMetadata} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 3)); + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.ResponseMetadata, 5)); }; /** * @param {?proto.org.dash.platform.dapi.v0.ResponseMetadata|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.setMetadata = function(value) { - return jspb.Message.setWrapperField(this, 3, value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.setMetadata = function(value) { + return jspb.Message.setWrapperField(this, 5, value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.clearMetadata = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.clearMetadata = function() { return this.setMetadata(undefined); }; @@ -37032,35 +45480,35 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0.prototype.hasMetadata = function() { - return jspb.Message.getField(this, 3) != null; +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0.prototype.hasMetadata = function() { + return jspb.Message.getField(this, 5) != null; }; /** - * optional GetPathElementsResponseV0 v0 = 1; - * @return {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} + * optional GetCurrentQuorumsInfoResponseV0 v0 = 1; + * @return {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.getV0 = function() { - return /** @type{?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0} */ ( - jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0, 1)); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.getV0 = function() { + return /** @type{?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0} */ ( + jspb.Message.getWrapperField(this, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0, 1)); }; /** - * @param {?proto.org.dash.platform.dapi.v0.GetPathElementsResponse.GetPathElementsResponseV0|undefined} value - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this + * @param {?proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.GetCurrentQuorumsInfoResponseV0|undefined} value + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.setV0 = function(value) { - return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetPathElementsResponse.oneofGroups_[0], value); +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.setV0 = function(value) { + return jspb.Message.setOneofWrapperField(this, 1, proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.oneofGroups_[0], value); }; /** * Clears the message field making it undefined. - * @return {!proto.org.dash.platform.dapi.v0.GetPathElementsResponse} returns this + * @return {!proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse} returns this */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.clearV0 = function() { return this.setV0(undefined); }; @@ -37069,7 +45517,7 @@ proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.clearV0 = func * Returns whether this field is set. * @return {boolean} */ -proto.org.dash.platform.dapi.v0.GetPathElementsResponse.prototype.hasV0 = function() { +proto.org.dash.platform.dapi.v0.GetCurrentQuorumsInfoResponse.prototype.hasV0 = function() { return jspb.Message.getField(this, 1) != null; }; 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 5b55cb4a71..11bc954b2d 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 @@ -67,6 +67,15 @@ type PlatformgetIdentityBalance = { readonly responseType: typeof platform_pb.GetIdentityBalanceResponse; }; +type PlatformgetIdentitiesBalances = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof platform_pb.GetIdentitiesBalancesRequest; + readonly responseType: typeof platform_pb.GetIdentitiesBalancesResponse; +}; + type PlatformgetIdentityBalanceAndRevision = { readonly methodName: string; readonly service: typeof Platform; @@ -76,6 +85,24 @@ type PlatformgetIdentityBalanceAndRevision = { readonly responseType: typeof platform_pb.GetIdentityBalanceAndRevisionResponse; }; +type PlatformgetEvonodesProposedEpochBlocksByIds = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof platform_pb.GetEvonodesProposedEpochBlocksByIdsRequest; + readonly responseType: typeof platform_pb.GetEvonodesProposedEpochBlocksResponse; +}; + +type PlatformgetEvonodesProposedEpochBlocksByRange = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof platform_pb.GetEvonodesProposedEpochBlocksByRangeRequest; + readonly responseType: typeof platform_pb.GetEvonodesProposedEpochBlocksResponse; +}; + type PlatformgetProofs = { readonly methodName: string; readonly service: typeof Platform; @@ -247,6 +274,24 @@ type PlatformgetPathElements = { readonly responseType: typeof platform_pb.GetPathElementsResponse; }; +type PlatformgetStatus = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof platform_pb.GetStatusRequest; + readonly responseType: typeof platform_pb.GetStatusResponse; +}; + +type PlatformgetCurrentQuorumsInfo = { + readonly methodName: string; + readonly service: typeof Platform; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof platform_pb.GetCurrentQuorumsInfoRequest; + readonly responseType: typeof platform_pb.GetCurrentQuorumsInfoResponse; +}; + export class Platform { static readonly serviceName: string; static readonly broadcastStateTransition: PlatformbroadcastStateTransition; @@ -256,7 +301,10 @@ export class Platform { static readonly getIdentityNonce: PlatformgetIdentityNonce; static readonly getIdentityContractNonce: PlatformgetIdentityContractNonce; static readonly getIdentityBalance: PlatformgetIdentityBalance; + static readonly getIdentitiesBalances: PlatformgetIdentitiesBalances; static readonly getIdentityBalanceAndRevision: PlatformgetIdentityBalanceAndRevision; + static readonly getEvonodesProposedEpochBlocksByIds: PlatformgetEvonodesProposedEpochBlocksByIds; + static readonly getEvonodesProposedEpochBlocksByRange: PlatformgetEvonodesProposedEpochBlocksByRange; static readonly getProofs: PlatformgetProofs; static readonly getDataContract: PlatformgetDataContract; static readonly getDataContractHistory: PlatformgetDataContractHistory; @@ -276,6 +324,8 @@ export class Platform { static readonly getPrefundedSpecializedBalance: PlatformgetPrefundedSpecializedBalance; static readonly getTotalCreditsInPlatform: PlatformgetTotalCreditsInPlatform; static readonly getPathElements: PlatformgetPathElements; + static readonly getStatus: PlatformgetStatus; + static readonly getCurrentQuorumsInfo: PlatformgetCurrentQuorumsInfo; } export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } @@ -373,6 +423,15 @@ export class PlatformClient { requestMessage: platform_pb.GetIdentityBalanceRequest, callback: (error: ServiceError|null, responseMessage: platform_pb.GetIdentityBalanceResponse|null) => void ): UnaryResponse; + getIdentitiesBalances( + requestMessage: platform_pb.GetIdentitiesBalancesRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetIdentitiesBalancesResponse|null) => void + ): UnaryResponse; + getIdentitiesBalances( + requestMessage: platform_pb.GetIdentitiesBalancesRequest, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetIdentitiesBalancesResponse|null) => void + ): UnaryResponse; getIdentityBalanceAndRevision( requestMessage: platform_pb.GetIdentityBalanceAndRevisionRequest, metadata: grpc.Metadata, @@ -382,6 +441,24 @@ export class PlatformClient { requestMessage: platform_pb.GetIdentityBalanceAndRevisionRequest, callback: (error: ServiceError|null, responseMessage: platform_pb.GetIdentityBalanceAndRevisionResponse|null) => void ): UnaryResponse; + getEvonodesProposedEpochBlocksByIds( + requestMessage: platform_pb.GetEvonodesProposedEpochBlocksByIdsRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetEvonodesProposedEpochBlocksResponse|null) => void + ): UnaryResponse; + getEvonodesProposedEpochBlocksByIds( + requestMessage: platform_pb.GetEvonodesProposedEpochBlocksByIdsRequest, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetEvonodesProposedEpochBlocksResponse|null) => void + ): UnaryResponse; + getEvonodesProposedEpochBlocksByRange( + requestMessage: platform_pb.GetEvonodesProposedEpochBlocksByRangeRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetEvonodesProposedEpochBlocksResponse|null) => void + ): UnaryResponse; + getEvonodesProposedEpochBlocksByRange( + requestMessage: platform_pb.GetEvonodesProposedEpochBlocksByRangeRequest, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetEvonodesProposedEpochBlocksResponse|null) => void + ): UnaryResponse; getProofs( requestMessage: platform_pb.GetProofsRequest, metadata: grpc.Metadata, @@ -553,5 +630,23 @@ export class PlatformClient { requestMessage: platform_pb.GetPathElementsRequest, callback: (error: ServiceError|null, responseMessage: platform_pb.GetPathElementsResponse|null) => void ): UnaryResponse; + getStatus( + requestMessage: platform_pb.GetStatusRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetStatusResponse|null) => void + ): UnaryResponse; + getStatus( + requestMessage: platform_pb.GetStatusRequest, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetStatusResponse|null) => void + ): UnaryResponse; + getCurrentQuorumsInfo( + requestMessage: platform_pb.GetCurrentQuorumsInfoRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetCurrentQuorumsInfoResponse|null) => void + ): UnaryResponse; + getCurrentQuorumsInfo( + requestMessage: platform_pb.GetCurrentQuorumsInfoRequest, + callback: (error: ServiceError|null, responseMessage: platform_pb.GetCurrentQuorumsInfoResponse|null) => void + ): UnaryResponse; } 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 a6774546d2..5ba77dbcd4 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 @@ -73,6 +73,15 @@ Platform.getIdentityBalance = { responseType: platform_pb.GetIdentityBalanceResponse }; +Platform.getIdentitiesBalances = { + methodName: "getIdentitiesBalances", + service: Platform, + requestStream: false, + responseStream: false, + requestType: platform_pb.GetIdentitiesBalancesRequest, + responseType: platform_pb.GetIdentitiesBalancesResponse +}; + Platform.getIdentityBalanceAndRevision = { methodName: "getIdentityBalanceAndRevision", service: Platform, @@ -82,6 +91,24 @@ Platform.getIdentityBalanceAndRevision = { responseType: platform_pb.GetIdentityBalanceAndRevisionResponse }; +Platform.getEvonodesProposedEpochBlocksByIds = { + methodName: "getEvonodesProposedEpochBlocksByIds", + service: Platform, + requestStream: false, + responseStream: false, + requestType: platform_pb.GetEvonodesProposedEpochBlocksByIdsRequest, + responseType: platform_pb.GetEvonodesProposedEpochBlocksResponse +}; + +Platform.getEvonodesProposedEpochBlocksByRange = { + methodName: "getEvonodesProposedEpochBlocksByRange", + service: Platform, + requestStream: false, + responseStream: false, + requestType: platform_pb.GetEvonodesProposedEpochBlocksByRangeRequest, + responseType: platform_pb.GetEvonodesProposedEpochBlocksResponse +}; + Platform.getProofs = { methodName: "getProofs", service: Platform, @@ -253,6 +280,24 @@ Platform.getPathElements = { responseType: platform_pb.GetPathElementsResponse }; +Platform.getStatus = { + methodName: "getStatus", + service: Platform, + requestStream: false, + responseStream: false, + requestType: platform_pb.GetStatusRequest, + responseType: platform_pb.GetStatusResponse +}; + +Platform.getCurrentQuorumsInfo = { + methodName: "getCurrentQuorumsInfo", + service: Platform, + requestStream: false, + responseStream: false, + requestType: platform_pb.GetCurrentQuorumsInfoRequest, + responseType: platform_pb.GetCurrentQuorumsInfoResponse +}; + exports.Platform = Platform; function PlatformClient(serviceHost, options) { @@ -477,6 +522,37 @@ PlatformClient.prototype.getIdentityBalance = function getIdentityBalance(reques }; }; +PlatformClient.prototype.getIdentitiesBalances = function getIdentitiesBalances(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Platform.getIdentitiesBalances, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + PlatformClient.prototype.getIdentityBalanceAndRevision = function getIdentityBalanceAndRevision(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -508,6 +584,68 @@ PlatformClient.prototype.getIdentityBalanceAndRevision = function getIdentityBal }; }; +PlatformClient.prototype.getEvonodesProposedEpochBlocksByIds = function getEvonodesProposedEpochBlocksByIds(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Platform.getEvonodesProposedEpochBlocksByIds, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +PlatformClient.prototype.getEvonodesProposedEpochBlocksByRange = function getEvonodesProposedEpochBlocksByRange(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Platform.getEvonodesProposedEpochBlocksByRange, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + PlatformClient.prototype.getProofs = function getProofs(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -1097,5 +1235,67 @@ PlatformClient.prototype.getPathElements = function getPathElements(requestMessa }; }; +PlatformClient.prototype.getStatus = function getStatus(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Platform.getStatus, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +PlatformClient.prototype.getCurrentQuorumsInfo = function getCurrentQuorumsInfo(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Platform.getCurrentQuorumsInfo, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + exports.PlatformClient = PlatformClient; diff --git a/packages/dapi-grpc/package.json b/packages/dapi-grpc/package.json index 19d2a4c851..31f70b10bd 100644 --- a/packages/dapi-grpc/package.json +++ b/packages/dapi-grpc/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-grpc", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "DAPI GRPC definition file and generated clients", "browser": "browser.js", "main": "node.js", diff --git a/packages/dapi-grpc/protos/platform/v0/platform.proto b/packages/dapi-grpc/protos/platform/v0/platform.proto index ca940cf221..b46d784ceb 100644 --- a/packages/dapi-grpc/protos/platform/v0/platform.proto +++ b/packages/dapi-grpc/protos/platform/v0/platform.proto @@ -16,8 +16,14 @@ service Platform { rpc getIdentityContractNonce(GetIdentityContractNonceRequest) returns (GetIdentityContractNonceResponse); rpc getIdentityBalance(GetIdentityBalanceRequest) returns (GetIdentityBalanceResponse); + rpc getIdentitiesBalances(GetIdentitiesBalancesRequest) + returns (GetIdentitiesBalancesResponse); rpc getIdentityBalanceAndRevision(GetIdentityBalanceAndRevisionRequest) returns (GetIdentityBalanceAndRevisionResponse); + rpc getEvonodesProposedEpochBlocksByIds(GetEvonodesProposedEpochBlocksByIdsRequest) + returns (GetEvonodesProposedEpochBlocksResponse); + rpc getEvonodesProposedEpochBlocksByRange(GetEvonodesProposedEpochBlocksByRangeRequest) + returns (GetEvonodesProposedEpochBlocksResponse); rpc getProofs(GetProofsRequest) returns (GetProofsResponse); rpc getDataContract(GetDataContractRequest) returns (GetDataContractResponse); rpc getDataContractHistory(GetDataContractHistoryRequest) @@ -47,6 +53,8 @@ service Platform { rpc getPrefundedSpecializedBalance(GetPrefundedSpecializedBalanceRequest) returns (GetPrefundedSpecializedBalanceResponse); rpc getTotalCreditsInPlatform(GetTotalCreditsInPlatformRequest) returns (GetTotalCreditsInPlatformResponse); rpc getPathElements(GetPathElementsRequest) returns (GetPathElementsResponse); + rpc getStatus(GetStatusRequest) returns (GetStatusResponse); + rpc getCurrentQuorumsInfo(GetCurrentQuorumsInfoRequest) returns (GetCurrentQuorumsInfoResponse); } // Proof message includes cryptographic proofs for validating responses @@ -306,6 +314,85 @@ message GetIdentitiesContractKeysResponse { oneof version { GetIdentitiesContractKeysResponseV0 v0 = 1; } } +message GetEvonodesProposedEpochBlocksByIdsRequest { + + message GetEvonodesProposedEpochBlocksByIdsRequestV0 { + optional uint32 epoch = 1; // The epoch we are querying for, if none is set, get current epoch + repeated bytes ids = 2; // IDs of the evonodes for which we want to get their proposed blocks + bool prove = 3; // Flag to request a proof as the response + } + + oneof version { GetEvonodesProposedEpochBlocksByIdsRequestV0 v0 = 1; } +} + +message GetEvonodesProposedEpochBlocksResponse { + + message GetEvonodesProposedEpochBlocksResponseV0 { + message EvonodeProposedBlocks { + bytes pro_tx_hash = 1; + uint64 count = 2; + } + + message EvonodesProposedBlocks { + repeated EvonodeProposedBlocks evonodes_proposed_block_counts = 1; + } + + oneof result { + EvonodesProposedBlocks evonodes_proposed_block_counts_info = 1; // The actual result + Proof proof = 2; // Proof of the keys data, if requested + } + ResponseMetadata metadata = 3; // Metadata about the blockchain state + } + oneof version { GetEvonodesProposedEpochBlocksResponseV0 v0 = 1; } +} + +message GetEvonodesProposedEpochBlocksByRangeRequest { + + message GetEvonodesProposedEpochBlocksByRangeRequestV0 { + optional uint32 epoch = 1; // The epoch we are querying for, if none is set, get current epoch + optional uint32 limit = 2; // Maximum number of evonodes proposed epoch blocks to return + oneof start { + bytes start_after = 3; // Start retrieval after this document + bytes start_at = 4; // Start retrieval at this document + } + bool prove = 5; // Flag to request a proof as the response + } + + oneof version { GetEvonodesProposedEpochBlocksByRangeRequestV0 v0 = 1; } +} + +message GetIdentitiesBalancesRequest { + message GetIdentitiesBalancesRequestV0 { + repeated bytes ids = 1; + bool prove = 2; + } + + oneof version { + GetIdentitiesBalancesRequestV0 v0 = 1; + } +} + +message GetIdentitiesBalancesResponse { + message GetIdentitiesBalancesResponseV0 { + message IdentityBalance { + bytes identity_id = 1; + optional uint64 balance = 2; + } + + message IdentitiesBalances { + repeated IdentityBalance entries = 1; + }; + + oneof result { + IdentitiesBalances identities_balances = 1; + Proof proof = 2; + } + ResponseMetadata metadata = 3; + } + + oneof version { GetIdentitiesBalancesResponseV0 v0 = 1; } +} + message GetProofsRequest { message GetProofsRequestV0 { // DocumentRequest specifies a request for a document proof @@ -1001,3 +1088,130 @@ message GetPathElementsResponse { GetPathElementsResponseV0 v0 = 1; } } + +message GetStatusRequest { + message GetStatusRequestV0 { + } + + oneof version { GetStatusRequestV0 v0 = 1; } +} + + +message GetStatusResponse { + message GetStatusResponseV0 { + message Version { + message Software { + string dapi = 1; + // It will be missing if Drive is not responding + optional string drive = 2; + // It will be missing if Tenderdash is not responding + optional string tenderdash = 3; + } + + message Protocol { + message Tenderdash { + uint32 p2p = 1; + uint32 block = 2; + } + + message Drive { + uint32 latest = 3; + uint32 current = 4; + } + + Tenderdash tenderdash = 1; + Drive drive = 2; + } + + Software software = 1; + Protocol protocol = 2; + } + + message Time { + uint64 local = 1; + // It will be missing if Drive is not responding + optional uint64 block = 2; + // It will be missing if Drive is not responding + optional uint64 genesis = 3; + // It will be missing if Drive is not responding + optional uint32 epoch = 4; + } + + message Node { + // Platform node ID + bytes id = 1; + // Evo masternode pro tx hash. It will be absent if the node is a fullnode + optional bytes pro_tx_hash = 2; + } + + message Chain { + bool catching_up = 1; + bytes latest_block_hash = 2; + bytes latest_app_hash = 3; + uint64 latest_block_height = 4; + bytes earliest_block_hash = 5; + bytes earliest_app_hash = 6; + uint64 earliest_block_height = 7; + uint64 max_peer_block_height = 9; + // Latest known core height in consensus. + // It will be missing if Drive is not responding + optional uint32 core_chain_locked_height = 10; + } + + message Network { + string chain_id = 1; + uint32 peers_count = 2; + bool listening = 3; + } + + message StateSync { + uint64 total_synced_time = 1; + uint64 remaining_time = 2; + uint32 total_snapshots = 3; + uint64 chunk_process_avg_time = 4; + uint64 snapshot_height = 5; + uint64 snapshot_chunks_count = 6; + uint64 backfilled_blocks = 7; + uint64 backfill_blocks_total = 8; + } + + Version version = 1; + Node node = 2; + Chain chain = 3; + Network network = 4; + StateSync state_sync = 5; + Time time = 6; + } + + oneof version { GetStatusResponseV0 v0 = 1; } +} + +message GetCurrentQuorumsInfoRequest { + message GetCurrentQuorumsInfoRequestV0 { + } + + oneof version { GetCurrentQuorumsInfoRequestV0 v0 = 1; } +} + +message GetCurrentQuorumsInfoResponse { + message ValidatorV0 { + bytes pro_tx_hash = 1; + string node_ip = 2; + bool is_banned = 3; + } + message ValidatorSetV0 { + bytes quorum_hash = 1; + uint32 core_height = 2; + repeated ValidatorV0 members = 3; + bytes threshold_public_key = 4; + } + + message GetCurrentQuorumsInfoResponseV0 { + repeated bytes quorum_hashes = 1; + bytes current_quorum_hash = 2; + repeated ValidatorSetV0 validator_sets = 3; + bytes last_block_proposer = 4; + ResponseMetadata metadata = 5; + } + oneof version { GetCurrentQuorumsInfoResponseV0 v0 = 1; } +} diff --git a/packages/dapi-grpc/test/unit/clients/platform/v0/nodejs/PlatformPromiseClient.spec.js b/packages/dapi-grpc/test/unit/clients/platform/v0/nodejs/PlatformPromiseClient.spec.js index 5987cbfd0f..fc3eb575fa 100644 --- a/packages/dapi-grpc/test/unit/clients/platform/v0/nodejs/PlatformPromiseClient.spec.js +++ b/packages/dapi-grpc/test/unit/clients/platform/v0/nodejs/PlatformPromiseClient.spec.js @@ -22,6 +22,7 @@ describe('PlatformPromiseClient', () => { getIdentityContractNonce: this.sinon.stub().resolves(response), getIdentityNonce: this.sinon.stub().resolves(response), getIdentityKeys: this.sinon.stub().resolves(response), + getIdentityBalance: this.sinon.stub().resolves(response), }; }); @@ -170,4 +171,14 @@ describe('PlatformPromiseClient', () => { .to.be.calledOnceWith(request); }); }); + + describe('#getIdentityBalance', () => { + it('should get identity balance', async () => { + const result = await platformPromiseClient.getIdentityBalance(request); + + expect(result).to.equal(response); + expect(platformPromiseClient.client.getIdentityBalance) + .to.be.calledOnceWith(request); + }); + }); }); diff --git a/packages/dapi/lib/externalApis/tenderdash/BlockchainListener.js b/packages/dapi/lib/externalApis/tenderdash/BlockchainListener.js index 6a0e1f5dc5..f6e3e7549f 100644 --- a/packages/dapi/lib/externalApis/tenderdash/BlockchainListener.js +++ b/packages/dapi/lib/externalApis/tenderdash/BlockchainListener.js @@ -13,7 +13,12 @@ class BlockchainListener extends EventEmitter { */ constructor(tenderdashWsClient) { super(); + this.wsClient = tenderdashWsClient; + + this.processLogger = logger.child({ + process: 'BlockchainListener', + }); } /** @@ -30,14 +35,7 @@ class BlockchainListener extends EventEmitter { * Subscribe to blocks and transaction results */ start() { - const processLogger = logger.child({ - process: 'BlockchainListener', - }); - - processLogger.info('Subscribed to state transition results'); - // Emit transaction results - this.wsClient.subscribe(TX_QUERY); this.wsClient.on(TX_QUERY, (message) => { const [hashString] = (message.events || []).map((event) => { const hashAttribute = event.attributes.find((attribute) => attribute.key === 'hash'); @@ -53,15 +51,31 @@ class BlockchainListener extends EventEmitter { return; } - processLogger.trace(`received transaction result for ${hashString}`); + this.processLogger.trace(`Received transaction result for ${hashString}`); this.emit(BlockchainListener.getTransactionEventName(hashString), message); }); - // TODO: It's not using // Emit blocks and contained transactions - // this.wsClient.subscribe(NEW_BLOCK_QUERY); - // this.wsClient.on(NEW_BLOCK_QUERY, (message) => this.emit(EVENTS.NEW_BLOCK, message)); + this.wsClient.on(NEW_BLOCK_QUERY, (message) => { + this.processLogger.trace('Received new platform block'); + + this.emit(EVENTS.NEW_BLOCK, message); + }); + + this.wsClient.on('connect', () => { + this.#subscribe(); + }); + + if (this.wsClient.isConnected) { + this.#subscribe(); + } + } + + #subscribe() { + this.wsClient.subscribe(TX_QUERY); + this.wsClient.subscribe(NEW_BLOCK_QUERY); + this.processLogger.debug('Subscribed to platform blockchain events'); } } diff --git a/packages/dapi/lib/grpcServer/handlers/platform/getConsensusParamsHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/getConsensusParamsHandlerFactory.js index 5d4f7e85ec..0a6886aafa 100644 --- a/packages/dapi/lib/grpcServer/handlers/platform/getConsensusParamsHandlerFactory.js +++ b/packages/dapi/lib/grpcServer/handlers/platform/getConsensusParamsHandlerFactory.js @@ -15,6 +15,7 @@ const { } = require('@dashevo/dapi-grpc'); const FailedPreconditionGrpcError = require('@dashevo/grpc-common/lib/server/error/FailedPreconditionGrpcError'); +const UnavailableGrpcError = require('@dashevo/grpc-common/lib/server/error/UnavailableGrpcError'); const RPCError = require('../../../rpcServer/RPCError'); /** @@ -46,6 +47,10 @@ function getConsensusParamsHandlerFactory(getConsensusParams) { try { consensusParams = await getConsensusParams(height); } catch (e) { + if (e.message === 'socket hang up') { + throw new UnavailableGrpcError('Tenderdash is not available'); + } + if (e instanceof RPCError) { if (e.code === -32603) { throw new FailedPreconditionGrpcError(`Invalid height: ${e.data}`); diff --git a/packages/dapi/lib/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.js deleted file mode 100644 index 3109022c92..0000000000 --- a/packages/dapi/lib/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.js +++ /dev/null @@ -1,33 +0,0 @@ -const { - v0: { - GetIdentityContractNonceResponse, - }, -} = require('@dashevo/dapi-grpc'); - -/** - * @param {DriveClient} driveClient - * - * @returns {getIdentityContractNonceHandler} - */ -function getIdentityContractNonceHandlerFactory(driveClient) { - /** - * @typedef getIdentityContractNonceHandler - * - * @param {Object} call - * - * @return {Promise} - */ - async function getIdentityContractNonceHandler(call) { - const { request } = call; - - const identityContractNonceBuffer = await driveClient - .fetchIdentityContractNonce(request); - - return GetIdentityContractNonceResponse - .deserializeBinary(identityContractNonceBuffer); - } - - return getIdentityContractNonceHandler; -} - -module.exports = getIdentityContractNonceHandlerFactory; diff --git a/packages/dapi/lib/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.js deleted file mode 100644 index 5d38ca9306..0000000000 --- a/packages/dapi/lib/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.js +++ /dev/null @@ -1,33 +0,0 @@ -const { - v0: { - GetIdentityNonceResponse, - }, -} = require('@dashevo/dapi-grpc'); - -/** - * @param {DriveClient} driveClient - * - * @returns {getIdentityNonceHandler} - */ -function getIdentityNonceHandlerFactory(driveClient) { - /** - * @typedef getIdentityNonceHandler - * - * @param {Object} call - * - * @return {Promise} - */ - async function getIdentityNonceHandler(call) { - const { request } = call; - - const identityNonceBuffer = await driveClient - .fetchIdentityNonce(request); - - return GetIdentityNonceResponse - .deserializeBinary(identityNonceBuffer); - } - - return getIdentityNonceHandler; -} - -module.exports = getIdentityNonceHandlerFactory; diff --git a/packages/dapi/lib/grpcServer/handlers/platform/getStatusHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/getStatusHandlerFactory.js new file mode 100644 index 0000000000..af86ebb312 --- /dev/null +++ b/packages/dapi/lib/grpcServer/handlers/platform/getStatusHandlerFactory.js @@ -0,0 +1,240 @@ +const fs = require('node:fs'); +const path = require('node:path'); + +const { + v0: { + GetStatusRequest, + GetStatusResponse, + }, +} = require('@dashevo/dapi-grpc'); + +const BlockchainListener = require('../../../externalApis/tenderdash/BlockchainListener'); +const logger = require('../../../logger'); + +/** + * @param {BlockchainListener} blockchainListener + * @param {PlatformPromiseClient} driveClient + * @param {jaysonClient} tenderdashRpcClient + * @return {getStatusHandler} + */ +function getStatusHandlerFactory(blockchainListener, driveClient, tenderdashRpcClient) { + let cachedResponse = null; + let cleanCacheTimeout = null; + + function cleanCache() { + cachedResponse = null; + + // cancel scheduled cache cleanup + if (cleanCacheTimeout !== null) { + clearTimeout(cleanCacheTimeout); + cleanCacheTimeout = null; + } + + logger.trace({ endpoint: 'getStatus' }, 'cleanup cache'); + } + + // Clean cache when new platform block committed + blockchainListener.on(BlockchainListener.EVENTS.NEW_BLOCK, cleanCache); + + // DAPI Software version + const packageJsonPath = path.resolve(__dirname, '..', '..', '..', '..', 'package.json'); + const packageJsonString = fs.readFileSync(packageJsonPath, 'utf-8'); + const packageJson = JSON.parse(packageJsonString); + const dapiSoftwareVersion = packageJson.version; + + /** + * @typedef {Function} getStatusHandler + * @return {Promise} + */ + async function getStatusHandler() { + // Return cached response if it exists + if (cachedResponse !== null) { + cachedResponse.getV0().getTime().setLocal(Date.now()); + + return cachedResponse; + } + + const request = new GetStatusRequest(); + + const promises = [ + driveClient.getStatus(request) + .then((response) => response.getV0()?.toObject() || {}), + tenderdashRpcClient.request('status', {}), + tenderdashRpcClient.request('net_info', {}), + ]; + + const [ + driveStatus, + tenderdashStatusResponse, + tenderdashNetInfoResponse, + ] = await Promise.allSettled(promises) + .then((results) => results.map((result) => { + if (result.status === 'fulfilled') { + return result.value; + } + + return {}; + })); + + let tenderdashStatus = {}; + if (tenderdashStatusResponse.result) { + tenderdashStatus = tenderdashStatusResponse.result; + } + + let tenderdashNetInfo = {}; + if (tenderdashNetInfoResponse.result) { + tenderdashNetInfo = tenderdashNetInfoResponse.result; + } + + const v0 = new GetStatusResponse + .GetStatusResponseV0(); + + const version = new GetStatusResponse + .GetStatusResponseV0.Version(); + + // Versions + + const versionProtocol = new GetStatusResponse + .GetStatusResponseV0.Version.Protocol(); + + if (tenderdashStatus.node_info?.protocol_version) { + const versionProtocolTenderdash = new GetStatusResponse + .GetStatusResponseV0.Version.Protocol.Tenderdash(); + + versionProtocolTenderdash.setBlock( + Number(tenderdashStatus.node_info.protocol_version.block), + ); + + versionProtocolTenderdash.setP2p( + Number(tenderdashStatus.node_info.protocol_version.p2p), + ); + + versionProtocol.setTenderdash(versionProtocolTenderdash); + } + + if (driveStatus.version?.protocol?.drive) { + const versionProtocolDrive = new GetStatusResponse + .GetStatusResponseV0.Version.Protocol.Drive(); + + versionProtocolDrive.setCurrent(driveStatus.version.protocol.drive.current); + versionProtocolDrive.setLatest(driveStatus.version.protocol.drive.latest); + + versionProtocol.setDrive(versionProtocolDrive); + } + + version.setProtocol(versionProtocol); + + const versionSoftware = new GetStatusResponse + .GetStatusResponseV0.Version.Software(); + + versionSoftware.setDapi(dapiSoftwareVersion); + + if (driveStatus.version?.software?.drive) { + versionSoftware.setDrive(driveStatus.version.software.drive); + } + + if (tenderdashStatus.node_info?.version) { + versionSoftware.setTenderdash(tenderdashStatus.node_info.version); + } + + version.setSoftware(versionSoftware); + + v0.setVersion(version); + + // Node + + if (tenderdashStatus.node_info) { + const node = new GetStatusResponse + .GetStatusResponseV0.Node(); + + node.setId(Buffer.from(tenderdashStatus.node_info.id, 'hex')); + + // ProTxHash is optional. This is present only for masternodes + if (tenderdashStatus.node_info.ProTxHash) { + node.setProTxHash(Buffer.from(tenderdashStatus.node_info.ProTxHash, 'hex')); + } + + v0.setNode(node); + } + + // Chain + if (tenderdashStatus.sync_info) { + const chain = new GetStatusResponse.GetStatusResponseV0.Chain(); + + chain.setCatchingUp(tenderdashStatus.sync_info.catching_up); + chain.setLatestBlockHash(Buffer.from(tenderdashStatus.sync_info.latest_block_hash, 'hex')); + chain.setLatestAppHash(Buffer.from(tenderdashStatus.sync_info.latest_app_hash, 'hex')); + chain.setLatestBlockHeight(Number(tenderdashStatus.sync_info.latest_block_height)); + chain.setEarliestBlockHash(Buffer.from(tenderdashStatus.sync_info.earliest_block_hash, 'hex')); + chain.setEarliestAppHash(Buffer.from(tenderdashStatus.sync_info.earliest_app_hash, 'hex')); + chain.setEarliestBlockHeight(Number(tenderdashStatus.sync_info.earliest_block_height)); + chain.setMaxPeerBlockHeight(Number(tenderdashStatus.sync_info.max_peer_block_height)); + if (driveStatus.chain?.coreChainLockedHeight) { + chain.setCoreChainLockedHeight(driveStatus.chain.coreChainLockedHeight); + } + + v0.setChain(chain); + + const stateSync = new GetStatusResponse.GetStatusResponseV0.StateSync(); + stateSync.setTotalSyncedTime(Number(tenderdashStatus.sync_info.total_synced_time)); + stateSync.setRemainingTime(Number(tenderdashStatus.sync_info.remaining_time)); + stateSync.setTotalSnapshots(Number(tenderdashStatus.sync_info.total_snapshots)); + stateSync.setChunkProcessAvgTime( + Number(tenderdashStatus.sync_info.chunk_process_avg_time), + ); + stateSync.setSnapshotHeight(Number(tenderdashStatus.sync_info.snapshot_height)); + stateSync.setSnapshotChunksCount(Number(tenderdashStatus.sync_info.snapshot_chunks_count)); + stateSync.setBackfilledBlocks(Number(tenderdashStatus.sync_info.backfilled_blocks)); + stateSync.setBackfillBlocksTotal(Number(tenderdashStatus.sync_info.backfill_blocks_total)); + + v0.setStateSync(stateSync); + } + + // Network + if (tenderdashNetInfo.listening !== undefined) { + const network = new GetStatusResponse.GetStatusResponseV0.Network(); + + network.setListening(tenderdashNetInfo.listening); + + if (tenderdashStatus.node_info) { + network.setChainId(tenderdashStatus.node_info.network); + } + + network.setPeersCount(Number(tenderdashNetInfo.n_peers)); + + v0.setNetwork(network); + } + + // Time + + const time = new GetStatusResponse.GetStatusResponseV0.Time(); + + if (driveStatus.time) { + time.setBlock(driveStatus.time.block); + time.setGenesis(driveStatus.time.genesis); + time.setEpoch(driveStatus.time.epoch); + } + + time.setLocal(Date.now()); + + v0.setTime(time); + + cachedResponse = new GetStatusResponse(); + cachedResponse.setV0(v0); + + // Cancel any existing scheduled cache cleanup + if (cleanCacheTimeout !== null) { + clearTimeout(cleanCacheTimeout); + cleanCacheTimeout = null; + } + + // Clean cache in 3 minutes + cleanCacheTimeout = setTimeout(cleanCache, 3 * 60 * 1000); + + return cachedResponse; + } + + return getStatusHandler; +} + +module.exports = getStatusHandlerFactory; diff --git a/packages/dapi/lib/grpcServer/handlers/platform/platformHandlersFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/platformHandlersFactory.js index 131f230db4..641071d357 100644 --- a/packages/dapi/lib/grpcServer/handlers/platform/platformHandlersFactory.js +++ b/packages/dapi/lib/grpcServer/handlers/platform/platformHandlersFactory.js @@ -18,6 +18,7 @@ const { BroadcastStateTransitionRequest, WaitForStateTransitionResultRequest, GetConsensusParamsRequest, + GetStatusRequest, pbjs: { BroadcastStateTransitionRequest: PBJSBroadcastStateTransitionRequest, BroadcastStateTransitionResponse: PBJSBroadcastStateTransitionResponse, @@ -25,6 +26,8 @@ const { WaitForStateTransitionResultResponse: PBJSWaitForStateTransitionResultResponse, GetConsensusParamsRequest: PBJSGetConsensusParamsRequest, GetConsensusParamsResponse: PBJSGetConsensusParamsResponse, + GetStatusRequest: PBJSGetStatusRequest, + GetStatusResponse: PBJSGetStatusResponse, }, }, } = require('@dashevo/dapi-grpc'); @@ -45,6 +48,7 @@ const getConsensusParamsHandlerFactory = require( const unimplementedHandlerFactory = require( './unimplementedHandlerFactory', ); +const getStatusHandlerFactory = require('./getStatusHandlerFactory'); const fetchProofForStateTransitionFactory = require('../../../externalApis/drive/fetchProofForStateTransitionFactory'); const waitForTransactionToBeProvableFactory = require('../../../externalApis/tenderdash/waitForTransactionToBeProvable/waitForTransactionToBeProvableFactory'); @@ -118,7 +122,7 @@ function platformHandlersFactory( wrapInErrorHandler(waitForStateTransitionResultHandler), ); - // get Consensus Params + // Get Consensus Params const getConsensusParams = getConsensusParamsFactory(rpcClient); const getConsensusParamsHandler = getConsensusParamsHandlerFactory(getConsensusParams); @@ -133,6 +137,24 @@ function platformHandlersFactory( wrapInErrorHandler(getConsensusParamsHandler), ); + // Get Status + const getStatusHandler = getStatusHandlerFactory( + blockchainListener, + driveClient, + rpcClient, + ); + + const wrappedGetStatus = jsonToProtobufHandlerWrapper( + jsonToProtobufFactory( + GetStatusRequest, + PBJSGetStatusRequest, + ), + protobufToJsonFactory( + PBJSGetStatusResponse, + ), + wrapInErrorHandler(getStatusHandler), + ); + return { broadcastStateTransition: wrappedBroadcastStateTransition, getIdentity: wrapInErrorHandler(unimplementedHandlerFactory('getIdentity')), @@ -154,6 +176,7 @@ function platformHandlersFactory( getProtocolVersionUpgradeState: wrapInErrorHandler(unimplementedHandlerFactory('getProtocolVersionUpgradeState')), getIdentityContractNonce: wrapInErrorHandler(unimplementedHandlerFactory('getIdentityContractNonce')), getIdentityNonce: wrapInErrorHandler(unimplementedHandlerFactory('getIdentityNonce')), + getStatus: wrappedGetStatus, }; } diff --git a/packages/dapi/lib/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.js index de8d1457e6..4bfafbe30f 100644 --- a/packages/dapi/lib/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.js +++ b/packages/dapi/lib/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.js @@ -15,6 +15,7 @@ const { } = require('@dashevo/dapi-grpc'); const cbor = require('cbor'); +const UnavailableGrpcError = require('@dashevo/grpc-common/lib/server/error/UnavailableGrpcError'); const TransactionWaitPeriodExceededError = require('../../../errors/TransactionWaitPeriodExceededError'); const TransactionErrorResult = require('../../../externalApis/tenderdash/waitForTransactionToBeProvable/transactionResult/TransactionErrorResult'); @@ -63,6 +64,10 @@ function waitForStateTransitionResultHandlerFactory( async function waitForStateTransitionResultHandler(call) { const { request } = call; + if (!blockchainListener.wsClient.isConnected) { + throw new UnavailableGrpcError('Tenderdash is not available'); + } + const stateTransitionHash = request.getV0().getStateTransitionHash(); const prove = request.getV0().getProve(); diff --git a/packages/dapi/package.json b/packages/dapi/package.json index 9a9797f04f..a8e9884221 100644 --- a/packages/dapi/package.json +++ b/packages/dapi/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/dapi", "private": true, - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "A decentralized API for the Dash network", "scripts": { "api": "node scripts/api.js", diff --git a/packages/dapi/scripts/api.js b/packages/dapi/scripts/api.js index 6577f973bf..7be1ce8857 100644 --- a/packages/dapi/scripts/api.js +++ b/packages/dapi/scripts/api.js @@ -108,15 +108,18 @@ async function main() { }); tenderDashWsClient.on('disconnect', () => { - tenderdashLogger.fatal('Disconnected from Tenderdash... exiting'); - - process.exit(1); + tenderdashLogger.warn('Disconnected from tenderdash'); }); - await tenderDashWsClient.connect(); - const blockchainListener = new BlockchainListener(tenderDashWsClient); - blockchainListener.start(); + + tenderDashWsClient.connect().then(() => { + blockchainListener.start(); + }).catch((e) => { + tenderdashLogger.fatal(`Not able to connect to tenderdash: ${e}`); + + process.exit(1); + }); // Start JSON RPC server logger.info('Starting JSON RPC server'); diff --git a/packages/dapi/test/integration/externalApis/tenderdash/BlockchainListener.spec.js b/packages/dapi/test/integration/externalApis/tenderdash/BlockchainListener.spec.js index cc2c5fdd7c..b31b79e32b 100644 --- a/packages/dapi/test/integration/externalApis/tenderdash/BlockchainListener.spec.js +++ b/packages/dapi/test/integration/externalApis/tenderdash/BlockchainListener.spec.js @@ -15,8 +15,8 @@ describe('BlockchainListener', () => { ({ sinon } = this); wsClientMock = new EventEmitter(); wsClientMock.subscribe = sinon.stub(); + blockchainListener = new BlockchainListener(wsClientMock); - blockchainListener.start(); sinon.spy(blockchainListener, 'on'); sinon.spy(blockchainListener, 'off'); @@ -84,19 +84,23 @@ describe('BlockchainListener', () => { }); describe('#start', () => { - it('should subscribe to transaction events from WS client', () => { - // TODO: We don't use it for now - // expect(wsClientMock.subscribe).to.be.calledTwice(); - expect(wsClientMock.subscribe).to.be.calledOnce(); + it('should subscribe to transaction events from WS client if it is connected', () => { + wsClientMock.isConnected = true; + + blockchainListener.start(); + + expect(wsClientMock.subscribe).to.be.calledTwice(); expect(wsClientMock.subscribe.firstCall).to.be.calledWithExactly( BlockchainListener.TX_QUERY, ); - // expect(wsClientMock.subscribe.secondCall).to.be.calledWithExactly( - // BlockchainListener.NEW_BLOCK_QUERY, - // ); + expect(wsClientMock.subscribe.secondCall).to.be.calledWithExactly( + BlockchainListener.NEW_BLOCK_QUERY, + ); }); - it.skip('should emit block when new block is arrived', (done) => { + it('should emit block when new block is arrived', (done) => { + blockchainListener.start(); + blockchainListener.on(BlockchainListener.EVENTS.NEW_BLOCK, (message) => { expect(message).to.be.deep.equal(blockMessageMock); @@ -107,6 +111,8 @@ describe('BlockchainListener', () => { }); it('should emit transaction when transaction is arrived', (done) => { + blockchainListener.start(); + const topic = BlockchainListener.getTransactionEventName(transactionHash); blockchainListener.on(topic, (message) => { diff --git a/packages/dapi/test/integration/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.spec.js b/packages/dapi/test/integration/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.spec.js index 7f748d91c4..9e99636216 100644 --- a/packages/dapi/test/integration/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.spec.js +++ b/packages/dapi/test/integration/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory.spec.js @@ -25,13 +25,14 @@ const { EventEmitter } = require('events'); const cbor = require('cbor'); const NotFoundGrpcError = require('@dashevo/grpc-common/lib/server/error/NotFoundGrpcError'); -const BlockchainListener = require('../../../../../lib/externalApis/tenderdash/BlockchainListener'); +const UnavailableGrpcError = require('@dashevo/grpc-common/lib/server/error/UnavailableGrpcError'); +const BlockchainListener = require('../../../../../lib/externalApis/tenderdash/BlockchainListener'); const GrpcCallMock = require('../../../../../lib/test/mock/GrpcCallMock'); const fetchProofForStateTransitionFactory = require('../../../../../lib/externalApis/drive/fetchProofForStateTransitionFactory'); const waitForTransactionToBeProvableFactory = require('../../../../../lib/externalApis/tenderdash/waitForTransactionToBeProvable/waitForTransactionToBeProvableFactory'); -const waitForTransactionResult = require('../../../../../lib/externalApis/tenderdash/waitForTransactionToBeProvable/waitForTransactionResult'); +const waitForTransactionResult = require('../../../../../lib/externalApis/tenderdash/waitForTransactionToBeProvable/waitForTransactionResult'); const waitForStateTransitionResultHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/waitForStateTransitionResultHandlerFactory'); describe('waitForStateTransitionResultHandlerFactory', () => { @@ -173,6 +174,7 @@ describe('waitForStateTransitionResultHandlerFactory', () => { tenderDashWsClientMock = new EventEmitter(); tenderDashWsClientMock.subscribe = this.sinon.stub(); + tenderDashWsClientMock.isConnected = true; const dpp = new DashPlatformProtocol(null, 1); @@ -372,4 +374,17 @@ describe('waitForStateTransitionResultHandlerFactory', () => { }); } }); + + it('should throw UnavailableGrpcError if Tenderdash is not available', async () => { + tenderDashWsClientMock.isConnected = false; + + try { + await waitForStateTransitionResultHandler(call); + + expect.fail('should throw an error'); + } catch (e) { + expect(e).to.be.instanceOf(UnavailableGrpcError); + expect(e.getMessage()).to.equal('Tenderdash is not available'); + } + }); }); diff --git a/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.spec.js b/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.spec.js deleted file mode 100644 index 672776bac3..0000000000 --- a/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory.spec.js +++ /dev/null @@ -1,110 +0,0 @@ -const { - v0: { - GetIdentityContractNonceResponse, - Proof, - }, -} = require('@dashevo/dapi-grpc'); - -const getIdentityContractNonceHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/getIdentityContractNonceHandlerFactory'); - -const GrpcCallMock = require('../../../../../lib/test/mock/GrpcCallMock'); - -describe('getIdentityContractNonceHandlerFactory', () => { - let call; - let driveStateRepositoryMock; - let getIdentityContractNonceHandler; - let nonce; - let proofFixture; - let proofMock; - let request; - let response; - let proofResponse; - - beforeEach(async function beforeEach() { - request = { - getProve: this.sinon.stub().returns(false), - }; - call = new GrpcCallMock(this.sinon, { - getV0: () => request, - }); - - proofFixture = { - merkleProof: Buffer.alloc(1, 1), - }; - - proofMock = new Proof(); - proofMock.setGrovedbProof(proofFixture.merkleProof); - - nonce = 1; - const { GetIdentityContractNonceResponseV0 } = GetIdentityContractNonceResponse; - response = new GetIdentityContractNonceResponse(); - response.setV0( - new GetIdentityContractNonceResponseV0() - .setIdentityContractNonce(1), - ); - - proofResponse = new GetIdentityContractNonceResponse(); - proofResponse.setV0( - new GetIdentityContractNonceResponseV0() - .setProof(proofMock), - ); - - driveStateRepositoryMock = { - fetchIdentityContractNonce: this.sinon.stub().resolves(response.serializeBinary()), - }; - - getIdentityContractNonceHandler = getIdentityContractNonceHandlerFactory( - driveStateRepositoryMock, - ); - }); - - it('should return valid result', async () => { - const result = await getIdentityContractNonceHandler(call); - - expect(result).to.be.an.instanceOf(GetIdentityContractNonceResponse); - expect(result.getV0() - .getIdentityContractNonce()).to.deep.equal(nonce); - expect(driveStateRepositoryMock.fetchIdentityContractNonce) - .to.be.calledOnceWith(call.request); - - const proof = result.getV0().getProof(); - expect(proof).to.be.undefined(); - }); - - it('should return proof', async () => { - request.getProve.returns(true); - - driveStateRepositoryMock.fetchIdentityContractNonce - .resolves(proofResponse.serializeBinary()); - - const result = await getIdentityContractNonceHandler(call); - - expect(result).to.be.an.instanceOf(GetIdentityContractNonceResponse); - - const proof = result.getV0().getProof(); - - expect(proof).to.be.an.instanceOf(Proof); - const merkleProof = proof.getGrovedbProof(); - - expect(merkleProof).to.deep.equal(proofFixture.merkleProof); - - expect(driveStateRepositoryMock.fetchIdentityContractNonce) - .to.be.calledOnceWith(call.request); - }); - - it('should throw an error when fetchIdentityContractNonce throws unknown error', async () => { - const error = new Error('Unknown error'); - - driveStateRepositoryMock.fetchIdentityContractNonce.throws(error); - - try { - await getIdentityContractNonceHandler(call); - - expect.fail('should throw an error'); - } catch (e) { - expect(e).to.equal(error); - expect(driveStateRepositoryMock.fetchIdentityContractNonce) - .to.be.calledOnceWith(call.request); - } - }); -}); diff --git a/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.spec.js b/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.spec.js deleted file mode 100644 index cf0029c533..0000000000 --- a/packages/dapi/test/unit/grpcServer/handlers/platform/getIdentityNonceHandlerFactory.spec.js +++ /dev/null @@ -1,110 +0,0 @@ -const { - v0: { - GetIdentityNonceResponse, - Proof, - }, -} = require('@dashevo/dapi-grpc'); - -const getIdentityNonceHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/getIdentityNonceHandlerFactory'); - -const GrpcCallMock = require('../../../../../lib/test/mock/GrpcCallMock'); - -describe('getIdentityNonceHandlerFactory', () => { - let call; - let driveStateRepositoryMock; - let getIdentityNonceHandler; - let nonce; - let proofFixture; - let proofMock; - let request; - let response; - let proofResponse; - - beforeEach(async function beforeEach() { - request = { - getProve: this.sinon.stub().returns(false), - }; - call = new GrpcCallMock(this.sinon, { - getV0: () => request, - }); - - proofFixture = { - merkleProof: Buffer.alloc(1, 1), - }; - - proofMock = new Proof(); - proofMock.setGrovedbProof(proofFixture.merkleProof); - - nonce = 1; - const { GetIdentityNonceResponseV0 } = GetIdentityNonceResponse; - response = new GetIdentityNonceResponse(); - response.setV0( - new GetIdentityNonceResponseV0() - .setIdentityNonce(1), - ); - - proofResponse = new GetIdentityNonceResponse(); - proofResponse.setV0( - new GetIdentityNonceResponseV0() - .setProof(proofMock), - ); - - driveStateRepositoryMock = { - fetchIdentityNonce: this.sinon.stub().resolves(response.serializeBinary()), - }; - - getIdentityNonceHandler = getIdentityNonceHandlerFactory( - driveStateRepositoryMock, - ); - }); - - it('should return valid result', async () => { - const result = await getIdentityNonceHandler(call); - - expect(result).to.be.an.instanceOf(GetIdentityNonceResponse); - expect(result.getV0() - .getIdentityNonce()).to.deep.equal(nonce); - expect(driveStateRepositoryMock.fetchIdentityNonce) - .to.be.calledOnceWith(call.request); - - const proof = result.getV0().getProof(); - expect(proof).to.be.undefined(); - }); - - it('should return proof', async () => { - request.getProve.returns(true); - - driveStateRepositoryMock.fetchIdentityNonce - .resolves(proofResponse.serializeBinary()); - - const result = await getIdentityNonceHandler(call); - - expect(result).to.be.an.instanceOf(GetIdentityNonceResponse); - - const proof = result.getV0().getProof(); - - expect(proof).to.be.an.instanceOf(Proof); - const merkleProof = proof.getGrovedbProof(); - - expect(merkleProof).to.deep.equal(proofFixture.merkleProof); - - expect(driveStateRepositoryMock.fetchIdentityNonce) - .to.be.calledOnceWith(call.request); - }); - - it('should throw an error when fetchIdentityNonce throws unknown error', async () => { - const error = new Error('Unknown error'); - - driveStateRepositoryMock.fetchIdentityNonce.throws(error); - - try { - await getIdentityNonceHandler(call); - - expect.fail('should throw an error'); - } catch (e) { - expect(e).to.equal(error); - expect(driveStateRepositoryMock.fetchIdentityNonce) - .to.be.calledOnceWith(call.request); - } - }); -}); diff --git a/packages/dapi/test/unit/grpcServer/handlers/platform/getStatusHandlerFactory.spec.js b/packages/dapi/test/unit/grpcServer/handlers/platform/getStatusHandlerFactory.spec.js new file mode 100644 index 0000000000..f5274cbf2c --- /dev/null +++ b/packages/dapi/test/unit/grpcServer/handlers/platform/getStatusHandlerFactory.spec.js @@ -0,0 +1,152 @@ +const EventEmitter = require('events'); +const getStatusHandlerFactory = require('../../../../../lib/grpcServer/handlers/platform/getStatusHandlerFactory'); + +describe('getStatusHandlerFactory', () => { + let blockchainListenerMock; + let driveStatus; + let driveStatusResponse; + let driveClientMock; + let tenderdashNetInfo; + let tenderdashNetInfoResponse; + let tenderdashStatus; + let tenderdashStatusResponse; + let tenderdashRpcClientMock; + let getStatusHandler; + + beforeEach(function beforeEach() { + blockchainListenerMock = new EventEmitter(); + + this.sinon.spy(blockchainListenerMock); + + driveStatus = { + version: { + software: { + drive: '1.1.1', + }, + protocol: { + drive: { + current: 1, + latest: 2, + }, + }, + }, + chain: { + coreChainLockedHeight: 1, + }, + time: { + block: 123, + genesis: 100, + epoch: 10, + }, + }; + + driveStatusResponse = { + getV0() { + return { + toObject() { + return driveStatus; + }, + }; + }, + }; + + driveClientMock = { + getStatus: this.sinon.stub(), + }; + + tenderdashStatus = { + node_info: { + protocol_version: { + p2p: '10', + block: '14', + app: '1', + }, + id: '68c506d43816d1a8389c860c1d162be44d1e777c', + ProTxHash: '85F15A31D3838293A9C1D72A1A0FA21E66110CE20878BD4C1024C4AE1D5BE824', + network: 'dash-testnet-51', + version: '1.2.0', + }, + sync_info: { + latest_block_hash: '17CF6008349C5C6E919BE05A9C53EC38565C0C5BF549AC38E204DEC8BF59729B', + latest_app_hash: '86FE2247F22C1AEB4E5138E97E6164D61C1E40481F8FF62D126700EDE0EC9B92', + latest_block_height: '1117', + latest_block_time: '2024-08-27T08:31:39.906Z', + earliest_block_hash: '08FA02C27EC0390BA301E4FC7E3D7EADB350C8193E3E62A093689706E3A20BFA', + earliest_app_hash: 'BF0CCB9CA071BA01AE6E67A0C090F97803D26D56D675DCD5131781CBCAC8EC8F', + earliest_block_height: '1', + earliest_block_time: '2024-07-19T01:40:09Z', + max_peer_block_height: '1117', + catching_up: false, + total_synced_time: '0', + remaining_time: '0', + total_snapshots: '0', + chunk_process_avg_time: '0', + snapshot_height: '0', + snapshot_chunks_count: '0', + backfilled_blocks: '0', + backfill_blocks_total: '0', + }, + }; + + tenderdashStatusResponse = { + result: tenderdashStatus, + }; + + tenderdashNetInfo = { + listening: true, + n_peers: 8, + }; + + tenderdashNetInfoResponse = { + result: tenderdashNetInfo, + }; + + tenderdashRpcClientMock = { + request: this.sinon.stub(), + }; + + getStatusHandler = getStatusHandlerFactory( + blockchainListenerMock, + driveClientMock, + tenderdashRpcClientMock, + ); + }); + + it('should respond with full status if drive and tenderdash are responding', async () => { + driveClientMock.getStatus.resolves(driveStatusResponse); + tenderdashRpcClientMock.request.withArgs('status').resolves(tenderdashStatusResponse); + tenderdashRpcClientMock.request.withArgs('net_info').resolves(tenderdashNetInfoResponse); + + const response = await getStatusHandler(); + + response.serializeBinary(); + }); + + it('should respond with DAPI only status if drive and tenderdash are not responding', async () => { + driveClientMock.getStatus.rejects(new Error('Connection failed')); + tenderdashRpcClientMock.request.rejects(new Error('Connection failed')); + + const response = await getStatusHandler(); + + response.serializeBinary(); + }); + + it('should respond with partial status if drive is not responding', async () => { + driveClientMock.getStatus.rejects(new Error('Connection failed')); + tenderdashRpcClientMock.request.withArgs('status').resolves(tenderdashStatusResponse); + tenderdashRpcClientMock.request.withArgs('net_info').resolves(tenderdashNetInfoResponse); + + const response = await getStatusHandler(); + + response.serializeBinary(); + }); + + it('should respond with partial status if tenderdash is not responding', async () => { + driveClientMock.getStatus.resolves(driveStatusResponse); + tenderdashRpcClientMock.request.rejects(new Error('Connection failed')); + + const response = await getStatusHandler(); + + response.serializeBinary(); + }); +}); diff --git a/packages/dash-spv/package.json b/packages/dash-spv/package.json index f183902fa4..5745553e4a 100644 --- a/packages/dash-spv/package.json +++ b/packages/dash-spv/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dash-spv", - "version": "2.1.0-dev.1", + "version": "2.4.0-dev.5", "description": "Repository containing SPV functions used by @dashevo", "main": "index.js", "scripts": { diff --git a/packages/dashmate/README.md b/packages/dashmate/README.md index 85d8106697..96f04dc39b 100644 --- a/packages/dashmate/README.md +++ b/packages/dashmate/README.md @@ -19,6 +19,7 @@ Distribution package for Dash node installation - [Restart node](#restart-node) - [Show node status](#show-node-status) - [Execute Core CLI command](#execute-core-cli-command) + - [Doctor](#doctor) - [Reset node data](#reset-node-data) - [Full node](#full-node) - [Node groups](#node-groups) @@ -277,6 +278,55 @@ $ dashmate core cli "getblockcount" 1337 ``` +### Doctor + +The `doctor` command analyzes the node configuration and state to provide a list of potential problems and solutions. + +``` +Dashmate node diagnostic. Bring your node to the doctor + +USAGE + $ dashmate doctor [--config ] [-v] [-s ] + +FLAGS + -s, --samples= path to the samples archive + -v, --verbose use verbose mode for output + --config= configuration name to use + +DESCRIPTION + Dashmate node diagnostic. Bring your node to the doctor + +COMMANDS + doctor report Dashmate node diagnostic report +``` + +The `doctor report` command collects all useful debugging info into a `.tar.gz` archive in your current working directory. + +The archive will include: + +- System information +- The node configuration +- Service logs, metrics and status + +Collected data will not contain any private information which is already not available publicly. +All sensitive data like private keys or passwords is obfuscated. + +``` +Dashmate node diagnostic report + +USAGE + $ dashmate doctor report [--config ] [-v] + +FLAGS + -v, --verbose use verbose mode for output + --config= configuration name to use + +DESCRIPTION + Dashmate node diagnostic report + + The command collects diagnostic information and creates an obfuscated archive for further investigation +``` + ### Reset node data The `reset` command removes all data corresponding to the specified config and allows you to start a node from scratch. @@ -340,29 +390,6 @@ DESCRIPTION Reindex Core data ``` -### Full node -It is also possible to start a full node instead of a masternode. Modify the config setting as follows: -```bash -dashmate config set core.masternode.enable false -``` -### Doctor - -The `doctor` command collects all useful debugging info into a .tar archive in your current working directory. - -Archive will contain all core and platform debugging data and logs for each running service. - -``` -USAGE - $ dashmate doctor [--config ] [-v] - -FLAGS - -v, --verbose use verbose mode for output - --config= configuration name to use - -DESCRIPTION - Generate a report about masternode -``` - ### Full node It is also possible to start a full node instead of a masternode. Modify the config setting as follows: ```bash diff --git a/packages/dashmate/configs/defaults/getBaseConfigFactory.js b/packages/dashmate/configs/defaults/getBaseConfigFactory.js index fa395ae5c4..e26e67ca50 100644 --- a/packages/dashmate/configs/defaults/getBaseConfigFactory.js +++ b/packages/dashmate/configs/defaults/getBaseConfigFactory.js @@ -11,10 +11,9 @@ import { const { version } = JSON.parse(fs.readFileSync(path.join(PACKAGE_ROOT_DIR, 'package.json'), 'utf8')); /** - * @param {HomeDir} homeDir * @returns {getBaseConfig} */ -export default function getBaseConfigFactory(homeDir) { +export default function getBaseConfigFactory() { const prereleaseTag = semver.prerelease(version) === null ? '' : `-${semver.prerelease(version)[0]}`; const dockerImageVersion = `${semver.major(version)}${prereleaseTag}`; @@ -134,12 +133,17 @@ export default function getBaseConfigFactory(homeDir) { }, }, log: { - file: { - categories: [], - path: homeDir.joinPath('logs', 'base', 'core.log'), + filePath: null, + debug: { + enabled: false, + ips: false, + sourceLocations: false, + threadNames: false, + timeMicros: false, + includeOnly: [], + exclude: [], }, }, - logIps: 0, indexes: [], }, platform: { @@ -306,7 +310,7 @@ export default function getBaseConfigFactory(homeDir) { tenderdash: { mode: 'full', docker: { - image: 'dashpay/tenderdash:1.2.0-dev.3', + image: 'dashpay/tenderdash:1.3', }, p2p: { host: '0.0.0.0', @@ -393,9 +397,6 @@ export default function getBaseConfigFactory(homeDir) { validator: { pub_key_types: ['bls12381'], }, - version: { - app_version: '1', - }, timeout: { propose: '50000000000', propose_delta: '5000000000', diff --git a/packages/dashmate/configs/defaults/getMainnetConfigFactory.js b/packages/dashmate/configs/defaults/getMainnetConfigFactory.js index e6aadafbc4..0159941d2f 100644 --- a/packages/dashmate/configs/defaults/getMainnetConfigFactory.js +++ b/packages/dashmate/configs/defaults/getMainnetConfigFactory.js @@ -26,13 +26,6 @@ export default function getMainnetConfigFactory(homeDir, getBaseConfig) { subnet: '172.26.24.0/24', }, }, - core: { - log: { - file: { - path: homeDir.joinPath('logs', 'mainnet', 'core.log'), - }, - }, - }, network: NETWORK_MAINNET, platform: { enable: false, @@ -71,8 +64,13 @@ export default function getMainnetConfigFactory(homeDir, getBaseConfig) { ttlNumBlocks: 0, }, genesis: { - chain_id: 'dash-1', + chain_id: 'evo1', validator_quorum_type: 4, + consensus_params: { + version: { + app_version: '1', + }, + }, }, }, abci: { diff --git a/packages/dashmate/configs/defaults/getTestnetConfigFactory.js b/packages/dashmate/configs/defaults/getTestnetConfigFactory.js index ddf5a8ec98..3558c1daa4 100644 --- a/packages/dashmate/configs/defaults/getTestnetConfigFactory.js +++ b/packages/dashmate/configs/defaults/getTestnetConfigFactory.js @@ -30,11 +30,6 @@ export default function getTestnetConfigFactory(homeDir, getBaseConfig) { rpc: { port: 19998, }, - log: { - file: { - path: homeDir.joinPath('logs', 'testnet', 'core.log'), - }, - }, spork: { address: 'yjPtiKh2uwk3bDutTEA2q9mCtXyiZRWn55', }, @@ -113,8 +108,13 @@ export default function getTestnetConfigFactory(homeDir, getBaseConfig) { port: 36660, }, genesis: { - chain_id: 'dash-testnet-49', + chain_id: 'dash-testnet-51', validator_quorum_type: 6, + consensus_params: { + version: { + app_version: '1', + }, + }, }, }, }, diff --git a/packages/dashmate/configs/getConfigFileMigrationsFactory.js b/packages/dashmate/configs/getConfigFileMigrationsFactory.js index f91237538e..5fa706c7c4 100644 --- a/packages/dashmate/configs/getConfigFileMigrationsFactory.js +++ b/packages/dashmate/configs/getConfigFileMigrationsFactory.js @@ -439,13 +439,72 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) return configFile; }, + '0.25.22': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.dapi.api.docker.deploy = base.get('platform.dapi.api.docker.deploy'); + }); + + return configFile; + }, '1.0.0-dev.2': (configFile) => { + const consensusParams = { + block: { + max_bytes: '2097152', + max_gas: '57631392000', + time_iota_ms: '5000', + }, + evidence: { + max_age: '100000', + max_age_num_blocks: '100000', + max_age_duration: '172800000000000', + }, + validator: { + pub_key_types: ['bls12381'], + }, + timeout: { + propose: '50000000000', + propose_delta: '5000000000', + vote: '10000000000', + vote_delta: '1000000000', + }, + synchrony: { + message_delay: '70000000000', + precision: '1000000000', + }, + abci: { + recheck_tx: true, + }, + version: { + app_version: '1', + }, + }; + + const genesis = { + base: { + consensus_params: lodash.cloneDeep(consensusParams), + }, + local: { + consensus_params: lodash.cloneDeep(consensusParams), + }, + testnet: { + chain_id: 'dash-testnet-51', + validator_quorum_type: 6, + consensus_params: lodash.cloneDeep(consensusParams), + }, + mainnet: { + chain_id: 'evo1', + validator_quorum_type: 4, + consensus_params: lodash.cloneDeep(consensusParams), + }, + }; + Object.entries(configFile.configs) .forEach(([name, options]) => { - if (defaultConfigs.has(name)) { - options.platform.drive.tenderdash.genesis = defaultConfigs.get(name) - .get('platform.drive.tenderdash.genesis'); + if (genesis[name]) { + options.platform.drive.tenderdash.genesis = genesis[name]; } + options.platform.dapi.api.docker.deploy = base.get('platform.dapi.api.docker.deploy'); let baseConfigName = name; @@ -766,6 +825,38 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) return configFile; }, '1.1.0-dev.1': (configFile) => { + const consensusParams = { + block: { + max_bytes: '2097152', + max_gas: '57631392000', + time_iota_ms: '5000', + }, + evidence: { + max_age: '100000', + max_age_num_blocks: '100000', + max_age_duration: '172800000000000', + }, + validator: { + pub_key_types: ['bls12381'], + }, + timeout: { + propose: '50000000000', + propose_delta: '5000000000', + vote: '10000000000', + vote_delta: '1000000000', + }, + synchrony: { + message_delay: '70000000000', + precision: '1000000000', + }, + abci: { + recheck_tx: true, + }, + version: { + app_version: '1', + }, + }; + Object.entries(configFile.configs) .forEach(([name, options]) => { if (name === 'local') { @@ -784,15 +875,22 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) options.platform.drive.tenderdash.p2p.maxConnections = 64; options.platform.drive.tenderdash.p2p.maxOutgoingConnections = 30; - options.platform.drive.tenderdash.genesis - .consensus_params = base.get('platform.drive.tenderdash.genesis.consensus_params'); + + if (defaultConfigs.has(name)) { + options.platform.drive.tenderdash.genesis + .consensus_params = lodash.cloneDeep(consensusParams); + } + options.platform.drive.tenderdash.docker.image = base.get('platform.drive.tenderdash.docker.image'); }); return configFile; }, - '1.1.0-dev.2': (configFile) => { + '1.1.0': (configFile) => { Object.entries(configFile.configs) .forEach(([name, options]) => { + options.platform.drive.abci.docker.image = 'dashpay/drive:1'; + options.platform.dapi.api.docker.image = 'dashpay/dapi:1'; + if (options.network === NETWORK_TESTNET) { options.platform.drive.abci.proposer = { txProcessingTimeLimit: 5000, @@ -819,6 +917,100 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) }); return configFile; }, + '1.1.1': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:1.2.0'; + if (options.network === NETWORK_TESTNET) { + options.platform.drive.tenderdash.genesis.chain_id = 'dash-testnet-51'; + } + }); + return configFile; + }, + '1.2.0-rc.1': (configFile) => { + Object.entries(configFile.configs) + .forEach(([name, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:1'; + if (options.network === NETWORK_MAINNET && name !== 'base') { + options.platform.drive.tenderdash.genesis.chain_id = 'evo1'; + } + if (options.network === NETWORK_TESTNET) { + delete options.platform.drive.tenderdash.genesis.initial_core_chain_locked_height; + } + }); + return configFile; + }, + '1.3.0-dev.3': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.abci.docker.image = 'dashpay/drive:1-dev'; + options.platform.dapi.api.docker.image = 'dashpay/dapi:1-dev'; + + // Update core log settings + options.core.log.filePath = null; + options.core.log.debug = { + enabled: false, + ips: !!options.core.logIps, + sourceLocations: false, + threadNames: false, + timeMicros: false, + includeOnly: [], + exclude: [], + }; + + // If debug log was enabled + if (options.core.log.file.categories.length > 0) { + options.core.log.filePath = options.core.log.file.path; + options.core.log.debug.enabled = true; + + if (!options.core.log.file.categories.includes('all')) { + options.core.log.debug.includeOnly = options.core.log.file.categories; + } + } + + delete options.core.log.file; + delete options.core.logIps; + }); + return configFile; + }, + '1.3.0-dev.6': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:fix-wrong-proposer-at-round'; + }); + return configFile; + }, + '1.3.0': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:1.3'; + options.platform.drive.abci.docker.image = 'dashpay/drive:1'; + options.platform.dapi.api.docker.image = 'dashpay/dapi:1'; + }); + return configFile; + }, + '1.4.0-dev.1': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:1.3'; + options.platform.drive.abci.docker.image = 'dashpay/drive:1-dev'; + options.platform.dapi.api.docker.image = 'dashpay/dapi:1-dev'; + }); + return configFile; + }, + '1.4.0-dev.4': (configFile) => { + Object.entries(configFile.configs) + .forEach(([name, options]) => { + if (name === 'base' || name === 'local') { + delete options.platform.drive.tenderdash.genesis.consensus_params.version; + } else if (options.network === NETWORK_TESTNET) { + options.platform.drive.tenderdash.genesis.consensus_params.version = { + app_version: '1', + }; + } + }); + return configFile; + }, }; } diff --git a/packages/dashmate/docker-compose.build.base.yml b/packages/dashmate/docker-compose.build.base.yml index a6a310333d..407463477c 100644 --- a/packages/dashmate/docker-compose.build.base.yml +++ b/packages/dashmate/docker-compose.build.base.yml @@ -1,4 +1,4 @@ -version: '3.7' +--- services: _base: diff --git a/packages/dashmate/docker-compose.build.dapi_api.yml b/packages/dashmate/docker-compose.build.dapi_api.yml index c73fd7bfc9..3403b6ac3c 100644 --- a/packages/dashmate/docker-compose.build.dapi_api.yml +++ b/packages/dashmate/docker-compose.build.dapi_api.yml @@ -1,4 +1,4 @@ -version: '3.7' +--- services: dapi_api: diff --git a/packages/dashmate/docker-compose.build.dapi_core_streams.yml b/packages/dashmate/docker-compose.build.dapi_core_streams.yml index ec9cfdcf45..fa9bce5265 100644 --- a/packages/dashmate/docker-compose.build.dapi_core_streams.yml +++ b/packages/dashmate/docker-compose.build.dapi_core_streams.yml @@ -1,4 +1,4 @@ -version: '3.7' +--- services: dapi_core_streams: diff --git a/packages/dashmate/docker-compose.build.dashmate_helper.yml b/packages/dashmate/docker-compose.build.dashmate_helper.yml index f2d1dc2209..880a7b53ce 100644 --- a/packages/dashmate/docker-compose.build.dashmate_helper.yml +++ b/packages/dashmate/docker-compose.build.dashmate_helper.yml @@ -1,4 +1,4 @@ -version: '3.7' +--- services: dashmate_helper: diff --git a/packages/dashmate/docker-compose.build.drive_abci.yml b/packages/dashmate/docker-compose.build.drive_abci.yml index c912d6033c..7bf15b7c32 100644 --- a/packages/dashmate/docker-compose.build.drive_abci.yml +++ b/packages/dashmate/docker-compose.build.drive_abci.yml @@ -1,4 +1,4 @@ -version: '3.7' +--- services: drive_abci: diff --git a/packages/dashmate/docker-compose.insight_api.yml b/packages/dashmate/docker-compose.insight_api.yml index ad05c7e4d7..b6e52bdea5 100644 --- a/packages/dashmate/docker-compose.insight_api.yml +++ b/packages/dashmate/docker-compose.insight_api.yml @@ -1,4 +1,11 @@ -version: '3.7' +--- + +x-default-logging: &default-logging + driver: local + options: + max-size: "500m" + max-file: "5" + compress: "true" services: core_insight: @@ -6,6 +13,7 @@ services: labels: org.dashmate.service.title: "Core Insight API" restart: unless-stopped + logging: *default-logging ports: - 127.0.0.1:${CORE_INSIGHT_PORT:?err}:${CORE_INSIGHT_PORT:?err} depends_on: diff --git a/packages/dashmate/docker-compose.insight_ui.yml b/packages/dashmate/docker-compose.insight_ui.yml index 1d958caa23..9db1ae8417 100644 --- a/packages/dashmate/docker-compose.insight_ui.yml +++ b/packages/dashmate/docker-compose.insight_ui.yml @@ -1,4 +1,11 @@ -version: '3.7' +--- + +x-default-logging: &default-logging + driver: local + options: + max-size: "500m" + max-file: "5" + compress: "true" services: core_insight: @@ -6,6 +13,7 @@ services: labels: org.dashmate.service.title: "Core Insight UI" restart: unless-stopped + logging: *default-logging ports: - 127.0.0.1:${CORE_INSIGHT_PORT:?err}:${CORE_INSIGHT_PORT:?err} depends_on: diff --git a/packages/dashmate/docker-compose.rate_limiter.metrics.yml b/packages/dashmate/docker-compose.rate_limiter.metrics.yml index 7e76d9959c..8d0c3a85de 100644 --- a/packages/dashmate/docker-compose.rate_limiter.metrics.yml +++ b/packages/dashmate/docker-compose.rate_limiter.metrics.yml @@ -1,4 +1,11 @@ -version: '3.7' +--- + +x-default-logging: &default-logging + driver: local + options: + max-size: "500m" + max-file: "5" + compress: "true" services: gateway_rate_limiter_metrics: @@ -6,6 +13,7 @@ services: labels: org.dashmate.service.title: "Gateway rate limiter metrics exporter" restart: unless-stopped + logging: *default-logging entrypoint: /bin/statsd_exporter command: - "--statsd.mapping-config=/etc/statsd-exporter/config.yaml" diff --git a/packages/dashmate/docker-compose.rate_limiter.yml b/packages/dashmate/docker-compose.rate_limiter.yml index 9833a62036..036589b6bb 100644 --- a/packages/dashmate/docker-compose.rate_limiter.yml +++ b/packages/dashmate/docker-compose.rate_limiter.yml @@ -1,4 +1,11 @@ -version: '3.7' +--- + +x-default-logging: &default-logging + driver: local + options: + max-size: "500m" + max-file: "5" + compress: "true" services: gateway: @@ -9,10 +16,11 @@ services: - gateway_rate_limiter gateway_rate_limiter: + image: ${PLATFORM_GATEWAY_RATE_LIMITER_DOCKER_IMAGE:?err} labels: org.dashmate.service.title: "Gateway rate limiter" restart: unless-stopped - image: ${PLATFORM_GATEWAY_RATE_LIMITER_DOCKER_IMAGE:?err} + logging: *default-logging command: /bin/ratelimit depends_on: - gateway_rate_limiter_redis @@ -45,6 +53,7 @@ services: labels: org.dashmate.service.title: "Gateway rate limiter storage" restart: unless-stopped + logging: *default-logging image: redis:alpine expose: - 6379 diff --git a/packages/dashmate/docker-compose.yml b/packages/dashmate/docker-compose.yml index eddef84057..67aae0bfa9 100644 --- a/packages/dashmate/docker-compose.yml +++ b/packages/dashmate/docker-compose.yml @@ -1,4 +1,11 @@ -version: '3.7' +--- + +x-default-logging: &default-logging + driver: local + options: + max-size: "500m" + max-file: "5" + compress: "true" services: dashmate_helper: @@ -6,6 +13,7 @@ services: labels: org.dashmate.service.title: "Dashmate Helper" restart: unless-stopped + logging: *default-logging environment: - LOCAL_UID=${LOCAL_UID:?err} - LOCAL_GID=${LOCAL_GID:?err} @@ -23,13 +31,13 @@ services: labels: org.dashmate.service.title: "Core" restart: unless-stopped + logging: *default-logging ports: - ${CORE_P2P_HOST:?err}:${CORE_P2P_PORT:?err}:${CORE_P2P_PORT:?err} - ${CORE_RPC_HOST:?err}:${CORE_RPC_PORT:?err}:${CORE_RPC_PORT:?err} volumes: - core_data:/home/dash - ${DASHMATE_HOME_DIR:?err}/${CONFIG_NAME:?err}/core/dash.conf:/home/dash/.dashcore/dash.conf:ro - - ${CORE_LOG_DIRECTORY_PATH:?err}:/var/log/dash command: - dashd stop_grace_period: 30s @@ -46,6 +54,7 @@ services: labels: org.dashmate.service.title: "Drive ABCI" restart: unless-stopped + logging: *default-logging volumes: - drive_abci_data:/var/lib/dash/rs-drive-abci/db environment: @@ -102,6 +111,7 @@ services: labels: org.dashmate.service.title: "Drive Tenderdash" restart: unless-stopped + logging: *default-logging depends_on: - drive_abci ports: @@ -112,7 +122,6 @@ services: volumes: - drive_tenderdash:/tenderdash - ${DASHMATE_HOME_DIR:?err}/${CONFIG_NAME:?err}/platform/drive/tenderdash:/tenderdash/config:ro - - ${PLATFORM_DRIVE_TENDERDASH_LOG_DIRECTORY_PATH:?err}:/var/log/tenderdash stop_grace_period: 10s profiles: - platform @@ -122,6 +131,7 @@ services: labels: org.dashmate.service.title: "DAPI API" restart: unless-stopped + logging: *default-logging deploy: mode: replicated replicas: ${PLATFORM_DAPI_API_DOCKER_DEPLOY_REPLICAS:-1} @@ -156,6 +166,7 @@ services: labels: org.dashmate.service.title: "DAPI Transactions Filter Stream" restart: unless-stopped + logging: *default-logging deploy: mode: replicated replicas: ${PLATFORM_DAPI_API_DOCKER_DEPLOY_REPLICAS:-1} @@ -184,6 +195,7 @@ services: labels: org.dashmate.service.title: "Gateway" restart: unless-stopped + logging: *default-logging ports: # HTTP entry point to the platform. # Supports HTTP1 and HTTP2 diff --git a/packages/dashmate/package.json b/packages/dashmate/package.json index 3be6c4930a..22bf5a8fcb 100644 --- a/packages/dashmate/package.json +++ b/packages/dashmate/package.json @@ -1,6 +1,6 @@ { "name": "dashmate", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Distribution package for Dash node installation", "scripts": { "lint": "eslint .", @@ -159,6 +159,9 @@ }, "wallet": { "description": "Wallet related commands" + }, + "doctor": { + "description": "Node diagnostics and reporting" } }, "topicSeparator": " " diff --git a/packages/dashmate/src/commands/doctor.js b/packages/dashmate/src/commands/doctor.js deleted file mode 100644 index 49bbdf1960..0000000000 --- a/packages/dashmate/src/commands/doctor.js +++ /dev/null @@ -1,298 +0,0 @@ -import process from 'process'; -import { Flags } from '@oclif/core'; -import { Listr } from 'listr2'; -import chalk from 'chalk'; -import ConfigBaseCommand from '../oclif/command/ConfigBaseCommand.js'; -import Report from '../doctor/report.js'; -import { DASHMATE_VERSION } from '../constants.js'; -import obfuscateConfig from '../config/obfuscateConfig.js'; -import MuteOneLineError from '../oclif/errors/MuteOneLineError.js'; -import hideString from '../util/hideString.js'; -import obfuscateObjectRecursive from '../util/obfuscateObjectRecursive.js'; - -/** - * - * @param {string} url - * @return {Promise} - */ -async function fetchTextOrError(url) { - try { - const response = await fetch(url); - - return await response.text(); - } catch (e) { - return e.toString(); - } -} - -export default class DoctorCommand extends ConfigBaseCommand { - static description = 'Dashmate node diagnostic. Bring your node to a doctor'; - - static flags = { - ...ConfigBaseCommand.flags, - verbose: Flags.boolean({ char: 'v', description: 'use verbose mode for output', default: false }), - }; - - /** - * @param {Object} args - * @param {Object} flags - * @param createRpcClient - * @param {DockerCompose} dockerCompose - * @param {getConnectionHost} getConnectionHost - * @param {Config} config - * @param createTenderdashRpcClient - * @param getServiceList - * @param getOperatingSystemInfo - * @return {Promise} - */ - async runWithDependencies( - args, - { verbose: isVerbose }, - createRpcClient, - dockerCompose, - getConnectionHost, - config, - createTenderdashRpcClient, - getServiceList, - getOperatingSystemInfo, - ) { - const tasks = new Listr( - [ - { - task: async (ctx, task) => { - const agreement = await task.prompt({ - type: 'toggle', - name: 'confirm', - header: chalk` Dashmate is going to collect all necessary debug data from the node to create a report, including: - - - System information - - The node configuration - - Service logs, metrics and status - - Collected data will contain only anonymous information. All sensitive data like private keys or passwords is obfuscated. - - The report will be created as an TAR archive in {bold.cyanBright ${process.cwd()}} - You can use the report to analyze your node condition yourself or send it to the Dash Core Group ({underline.cyanBright support@dash.org}) in case you need help.\n`, - message: 'Create a report?', - enabled: 'Yes', - disabled: 'No', - }); - - if (!agreement) { - throw new Error('Operation is cancelled'); - } - - ctx.report = new Report(); - }, - }, - { - title: 'System information', - task: async (ctx) => { - const osInfo = await getOperatingSystemInfo(); - - ctx.report.setSystemInfo(osInfo); - }, - }, - { - title: 'The node configuration', - task: async (ctx) => { - ctx.report.setDashmateVersion(DASHMATE_VERSION); - ctx.report.setDashmateConfig(obfuscateConfig(config)); - }, - }, - { - title: 'Core status', - task: async (ctx) => { - const externalIp = config.get('externalIp'); - const rpcClient = createRpcClient({ - port: config.get('core.rpc.port'), - user: 'dashmate', - pass: config.get('core.rpc.users.dashmate.password'), - host: await getConnectionHost(config, 'core', 'core.rpc.host'), - }); - - const coreCalls = [ - rpcClient.getBestChainLock(), - rpcClient.quorum('list'), - rpcClient.getBlockchainInfo(), - rpcClient.getPeerInfo(), - ]; - - if (config.get('core.masternode.enable')) { - coreCalls.push(rpcClient.masternode('status')); - } - - const [ - getBestChainLock, - quorums, - getBlockchainInfo, - getPeerInfo, - masternodeStatus, - ] = (await Promise.allSettled(coreCalls)).map((e) => e.value?.result || e.reason); - - // remove external ip address from peers - obfuscateObjectRecursive(getPeerInfo, (field, value) => (typeof value === 'string' - ? value.replaceAll(externalIp, hideString(externalIp)) : value)); - - ctx.report.setServiceInfo('core', 'bestChainLock', getBestChainLock); - ctx.report.setServiceInfo('core', 'quorums', quorums); - ctx.report.setServiceInfo('core', 'blockchainInfo', getBlockchainInfo); - ctx.report.setServiceInfo('core', 'peerInfo', getPeerInfo); - ctx.report.setServiceInfo('core', 'masternodeStatus', masternodeStatus); - }, - }, - { - title: 'Tenderdash status', - enabled: () => config.get('platform.enable'), - task: async (ctx) => { - const externalIp = config.get('externalIp'); - const tenderdashRPCClient = createTenderdashRpcClient({ - host: config.get('platform.drive.tenderdash.rpc.host'), - port: config.get('platform.drive.tenderdash.rpc.port'), - }); - - // Tenderdash requires to pass all params, so we use basic fetch - async function fetchValidators() { - const url = `http://${config.get('platform.drive.tenderdash.rpc.host')}:${config.get('platform.drive.tenderdash.rpc.port')}/validators?request_quorum_info=true`; - const response = await fetch(url, 'GET'); - return response.json(); - } - - const [ - status, - genesis, - peers, - abciInfo, - consensusState, - validators, - ] = await Promise.allSettled([ - tenderdashRPCClient.request('status', []), - tenderdashRPCClient.request('genesis', []), - tenderdashRPCClient.request('net_info', []), - tenderdashRPCClient.request('abci_info', []), - tenderdashRPCClient.request('dump_consensus_state', []), - fetchValidators(), - ]); - - // remove external ip address from status & peers - obfuscateObjectRecursive(status, (field, value) => (typeof value === 'string' - ? value.replaceAll(externalIp, hideString(externalIp)) : value)); - obfuscateObjectRecursive(peers, (field, value) => (typeof value === 'string' - ? value.replaceAll(externalIp, hideString(externalIp)) : value)); - - ctx.report.setServiceInfo('drive_tenderdash', 'status', status); - ctx.report.setServiceInfo('drive_tenderdash', 'validators', validators); - ctx.report.setServiceInfo('drive_tenderdash', 'genesis', genesis); - ctx.report.setServiceInfo('drive_tenderdash', 'peers', peers); - ctx.report.setServiceInfo('drive_tenderdash', 'abciInfo', abciInfo); - ctx.report.setServiceInfo('drive_tenderdash', 'consensusState', consensusState); - }, - }, - { - title: 'Metrics', - enabled: () => config.get('platform.enable'), - task: async (ctx, task) => { - if (config.get('platform.drive.tenderdash.metrics.enabled')) { - // eslint-disable-next-line no-param-reassign - task.output = 'Reading Tenderdash metrics'; - - const url = `http://${config.get('platform.drive.tenderdash.rpc.host')}:${config.get('platform.drive.tenderdash.rpc.port')}/metrics`; - - const result = fetchTextOrError(url); - - ctx.report.setServiceInfo('drive_tenderdash', 'metrics', result); - } - - if (config.get('platform.drive.abci.metrics.enabled')) { - // eslint-disable-next-line no-param-reassign - task.output = 'Reading Drive metrics'; - - const url = `http://${config.get('platform.drive.abci.rpc.host')}:${config.get('platform.drive.abci.rpc.port')}/metrics`; - - const result = fetchTextOrError(url); - - ctx.report.setServiceInfo('drive_abci', 'metrics', result); - } - - if (config.get('platform.gateway.metrics.enabled')) { - // eslint-disable-next-line no-param-reassign - task.output = 'Reading Gateway metrics'; - - const url = `http://${config.get('platform.gateway.metrics.host')}:${config.get('platform.gateway.metrics.port')}/metrics`; - - const result = fetchTextOrError(url); - - ctx.report.setServiceInfo('gateway', 'metrics', result); - } - }, - }, - { - title: 'Logs', - task: async (ctx, task) => { - const externalIp = config.get('externalIp'); - const services = await getServiceList(config); - - // eslint-disable-next-line no-param-reassign - task.output = `Pulling logs from ${services.map((e) => e.name)}`; - - await Promise.all( - services.map(async (service) => { - const [inspect, logs] = (await Promise.allSettled([ - dockerCompose.inspectService(config, service.name), - dockerCompose.logs(config, [service.name]), - ])).map((e) => e.value || e.reason); - - // Hide username & external ip from logs - logs.out = logs.out.replaceAll(process.env.USER, hideString(process.env.USER)); - logs.out = logs.out.replaceAll(externalIp, hideString(externalIp)); - logs.err = logs.err.replaceAll(process.env.USER, hideString(process.env.USER)); - logs.err = logs.err.replaceAll(externalIp, hideString(externalIp)); - - // Hide username & external ip from inspect - obfuscateObjectRecursive(inspect, (field, value) => (typeof value === 'string' - ? value.replaceAll(process.env.USER, hideString(process.env.USER)) : value)); - obfuscateObjectRecursive(inspect, (field, value) => (typeof value === 'string' - ? value.replaceAll(externalIp, hideString(externalIp)) : value)); - - ctx.report.setServiceInfo(service.name, 'stdOut', logs.out); - ctx.report.setServiceInfo(service.name, 'stdErr', logs.err); - ctx.report.setServiceInfo(service.name, 'dockerInspect', inspect); - }), - ); - }, - }, - { - title: 'Create an archive', - task: async (ctx, task) => { - const archivePath = process.cwd(); - - await ctx.report.archive(archivePath); - - // eslint-disable-next-line no-param-reassign - task.output = chalk`Saved to {bold.cyanBright ${archivePath}/dashmate-report-${ctx.report.date.toISOString()}.tar}`; - }, - options: { - persistentOutput: true, - }, - }, - ], - { - renderer: isVerbose ? 'verbose' : 'default', - rendererOptions: { - clearOutput: false, - showTimer: isVerbose, - bottomBar: true, - removeEmptyLines: false, - }, - }, - ); - - try { - await tasks.run({ - isVerbose, - }); - } catch (e) { - throw new MuteOneLineError(e); - } - } -} diff --git a/packages/dashmate/src/commands/doctor/index.js b/packages/dashmate/src/commands/doctor/index.js new file mode 100644 index 0000000000..f4ecd4dba8 --- /dev/null +++ b/packages/dashmate/src/commands/doctor/index.js @@ -0,0 +1,146 @@ +import process from 'process'; +import { Flags } from '@oclif/core'; +import { Listr } from 'listr2'; +import chalk from 'chalk'; +import { SEVERITY } from '../../doctor/Prescription.js'; +import ConfigBaseCommand from '../../oclif/command/ConfigBaseCommand.js'; +import Samples from '../../doctor/Samples.js'; +import MuteOneLineError from '../../oclif/errors/MuteOneLineError.js'; + +export default class DoctorCommand extends ConfigBaseCommand { + static description = 'Dashmate node diagnostics. Bring your node to the doctor'; + + static flags = { + ...ConfigBaseCommand.flags, + verbose: Flags.boolean({ char: 'v', description: 'use verbose mode for output', default: false }), + samples: Flags.string({ char: 's', description: 'path to the samples archive', default: '' }), + }; + + /** + * @param {Object} args + * @param {Object} flags + * @param {Config} config + * @param {analyseSamples} analyseSamples + * @param {collectSamplesTask} collectSamplesTask + * @param {unarchiveSamples} unarchiveSamples + * @return {Promise} + */ + async runWithDependencies( + args, + { + verbose: isVerbose, + samples: samplesFile, + }, + config, + analyseSamples, + collectSamplesTask, + unarchiveSamples, + ) { + const tasks = new Listr( + [ + { + title: 'Collecting samples', + enabled: () => !samplesFile, + task: async () => collectSamplesTask(config), + }, + { + title: 'Analyzing samples', + task: async (ctx) => { + ctx.prescription = analyseSamples(ctx.samples); + }, + }, + ], + { + renderer: isVerbose ? 'verbose' : 'default', + rendererOptions: { + clearOutput: false, + showTimer: isVerbose, + removeEmptyLines: false, + collapse: false, + }, + }, + ); + + let samples; + if (samplesFile) { + samples = await unarchiveSamples(samplesFile); + } else { + samples = new Samples(); + } + + let ctx; + try { + ctx = await tasks.run({ + isVerbose, + samples, + }); + } catch (e) { + throw new MuteOneLineError(e); + } + + const problems = ctx.prescription.getOrderedProblems(); + if (problems.length === 0) { + // eslint-disable-next-line no-console + console.log(chalk`\n The doctor didn't find any problems with your node. + + If issues still persist, please use {bold.cyanBright dashmate doctor report} to create an archive + of the already collected data for further investigation. + + You can use it to analyze the node's condition yourself or send it to the Dash Core Group support team ({underline.cyanBright support@dash.org}) for help.`); + + return; + } + + const problemsString = problems.map((problem, index) => { + let numberedDescription = `${index + 1}. ${problem.getDescription()}`; + if (problem.getSeverity() === SEVERITY.HIGH) { + numberedDescription = chalk.red(numberedDescription); + } else if (problem.getSeverity() === SEVERITY.MEDIUM) { + numberedDescription = chalk.yellow(numberedDescription); + } + + const indentedDescription = numberedDescription.split('\n') + .map((line, i) => { + let size = 5; + if (i === 0) { + size = 3; + } + + return ' '.repeat(size) + line; + }).join('\n'); + + const indentedSolution = problem.getSolution().split('\n') + .map((line) => ' '.repeat(6) + line).join('\n'); + + return `${indentedDescription}\n\n${indentedSolution}`; + }).join('\n\n'); + + const plural = problems.length > 1 ? 's' : ''; + + const severity = ctx.prescription.getSeverity(); + + let problemsCount = `${problems.length} problem${plural}`; + if (severity === SEVERITY.HIGH) { + problemsCount = chalk.red(problemsCount); + } else if (severity === SEVERITY.MEDIUM) { + problemsCount = chalk.yellow(problemsCount); + } + + const prescriptionString = chalk`\n ${problemsCount} found: + +${problemsString} + + + Use {bold.cyanBright dashmate doctor report} to create an archive + of the already collected data for further investigation. + + You can use it to analyze the node's condition yourself or send it to the Dash Core Group support team ({underline.cyanBright support@dash.org}) for help.`; + + // eslint-disable-next-line no-console + console.log(prescriptionString); + + if (severity === SEVERITY.HIGH) { + process.exitCode = 1; + } + } +} diff --git a/packages/dashmate/src/commands/doctor/report.js b/packages/dashmate/src/commands/doctor/report.js new file mode 100644 index 0000000000..c826dc8ad7 --- /dev/null +++ b/packages/dashmate/src/commands/doctor/report.js @@ -0,0 +1,105 @@ +import process from 'process'; +import { Flags } from '@oclif/core'; +import { Listr } from 'listr2'; +import chalk from 'chalk'; +import Samples from '../../doctor/Samples.js'; +import ConfigBaseCommand from '../../oclif/command/ConfigBaseCommand.js'; +import MuteOneLineError from '../../oclif/errors/MuteOneLineError.js'; + +export default class ReportCommand extends ConfigBaseCommand { + static description = `Dashmate node diagnostic report + +The command collects diagnostic information and creates an obfuscated archive for further investigation`; + + static flags = { + ...ConfigBaseCommand.flags, + verbose: Flags.boolean({ char: 'v', description: 'use verbose mode for output', default: false }), + }; + + /** + * @param {Object} args + * @param {Object} flags + * @param {Config} config + * @param {collectSamplesTask} collectSamplesTask + * @param {archiveSamples} archiveSamples + * @return {Promise} + */ + async runWithDependencies( + args, + { + verbose: isVerbose, + }, + config, + collectSamplesTask, + archiveSamples, + ) { + const tasks = new Listr( + [ + { + task: async (ctx, task) => { + const agreement = await task.prompt({ + type: 'toggle', + name: 'confirm', + header: chalk` Do you want to create an archive of diagnostic information to help with debugging? + + The archive will include: + + - System information + - The node configuration + - Service logs, metrics and status + + Collected data will not contain any information which is not already publicly known. + All sensitive data like private keys or passwords is obfuscated. + + The archive will be compressed with TAR/GZIP and placed in {bold.cyanBright ${process.cwd()}} + You can use it to analyze the node's condition yourself or send it to the Dash Core Group support team ({underline.cyanBright support@dash.org}) for help.\n`, + message: 'Create an archive?', + enabled: 'Yes', + disabled: 'No', + }); + + if (!agreement) { + throw new Error('Archive creation was declined'); + } + }, + }, + { + title: 'Collecting samples', + task: async () => collectSamplesTask(config), + }, + { + title: 'Creating archive', + task: async (ctx, task) => { + const archivePath = process.cwd(); + + await archiveSamples(ctx.samples, archivePath); + + // eslint-disable-next-line no-param-reassign + task.output = chalk`Saved to {bold.cyanBright ${archivePath}/dashmate-report-${ctx.samples.date.toISOString()}.tar.gz}`; + }, + options: { + persistentOutput: true, + }, + }, + ], + { + renderer: isVerbose ? 'verbose' : 'default', + rendererOptions: { + clearOutput: false, + showTimer: isVerbose, + removeEmptyLines: false, + collapse: false, + }, + }, + ); + + try { + await tasks.run({ + isVerbose, + samples: new Samples(), + }); + } catch (e) { + throw new MuteOneLineError(e); + } + } +} diff --git a/packages/dashmate/src/commands/reset.js b/packages/dashmate/src/commands/reset.js index 99b640cdfc..571b3b2ff3 100644 --- a/packages/dashmate/src/commands/reset.js +++ b/packages/dashmate/src/commands/reset.js @@ -9,7 +9,7 @@ export default class ResetCommand extends ConfigBaseCommand { static flags = { ...ConfigBaseCommand.flags, - hard: Flags.boolean({ char: 'h', description: 'reset config as well as services and data', default: false }), + hard: Flags.boolean({ description: 'reset config as well as services and data', default: false }), force: Flags.boolean({ char: 'f', description: 'skip running services check', default: false }), platform: Flags.boolean({ char: 'p', description: 'reset platform services and data only', default: false }), verbose: Flags.boolean({ char: 'v', description: 'use verbose mode for output', default: false }), @@ -38,6 +38,49 @@ export default class ResetCommand extends ConfigBaseCommand { ) { const tasks = new Listr( [ + { + enabled: (ctx) => !ctx.isForce, + task: async (ctx, task) => { + let message; + if (ctx.isHardReset) { + if (ctx.keepData) { + message = 'Are you sure you want to reset your node configuration? Data will be' + + ' kept.'; + if (ctx.isPlatformOnlyReset) { + message = 'Are you sure you want to reset platform related configuration? Data' + + ' will be kept'; + } + } else { + message = 'Are you sure you want to reset your node data and configuration?'; + if (ctx.isPlatformOnlyReset) { + message = 'Are you sure you want to reset platform related data and configuration?'; + } + } + } else if (ctx.keepData) { + message = 'Are you sure you want to reset docker containers?'; + if (ctx.isPlatformOnlyReset) { + message = 'Are you sure you want to reset platform related docker containers?'; + } + } else { + message = 'Are you sure you want to reset your node data?'; + if (ctx.isPlatformOnlyReset) { + message = 'Are you sure you want to reset platform related data?'; + } + } + + const agreement = await task.prompt({ + type: 'toggle', + name: 'confirm', + message, + enabled: 'Yes', + disabled: 'No', + }); + + if (!agreement) { + throw new Error('Reset operation was declined'); + } + }, + }, { title: `Reset ${config.getName()} node`, task: () => resetNodeTask(config), diff --git a/packages/dashmate/src/commands/wallet/mint.js b/packages/dashmate/src/commands/wallet/mint.js index 2eeacabd35..0f06ad0ecd 100644 --- a/packages/dashmate/src/commands/wallet/mint.js +++ b/packages/dashmate/src/commands/wallet/mint.js @@ -51,6 +51,10 @@ Mint given amount of tDash to a new or specified address throw new Error('Only local network supports generation of dash'); } + if (config.get('core.masternode.enable')) { + throw new Error('A masternode doesn\'t support generation of dash'); + } + const tasks = new Listr( [ { diff --git a/packages/dashmate/src/config/configJsonSchema.js b/packages/dashmate/src/config/configJsonSchema.js index 0e9dc266d1..ed77019f29 100644 --- a/packages/dashmate/src/config/configJsonSchema.js +++ b/packages/dashmate/src/config/configJsonSchema.js @@ -401,36 +401,72 @@ export default { log: { type: 'object', properties: { - file: { + filePath: { + type: ['null', 'string'], + minLength: 1, + description: 'Write logs only to stdout if null. Provide an absolute file path on' + + ' the host machine to also write to a log file there. Use a log file if logs must be' + + ' retained since stdout logs are stored inside the docker container' + + ' and removed if the container is removed.', + }, + debug: { type: 'object', properties: { - categories: { + enabled: { + type: 'boolean', + description: 'Enable debug logging. Equivalent to setting "debug=1" in the Core configuration file)', + }, + ips: { + type: 'boolean', + description: 'Include IP addresses in debug output', + }, + sourceLocations: { + type: 'boolean', + description: 'Prepend debug output with name of the originating source' + + ' location (source file, line number and function name)', + }, + threadNames: { + type: 'boolean', + description: 'Prepend debug output with name of the originating thread (only' + + ' available on platforms supporting thread_local)', + }, + timeMicros: { + type: 'boolean', + description: 'Add microsecond precision to debug timestamps', + }, + includeOnly: { type: 'array', uniqueItems: true, + description: 'Log all categories if empty. Otherwise, log only the specified categories.', items: { type: 'string', - enum: ['all', 'net', 'tor', 'mempool', 'http', 'bench', 'zmq', 'walletdb', 'rpc', 'estimatefee', + enum: ['net', 'tor', 'mempool', 'http', 'bench', 'zmq', 'walletdb', 'rpc', 'estimatefee', 'addrman', 'selectcoins', 'reindex', 'cmpctblock', 'rand', 'prune', 'proxy', 'mempoolrej', 'libevent', 'coindb', 'qt', 'leveldb', 'chainlocks', 'gobject', 'instantsend', 'llmq', 'llmq-dkg', 'llmq-sigs', 'mnpayments', 'mnsync', 'coinjoin', 'spork', 'netconn', ], }, }, - path: { - type: 'string', - minLength: 1, + exclude: { + type: 'array', + description: 'Exclude debugging information for one or more categories.', + uniqueItems: true, + items: { + type: 'string', + enum: ['net', 'tor', 'mempool', 'http', 'bench', 'zmq', 'walletdb', 'rpc', 'estimatefee', + 'addrman', 'selectcoins', 'reindex', 'cmpctblock', 'rand', 'prune', 'proxy', 'mempoolrej', + 'libevent', 'coindb', 'qt', 'leveldb', 'chainlocks', 'gobject', 'instantsend', 'llmq', + 'llmq-dkg', 'llmq-sigs', 'mnpayments', 'mnsync', 'coinjoin', 'spork', 'netconn', + ], + }, }, }, additionalProperties: false, - required: ['categories', 'path'], + required: ['enabled', 'ips', 'sourceLocations', 'threadNames', 'timeMicros', 'includeOnly', 'exclude'], }, }, additionalProperties: false, - required: ['file'], - }, - logIps: { - type: 'integer', - enum: [0, 1], + required: ['filePath', 'debug'], }, indexes: { type: ['array'], @@ -444,7 +480,7 @@ export default { }, }, required: ['docker', 'p2p', 'rpc', 'spork', 'masternode', 'miner', 'devnet', 'log', - 'logIps', 'indexes', 'insight'], + 'indexes', 'insight'], additionalProperties: false, }, platform: { @@ -631,10 +667,12 @@ export default { properties: { level: { type: 'string', + description: 'Log level for gateway container logs', enum: ['trace', 'debug', 'info', 'warn', 'error', 'critical', 'off'], }, accessLogs: { type: 'array', + description: 'Envoy access logs', items: { oneOf: [ { @@ -644,7 +682,8 @@ export default { type: 'string', minLength: 1, enum: ['stdout', 'stderr'], - description: 'Access log type: stdout, stderr or file', + description: 'stdout, stderr or file (absolute file path on host' + + ' machine)', }, format: { type: 'string', @@ -670,7 +709,9 @@ export default { additionalProperties: { type: 'string', }, - description: 'JSON fields and values. If null, default template is used.', + description: 'JSON fields and values. If null, default template is' + + ' used. More info:' + + ' https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#format-dictionaries', }, }, required: ['template'], @@ -680,7 +721,9 @@ export default { properties: { template: { type: ['null', 'string'], - description: 'Template string. If null, default template is used.', + description: 'Template string. If null, default template is used.' + + ' More info:' + + ' https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#format-strings', }, }, required: ['template'], @@ -804,6 +847,7 @@ export default { }, logs: { type: 'object', + description: 'Define Drive logs', propertyNames: { type: 'string', minLength: 1, @@ -824,10 +868,13 @@ export default { }, format: { type: 'string', + description: 'Log format:' + + ' https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/format/index.html', enum: ['full', 'compact', 'pretty', 'json'], }, color: { type: ['boolean', 'null'], + description: 'Whether or not to use colorful output; defaults to autodetect', }, }, required: ['destination', 'level', 'format', 'color'], @@ -1092,17 +1139,21 @@ export default { level: { type: 'string', enum: ['trace', 'debug', 'info', 'warn', 'error'], + description: 'Log verbosity level', }, format: { type: 'string', enum: ['plain', 'json'], + description: 'Log format: text or json', }, path: { type: ['string', 'null'], minLength: 1, + description: 'Write to stdout only if null or to stdout and specified log' + + ' file (absolute file path on host machine)', }, }, - required: ['level', 'format'], + required: ['level', 'format', 'path'], additionalProperties: false, }, rpc: { diff --git a/packages/dashmate/src/config/generateEnvsFactory.js b/packages/dashmate/src/config/generateEnvsFactory.js index fcb0491ecf..781ef7bdaa 100644 --- a/packages/dashmate/src/config/generateEnvsFactory.js +++ b/packages/dashmate/src/config/generateEnvsFactory.js @@ -1,4 +1,3 @@ -import path from 'path'; import os from 'os'; import convertObjectToEnvs from './convertObjectToEnvs.js'; import { DASHMATE_HELPER_DOCKER_IMAGE } from '../constants.js'; @@ -20,7 +19,6 @@ export default function generateEnvsFactory(configFile, homeDir, getConfigProfil * COMPOSE_PROJECT_NAME: string, * COMPOSE_FILE: string, * COMPOSE_PATH_SEPARATOR: string, - * CORE_LOG_DIRECTORY_PATH: string * }} */ function generateEnvs(config) { @@ -69,13 +67,6 @@ export default function generateEnvsFactory(configFile, homeDir, getConfigProfil const { uid, gid } = os.userInfo(); - // Determine logs directory to mount into tenderdash container - let tenderdashLogDirectoryPath = homeDir.joinPath('logs', config.get('network')); - const tenderdashLogFilePath = config.get('platform.drive.tenderdash.log.path'); - if (tenderdashLogFilePath !== null) { - tenderdashLogDirectoryPath = path.dirname(tenderdashLogFilePath); - } - let driveAbciMetricsUrl = ''; if (config.get('platform.drive.abci.metrics.enabled')) { driveAbciMetricsUrl = 'http://0.0.0.0:29090'; @@ -92,11 +83,7 @@ export default function generateEnvsFactory(configFile, homeDir, getConfigProfil COMPOSE_PATH_SEPARATOR: ':', DOCKER_BUILDKIT: 1, COMPOSE_DOCKER_CLI_BUILD: 1, - CORE_LOG_DIRECTORY_PATH: path.dirname( - config.get('core.log.file.path'), - ), DASHMATE_HELPER_DOCKER_IMAGE, - PLATFORM_DRIVE_TENDERDASH_LOG_DIRECTORY_PATH: tenderdashLogDirectoryPath, PLATFORM_GATEWAY_RATE_LIMITER_METRICS_DISABLED: !config.get('platform.gateway.rateLimiter.metrics.enabled'), PLATFORM_DRIVE_ABCI_METRICS_URL: driveAbciMetricsUrl, ...convertObjectToEnvs(config.getOptions()), diff --git a/packages/dashmate/src/config/obfuscateConfig.js b/packages/dashmate/src/config/obfuscateConfig.js index b2ed2e9a4f..99982ab387 100644 --- a/packages/dashmate/src/config/obfuscateConfig.js +++ b/packages/dashmate/src/config/obfuscateConfig.js @@ -1,30 +1,30 @@ import lodash from 'lodash'; import obfuscateObjectRecursive from '../util/obfuscateObjectRecursive.js'; +import Config from './Config.js'; import hideString from '../util/hideString.js'; +/** + * @param {Config} config + * @return {Config} + */ export default function obfuscateConfig( config, ) { const username = process.env.USER; - const externalIp = config.get('externalIp'); - const cloned = lodash.cloneDeep(config); + const clonedOptions = lodash.cloneDeep(config.getOptions()); // sanitize [password, apiKey, privateKey, externalIp] fields in the dashmate config - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' && field === 'password' ? hideString(value) : value)); - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' && field === 'apiKey' ? hideString(value) : value)); - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' && field === 'privateKey' ? hideString(value) : value)); - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' && field === 'externalIp' ? hideString(value) : value)); + obfuscateObjectRecursive(clonedOptions, (field, value) => (typeof value === 'string' && field === 'password' ? hideString(value) : value)); + obfuscateObjectRecursive(clonedOptions, (field, value) => (typeof value === 'string' && field === 'key' ? hideString(value) : value)); + obfuscateObjectRecursive(clonedOptions, (field, value) => (typeof value === 'string' && field === 'apiKey' ? hideString(value) : value)); + obfuscateObjectRecursive(clonedOptions, (field, value) => (typeof value === 'string' && field === 'privateKey' ? hideString(value) : value)); // sanitize also usernames & external ip from the rest of the fields values - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' ? value.replaceAll( + obfuscateObjectRecursive(clonedOptions, (_field, value) => (typeof value === 'string' ? value.replaceAll( username, hideString(username), ) : value)); - obfuscateObjectRecursive(cloned, (field, value) => (typeof value === 'string' ? value.replaceAll( - externalIp, - hideString(externalIp), - ) : value)); - return cloned; + return new Config(config.getName(), clonedOptions); } diff --git a/packages/dashmate/src/core/startCoreFactory.js b/packages/dashmate/src/core/startCoreFactory.js index 86401ee6df..3da7e54b8d 100644 --- a/packages/dashmate/src/core/startCoreFactory.js +++ b/packages/dashmate/src/core/startCoreFactory.js @@ -59,8 +59,10 @@ export default function startCoreFactory( coreCommand.push('--disablewallet=1'); } - const logFilePath = config.get('core.log.file.path'); - ensureFileMountExists(logFilePath, 0o666); + const logFilePath = config.get('core.log.filePath'); + if (logFilePath !== null) { + ensureFileMountExists(logFilePath, 0o666); + } const coreContainer = await dockerCompose.runService( config, diff --git a/packages/dashmate/src/createDIContainer.js b/packages/dashmate/src/createDIContainer.js index e478ffdf1d..9f3b861623 100644 --- a/packages/dashmate/src/createDIContainer.js +++ b/packages/dashmate/src/createDIContainer.js @@ -15,6 +15,14 @@ import ConfigFileJsonRepository from './config/configFile/ConfigFileJsonReposito import createConfigFileFactory from './config/configFile/createConfigFileFactory.js'; import migrateConfigFileFactory from './config/configFile/migrateConfigFileFactory.js'; import DefaultConfigs from './config/DefaultConfigs.js'; +import analyseConfigFactory from './doctor/analyse/analyseConfigFactory.js'; +import analyseCoreFactory from './doctor/analyse/analyseCoreFactory.js'; +import analysePlatformFactory from './doctor/analyse/analysePlatformFactory.js'; +import analyseServiceContainersFactory from './doctor/analyse/analyseServiceContainersFactory.js'; +import analyseSystemResourcesFactory from './doctor/analyse/analyseSystemResourcesFactory.js'; +import analyseSamplesFactory from './doctor/analyseSamplesFactory.js'; +import archiveSamples from './doctor/archiveSamples.js'; +import unarchiveSamplesFactory from './doctor/unarchiveSamplesFactory.js'; import renderTemplateFactory from './templates/renderTemplateFactory.js'; import renderServiceTemplatesFactory from './templates/renderServiceTemplatesFactory.js'; @@ -113,6 +121,9 @@ import writeConfigTemplatesFactory from './templates/writeConfigTemplatesFactory import importCoreDataTaskFactory from './listr/tasks/setup/regular/importCoreDataTaskFactory.js'; import verifySystemRequirementsTaskFactory from './listr/tasks/setup/regular/verifySystemRequirementsTaskFactory.js'; +import collectSamplesTaskFactory from './listr/tasks/doctor/collectSamplesTaskFactory.js'; +import verifySystemRequirementsFactory from './doctor/verifySystemRequirementsFactory.js'; +import validateZeroSslCertificateFactory from './ssl/zerossl/validateZeroSslCertificateFactory.js'; /** * @param {Object} [options] @@ -306,6 +317,30 @@ export default async function createDIContainer(options = {}) { importCoreDataTask: asFunction(importCoreDataTaskFactory).singleton(), verifySystemRequirementsTask: asFunction(verifySystemRequirementsTaskFactory) .singleton(), + collectSamplesTask: asFunction(collectSamplesTaskFactory).singleton(), + }); + + /** + * SSL + */ + container.register({ + validateZeroSslCertificate: asFunction(validateZeroSslCertificateFactory).singleton(), + getCertificate: asValue(getCertificate), + }); + + /** + * Doctor + */ + container.register({ + verifySystemRequirements: asFunction(verifySystemRequirementsFactory), + analyseSamples: asFunction(analyseSamplesFactory).singleton(), + analyseSystemResources: asFunction(analyseSystemResourcesFactory).singleton(), + analyseServiceContainers: asFunction(analyseServiceContainersFactory).singleton(), + analyseConfig: asFunction(analyseConfigFactory).singleton(), + analyseCore: asFunction(analyseCoreFactory).singleton(), + analysePlatform: asFunction(analysePlatformFactory).singleton(), + unarchiveSamples: asFunction(unarchiveSamplesFactory).singleton(), + archiveSamples: asValue(archiveSamples), }); /** diff --git a/packages/dashmate/src/docker/DockerCompose.js b/packages/dashmate/src/docker/DockerCompose.js index 7826b32593..8a50800805 100644 --- a/packages/dashmate/src/docker/DockerCompose.js +++ b/packages/dashmate/src/docker/DockerCompose.js @@ -41,6 +41,11 @@ export default class DockerCompose { */ #isDockerSetupVerified = false; + /** + * @type {Error} + */ + #dockerVerifiicationError; + /** * @type {HomeDir} */ @@ -482,13 +487,23 @@ export default class DockerCompose { * Logs * * @param {Config} config - * @return {Promise} + * @param {string[]} services + * @param {Object} options + * @param {number} options.tail + * @return {Promise<{exitCode: number | null, out: string, err: string}>} */ - async logs(config, services = []) { + async logs(config, services = [], options = {}) { await this.throwErrorIfNotInstalled(); + const args = [...services]; + if (options.tail) { + args.unshift('--tail', options.tail.toString()); + } + + const commandOptions = this.#createOptions(config); + try { - return dockerCompose.logs(services, this.#createOptions(config)); + return await dockerCompose.logs(args, commandOptions); } catch (e) { throw new DockerComposeError(e); } @@ -499,14 +514,24 @@ export default class DockerCompose { */ async throwErrorIfNotInstalled() { if (this.#isDockerSetupVerified) { - return; + if (this.#dockerVerifiicationError) { + throw this.#dockerVerifiicationError; + } else { + return; + } } - this.#isDockerSetupVerified = true; + try { + await this.throwErrorIfDockerIsNotInstalled(); - await this.throwErrorIfDockerIsNotInstalled(); + await this.throwErrorIfDockerComposeIsNotInstalled(); + } catch (e) { + this.#dockerVerifiicationError = e; - await this.throwErrorIfDockerComposeIsNotInstalled(); + throw e; + } finally { + this.#isDockerSetupVerified = true; + } } /** diff --git a/packages/dashmate/src/docker/getServiceListFactory.js b/packages/dashmate/src/docker/getServiceListFactory.js index 7fee42f5fc..eff5fac757 100644 --- a/packages/dashmate/src/docker/getServiceListFactory.js +++ b/packages/dashmate/src/docker/getServiceListFactory.js @@ -13,7 +13,7 @@ export default function getServiceListFactory(generateEnvs, getConfigProfiles) { /** * Returns list of services and corresponding docker images from the config * - * @typedef {getServiceList} + * @typedef {function} getServiceList * @param {Config} config * @return {Object[]} */ diff --git a/packages/dashmate/src/doctor/Prescription.js b/packages/dashmate/src/doctor/Prescription.js new file mode 100644 index 0000000000..07bd6cd634 --- /dev/null +++ b/packages/dashmate/src/doctor/Prescription.js @@ -0,0 +1,40 @@ +export const SEVERITY = { + LOW: 1, + MEDIUM: 2, + HIGH: 3, +}; + +export class Prescription { + /** + * @type {Problem[]} + */ + #orderedProblems; + + /** + * @param {Problem[]} problems + */ + constructor(problems) { + const orderedProblems = [...problems]; + orderedProblems.sort((a, b) => b.getSeverity() - a.getSeverity()); + this.#orderedProblems = orderedProblems; + } + + /** + * @return {number} - Severity level + */ + getSeverity() { + return this.#orderedProblems + .reduce((severity, problem) => ( + Math.max(severity, problem.getSeverity()) + ), SEVERITY.LOW); + } + + /** + * Get problems ordered by severity level + * + * @return {Problem[]} + */ + getOrderedProblems() { + return this.#orderedProblems; + } +} diff --git a/packages/dashmate/src/doctor/Problem.js b/packages/dashmate/src/doctor/Problem.js new file mode 100644 index 0000000000..64cff07c31 --- /dev/null +++ b/packages/dashmate/src/doctor/Problem.js @@ -0,0 +1,48 @@ +export default class Problem { + /** + * @type {string} + */ + #description; + + /** + * @type {string} + */ + #solution; + + /** + * @type {number} + */ + #severity; + + /** + * @param {string} description + * @param {string} solution + * @param {number} severity + */ + constructor(description, solution, severity) { + this.#description = description; + this.#solution = solution; + this.#severity = severity; + } + + /** + * @return {string} + */ + getDescription() { + return this.#description; + } + + /** + * @return {string} + */ + getSolution() { + return this.#solution; + } + + /** + * @return {number} + */ + getSeverity() { + return this.#severity; + } +} diff --git a/packages/dashmate/src/doctor/Samples.js b/packages/dashmate/src/doctor/Samples.js new file mode 100644 index 0000000000..5d2c2b80d6 --- /dev/null +++ b/packages/dashmate/src/doctor/Samples.js @@ -0,0 +1,101 @@ +export default class Samples { + /** + * @type {Date} + */ + date; + + /** + * @type {Object} + */ + systemInfo = {}; + + /** + * @type {string} + */ + #dockerError; + + /** + * @type {string} + */ + #dashmateVersion; + + /** + * @type {Config} + */ + #dashmateConfig; + + /** + * @type {Object} + */ + #services = {}; + + constructor() { + this.date = new Date(); + } + + setSystemInfo(systemInfo) { + this.systemInfo = systemInfo; + } + + getSystemInfo() { + return this.systemInfo; + } + + /** + * @param {Error} error + */ + setDockerError(error) { + this.#dockerError = error.toString(); + } + + /** + * @param {string} errorString + */ + setStringifiedDockerError(errorString) { + this.#dockerError = errorString; + } + + /** + * @return {string} + */ + getStringifiedDockerError() { + return this.#dockerError; + } + + setDashmateVersion(version) { + this.#dashmateVersion = version; + } + + getDashmateVersion() { + return this.#dashmateVersion; + } + + /** + * @param {Config} config + */ + setDashmateConfig(config) { + this.#dashmateConfig = config; + } + + /** + * @return {Config} + */ + getDashmateConfig() { + return this.#dashmateConfig; + } + + setServiceInfo(service, key, data) { + this.#services[service] = { + ...(this.#services[service] ?? {}), + [key]: data, + }; + } + + getServices() { + return this.#services; + } + + getServiceInfo(service, key) { + return this.#services[service]?.[key]; + } +} diff --git a/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js new file mode 100644 index 0000000000..32c4355bde --- /dev/null +++ b/packages/dashmate/src/doctor/analyse/analyseConfigFactory.js @@ -0,0 +1,254 @@ +import chalk from 'chalk'; +import { NETWORK_LOCAL, NETWORK_MAINNET } from '../../constants.js'; +import { ERRORS } from '../../ssl/zerossl/validateZeroSslCertificateFactory.js'; +import { SEVERITY } from '../Prescription.js'; +import Problem from '../Problem.js'; + +export default function analyseConfigFactory() { + /** + * @typedef analyseConfig + * @param {Samples} samples + * @return {Problem[]} + */ + function analyseConfig(samples) { + const config = samples.getDashmateConfig(); + + const problems = []; + + if (config?.get('platform.enable')) { + // Gateway admin is disabled while metrics are enabled + if (config.get('platform.gateway.metrics.enabled') && !config.get('platform.gateway.admin.enabled')) { + const problem = new Problem( + 'Gateway admin is disabled while metrics are enabled', + chalk`Please enable gateway admin: {bold.cyanBright dashmate config set platform.gateway.admin.enabled true}`, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + // Platform Node ID + const masternodeStatus = samples.getServiceInfo('core', 'masternodeStatus'); + const platformNodeId = masternodeStatus?.dmnState?.platformNodeId; + if (platformNodeId && config.get('platform.drive.tenderdash.node.id') !== platformNodeId) { + const problem = new Problem( + 'Platform Node ID doesn\'t match the one found in the ProReg transaction', + chalk`Please set the correct Node ID and Node Key: + {bold.cyanBright dashmate config set platform.drive.tenderdash.node.id ID + dashmate config set platform.drive.tenderdash.node.key KEY} + Or update the Node ID in the masternode list using a ProServUp transaction`, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + // SSL certificate + const ssl = samples.getServiceInfo('gateway', 'ssl'); + if (ssl?.error) { + switch (ssl.error) { + case 'disabled': + if (config.get('network') !== NETWORK_LOCAL) { + const problem = new Problem( + 'SSL certificates are disabled. Clients won\'t be able to connect securely', + chalk`Please enable and set up SSL certificates {bold.cyanBright https://docs.dash.org/en/stable/masternodes/dashmate.html#ssl-certificate}`, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + break; + case 'self-signed': + if (config.get('network') === NETWORK_MAINNET) { + const problem = new Problem( + 'Self-signed SSL certificate is used on mainnet. Clients won\'t be able to connect securely', + chalk`Please use valid SSL certificates {bold.cyanBright https://docs.dash.org/en/stable/masternodes/dashmate.html#ssl-certificate}`, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + break; + default: { + const { + description, + solution, + } = { + // File provider error + 'not-valid': { + description: 'SSL certificate files are not valid', + solution: chalk`Please make sure the certificate chain contains the actual server certificate at the top of the file, and it corresponds to the private key + +Certificate chain file path: {bold.cyanBright ${ssl?.data?.chainFilePath}} +Private key file path: {bold.cyanBright ${ssl?.data?.privateFilePath}}`, + }, + // File provider error + 'not-exist': { + description: 'SSL certificate files are not found', + solution: chalk`Please get an SSL certificate and place the certificate files in the correct location. + +Certificate chain file path: {bold.cyanBright ${ssl?.data?.chainFilePath}} +Private key file path: {bold.cyanBright ${ssl?.data?.privateFilePath}} + +Or use ZeroSSL https://docs.dash.org/en/stable/masternodes/dashmate.html#ssl-certificate`, + }, + // ZeroSSL validation errors + [ERRORS.API_KEY_IS_NOT_SET]: { + description: 'ZeroSSL API key is not set.', + solution: chalk`Please obtain your API key from {underline.cyanBright https://app.zerossl.com/developer} +And then update your configuration with {block.cyanBright dashmate config set platform.gateway.ssl.providerConfigs.zerossl.apiKey [KEY]}`, + }, + [ERRORS.EXTERNAL_IP_IS_NOT_SET]: { + description: 'External IP is not set.', + solution: chalk`Please update your configuration to include your external IP using {block.cyanBright dashmate config set externalIp [IP]}`, + }, + [ERRORS.CERTIFICATE_ID_IS_NOT_SET]: { + description: 'ZeroSSL certificate is not configured', + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to get a new certificate`, + }, + [ERRORS.PRIVATE_KEY_IS_NOT_PRESENT]: { + description: chalk`ZeroSSL private key file not found in ${ssl?.data?.privateKeyFilePath}.`, + solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} +and revoke the previous certificate in the ZeroSSL dashboard`, + }, + [ERRORS.EXTERNAL_IP_MISMATCH]: { + description: chalk`ZeroSSL IP ${ssl?.data?.certificate.common_name} does not match external IP ${ssl?.data?.externalIp}.`, + solution: chalk`Please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} + and revoke the previous certificate in the ZeroSSL dashboard`, + }, + [ERRORS.CSR_FILE_IS_NOT_PRESENT]: { + description: chalk`ZeroSSL certificate request file not found in ${ssl?.data?.csrFilePath}. +This makes auto-renewal impossible.`, + solution: chalk`If you need auto renew, please regenerate the certificate using {bold.cyanBright dashmate ssl obtain --force} +and revoke the previous certificate in the ZeroSSL dashboard`, + }, + [ERRORS.CERTIFICATE_EXPIRES_SOON]: { + description: chalk`ZeroSSL certificate expires at ${ssl?.data?.certificate.expires}.`, + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to get a new one`, + }, + [ERRORS.CERTIFICATE_IS_NOT_VALIDATED]: { + description: chalk`ZeroSSL certificate is not approved.`, + solution: chalk`Please run {bold.cyanBright dashmate ssl obtain} to confirm certificate`, + }, + [ERRORS.CERTIFICATE_IS_NOT_VALID]: { + description: chalk`ZeroSSL certificate is not valid.`, + solution: chalk`Please run {bold.cyanBright dashmate ssl zerossl obtain} to get a new one.`, + }, + [ERRORS.ZERO_SSL_API_ERROR]: { + description: ssl?.data?.error?.message, + solution: chalk`Please contact ZeroSSL support if needed.`, + }, + }[ssl.error] ?? {}; + + if (description) { + const problem = new Problem( + description, + solution, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + break; + } + } + } + + if (samples?.getDashmateConfig()?.get('network') !== NETWORK_LOCAL) { + // Core P2P port + const coreP2pPort = samples.getServiceInfo('core', 'p2pPort'); + if (coreP2pPort && coreP2pPort !== 'OPEN') { + const port = config.get('core.p2p.port'); + const externalIp = config.get('externalIp'); + + let solution = chalk`Please ensure that port ${port} on your public IP address ${externalIp} is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + if (externalIp) { + solution = chalk`Please ensure your configured IP address ${externalIp} is your public IP. +You can change it using {bold.cyanBright dashmate config set externalIp [IP]}. +Also, ensure that port ${port} on your public IP address is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + } + + const problem = new Problem( + 'Core P2P port is unavailable for incoming connections.', + solution, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + // Gateway HTTP port + const gatewayHttpPort = samples.getServiceInfo('gateway', 'httpPort'); + if (gatewayHttpPort && gatewayHttpPort !== 'OPEN') { + const port = config.get('platform.gateway.listeners.dapiAndDrive.port'); + const externalIp = config.get('externalIp'); + + let solution = chalk`Please ensure that port ${port} on your public IP address ${externalIp} is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + if (externalIp) { + solution = chalk`Please ensure your configured IP address ${externalIp} is your public IP. +You can change it using {bold.cyanBright dashmate config set externalIp [IP]}. +Also, ensure that port ${port} on your public IP address is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + } + + const problem = new Problem( + 'Gateway HTTP port is unavailable for incoming connections.', + solution, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + // Tenderdash P2P port + const tenderdashP2pPort = samples.getServiceInfo('drive_tenderdash', 'p2pPort'); + if (tenderdashP2pPort && tenderdashP2pPort !== 'OPEN') { + const port = config.get('platform.drive.tenderdash.p2p.port'); + const externalIp = config.get('externalIp'); + + let solution = chalk`Please ensure that port ${port} on your public IP address ${externalIp} is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + if (externalIp) { + solution = chalk`Please ensure your configured IP address ${externalIp} is your public IP. +You can change it using {bold.cyanBright dashmate config set externalIp [IP]}. +Also, ensure that port ${port} on your public IP address is open +for incoming connections. You may need to configure your firewall to +ensure this port is accessible from the public internet. If you are using +Network Address Translation (NAT), please enable port forwarding for port 80 +and all Dash service ports listed above.`; + } + + const problem = new Problem( + 'Tenderdash P2P port is unavailable for incoming connections.', + solution, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + } + } + + return problems; + } + + return analyseConfig; +} diff --git a/packages/dashmate/src/doctor/analyse/analyseCoreFactory.js b/packages/dashmate/src/doctor/analyse/analyseCoreFactory.js new file mode 100644 index 0000000000..eb947e8a6e --- /dev/null +++ b/packages/dashmate/src/doctor/analyse/analyseCoreFactory.js @@ -0,0 +1,92 @@ +import chalk from 'chalk'; +import { SEVERITY } from '../Prescription.js'; +import Problem from '../Problem.js'; + +/** + * @return {analyseCore} + */ +export default function analyseCoreFactory() { + /** + * @typedef {Function} analyseCore + * @param {Samples} samples + * @return {Problem[]} + */ + function analyseCore(samples) { + const problems = []; + + // Core is synced + const masternodeSyncStatus = samples.getServiceInfo('core', 'masternodeSyncStatus'); + + if (masternodeSyncStatus?.IsSynced === false) { + const blockchainInfo = samples.getServiceInfo('core', 'blockchainInfo'); + const verificationProgress = blockchainInfo?.verificationprogress ?? 0; + + const problem = new Problem( + 'Core is syncing blockchain data. Some node services may be temporarily unresponsive', + chalk`Sync is ${(verificationProgress * 100).toFixed(1)}% complete. Please wait until Core is fully synced`, + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + + // PoSe + if (samples?.getDashmateConfig()?.get('core.masternode.enable')) { + const masternodeStatus = samples.getServiceInfo('core', 'masternodeStatus'); + + const { description, solution, severity } = { + WAITING_FOR_PROTX: { + description: 'The masternode is waiting for ProTx registration confirmation', + solution: chalk`Ensure the ProRegTx transaction has been sent and is confirmed on the network.`, + severity: SEVERITY.HIGH, + }, + POSE_BANNED: { + description: 'The masternode has been banned due to failing Proof-of-Service checks.', + solution: chalk`Submit a ProUpServTx transaction to unban your masternode and ensure +it meets all network requirements.`, + severity: SEVERITY.HIGH, + }, + REMOVED: { + description: 'The masternode has been removed from the network\'s masternode list.', + solution: chalk`Re-register the masternode with a new ProRegTx transaction.`, + severity: SEVERITY.HIGH, + }, + OPERATOR_KEY_CHANGED: { + description: 'The operator key for the masternode has been changed.', + solution: chalk`Update the masternode configuration with the new operator key +using {bold.cyanBright dashmate config set core.masternode.operatorKey }.`, + severity: SEVERITY.HIGH, + }, + PROTX_IP_CHANGED: { + description: 'The IP address registered in the ProTx has changed.', + solution: chalk`Update your masternode\'s configuration with the new IP address.`, + severity: SEVERITY.HIGH, + }, + ERROR: { + description: 'An unknown error has occurred with the masternode.', + solution: chalk`Check the Core logs for detailed error information and troubleshoot accordingly.`, + severity: SEVERITY.HIGH, + }, + UNKNOWN: { + description: 'The masternode status cannot be determined.', + solution: chalk`Check the Core logs for detailed error information and troubleshoot accordingly.`, + severity: SEVERITY.HIGH, + }, + }[masternodeStatus?.state] || {}; + + if (description) { + const problem = new Problem( + description, + solution, + severity, + ); + + problems.push(problem); + } + } + + return problems; + } + + return analyseCore; +} diff --git a/packages/dashmate/src/doctor/analyse/analysePlatformFactory.js b/packages/dashmate/src/doctor/analyse/analysePlatformFactory.js new file mode 100644 index 0000000000..d36b71147e --- /dev/null +++ b/packages/dashmate/src/doctor/analyse/analysePlatformFactory.js @@ -0,0 +1,35 @@ +import { SEVERITY } from '../Prescription.js'; +import Problem from '../Problem.js'; + +/** + * @return {analysePlatform} + */ +export default function analysePlatformFactory() { + /** + * @typedef {Function} analysePlatform + * @param {Samples} samples + * @return {Problem[]} + */ + function analysePlatform(samples) { + const problems = []; + + // Tenderdash is synced + if (samples?.getDashmateConfig()?.get('platform.enable')) { + const status = samples.getServiceInfo('drive_tenderdash', 'status'); + + if (status?.sync_info?.catching_up) { + const problem = new Problem( + 'Drive is syncing blockchain data. Some node services may temporarily be unresponsive.', + 'Please wait until Drive is fully synced', + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } + + return problems; + } + + return analysePlatform; +} diff --git a/packages/dashmate/src/doctor/analyse/analyseServiceContainersFactory.js b/packages/dashmate/src/doctor/analyse/analyseServiceContainersFactory.js new file mode 100644 index 0000000000..4edd993b62 --- /dev/null +++ b/packages/dashmate/src/doctor/analyse/analyseServiceContainersFactory.js @@ -0,0 +1,169 @@ +import chalk from 'chalk'; +import { SEVERITY } from '../Prescription.js'; +import Problem from '../Problem.js'; + +/** + * @param {getServiceList} getServiceList + * @return {analyseServiceContainers} + */ +export default function analyseServiceContainersFactory( + getServiceList, +) { + /** + * @typedef {analyseServiceContainers} + * @param {Samples} samples + * @return {Problem[]} + */ + function analyseServiceContainers(samples) { + const services = getServiceList(samples.getDashmateConfig()); + + const servicesNotStarted = []; + const servicesFailed = []; + const servicesOOMKilled = []; + const servicesHighCpuUsage = []; + const servicesHighMemoryUsage = []; + + for (const service of services) { + const dockerInspect = samples.getServiceInfo(service.name, 'dockerInspect'); + const dockerStats = samples.getServiceInfo(service.name, 'dockerStats'); + + if (!dockerInspect) { + continue; + } + + if (dockerInspect.message) { + servicesNotStarted.push({ + service, + message: dockerInspect.message, + }); + } else if ( + dockerInspect.State?.Restarting === true + && dockerInspect.State?.ExitCode !== 0 + ) { + servicesFailed.push({ + service, + message: dockerInspect.State.Error, + code: dockerInspect.State.ExitCode, + }); + } else if (dockerInspect.State?.OOMKilled === true) { + servicesOOMKilled.push({ + service, + }); + } + + const cpuSystemUsage = dockerStats?.cpuStats?.system_cpu_usage ?? 0; + const cpuServiceUsage = dockerStats?.cpuStats?.cpu_usage?.total_usage ?? 0; + + if (cpuSystemUsage > 0) { + const cpuUsage = cpuServiceUsage / cpuSystemUsage; + + if (cpuUsage > 0.8) { + servicesHighCpuUsage.push({ + service, + cpuUsage, + }); + } + } + + const memoryLimit = dockerStats?.memoryStats?.limit ?? 0; + const memoryServiceUsage = dockerStats?.memoryStats?.usage ?? 0; + + if (memoryLimit > 0) { + const memoryUsage = memoryServiceUsage / memoryLimit; + + if (memoryUsage > 0.8) { + servicesHighMemoryUsage.push({ + service, + memoryUsage, + }); + } + } + } + + const problems = []; + + if (servicesNotStarted.length > 0) { + let description; + if (servicesNotStarted.length === 1) { + description = `Service ${servicesNotStarted[0].service.title} isn't started.`; + } else { + description = `Services ${servicesNotStarted.map((e) => e.service.title).join(', ')} aren't started.`; + } + + const problem = new Problem( + description, + chalk`Try {bold.cyanBright dashmate start --force} to make sure all services are started`, + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + for (const failedService of servicesFailed) { + let description = `Service ${failedService.service.title} failed with an error code ${failedService.code}`; + + if (failedService.message?.length > 0) { + description += `\nand message: ${failedService.message}`; + } + + description += '.'; + + const problem = new Problem( + description, + 'Please check service logs or share them with Dash Core Group', + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + if (servicesOOMKilled.length > 0) { + let description; + if (servicesNotStarted.length === 1) { + description = chalk`Service ${servicesNotStarted[0].service.title} was killed due to a lack of memory.`; + } else { + description = chalk`Services ${servicesNotStarted.map((e) => e.service.title).join(', ')} were killed due to lack of memory.`; + } + + const problem = new Problem( + description, + 'Make sure you have enough memory to run the node.', + SEVERITY.HIGH, + ); + + problems.push(problem); + } + + if (servicesHighCpuUsage.length > 0) { + for (const highCpuService of servicesHighCpuUsage) { + const description = `Service ${highCpuService.service.title} is consuming ${(highCpuService.cpuUsage * 100).toFixed(2)}% CPU.`; + + const problem = new Problem( + description, + 'Consider upgrading CPU or report in case of misbehaviour.', + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } + + if (servicesHighMemoryUsage.length > 0) { + for (const highMemoryService of servicesHighMemoryUsage) { + const description = `Service ${highMemoryService.service.title} is consuming ${(highMemoryService.memoryUsage * 100).toFixed(2)}% RAM.`; + + const problem = new Problem( + description, + 'Consider upgrading RAM or report in case of misbehaviour.', + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } + + return problems; + } + + return analyseServiceContainers; +} diff --git a/packages/dashmate/src/doctor/analyse/analyseSystemResourcesFactory.js b/packages/dashmate/src/doctor/analyse/analyseSystemResourcesFactory.js new file mode 100644 index 0000000000..a5728a4b41 --- /dev/null +++ b/packages/dashmate/src/doctor/analyse/analyseSystemResourcesFactory.js @@ -0,0 +1,104 @@ +import { SEVERITY } from '../Prescription.js'; +import Problem from '../Problem.js'; + +/** + * @param {verifySystemRequirements} verifySystemRequirements + * @return {analyseSystemResources} + */ +export default function analyseSystemResourcesFactory(verifySystemRequirements) { + /** + * @typedef {analyseSystemResources} + * @param {Samples} samples + * @returns {Problem[]} + */ + function analyseSystemResources(samples) { + const { + cpu, + dockerSystemInfo, + currentLoad, + diskSpace, + fsOpenFiles, + memory, + diskIO, + } = samples.getSystemInfo(); + + // System requirements + const problems = verifySystemRequirements( + { + dockerSystemInfo, + cpu, + memory, + diskSpace, + }, + samples.getDashmateConfig().get('platform.enable'), + { + diskSpace: 5, + }, + ); + + // Current CPU load + const cpuCores = dockerSystemInfo?.NCPU ?? cpu?.cores; + if (cpuCores && currentLoad && (currentLoad.avgLoad / cpuCores) > 0.8) { + const problem = new Problem( + `Average system load ${currentLoad.avgLoad.toFixed(2)} is higher than normal`, + 'Consider upgrading CPUs', + SEVERITY.LOW, + ); + + problems.push(problem); + } + + // Free memory + if (memory && Number.isInteger(memory.free) && memory.free > 0) { + const memoryGb = memory.free / (1024 ** 3); + if (memoryGb < 0.5) { + const problem = new Problem( + `Only ${memoryGb.toFixed(1)}GB RAM is available`, + 'Consider adding RAM', + SEVERITY.LOW, + ); + + problems.push(problem); + } + } + + // Open file descriptors + if (fsOpenFiles?.allocated && fsOpenFiles?.max) { + const available = fsOpenFiles.max - fsOpenFiles.allocated; + if (available < 1000) { + const problem = new Problem( + `${available} available file descriptors left`, + 'Please increase the maximum open file descriptor limit or stop unnecessary processes.', + SEVERITY.HIGH, + ); + + problems.push(problem); + } + } + + // IO wait time + if (diskIO?.tWaitPercent) { + const THRESHOLD = 40; + + const maxDiskIOWaitPercent = Math.max( + diskIO.rWaitPercent, + diskIO.wWaitPercent, + diskIO.tWaitPercent, + ) * 100; + + if (maxDiskIOWaitPercent > THRESHOLD) { + const problem = new Problem( + `Disk IO wait time is ${maxDiskIOWaitPercent.toFixed(0)}%`, + 'Consider upgrading to faster storage', + SEVERITY.LOW, + ); + + problems.push(problem); + } + } + + return problems; + } + + return analyseSystemResources; +} diff --git a/packages/dashmate/src/doctor/analyseSamplesFactory.js b/packages/dashmate/src/doctor/analyseSamplesFactory.js new file mode 100644 index 0000000000..f3aae62e8b --- /dev/null +++ b/packages/dashmate/src/doctor/analyseSamplesFactory.js @@ -0,0 +1,52 @@ +import { Prescription, SEVERITY } from './Prescription.js'; +import Problem from './Problem.js'; + +/** + * @param {analyseSystemResources} analyseSystemResources + * @param {analyseServiceContainers} analyseServiceContainers + * @param {analyseConfig} analyseConfig + * @param {analyseCore} analyseCore + * @param {analysePlatform} analysePlatform + * @return {analyseSamples} + */ +export default function analyseSamplesFactory( + analyseSystemResources, + analyseServiceContainers, + analyseConfig, + analyseCore, + analysePlatform, +) { + /** + * @typedef {Function} analyseSamples + * @param {Samples} samples + * @return {Prescription} + */ + function analyseSamples(samples) { + const problems = []; + + // System resources + problems.push(...analyseSystemResources(samples)); + + // Docker + const dockerError = samples.getStringifiedDockerError(); + if (dockerError) { + problems.push(new Problem( + 'Docker installation error', + dockerError, + SEVERITY.HIGH, + )); + } + + problems.push(...analyseServiceContainers(samples)); + + problems.push(...analyseConfig(samples)); + + problems.push(...analyseCore(samples)); + + problems.push(...analysePlatform(samples)); + + return new Prescription(problems); + } + + return analyseSamples; +} diff --git a/packages/dashmate/src/doctor/archiveSamples.js b/packages/dashmate/src/doctor/archiveSamples.js new file mode 100644 index 0000000000..4f02eb49d8 --- /dev/null +++ b/packages/dashmate/src/doctor/archiveSamples.js @@ -0,0 +1,64 @@ +import os from 'os'; +import path from 'path'; +import fs from 'fs'; +import { create } from 'tar'; + +function writeSampleFile(archiveDir, service, filename, data) { + if (data === undefined || data === null) { + return; + } + + const serviceDir = path.join(archiveDir, service ?? ''); + + let buffer; + let filetype; + + const dataType = typeof data; + + if (dataType === 'string') { + buffer = data; + filetype = '.txt'; + } else { + buffer = JSON.stringify(data, null, 2); + filetype = '.json'; + } + + if (!fs.existsSync(serviceDir)) { + fs.mkdirSync(serviceDir); + } + + fs.writeFileSync(path.join(serviceDir, `${filename}${filetype}`), buffer, 'utf8'); +} + +/** + * @param {Samples} samples + * @param {string} folderPath + */ +export default async function archiveSamples(samples, folderPath) { + const tempDir = os.tmpdir(); + const archiveName = `dashmate-report-${samples.date.toISOString()}`; + const archiveDir = path.join(tempDir, archiveName); + + writeSampleFile(archiveDir, null, 'date', samples.date.toISOString()); + writeSampleFile(archiveDir, null, 'systemInfo', samples.getSystemInfo()); + writeSampleFile(archiveDir, null, 'dockerError', samples.getStringifiedDockerError()); + writeSampleFile(archiveDir, null, 'dashmateConfig', samples.getDashmateConfig()); + writeSampleFile(archiveDir, null, 'dashmateVersion', samples.getDashmateVersion()); + + for (const [serviceName, service] of Object.entries(samples.getServices())) { + for (const [key, data] of Object.entries(service)) { + if (data !== undefined && data !== null) { + writeSampleFile(archiveDir, serviceName, key, data); + } + } + } + + await create( + { + cwd: archiveDir, + gzip: true, + file: path.join(folderPath, `${archiveName}.tar.gz`), + }, + ['.'], + ); +} diff --git a/packages/dashmate/src/doctor/report.js b/packages/dashmate/src/doctor/report.js deleted file mode 100644 index 45f9e61a64..0000000000 --- a/packages/dashmate/src/doctor/report.js +++ /dev/null @@ -1,91 +0,0 @@ -import os from 'os'; -import path from 'path'; -import fs from 'fs'; -import { create } from 'tar'; - -export default class Report { - date; - - #systemInfo = {}; - - #dashmateVersion = null; - - #dashmateConfig = null; - - #services = {}; - - constructor() { - this.date = new Date(); - } - - setSystemInfo(systemInfo) { - this.#systemInfo = systemInfo; - } - - setDashmateVersion(version) { - this.#dashmateVersion = version; - } - - setDashmateConfig(config) { - this.#dashmateConfig = config; - } - - setServiceInfo(service, key, data) { - this.#services[service] = { - ...(this.#services[service] ?? {}), - [key]: data, - }; - } - - #writeReportFile(reportDir, service, filename, data) { - const serviceDir = path.join(reportDir, service ?? ''); - - let buffer; - let filetype; - - const dataType = typeof data; - - if (dataType === 'string') { - buffer = data; - filetype = '.txt'; - } else { - buffer = JSON.stringify(data, null, 2); - filetype = '.json'; - } - - if (!fs.existsSync(serviceDir)) { - fs.mkdirSync(serviceDir); - } - - fs.writeFileSync(path.join(serviceDir, `${filename}${filetype}`), buffer, 'utf8'); - } - - async archive(folderPath) { - const tempDir = os.tmpdir(); - const reportName = `dashmate-report-${this.date.toISOString()}`; - const reportDir = path.join(tempDir, reportName); - - this.#writeReportFile(reportDir, null, 'systemInfo', this.#systemInfo); - this.#writeReportFile(reportDir, null, 'dashmateConfig', this.#dashmateConfig); - this.#writeReportFile(reportDir, null, 'dashmateVersion', this.#dashmateVersion); - - for (const service of Object.keys(this.#services)) { - for (const dataKey of Object.keys(this.#services[service])) { - const data = this.#services[service][dataKey]; - - if (data !== undefined && data !== null) { - this.#writeReportFile(reportDir, service, dataKey, data); - } - } - } - - await create( - { - cwd: reportDir, - gzip: false, - file: path.join(folderPath, `${reportName}.tar`), - }, - ['.'], - ); - } -} diff --git a/packages/dashmate/src/doctor/unarchiveSamplesFactory.js b/packages/dashmate/src/doctor/unarchiveSamplesFactory.js new file mode 100644 index 0000000000..1eb53c4b30 --- /dev/null +++ b/packages/dashmate/src/doctor/unarchiveSamplesFactory.js @@ -0,0 +1,115 @@ +import os from 'os'; +import path from 'path'; +import fs from 'fs'; +import { extract } from 'tar'; +import Samples from './Samples.js'; +import Config from '../config/Config.js'; + +function readSampleFile(filePath) { + const data = fs.readFileSync(filePath, 'utf8'); + const ext = path.extname(filePath); + + if (ext === '.json') { + return JSON.parse(data); + } + + return data; +} + +/** + * @param {getServiceList} getServiceList + * @returns {unarchiveSamples} + */ +export default function unarchiveSamplesFactory(getServiceList) { + /** + * @typedef {Function} unarchiveSamples + * @param {string} archiveFilePath + * @returns {Promise} + */ + async function unarchiveSamples(archiveFilePath) { + if (!fs.existsSync(archiveFilePath)) { + throw new Error(`Archive file with logged data not found: ${archiveFilePath}`); + } + + const samples = new Samples(); + + const tempDir = os.tmpdir(); + const archiveFileName = path.basename(archiveFilePath, '.tar.gz'); + const extractDir = path.join(tempDir, archiveFileName); + fs.mkdirSync(extractDir, { recursive: true }); + + await extract({ + file: archiveFilePath, + cwd: extractDir, + }); + + if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.debug(`Extracted logged data to: ${extractDir}`); + } + + const dateFilePath = path.join(extractDir, 'date.txt'); + if (fs.existsSync(dateFilePath)) { + samples.date = readSampleFile(dateFilePath); + } + + const systemInfoFilePath = path.join(extractDir, 'systemInfo.json'); + if (fs.existsSync(systemInfoFilePath)) { + samples.setSystemInfo(readSampleFile(systemInfoFilePath)); + } + + const dockerErrorFilePath = path.join(extractDir, 'dockerError.txt'); + if (fs.existsSync(dockerErrorFilePath)) { + samples.setStringifiedDockerError(readSampleFile(dockerErrorFilePath)); + } + + const dashmateConfigFilePath = path.join(extractDir, 'dashmateConfig.json'); + if (fs.existsSync(dashmateConfigFilePath)) { + const configProperties = readSampleFile(dashmateConfigFilePath); + if (configProperties?.options) { + const config = new Config(configProperties.name, configProperties.options); + samples.setDashmateConfig(config); + } + } + + const dashmateVersionFilePath = path.join(extractDir, 'dashmateVersion.txt'); + if (fs.existsSync(dashmateVersionFilePath)) { + samples.setDashmateVersion(readSampleFile(dashmateVersionFilePath)); + } + + const serviceNames = getServiceList(samples.getDashmateConfig()) + .map((service) => service.name); + + for (const serviceName of serviceNames) { + const serviceDir = path.join(extractDir, serviceName); + + if (!fs.statSync(serviceDir) + .isDirectory()) { + continue; + } + + const files = fs.readdirSync(serviceDir); + + for (const file of files) { + const filePath = path.join(serviceDir, file); + + const ext = path.extname(file); + if (ext !== '.txt' && ext !== '.json' && !fs.statSync(filePath) + .isDirectory()) { + continue; + } + + const data = readSampleFile(filePath); + const key = path.basename(file, ext); + samples.setServiceInfo(serviceName, key, data); + } + } + + if (!process.env.DEBUG) { + fs.rmSync(extractDir, { recursive: true }); + } + + return samples; + } + return unarchiveSamples; +} diff --git a/packages/dashmate/src/doctor/verifySystemRequirementsFactory.js b/packages/dashmate/src/doctor/verifySystemRequirementsFactory.js new file mode 100644 index 0000000000..66f7355d47 --- /dev/null +++ b/packages/dashmate/src/doctor/verifySystemRequirementsFactory.js @@ -0,0 +1,130 @@ +import { SEVERITY } from './Prescription.js'; +import Problem from './Problem.js'; + +/** + * @return {verifySystemRequirements} + */ +export default function verifySystemRequirementsFactory() { + /** + * @typedef {Function} verifySystemRequirements + * @param {Object} systemInfo + * @param {Object} systemInfo.dockerSystemInfo + * @param {Object} systemInfo.cpu + * @param {Object} systemInfo.memory + * @param {Object} systemInfo.diskSpace + * @param {boolean} isHP + * @param {Object} [overrideRequirements] + * @param {Number} [overrideRequirements.diskSpace] + * @returns {Problem[]} + */ + function verifySystemRequirements( + { + dockerSystemInfo, + cpu, + memory, + diskSpace, + }, + isHP, + overrideRequirements = {}, + ) { + const MINIMUM_CPU_CORES = isHP ? 4 : 2; + const MINIMUM_CPU_FREQUENCY = 2.4; // GHz + const MINIMUM_RAM = isHP ? 8 : 4; // GB + const MINIMUM_DISK_SPACE = overrideRequirements.diskSpace ?? (isHP ? 200 : 100); // GB + + const problems = []; + + // CPU cores + const cpuCores = dockerSystemInfo?.NCPU ?? cpu?.cores; + + if (Number.isInteger(cpuCores)) { + if (cpuCores < MINIMUM_CPU_CORES) { + const problem = new Problem( + `${cpuCores} CPU cores detected. At least ${MINIMUM_CPU_CORES} are required`, + `Consider upgrading CPUs to make sure the node can provide timely responses +for required network services and avoid Proof-of-Service bans`, + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } else if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn('Can\'t get CPU core information'); + } + + // Memory + const totalMemory = dockerSystemInfo?.MemTotal ?? memory?.total; + + if (Number.isInteger(totalMemory)) { + const totalMemoryGb = totalMemory / (1024 ** 3); // Convert to GB + + if (totalMemoryGb < MINIMUM_RAM) { + const problem = new Problem( + `${totalMemoryGb.toFixed(2)}GB RAM detected. At least ${MINIMUM_RAM}GB is required`, + `Consider upgrading RAM to make sure the node can provide timely responses +for required network services and avoid Proof-of-Service bans`, + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } else if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn('Can\'t get memory information'); + } + + // CPU speed + if (cpu && Number.isFinite(cpu.speed) && cpu.speed !== 0) { + if (cpu.speed < MINIMUM_CPU_FREQUENCY) { + const problem = new Problem( + `${cpu.speed.toFixed(1)}GHz CPU frequency detected. At least ${MINIMUM_CPU_FREQUENCY}GHz is required`, + `Consider upgrading CPUs to make sure the node can provide timely responses +for required network services and avoid Proof-of-Service bans`, + SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } else if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn('Can\'t get CPU frequency'); + } + + // Check swap information + if (memory && Number.isInteger(memory.swaptotal)) { + const swapTotalGb = (memory.swaptotal / (1024 ** 3)); // Convert bytes to GB + + if (swapTotalGb < 2) { + const problem = new Problem( + `Swap space is ${swapTotalGb.toFixed(2)}GB. 2GB is recommended`, + `Consider enabling SWAP to make sure the node can provide timely responses +for required network services and avoid Proof-of-Service bans`, + SEVERITY.LOW, + ); + + problems.push(problem); + } + } + + // Get disk usage info + if (diskSpace) { + const availableDiskSpace = diskSpace.available / (1024 ** 3); // Convert to GB + + if (availableDiskSpace < MINIMUM_DISK_SPACE) { + const problem = new Problem( + `${availableDiskSpace.toFixed(2)}GB of available disk space detected. At least ${MINIMUM_DISK_SPACE}GB is required`, + `Consider increasing disk space to make sure the node can provide timely responses +for required network services and avoid Proof-of-Service bans`, + MINIMUM_DISK_SPACE - availableDiskSpace < 5 ? SEVERITY.HIGH : SEVERITY.MEDIUM, + ); + + problems.push(problem); + } + } + + return problems; + } + + return verifySystemRequirements; +} diff --git a/packages/dashmate/src/listr/prompts/validators/validateSslCertificateFiles.js b/packages/dashmate/src/listr/prompts/validators/validateSslCertificateFiles.js new file mode 100644 index 0000000000..8c23a84069 --- /dev/null +++ b/packages/dashmate/src/listr/prompts/validators/validateSslCertificateFiles.js @@ -0,0 +1,33 @@ +import crypto from 'node:crypto'; +import fs from 'node:fs'; + +/** + * @param {string} chainFilePath + * @param {string} privateFilePath + * @return {boolean} + */ +export default function validateSslCertificateFiles(chainFilePath, privateFilePath) { + const bundlePem = fs.readFileSync(chainFilePath, 'utf8'); + const privateKeyPem = fs.readFileSync(privateFilePath, 'utf8'); + + // Step 2: Create a signature using the private key + const data = 'This is a test message'; + const sign = crypto.createSign('SHA256'); + sign.update(data); + sign.end(); + + const signature = sign.sign(privateKeyPem, 'hex'); + + // Verify the signature using the public key from the certificate + const verify = crypto.createVerify('SHA256'); + verify.update(data); + verify.end(); + + // Extract the public key from the first certificate in the bundle + const certificate = crypto.createPublicKey({ + key: bundlePem, + format: 'pem', + }); + + return verify.verify(certificate, signature, 'hex'); +} diff --git a/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js new file mode 100644 index 0000000000..a3be754509 --- /dev/null +++ b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js @@ -0,0 +1,371 @@ +import fs from 'fs'; +import { Listr } from 'listr2'; +import path from 'path'; +import process from 'process'; +import si from 'systeminformation'; +import obfuscateConfig from '../../../config/obfuscateConfig.js'; +import { DASHMATE_VERSION } from '../../../constants.js'; +import Certificate from '../../../ssl/zerossl/Certificate.js'; +import providers from '../../../status/providers.js'; +import hideString from '../../../util/hideString.js'; +import obfuscateObjectRecursive from '../../../util/obfuscateObjectRecursive.js'; +import validateSslCertificateFiles from '../../prompts/validators/validateSslCertificateFiles.js'; + +/** + * + * @param {string} url + * @return {Promise} + */ +async function fetchTextOrError(url) { + try { + const response = await fetch(url); + + return await response.text(); + } catch (e) { + return e.toString(); + } +} + +/** + * @param {DockerCompose} dockerCompose + * @param {createRpcClient} createRpcClient + * @param {getConnectionHost} getConnectionHost + * @param {createTenderdashRpcClient} createTenderdashRpcClient + * @param {getServiceList} getServiceList + * @param {getOperatingSystemInfo} getOperatingSystemInfo + * @param {HomeDir} homeDir + * @param {validateZeroSslCertificate} validateZeroSslCertificate + * @return {collectSamplesTask} + */ +export default function collectSamplesTaskFactory( + dockerCompose, + createRpcClient, + getConnectionHost, + createTenderdashRpcClient, + getServiceList, + getOperatingSystemInfo, + homeDir, + validateZeroSslCertificate, +) { + /** + * @typedef {function} collectSamplesTask + * @param config + * @return {Listr} + */ + function collectSamplesTask(config) { + return new Listr( + [ + { + title: 'System information', + task: async (ctx) => { + // Sample docker installation errors + try { + await dockerCompose.throwErrorIfNotInstalled(); + } catch (e) { + ctx.samples.setDockerError(e); + } + + // Operating system info + const osInfo = await getOperatingSystemInfo(); + + ctx.samples.setSystemInfo(osInfo); + }, + }, + { + title: 'Configuration', + task: async (ctx) => { + ctx.samples.setDashmateVersion(DASHMATE_VERSION); + ctx.samples.setDashmateConfig(obfuscateConfig(config)); + + return new Listr([ + { + enabled: () => config.get('platform.enable'), + title: 'Gateway SSL certificates', + task: async () => { + if (!config.get('platform.gateway.ssl.enabled')) { + ctx.samples.setServiceInfo('gateway', 'ssl', { + error: 'disabled', + }); + + return; + } + + switch (config.get('platform.gateway.ssl.provider')) { + case 'self-signed': { + ctx.samples.setServiceInfo('gateway', 'ssl', { + error: 'self-signed', + }); + + return; + } + case 'zerossl': { + const { + error, + data, + } = validateZeroSslCertificate(config, Certificate.EXPIRATION_LIMIT_DAYS); + + obfuscateObjectRecursive(data, (_field, value) => (typeof value === 'string' ? value.replaceAll( + process.env.USER, + hideString(process.env.USER), + ) : value)); + + ctx.samples.setServiceInfo('gateway', 'ssl', { + error, + data, + }); + + return; + } + case 'file': { + // SSL certificate + const certificatesDir = homeDir.joinPath( + config.getName(), + 'platform', + 'gateway', + 'ssl', + ); + + const chainFilePath = path.join(certificatesDir, 'bundle.crt'); + const privateFilePath = path.join(certificatesDir, 'private.key'); + + const data = { + chainFilePath, + privateFilePath, + }; + + obfuscateObjectRecursive(data, (_field, value) => (typeof value === 'string' ? value.replaceAll( + process.env.USER, + hideString(process.env.USER), + ) : value)); + + if (!fs.existsSync(chainFilePath) || !fs.existsSync(privateFilePath)) { + ctx.samples.setServiceInfo('gateway', 'ssl', { + error: 'not-exist', + data, + }); + + return; + } + + const isValid = validateSslCertificateFiles(chainFilePath, privateFilePath); + + if (!isValid) { + ctx.samples.setServiceInfo('gateway', 'ssl', { + error: 'not-valid', + data, + }); + } + + return; + } + default: + throw new Error('Unknown SSL provider'); + } + }, + }, + { + title: 'Core P2P port', + task: async () => { + const port = config.get('core.p2p.port'); + const response = await providers.mnowatch.checkPortStatus(port, config.get('externalIp')); + + ctx.samples.setServiceInfo('core', 'p2pPort', response); + }, + }, + { + title: 'Gateway HTTP port', + enabled: () => config.get('platform.enable'), + task: async () => { + const port = config.get('platform.gateway.listeners.dapiAndDrive.port'); + const response = await providers.mnowatch.checkPortStatus(port, config.get('externalIp')); + + ctx.samples.setServiceInfo('gateway', 'httpPort', response); + }, + }, + { + title: 'Tenderdash P2P port', + task: async () => { + const port = config.get('platform.drive.tenderdash.p2p.port'); + const response = await providers.mnowatch.checkPortStatus(port, config.get('externalIp')); + + ctx.samples.setServiceInfo('drive_tenderdash', 'p2pPort', response); + }, + }, + ]); + }, + }, + { + title: 'Core status', + task: async (ctx) => { + const rpcClient = createRpcClient({ + port: config.get('core.rpc.port'), + user: 'dashmate', + pass: config.get('core.rpc.users.dashmate.password'), + host: await getConnectionHost(config, 'core', 'core.rpc.host'), + }); + + const coreCalls = [ + rpcClient.getBestChainLock(), + rpcClient.quorum('listextended'), + rpcClient.getBlockchainInfo(), + rpcClient.getPeerInfo(), + rpcClient.mnsync('status'), + ]; + + if (config.get('core.masternode.enable')) { + coreCalls.push(rpcClient.masternode('status')); + } + + const [ + getBestChainLock, + quorums, + getBlockchainInfo, + getPeerInfo, + masternodeStatus, + masternodeSyncStatus, + ] = (await Promise.allSettled(coreCalls)) + .map((e) => e.value?.result || e.reason); + + ctx.samples.setServiceInfo('core', 'bestChainLock', getBestChainLock); + ctx.samples.setServiceInfo('core', 'quorums', quorums); + ctx.samples.setServiceInfo('core', 'blockchainInfo', getBlockchainInfo); + ctx.samples.setServiceInfo('core', 'peerInfo', getPeerInfo); + ctx.samples.setServiceInfo('core', 'masternodeStatus', masternodeStatus); + ctx.samples.setServiceInfo('core', 'masternodeSyncStatus', masternodeSyncStatus); + }, + }, + { + title: 'Tenderdash status', + enabled: () => config.get('platform.enable'), + task: async (ctx) => { + const tenderdashRPCClient = createTenderdashRpcClient({ + host: config.get('platform.drive.tenderdash.rpc.host'), + port: config.get('platform.drive.tenderdash.rpc.port'), + }); + + // Tenderdash requires to pass all params, so we use basic fetch + async function fetchValidators() { + const url = `http://${config.get('platform.drive.tenderdash.rpc.host')}:${config.get('platform.drive.tenderdash.rpc.port')}/validators?request_quorum_info=true`; + const response = await fetch(url, 'GET'); + return response.json(); + } + + const [ + status, + genesis, + peers, + abciInfo, + consensusState, + validators, + ] = await Promise.allSettled([ + tenderdashRPCClient.request('status', []), + tenderdashRPCClient.request('genesis', []), + tenderdashRPCClient.request('net_info', []), + tenderdashRPCClient.request('abci_info', []), + tenderdashRPCClient.request('dump_consensus_state', []), + fetchValidators(), + ]); + + ctx.samples.setServiceInfo('drive_tenderdash', 'status', status); + ctx.samples.setServiceInfo('drive_tenderdash', 'validators', validators); + ctx.samples.setServiceInfo('drive_tenderdash', 'genesis', genesis); + ctx.samples.setServiceInfo('drive_tenderdash', 'peers', peers); + ctx.samples.setServiceInfo('drive_tenderdash', 'abciInfo', abciInfo); + ctx.samples.setServiceInfo('drive_tenderdash', 'consensusState', consensusState); + }, + }, + { + title: 'Metrics', + enabled: () => config.get('platform.enable'), + task: async (ctx, task) => { + if (config.get('platform.drive.tenderdash.metrics.enabled')) { + // eslint-disable-next-line no-param-reassign + task.output = 'Reading Tenderdash metrics'; + + const url = `http://${config.get('platform.drive.tenderdash.rpc.host')}:${config.get('platform.drive.tenderdash.rpc.port')}/metrics`; + + const result = fetchTextOrError(url); + + ctx.samples.setServiceInfo('drive_tenderdash', 'metrics', result); + } + + if (config.get('platform.drive.abci.metrics.enabled')) { + // eslint-disable-next-line no-param-reassign + task.output = 'Reading Drive metrics'; + + const url = `http://${config.get('platform.drive.abci.rpc.host')}:${config.get('platform.drive.abci.rpc.port')}/metrics`; + + const result = fetchTextOrError(url); + + ctx.samples.setServiceInfo('drive_abci', 'metrics', result); + } + + if (config.get('platform.gateway.metrics.enabled')) { + // eslint-disable-next-line no-param-reassign + task.output = 'Reading Gateway metrics'; + + const url = `http://${config.get('platform.gateway.metrics.host')}:${config.get('platform.gateway.metrics.port')}/metrics`; + + const result = fetchTextOrError(url); + + ctx.samples.setServiceInfo('gateway', 'metrics', result); + } + }, + }, + { + title: 'Docker containers info', + task: async (ctx) => { + const services = await getServiceList(config); + + await Promise.all( + services.map(async (service) => { + const [inspect, logs] = (await Promise.allSettled([ + dockerCompose.inspectService(config, service.name), + dockerCompose.logs(config, [service.name], { tail: 300000 }), + ])).map((e) => e.value || e.reason); + + const containerId = inspect?.Id; + let dockerStats; + if (containerId) { + dockerStats = await si.dockerContainerStats(containerId); + } + + if (logs?.out) { + // Hide username & external ip from logs + logs.out = logs.out.replaceAll( + process.env.USER, + hideString(process.env.USER), + ); + } + + if (logs?.err) { + logs.err = logs.err.replaceAll( + process.env.USER, + hideString(process.env.USER), + ); + } + + // Hide username & external ip from inspect + obfuscateObjectRecursive(inspect, (_field, value) => ( + typeof value === 'string' + ? value.replaceAll( + process.env.USER, + hideString(process.env.USER), + ) + : value + )); + + ctx.samples.setServiceInfo(service.name, 'stdOut', logs?.out); + ctx.samples.setServiceInfo(service.name, 'stdErr', logs?.err); + ctx.samples.setServiceInfo(service.name, 'dockerInspect', inspect); + ctx.samples.setServiceInfo(service.name, 'dockerStats', dockerStats); + }), + ); + }, + }, + ], + ); + } + + return collectSamplesTask; +} diff --git a/packages/dashmate/src/listr/tasks/setup/regular/configureSSLCertificateTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/regular/configureSSLCertificateTaskFactory.js index 62c9f154d0..50b5f5f050 100644 --- a/packages/dashmate/src/listr/tasks/setup/regular/configureSSLCertificateTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/regular/configureSSLCertificateTaskFactory.js @@ -1,11 +1,14 @@ import fs from 'fs'; import { Listr } from 'listr2'; +import validateSslCertificateFiles from '../../../prompts/validators/validateSslCertificateFiles.js'; + import { PRESET_MAINNET, SSL_PROVIDERS, NODE_TYPE_FULLNODE, } from '../../../../constants.js'; + import validateFileExists from '../../../prompts/validators/validateFileExists.js'; import listCertificates from '../../../../ssl/zerossl/listCertificates.js'; @@ -35,6 +38,10 @@ export default function configureSSLCertificateTaskFactory( if (!ctx.fileCertificateProviderForm) { form = await task.prompt({ type: 'form', + header: ` To configure SSL certificates, you need to provide a certificate chain file + and a private key file. + The certificate chain file should contain your server certificate at the top and + then intermediate/root certificates if present.\n`, message: 'Specify paths to your certificate files', choices: [ { @@ -61,6 +68,12 @@ export default function configureSSLCertificateTaskFactory( return 'the same path for both files'; } + const isValid = validateSslCertificateFiles(chainFilePath, privateFilePath); + + if (!isValid) { + return 'The certificate and private key do not match'; + } + return true; }, }); diff --git a/packages/dashmate/src/listr/tasks/setup/regular/verifySystemRequirementsTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/regular/verifySystemRequirementsTaskFactory.js index 3e142af416..7e97b44511 100644 --- a/packages/dashmate/src/listr/tasks/setup/regular/verifySystemRequirementsTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/regular/verifySystemRequirementsTaskFactory.js @@ -6,12 +6,14 @@ import { Listr } from 'listr2'; * @param {Docker} docker * @param {DockerCompose} dockerCompose * @param {getOperatingSystemInfo} getOperatingSystemInfo + * @param {verifySystemRequirements} verifySystemRequirements * @return {verifySystemRequirementsTask} */ export default function verifySystemRequirementsTaskFactory( docker, dockerCompose, getOperatingSystemInfo, + verifySystemRequirements, ) { /** * @typedef {function} verifySystemRequirementsTask @@ -24,72 +26,9 @@ export default function verifySystemRequirementsTaskFactory( task: async (ctx, task) => { await dockerCompose.throwErrorIfNotInstalled(); - const MINIMUM_CPU_CORES = ctx.isHP ? 4 : 2; - const MINIMUM_CPU_FREQUENCY = 2.4; // GHz - const MINIMUM_RAM = ctx.isHP ? 8 : 4; // GB - const MINIMUM_DISK_SPACE = ctx.isHP ? 200 : 100; // GB + const systemInfo = await getOperatingSystemInfo(); - const warnings = []; - - const { - dockerSystemInfo, cpu, memory, diskSpace, - } = await getOperatingSystemInfo(); - - if (dockerSystemInfo) { - if (Number.isInteger(dockerSystemInfo.NCPU)) { - // Check CPU cores - const cpuCores = dockerSystemInfo.NCPU; - - if (cpuCores < MINIMUM_CPU_CORES) { - warnings.push(`${cpuCores} CPU cores detected. At least ${MINIMUM_CPU_CORES} are required`); - } - } else { - // eslint-disable-next-line no-console - console.warn('Can\'t get NCPU from docker info'); - } - - // Check RAM - if (Number.isInteger(dockerSystemInfo.MemTotal)) { - const memoryGb = dockerSystemInfo.MemTotal / (1024 ** 3); // Convert to GB - - if (memoryGb < MINIMUM_RAM) { - warnings.push(`${memoryGb.toFixed(2)}GB RAM detected. At least ${MINIMUM_RAM}GB is required`); - } - } else { - // eslint-disable-next-line no-console - console.warn('Can\'t get MemTotal from docker info'); - } - } - - // Check CPU frequency - if (cpu) { - if (cpu.speed === 0) { - if (process.env.DEBUG) { - // eslint-disable-next-line no-console - console.warn('Can\'t get CPU frequency'); - } - } else if (cpu.speed < MINIMUM_CPU_FREQUENCY) { - warnings.push(`${cpu.speed.toFixed(1)}GHz CPU frequency detected. At least ${MINIMUM_CPU_FREQUENCY}GHz is required`); - } - } - - // Check swap information - if (memory) { - const swapTotalGb = (memory.swaptotal / (1024 ** 3)); // Convert bytes to GB - - if (swapTotalGb < 2) { - warnings.push(`Swap space is ${swapTotalGb.toFixed(2)}GB. 2GB is recommended`); - } - } - - // Get disk usage info - if (diskSpace) { - const availableDiskSpace = diskSpace.available / (1024 ** 3); // Convert to GB - - if (availableDiskSpace < MINIMUM_DISK_SPACE) { - warnings.push(`${availableDiskSpace.toFixed(2)}GB available disk space detected. At least ${MINIMUM_DISK_SPACE}GB is required`); - } - } + const problems = verifySystemRequirements(systemInfo, ctx.isHP); let message = ''; if (ctx.isHP) { @@ -106,12 +45,13 @@ export default function verifySystemRequirementsTaskFactory( Upgrading system resources is recommended before proceeding.`; } - if (warnings.length > 0) { - const warningsText = warnings.map((warning) => ` - ${warning}`).join('\n'); + if (problems.length > 0) { + const problemsText = problems + .map((p) => ` - ${p.getDescription()}`).join('\n'); const header = chalk` Minimum requirements have not been met: -{red ${warningsText}} +{red ${problemsText}} ${message}\n`; diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index 5338eb4178..242f65582a 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -139,11 +139,8 @@ export default function setupLocalPresetTaskFactory( config.set('docker.network.subnet', subnet.join('.')); // Setup Core debug logs - const coreLogFilePath = homeDir.joinPath('logs', config.getName(), 'core.log'); - config.set('core.log.file.path', coreLogFilePath); - if (ctx.debugLogs) { - config.set('core.log.file.categories', ['all']); + config.set('core.log.debug.enabled', true); } // Although not all nodes are miners, all nodes should be aware of diff --git a/packages/dashmate/src/listr/tasks/ssl/zerossl/obtainZeroSSLCertificateTaskFactory.js b/packages/dashmate/src/listr/tasks/ssl/zerossl/obtainZeroSSLCertificateTaskFactory.js index 12718ad4de..ca679233d0 100644 --- a/packages/dashmate/src/listr/tasks/ssl/zerossl/obtainZeroSSLCertificateTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/ssl/zerossl/obtainZeroSSLCertificateTaskFactory.js @@ -1,9 +1,10 @@ import { Listr } from 'listr2'; import chalk from 'chalk'; -import path from 'path'; import fs from 'fs'; +import lodash from 'lodash'; import wait from '../../../../util/wait.js'; +import { ERRORS } from '../../../../ssl/zerossl/validateZeroSslCertificateFactory.js'; /** * @param {generateCsr} generateCsr @@ -16,6 +17,7 @@ import wait from '../../../../util/wait.js'; * @param {saveCertificateTask} saveCertificateTask * @param {VerificationServer} verificationServer * @param {HomeDir} homeDir + * @param {validateZeroSslCertificate} validateZeroSslCertificate * @return {obtainZeroSSLCertificateTask} */ export default function obtainZeroSSLCertificateTaskFactory( @@ -29,6 +31,7 @@ export default function obtainZeroSSLCertificateTaskFactory( saveCertificateTask, verificationServer, homeDir, + validateZeroSslCertificate, ) { /** * @typedef {obtainZeroSSLCertificateTask} @@ -36,124 +39,80 @@ export default function obtainZeroSSLCertificateTaskFactory( * @return {Promise} */ async function obtainZeroSSLCertificateTask(config) { - // Make sure that required config options are set - const apiKey = config.get('platform.gateway.ssl.providerConfigs.zerossl.apiKey', true); - const externalIp = config.get('externalIp', true); - - const sslConfigDir = homeDir.joinPath(config.getName(), 'platform', 'gateway', 'ssl'); - const csrFilePath = path.join(sslConfigDir, 'csr.pem'); - const privateKeyFilePath = path.join(sslConfigDir, 'private.key'); - const bundleFilePath = path.join(sslConfigDir, 'bundle.crt'); - - // Ensure we have config dir created - fs.mkdirSync(sslConfigDir, { recursive: true }); - return new Listr([ { title: 'Check if certificate already exists and not expiring soon', // Skips the check if force flag is set skip: (ctx) => ctx.force, task: async (ctx, task) => { - const certificateId = await config.get('platform.gateway.ssl.providerConfigs.zerossl.id'); - - if (!certificateId) { - // Certificate is not configured - - // eslint-disable-next-line no-param-reassign - task.output = 'Certificate is not configured yet, creating a new one'; - - return; - } - - // Certificate is already configured - - // Check if certificate files are present - ctx.isCrtFilePresent = fs.existsSync(csrFilePath); - - ctx.isPrivateKeyFilePresent = fs.existsSync(privateKeyFilePath); + const { error, data } = await validateZeroSslCertificate(config, ctx.expirationDays); - ctx.isBundleFilePresent = fs.existsSync(bundleFilePath); - - // This function will throw an error if certificate with specified ID is not present - const certificate = await getCertificate(apiKey, certificateId); - - // If certificate exists but private key does not, then we can't setup TLS connection - // In this case we need to regenerate certificate or put back this private key - if (!ctx.isPrivateKeyFilePresent) { - throw new Error(`Certificate private key file not found in ${privateKeyFilePath}.\n` - + 'Please regenerate the certificate using the the obtain' - + ' command with the --force flag, and revoke the previous certificate in' - + ' the ZeroSSL dashboard'); - } - - // We need to make sure that external IP and certificate IP match - if (certificate.common_name !== externalIp) { - throw new Error(`Certificate IPe ${certificate.common_name} does not match external IP ${externalIp}.\n` - + 'Please change the external IP in config or regenerate the certificate ' - + ' using the obtain command with the --force flag, and revoke the previous' - + ' certificate in the ZeroSSL dashboard'); - } - - if (!certificate.isExpiredInDays(ctx.expirationDays)) { - // Certificate is not going to expire soon - - if (certificate.status === 'issued') { - // Certificate is valid, so we might need only to download certificate bundle - ctx.certificate = certificate; - - // eslint-disable-next-line no-param-reassign - task.output = `Certificate is valid and expires at ${certificate.expires}`; - } else if (['pending_validation', 'draft'].includes(certificate.status)) { - // Certificate is already created, so we just need to pass validation - // and download certificate file - ctx.certificate = certificate; + lodash.merge(ctx, data); - // We need to download new certificate bundle - ctx.isBundleFilePresent = false; + // Ensure we have config dir created + fs.mkdirSync(ctx.sslConfigDir, { recursive: true }); + switch (error) { + case undefined: // eslint-disable-next-line no-param-reassign - task.output = 'Certificate was already created, but not validated yet.'; - } else { - // Certificate is not valid, so we need to re-create it - - // We need to download certificate bundle - ctx.isBundleFilePresent = false; - - if (!ctx.isCrtFilePresent) { - throw new Error(`Certificate request file not found in ${csrFilePath}.\n` - + 'To create a new certificate, please use the obtain' - + ' command with the --force flag and revoke the previous certificate' - + ' in the ZeroSSL dashboard'); - } - - ctx.csr = fs.readFileSync(csrFilePath, 'utf8'); - + task.output = `Certificate is valid and expires at ${ctx.certificate.expires}`; + break; + case ERRORS.API_KEY_IS_NOT_SET: + throw new Error('ZeroSSL API key is not set. Please set it in the config file'); + case ERRORS.EXTERNAL_IP_IS_NOT_SET: + throw new Error('External IP is not set. Please set it in the config file'); + case ERRORS.CERTIFICATE_ID_IS_NOT_SET: // eslint-disable-next-line no-param-reassign - task.output = 'Certificate is not valid. Create a new one'; - } - } else { - // Certificate is going to expire soon, we need to obtain a new one + task.output = 'Certificate is not configured yet, creating a new one'; - // We need to download new certificate bundle - ctx.isBundleFilePresent = false; - - if (!ctx.isCrtFilePresent) { - throw new Error(`Certificate request file not found in ${csrFilePath}.\n` + // We need to create a new certificate + ctx.certificate = null; + break; + case ERRORS.PRIVATE_KEY_IS_NOT_PRESENT: + // If certificate exists but private key does not, then we can't set up TLS connection + // In this case we need to regenerate certificate or put back this private key + throw new Error(`Certificate private key file not found in ${ctx.privateKeyFilePath}.\n` + + 'Please regenerate the certificate using the obtain' + + ' command with the --force flag and revoke the previous certificate in' + + ' the ZeroSSL dashboard'); + case ERRORS.EXTERNAL_IP_MISMATCH: + throw new Error(`Certificate IPe ${ctx.certificate.common_name} does not match external IP ${ctx.externalIp}.\n` + + 'Please change the external IP in config. Otherwise, regenerate the certificate ' + + ' using the obtain command with the --force flag and revoke the previous' + + ' certificate in the ZeroSSL dashboard'); + case ERRORS.CSR_FILE_IS_NOT_PRESENT: + throw new Error(`Certificate request file not found in ${ctx.csrFilePath}.\n` + 'To renew certificate please use the obtain' + ' command with the --force flag, and revoke the previous certificate in' + ' the ZeroSSL dashboard'); - } + case ERRORS.CERTIFICATE_EXPIRES_SOON: + // eslint-disable-next-line no-param-reassign + task.output = `Certificate exists but expires in less than ${ctx.expirationDays} days at ${ctx.certificate.expires}. Obtain a new one`; - ctx.csr = fs.readFileSync(csrFilePath, 'utf8'); + // We need to create a new certificate + ctx.certificate = null; + break; + case ERRORS.CERTIFICATE_IS_NOT_VALIDATED: + // eslint-disable-next-line no-param-reassign + task.output = 'Certificate was already created, but has not been validated yet.'; + break; + case ERRORS.CERTIFICATE_IS_NOT_VALID: + // eslint-disable-next-line no-param-reassign + task.output = 'Certificate is not valid. Create a new one'; - // eslint-disable-next-line no-param-reassign - task.output = `Certificate exists but expires in less than ${ctx.expirationDays} days at ${certificate.expires}. Obtain a new one`; + // We need to create a new certificate + ctx.certificate = null; + break; + case ERRORS.ZERO_SSL_API_ERROR: + throw ctx.error; + default: + throw new Error(`Unknown error: ${error}`); } }, }, { title: 'Generate a keypair', - enabled: (ctx) => !ctx.isCrtFilePresent, + enabled: (ctx) => !ctx.isCsrFilePresent, task: async (ctx) => { ctx.keyPair = await generateKeyPair(); ctx.privateKeyFile = ctx.keyPair.privateKey; @@ -161,11 +120,11 @@ export default function obtainZeroSSLCertificateTaskFactory( }, { title: 'Generate certificate request', - enabled: (ctx) => !ctx.isCrtFilePresent, + enabled: (ctx) => !ctx.isCsrFilePresent, task: async (ctx) => { ctx.csr = await generateCsr( ctx.keyPair, - externalIp, + ctx.externalIp, ); }, }, @@ -175,8 +134,8 @@ export default function obtainZeroSSLCertificateTaskFactory( task: async (ctx) => { ctx.certificate = await createZeroSSLCertificate( ctx.csr, - externalIp, - apiKey, + ctx.externalIp, + ctx.apiKey, ); config.set('platform.gateway.ssl.enabled', true); @@ -188,7 +147,7 @@ export default function obtainZeroSSLCertificateTaskFactory( title: 'Set up verification server', skip: (ctx) => ctx.certificate && !['pending_validation', 'draft'].includes(ctx.certificate.status), task: async (ctx) => { - const validationResponse = ctx.certificate.validation.other_methods[externalIp]; + const validationResponse = ctx.certificate.validation.other_methods[ctx.externalIp]; await verificationServer.setup( config, @@ -209,14 +168,14 @@ export default function obtainZeroSSLCertificateTaskFactory( let retry; do { try { - await verifyDomain(ctx.certificate.id, apiKey); + await verifyDomain(ctx.certificate.id, ctx.apiKey); } catch (e) { if (ctx.noRetry !== true) { retry = await task.prompt({ type: 'toggle', header: chalk` An error occurred during verification: {red ${e.message}} - Please ensure that port 80 on your public IP address ${externalIp} is open + Please ensure that port 80 on your public IP address ${ctx.externalIp} is open for incoming HTTP connections. You may need to configure your firewall to ensure this port is accessible from the public internet. If you are using Network Address Translation (NAT), please enable port forwarding for port 80 @@ -245,7 +204,7 @@ export default function obtainZeroSSLCertificateTaskFactory( try { ctx.certificateFile = await downloadCertificate( ctx.certificate.id, - apiKey, + ctx.apiKey, ); // eslint-disable-next-line no-param-reassign @@ -271,30 +230,30 @@ export default function obtainZeroSSLCertificateTaskFactory( title: 'Save certificate private key file', enabled: (ctx) => !ctx.isPrivateKeyFilePresent, task: async (ctx, task) => { - fs.writeFileSync(privateKeyFilePath, ctx.privateKeyFile, 'utf8'); + fs.writeFileSync(ctx.privateKeyFilePath, ctx.privateKeyFile, 'utf8'); // eslint-disable-next-line no-param-reassign - task.output = privateKeyFilePath; + task.output = ctx.privateKeyFilePath; }, }, { title: 'Save certificate request file', - enabled: (ctx) => !ctx.isCrtFilePresent, + enabled: (ctx) => !ctx.isCsrFilePresent, task: async (ctx, task) => { - fs.writeFileSync(csrFilePath, ctx.csr, 'utf8'); + fs.writeFileSync(ctx.csrFilePath, ctx.csr, 'utf8'); // eslint-disable-next-line no-param-reassign - task.output = csrFilePath; + task.output = ctx.csrFilePath; }, }, { title: 'Save certificate file', skip: (ctx) => ctx.isBundleFilePresent, task: async (ctx, task) => { - fs.writeFileSync(bundleFilePath, ctx.certificateFile, 'utf8'); + fs.writeFileSync(ctx.bundleFilePath, ctx.certificateFile, 'utf8'); // eslint-disable-next-line no-param-reassign - task.output = bundleFilePath; + task.output = ctx.bundleFilePath; }, }, { diff --git a/packages/dashmate/src/listr/tasks/startNodeTaskFactory.js b/packages/dashmate/src/listr/tasks/startNodeTaskFactory.js index b364bcf224..06bff9e7ed 100644 --- a/packages/dashmate/src/listr/tasks/startNodeTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/startNodeTaskFactory.js @@ -35,8 +35,10 @@ export default function startNodeTaskFactory( throw new Error(`'core.miner.enable' option only works with local network. Your network is ${config.get('network')}.`); } - const coreLogFilePath = config.get('core.log.file.path'); - ensureFileMountExists(coreLogFilePath, 0o666); + const coreLogFilePath = config.get('core.log.filePath'); + if (coreLogFilePath !== null) { + ensureFileMountExists(coreLogFilePath, 0o666); + } // Check Drive log files are created if (config.get('platform.enable')) { diff --git a/packages/dashmate/src/ssl/zerossl/validateZeroSslCertificateFactory.js b/packages/dashmate/src/ssl/zerossl/validateZeroSslCertificateFactory.js new file mode 100644 index 0000000000..20b221216c --- /dev/null +++ b/packages/dashmate/src/ssl/zerossl/validateZeroSslCertificateFactory.js @@ -0,0 +1,150 @@ +import fs from 'fs'; +import path from 'path'; + +export const ERRORS = { + API_KEY_IS_NOT_SET: 'API_KEY_IS_NOT_SET', + EXTERNAL_IP_IS_NOT_SET: 'EXTERNAL_IP_IS_NOT_SET', + CERTIFICATE_ID_IS_NOT_SET: 'CERTIFICATE_ID_IS_NOT_SET', + PRIVATE_KEY_IS_NOT_PRESENT: 'PRIVATE_KEY_IS_NOT_PRESENT', + EXTERNAL_IP_MISMATCH: 'EXTERNAL_IP_MISMATCH', + CSR_FILE_IS_NOT_PRESENT: 'CSR_FILE_IS_NOT_PRESENT', + CERTIFICATE_EXPIRES_SOON: 'CERTIFICATE_EXPIRES_SOON', + CERTIFICATE_IS_NOT_VALIDATED: 'CERTIFICATE_IS_NOT_VALIDATED', + CERTIFICATE_IS_NOT_VALID: 'CERTIFICATE_IS_NOT_VALID', + ZERO_SSL_API_ERROR: 'ZERO_SSL_API_ERROR', +}; + +/** + * @param {HomeDir} homeDir + * @param {getCertificate} getCertificate + * @return {validateZeroSslCertificate} + */ +export default function validateZeroSslCertificateFactory(homeDir, getCertificate) { + /** + * @typedef {validateZeroSslCertificate} + * @param {Config} config + * @param {number} expirationDays + * @return {Promise<{ [error: String], [data: Object] }>} + */ + async function validateZeroSslCertificate(config, expirationDays) { + const data = {}; + + data.sslConfigDir = homeDir.joinPath(config.getName(), 'platform', 'gateway', 'ssl'); + data.csrFilePath = path.join(data.sslConfigDir, 'csr.pem'); + data.privateKeyFilePath = path.join(data.sslConfigDir, 'private.key'); + data.bundleFilePath = path.join(data.sslConfigDir, 'bundle.crt'); + + data.apiKey = config.get('platform.gateway.ssl.providerConfigs.zerossl.apiKey'); + + if (!data.apiKey) { + return { + error: ERRORS.API_KEY_IS_NOT_SET, + data, + }; + } + + data.externalIp = config.get('externalIp'); + + if (!data.externalIp) { + return { + error: ERRORS.EXTERNAL_IP_IS_NOT_SET, + data, + }; + } + + const certificateId = config.get('platform.gateway.ssl.providerConfigs.zerossl.id'); + + if (!certificateId) { + return { + error: ERRORS.CERTIFICATE_ID_IS_NOT_SET, + data, + }; + } + + // Certificate is already configured + + // Check if certificate files are present + data.isCsrFilePresent = fs.existsSync(data.csrFilePath); + data.isPrivateKeyFilePresent = fs.existsSync(data.privateKeyFilePath); + data.isBundleFilePresent = fs.existsSync(data.bundleFilePath); + + // This function will throw an error if certificate with specified ID is not present + try { + data.certificate = await getCertificate(data.apiKey, certificateId); + } catch (e) { + if (e.code) { + data.error = e; + + return { + error: ERRORS.ZERO_SSL_API_ERROR, + data, + }; + } + + throw e; + } + + data.isExpiresSoon = data.certificate.isExpiredInDays(expirationDays); + + // If certificate exists but private key does not, then we can't setup TLS connection + // In this case we need to regenerate a certificate or put back this private key + if (!data.isPrivateKeyFilePresent) { + return { + error: ERRORS.PRIVATE_KEY_IS_NOT_PRESENT, + data, + }; + } + + // We need to make sure that external IP and certificate IP match + if (data.certificate.common_name !== data.externalIp) { + return { + error: ERRORS.EXTERNAL_IP_MISMATCH, + data, + }; + } + + if (['pending_validation', 'draft'].includes(data.certificate.status)) { + // Certificate is already created, so we just need to pass validation + // and download certificate file + + // We need to download new certificate bundle + data.isBundleFilePresent = false; + + return { + error: ERRORS.CERTIFICATE_IS_NOT_VALIDATED, + data, + }; + } + + if (data.certificate.status !== 'issued' || data.isExpiresSoon) { + // Certificate is going to expire soon, or current certificate is not valid + // we need to obtain a new one + + // We need to download new certificate bundle + data.isBundleFilePresent = false; + + if (!data.isCsrFilePresent) { + return { + error: ERRORS.CSR_FILE_IS_NOT_PRESENT, + data, + }; + } + + data.csr = fs.readFileSync(data.csrFilePath, 'utf8'); + + return { + error: data.isExpiresSoon + ? ERRORS.CERTIFICATE_EXPIRES_SOON + : ERRORS.CERTIFICATE_IS_NOT_VALID, + data, + }; + } + + // Certificate is valid, so we might need only to download certificate bundle + return { + data, + }; + } + + return validateZeroSslCertificate; +} diff --git a/packages/dashmate/src/status/providers.js b/packages/dashmate/src/status/providers.js index a3a08b94b6..46c491c920 100644 --- a/packages/dashmate/src/status/providers.js +++ b/packages/dashmate/src/status/providers.js @@ -1,6 +1,8 @@ +import https from 'https'; import { PortStateEnum } from './enums/portState.js'; const MAX_REQUEST_TIMEOUT = 5000; +const MAX_RESPONSE_SIZE = 1 * 1024 * 1024; // 1 MB const request = async (url) => { try { @@ -29,12 +31,6 @@ const requestJSON = async (url) => { return response; }; -const requestText = async (url) => { - const response = await request(url); - - return response.text(); -}; - const insightURLs = { testnet: 'https://testnet-insight.dashevo.org/insight-api', mainnet: 'https://insight.dash.org/insight-api', @@ -67,16 +63,80 @@ export default { }, }, mnowatch: { - checkPortStatus: async (port) => { - try { - return requestText(`https://mnowatch.org/${port}/`); - } catch (e) { - if (process.env.DEBUG) { - // eslint-disable-next-line no-console - console.warn(e); - } - return PortStateEnum.ERROR; - } + /** + * Check the status of a port and optionally validate an IP address. + * + * @param {number} port - The port number to check. + * @param {string} [ip] - Optional. The IP address to validate. + * @returns {Promise} A promise that resolves to the port status. + */ + checkPortStatus: async (port, ip = undefined) => { + // We use http request instead fetch function to force + // using IPv4 otherwise mnwatch could try to connect to IPv6 node address + // and fail (Core listens for IPv4 only) + // https://github.com/dashpay/platform/issues/2100 + + const options = { + hostname: 'mnowatch.org', + port: 443, + path: ip ? `/${port}/?validateIp=${ip}` : `/${port}/`, + method: 'GET', + family: 4, // Force IPv4 + timeout: MAX_REQUEST_TIMEOUT, + }; + + return new Promise((resolve) => { + const req = https.request(options, (res) => { + let data = ''; + + // Check if the status code is 200 + if (res.statusCode !== 200) { + if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn(`Port check request failed with status code ${res.statusCode}`); + } + // Consume response data to free up memory + res.resume(); + resolve(PortStateEnum.ERROR); + return; + } + + // Optionally set the encoding to receive strings directly + res.setEncoding('utf8'); + + // Collect data chunks + res.on('data', (chunk) => { + data += chunk; + + if (data.length > MAX_RESPONSE_SIZE) { + resolve(PortStateEnum.ERROR); + + if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn('Port check response size exceeded'); + } + + req.destroy(); + } + }); + + // Handle the end of the response + res.on('end', () => { + resolve(data); + }); + }); + + req.on('error', (e) => { + if (process.env.DEBUG) { + // eslint-disable-next-line no-console + console.warn(`Port check request failed: ${e}`); + } + + resolve(PortStateEnum.ERROR); + }); + + req.end(); + }); }, }, }; diff --git a/packages/dashmate/src/status/scopes/core.js b/packages/dashmate/src/status/scopes/core.js index d983bcd67c..c460f305de 100644 --- a/packages/dashmate/src/status/scopes/core.js +++ b/packages/dashmate/src/status/scopes/core.js @@ -116,7 +116,7 @@ export default function getCoreScopeFactory( const providersResult = await Promise.allSettled([ providers.github.release('dashpay/dash'), - providers.mnowatch.checkPortStatus(config.get('core.p2p.port')), + providers.mnowatch.checkPortStatus(config.get('core.p2p.port'), config.get('externalIp')), providers.insight(config.get('network')).status(), ]); diff --git a/packages/dashmate/src/status/scopes/platform.js b/packages/dashmate/src/status/scopes/platform.js index f18b291549..7605104ecb 100644 --- a/packages/dashmate/src/status/scopes/platform.js +++ b/packages/dashmate/src/status/scopes/platform.js @@ -89,8 +89,8 @@ export default function getPlatformScopeFactory( // Collecting platform data fails if Tenderdash is waiting for core to sync if (info.serviceStatus === ServiceStatusEnum.up) { const portStatusResult = await Promise.allSettled([ - providers.mnowatch.checkPortStatus(config.get('platform.gateway.listeners.dapiAndDrive.port')), - providers.mnowatch.checkPortStatus(config.get('platform.drive.tenderdash.p2p.port')), + providers.mnowatch.checkPortStatus(config.get('platform.gateway.listeners.dapiAndDrive.port'), config.get('externalIp')), + providers.mnowatch.checkPortStatus(config.get('platform.drive.tenderdash.p2p.port'), config.get('externalIp')), ]); const [httpPortState, p2pPortState] = portStatusResult.map((result) => (result.status === 'fulfilled' ? result.value : null)); diff --git a/packages/dashmate/src/test/mock/getConfigMock.js b/packages/dashmate/src/test/mock/getConfigMock.js index 1961c48f28..641a1b8720 100644 --- a/packages/dashmate/src/test/mock/getConfigMock.js +++ b/packages/dashmate/src/test/mock/getConfigMock.js @@ -17,7 +17,6 @@ export default function getConfigMock(sinon) { configMock.get.withArgs('platform.drive.tenderdash.rpc.host').returns('127.0.0.1'); configMock.get.withArgs('platform.drive.tenderdash.rpc.port').returns('8103'); configMock.get.withArgs('platform.enable').returns(true); - configMock.get.withArgs('core.log.file.path').returns('/Users/user/.dashmate/logs/base/core.log'); return configMock; } diff --git a/packages/dashmate/src/update/updateNodeFactory.js b/packages/dashmate/src/update/updateNodeFactory.js index 13cf1ef83c..0f50d44acb 100644 --- a/packages/dashmate/src/update/updateNodeFactory.js +++ b/packages/dashmate/src/update/updateNodeFactory.js @@ -31,7 +31,7 @@ export default function updateNodeFactory(getServiceList, docker) { name, title, image, updated: 'error', }); } else { - let updated = null; + let updated = 'error'; stream.on('data', (data) => { // parse all stdout and gather Status message diff --git a/packages/dashmate/templates/core/dash.conf.dot b/packages/dashmate/templates/core/dash.conf.dot index 807431f984..cbc0b93373 100644 --- a/packages/dashmate/templates/core/dash.conf.dot +++ b/packages/dashmate/templates/core/dash.conf.dot @@ -3,14 +3,30 @@ daemon=0 # leave this set to 0 for Docker logtimestamps=1 maxconnections=256 reindex={{?it.reindex}}1{{??}}0{{?}} -{{~it.core.log.file.categories :category}} -{{? category === 'all'}} + +{{? it.core.log.debug.enabled }} +logips={{? it.core.log.debug.ips }}1{{??}}0{{?}} +logsourcelocations={{? it.core.log.debug.sourceLocations }}1{{??}}0{{?}} +logthreadnames={{? it.core.log.debug.threadNames }}1{{??}}0{{?}} +logtimemicros={{? it.core.log.debug.timeMicros }}1{{??}}0{{?}} + + {{? it.core.log.debug.includeOnly.length === 0 }} debug=1 + {{??}} + {{~it.core.log.debug.includeOnly :category}} +debug={{= category }} + {{~}} + {{?}} + {{~it.core.log.debug.exclude :category}} +debugexclude={{= category}} + {{~}} +{{?}} + +{{? it.core.log.filePath === null }} +nodebuglogfile=1 {{??}} -debug={{=category}}{{?}}{{~}} -debuglogfile=/var/log/dash/{{= it.core.log.file.path.split('/').pop() }} -logips={{=it.core.logIps }} -fallbackfee=0.00001 +debuglogfile=/var/log/dash/debug.log +{{?}} # JSON RPC server=1 diff --git a/packages/dashmate/templates/dynamic-compose.yml.dot b/packages/dashmate/templates/dynamic-compose.yml.dot index c0055e6949..6ed120930f 100644 --- a/packages/dashmate/templates/dynamic-compose.yml.dot +++ b/packages/dashmate/templates/dynamic-compose.yml.dot @@ -1,4 +1,4 @@ -version: '3.7' +--- services: core: @@ -7,6 +7,10 @@ services: {{~ it.core.docker.commandArgs :arg }} - {{=arg}} {{~}} + {{? it.core.log.filePath !== null }} + volumes: + - {{=it.core.log.filePath}}:/var/log/dash/debug.log + {{?}} {{ driveLogs = Object.entries(it.platform.drive.abci.logs).filter(([, settings]) => settings.destination !== 'stderr' && settings.destination !== 'stdout'); }} {{? driveLogs.length > 0 }} @@ -18,6 +22,12 @@ services: {{~}} {{?}} + {{? it.platform.drive.tenderdash.log.path !== null }} + drive_tenderdash: + volumes: + - {{=it.platform.drive.tenderdash.log.path}}:/var/log/tenderdash/tenderdash.log + {{?}} + {{ gatewayLogs = it.platform.gateway.log.accessLogs.filter((l) => l.type === 'file'); }} {{? gatewayLogs.length > 0 }} gateway: diff --git a/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot b/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot index 9caf3e128b..a818a35640 100644 --- a/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot +++ b/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot @@ -54,7 +54,7 @@ db-dir = "data" log-level = "{{=it.platform.drive.tenderdash.log.level}}" # Path to the log file. This parameter is an additional option to the existing stderr output -{{? it.platform.drive.tenderdash.log.path }}log-file-path = "/var/log/tenderdash/{{= it.platform.drive.tenderdash.log.path.split('/').pop() }}"{{?}} +{{? it.platform.drive.tenderdash.log.path }}log-file-path = "/var/log/tenderdash/tenderdash.log"{{?}} # Output format: 'plain' (colored text) or 'json' log-format = "{{=it.platform.drive.tenderdash.log.format}}" diff --git a/packages/dashmate/templates/platform/gateway/envoy.yaml.dot b/packages/dashmate/templates/platform/gateway/envoy.yaml.dot index 4ee35dcfd2..8d9af2b18a 100644 --- a/packages/dashmate/templates/platform/gateway/envoy.yaml.dot +++ b/packages/dashmate/templates/platform/gateway/envoy.yaml.dot @@ -156,6 +156,13 @@ cluster: dapi_api # Upstream response timeout timeout: 10s + # DAPI broadcastStateTransition endpoint + - match: + path: "/org.dash.platform.dapi.v0.Platform/getStatus" + route: + cluster: dapi_api + # Upstream response timeout + timeout: 10s # getProofs endpoint only for internal use (DAPI -> Drive) - match: path: "/org.dash.platform.dapi.v0.Platform/getProofs" diff --git a/packages/dashmate/test/e2e/localNetwork.spec.js b/packages/dashmate/test/e2e/localNetwork.spec.js index d1f8c7bb7b..ab44a55991 100644 --- a/packages/dashmate/test/e2e/localNetwork.spec.js +++ b/packages/dashmate/test/e2e/localNetwork.spec.js @@ -129,6 +129,7 @@ describe('Local Network', function main() { const task = restartNodeTask(config); await task.run({ isVerbose: true, + isForce: true, }); } @@ -146,6 +147,7 @@ describe('Local Network', function main() { const task = stopNodeTask(config); await task.run({ isVerbose: true, + isForce: true, }); } diff --git a/packages/dashmate/test/e2e/testnetEvonode.spec.js b/packages/dashmate/test/e2e/testnetEvonode.spec.js index 1e8f90d5ab..5ffd9e3f94 100644 --- a/packages/dashmate/test/e2e/testnetEvonode.spec.js +++ b/packages/dashmate/test/e2e/testnetEvonode.spec.js @@ -148,7 +148,7 @@ describe('Testnet Evonode', function main() { await task.run({ isVerbose: true, - isSafe: true, + isForce: true, }); // TODO: Assert all services are running @@ -232,7 +232,7 @@ describe('Testnet Evonode', function main() { await task.run({ isVerbose: true, - isSafe: true, + isForce: true, }); // TODO: Assert all services are running diff --git a/packages/dashmate/test/e2e/testnetFullnode.spec.js b/packages/dashmate/test/e2e/testnetFullnode.spec.js index 12329f3407..01d36b61db 100644 --- a/packages/dashmate/test/e2e/testnetFullnode.spec.js +++ b/packages/dashmate/test/e2e/testnetFullnode.spec.js @@ -141,6 +141,7 @@ describe('Testnet Fullnode', function main() { await task.run({ isVerbose: true, + isSafe: true, }); await assertServiceRunning(config, 'core'); @@ -160,6 +161,7 @@ describe('Testnet Fullnode', function main() { await task.run({ isVerbose: true, + isSafe: true, }); await assertServiceRunning(config, 'core', false); diff --git a/packages/dashmate/test/unit/doctor/verifySystemRequirementsFactory.spec.js b/packages/dashmate/test/unit/doctor/verifySystemRequirementsFactory.spec.js new file mode 100644 index 0000000000..38590b3fbd --- /dev/null +++ b/packages/dashmate/test/unit/doctor/verifySystemRequirementsFactory.spec.js @@ -0,0 +1,147 @@ +import verifySystemRequirementsFactory from '../../../src/doctor/verifySystemRequirementsFactory.js'; +import Problem from '../../../src/doctor/Problem.js'; + +describe('verifySystemRequirementsFactory', () => { + let verifySystemRequirements; + + beforeEach(() => { + verifySystemRequirements = verifySystemRequirementsFactory(); + }); + + describe('CPU cores', () => { + it('should return a problem if CPU cores are less than minimum for non evonode', () => { + const systemInfo = { + dockerSystemInfo: { NCPU: 1 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('1 CPU cores detected'); + }); + + it('should return a problem if CPU cores are less than minimum for evonode', () => { + const systemInfo = { + dockerSystemInfo: { NCPU: 2 }, + }; + + const problems = verifySystemRequirements(systemInfo, true); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('2 CPU cores detected'); + }); + + it('should return a problem if CPU cores are less than minimum and docker info is not present', () => { + const systemInfo = { + cpu: { cores: 1 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('1 CPU cores detected'); + }); + + it('should not return anything if CPU cores information is not available', () => { + const systemInfo = { }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(0); + }); + }); + + describe('CPU speed', () => { + it('should return a problem if CPU speed is less than minimum', () => { + const systemInfo = { + cpu: { speed: 1.5 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('1.5GHz CPU frequency detected'); + }); + + it('should return a problem if CPU speed is not detected', () => { + const systemInfo = { + cpu: { speed: 0 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(0); + }); + }); + + describe('RAM', () => { + it('should return a problem if RAM is less than minimum (from Docker info)', () => { + const systemInfo = { + dockerSystemInfo: { MemTotal: 2 * 1024 ** 3 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('2.00GB RAM detected'); + }); + + it('should return a problem if RAM is less than minimum (from memory)', () => { + const systemInfo = { + memory: { total: 2 * 1024 ** 3 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('2.00GB RAM detected'); + }); + }); + + describe('Swap', () => { + it('should return a problem if swap space is less than recommended', () => { + const systemInfo = { + memory: { swaptotal: 1024 ** 3 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('Swap space is 1.00GB'); + }); + }); + + describe('Disk space', () => { + it('should return a problem if disk space is less than minimum', () => { + const systemInfo = { + diskSpace: { available: 50 * 1024 ** 3 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(1); + expect(problems[0]).to.be.an.instanceOf(Problem); + expect(problems[0].getDescription()).to.include('50.00GB of available disk space detected'); + }); + }); + + it('should not return any problems if all requirements are met', () => { + const systemInfo = { + dockerSystemInfo: { NCPU: 4, MemTotal: 8 * 1024 ** 3 }, + cpu: { cores: 4, speed: 3.0 }, + memory: { total: 8 * 1024 ** 3, swaptotal: 2 * 1024 ** 3 }, + diskSpace: { available: 500 * 1024 ** 3 }, + }; + + const problems = verifySystemRequirements(systemInfo, false); + + expect(problems).to.have.lengthOf(0); + }); +}); diff --git a/packages/dashmate/test/unit/ssl/zerossl/validateZeroSslCertificateFactory.spec.js b/packages/dashmate/test/unit/ssl/zerossl/validateZeroSslCertificateFactory.spec.js new file mode 100644 index 0000000000..44c94a2f18 --- /dev/null +++ b/packages/dashmate/test/unit/ssl/zerossl/validateZeroSslCertificateFactory.spec.js @@ -0,0 +1,192 @@ +import fs from 'fs'; +import path from 'path'; +import validateZeroSslCertificateFactory, { ERRORS } from '../../../../src/ssl/zerossl/validateZeroSslCertificateFactory.js'; + +describe('validateZeroSslCertificateFactory', () => { + let config; + let expirationDays; + let homeDir; + let getCertificate; + let validateZeroSslCertificate; + + beforeEach(function beforeEach() { + config = { + get: this.sinon.stub(), + getName: this.sinon.stub(), + }; + + expirationDays = 30; + + homeDir = { + joinPath: this.sinon.stub(), + }; + + getCertificate = this.sinon.stub(); + + config.getName.returns('my-config'); + + homeDir.joinPath.callsFake((...args) => path.join('/home/dir', ...args)); + + config.get.withArgs('platform.gateway.ssl.providerConfigs.zerossl.apiKey').returns('test-api-key'); + config.get.withArgs('externalIp').returns('1.2.3.4'); + config.get.withArgs('platform.gateway.ssl.providerConfigs.zerossl.id').returns('certificate-id'); + + this.sinon.stub(fs, 'existsSync').returns(true); + + validateZeroSslCertificate = validateZeroSslCertificateFactory(homeDir, getCertificate); + }); + + it('should return API_KEY_IS_NOT_SET error when apiKey is not set', async () => { + config.get.withArgs('platform.gateway.ssl.providerConfigs.zerossl.apiKey').returns(null); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.API_KEY_IS_NOT_SET); + }); + + it('should return EXTERNAL_IP_IS_NOT_SET error when externalIp is not set', async () => { + config.get.withArgs('externalIp').returns(null); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.EXTERNAL_IP_IS_NOT_SET); + }); + + it('should return CERTIFICATE_ID_IS_NOT_SET error when certificateId is not set', async () => { + config.get.withArgs('platform.gateway.ssl.providerConfigs.zerossl.id').returns(null); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CERTIFICATE_ID_IS_NOT_SET); + }); + + it('should return PRIVATE_KEY_IS_NOT_PRESENT error when private key file is not present', async function it() { + const sslConfigDir = path.join('/home/dir', 'my-config', 'platform', 'gateway', 'ssl'); + const privateKeyFilePath = path.join(sslConfigDir, 'private.key'); + + fs.existsSync.withArgs(privateKeyFilePath).returns(false); + + getCertificate.resolves({ + common_name: '1.2.3.4', + status: 'issued', + isExpiredInDays: this.sinon.stub().returns(false), + }); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.PRIVATE_KEY_IS_NOT_PRESENT); + }); + + it('should return EXTERNAL_IP_MISMATCH error when certificate common_name does not match externalIp', async function it() { + const certificate = { + common_name: '5.6.7.8', + status: 'issued', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.EXTERNAL_IP_MISMATCH); + }); + + it('should return CERTIFICATE_IS_NOT_VALIDATED error when certificate status is pending_validation', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'pending_validation', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CERTIFICATE_IS_NOT_VALIDATED); + expect(result.data.certificate).to.equal(certificate); + }); + + it('should return CERTIFICATE_IS_NOT_VALIDATED error when certificate status is draft', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'draft', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CERTIFICATE_IS_NOT_VALIDATED); + expect(result.data.certificate).to.equal(certificate); + }); + + it('should return CSR_FILE_IS_NOT_PRESENT error when certificate is not issued and csr file is not present', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'revoked', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + const sslConfigDir = path.join('/home/dir', 'my-config', 'platform', 'gateway', 'ssl'); + const csrFilePath = path.join(sslConfigDir, 'csr.pem'); + + fs.existsSync.withArgs(csrFilePath).returns(false); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CSR_FILE_IS_NOT_PRESENT); + }); + + it('should return CERTIFICATE_IS_NOT_VALID error when certificate is not issued and csr file is present', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'revoked', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + this.sinon.stub(fs, 'readFileSync').returns('csr content'); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CERTIFICATE_IS_NOT_VALID); + expect(result.data.csr).to.equal('csr content'); + }); + + it('should return CERTIFICATE_EXPIRES_SOON error when certificate is expiring soon and csr file is present', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'issued', + isExpiredInDays: this.sinon.stub().returns(true), + }; + + getCertificate.resolves(certificate); + + this.sinon.stub(fs, 'readFileSync').returns('csr content'); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.equal(ERRORS.CERTIFICATE_EXPIRES_SOON); + expect(result.data.csr).to.equal('csr content'); + }); + + it('should return data when certificate is valid and not expiring soon', async function it() { + const certificate = { + common_name: '1.2.3.4', + status: 'issued', + isExpiredInDays: this.sinon.stub().returns(false), + }; + + getCertificate.resolves(certificate); + + const result = await validateZeroSslCertificate(config, expirationDays); + + expect(result.error).to.be.undefined(); + expect(result.data).to.exist(); + expect(result.data.certificate).to.equal(certificate); + }); +}); diff --git a/packages/dashpay-contract/Cargo.toml b/packages/dashpay-contract/Cargo.toml index 996c7b1044..9a957ebed1 100644 --- a/packages/dashpay-contract/Cargo.toml +++ b/packages/dashpay-contract/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "dashpay-contract" description = "DashPay data contract schema and tools" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] platform-version = { path = "../rs-platform-version" } -thiserror = "1.0.58" +thiserror = "1.0.64" serde_json = { version = "1.0" } platform-value = { path = "../rs-platform-value" } diff --git a/packages/dashpay-contract/package.json b/packages/dashpay-contract/package.json index 686a47bff6..4c877bd614 100644 --- a/packages/dashpay-contract/package.json +++ b/packages/dashpay-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dashpay-contract", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Reference contract of the DashPay DPA on Dash Evolution", "scripts": { "lint": "eslint .", diff --git a/packages/data-contracts/Cargo.toml b/packages/data-contracts/Cargo.toml index be84cfdc81..0f6bd43bb7 100644 --- a/packages/data-contracts/Cargo.toml +++ b/packages/data-contracts/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "data-contracts" description = "Dash Platform system data contracts" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = "1.0.58" +thiserror = "1.0.64" platform-version = { path = "../rs-platform-version" } serde_json = { version = "1.0" } withdrawals-contract = { path = "../withdrawals-contract" } diff --git a/packages/dpns-contract/Cargo.toml b/packages/dpns-contract/Cargo.toml index c9dac7b4fe..1bfb6601c0 100644 --- a/packages/dpns-contract/Cargo.toml +++ b/packages/dpns-contract/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "dpns-contract" description = "DPNS data contract schema and tools" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = "1.0.58" +thiserror = "1.0.64" platform-version = { path = "../rs-platform-version" } serde_json = { version = "1.0" } platform-value = { path = "../rs-platform-value" } diff --git a/packages/dpns-contract/package.json b/packages/dpns-contract/package.json index e8835c3230..fb9fb715f1 100644 --- a/packages/dpns-contract/package.json +++ b/packages/dpns-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dpns-contract", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "A contract and helper scripts for DPNS DApp", "scripts": { "lint": "eslint .", diff --git a/packages/feature-flags-contract/Cargo.toml b/packages/feature-flags-contract/Cargo.toml index 379778e18c..a036c5b3e8 100644 --- a/packages/feature-flags-contract/Cargo.toml +++ b/packages/feature-flags-contract/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "feature-flags-contract" description = "Feature flags data contract schema and tools" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = "1.0.58" +thiserror = "1.0.64" platform-version = { path = "../rs-platform-version" } serde_json = { version = "1.0" } platform-value = { path = "../rs-platform-value" } diff --git a/packages/feature-flags-contract/package.json b/packages/feature-flags-contract/package.json index 4e327af5e5..2236ecfea8 100644 --- a/packages/feature-flags-contract/package.json +++ b/packages/feature-flags-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/feature-flags-contract", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Data Contract to store Dash Platform feature flags", "scripts": { "build": "", diff --git a/packages/js-dapi-client/docs/_sidebar.md b/packages/js-dapi-client/docs/_sidebar.md index 6f1d91a8ec..92f7efb371 100644 --- a/packages/js-dapi-client/docs/_sidebar.md +++ b/packages/js-dapi-client/docs/_sidebar.md @@ -18,6 +18,7 @@ - [.subscribeToMasternodeList()](usage/application/core/subscribeToMasternodeList.md) - Platform - [.broadcastStateTransition()](usage/application/platform/broadcastStateTransition.md) + - [.getStatus()](usage/application/platform/getStatus.md) - [.getDataContract()](usage/application/platform/getDataContract.md) - [.getDocuments()](usage/application/platform/getDocuments.md) - [.getIdentityByFirstPublicKey()](usage/application/platform/getIdentityByFirstPublicKey.md) diff --git a/packages/js-dapi-client/docs/usage/application/platform/getStatus.md b/packages/js-dapi-client/docs/usage/application/platform/getStatus.md new file mode 100644 index 0000000000..6eb10cd4a0 --- /dev/null +++ b/packages/js-dapi-client/docs/usage/application/platform/getStatus.md @@ -0,0 +1,4 @@ +**Usage**: `async client.platform.getStatus(options)` +**Description**: Get platform status + +Returns : Promise diff --git a/packages/js-dapi-client/lib/DAPIClient.js b/packages/js-dapi-client/lib/DAPIClient.js index ed8c80d753..4731c54a2d 100644 --- a/packages/js-dapi-client/lib/DAPIClient.js +++ b/packages/js-dapi-client/lib/DAPIClient.js @@ -28,7 +28,7 @@ class DAPIClient extends EventEmitter { super(); this.options = { - network: 'testnet', + network: 'mainnet', timeout: 10000, retries: 5, blockHeadersProviderOptions: BlockHeadersProvider.defaultOptions, @@ -108,7 +108,7 @@ DAPIClient.EVENTS = EVENTS; * @property {Array} [dapiAddresses] * @property {Array} [seeds] * @property {Array} [dapiAddressesWhiteList] - * @property {string|Network} [network=testnet] + * @property {string|Network} [network=mainnet] * @property {number} [timeout=2000] * @property {number} [retries=3] * @property {number} [baseBanTime=60000] diff --git a/packages/js-dapi-client/lib/methods/platform/PlatformMethodsFacade.js b/packages/js-dapi-client/lib/methods/platform/PlatformMethodsFacade.js index b9659142ec..8de255abde 100644 --- a/packages/js-dapi-client/lib/methods/platform/PlatformMethodsFacade.js +++ b/packages/js-dapi-client/lib/methods/platform/PlatformMethodsFacade.js @@ -14,6 +14,8 @@ const getIdentityContractNonceFactory = require('./getIdentityContractNonce/getI const getIdentityNonceFactory = require('./getIdentityNonce/getIdentityNonceFactory'); const getIdentityKeysFactory = require('./getIdentityKeys/getIdentityKeysFactory'); const getTotalCreditsInPlatformFactory = require('./getTotalCreditsInPlatform/getTotalCreditsInPlatformFactory'); +const getStatusFactory = require('./getStatus/getStatusFactory'); +const getIdentityBalanceFactory = require('./getIdentityBalance/getIdentityBalanceFactory'); class PlatformMethodsFacade { /** @@ -38,6 +40,8 @@ class PlatformMethodsFacade { this.getIdentityNonce = getIdentityNonceFactory(grpcTransport); this.getIdentityKeys = getIdentityKeysFactory(grpcTransport); this.getTotalCreditsInPlatform = getTotalCreditsInPlatformFactory(grpcTransport); + this.getStatus = getStatusFactory(grpcTransport); + this.getIdentityBalance = getIdentityBalanceFactory(grpcTransport); } } diff --git a/packages/js-dapi-client/lib/methods/platform/getEpochsInfo/getEpochsInfoFactory.js b/packages/js-dapi-client/lib/methods/platform/getEpochsInfo/getEpochsInfoFactory.js index 9ae984dbc9..9982c6f9e6 100644 --- a/packages/js-dapi-client/lib/methods/platform/getEpochsInfo/getEpochsInfoFactory.js +++ b/packages/js-dapi-client/lib/methods/platform/getEpochsInfo/getEpochsInfoFactory.js @@ -28,7 +28,7 @@ function getEpochsInfoFactory(grpcTransport) { const getEpochInfosRequest = new GetEpochsInfoRequest(); getEpochInfosRequest.setV0( new GetEpochsInfoRequestV0() - .setStartEpoch(new UInt32Value([startEpoch])) + .setStartEpoch(typeof startEpoch === 'number' ? new UInt32Value([startEpoch]) : undefined) .setCount(count) .setAscending(!!options.ascending) .setProve(!!options.prove), diff --git a/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.js b/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.js new file mode 100644 index 0000000000..b5b4a59b31 --- /dev/null +++ b/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.js @@ -0,0 +1,43 @@ +const AbstractResponse = require('../response/AbstractResponse'); +const InvalidResponseError = require('../response/errors/InvalidResponseError'); + +class GetIdentityBalanceResponse extends AbstractResponse { + /** + * @param {number} balance + * @param {Metadata} metadata + * @param {Proof} [proof] + */ + constructor(balance, metadata, proof = undefined) { + super(metadata, proof); + + this.balance = balance; + } + + /** + * @returns {number} + */ + getBalance() { + return this.balance; + } + + /** + * @param proto + * @returns {GetIdentityBalanceResponse} + */ + static createFromProto(proto) { + const balance = proto.getV0().getBalance(); + const { metadata, proof } = AbstractResponse.createMetadataAndProofFromProto(proto); + + if ((balance === null || balance === undefined) && !proof) { + throw new InvalidResponseError('Balance is not defined'); + } + + return new GetIdentityBalanceResponse( + balance, + metadata, + proof, + ); + } +} + +module.exports = GetIdentityBalanceResponse; diff --git a/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/getIdentityBalanceFactory.js b/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/getIdentityBalanceFactory.js new file mode 100644 index 0000000000..93862ccff9 --- /dev/null +++ b/packages/js-dapi-client/lib/methods/platform/getIdentityBalance/getIdentityBalanceFactory.js @@ -0,0 +1,71 @@ +const { + v0: { + PlatformPromiseClient, + GetIdentityBalanceRequest, + }, +} = require('@dashevo/dapi-grpc'); + +const GetIdentityBalanceResponse = require('./GetIdentityBalanceResponse'); +const InvalidResponseError = require('../response/errors/InvalidResponseError'); + +/** + * @param {GrpcTransport} grpcTransport + * @returns {getIdentityBalance} + */ +function getIdentityBalanceFactory(grpcTransport) { + /** + * Fetch the identity balance by id + * @typedef {getIdentityBalance} + * @param {Buffer} id + * @param {DAPIClientOptions & {prove: boolean}} [options] + * @returns {Promise} + */ + async function getIdentityBalance(id, options = {}) { + const { GetIdentityBalanceRequestV0 } = GetIdentityBalanceRequest; + const getIdentityBalanceRequest = new GetIdentityBalanceRequest(); + // need to convert objects inherited from Buffer to pure buffer as google protobuf + // doesn't support extended buffers + // https://github.com/protocolbuffers/protobuf/blob/master/js/binary/utils.js#L1049 + if (Buffer.isBuffer(id)) { + // eslint-disable-next-line no-param-reassign + id = Buffer.from(id); + } + + getIdentityBalanceRequest.setV0( + new GetIdentityBalanceRequestV0() + .setId(id) + .setProve(!!options.prove), + ); + + let lastError; + + // TODO: simple retry before the dapi versioning is properly implemented + for (let i = 0; i < 3; i += 1) { + try { + // eslint-disable-next-line no-await-in-loop + const getIdentityBalanceResponse = await grpcTransport.request( + PlatformPromiseClient, + 'getIdentityBalance', + getIdentityBalanceRequest, + options, + ); + + return GetIdentityBalanceResponse.createFromProto(getIdentityBalanceResponse); + } catch (e) { + if (e instanceof InvalidResponseError) { + lastError = e; + } else { + throw e; + } + } + } + + // If we made it past the cycle it means that the retry didn't work, + // and we're throwing the last error encountered + throw lastError; + } + + return getIdentityBalance; +} + +module.exports = getIdentityBalanceFactory; diff --git a/packages/js-dapi-client/lib/methods/platform/getStatus/getStatusFactory.js b/packages/js-dapi-client/lib/methods/platform/getStatus/getStatusFactory.js new file mode 100644 index 0000000000..cce7acfb4c --- /dev/null +++ b/packages/js-dapi-client/lib/methods/platform/getStatus/getStatusFactory.js @@ -0,0 +1,66 @@ +const { + v0: { + PlatformPromiseClient, + GetStatusRequest, + }, +} = require('@dashevo/dapi-grpc'); + +const InvalidResponseError = require('../response/errors/InvalidResponseError'); + +/** + * @param {GrpcTransport} grpcTransport + * @returns {getIdentity} + */ +function getStatusFactory(grpcTransport) { + /** + * Fetch the identity by id + * @typedef {getIdentity} + * @param {Buffer} id + * @param {DAPIClientOptions & {prove: boolean}} [options] + * @returns {Promise} + */ + async function getStatus(options = {}) { + const { GetStatusRequestV0 } = GetStatusRequest; + const getStatusRequest = new GetStatusRequest(); + + getStatusRequest.setV0( + new GetStatusRequestV0(), + ); + + let lastError; + + // TODO: simple retry before the dapi versioning is properly implemented + for (let i = 0; i < 3; i += 1) { + try { + // eslint-disable-next-line no-await-in-loop + const getStatusResponse = await grpcTransport.request( + PlatformPromiseClient, + 'getStatus', + getStatusRequest, + options, + ); + + if (getStatusResponse.getV0() === undefined) { + // noinspection ExceptionCaughtLocallyJS + throw new InvalidResponseError('GetStatusResponseV0 is not defined'); + } + + return getStatusResponse.getV0().toObject(); + } catch (e) { + if (e instanceof InvalidResponseError) { + lastError = e; + } else { + throw e; + } + } + } + + // If we made it past the cycle it means that the retry didn't work, + // and we're throwing the last error encountered + throw lastError; + } + + return getStatus; +} + +module.exports = getStatusFactory; diff --git a/packages/js-dapi-client/lib/networkConfigs.js b/packages/js-dapi-client/lib/networkConfigs.js index 3355041c7b..4bc7c83213 100644 --- a/packages/js-dapi-client/lib/networkConfigs.js +++ b/packages/js-dapi-client/lib/networkConfigs.js @@ -51,4 +51,13 @@ module.exports = { dapiAddresses: ['127.0.0.1'], network: 'regtest', }, + mainnet: { + seeds: [ + 'seed-1.mainnet.networks.dash.org', + 'seed-2.mainnet.networks.dash.org', + 'seed-3.mainnet.networks.dash.org', + 'seed-4.mainnet.networks.dash.org', + ], + network: 'mainnet', + }, }; diff --git a/packages/js-dapi-client/package.json b/packages/js-dapi-client/package.json index bb13b51cfa..c95923b963 100644 --- a/packages/js-dapi-client/package.json +++ b/packages/js-dapi-client/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/dapi-client", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Client library used to access Dash DAPI endpoints", "main": "lib/index.js", "contributors": [ @@ -76,7 +76,7 @@ "string_decoder": "^1.3.0", "url": "^0.11.3", "util": "^0.12.4", - "webpack": "^5.76.1", + "webpack": "^5.94.0", "webpack-cli": "^4.9.1" }, "files": [ @@ -92,7 +92,7 @@ "test:integration": "mocha './test/integration/**/*.spec.js'", "test:node": "NODE_ENV=test mocha", "test:browsers": "karma start ./karma.conf.js --single-run", - "test:coverage": "NODE_ENV=test nyc --check-coverage --stmts=98 --branch=98 --funcs=98 --lines=90 yarn run mocha 'test/unit/**/*.spec.js' 'test/integration/**/*.spec.js'", + "test:coverage": "NODE_ENV=test nyc --check-coverage --stmts=98 --branch=98 --funcs=98 --lines=89 yarn run mocha 'test/unit/**/*.spec.js' 'test/integration/**/*.spec.js'", "prepublishOnly": "yarn run build:web" }, "ultra": { diff --git a/packages/js-dapi-client/test/integration/methods/platform/PlatformMethodsFacade.spec.js b/packages/js-dapi-client/test/integration/methods/platform/PlatformMethodsFacade.spec.js index cb2c2dd0fa..fbb1f32ed5 100644 --- a/packages/js-dapi-client/test/integration/methods/platform/PlatformMethodsFacade.spec.js +++ b/packages/js-dapi-client/test/integration/methods/platform/PlatformMethodsFacade.spec.js @@ -4,6 +4,7 @@ const { GetDataContractResponse, GetDocumentsResponse, GetIdentityResponse, + GetIdentityBalanceResponse, GetIdentityByPublicKeyHashResponse, GetIdentitiesContractKeysResponse, GetEpochsInfoResponse, @@ -27,6 +28,7 @@ const PlatformMethodsFacade = require('../../../../lib/methods/platform/Platform const { WaitForStateTransitionResultResponseV0 } = WaitForStateTransitionResultResponse; const { GetIdentityResponseV0 } = GetIdentityResponse; +const { GetIdentityBalanceResponseV0 } = GetIdentityBalanceResponse; const { GetIdentityByPublicKeyHashResponseV0 } = GetIdentityByPublicKeyHashResponse; const { GetIdentitiesContractKeysResponseV0 } = GetIdentitiesContractKeysResponse; const { GetDocumentsResponseV0 } = GetDocumentsResponse; @@ -318,4 +320,22 @@ describe('PlatformMethodsFacade', () => { expect(grpcTransportMock.request).to.be.calledOnce(); }); }); + + describe('#getIdentityBalance', () => { + it('should get identity balance', async () => { + const response = new GetIdentityBalanceResponse(); + + response.setV0( + new GetIdentityBalanceResponseV0() + .setMetadata(new ResponseMetadata()) + .setBalance(1337), + ); + + grpcTransportMock.request.resolves(response); + + await platformMethods.getIdentityBalance('41nthkqvHBLnqiMkSbsdTNANzYu9bgdv4etKoRUunY1M'); + + expect(grpcTransportMock.request).to.be.calledOnce(); + }); + }); }); diff --git a/packages/js-dapi-client/test/unit/DAPIClient.spec.js b/packages/js-dapi-client/test/unit/DAPIClient.spec.js index dd57d1ff7e..cee8f160f5 100644 --- a/packages/js-dapi-client/test/unit/DAPIClient.spec.js +++ b/packages/js-dapi-client/test/unit/DAPIClient.spec.js @@ -19,7 +19,7 @@ describe('DAPIClient', () => { dapiClient = new DAPIClient(options); expect(dapiClient.options).to.deep.equal({ - network: 'testnet', + network: 'mainnet', retries: 0, newOption: true, timeout: 10000, @@ -48,7 +48,7 @@ describe('DAPIClient', () => { expect(dapiClient.options).to.deep.equal({ retries: 5, timeout: 10000, - network: 'testnet', + network: 'mainnet', blockHeadersProviderOptions: BlockHeadersProvider.defaultOptions, loggerOptions: { identifier: '', @@ -79,7 +79,7 @@ describe('DAPIClient', () => { expect(dapiClient.options).to.deep.equal({ retries: 0, dapiAddresses: ['localhost'], - network: 'testnet', + network: 'mainnet', timeout: 10000, blockHeadersProviderOptions: BlockHeadersProvider.defaultOptions, loggerOptions: { diff --git a/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.spec.js b/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.spec.js new file mode 100644 index 0000000000..3df6adb6be --- /dev/null +++ b/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/GetIdentityBalanceResponse.spec.js @@ -0,0 +1,126 @@ +const { + v0: { + GetIdentityBalanceResponse, + ResponseMetadata, + Proof: ProofResponse, + }, +} = require('@dashevo/dapi-grpc'); + +const GetIdentityBalanceResponseClass = require('../../../../../lib/methods/platform/getIdentityBalance/GetIdentityBalanceResponse'); +const getMetadataFixture = require('../../../../../lib/test/fixtures/getMetadataFixture'); +const InvalidResponseError = require('../../../../../lib/methods/platform/response/errors/InvalidResponseError'); +const getProofFixture = require('../../../../../lib/test/fixtures/getProofFixture'); +const Proof = require('../../../../../lib/methods/platform/response/Proof'); +const Metadata = require('../../../../../lib/methods/platform/response/Metadata'); + +describe('GetIdentityBalanceResponse', () => { + let getIdentityBalanceResponse; + let metadataFixture; + let balance; + let proto; + let proofFixture; + + beforeEach(async () => { + metadataFixture = getMetadataFixture(); + proofFixture = getProofFixture(); + balance = 1337; + + const { GetIdentityBalanceResponseV0 } = GetIdentityBalanceResponse; + proto = new GetIdentityBalanceResponse(); + + const metadata = new ResponseMetadata(); + metadata.setHeight(metadataFixture.height); + metadata.setCoreChainLockedHeight(metadataFixture.coreChainLockedHeight); + metadata.setTimeMs(metadataFixture.timeMs); + metadata.setProtocolVersion(metadataFixture.protocolVersion); + + proto.setV0( + new GetIdentityBalanceResponseV0() + .setBalance(balance) + .setMetadata(metadata), + ); + + getIdentityBalanceResponse = new GetIdentityBalanceResponseClass( + balance, + new Metadata(metadataFixture), + ); + }); + + it('should return Identity balance', () => { + const identityBalance = getIdentityBalanceResponse.getBalance(); + const identityProof = getIdentityBalanceResponse.getProof(); + + expect(identityBalance).to.equal(balance); + expect(identityProof).to.equal(undefined); + }); + + it('should return proof', () => { + getIdentityBalanceResponse = new GetIdentityBalanceResponseClass( + balance, + new Metadata(metadataFixture), + new Proof(proofFixture), + ); + + const identityBalance = getIdentityBalanceResponse.getBalance(); + const proof = getIdentityBalanceResponse.getProof(); + + expect(identityBalance).to.equal(balance); + expect(proof).to.be.an.instanceOf(Proof); + expect(proof.getGrovedbProof()).to.deep.equal(proofFixture.merkleProof); + expect(proof.getQuorumHash()).to.deep.equal(proofFixture.quorumHash); + expect(proof.getSignature()).to.deep.equal(proofFixture.signature); + expect(proof.getRound()).to.deep.equal(proofFixture.round); + }); + + it('should create an instance from proto', () => { + getIdentityBalanceResponse = GetIdentityBalanceResponseClass.createFromProto(proto); + expect(getIdentityBalanceResponse).to.be + .an.instanceOf(GetIdentityBalanceResponseClass); + expect(getIdentityBalanceResponse.getBalance()).to.equal(balance); + + expect(getIdentityBalanceResponse.getMetadata()) + .to.be.an.instanceOf(Metadata); + expect(getIdentityBalanceResponse.getMetadata().getHeight()) + .to.equal(metadataFixture.height); + expect(getIdentityBalanceResponse.getMetadata().getCoreChainLockedHeight()) + .to.equal(metadataFixture.coreChainLockedHeight); + + expect(getIdentityBalanceResponse.getProof()).to.equal(undefined); + }); + + it('should create an instance with proof from proto', () => { + const proofProto = new ProofResponse(); + + proofProto.setQuorumHash(proofFixture.quorumHash); + proofProto.setSignature(proofFixture.signature); + proofProto.setGrovedbProof(proofFixture.merkleProof); + proofProto.setRound(proofFixture.round); + + proto.getV0().setBalance(undefined); + proto.getV0().setProof(proofProto); + + getIdentityBalanceResponse = GetIdentityBalanceResponseClass.createFromProto(proto); + + expect(getIdentityBalanceResponse.getBalance()).to.equal(0); + expect(getIdentityBalanceResponse.getMetadata()).to.deep.equal(metadataFixture); + + const proof = getIdentityBalanceResponse.getProof(); + expect(proof).to.be.an.instanceOf(Proof); + expect(proof.getGrovedbProof()).to.deep.equal(proofFixture.merkleProof); + expect(proof.getQuorumHash()).to.deep.equal(proofFixture.quorumHash); + expect(proof.getSignature()).to.deep.equal(proofFixture.signature); + expect(proof.getRound()).to.deep.equal(proofFixture.round); + }); + + it('should throw InvalidResponseError if Metadata is not defined', () => { + proto.getV0().setMetadata(undefined); + + try { + getIdentityBalanceResponse = GetIdentityBalanceResponseClass.createFromProto(proto); + + expect.fail('should throw InvalidResponseError'); + } catch (e) { + expect(e).to.be.an.instanceOf(InvalidResponseError); + } + }); +}); diff --git a/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/getIdentityBalanceFactory.spec.js b/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/getIdentityBalanceFactory.spec.js new file mode 100644 index 0000000000..210d2a8a9f --- /dev/null +++ b/packages/js-dapi-client/test/unit/methods/platform/getIdentityBalance/getIdentityBalanceFactory.spec.js @@ -0,0 +1,156 @@ +const { + v0: { + PlatformPromiseClient, + GetIdentityBalanceRequest, + GetIdentityBalanceResponse, + ResponseMetadata, + Proof: ProofResponse, + }, +} = require('@dashevo/dapi-grpc'); + +const { GetIdentityBalanceResponseV0 } = GetIdentityBalanceResponse; + +const getIdentityBalanceFactory = require('../../../../../lib/methods/platform/getIdentityBalance/getIdentityBalanceFactory'); +const getMetadataFixture = require('../../../../../lib/test/fixtures/getMetadataFixture'); +const getProofFixture = require('../../../../../lib/test/fixtures/getProofFixture'); +const Proof = require('../../../../../lib/methods/platform/response/Proof'); + +describe('getIdentityBalanceFactory', () => { + let grpcTransportMock; + let getIdentityBalance; + let options; + let response; + let balance; + let identityId; + let metadataFixture; + let proofFixture; + let proofResponse; + + beforeEach(async function beforeEach() { + balance = 1337; + + identityId = Buffer.alloc(32).fill(0); + + metadataFixture = getMetadataFixture(); + proofFixture = getProofFixture(); + + const metadata = new ResponseMetadata(); + metadata.setHeight(metadataFixture.height); + metadata.setCoreChainLockedHeight(metadataFixture.coreChainLockedHeight); + metadata.setTimeMs(metadataFixture.timeMs); + metadata.setProtocolVersion(metadataFixture.protocolVersion); + + response = new GetIdentityBalanceResponse(); + + response.setV0( + new GetIdentityBalanceResponseV0() + .setBalance(balance) + .setMetadata(metadata), + ); + + proofResponse = new ProofResponse(); + + proofResponse.setQuorumHash(proofFixture.quorumHash); + proofResponse.setSignature(proofFixture.signature); + proofResponse.setGrovedbProof(proofFixture.merkleProof); + proofResponse.setRound(proofFixture.round); + + grpcTransportMock = { + request: this.sinon.stub().resolves(response), + }; + + getIdentityBalance = getIdentityBalanceFactory(grpcTransportMock); + + options = { + timeout: 1000, + }; + }); + + it('should return identity balance', async () => { + const result = await getIdentityBalance(identityId, options); + + const { GetIdentityBalanceRequestV0 } = GetIdentityBalanceRequest; + const request = new GetIdentityBalanceRequest(); + request.setV0( + new GetIdentityBalanceRequestV0() + .setId(identityId) + .setProve(false), + ); + + expect(grpcTransportMock.request).to.be.calledOnceWithExactly( + PlatformPromiseClient, + 'getIdentityBalance', + request, + options, + ); + expect(result.getBalance()).to.deep.equal(balance); + expect(result.getMetadata()).to.deep.equal(metadataFixture); + expect(result.getProof()).to.equal(undefined); + }); + + it('should return proof', async () => { + options.prove = true; + response.getV0().setBalance(undefined); + response.getV0().setProof(proofResponse); + + const result = await getIdentityBalance(identityId, options); + + const { GetIdentityBalanceRequestV0 } = GetIdentityBalanceRequest; + const request = new GetIdentityBalanceRequest(); + request.setV0( + new GetIdentityBalanceRequestV0() + .setId(identityId) + .setProve(true), + ); + + expect(grpcTransportMock.request).to.be.calledOnceWithExactly( + PlatformPromiseClient, + 'getIdentityBalance', + request, + options, + ); + + expect(result.getBalance()).to.deep.equal(0); + + expect(result.getMetadata()).to.deep.equal(metadataFixture); + + expect(result.getProof()).to.be.an.instanceOf(Proof); + expect(result.getProof().getGrovedbProof()).to.deep.equal(proofFixture.merkleProof); + expect(result.getProof().getQuorumHash()).to.deep.equal(proofFixture.quorumHash); + expect(result.getProof().getSignature()).to.deep.equal(proofFixture.signature); + expect(result.getProof().getRound()).to.deep.equal(proofFixture.round); + expect(result.getMetadata()).to.deep.equal(metadataFixture); + expect(result.getMetadata().getHeight()).to.equal(metadataFixture.height); + expect(result.getMetadata().getCoreChainLockedHeight()).to.equal( + metadataFixture.coreChainLockedHeight, + ); + }); + + it('should throw unknown error', async () => { + const error = new Error('Unknown found'); + + grpcTransportMock.request.throws(error); + + const { GetIdentityBalanceRequestV0 } = GetIdentityBalanceRequest; + const request = new GetIdentityBalanceRequest(); + request.setV0( + new GetIdentityBalanceRequestV0() + .setId(identityId) + .setProve(false), + ); + + try { + await getIdentityBalance(identityId, options); + + expect.fail('should throw unknown error'); + } catch (e) { + expect(e).to.deep.equal(error); + expect(grpcTransportMock.request).to.be.calledOnceWithExactly( + PlatformPromiseClient, + 'getIdentityBalance', + request, + options, + ); + } + }); +}); diff --git a/packages/js-dash-sdk/README.md b/packages/js-dash-sdk/README.md index 454768f674..a9083164c7 100644 --- a/packages/js-dash-sdk/README.md +++ b/packages/js-dash-sdk/README.md @@ -7,6 +7,11 @@ Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...) +**Warning: This SDK should only be used in production when connected to trusted nodes. Although it +provides easy access to Dash Platform without requiring a full node, it does not support Dash +Platform’s proofs or verify synchronized blockchain data. Therefore, it is less secure than the +[Rust SDK](../rs-sdk/), which requests proofs for all queried data.** + Dash library provides access via [DAPI](https://dashplatform.readme.io/docs/explanation-dapi) to use both the Dash Core network and Dash Platform on [supported networks](https://github.com/dashpay/platform/#supported-networks). The Dash Core network can be used to broadcast and receive payments. Dash Platform can be used to manage identities, register data contracts for applications, and submit or retrieve application data via documents. ## Table of Contents diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index c2111b344d..80bd7b603f 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -1,6 +1,6 @@ { "name": "dash", - "version": "4.1.0-dev.1", + "version": "4.4.0-dev.5", "description": "Dash library for JavaScript/TypeScript ecosystem (Wallet, DAPI, Primitives, BLS, ...)", "main": "build/index.js", "unpkg": "dist/dash.min.js", @@ -107,7 +107,7 @@ "typescript": "^3.9.5", "url": "^0.11.3", "util": "^0.12.4", - "webpack": "^5.76.1", + "webpack": "^5.94.0", "webpack-cli": "^4.9.1" } } diff --git a/packages/js-dash-sdk/src/SDK/Client/Client.spec.ts b/packages/js-dash-sdk/src/SDK/Client/Client.spec.ts index b44f7cd02f..bc6fa96bd4 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Client.spec.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Client.spec.ts @@ -37,6 +37,7 @@ describe('Dash - Client', function suite() { testHDKey = 'tprv8ZgxMBicQKsPeGi4CikhacVPz6UmErenu1PoD3S4XcEDSPP8auRaS8hG3DQtsQ2i9HACgohHwF5sgMVJNksoKqYoZbis8o75Pp1koCme2Yo'; client = new Client({ + network: 'testnet', wallet: { HDPrivateKey: testHDKey, }, @@ -77,7 +78,7 @@ describe('Dash - Client', function suite() { it('should be instantiable', () => { client = new Client(); expect(client).to.exist; - expect(client.network).to.be.equal('testnet'); + expect(client.network).to.be.equal('mainnet'); expect(client.getDAPIClient().constructor.name).to.be.equal('DAPIClient'); }); @@ -111,7 +112,7 @@ describe('Dash - Client', function suite() { wallet: { mnemonic: testMnemonic, offlineMode: true, - network: 'evonet', + network: 'mainnet', }, }); diff --git a/packages/js-dash-sdk/src/SDK/Client/Client.ts b/packages/js-dash-sdk/src/SDK/Client/Client.ts index 7f185677ea..ee641901df 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Client.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Client.ts @@ -48,7 +48,7 @@ export interface ClientOpts { * and the Dash Platform (layer 2). */ export class Client extends EventEmitter { - public network: string = 'testnet'; + public network: string = 'mainnet'; public wallet: Wallet | undefined; @@ -74,7 +74,7 @@ export class Client extends EventEmitter { this.options = options; - this.network = this.options.network ? this.options.network.toString() : 'testnet'; + this.network = this.options.network ? this.options.network.toString() : 'mainnet'; // Initialize DAPI Client const dapiClientOptions = { diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditWithdrawal.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditWithdrawal.ts index a2bd513397..359c569b4b 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditWithdrawal.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/creditWithdrawal.ts @@ -28,37 +28,50 @@ const MIN_ASSET_UNLOCK_CORE_FEE_PER_BYTE = 1; const MINIMAL_WITHDRAWAL_AMOUNT = ASSET_UNLOCK_TX_SIZE * MIN_ASSET_UNLOCK_CORE_FEE_PER_BYTE * 1000; type WithdrawalOptions = { - signingKeyIndex: number + signingKeyIndex?: number + toAddress?: string }; /** Creates platform credits withdrawal request * @param identity - identity to withdraw from * @param amount - amount of credits to withdraw - * @param to - Dash L1 address * @param options - withdrawal options + * @param [options] - withdrawal options + * @param [options.toAddress] - withdrawal destination address */ export async function creditWithdrawal( this: Platform, identity: Identity, amount: number, - to: string, - options: WithdrawalOptions = { - signingKeyIndex: 3, - }, + options: WithdrawalOptions = { }, ): Promise { await this.initialize(); + // eslint-disable-next-line no-param-reassign + options = { + signingKeyIndex: 3, + ...options, + }; + const { dpp } = this; - let toAddress: Address; - try { - toAddress = new Address(to, this.client.network); - } catch (e) { - throw new Error(`Invalid core recipient "${to}" for network ${this.client.network}`); + let outputScriptBytes: Buffer | undefined; + if (options.toAddress) { + let toAddress: Address; + try { + toAddress = new Address(options.toAddress, this.client.network); + } catch (e) { + throw new Error(`Invalid core recipient "${options.toAddress}" for network ${this.client.network}`); + } + + const outputScript = Script.buildPublicKeyHashOut(toAddress); + // @ts-ignore + outputScriptBytes = outputScript.toBuffer(); + + this.logger.debug(`[Identity#creditWithdrawal] credits withdrawal from ${identity.getId().toString()} to ${toAddress.toString()} with amount ${amount}`); + } else { + this.logger.debug(`[Identity#creditWithdrawal] credits withdrawal from ${identity.getId().toString()} to recent withdrawal address with amount ${amount}`); } - this.logger.debug(`[Identity#creditWithdrawal] credits withdrawal from ${identity.getId().toString()} to ${toAddress.toString()} with amount ${amount}`); - - const outputScript = Script.buildPublicKeyHashOut(toAddress); const balance = identity.getBalance(); if (amount > balance) { @@ -88,8 +101,7 @@ export async function creditWithdrawal( BigInt(amount), coreFeePerByte, DEFAULT_POOLING, - // @ts-ignore - outputScript.toBuffer(), + outputScriptBytes, BigInt(identityNonce), ); diff --git a/packages/js-grpc-common/package.json b/packages/js-grpc-common/package.json index d60d38ff57..a020b17265 100644 --- a/packages/js-grpc-common/package.json +++ b/packages/js-grpc-common/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/grpc-common", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Common GRPC library", "main": "index.js", "scripts": { diff --git a/packages/masternode-reward-shares-contract/Cargo.toml b/packages/masternode-reward-shares-contract/Cargo.toml index dc6c8d1fcc..dfe5ebfee8 100644 --- a/packages/masternode-reward-shares-contract/Cargo.toml +++ b/packages/masternode-reward-shares-contract/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "masternode-reward-shares-contract" description = "Masternode reward shares data contract schema and tools" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = "1.0.58" +thiserror = "1.0.64" platform-version = { path = "../rs-platform-version" } serde_json = { version = "1.0" } platform-value = { path = "../rs-platform-value" } diff --git a/packages/masternode-reward-shares-contract/package.json b/packages/masternode-reward-shares-contract/package.json index c0374d176d..5c48af39e5 100644 --- a/packages/masternode-reward-shares-contract/package.json +++ b/packages/masternode-reward-shares-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/masternode-reward-shares-contract", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "A contract and helper scripts for reward sharing", "scripts": { "lint": "eslint .", diff --git a/packages/platform-test-suite/package.json b/packages/platform-test-suite/package.json index 823ca061cb..dee2e4eec6 100644 --- a/packages/platform-test-suite/package.json +++ b/packages/platform-test-suite/package.json @@ -1,7 +1,7 @@ { "name": "@dashevo/platform-test-suite", "private": true, - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Dash Network end-to-end tests", "scripts": { "test": "yarn exec bin/test.sh", @@ -73,7 +73,7 @@ "url": "^0.11.3", "utf-8-validate": "^5.0.9", "util": "^0.12.4", - "webpack": "^5.76.1", + "webpack": "^5.94.0", "ws": "^8.17.1" }, "devDependencies": { diff --git a/packages/platform-test-suite/test/e2e/withdrawals.spec.js b/packages/platform-test-suite/test/e2e/withdrawals.spec.js index ecbac9b8de..f2a80ee433 100644 --- a/packages/platform-test-suite/test/e2e/withdrawals.spec.js +++ b/packages/platform-test-suite/test/e2e/withdrawals.spec.js @@ -8,7 +8,7 @@ const waitForSTPropagated = require('../../lib/waitForSTPropagated'); // TODO: temporary disabled due to flakiness. These tests aren't important for now, since we are // going to release v1.0.0 with withdrawals disabled. -describe.skip('Withdrawals', function withdrawalsTest() { +describe('Withdrawals', function withdrawalsTest() { this.bail(true); let client; @@ -38,7 +38,7 @@ describe.skip('Withdrawals', function withdrawalsTest() { }); describe('Any Identity', () => { - const INITIAL_BALANCE = 1000000; + const INITIAL_BALANCE = 2000000; before(async () => { identity = await client.platform.identities.register(INITIAL_BALANCE); @@ -57,7 +57,9 @@ describe.skip('Withdrawals', function withdrawalsTest() { await client.platform.identities.withdrawCredits( identity, BigInt(amountToWithdraw), - withdrawTo.address, + { + toAddress: withdrawTo.address, + }, ); // Re-fetch identity to obtain latest core chain lock height @@ -125,7 +127,9 @@ describe.skip('Withdrawals', function withdrawalsTest() { const { height: withdrawalHeight } = await client.platform.identities.withdrawCredits( identity, BigInt(amountToWithdraw), - withdrawTo.address, + { + toAddress: withdrawTo.address, + }, ); let withdrawalBroadcasted = false; @@ -173,11 +177,13 @@ describe.skip('Withdrawals', function withdrawalsTest() { await expect(client.platform.identities.withdrawCredits( identity, BigInt(amountToWithdraw), - withdrawTo.address, + { + toAddress: withdrawTo.address, + }, )).to.be.rejectedWith(`Withdrawal amount "${amountToWithdraw}" is bigger that identity balance "${identityBalanceBefore}"`); }); - it('should not allow to create withdrawal with wrong security key type', async () => { + it('should not allow to create withdrawal with authentication key purpose', async () => { const account = await client.getWalletAccount(); const identityBalanceBefore = identity.getBalance(); const withdrawTo = await account.getUnusedAddress(); @@ -186,11 +192,11 @@ describe.skip('Withdrawals', function withdrawalsTest() { await expect(client.platform.identities.withdrawCredits( identity, BigInt(amountToWithdraw), - withdrawTo.address, { + toAddress: withdrawTo.address, signingKeyIndex: 1, }, - )).to.be.rejectedWith('Error conversion not implemented: Invalid public key security level HIGH. The state transition requires one of CRITICAL'); + )).to.be.rejectedWith('Error conversion not implemented: Invalid identity key purpose AUTHENTICATION. This state transition requires TRANSFER | OWNER'); }); // TODO: Figure out how to overcome client-side validation and implement @@ -227,7 +233,9 @@ describe.skip('Withdrawals', function withdrawalsTest() { await client.platform.identities.withdrawCredits( identity, BigInt(1000000), - withdrawTo.address, + { + toAddress: withdrawTo.address, + }, ); await waitForSTPropagated(); diff --git a/packages/platform-test-suite/test/functional/platform/getStatus.spec.js b/packages/platform-test-suite/test/functional/platform/getStatus.spec.js new file mode 100644 index 0000000000..ca06674890 --- /dev/null +++ b/packages/platform-test-suite/test/functional/platform/getStatus.spec.js @@ -0,0 +1,28 @@ +const createClientWithoutWallet = require('../../../lib/test/createClientWithoutWallet'); + +describe('Platform', () => { + describe('getStatus', () => { + let client; + + before(async () => { + client = await createClientWithoutWallet(); + }); + + after(async () => { + if (client) { + await client.disconnect(); + } + }); + + it('should return status', async () => { + const status = await client.dapiClient.platform.getStatus(); + + expect(status).to.be.a.property('version'); + expect(status.version).to.have.property('software'); + expect(status.version.software).to.have.an('object'); + expect(status.version.software.dapi).to.be.a('string').and.not.be.empty(); + expect(status.version.software.drive).to.be.a('string').and.not.be.empty(); + expect(status.version.software.tenderdash).to.be.a('string').and.not.be.empty(); + }); + }); +}); diff --git a/packages/rs-dapi-client/Cargo.toml b/packages/rs-dapi-client/Cargo.toml index d38f7241ed..5f640333ab 100644 --- a/packages/rs-dapi-client/Cargo.toml +++ b/packages/rs-dapi-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rs-dapi-client" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" [features] @@ -24,7 +24,7 @@ dapi-grpc = { path = "../dapi-grpc" } futures = "0.3.28" http-serde = { version = "2.1", optional = true } rand = { version = "0.8.5", features = ["small_rng"] } -thiserror = "1.0.58" +thiserror = "1.0.64" tracing = "0.1.40" tokio = { version = "1.39", default-features = false } sha2 = { version = "0.10", optional = true } diff --git a/packages/rs-dapi-client/src/address_list.rs b/packages/rs-dapi-client/src/address_list.rs index ab4e2ba0eb..bf09b1af8c 100644 --- a/packages/rs-dapi-client/src/address_list.rs +++ b/packages/rs-dapi-client/src/address_list.rs @@ -85,7 +85,7 @@ pub enum AddressListError { /// A structure to manage DAPI addresses to select from /// for [DapiRequest](crate::DapiRequest) execution. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct AddressList { addresses: HashSet
, base_ban_period: Duration, @@ -221,3 +221,12 @@ impl FromIterator for AddressList { address_list } } + +impl IntoIterator for AddressList { + type Item = Address; + type IntoIter = std::collections::hash_set::IntoIter
; + + fn into_iter(self) -> Self::IntoIter { + self.addresses.into_iter() + } +} diff --git a/packages/rs-dapi-client/src/dapi_client.rs b/packages/rs-dapi-client/src/dapi_client.rs index 8e5a3d660b..17748ab2b0 100644 --- a/packages/rs-dapi-client/src/dapi_client.rs +++ b/packages/rs-dapi-client/src/dapi_client.rs @@ -112,6 +112,11 @@ impl DapiClient { dump_dir: None, } } + + /// Return the [DapiClient] address list. + pub fn address_list(&self) -> &Arc> { + &self.address_list + } } #[async_trait] diff --git a/packages/rs-dapi-client/src/dump.rs b/packages/rs-dapi-client/src/dump.rs index c81399395b..a1e23d1ff2 100644 --- a/packages/rs-dapi-client/src/dump.rs +++ b/packages/rs-dapi-client/src/dump.rs @@ -189,7 +189,6 @@ impl DapiClient { response: &MockResult, dump_dir: Option, ) where - R: Mockable, ::Response: Mockable, { let path = match dump_dir { diff --git a/packages/rs-dapi-client/src/lib.rs b/packages/rs-dapi-client/src/lib.rs index e4f5836e29..976537097e 100644 --- a/packages/rs-dapi-client/src/lib.rs +++ b/packages/rs-dapi-client/src/lib.rs @@ -14,6 +14,7 @@ pub mod transport; pub use address_list::Address; pub use address_list::AddressList; +pub use connection_pool::ConnectionPool; pub use dapi_client::DapiRequestExecutor; pub use dapi_client::{DapiClient, DapiClientError}; use dapi_grpc::mock::Mockable; diff --git a/packages/rs-dapi-client/src/transport/grpc.rs b/packages/rs-dapi-client/src/transport/grpc.rs index 43680130e8..98976ed08e 100644 --- a/packages/rs-dapi-client/src/transport/grpc.rs +++ b/packages/rs-dapi-client/src/transport/grpc.rs @@ -208,6 +208,14 @@ impl_transport_request_grpc!( get_identity_balance ); +impl_transport_request_grpc!( + platform_proto::GetIdentitiesBalancesRequest, + platform_proto::GetIdentitiesBalancesResponse, + PlatformGrpcClient, + RequestSettings::default(), + get_identities_balances +); + impl_transport_request_grpc!( platform_proto::GetIdentityNonceRequest, platform_proto::GetIdentityNonceResponse, @@ -323,6 +331,24 @@ impl_transport_request_grpc!( get_vote_polls_by_end_date ); +// rpc GetEvonodesProposedEpochBlocksByIdsRequest(GetEvonodesProposedEpochBlocksByIdsRequest) returns (GetEvonodesProposedEpochBlocksResponse); +impl_transport_request_grpc!( + platform_proto::GetEvonodesProposedEpochBlocksByIdsRequest, + platform_proto::GetEvonodesProposedEpochBlocksResponse, + PlatformGrpcClient, + RequestSettings::default(), + get_evonodes_proposed_epoch_blocks_by_ids +); + +// rpc GetEvonodesProposedEpochBlocksByRangeRequest(GetEvonodesProposedEpochBlocksByRangeRequest) returns (GetEvonodesProposedEpochBlocksResponse); +impl_transport_request_grpc!( + platform_proto::GetEvonodesProposedEpochBlocksByRangeRequest, + platform_proto::GetEvonodesProposedEpochBlocksResponse, + PlatformGrpcClient, + RequestSettings::default(), + get_evonodes_proposed_epoch_blocks_by_range +); + // rpc getPrefundedSpecializedBalance(GetPrefundedSpecializedBalanceRequest) returns (GetPrefundedSpecializedBalanceResponse); impl_transport_request_grpc!( platform_proto::GetPrefundedSpecializedBalanceRequest, @@ -350,6 +376,15 @@ impl_transport_request_grpc!( get_total_credits_in_platform ); +// rpc getCurrentQuorumsInfo(GetCurrentQuorumsInfoRequest) returns (GetCurrentQuorumsInfoResponse); +impl_transport_request_grpc!( + platform_proto::GetCurrentQuorumsInfoRequest, + platform_proto::GetCurrentQuorumsInfoResponse, + PlatformGrpcClient, + RequestSettings::default(), + get_current_quorums_info +); + // Link to each core gRPC request what client and method to use: impl_transport_request_grpc!( @@ -386,3 +421,12 @@ impl_transport_request_grpc!( }, subscribe_to_transactions_with_proofs ); + +// rpc getStatus(GetStatusRequest) returns (GetStatusResponse); +impl_transport_request_grpc!( + platform_proto::GetStatusRequest, + platform_proto::GetStatusResponse, + PlatformGrpcClient, + RequestSettings::default(), + get_status +); diff --git a/packages/rs-dapi-grpc-macros/Cargo.toml b/packages/rs-dapi-grpc-macros/Cargo.toml index 3ce313d59d..7d6a4c9eb6 100644 --- a/packages/rs-dapi-grpc-macros/Cargo.toml +++ b/packages/rs-dapi-grpc-macros/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "dapi-grpc-macros" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" description = "Macros used by dapi-grpc. Internal use only." diff --git a/packages/rs-dpp/Cargo.toml b/packages/rs-dpp/Cargo.toml index d0fca48e82..6c7ef95153 100644 --- a/packages/rs-dpp/Cargo.toml +++ b/packages/rs-dpp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dpp" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true authors = [ @@ -68,7 +68,7 @@ once_cell = "1.19.0" [dev-dependencies] test-case = { version = "3.3" } tokio = { version = "1.39", features = ["full"] } -pretty_assertions = { version = "1.3.0" } +pretty_assertions = { version = "1.4.1" } dpp = { path = ".", features = ["all_features_without_client"] } assert_matches = "1.5.0" once_cell = "1.7" @@ -87,6 +87,9 @@ all_features = [ "identity-hashing", "identity-serialization", "ciborium", + "core-types", + "core-types-serialization", + "core-types-serde-conversion", "document-serde-conversion", "document-value-conversion", "document-json-conversion", @@ -129,6 +132,9 @@ dash-sdk-features = [ "document-value-conversion", "data-contract-value-conversion", "identity-value-conversion", + "core-types", + "core-types-serialization", + "core-types-serde-conversion", "state-transition-serde-conversion", "state-transition-value-conversion", "state-transition-json-conversion", @@ -150,6 +156,9 @@ all_features_without_client = [ "identity-hashing", "identity-serialization", "ciborium", + "core-types", + "core-types-serialization", + "core-types-serde-conversion", "document-serde-conversion", "document-value-conversion", "document-json-conversion", @@ -187,6 +196,9 @@ abci = [ "identity-serialization", "vote-serialization", "platform-value-cbor", + "core-types", + "core-types-serialization", + "core-types-serde-conversion", ] cbor = ["ciborium"] validation = [ @@ -259,6 +271,9 @@ state-transition-signing = [ ] vote-serialization = [] vote-serde-conversion = [] +core-types = ["bls-signatures"] +core-types-serialization = ["core-types"] +core-types-serde-conversion = ["core-types"] state-transitions = [] system_contracts = ["factories", "data-contracts", "platform-value-json"] fixtures-and-mocks = ["system_contracts", "platform-value/json"] diff --git a/packages/rs-dpp/src/core_types/mod.rs b/packages/rs-dpp/src/core_types/mod.rs new file mode 100644 index 0000000000..10572cdf0f --- /dev/null +++ b/packages/rs-dpp/src/core_types/mod.rs @@ -0,0 +1,2 @@ +pub mod validator; +pub mod validator_set; diff --git a/packages/rs-dpp/src/core_types/validator/mod.rs b/packages/rs-dpp/src/core_types/validator/mod.rs new file mode 100644 index 0000000000..2261bac56f --- /dev/null +++ b/packages/rs-dpp/src/core_types/validator/mod.rs @@ -0,0 +1,119 @@ +use crate::bls_signatures::PublicKey as BlsPublicKey; +use crate::core_types::validator::v0::{ValidatorV0, ValidatorV0Getters, ValidatorV0Setters}; +use dashcore::{ProTxHash, PubkeyHash}; +#[cfg(feature = "core-types-serde-conversion")] +use serde::{Deserialize, Serialize}; + +/// Version 0 +pub mod v0; + +/// A validator in the context of a quorum +#[derive(Clone, Debug, Eq, PartialEq)] +#[cfg_attr( + feature = "core-types-serde-conversion", + derive(Serialize, Deserialize) +)] +pub enum Validator { + /// Version 0 + V0(ValidatorV0), +} + +impl ValidatorV0Getters for Validator { + fn pro_tx_hash(&self) -> &ProTxHash { + match self { + Validator::V0(v0) => v0.pro_tx_hash(), + } + } + + fn public_key(&self) -> &Option { + match self { + Validator::V0(v0) => v0.public_key(), + } + } + + fn node_ip(&self) -> &String { + match self { + Validator::V0(v0) => v0.node_ip(), + } + } + + fn node_id(&self) -> &PubkeyHash { + match self { + Validator::V0(v0) => v0.node_id(), + } + } + + fn core_port(&self) -> u16 { + match self { + Validator::V0(v0) => v0.core_port(), + } + } + + fn platform_http_port(&self) -> u16 { + match self { + Validator::V0(v0) => v0.platform_http_port(), + } + } + + fn platform_p2p_port(&self) -> u16 { + match self { + Validator::V0(v0) => v0.platform_p2p_port(), + } + } + + fn is_banned(&self) -> bool { + match self { + Validator::V0(v0) => v0.is_banned(), + } + } +} + +impl ValidatorV0Setters for Validator { + fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash) { + match self { + Validator::V0(v0) => v0.set_pro_tx_hash(pro_tx_hash), + } + } + + fn set_public_key(&mut self, public_key: Option) { + match self { + Validator::V0(v0) => v0.set_public_key(public_key), + } + } + + fn set_node_ip(&mut self, node_ip: String) { + match self { + Validator::V0(v0) => v0.set_node_ip(node_ip), + } + } + + fn set_node_id(&mut self, node_id: PubkeyHash) { + match self { + Validator::V0(v0) => v0.set_node_id(node_id), + } + } + + fn set_core_port(&mut self, core_port: u16) { + match self { + Validator::V0(v0) => v0.set_core_port(core_port), + } + } + + fn set_platform_http_port(&mut self, platform_http_port: u16) { + match self { + Validator::V0(v0) => v0.set_platform_http_port(platform_http_port), + } + } + + fn set_platform_p2p_port(&mut self, platform_p2p_port: u16) { + match self { + Validator::V0(v0) => v0.set_platform_p2p_port(platform_p2p_port), + } + } + + fn set_is_banned(&mut self, is_banned: bool) { + match self { + Validator::V0(v0) => v0.set_is_banned(is_banned), + } + } +} diff --git a/packages/rs-dpp/src/core_types/validator/v0/mod.rs b/packages/rs-dpp/src/core_types/validator/v0/mod.rs new file mode 100644 index 0000000000..daadc197fe --- /dev/null +++ b/packages/rs-dpp/src/core_types/validator/v0/mod.rs @@ -0,0 +1,252 @@ +use dashcore::{ProTxHash, PubkeyHash}; +use std::fmt::{Debug, Formatter}; + +use crate::bls_signatures::PublicKey as BlsPublicKey; +#[cfg(feature = "core-types-serde-conversion")] +use serde::{Deserialize, Serialize}; + +#[cfg(feature = "core-types-serialization")] +use bincode::de::Decoder; +#[cfg(feature = "core-types-serialization")] +use bincode::enc::Encoder; +#[cfg(feature = "core-types-serialization")] +use bincode::error::{DecodeError, EncodeError}; +#[cfg(feature = "core-types-serialization")] +use bincode::{Decode, Encode}; +#[cfg(feature = "core-types-serialization")] +use dashcore::hashes::Hash; + +/// A validator in the context of a quorum +#[derive(Clone, Eq, PartialEq)] +#[cfg_attr( + feature = "core-types-serde-conversion", + derive(Serialize, Deserialize) +)] +pub struct ValidatorV0 { + /// The proTxHash + pub pro_tx_hash: ProTxHash, + /// The public key share of this validator for this quorum + pub public_key: Option, + /// The node address + pub node_ip: String, + /// The node id + pub node_id: PubkeyHash, + /// Core port + pub core_port: u16, + /// Http port + pub platform_http_port: u16, + /// Tenderdash port + pub platform_p2p_port: u16, + /// Is the validator banned + pub is_banned: bool, +} + +#[cfg(feature = "core-types-serialization")] +impl Encode for ValidatorV0 { + fn encode(&self, encoder: &mut E) -> Result<(), EncodeError> { + // Encode each field in the order they appear in the struct + + // Encode ProTxHash + self.pro_tx_hash.to_byte_array().to_vec().encode(encoder)?; + + // Encode Option + match &self.public_key { + Some(public_key) => { + true.encode(encoder)?; // Indicate that public_key is present + public_key.to_bytes().encode(encoder)?; + } + None => { + false.encode(encoder)?; // Indicate that public_key is not present + } + } + + // Encode node_ip as a string + self.node_ip.encode(encoder)?; + + // Encode node_id + self.node_id.to_byte_array().to_vec().encode(encoder)?; + + // Encode core_port, platform_http_port, and platform_p2p_port as u16 + self.core_port.encode(encoder)?; + self.platform_http_port.encode(encoder)?; + self.platform_p2p_port.encode(encoder)?; + + // Encode is_banned as a boolean + self.is_banned.encode(encoder)?; + + Ok(()) + } +} + +#[cfg(feature = "core-types-serialization")] +impl Decode for ValidatorV0 { + fn decode(decoder: &mut D) -> Result { + // Decode each field in the same order as they were encoded + + // Decode ProTxHash + let pro_tx_hash_bytes = Vec::::decode(decoder)?; + let pro_tx_hash = ProTxHash::from_slice(&pro_tx_hash_bytes) + .map_err(|_| DecodeError::OtherString("Failed to decode ProTxHash".to_string()))?; + + // Decode Option + let has_public_key = bool::decode(decoder)?; + let public_key = if has_public_key { + let public_key_bytes = Vec::::decode(decoder)?; + Some(BlsPublicKey::from_bytes(&public_key_bytes).map_err(|_| { + DecodeError::OtherString("Failed to decode BlsPublicKey".to_string()) + })?) + } else { + None + }; + + // Decode node_ip as a string + let node_ip = String::decode(decoder)?; + + // Decode node_id + let node_id_bytes = Vec::::decode(decoder)?; + let node_id = PubkeyHash::from_slice(&node_id_bytes) + .map_err(|_| DecodeError::OtherString("Failed to decode NodeId".to_string()))?; + + // Decode core_port, platform_http_port, and platform_p2p_port as u16 + let core_port = u16::decode(decoder)?; + let platform_http_port = u16::decode(decoder)?; + let platform_p2p_port = u16::decode(decoder)?; + + // Decode is_banned as a boolean + let is_banned = bool::decode(decoder)?; + + Ok(ValidatorV0 { + pro_tx_hash, + public_key, + node_ip, + node_id, + core_port, + platform_http_port, + platform_p2p_port, + is_banned, + }) + } +} + +impl Debug for ValidatorV0 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ValidatorV0") + .field("pro_tx_hash", &self.pro_tx_hash.to_string()) + .field("public_key", &self.public_key) + .field("node_ip", &self.node_ip) + .field("node_id", &self.node_id) + .field("core_port", &self.core_port) + .field("platform_http_port", &self.platform_http_port) + .field("platform_p2p_port", &self.platform_p2p_port) + .field("is_banned", &self.is_banned) + .finish() + } +} + +/// Traits to get properties of a validator. +pub trait ValidatorV0Getters { + /// Returns the proTxHash of the validator. + fn pro_tx_hash(&self) -> &ProTxHash; + /// Returns the public key share of this validator for this quorum. + fn public_key(&self) -> &Option; + /// Returns the node address of the validator. + fn node_ip(&self) -> &String; + /// Returns the node id of the validator. + fn node_id(&self) -> &PubkeyHash; + /// Returns the core port of the validator. + fn core_port(&self) -> u16; + /// Returns the Http port of the validator. + fn platform_http_port(&self) -> u16; + /// Returns the Tenderdash port of the validator. + fn platform_p2p_port(&self) -> u16; + /// Returns the status of the validator whether it's banned or not. + fn is_banned(&self) -> bool; +} + +/// Traits to set properties of a validator. +pub trait ValidatorV0Setters { + /// Sets the proTxHash of the validator. + fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash); + /// Sets the public key share of this validator for this quorum. + fn set_public_key(&mut self, public_key: Option); + /// Sets the node address of the validator. + fn set_node_ip(&mut self, node_ip: String); + /// Sets the node id of the validator. + fn set_node_id(&mut self, node_id: PubkeyHash); + /// Sets the core port of the validator. + fn set_core_port(&mut self, core_port: u16); + /// Sets the Http port of the validator. + fn set_platform_http_port(&mut self, platform_http_port: u16); + /// Sets the Tenderdash port of the validator. + fn set_platform_p2p_port(&mut self, platform_p2p_port: u16); + /// Sets the status of the validator whether it's banned or not. + fn set_is_banned(&mut self, is_banned: bool); +} + +impl ValidatorV0Getters for ValidatorV0 { + fn pro_tx_hash(&self) -> &ProTxHash { + &self.pro_tx_hash + } + + fn public_key(&self) -> &Option { + &self.public_key + } + + fn node_ip(&self) -> &String { + &self.node_ip + } + + fn node_id(&self) -> &PubkeyHash { + &self.node_id + } + + fn core_port(&self) -> u16 { + self.core_port + } + + fn platform_http_port(&self) -> u16 { + self.platform_http_port + } + + fn platform_p2p_port(&self) -> u16 { + self.platform_p2p_port + } + + fn is_banned(&self) -> bool { + self.is_banned + } +} + +impl ValidatorV0Setters for ValidatorV0 { + fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash) { + self.pro_tx_hash = pro_tx_hash; + } + + fn set_public_key(&mut self, public_key: Option) { + self.public_key = public_key; + } + + fn set_node_ip(&mut self, node_ip: String) { + self.node_ip = node_ip; + } + + fn set_node_id(&mut self, node_id: PubkeyHash) { + self.node_id = node_id; + } + + fn set_core_port(&mut self, core_port: u16) { + self.core_port = core_port; + } + + fn set_platform_http_port(&mut self, platform_http_port: u16) { + self.platform_http_port = platform_http_port; + } + + fn set_platform_p2p_port(&mut self, platform_p2p_port: u16) { + self.platform_p2p_port = platform_p2p_port; + } + + fn set_is_banned(&mut self, is_banned: bool) { + self.is_banned = is_banned; + } +} diff --git a/packages/rs-dpp/src/core_types/validator_set/mod.rs b/packages/rs-dpp/src/core_types/validator_set/mod.rs new file mode 100644 index 0000000000..74b78fca05 --- /dev/null +++ b/packages/rs-dpp/src/core_types/validator_set/mod.rs @@ -0,0 +1,120 @@ +use crate::bls_signatures::PublicKey as BlsPublicKey; +use crate::core_types::validator::v0::ValidatorV0; +use crate::core_types::validator_set::v0::{ + ValidatorSetV0, ValidatorSetV0Getters, ValidatorSetV0Setters, +}; +#[cfg(feature = "core-types-serialization")] +use crate::ProtocolError; +#[cfg(feature = "core-types-serialization")] +use bincode::{Decode, Encode}; +use dashcore::{ProTxHash, QuorumHash}; +#[cfg(feature = "core-types-serialization")] +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +#[cfg(feature = "core-types-serde-conversion")] +use serde::{Deserialize, Serialize}; +use std::collections::BTreeMap; +use std::fmt::{Display, Formatter}; + +/// Version 0 +pub mod v0; + +/// The validator set is only slightly different from a quorum as it does not contain non valid +/// members +#[derive(Clone, Debug, Eq, PartialEq)] +#[cfg_attr( + feature = "core-types-serde-conversion", + derive(Serialize, Deserialize) +)] +#[cfg_attr( + feature = "core-types-serialization", + derive(Encode, Decode, PlatformDeserialize, PlatformSerialize), + platform_serialize(limit = 15000, unversioned) +)] +pub enum ValidatorSet { + /// Version 0 + V0(ValidatorSetV0), +} + +impl Display for ValidatorSet { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + ValidatorSet::V0(v0) => write!(f, "{}", v0), + } + } +} + +impl ValidatorSetV0Getters for ValidatorSet { + fn quorum_hash(&self) -> &QuorumHash { + match self { + ValidatorSet::V0(v0) => v0.quorum_hash(), + } + } + + fn quorum_index(&self) -> Option { + match self { + ValidatorSet::V0(v0) => v0.quorum_index(), + } + } + + fn core_height(&self) -> u32 { + match self { + ValidatorSet::V0(v0) => v0.core_height(), + } + } + + fn members(&self) -> &BTreeMap { + match self { + ValidatorSet::V0(v0) => v0.members(), + } + } + + fn members_mut(&mut self) -> &mut BTreeMap { + match self { + ValidatorSet::V0(v0) => v0.members_mut(), + } + } + + fn members_owned(self) -> BTreeMap { + match self { + ValidatorSet::V0(v0) => v0.members_owned(), + } + } + + fn threshold_public_key(&self) -> &BlsPublicKey { + match self { + ValidatorSet::V0(v0) => v0.threshold_public_key(), + } + } +} + +impl ValidatorSetV0Setters for ValidatorSet { + fn set_quorum_hash(&mut self, quorum_hash: QuorumHash) { + match self { + ValidatorSet::V0(v0) => v0.set_quorum_hash(quorum_hash), + } + } + + fn set_quorum_index(&mut self, index: Option) { + match self { + ValidatorSet::V0(v0) => v0.set_quorum_index(index), + } + } + + fn set_core_height(&mut self, core_height: u32) { + match self { + ValidatorSet::V0(v0) => v0.set_core_height(core_height), + } + } + + fn set_members(&mut self, members: BTreeMap) { + match self { + ValidatorSet::V0(v0) => v0.set_members(members), + } + } + + fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey) { + match self { + ValidatorSet::V0(v0) => v0.set_threshold_public_key(threshold_public_key), + } + } +} diff --git a/packages/rs-dpp/src/core_types/validator_set/v0/mod.rs b/packages/rs-dpp/src/core_types/validator_set/v0/mod.rs new file mode 100644 index 0000000000..2cf167277b --- /dev/null +++ b/packages/rs-dpp/src/core_types/validator_set/v0/mod.rs @@ -0,0 +1,280 @@ +use crate::bls_signatures::PublicKey as BlsPublicKey; +use crate::core_types::validator::v0::ValidatorV0; +#[cfg(feature = "core-types-serialization")] +use bincode::de::Decoder; +#[cfg(feature = "core-types-serialization")] +use bincode::enc::Encoder; +#[cfg(feature = "core-types-serialization")] +use bincode::error::EncodeError; +#[cfg(feature = "core-types-serialization")] +use bincode::{BorrowDecode, Decode, Encode}; +use dashcore::hashes::Hash; +use dashcore::{ProTxHash, QuorumHash}; +use itertools::Itertools; +#[cfg(feature = "core-types-serde-conversion")] +use serde::{Deserialize, Serialize}; +use std::collections::BTreeMap; +use std::fmt; +use std::fmt::{Debug, Display, Formatter}; + +/// The validator set is only slightly different from a quorum as it does not contain non valid +/// members +#[derive(Clone, Eq, PartialEq)] +#[cfg_attr( + feature = "core-types-serde-conversion", + derive(Serialize, Deserialize) +)] +pub struct ValidatorSetV0 { + /// The quorum hash + pub quorum_hash: QuorumHash, + /// Rotation quorum index is available only for DIP24 quorums + pub quorum_index: Option, + /// Active height + pub core_height: u32, + /// The list of masternodes + pub members: BTreeMap, + /// The threshold quorum public key + pub threshold_public_key: BlsPublicKey, +} + +impl Display for ValidatorSetV0 { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!( + f, + "ValidatorSet {{ + quorum_hash: {}, + quorum_index: {}, + core_height: {}, + members: [{}], + threshold_public_key: {} +}}", + hex::encode(self.quorum_hash), // Assuming QuorumHash is a byte array and should be in hex format + match self.quorum_index { + Some(index) => index.to_string(), + None => "None".to_string(), + }, + self.core_height, + self.members + .iter() + .map(|(pro_tx_hash, validator)| format!( + "{{{}: {}}}", + pro_tx_hash, validator.node_ip + )) + .join(", "), + hex::encode(self.threshold_public_key.to_bytes().as_slice()) // Assuming BlsPublicKey is a byte array + ) + } +} + +#[cfg(feature = "core-types-serialization")] +impl Encode for ValidatorSetV0 { + fn encode(&self, encoder: &mut E) -> Result<(), EncodeError> { + // Encode each field in the order they appear in the struct + let quorum_hash_bytes = self.quorum_hash.as_byte_array().to_vec(); + quorum_hash_bytes.encode(encoder)?; + self.quorum_index.encode(encoder)?; + self.core_height.encode(encoder)?; + + // Convert BTreeMap to Vec<(Vec, ValidatorV0)> and encode it + let members_as_vec: Vec<(Vec, ValidatorV0)> = self + .members + .iter() + .map(|(key, value)| (key.as_byte_array().to_vec(), value.clone())) + .collect(); + members_as_vec.encode(encoder)?; + + // Custom encoding for BlsPublicKey if needed + // Assuming BlsPublicKey can be serialized to a byte slice + let public_key_bytes = self.threshold_public_key.to_bytes(); + public_key_bytes.encode(encoder)?; + + Ok(()) + } +} + +#[cfg(feature = "core-types-serialization")] +impl Decode for ValidatorSetV0 { + fn decode(decoder: &mut D) -> Result { + // Decode each field in the same order as they were encoded + let quorum_hash = Vec::::decode(decoder)?; + let quorum_index = Option::::decode(decoder)?; + let core_height = u32::decode(decoder)?; + + // Decode Vec<(Vec, ValidatorV0)> and convert it back to BTreeMap + let members_as_vec = Vec::<(Vec, ValidatorV0)>::decode(decoder)?; + let members: BTreeMap = members_as_vec + .into_iter() + .map(|(key_bytes, value)| { + let key = ProTxHash::from_slice(&key_bytes).map_err(|_| { + bincode::error::DecodeError::OtherString( + "Failed to decode ProTxHash".to_string(), + ) + })?; + Ok((key, value)) + }) + .collect::>()?; + + // Custom decoding for BlsPublicKey if needed + // Assuming BlsPublicKey can be deserialized from a byte slice + let public_key_bytes = Vec::::decode(decoder)?; + let threshold_public_key = BlsPublicKey::from_bytes(&public_key_bytes).map_err(|_| { + bincode::error::DecodeError::OtherString("Failed to decode BlsPublicKey".to_string()) + })?; + + Ok(ValidatorSetV0 { + quorum_hash: QuorumHash::from_slice(&quorum_hash).map_err(|_| { + bincode::error::DecodeError::OtherString("Failed to decode QuorumHash".to_string()) + })?, + quorum_index, + core_height, + members, + threshold_public_key, + }) + } +} + +#[cfg(feature = "core-types-serialization")] +impl<'de> BorrowDecode<'de> for ValidatorSetV0 { + fn borrow_decode(decoder: &mut D) -> Result { + // Decode each field in the same order as they were encoded + + // Decode quorum_hash as Vec + let quorum_hash = Vec::::decode(decoder)?; + // Decode quorum_index as Option + let quorum_index = Option::::decode(decoder)?; + // Decode core_height as u32 + let core_height = u32::decode(decoder)?; + + // Decode Vec<(Vec, ValidatorV0)> and convert it back to BTreeMap + let members_as_vec = Vec::<(Vec, ValidatorV0)>::decode(decoder)?; + let members: BTreeMap = members_as_vec + .into_iter() + .map(|(key_bytes, value)| { + let key = ProTxHash::from_slice(&key_bytes).map_err(|_| { + bincode::error::DecodeError::OtherString( + "Failed to decode ProTxHash".to_string(), + ) + })?; + Ok((key, value)) + }) + .collect::>()?; + + // Custom decoding for BlsPublicKey if needed + let public_key_bytes = Vec::::decode(decoder)?; + let threshold_public_key = BlsPublicKey::from_bytes(&public_key_bytes).map_err(|_| { + bincode::error::DecodeError::OtherString("Failed to decode BlsPublicKey".to_string()) + })?; + + Ok(ValidatorSetV0 { + quorum_hash: QuorumHash::from_slice(&quorum_hash).map_err(|_| { + bincode::error::DecodeError::OtherString("Failed to decode QuorumHash".to_string()) + })?, + quorum_index, + core_height, + members, + threshold_public_key, + }) + } +} + +impl Debug for ValidatorSetV0 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ValidatorSetV0") + .field("quorum_hash", &self.quorum_hash.to_string()) + .field("core_height", &self.core_height) + .field( + "members", + &self + .members + .iter() + .map(|(k, v)| (k.to_string(), v)) + .collect::>(), + ) + .field("threshold_public_key", &self.threshold_public_key) + .finish() + } +} + +/// Trait providing getter methods for `ValidatorSetV0` struct +pub trait ValidatorSetV0Getters { + /// Returns the quorum hash of the validator set. + fn quorum_hash(&self) -> &QuorumHash; + /// Returns rotation quorum index. It's available only for DIP24 quorums + fn quorum_index(&self) -> Option; + /// Returns the active height of the validator set. + fn core_height(&self) -> u32; + /// Returns the members of the validator set. + fn members(&self) -> &BTreeMap; + /// Returns the members of the validator set. + fn members_mut(&mut self) -> &mut BTreeMap; + /// Returns the members of the validator set. + fn members_owned(self) -> BTreeMap; + /// Returns the threshold public key of the validator set. + fn threshold_public_key(&self) -> &BlsPublicKey; +} + +/// Trait providing setter methods for `ValidatorSetV0` struct +pub trait ValidatorSetV0Setters { + /// Sets the quorum hash of the validator set. + fn set_quorum_hash(&mut self, quorum_hash: QuorumHash); + /// Sets the quorum index of the validator set. + fn set_quorum_index(&mut self, index: Option); + /// Sets the active height of the validator set. + fn set_core_height(&mut self, core_height: u32); + /// Sets the members of the validator set. + fn set_members(&mut self, members: BTreeMap); + /// Sets the threshold public key of the validator set. + fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey); +} + +impl ValidatorSetV0Getters for ValidatorSetV0 { + fn quorum_hash(&self) -> &QuorumHash { + &self.quorum_hash + } + + fn quorum_index(&self) -> Option { + self.quorum_index + } + + fn core_height(&self) -> u32 { + self.core_height + } + + fn members(&self) -> &BTreeMap { + &self.members + } + + fn members_mut(&mut self) -> &mut BTreeMap { + &mut self.members + } + + fn members_owned(self) -> BTreeMap { + self.members + } + + fn threshold_public_key(&self) -> &BlsPublicKey { + &self.threshold_public_key + } +} + +impl ValidatorSetV0Setters for ValidatorSetV0 { + fn set_quorum_hash(&mut self, quorum_hash: QuorumHash) { + self.quorum_hash = quorum_hash; + } + + fn set_quorum_index(&mut self, index: Option) { + self.quorum_index = index; + } + + fn set_core_height(&mut self, core_height: u32) { + self.core_height = core_height; + } + + fn set_members(&mut self, members: BTreeMap) { + self.members = members; + } + + fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey) { + self.threshold_public_key = threshold_public_key; + } +} diff --git a/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs b/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs index 82019a53e7..57b3bffb37 100644 --- a/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs +++ b/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/v0/mod.rs @@ -76,7 +76,7 @@ const MAX_INDEXED_ARRAY_ITEMS: usize = 1024; impl DocumentTypeV0 { // TODO: Split into multiple functions #[allow(unused_variables)] - pub(crate) fn try_from_schema_v0( + pub(super) fn try_from_schema_v0( data_contract_id: Identifier, name: &str, schema: Value, diff --git a/packages/rs-dpp/src/errors/consensus/basic/basic_error.rs b/packages/rs-dpp/src/errors/consensus/basic/basic_error.rs index e2f2f25012..2b24a1e280 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/basic_error.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/basic_error.rs @@ -23,14 +23,15 @@ use crate::consensus::basic::decode::{ ProtocolVersionParsingError, SerializedObjectParsingError, VersionError, }; use crate::consensus::basic::document::{ - DataContractNotPresentError, DocumentCreationNotAllowedError, - DocumentFieldMaxSizeExceededError, DocumentTransitionsAreAbsentError, - DuplicateDocumentTransitionsWithIdsError, DuplicateDocumentTransitionsWithIndicesError, - InconsistentCompoundIndexDataError, InvalidDocumentTransitionActionError, - InvalidDocumentTransitionIdError, InvalidDocumentTypeError, - MaxDocumentsTransitionsExceededError, MissingDataContractIdBasicError, - MissingDocumentTransitionActionError, MissingDocumentTransitionTypeError, - MissingDocumentTypeError, MissingPositionsInDocumentTypePropertiesError, NonceOutOfBoundsError, + ContestedDocumentsTemporarilyNotAllowedError, DataContractNotPresentError, + DocumentCreationNotAllowedError, DocumentFieldMaxSizeExceededError, + DocumentTransitionsAreAbsentError, DuplicateDocumentTransitionsWithIdsError, + DuplicateDocumentTransitionsWithIndicesError, InconsistentCompoundIndexDataError, + InvalidDocumentTransitionActionError, InvalidDocumentTransitionIdError, + InvalidDocumentTypeError, MaxDocumentsTransitionsExceededError, + MissingDataContractIdBasicError, MissingDocumentTransitionActionError, + MissingDocumentTransitionTypeError, MissingDocumentTypeError, + MissingPositionsInDocumentTypePropertiesError, NonceOutOfBoundsError, }; use crate::consensus::basic::identity::{ DataContractBoundsNotPresentError, DisablingKeyIdAlsoBeingAddedInSameTransitionError, @@ -51,7 +52,7 @@ use crate::consensus::basic::identity::{ InvalidIdentityUpdateTransitionDisableKeysError, InvalidIdentityUpdateTransitionEmptyError, InvalidInstantAssetLockProofError, InvalidInstantAssetLockProofSignatureError, MissingMasterPublicKeyError, NotImplementedIdentityCreditWithdrawalTransitionPoolingError, - TooManyMasterPublicKeyError, + TooManyMasterPublicKeyError, WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError, }; use crate::consensus::basic::invalid_identifier_error::InvalidIdentifierError; use crate::consensus::basic::state_transition::{ @@ -334,6 +335,11 @@ pub enum BasicError { InvalidIdentityCreditWithdrawalTransitionOutputScriptError, ), + #[error(transparent)] + WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError( + WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError, + ), + #[error(transparent)] InvalidIdentityCreditWithdrawalTransitionCoreFeeError( InvalidIdentityCreditWithdrawalTransitionCoreFeeError, @@ -393,6 +399,9 @@ pub enum BasicError { #[error(transparent)] UnsupportedFeatureError(UnsupportedFeatureError), + + #[error(transparent)] + ContestedDocumentsTemporarilyNotAllowedError(ContestedDocumentsTemporarilyNotAllowedError), } impl From for ConsensusError { diff --git a/packages/rs-dpp/src/errors/consensus/basic/document/contested_documents_temporarily_not_allowed_error.rs b/packages/rs-dpp/src/errors/consensus/basic/document/contested_documents_temporarily_not_allowed_error.rs new file mode 100644 index 0000000000..55e01ad27a --- /dev/null +++ b/packages/rs-dpp/src/errors/consensus/basic/document/contested_documents_temporarily_not_allowed_error.rs @@ -0,0 +1,42 @@ +use crate::consensus::basic::BasicError; +use crate::consensus::ConsensusError; +use crate::errors::ProtocolError; +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +use thiserror::Error; + +use crate::block::epoch::EpochIndex; +use bincode::{Decode, Encode}; + +#[derive( + Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, +)] +#[error( + "Contested documents are not allowed until epoch {target_epoch}. Current epoch is {current_epoch}" +)] +#[platform_serialize(unversioned)] +pub struct ContestedDocumentsTemporarilyNotAllowedError { + /* + + DO NOT CHANGE ORDER OF FIELDS WITHOUT INTRODUCING OF NEW VERSION + + */ + current_epoch: EpochIndex, + target_epoch: EpochIndex, +} + +impl ContestedDocumentsTemporarilyNotAllowedError { + pub fn new(current_epoch: EpochIndex, target_epoch: EpochIndex) -> Self { + Self { + current_epoch, + target_epoch, + } + } +} + +impl From for ConsensusError { + fn from(err: ContestedDocumentsTemporarilyNotAllowedError) -> Self { + Self::BasicError(BasicError::ContestedDocumentsTemporarilyNotAllowedError( + err, + )) + } +} diff --git a/packages/rs-dpp/src/errors/consensus/basic/document/mod.rs b/packages/rs-dpp/src/errors/consensus/basic/document/mod.rs index 2297cea209..f40fc9c304 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/document/mod.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/document/mod.rs @@ -1,3 +1,4 @@ +mod contested_documents_temporarily_not_allowed_error; mod data_contract_not_present_error; mod document_creation_not_allowed_error; mod document_field_max_size_exceeded_error; @@ -16,6 +17,7 @@ mod missing_document_transition_type_error; mod missing_document_type_error; mod missing_positions_in_document_type_properties_error; +pub use contested_documents_temporarily_not_allowed_error::*; pub use data_contract_not_present_error::*; pub use document_creation_not_allowed_error::*; pub use document_field_max_size_exceeded_error::*; diff --git a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_amount_error.rs b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_amount_error.rs index 666c8ff299..11b91aba7e 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_amount_error.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_amount_error.rs @@ -10,7 +10,7 @@ use bincode::{Decode, Encode}; #[derive( Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, )] -#[error("Credit withdrawal amount {amount} must be greater or equal to {min_amount}")] +#[error("Credit withdrawal amount {amount} must be greater or equal to {min_amount} and less than {max_amount}")] #[platform_serialize(unversioned)] pub struct InvalidIdentityCreditWithdrawalTransitionAmountError { /* @@ -20,11 +20,16 @@ pub struct InvalidIdentityCreditWithdrawalTransitionAmountError { */ pub amount: u64, pub min_amount: u64, + pub max_amount: u64, } impl InvalidIdentityCreditWithdrawalTransitionAmountError { - pub fn new(amount: u64, min_amount: u64) -> Self { - Self { amount, min_amount } + pub fn new(amount: u64, min_amount: u64, max_amount: u64) -> Self { + Self { + amount, + min_amount, + max_amount, + } } pub fn amount(&self) -> u64 { @@ -34,6 +39,10 @@ impl InvalidIdentityCreditWithdrawalTransitionAmountError { pub fn min_amount(&self) -> u64 { self.min_amount } + + pub fn max_amount(&self) -> u64 { + self.max_amount + } } impl From for ConsensusError { diff --git a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs index 337cc1908c..9af57eb8be 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs @@ -29,6 +29,7 @@ impl InvalidIdentityCreditWithdrawalTransitionOutputScriptError { } pub fn output_script(&self) -> CoreScript { + // TODO: We shouldn't clone in getter 🤦 self.output_script.clone() } } diff --git a/packages/rs-dpp/src/errors/consensus/basic/identity/mod.rs b/packages/rs-dpp/src/errors/consensus/basic/identity/mod.rs index aafc111b85..3b411457fa 100644 --- a/packages/rs-dpp/src/errors/consensus/basic/identity/mod.rs +++ b/packages/rs-dpp/src/errors/consensus/basic/identity/mod.rs @@ -29,6 +29,7 @@ pub use invalid_instant_asset_lock_proof_signature_error::*; pub use missing_master_public_key_error::*; pub use not_implemented_identity_credit_withdrawal_transition_pooling_error::*; pub use too_many_master_public_key_error::*; +pub use withdrawal_output_script_not_allowed_when_signing_with_owner_key::*; mod data_contract_bounds_not_present_error; mod disabling_key_id_also_being_added_in_same_transition_error; @@ -62,3 +63,4 @@ mod invalid_instant_asset_lock_proof_signature_error; mod missing_master_public_key_error; mod not_implemented_identity_credit_withdrawal_transition_pooling_error; mod too_many_master_public_key_error; +mod withdrawal_output_script_not_allowed_when_signing_with_owner_key; diff --git a/packages/rs-dpp/src/errors/consensus/basic/identity/withdrawal_output_script_not_allowed_when_signing_with_owner_key.rs b/packages/rs-dpp/src/errors/consensus/basic/identity/withdrawal_output_script_not_allowed_when_signing_with_owner_key.rs new file mode 100644 index 0000000000..70f4c68b5d --- /dev/null +++ b/packages/rs-dpp/src/errors/consensus/basic/identity/withdrawal_output_script_not_allowed_when_signing_with_owner_key.rs @@ -0,0 +1,50 @@ +use crate::errors::ProtocolError; +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +use thiserror::Error; + +use crate::consensus::basic::BasicError; +use crate::consensus::ConsensusError; +use crate::identity::core_script::CoreScript; + +use crate::identity::KeyID; +use bincode::{Decode, Encode}; + +#[derive( + Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, +)] +#[error("Withdrawal output script not allowed when signing with owner key {key_id}")] +#[platform_serialize(unversioned)] +pub struct WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError { + output_script: CoreScript, + key_id: KeyID, +} + +/* + +DO NOT CHANGE ORDER OF FIELDS WITHOUT INTRODUCING OF NEW VERSION + +*/ + +impl WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError { + pub fn new(output_script: CoreScript, key_id: KeyID) -> Self { + Self { + output_script, + key_id, + } + } + + pub fn output_script(&self) -> &CoreScript { + &self.output_script + } + + pub fn key_id(&self) -> KeyID { + self.key_id + } +} +impl From for ConsensusError { + fn from(err: WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError) -> Self { + Self::BasicError( + BasicError::WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError(err), + ) + } +} diff --git a/packages/rs-dpp/src/errors/consensus/codes.rs b/packages/rs-dpp/src/errors/consensus/codes.rs index 2d6cd6ddad..aa05a541bf 100644 --- a/packages/rs-dpp/src/errors/consensus/codes.rs +++ b/packages/rs-dpp/src/errors/consensus/codes.rs @@ -118,6 +118,7 @@ impl ErrorWithCode for BasicError { Self::InvalidDocumentTypeNameError(_) => 10415, Self::DocumentCreationNotAllowedError(_) => 10416, Self::DocumentFieldMaxSizeExceededError(_) => 10417, + Self::ContestedDocumentsTemporarilyNotAllowedError(_) => 10418, // Identity Errors: 10500-10599 Self::DuplicatedIdentityPublicKeyBasicError(_) => 10500, @@ -152,6 +153,7 @@ impl ErrorWithCode for BasicError { Self::MasterPublicKeyUpdateError(_) => 10529, Self::IdentityAssetLockTransactionOutPointNotEnoughBalanceError(_) => 10530, Self::IdentityAssetLockStateTransitionReplayError(_) => 10531, + Self::WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError(_) => 10532, // State Transition Errors: 10600-10699 Self::InvalidStateTransitionTypeError { .. } => 10600, @@ -213,6 +215,7 @@ impl ErrorWithCode for StateError { Self::DocumentContestCurrentlyLockedError(_) => 40110, Self::DocumentContestNotJoinableError(_) => 40111, Self::DocumentContestIdentityAlreadyContestantError(_) => 40112, + Self::DocumentContestDocumentWithSameIdAlreadyPresentError(_) => 40113, // Identity Errors: 40200-40299 Self::IdentityAlreadyExistsError(_) => 40200, @@ -229,6 +232,8 @@ impl ErrorWithCode for StateError { Self::IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError(_) => 40211, Self::DocumentTypeUpdateError(_) => 40212, Self::DataContractUpdatePermissionError(_) => 40213, + Self::MissingTransferKeyError(_) => 40214, + Self::NoTransferKeyForCoreWithdrawalAvailableError(_) => 40215, // Voting Errors: 40300-40399 Self::MasternodeNotFoundError(_) => 40300, diff --git a/packages/rs-dpp/src/errors/consensus/signature/invalid_signature_public_key_purpose_error.rs b/packages/rs-dpp/src/errors/consensus/signature/invalid_signature_public_key_purpose_error.rs index 55a0596439..1477f7b1d9 100644 --- a/packages/rs-dpp/src/errors/consensus/signature/invalid_signature_public_key_purpose_error.rs +++ b/packages/rs-dpp/src/errors/consensus/signature/invalid_signature_public_key_purpose_error.rs @@ -8,11 +8,12 @@ use crate::errors::ProtocolError; use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; use bincode::{Decode, Encode}; +use itertools::Itertools; #[derive( Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, )] -#[error("Invalid public key purpose {public_key_purpose}. The state transition requires {allowed_key_purpose}")] +#[error("Invalid public key purpose {public_key_purpose}. The state transition requires {}", allowed_key_purposes.iter().map(|s| s.to_string()).join(" | "))] #[platform_serialize(unversioned)] pub struct InvalidSignaturePublicKeyPurposeError { /* @@ -21,22 +22,22 @@ pub struct InvalidSignaturePublicKeyPurposeError { */ public_key_purpose: Purpose, - allowed_key_purpose: Purpose, + allowed_key_purposes: Vec, } impl InvalidSignaturePublicKeyPurposeError { - pub fn new(public_key_purpose: Purpose, allowed_key_purpose: Purpose) -> Self { + pub fn new(public_key_purpose: Purpose, allowed_key_purposes: Vec) -> Self { Self { public_key_purpose, - allowed_key_purpose, + allowed_key_purposes, } } pub fn public_key_purpose(&self) -> Purpose { self.public_key_purpose } - pub fn allowed_key_purpose(&self) -> Purpose { - self.allowed_key_purpose + pub fn allowed_key_purposes(&self) -> &Vec { + &self.allowed_key_purposes } } diff --git a/packages/rs-dpp/src/errors/consensus/signature/wrong_public_key_purpose_error.rs b/packages/rs-dpp/src/errors/consensus/signature/wrong_public_key_purpose_error.rs index 501cf0d64b..4ea2b0c246 100644 --- a/packages/rs-dpp/src/errors/consensus/signature/wrong_public_key_purpose_error.rs +++ b/packages/rs-dpp/src/errors/consensus/signature/wrong_public_key_purpose_error.rs @@ -8,11 +8,12 @@ use crate::errors::ProtocolError; use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; use bincode::{Decode, Encode}; +use itertools::Itertools; #[derive( Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, )] -#[error("Invalid identity key purpose {public_key_purpose}. This state transition requires {key_purpose_requirement}")] +#[error("Invalid identity key purpose {public_key_purpose}. This state transition requires {}", allowed_key_purposes.iter().map(|s| s.to_string()).join(" | "))] #[platform_serialize(unversioned)] pub struct WrongPublicKeyPurposeError { /* @@ -21,22 +22,22 @@ pub struct WrongPublicKeyPurposeError { */ public_key_purpose: Purpose, - key_purpose_requirement: Purpose, + allowed_key_purposes: Vec, } impl WrongPublicKeyPurposeError { - pub fn new(public_key_purpose: Purpose, key_purpose_requirement: Purpose) -> Self { + pub fn new(public_key_purpose: Purpose, allowed_key_purposes: Vec) -> Self { Self { public_key_purpose, - key_purpose_requirement, + allowed_key_purposes, } } pub fn public_key_purpose(&self) -> Purpose { self.public_key_purpose } - pub fn key_purpose_requirement(&self) -> Purpose { - self.key_purpose_requirement + pub fn allowed_key_purposes(&self) -> &Vec { + &self.allowed_key_purposes } } @@ -56,7 +57,7 @@ impl From for Conse Self::SignatureError(SignatureError::WrongPublicKeyPurposeError( WrongPublicKeyPurposeError::new( value.public_key_purpose(), - value.key_purpose_requirement(), + value.allowed_key_purposes().clone(), ), )) } diff --git a/packages/rs-dpp/src/errors/consensus/state/document/document_contest_document_with_same_id_already_present_error.rs b/packages/rs-dpp/src/errors/consensus/state/document/document_contest_document_with_same_id_already_present_error.rs new file mode 100644 index 0000000000..7ddd37b52f --- /dev/null +++ b/packages/rs-dpp/src/errors/consensus/state/document/document_contest_document_with_same_id_already_present_error.rs @@ -0,0 +1,37 @@ +use crate::consensus::state::state_error::StateError; +use crate::consensus::ConsensusError; +use crate::errors::ProtocolError; +use bincode::{Decode, Encode}; +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +use platform_value::Identifier; +use thiserror::Error; + +#[derive( + Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, +)] +#[error("Document {document_id} is already present in a contest, entropy might be being reused")] +#[platform_serialize(unversioned)] +pub struct DocumentContestDocumentWithSameIdAlreadyPresentError { + /* + + DO NOT CHANGE ORDER OF FIELDS WITHOUT INTRODUCING OF NEW VERSION + + */ + document_id: Identifier, +} + +impl DocumentContestDocumentWithSameIdAlreadyPresentError { + pub fn new(document_id: Identifier) -> Self { + Self { document_id } + } + + pub fn document_id(&self) -> &Identifier { + &self.document_id + } +} + +impl From for ConsensusError { + fn from(err: DocumentContestDocumentWithSameIdAlreadyPresentError) -> Self { + Self::StateError(StateError::DocumentContestDocumentWithSameIdAlreadyPresentError(err)) + } +} diff --git a/packages/rs-dpp/src/errors/consensus/state/document/mod.rs b/packages/rs-dpp/src/errors/consensus/state/document/mod.rs index 9a3071065e..2a3441fe12 100644 --- a/packages/rs-dpp/src/errors/consensus/state/document/mod.rs +++ b/packages/rs-dpp/src/errors/consensus/state/document/mod.rs @@ -1,5 +1,6 @@ pub mod document_already_present_error; pub mod document_contest_currently_locked_error; +pub mod document_contest_document_with_same_id_already_present_error; pub mod document_contest_identity_already_contestant; pub mod document_contest_not_joinable_error; pub mod document_incorrect_purchase_price_error; diff --git a/packages/rs-dpp/src/errors/consensus/state/identity/missing_transfer_key_error.rs b/packages/rs-dpp/src/errors/consensus/state/identity/missing_transfer_key_error.rs new file mode 100644 index 0000000000..2f14ccacbc --- /dev/null +++ b/packages/rs-dpp/src/errors/consensus/state/identity/missing_transfer_key_error.rs @@ -0,0 +1,36 @@ +use crate::consensus::state::state_error::StateError; +use crate::consensus::ConsensusError; +use crate::errors::ProtocolError; +use bincode::{Decode, Encode}; +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +use platform_value::Identifier; +use thiserror::Error; + +#[derive( + Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, +)] +#[error("Identity {identity_id} does not have a key for transferring funds")] +#[platform_serialize(unversioned)] +pub struct MissingTransferKeyError { + /* + + DO NOT CHANGE ORDER OF FIELDS WITHOUT INTRODUCING OF NEW VERSION + + */ + identity_id: Identifier, +} + +impl MissingTransferKeyError { + pub fn new(identity_id: Identifier) -> Self { + Self { identity_id } + } + + pub fn identity_id(&self) -> &Identifier { + &self.identity_id + } +} +impl From for ConsensusError { + fn from(err: MissingTransferKeyError) -> Self { + Self::StateError(StateError::MissingTransferKeyError(err)) + } +} diff --git a/packages/rs-dpp/src/errors/consensus/state/identity/mod.rs b/packages/rs-dpp/src/errors/consensus/state/identity/mod.rs index 53a60d0ed4..35e6f7f79a 100644 --- a/packages/rs-dpp/src/errors/consensus/state/identity/mod.rs +++ b/packages/rs-dpp/src/errors/consensus/state/identity/mod.rs @@ -14,3 +14,5 @@ pub mod invalid_identity_revision_error; pub mod master_public_key_update_error; pub mod max_identity_public_key_limit_reached_error; pub mod missing_identity_public_key_ids_error; +pub mod missing_transfer_key_error; +pub mod no_transfer_key_for_core_withdrawal_available_error; diff --git a/packages/rs-dpp/src/errors/consensus/state/identity/no_transfer_key_for_core_withdrawal_available_error.rs b/packages/rs-dpp/src/errors/consensus/state/identity/no_transfer_key_for_core_withdrawal_available_error.rs new file mode 100644 index 0000000000..77f5d52305 --- /dev/null +++ b/packages/rs-dpp/src/errors/consensus/state/identity/no_transfer_key_for_core_withdrawal_available_error.rs @@ -0,0 +1,38 @@ +use crate::consensus::state::state_error::StateError; +use crate::consensus::ConsensusError; +use crate::errors::ProtocolError; +use bincode::{Decode, Encode}; +use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}; +use platform_value::Identifier; +use thiserror::Error; + +#[derive( + Error, Debug, Clone, PartialEq, Eq, Encode, Decode, PlatformSerialize, PlatformDeserialize, +)] +#[error("There is no transfer key that can be used for a withdrawal")] +#[platform_serialize(unversioned)] +pub struct NoTransferKeyForCoreWithdrawalAvailableError { + /* + + DO NOT CHANGE ORDER OF FIELDS WITHOUT INTRODUCING OF NEW VERSION + + */ + identity_id: Identifier, +} + +impl NoTransferKeyForCoreWithdrawalAvailableError { + pub fn new(identity_id: Identifier) -> Self { + Self { identity_id } + } + + pub fn identity_id(&self) -> &Identifier { + &self.identity_id + } +} +impl From for ConsensusError { + fn from(err: NoTransferKeyForCoreWithdrawalAvailableError) -> Self { + Self::StateError(StateError::NoTransferKeyForCoreWithdrawalAvailableError( + err, + )) + } +} diff --git a/packages/rs-dpp/src/errors/consensus/state/state_error.rs b/packages/rs-dpp/src/errors/consensus/state/state_error.rs index cf5736fd88..ab98b5c6fe 100644 --- a/packages/rs-dpp/src/errors/consensus/state/state_error.rs +++ b/packages/rs-dpp/src/errors/consensus/state/state_error.rs @@ -30,12 +30,15 @@ use crate::consensus::ConsensusError; use crate::consensus::state::data_contract::data_contract_update_permission_error::DataContractUpdatePermissionError; use crate::consensus::state::data_contract::document_type_update_error::DocumentTypeUpdateError; use crate::consensus::state::document::document_contest_currently_locked_error::DocumentContestCurrentlyLockedError; +use crate::consensus::state::document::document_contest_document_with_same_id_already_present_error::DocumentContestDocumentWithSameIdAlreadyPresentError; use crate::consensus::state::document::document_contest_identity_already_contestant::DocumentContestIdentityAlreadyContestantError; use crate::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError; use crate::consensus::state::document::document_incorrect_purchase_price_error::DocumentIncorrectPurchasePriceError; use crate::consensus::state::document::document_not_for_sale_error::DocumentNotForSaleError; use crate::consensus::state::identity::identity_public_key_already_exists_for_unique_contract_bounds_error::IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError; use crate::consensus::state::identity::invalid_identity_contract_nonce_error::InvalidIdentityNonceError; +use crate::consensus::state::identity::missing_transfer_key_error::MissingTransferKeyError; +use crate::consensus::state::identity::no_transfer_key_for_core_withdrawal_available_error::NoTransferKeyForCoreWithdrawalAvailableError; use crate::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_insufficient_error::PrefundedSpecializedBalanceInsufficientError; use crate::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_not_found_error::PrefundedSpecializedBalanceNotFoundError; use crate::consensus::state::voting::masternode_incorrect_voter_identity_id_error::MasternodeIncorrectVoterIdentityIdError; @@ -78,6 +81,11 @@ pub enum StateError { #[error(transparent)] DocumentContestIdentityAlreadyContestantError(DocumentContestIdentityAlreadyContestantError), + #[error(transparent)] + DocumentContestDocumentWithSameIdAlreadyPresentError( + DocumentContestDocumentWithSameIdAlreadyPresentError, + ), + #[error(transparent)] DocumentNotFoundError(DocumentNotFoundError), @@ -116,6 +124,12 @@ pub enum StateError { #[error(transparent)] MissingIdentityPublicKeyIdsError(MissingIdentityPublicKeyIdsError), + #[error(transparent)] + MissingTransferKeyError(MissingTransferKeyError), + + #[error(transparent)] + NoTransferKeyForCoreWithdrawalAvailableError(NoTransferKeyForCoreWithdrawalAvailableError), + #[error(transparent)] InvalidIdentityPublicKeyIdError(InvalidIdentityPublicKeyIdError), diff --git a/packages/rs-dpp/src/identity/core_script.rs b/packages/rs-dpp/src/identity/core_script.rs index 96cea532c7..ff43e44571 100644 --- a/packages/rs-dpp/src/identity/core_script.rs +++ b/packages/rs-dpp/src/identity/core_script.rs @@ -39,27 +39,35 @@ impl CoreScript { Self(bytes.into()) } - pub fn random_p2pkh(rng: &mut StdRng) -> Self { + pub fn new_p2pkh(key_hash: [u8; 20]) -> Self { let mut bytes: Vec = vec![ opcodes::all::OP_DUP.to_u8(), opcodes::all::OP_HASH160.to_u8(), opcodes::all::OP_PUSHBYTES_20.to_u8(), ]; - bytes.append(&mut rng.gen::<[u8; 20]>().to_vec()); + bytes.extend_from_slice(&key_hash); bytes.push(opcodes::all::OP_EQUALVERIFY.to_u8()); bytes.push(opcodes::all::OP_CHECKSIG.to_u8()); Self::from_bytes(bytes) } - pub fn random_p2sh(rng: &mut StdRng) -> Self { + pub fn new_p2sh(script_hash: [u8; 20]) -> Self { let mut bytes = vec![ opcodes::all::OP_HASH160.to_u8(), opcodes::all::OP_PUSHBYTES_20.to_u8(), ]; - bytes.append(&mut rng.gen::<[u8; 20]>().to_vec()); + bytes.extend_from_slice(&script_hash); bytes.push(opcodes::all::OP_EQUAL.to_u8()); Self::from_bytes(bytes) } + + pub fn random_p2sh(rng: &mut StdRng) -> Self { + Self::new_p2sh(rng.gen()) + } + + pub fn random_p2pkh(rng: &mut StdRng) -> Self { + Self::new_p2pkh(rng.gen()) + } } impl From> for CoreScript { diff --git a/packages/rs-dpp/src/identity/identity_facade.rs b/packages/rs-dpp/src/identity/identity_facade.rs index 919c68c624..eecdf45e6e 100644 --- a/packages/rs-dpp/src/identity/identity_facade.rs +++ b/packages/rs-dpp/src/identity/identity_facade.rs @@ -123,7 +123,7 @@ impl IdentityFacade { amount: u64, core_fee_per_byte: u32, pooling: Pooling, - output_script: CoreScript, + output_script: Option, identity_nonce: u64, ) -> Result { self.factory.create_identity_credit_withdrawal_transition( diff --git a/packages/rs-dpp/src/identity/identity_factory.rs b/packages/rs-dpp/src/identity/identity_factory.rs index c6aface591..48f7369818 100644 --- a/packages/rs-dpp/src/identity/identity_factory.rs +++ b/packages/rs-dpp/src/identity/identity_factory.rs @@ -43,6 +43,8 @@ use crate::state_transition::identity_credit_transfer_transition::IdentityCredit #[cfg(all(feature = "state-transitions", feature = "client"))] use crate::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; #[cfg(all(feature = "state-transitions", feature = "client"))] +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +#[cfg(all(feature = "state-transitions", feature = "client"))] use crate::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; #[cfg(all(feature = "state-transitions", feature = "client"))] use crate::state_transition::identity_topup_transition::accessors::IdentityTopUpTransitionAccessorsV0; @@ -233,22 +235,61 @@ impl IdentityFactory { amount: u64, core_fee_per_byte: u32, pooling: Pooling, - output_script: CoreScript, + output_script: Option, identity_nonce: IdentityNonce, ) -> Result { - let identity_credit_withdrawal_transition = IdentityCreditWithdrawalTransitionV0 { - identity_id, - amount, - core_fee_per_byte, - pooling, - output_script, - nonce: identity_nonce, - ..Default::default() + let platform_version = PlatformVersion::get(self.protocol_version)?; + + let identity_credit_withdrawal_transition = match platform_version + .dpp + .state_transitions + .identities + .credit_withdrawal + .default_constructor + { + 0 => { + let output_script = output_script.ok_or_else(|| { + ProtocolError::Generic( + "Output script is required for IdentityCreditWithdrawalTransitionV0" + .to_string(), + ) + })?; + + let transition = IdentityCreditWithdrawalTransitionV0 { + identity_id, + amount, + core_fee_per_byte, + pooling, + output_script, + nonce: identity_nonce, + ..Default::default() + }; + + IdentityCreditWithdrawalTransition::from(transition) + } + 1 => { + let transition = IdentityCreditWithdrawalTransitionV1 { + identity_id, + amount, + core_fee_per_byte, + pooling, + output_script, + nonce: identity_nonce, + ..Default::default() + }; + + IdentityCreditWithdrawalTransition::from(transition) + } + version => { + return Err(ProtocolError::UnknownVersionMismatch { + method: "create_identity_credit_withdrawal_transition".to_string(), + known_versions: vec![0, 1], + received: version, + }); + } }; - Ok(IdentityCreditWithdrawalTransition::from( - identity_credit_withdrawal_transition, - )) + Ok(identity_credit_withdrawal_transition) } #[cfg(all(feature = "state-transitions", feature = "client"))] diff --git a/packages/rs-dpp/src/identity/identity_public_key/key_type.rs b/packages/rs-dpp/src/identity/identity_public_key/key_type.rs index 8f4ad7bb5a..908f913969 100644 --- a/packages/rs-dpp/src/identity/identity_public_key/key_type.rs +++ b/packages/rs-dpp/src/identity/identity_public_key/key_type.rs @@ -1,4 +1,3 @@ -#[cfg(feature = "random-public-keys")] use crate::util::hash::ripemd160_sha256; use anyhow::bail; use bincode::{Decode, Encode}; @@ -8,16 +7,14 @@ use ciborium::value::Value as CborValue; use dashcore::secp256k1::rand::rngs::StdRng as EcdsaRng; #[cfg(feature = "random-public-keys")] use dashcore::secp256k1::rand::SeedableRng; -#[cfg(feature = "random-public-keys")] use dashcore::secp256k1::Secp256k1; -#[cfg(feature = "random-public-keys")] use dashcore::Network; use itertools::Itertools; use lazy_static::lazy_static; use crate::fee::Credits; use crate::version::PlatformVersion; -use crate::ProtocolError; +use crate::{InvalidVectorSizeError, ProtocolError}; #[cfg(feature = "random-public-keys")] use rand::rngs::StdRng; #[cfg(feature = "random-public-keys")] @@ -58,7 +55,8 @@ lazy_static! { (KeyType::ECDSA_SECP256K1, 33), (KeyType::BLS12_381, 48), (KeyType::ECDSA_HASH160, 20), - (KeyType::BIP13_SCRIPT_HASH, 20) + (KeyType::BIP13_SCRIPT_HASH, 20), + (KeyType::EDDSA_25519_HASH160, 20) ] .iter() .copied() @@ -99,6 +97,17 @@ impl KeyType { } } + /// Can this key type be understood as an address on the Core chain? + pub fn is_core_address_key_type(&self) -> bool { + match self { + KeyType::ECDSA_SECP256K1 => false, + KeyType::BLS12_381 => false, + KeyType::ECDSA_HASH160 => true, + KeyType::BIP13_SCRIPT_HASH => true, + KeyType::EDDSA_25519_HASH160 => false, + } + } + pub fn signature_verify_cost( &self, platform_version: &PlatformVersion, @@ -192,6 +201,73 @@ impl KeyType { } } + /// Gets the public key data for a private key depending on the key type + pub fn public_key_data_from_private_key_data( + &self, + private_key_bytes: &[u8], + network: Network, + ) -> Result, ProtocolError> { + match self { + KeyType::ECDSA_SECP256K1 => { + let secp = Secp256k1::new(); + let secret_key = dashcore::secp256k1::SecretKey::from_slice(private_key_bytes) + .map_err(|e| ProtocolError::Generic(e.to_string()))?; + let private_key = dashcore::PrivateKey::new(secret_key, network); + + Ok(private_key.public_key(&secp).to_bytes()) + } + KeyType::BLS12_381 => { + #[cfg(feature = "bls-signatures")] + { + let private_key = + bls_signatures::PrivateKey::from_bytes(private_key_bytes, false) + .map_err(|e| ProtocolError::Generic(e.to_string()))?; + let public_key_bytes = private_key + .g1_element() + .expect("expected to get a public key from a bls private key") + .to_bytes() + .to_vec(); + Ok(public_key_bytes) + } + #[cfg(not(feature = "bls-signatures"))] + return Err(ProtocolError::NotSupported( + "Converting a private key to a bls public key is not supported without the bls-signatures feature".to_string(), + )); + } + KeyType::ECDSA_HASH160 => { + let secp = Secp256k1::new(); + let secret_key = dashcore::secp256k1::SecretKey::from_slice(private_key_bytes) + .map_err(|e| ProtocolError::Generic(e.to_string()))?; + let private_key = dashcore::PrivateKey::new(secret_key, network); + + Ok(ripemd160_sha256(private_key.public_key(&secp).to_bytes().as_slice()).to_vec()) + } + KeyType::EDDSA_25519_HASH160 => { + #[cfg(feature = "ed25519-dalek")] + { + let key_pair = ed25519_dalek::SigningKey::from_bytes( + &private_key_bytes.try_into().map_err(|_| { + ProtocolError::InvalidVectorSizeError(InvalidVectorSizeError::new( + 32, + private_key_bytes.len(), + )) + })?, + ); + Ok(ripemd160_sha256(key_pair.verifying_key().to_bytes().as_slice()).to_vec()) + } + #[cfg(not(feature = "ed25519-dalek"))] + return Err(ProtocolError::NotSupported( + "Converting a private key to a eddsa hash 160 is not supported without the ed25519-dalek feature".to_string(), + )); + } + KeyType::BIP13_SCRIPT_HASH => { + return Err(ProtocolError::NotSupported( + "Converting a private key to a script hash is not supported".to_string(), + )); + } + } + } + #[cfg(feature = "random-public-keys")] /// Gets the default size of the public key pub fn random_public_and_private_key_data_v0(&self, rng: &mut StdRng) -> (Vec, Vec) { diff --git a/packages/rs-dpp/src/identity/identity_public_key/purpose.rs b/packages/rs-dpp/src/identity/identity_public_key/purpose.rs index dbadfa5748..36255fdc45 100644 --- a/packages/rs-dpp/src/identity/identity_public_key/purpose.rs +++ b/packages/rs-dpp/src/identity/identity_public_key/purpose.rs @@ -1,4 +1,6 @@ -use crate::identity::Purpose::{AUTHENTICATION, DECRYPTION, ENCRYPTION, SYSTEM, TRANSFER, VOTING}; +use crate::identity::Purpose::{ + AUTHENTICATION, DECRYPTION, ENCRYPTION, OWNER, SYSTEM, TRANSFER, VOTING, +}; use anyhow::bail; use bincode::{Decode, Encode}; #[cfg(feature = "cbor")] @@ -37,6 +39,8 @@ pub enum Purpose { SYSTEM = 4, /// this key cannot be used for signing documents VOTING = 5, + /// this key is used to prove ownership of a masternode or evonode + OWNER = 6, } impl From for [u8; 1] { @@ -54,6 +58,7 @@ impl From for &'static [u8; 1] { TRANSFER => &[3], SYSTEM => &[4], VOTING => &[5], + OWNER => &[6], } } } @@ -68,6 +73,7 @@ impl TryFrom for Purpose { 3 => Ok(TRANSFER), 4 => Ok(SYSTEM), 5 => Ok(VOTING), + 6 => Ok(OWNER), value => bail!("unrecognized purpose: {}", value), } } @@ -83,6 +89,7 @@ impl TryFrom for Purpose { 3 => Ok(TRANSFER), 4 => Ok(SYSTEM), 5 => Ok(VOTING), + 6 => Ok(OWNER), value => bail!("unrecognized purpose: {}", value), } } @@ -102,8 +109,15 @@ impl std::fmt::Display for Purpose { impl Purpose { /// The full range of purposes - pub fn full_range() -> [Purpose; 5] { - [AUTHENTICATION, ENCRYPTION, DECRYPTION, TRANSFER, VOTING] + pub fn full_range() -> [Purpose; 6] { + [ + AUTHENTICATION, + ENCRYPTION, + DECRYPTION, + TRANSFER, + VOTING, + OWNER, + ] } /// Just the authentication and withdraw purposes pub fn searchable_purposes() -> [Purpose; 3] { @@ -113,8 +127,4 @@ impl Purpose { pub fn encryption_decryption() -> [Purpose; 2] { [ENCRYPTION, DECRYPTION] } - /// The last purpose - pub fn last() -> Purpose { - Self::TRANSFER - } } diff --git a/packages/rs-dpp/src/identity/identity_public_key/random.rs b/packages/rs-dpp/src/identity/identity_public_key/random.rs index 0dea7a5dee..dec286b927 100644 --- a/packages/rs-dpp/src/identity/identity_public_key/random.rs +++ b/packages/rs-dpp/src/identity/identity_public_key/random.rs @@ -467,6 +467,149 @@ impl IdentityPublicKey { } } + /// Generates a random ECDSA critical-level authentication key for a masternode owner. + /// + /// This function generates a random key that can be used for owner authentication in a masternode context. + /// The function accepts an optional seed for deterministic key generation, or uses entropy-based randomness if no seed is provided. + /// + /// # Parameters + /// + /// * `id`: The identifier (`KeyID`) for the masternode owner key. + /// * `seed`: An optional `u64` value used to seed the random number generator. If `None`, the RNG will be seeded from entropy. + /// * `platform_version`: A reference to the `PlatformVersion` struct, which is used to determine the correct key structure version. + /// + /// # Returns + /// + /// Returns a tuple containing the generated `IdentityPublicKey` for the masternode owner and the corresponding private key as a byte vector. + /// + /// # Errors + /// + /// Returns a `ProtocolError` if the platform version is not supported. + pub fn random_masternode_owner_key( + id: KeyID, + seed: Option, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + let mut rng = match seed { + None => StdRng::from_entropy(), + Some(seed_value) => StdRng::seed_from_u64(seed_value), + }; + Self::random_masternode_owner_key_with_rng(id, &mut rng, platform_version) + } + + /// Generates a random ECDSA critical-level authentication key for a masternode owner using a custom RNG. + /// + /// This function generates a random key using a given random number generator (RNG). This is useful when specific control over the randomness is needed. + /// + /// # Parameters + /// + /// * `id`: The identifier (`KeyID`) for the masternode owner key. + /// * `rng`: A mutable reference to a `StdRng` instance used to generate randomness. + /// * `platform_version`: A reference to the `PlatformVersion` struct, which is used to determine the correct key structure version. + /// + /// # Returns + /// + /// Returns a tuple containing the generated `IdentityPublicKey` for the masternode owner and the corresponding private key as a byte vector. + /// + /// # Errors + /// + /// Returns a `ProtocolError` if the platform version is not supported. + pub fn random_masternode_owner_key_with_rng( + id: KeyID, + rng: &mut StdRng, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + match platform_version + .dpp + .identity_versions + .identity_key_structure_version + { + 0 => { + let (key, private_key) = + IdentityPublicKeyV0::random_owner_key_with_rng(id, rng, platform_version)?; + Ok((key.into(), private_key)) + } + version => Err(ProtocolError::UnknownVersionMismatch { + method: "IdentityPublicKey::random_masternode_owner_key_with_rng".to_string(), + known_versions: vec![0], + received: version, + }), + } + } + + /// Generates a random ECDSA critical-level transfer key for a masternode. + /// + /// This function generates a random key for use in transferring ownership of a masternode. An optional seed can be provided for deterministic key generation, or entropy-based randomness is used if no seed is given. + /// + /// # Parameters + /// + /// * `id`: The identifier (`KeyID`) for the masternode transfer key. + /// * `seed`: An optional `u64` value used to seed the random number generator. If `None`, the RNG will be seeded from entropy. + /// * `platform_version`: A reference to the `PlatformVersion` struct, which is used to determine the correct key structure version. + /// + /// # Returns + /// + /// Returns a tuple containing the generated `IdentityPublicKey` for the masternode transfer key and the corresponding private key as a byte vector. + /// + /// # Errors + /// + /// Returns a `ProtocolError` if the platform version is not supported. + pub fn random_masternode_transfer_key( + id: KeyID, + seed: Option, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + let mut rng = match seed { + None => StdRng::from_entropy(), + Some(seed_value) => StdRng::seed_from_u64(seed_value), + }; + Self::random_masternode_transfer_key_with_rng(id, &mut rng, platform_version) + } + + /// Generates a random ECDSA critical-level transfer key for a masternode using a custom RNG. + /// + /// This function generates a random key for masternode transfers using a given random number generator (RNG). + /// + /// # Parameters + /// + /// * `id`: The identifier (`KeyID`) for the masternode transfer key. + /// * `rng`: A mutable reference to a `StdRng` instance used to generate randomness. + /// * `platform_version`: A reference to the `PlatformVersion` struct, which is used to determine the correct key structure version. + /// + /// # Returns + /// + /// Returns a tuple containing the generated `IdentityPublicKey` for the masternode transfer key and the corresponding private key as a byte vector. + /// + /// # Errors + /// + /// Returns a `ProtocolError` if the platform version is not supported. + pub fn random_masternode_transfer_key_with_rng( + id: KeyID, + rng: &mut StdRng, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + match platform_version + .dpp + .identity_versions + .identity_key_structure_version + { + 0 => { + let (key, private_key) = + IdentityPublicKeyV0::random_masternode_transfer_key_with_rng( + id, + rng, + platform_version, + )?; + Ok((key.into(), private_key)) + } + version => Err(ProtocolError::UnknownVersionMismatch { + method: "IdentityPublicKey::random_masternode_transfer_key_with_rng".to_string(), + known_versions: vec![0], + received: version, + }), + } + } + /// Generates a random ECDSA high-level authentication public key along with its corresponding private key. /// /// This method constructs a random ECDSA (using the secp256k1 curve) high-level authentication public key diff --git a/packages/rs-dpp/src/identity/identity_public_key/security_level.rs b/packages/rs-dpp/src/identity/identity_public_key/security_level.rs index 978134016b..4cd9f0d2ed 100644 --- a/packages/rs-dpp/src/identity/identity_public_key/security_level.rs +++ b/packages/rs-dpp/src/identity/identity_public_key/security_level.rs @@ -35,6 +35,23 @@ pub enum SecurityLevel { MEDIUM = 3, } +impl From for [u8; 1] { + fn from(security_level: SecurityLevel) -> Self { + [security_level as u8] + } +} + +impl From for &'static [u8; 1] { + fn from(security_level: SecurityLevel) -> Self { + match security_level { + SecurityLevel::MASTER => &[0], + SecurityLevel::CRITICAL => &[1], + SecurityLevel::HIGH => &[2], + SecurityLevel::MEDIUM => &[3], + } + } +} + #[cfg(feature = "cbor")] impl Into for SecurityLevel { fn into(self) -> CborValue { diff --git a/packages/rs-dpp/src/identity/identity_public_key/v0/random.rs b/packages/rs-dpp/src/identity/identity_public_key/v0/random.rs index 13afdd673f..162e836e1b 100644 --- a/packages/rs-dpp/src/identity/identity_public_key/v0/random.rs +++ b/packages/rs-dpp/src/identity/identity_public_key/v0/random.rs @@ -1,7 +1,7 @@ use crate::identity::contract_bounds::ContractBounds; use crate::identity::identity_public_key::v0::IdentityPublicKeyV0; use crate::identity::KeyType::{ECDSA_HASH160, ECDSA_SECP256K1}; -use crate::identity::Purpose::{AUTHENTICATION, VOTING}; +use crate::identity::Purpose::{AUTHENTICATION, OWNER, TRANSFER, VOTING}; use crate::identity::SecurityLevel::{CRITICAL, HIGH, MASTER, MEDIUM}; use crate::identity::{KeyCount, KeyID, KeyType, Purpose, SecurityLevel}; use crate::version::PlatformVersion; @@ -245,6 +245,58 @@ impl IdentityPublicKeyV0 { )) } + pub fn random_owner_key_with_rng( + id: KeyID, + rng: &mut StdRng, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + let key_type = ECDSA_HASH160; + let purpose = OWNER; + let security_level = CRITICAL; + let read_only = true; + let (data, private_data) = + key_type.random_public_and_private_key_data(rng, platform_version)?; + Ok(( + IdentityPublicKeyV0 { + id, + key_type, + purpose, + security_level, + read_only, + disabled_at: None, + data: data.into(), + contract_bounds: None, + }, + private_data, + )) + } + + pub fn random_masternode_transfer_key_with_rng( + id: KeyID, + rng: &mut StdRng, + platform_version: &PlatformVersion, + ) -> Result<(Self, Vec), ProtocolError> { + let key_type = ECDSA_HASH160; + let purpose = TRANSFER; + let security_level = CRITICAL; + let read_only = true; + let (data, private_data) = + key_type.random_public_and_private_key_data(rng, platform_version)?; + Ok(( + IdentityPublicKeyV0 { + id, + key_type, + purpose, + security_level, + read_only, + disabled_at: None, + data: data.into(), + contract_bounds: None, + }, + private_data, + )) + } + pub fn random_ecdsa_critical_level_authentication_key_with_rng( id: KeyID, rng: &mut StdRng, diff --git a/packages/rs-dpp/src/identity/signer.rs b/packages/rs-dpp/src/identity/signer.rs index 549a55da42..e069e43a11 100644 --- a/packages/rs-dpp/src/identity/signer.rs +++ b/packages/rs-dpp/src/identity/signer.rs @@ -10,4 +10,7 @@ pub trait Signer: Sync + Debug { identity_public_key: &IdentityPublicKey, data: &[u8], ) -> Result; + + /// do we have this identity public key in the signer? + fn can_sign_with(&self, identity_public_key: &IdentityPublicKey) -> bool; } diff --git a/packages/rs-dpp/src/lib.rs b/packages/rs-dpp/src/lib.rs index d2dc8b7f6e..6dd0312fc2 100644 --- a/packages/rs-dpp/src/lib.rs +++ b/packages/rs-dpp/src/lib.rs @@ -52,6 +52,9 @@ pub mod signing; #[cfg(feature = "system_contracts")] pub mod system_data_contracts; pub mod voting; + +#[cfg(feature = "core-types")] +pub mod core_types; pub mod withdrawal; pub use async_trait; diff --git a/packages/rs-dpp/src/state_transition/errors/wrong_public_key_purpose_error.rs b/packages/rs-dpp/src/state_transition/errors/wrong_public_key_purpose_error.rs index 7f1fdb8522..5b469e2fa9 100644 --- a/packages/rs-dpp/src/state_transition/errors/wrong_public_key_purpose_error.rs +++ b/packages/rs-dpp/src/state_transition/errors/wrong_public_key_purpose_error.rs @@ -2,27 +2,28 @@ use thiserror::Error; use crate::identity::Purpose; use crate::ProtocolError; +use itertools::Itertools; #[derive(Error, Debug, Clone, PartialEq, Eq)] -#[error("Invalid identity key purpose {public_key_purpose}. This state transition requires {key_purpose_requirement}")] +#[error("Invalid identity key purpose {public_key_purpose}. This state transition requires {}", allowed_key_purposes.iter().map(|s| s.to_string()).join(" | "))] pub struct WrongPublicKeyPurposeError { public_key_purpose: Purpose, - key_purpose_requirement: Purpose, + allowed_key_purposes: Vec, } impl WrongPublicKeyPurposeError { - pub fn new(public_key_purpose: Purpose, key_purpose_requirement: Purpose) -> Self { + pub fn new(public_key_purpose: Purpose, allowed_key_purposes: Vec) -> Self { Self { public_key_purpose, - key_purpose_requirement, + allowed_key_purposes, } } pub fn public_key_purpose(&self) -> Purpose { self.public_key_purpose } - pub fn key_purpose_requirement(&self) -> Purpose { - self.key_purpose_requirement + pub fn allowed_key_purposes(&self) -> &Vec { + &self.allowed_key_purposes } } diff --git a/packages/rs-dpp/src/state_transition/mod.rs b/packages/rs-dpp/src/state_transition/mod.rs index 879bb6e871..cd97cae4ae 100644 --- a/packages/rs-dpp/src/state_transition/mod.rs +++ b/packages/rs-dpp/src/state_transition/mod.rs @@ -152,8 +152,8 @@ macro_rules! call_getter_method_identity_signed { StateTransition::DataContractCreate(st) => Some(st.$method($args)), StateTransition::DataContractUpdate(st) => Some(st.$method($args)), StateTransition::DocumentsBatch(st) => Some(st.$method($args)), - StateTransition::IdentityCreate(st) => None, - StateTransition::IdentityTopUp(st) => None, + StateTransition::IdentityCreate(_) => None, + StateTransition::IdentityTopUp(_) => None, StateTransition::IdentityCreditWithdrawal(st) => Some(st.$method($args)), StateTransition::IdentityUpdate(st) => Some(st.$method($args)), StateTransition::IdentityCreditTransfer(st) => Some(st.$method($args)), @@ -165,8 +165,8 @@ macro_rules! call_getter_method_identity_signed { StateTransition::DataContractCreate(st) => Some(st.$method()), StateTransition::DataContractUpdate(st) => Some(st.$method()), StateTransition::DocumentsBatch(st) => Some(st.$method()), - StateTransition::IdentityCreate(_st) => None, - StateTransition::IdentityTopUp(_st) => None, + StateTransition::IdentityCreate(_) => None, + StateTransition::IdentityTopUp(_) => None, StateTransition::IdentityCreditWithdrawal(st) => Some(st.$method()), StateTransition::IdentityUpdate(st) => Some(st.$method()), StateTransition::IdentityCreditTransfer(st) => Some(st.$method()), @@ -400,12 +400,12 @@ impl StateTransition { } /// returns the key security level requirement for the state transition - pub fn security_level_requirement(&self) -> Option> { - call_getter_method_identity_signed!(self, security_level_requirement) + pub fn security_level_requirement(&self, purpose: Purpose) -> Option> { + call_getter_method_identity_signed!(self, security_level_requirement, purpose) } /// returns the key purpose requirement for the state transition - pub fn purpose_requirement(&self) -> Option { + pub fn purpose_requirement(&self) -> Option> { call_getter_method_identity_signed!(self, purpose_requirement) } @@ -457,7 +457,7 @@ impl StateTransition { return Err(ProtocolError::WrongPublicKeyPurposeError( WrongPublicKeyPurposeError::new( identity_public_key.purpose(), - Purpose::AUTHENTICATION, + vec![Purpose::AUTHENTICATION], ), )); } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/identity_signed.rs index fe0bff68c7..4b2704c07d 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/identity_signed.rs @@ -1,4 +1,4 @@ -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::data_contract_create_transition::DataContractCreateTransition; use crate::state_transition::StateTransitionIdentitySigned; @@ -17,9 +17,11 @@ impl StateTransitionIdentitySigned for DataContractCreateTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { - DataContractCreateTransition::V0(transition) => transition.security_level_requirement(), + DataContractCreateTransition::V0(transition) => { + transition.security_level_requirement(purpose) + } } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/identity_signed.rs index c7b4464dec..be2682bc82 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/identity_signed.rs @@ -1,5 +1,5 @@ use crate::identity::SecurityLevel::{CRITICAL, HIGH}; -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::data_contract_create_transition::DataContractCreateTransitionV0; use crate::state_transition::StateTransitionIdentitySigned; @@ -12,7 +12,7 @@ impl StateTransitionIdentitySigned for DataContractCreateTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![CRITICAL, HIGH] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/v0_methods.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/v0_methods.rs index ca6fe4e148..f1ed8c9b36 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/v0_methods.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_create_transition/v0/v0_methods.rs @@ -65,11 +65,11 @@ impl DataContractCreateTransitionMethodsV0 for DataContractCreateTransitionV0 { )), )?; - let security_level_requirements = state_transition.security_level_requirement().ok_or( - ProtocolError::CorruptedCodeExecution( + let security_level_requirements = state_transition + .security_level_requirement(public_key.purpose()) + .ok_or(ProtocolError::CorruptedCodeExecution( "expected security level requirements".to_string(), - ), - )?; + ))?; if !security_level_requirements.contains(&public_key.security_level()) { return Err(ProtocolError::ConsensusError(Box::new( diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/identity_signed.rs index b56e0dd30b..50c8cb9ce4 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/identity_signed.rs @@ -1,4 +1,4 @@ -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::data_contract_update_transition::DataContractUpdateTransition; use crate::state_transition::StateTransitionIdentitySigned; @@ -18,9 +18,11 @@ impl StateTransitionIdentitySigned for DataContractUpdateTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { - DataContractUpdateTransition::V0(transition) => transition.security_level_requirement(), + DataContractUpdateTransition::V0(transition) => { + transition.security_level_requirement(purpose) + } } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/identity_signed.rs index 6508a9ab76..3c39e2d90a 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/contract/data_contract_update_transition/v0/identity_signed.rs @@ -1,5 +1,5 @@ use crate::identity::SecurityLevel::CRITICAL; -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::data_contract_update_transition::DataContractUpdateTransitionV0; use crate::state_transition::StateTransitionIdentitySigned; @@ -12,7 +12,7 @@ impl StateTransitionIdentitySigned for DataContractUpdateTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![CRITICAL] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/identity_signed.rs index f5d5f967aa..3d8a2d1486 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/identity_signed.rs @@ -1,4 +1,4 @@ -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::documents_batch_transition::DocumentsBatchTransition; use crate::state_transition::StateTransitionIdentitySigned; @@ -17,9 +17,11 @@ impl StateTransitionIdentitySigned for DocumentsBatchTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { - DocumentsBatchTransition::V0(transition) => transition.security_level_requirement(), + DocumentsBatchTransition::V0(transition) => { + transition.security_level_requirement(purpose) + } } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/v0/identity_signed.rs index fd4916864a..bdc0fe583a 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/document/documents_batch_transition/v0/identity_signed.rs @@ -1,5 +1,5 @@ use crate::identity::SecurityLevel::{CRITICAL, HIGH, MEDIUM}; -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::documents_batch_transition::DocumentsBatchTransitionV0; use crate::state_transition::StateTransitionIdentitySigned; @@ -13,7 +13,7 @@ impl StateTransitionIdentitySigned for DocumentsBatchTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { // These are the available key levels that must sign the state transition // However the fact that it is signed by one of these does not guarantee that it // meets the security level requirement, as that is dictated from within the data diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/identity_signed.rs index 4b3b448eb5..60dd03cf6f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/identity_signed.rs @@ -19,15 +19,15 @@ impl StateTransitionIdentitySigned for IdentityCreditTransferTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { IdentityCreditTransferTransition::V0(transition) => { - transition.security_level_requirement() + transition.security_level_requirement(purpose) } } } - fn purpose_requirement(&self) -> Purpose { + fn purpose_requirement(&self) -> Vec { match self { IdentityCreditTransferTransition::V0(transition) => transition.purpose_requirement(), } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/identity_signed.rs index bcab635e22..acc328d274 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/identity_signed.rs @@ -12,11 +12,11 @@ impl StateTransitionIdentitySigned for IdentityCreditTransferTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![CRITICAL] } - fn purpose_requirement(&self) -> Purpose { - Purpose::TRANSFER + fn purpose_requirement(&self) -> Vec { + vec![Purpose::TRANSFER] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/mod.rs index dbf33c5a56..eb952d6509 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/mod.rs @@ -13,6 +13,7 @@ impl IdentityCreditWithdrawalTransitionAccessorsV0 for IdentityCreditWithdrawalT fn identity_id(&self) -> Identifier { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.identity_id, + IdentityCreditWithdrawalTransition::V1(transition) => transition.identity_id, } } @@ -21,12 +22,16 @@ impl IdentityCreditWithdrawalTransitionAccessorsV0 for IdentityCreditWithdrawalT IdentityCreditWithdrawalTransition::V0(transition) => { transition.identity_id = identity_id; } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.identity_id = identity_id; + } } } fn amount(&self) -> u64 { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.amount, + IdentityCreditWithdrawalTransition::V1(transition) => transition.amount, } } @@ -35,24 +40,30 @@ impl IdentityCreditWithdrawalTransitionAccessorsV0 for IdentityCreditWithdrawalT IdentityCreditWithdrawalTransition::V0(transition) => { transition.amount = amount; } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.amount = amount; + } } } fn set_nonce(&mut self, nonce: IdentityNonce) { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.nonce = nonce, + IdentityCreditWithdrawalTransition::V1(transition) => transition.nonce = nonce, } } fn nonce(&self) -> IdentityNonce { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.nonce, + IdentityCreditWithdrawalTransition::V1(transition) => transition.nonce, } } fn pooling(&self) -> Pooling { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.pooling, + IdentityCreditWithdrawalTransition::V1(transition) => transition.pooling, } } @@ -61,12 +72,16 @@ impl IdentityCreditWithdrawalTransitionAccessorsV0 for IdentityCreditWithdrawalT IdentityCreditWithdrawalTransition::V0(transition) => { transition.pooling = pooling; } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.pooling = pooling; + } } } fn core_fee_per_byte(&self) -> u32 { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.core_fee_per_byte, + IdentityCreditWithdrawalTransition::V1(transition) => transition.core_fee_per_byte, } } @@ -75,18 +90,29 @@ impl IdentityCreditWithdrawalTransitionAccessorsV0 for IdentityCreditWithdrawalT IdentityCreditWithdrawalTransition::V0(transition) => { transition.core_fee_per_byte = core_fee_per_byte; } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.core_fee_per_byte = core_fee_per_byte; + } } } - fn output_script(&self) -> CoreScript { + fn output_script(&self) -> Option { match self { - IdentityCreditWithdrawalTransition::V0(transition) => transition.output_script.clone(), + IdentityCreditWithdrawalTransition::V0(transition) => { + Some(transition.output_script.clone()) + } + IdentityCreditWithdrawalTransition::V1(transition) => transition.output_script.clone(), } } - fn set_output_script(&mut self, output_script: CoreScript) { + fn set_output_script(&mut self, output_script: Option) { match self { IdentityCreditWithdrawalTransition::V0(transition) => { + if let Some(output_script) = output_script { + transition.output_script = output_script; + } + } + IdentityCreditWithdrawalTransition::V1(transition) => { transition.output_script = output_script; } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/v0/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/v0/mod.rs index 1bcd8b2945..2e666ac1c7 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/v0/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/accessors/v0/mod.rs @@ -14,6 +14,6 @@ pub trait IdentityCreditWithdrawalTransitionAccessorsV0 { fn set_pooling(&mut self, pooling: Pooling); fn core_fee_per_byte(&self) -> u32; fn set_core_fee_per_byte(&mut self, amount: u32); - fn output_script(&self) -> CoreScript; - fn set_output_script(&mut self, output_script: CoreScript); + fn output_script(&self) -> Option; + fn set_output_script(&mut self, output_script: Option); } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/identity_signed.rs index 2dd369f3b3..75165fbb7d 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/identity_signed.rs @@ -8,6 +8,9 @@ impl StateTransitionIdentitySigned for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.signature_public_key_id() } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.signature_public_key_id() + } } } @@ -16,20 +19,27 @@ impl StateTransitionIdentitySigned for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.set_signature_public_key_id(key_id) } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.set_signature_public_key_id(key_id) + } } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { IdentityCreditWithdrawalTransition::V0(transition) => { - transition.security_level_requirement() + transition.security_level_requirement(purpose) + } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.security_level_requirement(purpose) } } } - fn purpose_requirement(&self) -> Purpose { + fn purpose_requirement(&self) -> Vec { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.purpose_requirement(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.purpose_requirement(), } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/json_conversion.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/json_conversion.rs index b5a5946e62..ada6044e54 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/json_conversion.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/json_conversion.rs @@ -22,6 +22,15 @@ impl<'a> StateTransitionJsonConvert<'a> for IdentityCreditWithdrawalTransition { ); Ok(value) } + IdentityCreditWithdrawalTransition::V1(transition) => { + let mut value = transition.to_json(options)?; + let map_value = value.as_object_mut().expect("expected an object"); + map_value.insert( + STATE_TRANSITION_PROTOCOL_VERSION.to_string(), + JsonValue::Number(Number::from(1)), + ); + Ok(value) + } } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/mod.rs index 96b2654046..acab5d8f3c 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/mod.rs @@ -17,7 +17,7 @@ use crate::identity::IdentityPublicKey; #[cfg(feature = "state-transition-signing")] use crate::prelude::{IdentityNonce, UserFeeIncrease}; #[cfg(feature = "state-transition-signing")] -use crate::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; #[cfg(feature = "state-transition-signing")] use crate::state_transition::StateTransition; #[cfg(feature = "state-transition-signing")] @@ -31,13 +31,14 @@ impl IdentityCreditWithdrawalTransitionMethodsV0 for IdentityCreditWithdrawalTra #[cfg(feature = "state-transition-signing")] fn try_from_identity( identity: &Identity, - withdrawal_key_to_use: Option<&IdentityPublicKey>, - output_script: CoreScript, + output_script: Option, amount: u64, pooling: Pooling, core_fee_per_byte: u32, user_fee_increase: UserFeeIncrease, signer: S, + signing_withdrawal_key_to_use: Option<&IdentityPublicKey>, + preferred_key_purpose_for_signing_withdrawal: PreferredKeyPurposeForSigningWithdrawal, nonce: IdentityNonce, platform_version: &PlatformVersion, version: Option, @@ -48,22 +49,25 @@ impl IdentityCreditWithdrawalTransitionMethodsV0 for IdentityCreditWithdrawalTra .state_transition_conversion_versions .identity_to_identity_withdrawal_transition, ) { - 0 => Ok(IdentityCreditWithdrawalTransitionV0::try_from_identity( + 1 => Ok(IdentityCreditWithdrawalTransitionV1::try_from_identity( identity, - withdrawal_key_to_use, output_script, amount, pooling, core_fee_per_byte, user_fee_increase, signer, + signing_withdrawal_key_to_use, + preferred_key_purpose_for_signing_withdrawal, nonce, platform_version, version, )?), - v => Err(ProtocolError::UnknownVersionError(format!( - "Unknown IdentityCreditWithdrawalTransition version for try_from_identity {v}" - ))), + version => Err(ProtocolError::UnknownVersionMismatch { + method: "IdentityCreditWithdrawalTransition::try_from_identity".to_string(), + known_versions: vec![1], + received: version, + }), } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/v0/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/v0/mod.rs index 0341f253f1..2836b96cc6 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/v0/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/methods/v0/mod.rs @@ -1,34 +1,43 @@ #[cfg(feature = "state-transition-signing")] -use crate::identity::core_script::CoreScript; -#[cfg(feature = "state-transition-signing")] -use crate::identity::signer::Signer; -#[cfg(feature = "state-transition-signing")] -use crate::identity::Identity; -#[cfg(feature = "state-transition-signing")] -use crate::identity::IdentityPublicKey; -#[cfg(feature = "state-transition-signing")] -use crate::prelude::{IdentityNonce, UserFeeIncrease}; -#[cfg(feature = "state-transition-signing")] -use crate::state_transition::StateTransition; +use crate::{ + identity::{core_script::CoreScript, signer::Signer, Identity, IdentityPublicKey}, + prelude::{IdentityNonce, UserFeeIncrease}, + state_transition::StateTransition, + withdrawal::Pooling, + ProtocolError, +}; + use crate::state_transition::StateTransitionType; #[cfg(feature = "state-transition-signing")] -use crate::withdrawal::Pooling; -#[cfg(feature = "state-transition-signing")] -use crate::ProtocolError; -#[cfg(feature = "state-transition-signing")] use platform_version::version::{FeatureVersion, PlatformVersion}; +/// The key purpose that is preferred for signing the withdrawal +#[cfg(feature = "state-transition-signing")] +pub enum PreferredKeyPurposeForSigningWithdrawal { + /// Use any key + Any, + /// Use the owner key, then the transfer key + OwnerPreferred, + /// Use the transfer key, then the owner key + TransferPreferred, + /// Only use the owner key + OwnerOnly, + /// Only use the transfer key + TransferOnly, +} + pub trait IdentityCreditWithdrawalTransitionMethodsV0 { #[cfg(feature = "state-transition-signing")] fn try_from_identity( identity: &Identity, - withdrawal_key_to_use: Option<&IdentityPublicKey>, - output_script: CoreScript, + output_script: Option, amount: u64, pooling: Pooling, core_fee_per_byte: u32, user_fee_increase: UserFeeIncrease, signer: S, + signing_withdrawal_key_to_use: Option<&IdentityPublicKey>, + preferred_key_purpose_for_signing_withdrawal: PreferredKeyPurposeForSigningWithdrawal, nonce: IdentityNonce, platform_version: &PlatformVersion, version: Option, diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/mod.rs index f773296936..0badee88b9 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/mod.rs @@ -8,6 +8,7 @@ mod json_conversion; pub mod methods; mod state_transition_like; pub mod v0; +pub mod v1; #[cfg(feature = "state-transition-value-conversion")] mod value_conversion; mod version; @@ -15,9 +16,14 @@ mod version; use crate::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0Signable; use crate::state_transition::StateTransitionFieldTypes; +use crate::balances::credits::CREDITS_PER_DUFF; use crate::identity::state_transition::OptionallyAssetLockProved; +use crate::state_transition::identity_credit_withdrawal_transition::v1::{ + IdentityCreditWithdrawalTransitionV1, IdentityCreditWithdrawalTransitionV1Signable, +}; use crate::ProtocolError; use bincode::{Decode, Encode}; +use dashcore::transaction::special_transaction::asset_unlock::qualified_asset_unlock::ASSET_UNLOCK_TX_SIZE; use derive_more::From; use fields::*; use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize, PlatformSignable}; @@ -26,7 +32,14 @@ use platform_versioning::PlatformVersioned; #[cfg(feature = "state-transition-serde-conversion")] use serde::{Deserialize, Serialize}; -pub type IdentityCreditWithdrawalTransitionLatest = IdentityCreditWithdrawalTransitionV0; +/// Minimal core per byte. Must be a fibonacci number +pub const MIN_CORE_FEE_PER_BYTE: u32 = 1; + +/// Minimal amount in credits (x1000) to avoid "dust" error in Core +pub const MIN_WITHDRAWAL_AMOUNT: u64 = + (ASSET_UNLOCK_TX_SIZE as u64) * (MIN_CORE_FEE_PER_BYTE as u64) * CREDITS_PER_DUFF; + +pub type IdentityCreditWithdrawalTransitionLatest = IdentityCreditWithdrawalTransitionV1; #[derive( Debug, @@ -52,21 +65,28 @@ pub type IdentityCreditWithdrawalTransitionLatest = IdentityCreditWithdrawalTran pub enum IdentityCreditWithdrawalTransition { #[cfg_attr(feature = "state-transition-serde-conversion", serde(rename = "0"))] V0(IdentityCreditWithdrawalTransitionV0), + #[cfg_attr(feature = "state-transition-serde-conversion", serde(rename = "1"))] + V1(IdentityCreditWithdrawalTransitionV1), } impl IdentityCreditWithdrawalTransition { pub fn default_versioned(platform_version: &PlatformVersion) -> Result { match platform_version .dpp - .identity_versions - .identity_structure_version + .state_transitions + .identities + .credit_withdrawal + .default_constructor { 0 => Ok(IdentityCreditWithdrawalTransition::V0( IdentityCreditWithdrawalTransitionV0::default(), )), + 1 => Ok(IdentityCreditWithdrawalTransition::V1( + IdentityCreditWithdrawalTransitionV1::default(), + )), version => Err(ProtocolError::UnknownVersionMismatch { method: "IdentityCreditWithdrawalTransition::default_versioned".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, }), } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs index 022294a3a6..165d071b4b 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/state_transition_like.rs @@ -9,12 +9,14 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { fn modified_data_ids(&self) -> Vec { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.modified_data_ids(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.modified_data_ids(), } } fn state_transition_protocol_version(&self) -> FeatureVersion { match self { IdentityCreditWithdrawalTransition::V0(_) => 0, + IdentityCreditWithdrawalTransition::V1(_) => 0, } } /// returns the type of State Transition @@ -23,12 +25,16 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.state_transition_type() } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.state_transition_type() + } } } /// returns the signature as a byte-array fn signature(&self) -> &BinaryData { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.signature(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.signature(), } } /// set a new signature @@ -37,6 +43,9 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.set_signature(signature) } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.set_signature(signature) + } } } @@ -44,6 +53,7 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { fn user_fee_increase(&self) -> UserFeeIncrease { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.user_fee_increase(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.user_fee_increase(), } } /// set a fee multiplier @@ -52,6 +62,9 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.set_user_fee_increase(user_fee_increase) } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.set_user_fee_increase(user_fee_increase) + } } } @@ -60,18 +73,23 @@ impl StateTransitionLike for IdentityCreditWithdrawalTransition { IdentityCreditWithdrawalTransition::V0(transition) => { transition.set_signature_bytes(signature) } + IdentityCreditWithdrawalTransition::V1(transition) => { + transition.set_signature_bytes(signature) + } } } fn owner_id(&self) -> Identifier { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.owner_id(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.owner_id(), } } fn unique_identifiers(&self) -> Vec { match self { IdentityCreditWithdrawalTransition::V0(transition) => transition.unique_identifiers(), + IdentityCreditWithdrawalTransition::V1(transition) => transition.unique_identifiers(), } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/identity_signed.rs index 2c8011f2fd..122a1b4534 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/identity_signed.rs @@ -13,11 +13,11 @@ impl StateTransitionIdentitySigned for IdentityCreditWithdrawalTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![CRITICAL] } - fn purpose_requirement(&self) -> Purpose { - Purpose::TRANSFER + fn purpose_requirement(&self) -> Vec { + vec![Purpose::TRANSFER] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/mod.rs index 2a5246b9ab..2be39083e0 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/mod.rs @@ -3,19 +3,16 @@ mod identity_signed; mod json_conversion; mod state_transition_like; mod types; -mod v0_methods; #[cfg(feature = "state-transition-value-conversion")] mod value_conversion; mod version; use bincode::{Decode, Encode}; -use dashcore::transaction::special_transaction::asset_unlock::qualified_asset_unlock::ASSET_UNLOCK_TX_SIZE; use platform_serialization_derive::PlatformSignable; use platform_value::BinaryData; #[cfg(feature = "state-transition-serde-conversion")] use serde::{Deserialize, Serialize}; -use crate::balances::credits::CREDITS_PER_DUFF; use crate::prelude::{IdentityNonce, UserFeeIncrease}; use crate::{ identity::{core_script::CoreScript, KeyID}, @@ -24,14 +21,6 @@ use crate::{ ProtocolError, }; -// TODO: unsafe - we must use actual relay fee from core -/// Minimal core per byte. Must be a fibonacci number -pub const MIN_CORE_FEE_PER_BYTE: u32 = 1; - -/// Minimal amount in credits (x1000) to avoid "dust" error in Core -pub const MIN_WITHDRAWAL_AMOUNT: u64 = - (ASSET_UNLOCK_TX_SIZE as u64) * (MIN_CORE_FEE_PER_BYTE as u64) * CREDITS_PER_DUFF; - #[derive(Debug, Clone, Encode, Decode, PlatformSignable, PartialEq)] #[cfg_attr( feature = "state-transition-serde-conversion", diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/v0_methods.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/v0_methods.rs deleted file mode 100644 index 8d4f813231..0000000000 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v0/v0_methods.rs +++ /dev/null @@ -1,76 +0,0 @@ -#[cfg(feature = "state-transition-signing")] -use crate::identity::accessors::IdentityGettersV0; -#[cfg(feature = "state-transition-signing")] -use crate::identity::core_script::CoreScript; -#[cfg(feature = "state-transition-signing")] -use crate::identity::signer::Signer; -#[cfg(feature = "state-transition-signing")] -use crate::identity::IdentityPublicKey; -#[cfg(feature = "state-transition-signing")] -use crate::identity::{Identity, KeyType, Purpose, SecurityLevel}; -#[cfg(feature = "state-transition-signing")] -use crate::prelude::{IdentityNonce, UserFeeIncrease}; -use crate::state_transition::identity_credit_withdrawal_transition::methods::IdentityCreditWithdrawalTransitionMethodsV0; -use crate::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; -#[cfg(feature = "state-transition-signing")] -use crate::state_transition::{GetDataContractSecurityLevelRequirementFn, StateTransition}; -#[cfg(feature = "state-transition-signing")] -use crate::withdrawal::Pooling; -#[cfg(feature = "state-transition-signing")] -use crate::ProtocolError; -#[cfg(feature = "state-transition-signing")] -use platform_version::version::{FeatureVersion, PlatformVersion}; - -impl IdentityCreditWithdrawalTransitionMethodsV0 for IdentityCreditWithdrawalTransitionV0 { - #[cfg(feature = "state-transition-signing")] - fn try_from_identity( - identity: &Identity, - withdrawal_key_to_use: Option<&IdentityPublicKey>, - output_script: CoreScript, - amount: u64, - pooling: Pooling, - core_fee_per_byte: u32, - user_fee_increase: UserFeeIncrease, - signer: S, - nonce: IdentityNonce, - _platform_version: &PlatformVersion, - _version: Option, - ) -> Result { - let mut transition: StateTransition = IdentityCreditWithdrawalTransitionV0 { - identity_id: identity.id(), - amount, - core_fee_per_byte, - pooling, - output_script, - nonce, - user_fee_increase, - signature_public_key_id: 0, - signature: Default::default(), - } - .into(); - - let identity_public_key = match withdrawal_key_to_use { - Some(key) => key, - None => identity - .get_first_public_key_matching( - Purpose::TRANSFER, - SecurityLevel::full_range().into(), - KeyType::all_key_types().into(), - true, - ) - .ok_or_else(|| { - ProtocolError::DesiredKeyWithTypePurposeSecurityLevelMissing( - "no withdrawal public key".to_string(), - ) - })?, - }; - - transition.sign_external( - identity_public_key, - &signer, - None::, - )?; - - Ok(transition) - } -} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/identity_signed.rs new file mode 100644 index 0000000000..bc541c4b3c --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/identity_signed.rs @@ -0,0 +1,23 @@ +use crate::identity::SecurityLevel::CRITICAL; +use crate::identity::{KeyID, Purpose, SecurityLevel}; +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use crate::state_transition::StateTransitionIdentitySigned; + +impl StateTransitionIdentitySigned for IdentityCreditWithdrawalTransitionV1 { + fn signature_public_key_id(&self) -> KeyID { + self.signature_public_key_id + } + + fn set_signature_public_key_id(&mut self, key_id: KeyID) { + self.signature_public_key_id = key_id + } + + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { + // critical is used for both transfer and owner + vec![CRITICAL] + } + + fn purpose_requirement(&self) -> Vec { + vec![Purpose::TRANSFER, Purpose::OWNER] + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/json_conversion.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/json_conversion.rs new file mode 100644 index 0000000000..10b835cfc0 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/json_conversion.rs @@ -0,0 +1,4 @@ +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use crate::state_transition::StateTransitionJsonConvert; + +impl<'a> StateTransitionJsonConvert<'a> for IdentityCreditWithdrawalTransitionV1 {} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/mod.rs new file mode 100644 index 0000000000..ef18ac89a3 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/mod.rs @@ -0,0 +1,45 @@ +mod identity_signed; +#[cfg(feature = "state-transition-json-conversion")] +mod json_conversion; +mod state_transition_like; +mod types; +mod v0_methods; +#[cfg(feature = "state-transition-value-conversion")] +mod value_conversion; +mod version; + +use bincode::{Decode, Encode}; +use platform_serialization_derive::PlatformSignable; +use platform_value::BinaryData; +#[cfg(feature = "state-transition-serde-conversion")] +use serde::{Deserialize, Serialize}; + +use crate::prelude::{IdentityNonce, UserFeeIncrease}; +use crate::{ + identity::{core_script::CoreScript, KeyID}, + prelude::Identifier, + withdrawal::Pooling, + ProtocolError, +}; + +#[derive(Debug, Clone, Encode, Decode, PlatformSignable, PartialEq)] +#[cfg_attr( + feature = "state-transition-serde-conversion", + derive(Serialize, Deserialize), + serde(rename_all = "camelCase") +)] +#[derive(Default)] +pub struct IdentityCreditWithdrawalTransitionV1 { + pub identity_id: Identifier, + pub amount: u64, + pub core_fee_per_byte: u32, + pub pooling: Pooling, + /// If the send to output script is None, then we send the withdrawal to the address set by core + pub output_script: Option, + pub nonce: IdentityNonce, + pub user_fee_increase: UserFeeIncrease, + #[platform_signable(exclude_from_sig_hash)] + pub signature_public_key_id: KeyID, + #[platform_signable(exclude_from_sig_hash)] + pub signature: BinaryData, +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs new file mode 100644 index 0000000000..14462d0c28 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/state_transition_like.rs @@ -0,0 +1,72 @@ +use base64::prelude::BASE64_STANDARD; +use base64::Engine; +use platform_value::BinaryData; + +use crate::prelude::UserFeeIncrease; +use crate::{ + prelude::Identifier, + state_transition::{StateTransitionLike, StateTransitionType}, +}; + +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use crate::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use crate::state_transition::StateTransition; +use crate::state_transition::StateTransitionType::IdentityCreditWithdrawal; +use crate::version::FeatureVersion; + +impl From for StateTransition { + fn from(value: IdentityCreditWithdrawalTransitionV1) -> Self { + let identity_credit_withdrawal_transition: IdentityCreditWithdrawalTransition = + value.into(); + identity_credit_withdrawal_transition.into() + } +} + +impl StateTransitionLike for IdentityCreditWithdrawalTransitionV1 { + fn state_transition_protocol_version(&self) -> FeatureVersion { + 0 + } + + /// returns the type of State Transition + fn state_transition_type(&self) -> StateTransitionType { + IdentityCreditWithdrawal + } + /// returns the signature as a byte-array + fn signature(&self) -> &BinaryData { + &self.signature + } + /// set a new signature + fn set_signature(&mut self, signature: BinaryData) { + self.signature = signature + } + /// Returns ID of the created contract + fn modified_data_ids(&self) -> Vec { + vec![self.identity_id] + } + + fn set_signature_bytes(&mut self, signature: Vec) { + self.signature = BinaryData::new(signature) + } + + /// Get owner ID + fn owner_id(&self) -> Identifier { + self.identity_id + } + + /// We want things to be unique based on the nonce, so we don't add the transition type + fn unique_identifiers(&self) -> Vec { + vec![format!( + "{}-{:x}", + BASE64_STANDARD.encode(self.identity_id), + self.nonce + )] + } + + fn user_fee_increase(&self) -> UserFeeIncrease { + self.user_fee_increase + } + + fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease) { + self.user_fee_increase = user_fee_increase + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/types.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/types.rs new file mode 100644 index 0000000000..3273e62c92 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/types.rs @@ -0,0 +1,17 @@ +use crate::state_transition::identity_credit_withdrawal_transition::fields::*; +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use crate::state_transition::StateTransitionFieldTypes; + +impl StateTransitionFieldTypes for IdentityCreditWithdrawalTransitionV1 { + fn signature_property_paths() -> Vec<&'static str> { + vec![SIGNATURE, SIGNATURE_PUBLIC_KEY_ID] + } + + fn identifiers_property_paths() -> Vec<&'static str> { + vec![IDENTITY_ID] + } + + fn binary_property_paths() -> Vec<&'static str> { + vec![SIGNATURE, OUTPUT_SCRIPT] + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/v0_methods.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/v0_methods.rs new file mode 100644 index 0000000000..8f20f27494 --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/v0_methods.rs @@ -0,0 +1,137 @@ +#[cfg(feature = "state-transition-signing")] +use crate::{ + identity::{ + accessors::IdentityGettersV0, core_script::CoreScript, signer::Signer, Identity, + IdentityPublicKey, KeyType, Purpose, SecurityLevel, + }, + prelude::{IdentityNonce, UserFeeIncrease}, + state_transition::{ + identity_credit_withdrawal_transition::methods::PreferredKeyPurposeForSigningWithdrawal, + GetDataContractSecurityLevelRequirementFn, StateTransition, + }, + withdrawal::Pooling, + ProtocolError, +}; + +#[cfg(feature = "state-transition-signing")] +use platform_version::version::{FeatureVersion, PlatformVersion}; + +use crate::state_transition::identity_credit_withdrawal_transition::methods::IdentityCreditWithdrawalTransitionMethodsV0; +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; + +impl IdentityCreditWithdrawalTransitionMethodsV0 for IdentityCreditWithdrawalTransitionV1 { + #[cfg(feature = "state-transition-signing")] + fn try_from_identity( + identity: &Identity, + output_script: Option, + amount: u64, + pooling: Pooling, + core_fee_per_byte: u32, + user_fee_increase: UserFeeIncrease, + signer: S, + signing_withdrawal_key_to_use: Option<&IdentityPublicKey>, + preferred_key_purpose_for_signing_withdrawal: PreferredKeyPurposeForSigningWithdrawal, + nonce: IdentityNonce, + _platform_version: &PlatformVersion, + _version: Option, + ) -> Result { + let mut transition: StateTransition = IdentityCreditWithdrawalTransitionV1 { + identity_id: identity.id(), + amount, + core_fee_per_byte, + pooling, + output_script, + nonce, + user_fee_increase, + signature_public_key_id: 0, + signature: Default::default(), + } + .into(); + + let identity_public_key = match signing_withdrawal_key_to_use { + Some(key) => { + if signer.can_sign_with(key) { + key + } else { + return Err( + ProtocolError::DesiredKeyWithTypePurposeSecurityLevelMissing( + "specified withdrawal public key cannot be used for signing" + .to_string(), + ), + ); + } + } + None => { + let mut key: Option<&IdentityPublicKey>; + + match preferred_key_purpose_for_signing_withdrawal { + PreferredKeyPurposeForSigningWithdrawal::OwnerPreferred => { + key = identity.get_first_public_key_matching( + Purpose::OWNER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + + if key.is_none() || !signer.can_sign_with(key.unwrap()) { + key = identity.get_first_public_key_matching( + Purpose::TRANSFER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + } + } + PreferredKeyPurposeForSigningWithdrawal::TransferPreferred + | PreferredKeyPurposeForSigningWithdrawal::Any => { + key = identity.get_first_public_key_matching( + Purpose::TRANSFER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + + if key.is_none() || !signer.can_sign_with(key.unwrap()) { + key = identity.get_first_public_key_matching( + Purpose::OWNER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + } + } + PreferredKeyPurposeForSigningWithdrawal::OwnerOnly => { + key = identity.get_first_public_key_matching( + Purpose::OWNER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + } + PreferredKeyPurposeForSigningWithdrawal::TransferOnly => { + key = identity.get_first_public_key_matching( + Purpose::TRANSFER, + SecurityLevel::full_range().into(), + KeyType::all_key_types().into(), + true, + ); + } + } + + key.ok_or_else(|| { + ProtocolError::DesiredKeyWithTypePurposeSecurityLevelMissing( + "no withdrawal public key".to_string(), + ) + })? + } + }; + + transition.sign_external( + identity_public_key, + &signer, + None::, + )?; + + Ok(transition) + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/value_conversion.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/value_conversion.rs new file mode 100644 index 0000000000..6ef90c689a --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/value_conversion.rs @@ -0,0 +1,60 @@ +use std::collections::BTreeMap; + +use platform_value::{IntegerReplacementType, ReplacementType, Value}; + +use crate::{state_transition::StateTransitionFieldTypes, ProtocolError}; + +use crate::state_transition::identity_credit_withdrawal_transition::fields::*; +use crate::state_transition::StateTransitionValueConvert; + +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use platform_version::version::PlatformVersion; + +impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransitionV1 { + fn from_object( + raw_object: Value, + _platform_version: &PlatformVersion, + ) -> Result { + platform_value::from_value(raw_object).map_err(ProtocolError::ValueError) + } + + fn clean_value(value: &mut Value) -> Result<(), ProtocolError> { + value.replace_at_paths(IDENTIFIER_FIELDS, ReplacementType::Identifier)?; + value.replace_at_paths(BINARY_FIELDS, ReplacementType::BinaryBytes)?; + value.replace_integer_type_at_paths(U32_FIELDS, IntegerReplacementType::U32)?; + Ok(()) + } + + fn from_value_map( + raw_value_map: BTreeMap, + platform_version: &PlatformVersion, + ) -> Result { + let value: Value = raw_value_map.into(); + Self::from_object(value, platform_version) + } + + fn to_object(&self, skip_signature: bool) -> Result { + let mut value = platform_value::to_value(self)?; + if skip_signature { + value + .remove_values_matching_paths(Self::signature_property_paths()) + .map_err(ProtocolError::ValueError)?; + } + Ok(value) + } + + fn to_cleaned_object(&self, skip_signature: bool) -> Result { + let mut value = platform_value::to_value(self)?; + if skip_signature { + value + .remove_values_matching_paths(Self::signature_property_paths()) + .map_err(ProtocolError::ValueError)?; + } + Ok(value) + } + + // Override to_canonical_cleaned_object to manage add_public_keys individually + fn to_canonical_cleaned_object(&self, skip_signature: bool) -> Result { + self.to_cleaned_object(skip_signature) + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/version.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/version.rs new file mode 100644 index 0000000000..cfff287e9d --- /dev/null +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/v1/version.rs @@ -0,0 +1,9 @@ +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use crate::state_transition::FeatureVersioned; +use crate::version::FeatureVersion; + +impl FeatureVersioned for IdentityCreditWithdrawalTransitionV1 { + fn feature_version(&self) -> FeatureVersion { + 1 + } +} diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/value_conversion.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/value_conversion.rs index 365d747ea8..a62a4a184f 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/value_conversion.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/value_conversion.rs @@ -9,6 +9,7 @@ use crate::state_transition::identity_credit_withdrawal_transition::IdentityCred use crate::state_transition::state_transitions::identity_credit_withdrawal_transition::fields::*; use crate::state_transition::StateTransitionValueConvert; +use crate::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; use platform_value::btreemap_extensions::BTreeValueRemoveFromMapHelper; use platform_version::version::{FeatureVersion, PlatformVersion}; @@ -20,6 +21,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(0))?; Ok(value) } + IdentityCreditWithdrawalTransition::V1(transition) => { + let mut value = transition.to_object(skip_signature)?; + value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(1))?; + Ok(value) + } } } @@ -30,6 +36,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(0))?; Ok(value) } + IdentityCreditWithdrawalTransition::V1(transition) => { + let mut value = transition.to_canonical_object(skip_signature)?; + value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(1))?; + Ok(value) + } } } @@ -40,6 +51,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(0))?; Ok(value) } + IdentityCreditWithdrawalTransition::V1(transition) => { + let mut value = transition.to_canonical_cleaned_object(skip_signature)?; + value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(1))?; + Ok(value) + } } } @@ -50,6 +66,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(0))?; Ok(value) } + IdentityCreditWithdrawalTransition::V1(transition) => { + let mut value = transition.to_cleaned_object(skip_signature)?; + value.insert(STATE_TRANSITION_PROTOCOL_VERSION.to_string(), Value::U16(1))?; + Ok(value) + } } } @@ -74,6 +95,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition platform_version, )? .into()), + 1 => Ok(IdentityCreditWithdrawalTransitionV1::from_object( + raw_object, + platform_version, + )? + .into()), n => Err(ProtocolError::UnknownVersionError(format!( "Unknown IdentityCreditWithdrawalTransition version {n}" ))), @@ -101,6 +127,11 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition platform_version, )? .into()), + 1 => Ok(IdentityCreditWithdrawalTransitionV1::from_value_map( + raw_value_map, + platform_version, + )? + .into()), n => Err(ProtocolError::UnknownVersionError(format!( "Unknown IdentityCreditWithdrawalTransition version {n}" ))), @@ -114,6 +145,7 @@ impl<'a> StateTransitionValueConvert<'a> for IdentityCreditWithdrawalTransition match version { 0 => IdentityCreditWithdrawalTransitionV0::clean_value(value), + 1 => IdentityCreditWithdrawalTransitionV1::clean_value(value), n => Err(ProtocolError::UnknownVersionError(format!( "Unknown IdentityCreditWithdrawalTransition version {n}" ))), diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/version.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/version.rs index d4afb75657..d0f7ab1687 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/version.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/version.rs @@ -6,6 +6,7 @@ impl FeatureVersioned for IdentityCreditWithdrawalTransition { fn feature_version(&self) -> FeatureVersion { match self { IdentityCreditWithdrawalTransition::V0(v0) => v0.feature_version(), + IdentityCreditWithdrawalTransition::V1(v1) => v1.feature_version(), } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/identity_signed.rs index 471f0884e2..ce74927344 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/identity_signed.rs @@ -1,4 +1,4 @@ -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::identity_update_transition::IdentityUpdateTransition; use crate::state_transition::StateTransitionIdentitySigned; @@ -17,9 +17,11 @@ impl StateTransitionIdentitySigned for IdentityUpdateTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { - IdentityUpdateTransition::V0(transition) => transition.security_level_requirement(), + IdentityUpdateTransition::V0(transition) => { + transition.security_level_requirement(purpose) + } } } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/identity_signed.rs index 0b6c85a50a..54d384be93 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_update_transition/v0/identity_signed.rs @@ -1,5 +1,5 @@ use crate::identity::SecurityLevel::MASTER; -use crate::identity::{KeyID, SecurityLevel}; +use crate::identity::{KeyID, Purpose, SecurityLevel}; use crate::state_transition::identity_update_transition::v0::IdentityUpdateTransitionV0; use crate::state_transition::StateTransitionIdentitySigned; @@ -12,7 +12,7 @@ impl StateTransitionIdentitySigned for IdentityUpdateTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![MASTER] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/identity_signed.rs index cfc6f9d65b..9a02b8ddf2 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/identity_signed.rs @@ -17,13 +17,15 @@ impl StateTransitionIdentitySigned for MasternodeVoteTransition { } } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, purpose: Purpose) -> Vec { match self { - MasternodeVoteTransition::V0(transition) => transition.security_level_requirement(), + MasternodeVoteTransition::V0(transition) => { + transition.security_level_requirement(purpose) + } } } - fn purpose_requirement(&self) -> Purpose { + fn purpose_requirement(&self) -> Vec { match self { MasternodeVoteTransition::V0(transition) => transition.purpose_requirement(), } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/identity_signed.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/identity_signed.rs index 47531db013..7b5d731676 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/masternode_vote_transition/v0/identity_signed.rs @@ -12,11 +12,11 @@ impl StateTransitionIdentitySigned for MasternodeVoteTransitionV0 { self.signature_public_key_id = key_id } - fn security_level_requirement(&self) -> Vec { + fn security_level_requirement(&self, _purpose: Purpose) -> Vec { vec![CRITICAL, HIGH, MEDIUM] } - fn purpose_requirement(&self) -> Purpose { - Purpose::VOTING + fn purpose_requirement(&self) -> Vec { + vec![Purpose::VOTING] } } diff --git a/packages/rs-dpp/src/state_transition/state_transitions/identity/public_key_in_creation/methods/validate_identity_public_keys_structure/v0/mod.rs b/packages/rs-dpp/src/state_transition/state_transitions/identity/public_key_in_creation/methods/validate_identity_public_keys_structure/v0/mod.rs index 81b489092b..6b02b2e645 100644 --- a/packages/rs-dpp/src/state_transition/state_transitions/identity/public_key_in_creation/methods/validate_identity_public_keys_structure/v0/mod.rs +++ b/packages/rs-dpp/src/state_transition/state_transitions/identity/public_key_in_creation/methods/validate_identity_public_keys_structure/v0/mod.rs @@ -19,7 +19,7 @@ use crate::ProtocolError; use platform_version::version::PlatformVersion; lazy_static! { - static ref ALLOWED_SECURITY_LEVELS: HashMap> = { + static ref ALLOWED_SECURITY_LEVELS_FOR_EXTERNALLY_ADDED_KEYS: HashMap> = { let mut m = HashMap::new(); m.insert( Purpose::AUTHENTICATION, @@ -119,8 +119,8 @@ impl IdentityPublicKeyInCreation { let validation_errors = identity_public_keys_with_witness .iter() .filter_map(|identity_public_key| { - let allowed_security_levels = - ALLOWED_SECURITY_LEVELS.get(&identity_public_key.purpose()); + let allowed_security_levels = ALLOWED_SECURITY_LEVELS_FOR_EXTERNALLY_ADDED_KEYS + .get(&identity_public_key.purpose()); if let Some(levels) = allowed_security_levels { if !levels.contains(&identity_public_key.security_level()) { Some( diff --git a/packages/rs-dpp/src/state_transition/traits/state_transition_identity_signed.rs b/packages/rs-dpp/src/state_transition/traits/state_transition_identity_signed.rs index c81029a7fe..4da43f68c8 100644 --- a/packages/rs-dpp/src/state_transition/traits/state_transition_identity_signed.rs +++ b/packages/rs-dpp/src/state_transition/traits/state_transition_identity_signed.rs @@ -45,24 +45,25 @@ pub trait StateTransitionIdentitySigned: StateTransitionLike { &self, public_key: &IdentityPublicKey, ) -> Result<(), ProtocolError> { + if !self.purpose_requirement().contains(&public_key.purpose()) { + return Err(ProtocolError::WrongPublicKeyPurposeError( + WrongPublicKeyPurposeError::new(public_key.purpose(), self.purpose_requirement()), + )); + } + // Otherwise, key security level should be less than MASTER but more or equal than required if !self - .security_level_requirement() + .security_level_requirement(public_key.purpose()) .contains(&public_key.security_level()) { return Err(ProtocolError::InvalidSignaturePublicKeySecurityLevelError( InvalidSignaturePublicKeySecurityLevelError::new( public_key.security_level(), - self.security_level_requirement(), + self.security_level_requirement(public_key.purpose()), ), )); } - if public_key.purpose() != self.purpose_requirement() { - return Err(ProtocolError::WrongPublicKeyPurposeError( - WrongPublicKeyPurposeError::new(public_key.purpose(), self.purpose_requirement()), - )); - } Ok(()) } @@ -85,13 +86,13 @@ pub trait StateTransitionIdentitySigned: StateTransitionLike { /// Returns minimal key security level that can be used to sign this ST. /// Override this method if the ST requires a different security level. - fn security_level_requirement(&self) -> Vec; + fn security_level_requirement(&self, purpose: Purpose) -> Vec; /// The purpose requirement for the signing key /// The default is authentication /// However for Withdrawals and Fund Transfers the requirement is TRANSFER - fn purpose_requirement(&self) -> Purpose { - Purpose::AUTHENTICATION + fn purpose_requirement(&self) -> Vec { + vec![Purpose::AUTHENTICATION] } } diff --git a/packages/rs-dpp/src/util/json_schema.rs b/packages/rs-dpp/src/util/json_schema.rs index 10eb520568..eaf8fb0d90 100644 --- a/packages/rs-dpp/src/util/json_schema.rs +++ b/packages/rs-dpp/src/util/json_schema.rs @@ -149,11 +149,12 @@ mod test { use crate::data_contract::document_type::DocumentType; use platform_value::Identifier; - use platform_version::version::LATEST_PLATFORM_VERSION; + use platform_version::version::PlatformVersion; use serde_json::json; #[test] fn test_extract_indices() { + let platform_version = PlatformVersion::latest(); let input = json!({ "type": "object", "indices": [ @@ -215,7 +216,7 @@ mod test { false, false, &mut vec![], - LATEST_PLATFORM_VERSION, + platform_version, ) .unwrap(); diff --git a/packages/rs-dpp/src/util/units.rs b/packages/rs-dpp/src/util/units.rs index ca00561cf0..83af5e8976 100644 --- a/packages/rs-dpp/src/util/units.rs +++ b/packages/rs-dpp/src/util/units.rs @@ -27,3 +27,33 @@ macro_rules! dash_to_credits { credits as u64 }}; } + +#[macro_export] +macro_rules! dash_to_duffs { + // The macro takes a string literal representing the Dash amount. + ($dash:expr) => {{ + let dash_str = stringify!($dash); + + // Parsing the input string to separate the whole and fractional parts. + let parts: Vec<&str> = dash_str.split('.').collect(); + let mut credits: u128 = 0; + + // Process the whole number part if it exists. + if let Some(whole) = parts.get(0) { + if let Ok(whole_number) = whole.parse::() { + credits += whole_number * 100_000_000; // Whole Dash amount to credits + } + } + + // Process the fractional part if it exists. + if let Some(fraction) = parts.get(1) { + let fraction_length = fraction.len(); + let fraction_number = fraction.parse::().unwrap_or(0); + // Calculate the multiplier based on the number of digits in the fraction. + let multiplier = 10u128.pow(8 - fraction_length as u32); + credits += fraction_number * multiplier; // Fractional Dash to credits + } + + credits as u64 + }}; +} diff --git a/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/mod.rs b/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/mod.rs new file mode 100644 index 0000000000..b1cd0a477d --- /dev/null +++ b/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/mod.rs @@ -0,0 +1,18 @@ +use crate::fee::Credits; +use crate::withdrawal::daily_withdrawal_limit::v0::daily_withdrawal_limit_v0; +use crate::ProtocolError; +use platform_version::version::PlatformVersion; + +mod v0; + +pub fn daily_withdrawal_limit( + total_credits_in_platform: Credits, + platform_version: &PlatformVersion, +) -> Result { + match platform_version.dpp.methods.daily_withdrawal_limit { + 0 => Ok(daily_withdrawal_limit_v0(total_credits_in_platform)), + v => Err(ProtocolError::UnknownVersionError(format!( + "Unknown daily_withdrawal_limit version {v}" + ))), + } +} diff --git a/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/v0/mod.rs b/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/v0/mod.rs new file mode 100644 index 0000000000..c50b89e152 --- /dev/null +++ b/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/v0/mod.rs @@ -0,0 +1,54 @@ +use crate::fee::Credits; + +/// Calculates the daily withdrawal limit based on the total credits available in the platform. +/// +/// The function enforces the following rules: +/// +/// 1. If the total credits are 1000 Dash in Credits or more: +/// - The withdrawal limit is set to 10% of the total credits. +/// 2. If the total credits are between 100 and 999 Dash in Credits: +/// - The withdrawal limit is capped at 100 credits. +/// 3. If the total credits are less than 100 Dash in Credits: +/// - The withdrawal limit is the total available credits, as no more than the available amount can be withdrawn. +/// +/// # Parameters +/// +/// * `total_credits_in_platform`: The total amount of credits available in the platform. +/// +/// # Returns +/// +/// * `Credits`: The calculated daily withdrawal limit based on the available credits. +/// +pub fn daily_withdrawal_limit_v0(total_credits_in_platform: Credits) -> Credits { + if total_credits_in_platform >= 100_000_000_000_000 { + // 1000 Dash + total_credits_in_platform / 10 + } else if total_credits_in_platform >= 10_000_000_000_000 { + // 100 Dash + 10_000_000_000_000 + } else { + total_credits_in_platform + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::dash_to_credits; + + #[test] + fn test_daily_withdrawal_limit() { + assert_eq!( + daily_withdrawal_limit_v0(dash_to_credits!(2000)), + dash_to_credits!(200) + ); + assert_eq!( + daily_withdrawal_limit_v0(dash_to_credits!(500)), + dash_to_credits!(100) + ); + assert_eq!( + daily_withdrawal_limit_v0(dash_to_credits!(50)), + dash_to_credits!(50) + ); + } +} diff --git a/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/mod.rs b/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/mod.rs new file mode 100644 index 0000000000..1ca292303d --- /dev/null +++ b/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/mod.rs @@ -0,0 +1,25 @@ +use crate::document::Document; +use crate::withdrawal::WithdrawalTransactionIndex; +use crate::ProtocolError; +use dashcore::transaction::special_transaction::asset_unlock::unqualified_asset_unlock::AssetUnlockBaseTransactionInfo; +use platform_version::version::PlatformVersion; +mod v0; +impl Document { + pub fn try_into_asset_unlock_base_transaction_info( + &self, + transaction_index: WithdrawalTransactionIndex, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .dpp + .document_versions + .document_method_versions + .try_into_asset_unlock_base_transaction_info + { + 0 => self.try_into_asset_unlock_base_transaction_info_v0(transaction_index), + v => Err(ProtocolError::UnknownVersionError(format!( + "Unknown IdentityCreateTransition version for try_from_identity_with_signer {v}" + ))), + } + } +} diff --git a/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/v0/mod.rs b/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/v0/mod.rs new file mode 100644 index 0000000000..f28b9dcf8b --- /dev/null +++ b/packages/rs-dpp/src/withdrawal/document_try_into_asset_unlock_base_transaction_info/v0/mod.rs @@ -0,0 +1,45 @@ +use crate::document::{Document, DocumentV0Getters}; +use crate::identity::convert_credits_to_duffs; +use crate::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; +use crate::withdrawal::WithdrawalTransactionIndex; +use crate::ProtocolError; +use dashcore::transaction::special_transaction::asset_unlock::qualified_asset_unlock::ASSET_UNLOCK_TX_SIZE; +use dashcore::transaction::special_transaction::asset_unlock::unqualified_asset_unlock::{ + AssetUnlockBasePayload, AssetUnlockBaseTransactionInfo, +}; +use dashcore::{ScriptBuf, TxOut}; +use platform_value::btreemap_extensions::BTreeValueMapHelper; + +impl Document { + pub(super) fn try_into_asset_unlock_base_transaction_info_v0( + &self, + transaction_index: WithdrawalTransactionIndex, + ) -> Result { + let properties = self.properties(); + + let output_script_bytes = properties.get_bytes(withdrawal::properties::OUTPUT_SCRIPT)?; + + let amount = properties.get_integer(withdrawal::properties::AMOUNT)?; + + let core_fee_per_byte: u32 = + properties.get_integer(withdrawal::properties::CORE_FEE_PER_BYTE)?; + + let output_script = ScriptBuf::from_bytes(output_script_bytes); + + let tx_out = TxOut { + value: convert_credits_to_duffs(amount)?, + script_pubkey: output_script, + }; + + Ok(AssetUnlockBaseTransactionInfo { + version: 1, + lock_time: 0, + output: vec![tx_out], + base_payload: AssetUnlockBasePayload { + version: 1, + index: transaction_index, + fee: ASSET_UNLOCK_TX_SIZE as u32 * core_fee_per_byte, + }, + }) + } +} diff --git a/packages/rs-dpp/src/withdrawal/mod.rs b/packages/rs-dpp/src/withdrawal/mod.rs index be31e49559..6ce0f25811 100644 --- a/packages/rs-dpp/src/withdrawal/mod.rs +++ b/packages/rs-dpp/src/withdrawal/mod.rs @@ -1,3 +1,7 @@ +pub mod daily_withdrawal_limit; +#[cfg(feature = "system_contracts")] +mod document_try_into_asset_unlock_base_transaction_info; + use bincode::{Decode, Encode}; use serde_repr::{Deserialize_repr, Serialize_repr}; @@ -11,3 +15,10 @@ pub enum Pooling { IfAvailable = 1, Standard = 2, } + +/// Transaction index type +pub type WithdrawalTransactionIndex = u64; + +/// Simple type alias for withdrawal transaction with it's index + +pub type WithdrawalTransactionIndexAndBytes = (WithdrawalTransactionIndex, Vec); diff --git a/packages/rs-drive-abci/Cargo.toml b/packages/rs-drive-abci/Cargo.toml index 0cbb9cb847..87c21c968d 100644 --- a/packages/rs-drive-abci/Cargo.toml +++ b/packages/rs-drive-abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "drive-abci" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" authors = [ "Samuel Westrich ", "Ivan Shumkov ", @@ -23,7 +23,7 @@ drive = { path = "../rs-drive", default-features = false, features = [ "server", "grovedb_operations_logging", ] } -thiserror = "1.0.58" +thiserror = "1.0.64" rand = "0.8.5" tempfile = "3.3.0" hex = "0.4.3" @@ -49,14 +49,14 @@ tracing-subscriber = { version = "0.3.16", default-features = false, features = "registry", "tracing-log", ], optional = false } -tenderdash-abci = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.1.0", tag = "v1.1.0", features = [ +tenderdash-abci = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.2.0+1.3.0", tag = "v1.2.0+1.3.0", features = [ "grpc", ] } lazy_static = "1.4.0" itertools = { version = "0.13" } file-rotate = { version = "0.7.3" } reopen = { version = "1.0.3" } -delegate = { version = "0.12" } +delegate = { version = "0.13" } regex = { version = "1.8.1" } metrics = { version = "0.23" } metrics-exporter-prometheus = { version = "0.15" } @@ -74,6 +74,7 @@ async-trait = "0.1.77" console-subscriber = { version = "0.4", optional = true } [dev-dependencies] +bs58 = { version = "0.5.0" } base64 = "0.22.1" platform-version = { path = "../rs-platform-version", features = [ "mock-versions", @@ -100,8 +101,8 @@ rocksdb = { version = "0.22.0" } integer-encoding = { version = "4.0.0" } [features] -# TODO: Remove console for production -default = ["mocks", "console"] + +default = ["mocks"] mocks = ["mockall", "drive/fixtures-and-mocks"] console = ["console-subscriber", "tokio/tracing"] testing-config = [] @@ -110,4 +111,3 @@ grovedbg = ["drive/grovedbg"] [[bin]] name = "drive-abci" path = "src/main.rs" -required-features = ["console"] diff --git a/packages/rs-drive-abci/src/abci/config.rs b/packages/rs-drive-abci/src/abci/config.rs index 33d150f77d..62779edd6b 100644 --- a/packages/rs-drive-abci/src/abci/config.rs +++ b/packages/rs-drive-abci/src/abci/config.rs @@ -1,7 +1,6 @@ //! Configuration of ABCI Application server use crate::utils::from_opt_str_or_number; -use dpp::prelude::TimestampMillis; use serde::{Deserialize, Serialize}; // We allow changes in the ABCI configuration, but there should be a social process diff --git a/packages/rs-drive-abci/src/abci/handler/info.rs b/packages/rs-drive-abci/src/abci/handler/info.rs index ea8aad0eec..dbb8501891 100644 --- a/packages/rs-drive-abci/src/abci/handler/info.rs +++ b/packages/rs-drive-abci/src/abci/handler/info.rs @@ -3,7 +3,7 @@ use crate::abci::AbciError; use crate::error::Error; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::rpc::core::CoreRPCLike; -use dpp::version::PlatformVersion; +use dpp::version::DESIRED_PLATFORM_VERSION; use tenderdash_abci::proto::abci as proto; pub fn info(app: &A, request: proto::RequestInfo) -> Result @@ -26,18 +26,18 @@ where .map(|app_hash| app_hash.to_vec()) .unwrap_or_default(); - let latest_supported_protocol_version = PlatformVersion::latest().protocol_version; + let desired_protocol_version = DESIRED_PLATFORM_VERSION.protocol_version; let response = proto::ResponseInfo { data: "".to_string(), - app_version: latest_supported_protocol_version as u64, + app_version: desired_protocol_version as u64, last_block_height: platform_state.last_committed_block_height() as i64, version: env!("CARGO_PKG_VERSION").to_string(), last_block_app_hash: state_app_hash.clone(), }; tracing::debug!( - latest_supported_protocol_version, + desired_protocol_version, software_version = env!("CARGO_PKG_VERSION"), block_version = request.block_version, p2p_version = request.p2p_version, diff --git a/packages/rs-drive-abci/src/abci/handler/prepare_proposal.rs b/packages/rs-drive-abci/src/abci/handler/prepare_proposal.rs index 6d2971c703..18252d0d45 100644 --- a/packages/rs-drive-abci/src/abci/handler/prepare_proposal.rs +++ b/packages/rs-drive-abci/src/abci/handler/prepare_proposal.rs @@ -1,7 +1,10 @@ use crate::abci::app::{BlockExecutionApplication, PlatformApplication, TransactionalApplication}; use crate::abci::AbciError; use crate::error::Error; -use crate::execution::types::block_execution_context::v0::BlockExecutionContextV0Setters; +use crate::execution::engine::consensus_params_update::consensus_params_update; +use crate::execution::types::block_execution_context::v0::{ + BlockExecutionContextV0Getters, BlockExecutionContextV0Setters, +}; use crate::platform_types::block_execution_outcome; use crate::platform_types::block_proposal::v0::BlockProposal; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; @@ -9,6 +12,7 @@ use crate::platform_types::state_transitions_processing_result::StateTransitionE use crate::rpc::core::CoreRPCLike; use dpp::dashcore::hashes::Hash; use dpp::version::TryIntoPlatformVersioned; +use drive::grovedb_storage::Error::RocksDBError; use tenderdash_abci::proto::abci as proto; use tenderdash_abci::proto::abci::tx_record::TxAction; use tenderdash_abci::proto::abci::{ExecTxResult, TxRecord}; @@ -33,6 +37,8 @@ where let last_committed_core_height = platform_state.last_committed_core_height(); + let starting_platform_version = platform_state.current_platform_version()?; + let core_chain_lock_update = match app.platform().core_rpc.get_best_chain_lock() { Ok(latest_chain_lock) => { if platform_state.last_committed_block_info().is_none() @@ -87,11 +93,15 @@ where if transaction_guard.is_none() { Err(Error::Abci(AbciError::BadRequest("received a prepare proposal request for the genesis height before an init chain request".to_string())))?; }; - if request.round > 0 { - transaction_guard - .as_ref() - .map(|tx| tx.rollback_to_savepoint()); - }; + tracing::debug!( + "rolling back to savepoint to process genesis proposal for round: {}", + request.round, + ); + if let Some(tx) = transaction_guard.as_ref() { + tx.rollback_to_savepoint() + .map_err(|e| drive::grovedb::error::Error::StorageError(RocksDBError(e)))?; + tx.set_savepoint(); + } transaction_guard } else { app.start_transaction(); @@ -124,6 +134,8 @@ where mut block_execution_context, } = run_result.into_data().map_err(Error::Protocol)?; + let epoch_info = block_execution_context.epoch_info(); + // We need to let Tenderdash know about the transactions we should remove from execution let valid_tx_count = state_transitions_result.valid_count(); let failed_tx_count = state_transitions_result.failed_count(); @@ -151,10 +163,26 @@ where // Such state transitions must be invalidated by check tx, but they might // still be added to mempool due to inconsistency between check tx and tx processing // (fees calculation) or malicious proposer. - StateTransitionExecutionResult::UnpaidConsensusError(..) => TxAction::Removed, + StateTransitionExecutionResult::UnpaidConsensusError(consensus_error) => { + tracing::trace!( + "UnpaidConsensusError at height {}, round {}: {:?}", + request.height, + request.round, + consensus_error + ); + TxAction::Removed + } // We shouldn't include in the block any state transitions that produced an internal error // during execution - StateTransitionExecutionResult::InternalError(..) => TxAction::Removed, + StateTransitionExecutionResult::InternalError(error_message) => { + tracing::debug!( + "InternalError at height {}, round {}: {}", + request.height, + request.round, + error_message + ); + TxAction::Removed + } // State Transition was not executed as it reached the maximum time limit StateTransitionExecutionResult::NotExecuted(..) => TxAction::Delayed, }; @@ -194,8 +222,12 @@ where signature: chain_lock.signature.to_bytes().to_vec(), }), validator_set_update, - // TODO: implement consensus param updates - consensus_param_updates: None, + consensus_param_updates: consensus_params_update( + app.platform().config.network, + starting_platform_version, + platform_version, + epoch_info, + )?, app_version: platform_version.protocol_version as u64, }; diff --git a/packages/rs-drive-abci/src/abci/handler/process_proposal.rs b/packages/rs-drive-abci/src/abci/handler/process_proposal.rs index 0e94f638ed..5bf547e14a 100644 --- a/packages/rs-drive-abci/src/abci/handler/process_proposal.rs +++ b/packages/rs-drive-abci/src/abci/handler/process_proposal.rs @@ -1,6 +1,7 @@ use crate::abci::app::{BlockExecutionApplication, PlatformApplication, TransactionalApplication}; use crate::abci::AbciError; use crate::error::Error; +use crate::execution::engine::consensus_params_update::consensus_params_update; use crate::execution::types::block_execution_context::v0::{ BlockExecutionContextV0Getters, BlockExecutionContextV0MutableGetters, }; @@ -8,9 +9,11 @@ use crate::execution::types::block_state_info::v0::{ BlockStateInfoV0Getters, BlockStateInfoV0Setters, }; use crate::platform_types::block_execution_outcome; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::rpc::core::CoreRPCLike; use dpp::version::TryIntoPlatformVersioned; +use drive::grovedb_storage::Error::RocksDBError; use tenderdash_abci::proto::abci as proto; use tenderdash_abci::proto::abci::tx_record::TxAction; @@ -70,6 +73,7 @@ where )))?; } } else { + // we were the proposer let Some(proposal_info) = block_execution_context.proposer_results() else { Err(Error::Abci(AbciError::BadRequest( "received a process proposal request twice".to_string(), @@ -154,10 +158,14 @@ where if transaction_guard.is_none() { Err(Error::Abci(AbciError::BadRequest("received a process proposal request for the genesis height before an init chain request".to_string())))?; } - if request.round > 0 { - transaction_guard - .as_ref() - .map(|tx| tx.rollback_to_savepoint()); + tracing::debug!( + "rolling back to savepoint to process genesis proposal for round: {}", + request.round, + ); + if let Some(tx) = transaction_guard.as_ref() { + tx.rollback_to_savepoint() + .map_err(|e| drive::grovedb::error::Error::StorageError(RocksDBError(e)))?; + tx.set_savepoint(); } transaction_guard } else { @@ -171,6 +179,8 @@ where let platform_state = app.platform().state.load(); + let starting_platform_version = platform_state.current_platform_version()?; + // Running the proposal executes all the state transitions for the block let run_result = app.platform().run_block_proposal( (&request).try_into()?, @@ -206,6 +216,8 @@ where block_execution_context, } = run_result.into_data().map_err(Error::Protocol)?; + let epoch_info = *block_execution_context.epoch_info(); + app.block_execution_context() .write() .unwrap() @@ -268,8 +280,12 @@ where tx_results, status: proto::response_process_proposal::ProposalStatus::Accept.into(), validator_set_update, - // TODO: Implement consensus param updates - consensus_param_updates: None, + consensus_param_updates: consensus_params_update( + app.platform().config.network, + starting_platform_version, + platform_version, + &epoch_info, + )?, events: Vec::new(), }; diff --git a/packages/rs-drive-abci/src/config.rs b/packages/rs-drive-abci/src/config.rs index 0f29f1776f..1e8f5f3c26 100644 --- a/packages/rs-drive-abci/src/config.rs +++ b/packages/rs-drive-abci/src/config.rs @@ -7,7 +7,7 @@ use dpp::dashcore::Network; use dpp::util::deserializer::ProtocolVersion; use dpp::version::INITIAL_PROTOCOL_VERSION; use drive::config::DriveConfig; -use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use serde::{de::DeserializeOwned, Deserialize, Deserializer, Serialize}; use std::path::PathBuf; use std::str::FromStr; @@ -129,15 +129,11 @@ pub struct ExecutionConfig { /// `` /// /// [`verify_sum_trees`]: PlatformConfig::verify_sum_trees -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize)] // NOTE: in renames, we use lower_snake_case, because uppercase does not work; see // https://github.com/softprops/envy/issues/61 and https://github.com/softprops/envy/pull/69 pub struct PlatformConfig { /// The network type - #[serde( - default = "PlatformConfig::default_network", - deserialize_with = "from_str_to_network_with_aliases" - )] pub network: Network, /// Drive configuration #[serde(flatten)] @@ -184,18 +180,13 @@ pub struct PlatformConfig { /// Approximately how often are blocks produced pub block_spacing_ms: u64, - /// Initial protocol version - #[serde(default = "PlatformConfig::default_initial_protocol_version")] - pub initial_protocol_version: ProtocolVersion, - /// Path to data storage pub db_path: PathBuf, /// Path to store rejected / invalid items (like transactions). - /// Used mainly for debuggig. + /// Used mainly for debugging. /// /// If not set, rejected and invalid items will not be stored. - #[serde(default)] pub rejections_path: Option, #[cfg(feature = "testing-config")] @@ -208,14 +199,91 @@ pub struct PlatformConfig { // TODO: Use from_str_to_socket_address /// Tokio console address to connect to - #[serde(default = "PlatformConfig::default_tokio_console_address")] pub tokio_console_address: String, /// Number of seconds to store task information if there is no clients connected + pub tokio_console_retention_secs: u64, +} + +// Define an intermediate struct that mirrors PlatformConfig +#[derive(Deserialize)] +struct PlatformConfigIntermediate { + /// The network type + #[serde( + default = "PlatformConfig::default_network", + deserialize_with = "from_str_to_network_with_aliases" + )] + pub network: Network, + /// Drive configuration + #[serde(flatten)] + pub drive: DriveConfig, + // Include all other fields + #[serde(flatten)] + pub core: CoreConfig, + #[serde(flatten)] + pub abci: AbciConfig, + pub prometheus_bind_address: Option, + pub grpc_bind_address: String, + #[serde(flatten)] + pub execution: ExecutionConfig, + #[serde(flatten)] + pub validator_set: ValidatorSetConfig, + #[serde(flatten)] + pub chain_lock: ChainLockConfig, + #[serde(flatten)] + pub instant_lock: InstantLockConfig, + pub block_spacing_ms: u64, + #[serde(default = "PlatformConfig::default_initial_protocol_version")] + pub initial_protocol_version: ProtocolVersion, + pub db_path: PathBuf, + #[serde(default)] + pub rejections_path: Option, + #[cfg(feature = "testing-config")] + #[serde(skip)] + pub testing_configs: PlatformTestConfig, + pub tokio_console_enabled: bool, + #[serde(default = "PlatformConfig::default_tokio_console_address")] + pub tokio_console_address: String, #[serde(default = "PlatformConfig::default_tokio_console_retention_secs")] pub tokio_console_retention_secs: u64, } +impl<'de> Deserialize<'de> for PlatformConfig { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + // First, deserialize into an intermediate struct + let mut config = PlatformConfigIntermediate::deserialize(deserializer)?; + + // Set drive.network = network + config.drive.network = config.network; + + // Convert the intermediate struct into your actual PlatformConfig + Ok(PlatformConfig { + network: config.network, + drive: config.drive, + // Copy other fields + core: config.core, + abci: config.abci, + prometheus_bind_address: config.prometheus_bind_address, + grpc_bind_address: config.grpc_bind_address, + execution: config.execution, + validator_set: config.validator_set, + chain_lock: config.chain_lock, + instant_lock: config.instant_lock, + block_spacing_ms: config.block_spacing_ms, + db_path: config.db_path, + rejections_path: config.rejections_path, + #[cfg(feature = "testing-config")] + testing_configs: config.testing_configs, + tokio_console_enabled: config.tokio_console_enabled, + tokio_console_address: config.tokio_console_address, + tokio_console_retention_secs: config.tokio_console_retention_secs, + }) + } +} + fn from_str_to_network_with_aliases<'de, D>(deserializer: D) -> Result where D: serde::Deserializer<'de>, @@ -662,7 +730,6 @@ impl PlatformConfig { tokio_console_enabled: false, tokio_console_address: PlatformConfig::default_tokio_console_address(), tokio_console_retention_secs: PlatformConfig::default_tokio_console_retention_secs(), - initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, grpc_bind_address: "127.0.0.1:26670".to_string(), } @@ -705,7 +772,6 @@ impl PlatformConfig { tokio_console_enabled: false, tokio_console_address: PlatformConfig::default_tokio_console_address(), tokio_console_retention_secs: PlatformConfig::default_tokio_console_retention_secs(), - initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, grpc_bind_address: "127.0.0.1:26670".to_string(), } @@ -737,7 +803,7 @@ impl PlatformConfig { quorum_rotation: true, }, block_spacing_ms: 5000, - drive: Default::default(), + drive: DriveConfig::default_testnet(), abci: Default::default(), core: Default::default(), execution: Default::default(), @@ -745,7 +811,6 @@ impl PlatformConfig { rejections_path: Some(PathBuf::from("/var/log/dash/rejected")), #[cfg(feature = "testing-config")] testing_configs: PlatformTestConfig::default(), - initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, grpc_bind_address: "127.0.0.1:26670".to_string(), tokio_console_enabled: false, @@ -788,7 +853,6 @@ impl PlatformConfig { rejections_path: Some(PathBuf::from("/var/log/dash/rejected")), #[cfg(feature = "testing-config")] testing_configs: PlatformTestConfig::default(), - initial_protocol_version: Self::default_initial_protocol_version(), prometheus_bind_address: None, grpc_bind_address: "127.0.0.1:26670".to_string(), tokio_console_enabled: false, @@ -810,6 +874,8 @@ pub struct PlatformTestConfig { pub block_commit_signature_verification: bool, /// Disable instant lock signature verification pub disable_instant_lock_signature_verification: bool, + /// Disable temporarily disabled contested documents validation + pub disable_contested_documents_is_allowed_validation: bool, } #[cfg(feature = "testing-config")] @@ -821,6 +887,7 @@ impl PlatformTestConfig { store_platform_state: false, block_commit_signature_verification: false, disable_instant_lock_signature_verification: true, + disable_contested_documents_is_allowed_validation: true, } } } @@ -833,6 +900,7 @@ impl Default for PlatformTestConfig { store_platform_state: true, block_commit_signature_verification: true, disable_instant_lock_signature_verification: false, + disable_contested_documents_is_allowed_validation: true, } } } @@ -842,6 +910,7 @@ mod tests { use super::FromEnv; use crate::logging::LogDestination; use dashcore_rpc::dashcore_rpc_json::QuorumType; + use dpp::dashcore::Network; use std::env; #[test] @@ -873,4 +942,22 @@ mod tests { matches!(config.abci.log[id.0].destination, LogDestination::Bytes); } } + + #[test] + #[ignore] + //todo: re-enable + fn test_config_from_testnet_propagates_network() { + // ABCI log configs are parsed manually, so they deserve separate handling + // Note that STDOUT is also defined in .env.example, but env var should overwrite it. + + let envfile = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".env.testnet"); + + dotenvy::from_path(envfile.as_path()).expect("cannot load .env file"); + + let config = super::PlatformConfig::from_env().expect("expected config from env"); + assert!(config.execution.verify_sum_trees); + assert_eq!(config.validator_set.quorum_type, QuorumType::Llmq25_67); + assert_eq!(config.network, config.drive.network); + assert_eq!(config.network, Network::Testnet); + } } diff --git a/packages/rs-drive-abci/src/error/query.rs b/packages/rs-drive-abci/src/error/query.rs index 0a6e931703..ba60b25379 100644 --- a/packages/rs-drive-abci/src/error/query.rs +++ b/packages/rs-drive-abci/src/error/query.rs @@ -40,6 +40,10 @@ pub enum QueryError { #[error("invalid argument error: {0}")] InvalidArgument(String), + /// Too many elements Error + #[error("too many elements error: {0}")] + TooManyElements(String), + /// Not found Error #[error("not found error: {0}")] NotFound(String), diff --git a/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs new file mode 100644 index 0000000000..e3163039f1 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs @@ -0,0 +1,42 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::execution::engine::consensus_params_update::v0::consensus_params_update_v0; +use crate::platform_types::epoch_info::EpochInfo; +use dpp::dashcore::Network; +use dpp::version::PlatformVersion; +use tenderdash_abci::proto::types::ConsensusParams; + +mod v0; +mod v1; + +pub(crate) fn consensus_params_update( + network: Network, + original_platform_version: &PlatformVersion, + new_platform_version: &PlatformVersion, + epoch_info: &EpochInfo, +) -> Result, Error> { + match new_platform_version + .drive_abci + .methods + .engine + .consensus_params_update + { + 0 => Ok(consensus_params_update_v0( + network, + original_platform_version, + new_platform_version, + epoch_info, + )), + 1 => Ok(v1::consensus_params_update_v1( + network, + original_platform_version, + new_platform_version, + epoch_info, + )), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "consensus_params_update".to_string(), + known_versions: vec![0, 1], + received: version, + })), + } +} diff --git a/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v0/mod.rs new file mode 100644 index 0000000000..608fb7cc39 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v0/mod.rs @@ -0,0 +1,73 @@ +use crate::platform_types::epoch_info::v0::EpochInfoV0Methods; +use crate::platform_types::epoch_info::EpochInfo; +use dpp::dashcore::Network; +use dpp::version::PlatformVersion; +use tenderdash_abci::proto::types::{ConsensusParams, VersionParams}; + +#[inline(always)] +pub(super) fn consensus_params_update_v0( + network: Network, + original_platform_version: &PlatformVersion, + new_platform_version: &PlatformVersion, + epoch_info: &EpochInfo, +) -> Option { + // These are emergency consensus updates + match network { + Network::Dash => { + if epoch_info.is_first_block_of_epoch(3) { + return Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: 1, + }), + synchrony: None, + timeout: None, + abci: None, + }); + } + } + Network::Testnet => { + if epoch_info.is_first_block_of_epoch(1480) { + return Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: 1, + }), + synchrony: None, + timeout: None, + abci: None, + }); + } + } + _ => {} + } + + // These are normal consensus updates + if original_platform_version + .consensus + .tenderdash_consensus_version + == new_platform_version.consensus.tenderdash_consensus_version + { + None + } else { + Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: new_platform_version.consensus.tenderdash_consensus_version + as i32, + }), + synchrony: None, + timeout: None, + abci: None, + }) + } +} diff --git a/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v1/mod.rs b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v1/mod.rs new file mode 100644 index 0000000000..85e9d40180 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/v1/mod.rs @@ -0,0 +1,74 @@ +use crate::platform_types::epoch_info::v0::EpochInfoV0Methods; +use crate::platform_types::epoch_info::EpochInfo; +use dpp::dashcore::Network; +use dpp::version::PlatformVersion; +use tenderdash_abci::proto::types::{ConsensusParams, VersionParams}; + +#[inline(always)] +pub(super) fn consensus_params_update_v1( + network: Network, + original_platform_version: &PlatformVersion, + new_platform_version: &PlatformVersion, + epoch_info: &EpochInfo, +) -> Option { + // These are emergency consensus updates + match network { + Network::Dash => { + if epoch_info.is_first_block_of_epoch(3) { + return Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: 1, + }), + synchrony: None, + timeout: None, + abci: None, + }); + } + } + Network::Testnet => { + if epoch_info.is_first_block_of_epoch(1480) { + return Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: 1, + }), + synchrony: None, + timeout: None, + abci: None, + }); + } + } + _ => {} + } + + // Update versions if any of them changed + if original_platform_version + .consensus + .tenderdash_consensus_version + == new_platform_version.consensus.tenderdash_consensus_version + && original_platform_version.protocol_version == new_platform_version.protocol_version + { + None + } else { + Some(ConsensusParams { + block: None, + evidence: None, + validator: None, + version: Some(VersionParams { + app_version: new_platform_version.protocol_version as u64, + consensus_version: new_platform_version.consensus.tenderdash_consensus_version + as i32, + }), + synchrony: None, + timeout: None, + abci: None, + }) + } +} diff --git a/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs index c56272b61d..ecfc3d6edf 100644 --- a/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/finalize_block_proposal/v0/mod.rs @@ -8,8 +8,6 @@ use dpp::block::block_info::BlockInfo; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0; use dpp::version::PlatformVersion; -use dpp::dashcore::bls_sig_utils::BLSSignature; - use tenderdash_abci::{ proto::{serializers::timestamp::ToMilis, types::BlockId as ProtoBlockId}, signatures::Hashable, @@ -19,8 +17,7 @@ use crate::abci::AbciError; use crate::error::Error; use crate::execution::types::block_execution_context::v0::{ - BlockExecutionContextV0Getters, BlockExecutionContextV0MutableGetters, - BlockExecutionContextV0OwnedGetters, + BlockExecutionContextV0Getters, BlockExecutionContextV0OwnedGetters, }; use crate::execution::types::block_execution_context::BlockExecutionContext; use crate::execution::types::block_state_info::v0::{ @@ -62,7 +59,7 @@ where pub(super) fn finalize_block_proposal_v0( &self, request_finalize_block: FinalizeBlockCleanedRequest, - mut block_execution_context: BlockExecutionContext, + block_execution_context: BlockExecutionContext, transaction: &Transaction, platform_version: &PlatformVersion, ) -> Result { @@ -74,7 +71,7 @@ where // Let's decompose the request let FinalizeBlockCleanedRequest { - commit: mut commit_info, + commit: commit_info, misbehavior: _, hash, height, @@ -143,16 +140,16 @@ where let expected_withdrawal_transactions = block_execution_context.unsigned_withdrawal_transactions(); - if !expected_withdrawal_transactions - .are_matching_with_vote_extensions(&commit_info.threshold_vote_extensions) - { + let Some(transaction_to_extension_matches) = expected_withdrawal_transactions + .verify_and_match_with_vote_extensions(&commit_info.threshold_vote_extensions) + else { validation_result.add_error(AbciError::VoteExtensionMismatchReceived { got: commit_info.threshold_vote_extensions, - expected: expected_withdrawal_transactions.into(), + expected: (&expected_withdrawal_transactions.clone()).into(), }); return Ok(validation_result.into()); - } + }; // Verify commit @@ -202,34 +199,9 @@ where to_commit_block_info.core_height = block_header.core_chain_locked_height; - // Append signatures and broadcast asset unlock transactions to Core - - // Drain withdrawal transaction instead of cloning - let unsigned_withdrawal_transactions = block_execution_context - .unsigned_withdrawal_transactions_mut() - .drain(); - - if !unsigned_withdrawal_transactions.is_empty() { - // Drain signatures instead of cloning - let signatures = commit_info - .threshold_vote_extensions - .drain(..) - .map(|vote_extension| { - let signature_bytes: [u8; 96] = - vote_extension.signature.try_into().map_err(|e| { - AbciError::BadRequestDataSize(format!( - "invalid votes extension signature size: {}", - hex::encode(e) - )) - })?; - - Ok(BLSSignature::from(signature_bytes)) - }) - .collect::>()?; - + if !transaction_to_extension_matches.is_empty() { self.append_signatures_and_broadcast_withdrawal_transactions( - unsigned_withdrawal_transactions, - signatures, + transaction_to_extension_matches, platform_version, )?; } diff --git a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/mod.rs b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/mod.rs index 57ec814c04..1b580ba38d 100644 --- a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/mod.rs @@ -5,8 +5,10 @@ use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; +use crate::abci::AbciError; use crate::error::execution::ExecutionError; use dpp::version::PlatformVersion; +use dpp::version::ProtocolVersion; use drive::grovedb::Transaction; use tenderdash_abci::proto::abci::{RequestInitChain, ResponseInitChain}; @@ -22,8 +24,31 @@ where ) -> Result { // We don't have platform state at this point, so we should // use initial protocol version from genesis - let protocol_version = self.config.initial_protocol_version; - let platform_version = PlatformVersion::get(protocol_version)?; + let consensus_params = request + .consensus_params + .as_ref() + .ok_or(AbciError::BadRequest( + "consensus params are required in init chain".to_string(), + ))?; + + let tenderdash_abci::proto::types::VersionParams { + app_version: protocol_version, + .. + } = consensus_params + .version + .as_ref() + .ok_or(AbciError::BadRequest( + "consensus params version is required in init chain".to_string(), + ))?; + + let platform_version = if *protocol_version == 0 { + // Protocol version is not set. + // We are starting the chain with the desired version + PlatformVersion::desired() + } else { + // Use the version from the genesis + PlatformVersion::get(*protocol_version as ProtocolVersion)? + }; match platform_version.drive_abci.methods.engine.init_chain { 0 => self.init_chain_v0(request, transaction, platform_version), diff --git a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs index 398d4c111f..b67cd01253 100644 --- a/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/initialization/init_chain/v0/mod.rs @@ -7,12 +7,16 @@ use dpp::block::block_info::BlockInfo; use drive::error::Error::GroveDB; use drive::grovedb::Transaction; +use crate::execution::engine::consensus_params_update::consensus_params_update; use crate::platform_types::cleaned_abci_messages::request_init_chain_cleaned_params; +use crate::platform_types::epoch_info::v0::EpochInfoV0; +use crate::platform_types::epoch_info::EpochInfo; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; +use crate::platform_types::validator_set::ValidatorSetExt; use dpp::version::PlatformVersion; use std::sync::Arc; -use tenderdash_abci::proto::abci::{RequestInitChain, ResponseInitChain, ValidatorSetUpdate}; +use tenderdash_abci::proto::abci::{RequestInitChain, ResponseInitChain}; use tenderdash_abci::proto::google::protobuf::Timestamp; use tenderdash_abci::proto::serializers::timestamp::FromMilis; @@ -67,8 +71,8 @@ where // Create platform execution state let mut initial_platform_state = PlatformState::default_with_protocol_versions( - request.initial_protocol_version, - request.initial_protocol_version, + platform_version.protocol_version, + platform_version.protocol_version, &self.config, )?; @@ -105,19 +109,13 @@ where ExecutionError::InitializationError("we should have at least one quorum"), )?; - ( - *validator_set_inner.0, - ValidatorSetUpdate::from(validator_set_inner.1), - ) + (*validator_set_inner.0, validator_set_inner.1.to_update()) }; initial_platform_state.set_current_validator_set_quorum_hash(quorum_hash); initial_platform_state.set_genesis_block_info(Some(genesis_block_info)); - initial_platform_state - .set_current_protocol_version_in_consensus(request.initial_protocol_version); - if tracing::enabled!(tracing::Level::TRACE) { tracing::trace!( platform_state_fingerprint = hex::encode(initial_platform_state.fingerprint()?), @@ -134,8 +132,24 @@ where .unwrap() .map_err(GroveDB)?; + // We use first platform version because Tenderdash starts genesis with first versions + // by default + let first_platform_version = PlatformVersion::first(); + + let epoch_info = EpochInfo::V0(EpochInfoV0::calculate( + genesis_time, + genesis_time, + None, + self.config.execution.epoch_time_length_s, + )?); + Ok(ResponseInitChain { - consensus_params: None, + consensus_params: consensus_params_update( + self.config.network, + first_platform_version, + platform_version, + &epoch_info, + )?, app_hash: app_hash.to_vec(), validator_set_update: Some(validator_set), next_core_chain_lock_update: None, diff --git a/packages/rs-drive-abci/src/execution/engine/mod.rs b/packages/rs-drive-abci/src/execution/engine/mod.rs index d996afeda9..086db216f7 100644 --- a/packages/rs-drive-abci/src/execution/engine/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/mod.rs @@ -1,3 +1,4 @@ +pub(crate) mod consensus_params_update; mod finalize_block_proposal; /// Initialization /// Init chain is called from abci diff --git a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/mod.rs b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/mod.rs index a8420b34b0..43712c7feb 100644 --- a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/mod.rs @@ -1,12 +1,15 @@ use crate::error::execution::ExecutionError; use crate::error::Error; +use crate::execution::types::block_state_info; +use crate::execution::types::block_state_info::v0::BlockStateInfoV0Methods; use crate::metrics::HistogramTiming; -use crate::platform_types::epoch_info::v0::EpochInfoV0Methods; +use crate::platform_types::epoch_info::v0::{EpochInfoV0Getters, EpochInfoV0Methods}; use crate::platform_types::platform::Platform; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; use crate::platform_types::{block_execution_outcome, block_proposal}; use crate::rpc::core::CoreRPCLike; +use dpp::block::epoch::Epoch; use dpp::validation::ValidationResult; use dpp::version::PlatformVersion; use drive::grovedb::Transaction; @@ -91,8 +94,35 @@ Your software version: {}, latest supported protocol version: {}."#, ); }; - // Set current protocol version to the block platform state - block_platform_state.set_current_protocol_version_in_consensus(next_protocol_version); + let old_protocol_version = block_platform_state.current_protocol_version_in_consensus(); + + if old_protocol_version != next_protocol_version { + // Set current protocol version to the block platform state + block_platform_state + .set_current_protocol_version_in_consensus(next_protocol_version); + + let last_block_time_ms = platform_state.last_committed_block_time_ms(); + + // Init block execution context + let block_state_info = block_state_info::v0::BlockStateInfoV0::from_block_proposal( + &block_proposal, + last_block_time_ms, + ); + + let block_info = block_state_info.to_block_info( + Epoch::new(epoch_info.current_epoch_index()) + .expect("current epoch index should be in range"), + ); + + // This is for events like adding stuff to the root tree, or making structural changes/fixes + self.perform_events_on_first_block_of_protocol_change( + platform_state, + &block_info, + transaction, + old_protocol_version, + next_platform_version, + )?; + } next_platform_version } else { diff --git a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs index 19cc38acef..9c45694f6c 100644 --- a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs @@ -269,6 +269,14 @@ where Error::Execution(ExecutionError::UpdateValidatorProposedAppVersionError(e)) })?; // This is a system error + // Rebroadcast expired withdrawals if they exist + self.rebroadcast_expired_withdrawal_documents( + &block_info, + &last_committed_platform_state, + transaction, + platform_version, + )?; + // Mark all previously broadcasted and chainlocked withdrawals as complete // only when we are on a new core height if block_state_info.core_chain_locked_height() != last_block_core_height { @@ -285,6 +293,8 @@ where // required for signature verification (core height and quorum hash) // Then we save unsigned transaction bytes to block execution context // to be signed (on extend_vote), verified (on verify_vote) and broadcasted (on finalize_block) + // Also, the dequeued untiled transaction added to the broadcasted transaction queue to for further + // resigning in case of failures. let unsigned_withdrawal_transaction_bytes = self .dequeue_and_build_unsigned_withdrawal_transactions( validator_set_quorum_hash, @@ -321,19 +331,29 @@ where // Corresponding withdrawal documents are changed from queued to pooled self.pool_withdrawals_into_transactions_queue( &block_info, + last_committed_platform_state, Some(transaction), platform_version, )?; + // Cleans up the expired locks for withdrawal amounts + // to update daily withdrawal limit + // This is for example when we make a withdrawal for 30 Dash + // But we can only withdraw 1000 Dash a day + // after the withdrawal we should only be able to withdraw 970 Dash + // But 24 hours later that locked 30 comes back + self.clean_up_expired_locks_of_withdrawal_amounts( + &block_info, + transaction, + platform_version, + )?; + // Create a new block execution context let mut block_execution_context: BlockExecutionContext = block_execution_context::v0::BlockExecutionContextV0 { block_state_info: block_state_info.into(), - epoch_info: epoch_info.clone(), - // TODO: It doesn't seem correct to use previous block count of hpmns. - // We currently not using this field in the codebase. We probably should just remove it. - hpmn_count: last_committed_platform_state.hpmn_list_len() as u32, + epoch_info, unsigned_withdrawal_transactions: unsigned_withdrawal_transaction_bytes, block_platform_state, proposer_results: None, diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/mod.rs index ebfe6c3fdf..af0e181b66 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/mod.rs @@ -1,4 +1,5 @@ mod v0; +mod v1; use crate::error::execution::ExecutionError; use crate::error::Error; @@ -52,9 +53,14 @@ where platform_state, block_execution_context, ), + 1 => self.validator_set_update_v1( + proposer_pro_tx_hash, + platform_state, + block_execution_context, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "validator_set_update".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v0/mod.rs index efc6251880..9d713e04cd 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v0/mod.rs @@ -11,6 +11,7 @@ use crate::platform_types::validator_set::v0::ValidatorSetV0Getters; use crate::rpc::core::CoreRPCLike; use itertools::Itertools; +use crate::platform_types::validator_set::ValidatorSetExt; use dpp::dashcore::hashes::Hash; use tenderdash_abci::proto::abci::ValidatorSetUpdate; @@ -92,7 +93,7 @@ where // we also need to perform a rotation if the validator set is being removed tracing::debug!( method = "validator_set_update_v0", - "rotation: new quorums not containing current quorum current {:?}, {}. quorum rotation expected˚", + "rotation: new quorums not containing current quorum current {:?}, {}. quorum rotation expected", block_execution_context .block_platform_state() .validator_sets() @@ -144,7 +145,7 @@ where &quorum_hash, new_validator_set.members().len() ); - let validator_set_update = new_validator_set.into(); + let validator_set_update = new_validator_set.to_update(); block_execution_context .block_platform_state_mut() .set_next_validator_set_quorum_hash(Some(*quorum_hash)); @@ -163,7 +164,7 @@ where "rotation: all quorums changed, rotation to new quorum: {}", &quorum_hash ); - let validator_set_update = new_validator_set.into(); + let validator_set_update = new_validator_set.to_update(); let new_quorum_hash = *quorum_hash; block_execution_context .block_platform_state_mut() @@ -185,7 +186,7 @@ where method = "validator_set_update_v0", "validator set update without rotation" ); - Ok(Some(current_validator_set.into())) + Ok(Some(current_validator_set.to_update())) } else { tracing::debug!( method = "validator_set_update_v0", diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v1/mod.rs new file mode 100644 index 0000000000..b7b8f1372f --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/block_end/validator_set_update/v1/mod.rs @@ -0,0 +1,217 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::execution::types::block_execution_context::v0::{ + BlockExecutionContextV0Getters, BlockExecutionContextV0MutableGetters, +}; +use crate::execution::types::block_execution_context::BlockExecutionContext; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use crate::platform_types::validator_set::v0::ValidatorSetV0Getters; +use crate::rpc::core::CoreRPCLike; +use itertools::Itertools; + +use crate::platform_types::validator_set::ValidatorSetExt; +use dpp::dashcore::hashes::Hash; +use tenderdash_abci::proto::abci::ValidatorSetUpdate; + +impl Platform +where + C: CoreRPCLike, +{ + /// We need to validate against the platform state for rotation and not the block execution + /// context state + /// We introduced v1 because the end quorums could be rotating out, giving a small advantage + /// to proposers with a smaller pro_tx_hash + /// To understand this imagine we have proposers + /// `a b c d e f g h i j k` in quorum 24 + /// c is the current proposer + /// Quorum 24 no longer is valid + /// We jump to quorum 0. + /// a b and c just got paid, but the rest did not. + #[inline(always)] + pub(super) fn validator_set_update_v1( + &self, + proposer_pro_tx_hash: [u8; 32], + platform_state: &PlatformState, + block_execution_context: &mut BlockExecutionContext, + ) -> Result, Error> { + let mut perform_rotation = false; + + if let Some(validator_set) = block_execution_context + .block_platform_state() + .validator_sets() + .get(&platform_state.current_validator_set_quorum_hash()) + { + if let Some((last_member_pro_tx_hash, _)) = validator_set.members().last_key_value() { + // we should also perform a rotation if the validator set went through all quorum members + // this means we are at the last member of the quorum + if last_member_pro_tx_hash.as_byte_array() == &proposer_pro_tx_hash { + tracing::debug!( + method = "validator_set_update_v1", + "rotation: quorum finished as we hit last member {} of quorum {}. All known quorums are: [{}]. quorum rotation expected", + hex::encode(proposer_pro_tx_hash), + hex::encode(platform_state.current_validator_set_quorum_hash().as_byte_array()), + block_execution_context + .block_platform_state() + .validator_sets() + .keys() + .map(hex::encode).collect::>().join(" | "), + ); + perform_rotation = true; + } + } else { + // the validator set has no members, very weird, but let's just perform a rotation + tracing::debug!( + method = "validator_set_update_v1", + "rotation: validator set has no members", + ); + perform_rotation = true; + } + + // We should also perform a rotation if there are more than one quorum in the system + // and that the new proposer is on the same quorum and the last proposer but is before + // them in the list of proposers. + // This only works if Tenderdash goes through proposers properly + if &platform_state.last_committed_quorum_hash() + == platform_state + .current_validator_set_quorum_hash() + .as_byte_array() + && platform_state.last_committed_block_proposer_pro_tx_hash() > proposer_pro_tx_hash + && platform_state.validator_sets().len() > 1 + { + // 1 - We haven't changed quorums + // 2 - The new proposer is before the old proposer + // 3 - There are more than one quorum in the system + tracing::debug!( + method = "validator_set_update_v1", + "rotation: quorum finished as we hit last an earlier member {} than last block proposer {} for quorum {}. All known quorums are: [{}]. quorum rotation expected", + hex::encode(proposer_pro_tx_hash), + hex::encode(block_execution_context.block_platform_state().last_committed_block_proposer_pro_tx_hash()), + hex::encode(platform_state.current_validator_set_quorum_hash().as_byte_array()), + block_execution_context + .block_platform_state() + .validator_sets() + .keys() + .map(hex::encode).collect::>().join(" | "), + ); + perform_rotation = true; + } + } else { + // we also need to perform a rotation if the validator set is being removed + tracing::debug!( + method = "validator_set_update_v1", + "rotation: new quorums not containing current quorum current {:?}, {}. quorum rotation expected", + block_execution_context + .block_platform_state() + .validator_sets() + .keys() + .map(|quorum_hash| format!("{}", quorum_hash)), + &platform_state.current_validator_set_quorum_hash() + ); + perform_rotation = true; + } + + //todo: (maybe) perform a rotation if quorum health is low + + if perform_rotation { + // get the index of the previous quorum + let mut index = platform_state + .validator_sets() + .get_index_of(&platform_state.current_validator_set_quorum_hash()) + .ok_or(Error::Execution(ExecutionError::CorruptedCachedState( + format!("perform_rotation: current validator set quorum hash {} not in current known validator sets [{}] processing block {}", platform_state.current_validator_set_quorum_hash(), platform_state + .validator_sets().keys().map(|quorum_hash| quorum_hash.to_string()).join(" | "), + platform_state.last_committed_block_height() + 1, + ))))?; + // we should rotate the quorum + let quorum_count = platform_state.validator_sets().len(); + match quorum_count { + 0 => Err(Error::Execution(ExecutionError::CorruptedCachedState( + "no current quorums".to_string(), + ))), + 1 => Ok(None), // no rotation as we are the only quorum + count => { + let start_index = index; + let oldest_quorum_index_we_can_go_to = if count > 10 { + // if we have a lot of quorums (like on testnet and mainnet) + // we shouldn't start using the last ones as they could cycle out + count - 2 + } else { + count + }; + index = (index + 1) % oldest_quorum_index_we_can_go_to; + // We can't just take the next item because it might no longer be in the state + for _i in 0..oldest_quorum_index_we_can_go_to { + let (quorum_hash, _) = platform_state + .validator_sets() + .get_index(index) + .expect("expected next validator set"); + + // We still have it in the state + if let Some(new_validator_set) = block_execution_context + .block_platform_state() + .validator_sets() + .get(quorum_hash) + { + tracing::debug!( + method = "validator_set_update_v1", + "rotation: to new quorum: {} with {} members", + &quorum_hash, + new_validator_set.members().len() + ); + let validator_set_update = new_validator_set.to_update(); + block_execution_context + .block_platform_state_mut() + .set_next_validator_set_quorum_hash(Some(*quorum_hash)); + return Ok(Some(validator_set_update)); + } + index = (index + 1) % oldest_quorum_index_we_can_go_to; + if index == start_index { + break; + } + } + // All quorums changed + if let Some((quorum_hash, new_validator_set)) = block_execution_context + .block_platform_state() + .validator_sets() + .first() + { + tracing::debug!( + method = "validator_set_update_v1", + "rotation: all quorums changed, rotation to new quorum: {}", + &quorum_hash + ); + let validator_set_update = new_validator_set.to_update(); + let new_quorum_hash = *quorum_hash; + block_execution_context + .block_platform_state_mut() + .set_next_validator_set_quorum_hash(Some(new_quorum_hash)); + return Ok(Some(validator_set_update)); + } + tracing::debug!("no new quorums to choose from"); + Ok(None) + } + } + } else { + let current_validator_set = block_execution_context + .block_platform_state() + .current_validator_set()?; + if current_validator_set != platform_state.current_validator_set()? { + // Something changed, for example the IP of a validator changed, or someone's ban status + + tracing::debug!( + method = "validator_set_update_v1", + "validator set update without rotation" + ); + Ok(Some(current_validator_set.to_update())) + } else { + tracing::debug!( + method = "validator_set_update_v1", + "no validator set update", + ); + Ok(None) + } + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs index 1aa590cbc3..f02ff1e8c4 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/add_process_epoch_change_operations/v0/mod.rs @@ -272,7 +272,6 @@ mod tests { let block_execution_context = BlockExecutionContextV0 { block_state_info: block_info.clone().into(), epoch_info, - hpmn_count: 0, unsigned_withdrawal_transactions: Default::default(), block_platform_state, proposer_results: None, diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs index d73b86e7a2..4bb341a678 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/process_block_fees/v0/mod.rs @@ -268,7 +268,6 @@ mod tests { let block_execution_context = BlockExecutionContextV0 { block_state_info: block_info.clone().into(), epoch_info: epoch_info.clone(), - hpmn_count: 0, unsigned_withdrawal_transactions: Default::default(), block_platform_state, proposer_results: None, diff --git a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/tests.rs b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/tests.rs index 0e50baab4f..fcbf1e8314 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/tests.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/block_fee_processing/tests.rs @@ -823,8 +823,8 @@ mod refund_tests { .calculate_refunds_amount_for_identity(identity.id()) .expect("expected refunds for identity"); - println!("{}", insertion_fee_result.storage_fee); - println!("{}", refund_amount); + // println!("{}", insertion_fee_result.storage_fee); + // println!("{}", refund_amount); // we should be refunding around 21% after 25 years. let refunded_percentage = refund_amount * 100 / insertion_fee_result.storage_fee; diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/mod.rs index 042b35c5ca..048ea1266a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/mod.rs @@ -1,4 +1,5 @@ mod v0; +mod v1; use crate::error::execution::ExecutionError; use crate::error::Error; @@ -38,9 +39,10 @@ where .create_owner_identity { 0 => Self::create_owner_identity_v0(masternode, platform_version), + 1 => Self::create_owner_identity_v1(masternode, platform_version), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "create_owner_identity".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v0/mod.rs index eb4da99b89..176b6d90db 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v0/mod.rs @@ -17,7 +17,7 @@ where ) -> Result { let owner_identifier = Self::get_owner_identifier(masternode)?; let mut identity = Identity::create_basic_identity(owner_identifier, platform_version)?; - identity.add_public_keys([Self::get_owner_identity_key( + identity.add_public_keys([Self::get_owner_identity_withdrawal_key( masternode.state.payout_address, 0, platform_version, @@ -25,7 +25,9 @@ where Ok(identity) } - fn get_owner_identifier(masternode: &MasternodeListItem) -> Result { + pub(crate) fn get_owner_identifier( + masternode: &MasternodeListItem, + ) -> Result { let masternode_identifier: [u8; 32] = masternode.pro_tx_hash.into(); Ok(masternode_identifier.into()) } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v1/mod.rs new file mode 100644 index 0000000000..da89aaafc7 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/create_owner_identity/v1/mod.rs @@ -0,0 +1,33 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::rpc::core::CoreRPCLike; +use dashcore_rpc::dashcore_rpc_json::MasternodeListItem; +use dpp::identity::accessors::IdentityGettersV0; +use dpp::identity::Identity; +use dpp::version::PlatformVersion; + +impl Platform +where + C: CoreRPCLike, +{ + pub(super) fn create_owner_identity_v1( + masternode: &MasternodeListItem, + platform_version: &PlatformVersion, + ) -> Result { + let owner_identifier = Self::get_owner_identifier(masternode)?; + let mut identity = Identity::create_basic_identity(owner_identifier, platform_version)?; + identity.add_public_keys([ + Self::get_owner_identity_withdrawal_key( + masternode.state.payout_address, + 0, + platform_version, + )?, + Self::get_owner_identity_owner_key( + masternode.state.owner_address, + 1, + platform_version, + )?, + ]); + Ok(identity) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/mod.rs new file mode 100644 index 0000000000..8b76f02566 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/mod.rs @@ -0,0 +1,45 @@ +mod v0; + +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use dpp::identity::{IdentityPublicKey, KeyID}; + +use dpp::version::PlatformVersion; + +impl Platform { + /// Retrieves an identity public key using the provided owner key and key ID. + /// + /// This function derives the identity public key and delegates to a version-specific method depending on the platform version. + /// + /// # Arguments + /// + /// * owner_public_key_address - The public key address of the owner. + /// * key_id - The KeyID for the identity public key. + /// * platform_version - The version of the platform to determine which method to delegate to. + /// + /// # Returns + /// + /// * Result - Returns the derived identity public key if successful. Otherwise, returns an error. + pub(crate) fn get_owner_identity_owner_key( + owner_public_key_address: [u8; 20], + key_id: KeyID, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive_abci + .methods + .core_based_updates + .masternode_updates + .get_owner_identity_owner_key + { + 0 => Self::get_owner_identity_owner_key_v0(owner_public_key_address, key_id), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "get_owner_identity_owner_key".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/v0/mod.rs new file mode 100644 index 0000000000..ba099e99ed --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_owner_key/v0/mod.rs @@ -0,0 +1,24 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; +use dpp::identity::identity_public_key::v0::IdentityPublicKeyV0; +use dpp::identity::{IdentityPublicKey, KeyID, KeyType, Purpose, SecurityLevel}; +use dpp::platform_value::BinaryData; + +impl Platform { + pub(super) fn get_owner_identity_owner_key_v0( + owner_public_key_address: [u8; 20], + key_id: KeyID, + ) -> Result { + Ok(IdentityPublicKeyV0 { + id: key_id, + key_type: KeyType::ECDSA_HASH160, + purpose: Purpose::OWNER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(owner_public_key_address.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into()) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/mod.rs similarity index 84% rename from packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/mod.rs rename to packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/mod.rs index 6393d8e0c4..3ae057fbb1 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/mod.rs @@ -26,7 +26,7 @@ where /// # Returns /// /// * Result - Returns the derived identity public key if successful. Otherwise, returns an error. - pub(crate) fn get_owner_identity_key( + pub(crate) fn get_owner_identity_withdrawal_key( payout_address: [u8; 20], key_id: KeyID, platform_version: &PlatformVersion, @@ -36,11 +36,11 @@ where .methods .core_based_updates .masternode_updates - .get_owner_identity_key + .get_owner_identity_withdrawal_key { - 0 => Self::get_owner_identity_key_v0(payout_address, key_id), + 0 => Self::get_owner_identity_withdrawal_key_v0(payout_address, key_id), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { - method: "get_owner_identity_key".to_string(), + method: "get_owner_identity_withdrawal_key".to_string(), known_versions: vec![0], received: version, })), diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/v0/mod.rs similarity index 93% rename from packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/v0/mod.rs rename to packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/v0/mod.rs index eb478c5acc..cec144d34a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_key/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/get_owner_identity_withdrawal_key/v0/mod.rs @@ -9,7 +9,7 @@ impl Platform where C: CoreRPCLike, { - pub(super) fn get_owner_identity_key_v0( + pub(super) fn get_owner_identity_withdrawal_key_v0( payout_address: [u8; 20], key_id: KeyID, ) -> Result { diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/mod.rs index e3168a64e7..e2a9176d3c 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/mod.rs @@ -4,14 +4,14 @@ mod create_voter_identity; mod disable_identity_keys; mod get_operator_identifier; mod get_operator_identity_keys; -mod get_owner_identity_key; +mod get_owner_identity_owner_key; +mod get_owner_identity_withdrawal_key; mod get_voter_identifier; mod get_voter_identity_key; mod update_masternode_identities; mod update_operator_identity; mod update_owner_withdrawal_address; mod update_voter_identity; - // // // #[cfg(test)] diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs index 751abd32be..0b7af918d5 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_masternode_identities/v0/mod.rs @@ -15,6 +15,7 @@ use drive::util::batch::IdentityOperationType::AddNewIdentity; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use dpp::dashcore::hashes::Hash; use drive::grovedb::Transaction; use std::collections::BTreeMap; use tracing::Level; @@ -100,13 +101,19 @@ where // On initialization there is no platform state, but we also don't need to update // masternode identities. for update in updated_mns.iter() { - self.update_owner_withdrawal_address( - update, - block_info, - transaction, - &mut drive_operations, - platform_version, - )?; + let (pro_tx_hash, state_diff) = update; + if let Some(new_withdrawal_address) = state_diff.payout_address { + let owner_identifier: [u8; 32] = pro_tx_hash.to_byte_array(); + self.update_owner_withdrawal_address( + owner_identifier, + new_withdrawal_address, + block_info, + transaction, + &mut drive_operations, + platform_version, + )?; + }; + self.update_voter_identity( update, block_info, @@ -115,14 +122,21 @@ where &mut drive_operations, platform_version, )?; - self.update_operator_identity( - update, - block_info, - platform_state, - transaction, - &mut drive_operations, - platform_version, - )?; + if state_diff.platform_node_id.is_some() + || state_diff.operator_payout_address.is_some() + || state_diff.pub_key_operator.is_some() + { + self.update_operator_identity( + pro_tx_hash, + state_diff.pub_key_operator.as_ref(), + state_diff.operator_payout_address, + state_diff.platform_node_id, + platform_state, + transaction, + &mut drive_operations, + platform_version, + )?; + } } for masternode in removed_masternodes.values() { @@ -136,14 +150,14 @@ where } } - let previous_fee_verions = platform_state.map(|state| state.previous_fee_versions()); + let previous_fee_versions = platform_state.map(|state| state.previous_fee_versions()); self.drive.apply_drive_operations( drive_operations, true, block_info, Some(transaction), platform_version, - previous_fee_verions, + previous_fee_versions, )?; let height = block_info.height; diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/mod.rs index 2a32163ba9..e87425a4b2 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/mod.rs @@ -6,8 +6,6 @@ use crate::platform_types::platform::Platform; use crate::platform_types::platform_state::PlatformState; use crate::rpc::core::CoreRPCLike; use dashcore_rpc::dashcore::ProTxHash; -use dashcore_rpc::json::DMNStateDiff; -use dpp::block::block_info::BlockInfo; use dpp::version::PlatformVersion; use drive::util::batch::DriveOperation; @@ -45,8 +43,10 @@ where /// does not match any of the known versions. pub(in crate::execution::platform_events::core_based_updates::update_masternode_identities) fn update_operator_identity( &self, - masternode: &(ProTxHash, DMNStateDiff), - block_info: &BlockInfo, + masternode_pro_tx_hash: &ProTxHash, + pub_key_operator_change: Option<&Vec>, + operator_payout_address_change: Option>, + platform_node_id_change: Option<[u8; 20]>, platform_state: &PlatformState, transaction: &Transaction, drive_operations: &mut Vec, @@ -60,8 +60,10 @@ where .update_operator_identity { 0 => self.update_operator_identity_v0( - masternode, - block_info, + masternode_pro_tx_hash, + pub_key_operator_change, + operator_payout_address_change, + platform_node_id_change, platform_state, transaction, drive_operations, diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs index 68d8585f5f..898eec524c 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs @@ -7,9 +7,8 @@ use crate::rpc::core::CoreRPCLike; use dashcore_rpc::dashcore::ProTxHash; -use dashcore_rpc::json::DMNStateDiff; -use dpp::block::block_info::BlockInfo; - +use dpp::dashcore::hashes::Hash; +use dpp::identifier::{Identifier, MasternodeIdentifiers}; use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; @@ -25,7 +24,7 @@ use drive::grovedb::Transaction; use drive::util::batch::DriveOperation; use drive::util::batch::DriveOperation::IdentityOperation; use drive::util::batch::IdentityOperationType::{ - AddNewIdentity, AddNewKeysToIdentity, DisableIdentityKeys, + AddNewIdentity, AddNewKeysToIdentity, DisableIdentityKeys, ReEnableIdentityKeys, }; impl Platform @@ -34,32 +33,32 @@ where { pub(super) fn update_operator_identity_v0( &self, - masternode: &(ProTxHash, DMNStateDiff), - _block_info: &BlockInfo, + masternode_pro_tx_hash: &ProTxHash, + pub_key_operator_change: Option<&Vec>, + operator_payout_address_change: Option>, + platform_node_id_change: Option<[u8; 20]>, platform_state: &PlatformState, transaction: &Transaction, drive_operations: &mut Vec, platform_version: &PlatformVersion, ) -> Result<(), Error> { - let (pro_tx_hash, state_diff) = masternode; - - if state_diff.pub_key_operator.is_none() - && state_diff.operator_payout_address.is_none() - && state_diff.platform_node_id.is_none() + if pub_key_operator_change.is_none() + && operator_payout_address_change.is_none() + && platform_node_id_change.is_none() { return Ok(()); } - let needs_change_operator_payout_address = state_diff.operator_payout_address.is_some(); - let needs_change_platform_node_id = state_diff.platform_node_id.is_some(); + let needs_change_operator_payout_address = operator_payout_address_change.is_some(); + let needs_change_platform_node_id = platform_node_id_change.is_some(); let old_masternode = platform_state .full_masternode_list() - .get(pro_tx_hash) + .get(masternode_pro_tx_hash) .ok_or_else(|| { Error::Execution(ExecutionError::CorruptedCachedState(format!( "expected masternode {} to be in state", - pro_tx_hash + masternode_pro_tx_hash ))) })?; @@ -68,14 +67,18 @@ where platform_version, )?; - let mut new_masternode = old_masternode.clone(); - - new_masternode.state.apply_diff(state_diff.clone()); - - let new_operator_identifier = Self::get_operator_identifier_from_masternode_list_item( - &new_masternode, - platform_version, - )?; + let (operator_identifier, changed_identity) = + if let Some(pub_key_operator_change) = pub_key_operator_change { + ( + Identifier::create_operator_identifier( + masternode_pro_tx_hash.as_byte_array(), + pub_key_operator_change, + ), + true, + ) + } else { + (old_operator_identifier, false) + }; let key_request = IdentityKeysRequest { identity_id: old_operator_identifier.to_buffer(), @@ -93,14 +96,14 @@ where )?; // two possibilities, same identity or identity switch. - if new_operator_identifier == old_operator_identifier { + if !changed_identity { // we are on same identity for platform let mut old_operator_node_id_to_re_enable = None; let mut old_operator_payout_address_to_re_enable = None; - let last_key_id = *old_identity_keys.keys().max().unwrap(); //todo + let last_key_id = old_identity_keys.keys().max().copied().unwrap_or_default(); let old_operator_identity_key_ids_to_disable: Vec = old_identity_keys .into_iter() @@ -116,7 +119,7 @@ where { return Some(key_id); } else if let Some(operator_payout_address) = - state_diff.operator_payout_address.as_ref().unwrap() + operator_payout_address_change.as_ref().unwrap() { // an old key that we need to re-enable if key.data().as_slice() == operator_payout_address.as_slice() { @@ -131,7 +134,7 @@ where == old_masternode.state.platform_node_id.as_ref().unwrap() { return Some(key_id); - } else if state_diff.platform_node_id.as_ref().unwrap().as_slice() + } else if platform_node_id_change.as_ref().unwrap().as_slice() == key.data().as_slice() { old_operator_node_id_to_re_enable = Some(key_id); @@ -143,13 +146,12 @@ where if !old_operator_identity_key_ids_to_disable.is_empty() { drive_operations.push(IdentityOperation(DisableIdentityKeys { - identity_id: new_operator_identifier.to_buffer(), + identity_id: operator_identifier.to_buffer(), keys_ids: old_operator_identity_key_ids_to_disable, })); } let mut keys_to_re_enable = vec![]; - let unique_keys_to_add = vec![]; let mut non_unique_keys_to_add = vec![]; let mut new_key_id = last_key_id + 1; @@ -164,8 +166,7 @@ where security_level: SecurityLevel::CRITICAL, read_only: true, data: BinaryData::new( - state_diff - .platform_node_id + platform_node_id_change .as_ref() .expect("platform node id confirmed is some") .to_vec(), @@ -183,8 +184,7 @@ where { keys_to_re_enable.push(old_operator_payout_address_to_re_enable); } else if needs_change_operator_payout_address { - if let Some(new_operator_payout_address) = state_diff - .operator_payout_address + if let Some(new_operator_payout_address) = operator_payout_address_change .as_ref() .expect("operator_payout_address confirmed is some") { @@ -203,12 +203,31 @@ where } } - drive_operations.push(IdentityOperation(AddNewKeysToIdentity { - identity_id: new_operator_identifier.to_buffer(), - unique_keys_to_add, - non_unique_keys_to_add, - })); + if !keys_to_re_enable.is_empty() { + drive_operations.push(IdentityOperation(ReEnableIdentityKeys { + identity_id: operator_identifier.to_buffer(), + keys_ids: keys_to_re_enable, + })); + } + + if !non_unique_keys_to_add.is_empty() { + drive_operations.push(IdentityOperation(AddNewKeysToIdentity { + identity_id: operator_identifier.to_buffer(), + unique_keys_to_add: vec![], + non_unique_keys_to_add, + })); + } } else { + // We have changed operator keys, this means we are now on a new operator identity + // Or as a rare case an operator identity that already existed + + let key_request = IdentityKeysRequest { + identity_id: operator_identifier.to_buffer(), + request_type: KeyRequestType::AllKeys, + limit: None, + offset: None, + }; + // We can not disable previous withdrawal keys, // Let's disable other two keys let old_operator_identity_key_ids_to_disable: Vec = old_identity_keys @@ -234,39 +253,917 @@ where keys_ids: old_operator_identity_key_ids_to_disable, })); } + + let identity_to_enable_old_keys = self + .drive + .fetch_identity_keys::( + key_request, + Some(transaction), + platform_version, + )?; + let new_payout_address = - if let Some(operator_payout_address) = state_diff.operator_payout_address { + if let Some(operator_payout_address) = operator_payout_address_change { operator_payout_address } else { - // we need to use the old pub_key_operator - old_masternode.state.operator_payout_address + if let Some((_, found_old_key)) = identity_to_enable_old_keys + .iter() + .find(|(_, key)| key.purpose() == Purpose::TRANSFER) + { + Some(found_old_key.data().to_vec().try_into().map_err(|_| { + Error::Execution(ExecutionError::CorruptedDriveResponse( + "old payout address should be 20 bytes".to_string(), + )) + })?) + } else { + // finally we just use the old masternode payout address + // we need to use the old pub_key_operator + old_masternode.state.operator_payout_address + } }; - let new_platform_node_id = if let Some(platform_node_id) = state_diff.platform_node_id { + let new_platform_node_id = if let Some(platform_node_id) = platform_node_id_change { // if it changed it means it always existed Some(platform_node_id) } else { - // we need to use the old pub_key_operator + // we need to use the old platform_node_id, we shouldn't do the same as with the withdrawal address old_masternode.state.platform_node_id }; - // Now we need to create the new operator identity with the new keys - let mut identity = - Identity::create_basic_identity(new_operator_identifier, platform_version)?; - identity.add_public_keys(Self::get_operator_identity_keys( - state_diff - .pub_key_operator - .as_ref() - .expect("expected a pub key operator") - .clone(), - new_payout_address, - new_platform_node_id, - platform_version, - )?); - drive_operations.push(IdentityOperation(AddNewIdentity { - identity, - is_masternode_identity: true, - })); + if identity_to_enable_old_keys.is_empty() { + // Now we need to create the new operator identity with the new keys + let mut identity = + Identity::create_basic_identity(operator_identifier, platform_version)?; + identity.add_public_keys(Self::get_operator_identity_keys( + pub_key_operator_change + .expect("expected a pub key operator") + .clone(), + new_payout_address, + new_platform_node_id, + platform_version, + )?); + drive_operations.push(IdentityOperation(AddNewIdentity { + identity, + is_masternode_identity: true, + })); + } else { + let mut key_ids_to_reenable = vec![]; + let mut non_unique_keys_to_add = vec![]; + + let last_key_id = identity_to_enable_old_keys + .keys() + .max() + .copied() + .unwrap_or_default(); + + let mut new_key_id = last_key_id + 1; + + if let Some(new_payout_address) = new_payout_address { + if let Some((key_id, found_old_key)) = identity_to_enable_old_keys + .iter() + .find(|(_, key)| key.data().as_slice() == &new_payout_address) + { + if found_old_key.is_disabled() { + key_ids_to_reenable.push(*key_id) + } + } else { + let key = IdentityPublicKeyV0 { + id: new_key_id, + key_type: KeyType::ECDSA_HASH160, + purpose: TRANSFER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(new_payout_address.to_vec()), + disabled_at: None, + contract_bounds: None, + }; + non_unique_keys_to_add.push(key.into()); + new_key_id += 1; + } + } + + if let Some(new_platform_node_id) = new_platform_node_id { + if let Some((key_id, found_old_key)) = identity_to_enable_old_keys + .into_iter() + .find(|(_, key)| key.data().as_slice() == &new_platform_node_id) + { + if found_old_key.is_disabled() { + key_ids_to_reenable.push(key_id) + } + } else { + let key: IdentityPublicKey = IdentityPublicKeyV0 { + id: new_key_id, + key_type: KeyType::EDDSA_25519_HASH160, + purpose: Purpose::SYSTEM, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new( + platform_node_id_change + .as_ref() + .expect("platform node id confirmed is some") + .to_vec(), + ), + disabled_at: None, + contract_bounds: None, + } + .into(); + non_unique_keys_to_add.push(key); + } + } + + if !key_ids_to_reenable.is_empty() { + // We just need to reenable keys on the old identity + drive_operations.push(IdentityOperation(ReEnableIdentityKeys { + identity_id: operator_identifier.to_buffer(), + keys_ids: key_ids_to_reenable, + })); + } + + if !non_unique_keys_to_add.is_empty() { + // We should add keys that didn't exist before + drive_operations.push(IdentityOperation(AddNewKeysToIdentity { + identity_id: operator_identifier.to_buffer(), + unique_keys_to_add: vec![], + non_unique_keys_to_add, + })); + } + } } Ok(()) } } + +#[cfg(test)] +mod tests { + use crate::platform_types::platform_state::v0::PlatformStateV0Methods; + use crate::test::helpers::setup::{TempPlatform, TestPlatformBuilder}; + use dashcore_rpc::dashcore::ProTxHash; + use dashcore_rpc::dashcore_rpc_json::{MasternodeListItem, MasternodeType}; + use dashcore_rpc::json::DMNState; + use dpp::block::block_info::BlockInfo; + use dpp::bls_signatures::PrivateKey as BlsPrivateKey; + use dpp::dashcore::hashes::Hash; + use dpp::dashcore::Txid; + use dpp::identifier::MasternodeIdentifiers; + use dpp::identity::identity_public_key::v0::IdentityPublicKeyV0; + use dpp::identity::{IdentityV0, KeyType, Purpose, SecurityLevel}; + use dpp::platform_value::BinaryData; + use dpp::prelude::{Identifier, Identity, IdentityPublicKey}; + use platform_version::version::PlatformVersion; + use rand::prelude::StdRng; + use rand::Rng; + use rand::SeedableRng; + use std::collections::BTreeMap; + use std::net::SocketAddr; + use std::ops::Deref; + use std::str::FromStr; + + fn create_operator_identity( + platform: &TempPlatform, + rng: &mut StdRng, + ) -> (ProTxHash, Identity, [u8; 20], Vec, [u8; 20]) { + let platform_version = PlatformVersion::latest(); + + // Create a dummy ProTxHash + let pro_tx_hash_bytes: [u8; 32] = rng.gen(); + + let pro_tx_hash = ProTxHash::from_raw_hash(Hash::from_byte_array(pro_tx_hash_bytes)); + + let payout_address: [u8; 20] = rng.gen(); + + let node_id_bytes: [u8; 20] = rng.gen(); + + // Create a public key operator and payout address + let private_key_operator = + BlsPrivateKey::generate_dash(rng).expect("expected to generate a private key"); + let pub_key_operator = private_key_operator + .g1_element() + .expect("expected to get public key") + .to_bytes() + .to_vec(); + + let operator_key: IdentityPublicKey = IdentityPublicKeyV0 { + id: 0, + key_type: KeyType::BLS12_381, + purpose: Purpose::AUTHENTICATION, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(pub_key_operator.clone()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let withdrawal_key: IdentityPublicKey = IdentityPublicKeyV0 { + id: 1, + key_type: KeyType::ECDSA_HASH160, + purpose: Purpose::TRANSFER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(payout_address.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let node_id: IdentityPublicKey = IdentityPublicKeyV0 { + id: 2, + key_type: KeyType::EDDSA_25519_HASH160, + purpose: Purpose::SYSTEM, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(node_id_bytes.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let identity: Identity = IdentityV0 { + id: Identifier::create_operator_identifier(&pro_tx_hash_bytes, &pub_key_operator), + public_keys: BTreeMap::from([(0, operator_key), (1, withdrawal_key), (2, node_id)]), + balance: 0, + revision: 0, + } + .into(); + + // We just add this identity to the system first + + platform + .drive + .add_new_identity( + identity.clone(), + true, + &BlockInfo::default(), + true, + None, + platform_version, + ) + .expect("expected to add a new identity"); + + ( + pro_tx_hash, + identity, + payout_address, + pub_key_operator, + node_id_bytes, + ) + } + + #[test] + fn test_update_operator_payout_address() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let (pro_tx_hash, _identity, operator_payout_address, pub_key_operator, node_id_bytes) = + create_operator_identity(&platform, &mut rng); + + let new_operator_payout_address: [u8; 20] = rng.gen(); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id_bytes), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + Some(Some(new_operator_payout_address)), + None, + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_operator_change_back_to_previous_operator_address() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let (pro_tx_hash, _identity, operator_payout_address, pub_key_operator, node_id) = + create_operator_identity(&platform, &mut rng); + + let new_operator_payout_address: [u8; 20] = rng.gen(); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + Some(Some(new_operator_payout_address)), + None, + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(new_operator_payout_address), + platform_node_id: Some(node_id), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let mut re_enable_drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + Some(Some(operator_payout_address)), + None, + &platform_state, + &transaction, + &mut re_enable_drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + re_enable_drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_operator_platform_node_id() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let (pro_tx_hash, _identity, operator_payout_address, pub_key_operator, node_id_bytes) = + create_operator_identity(&platform, &mut rng); + + let new_platform_node_id: [u8; 20] = rng.gen(); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id_bytes), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + None, + Some(new_platform_node_id), + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_operator_change_back_to_previous_node_id() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let (pro_tx_hash, _identity, operator_payout_address, pub_key_operator, original_node_id) = + create_operator_identity(&platform, &mut rng); + + let new_platform_node_id: [u8; 20] = rng.gen(); + + // Create an old masternode state with original platform node ID + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(original_node_id), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + // Update to new node ID + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + None, + Some(new_platform_node_id), + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(new_platform_node_id), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + // Change back to original node ID + let mut re_enable_drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + None, + None, + Some(original_node_id), + &platform_state, + &transaction, + &mut re_enable_drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + re_enable_drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_operator_public_key() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let ( + pro_tx_hash, + _identity, + operator_payout_address, + original_pub_key_operator, + node_id_bytes, + ) = create_operator_identity(&platform, &mut rng); + + // Generate a new public key operator + let new_private_key_operator = + BlsPrivateKey::generate_dash(&mut rng).expect("expected to generate a private key"); + let new_pub_key_operator = new_private_key_operator + .g1_element() + .expect("expected to get public key") + .to_bytes() + .to_vec(); + + // Create an old masternode state + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: original_pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id_bytes), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + // Update the operator public key + platform + .update_operator_identity_v0( + &pro_tx_hash, + Some(&new_pub_key_operator), + None, + None, + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_operator_change_back_to_previous_public_key() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let ( + pro_tx_hash, + _identity, + operator_payout_address, + original_pub_key_operator, + node_id_bytes, + ) = create_operator_identity(&platform, &mut rng); + + // Generate a new public key operator + let new_private_key_operator = + BlsPrivateKey::generate_dash(&mut rng).expect("expected to generate a private key"); + let new_pub_key_operator = new_private_key_operator + .g1_element() + .expect("expected to get public key") + .to_bytes() + .to_vec(); + + // Create an old masternode state with original public key operator + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: original_pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id_bytes), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + // Add the old masternode to the platform state + let mut platform_state = platform.state.load().clone().deref().clone(); + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + // Update to new public key operator + platform + .update_operator_identity_v0( + &pro_tx_hash, + Some(&new_pub_key_operator), + None, + None, + &platform_state, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + + // Create an old masternode state with original public key operator + let masternode_list_item = MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen::<[u8; 32]>()), + collateral_index: 0, + collateral_address: [0; 20], + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::from_str("1.0.1.1:1234").unwrap(), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address: rng.gen::<[u8; 20]>(), + voting_address: rng.gen::<[u8; 20]>(), + payout_address: rng.gen::<[u8; 20]>(), + pub_key_operator: new_pub_key_operator.clone(), + operator_payout_address: Some(operator_payout_address), + platform_node_id: Some(node_id_bytes), + platform_p2p_port: None, + platform_http_port: None, + }, + }; + + platform_state + .full_masternode_list_mut() + .insert(pro_tx_hash, masternode_list_item); + + // Change back to original public key operator + let mut re_enable_drive_operations = vec![]; + + platform + .update_operator_identity_v0( + &pro_tx_hash, + Some(&original_pub_key_operator), + None, + None, + &platform_state, + &transaction, + &mut re_enable_drive_operations, + platform_version, + ) + .expect("expected to update operator identity"); + + platform + .drive + .apply_drive_operations( + re_enable_drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs index 5374de1354..1f81d17c0b 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/mod.rs @@ -3,8 +3,6 @@ use crate::error::Error; use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; -use dashcore_rpc::dashcore::ProTxHash; -use dashcore_rpc::json::DMNStateDiff; use dpp::block::block_info::BlockInfo; use dpp::version::PlatformVersion; @@ -13,6 +11,7 @@ use drive::util::batch::DriveOperation; use drive::grovedb::Transaction; mod v0; +mod v1; impl Platform where @@ -41,7 +40,8 @@ where /// if the existing withdrawal address is already disabled. pub(in crate::execution::platform_events::core_based_updates::update_masternode_identities) fn update_owner_withdrawal_address( &self, - masternode: &(ProTxHash, DMNStateDiff), + owner_identifier: [u8; 32], + new_withdrawal_address: [u8; 20], block_info: &BlockInfo, transaction: &Transaction, drive_operations: &mut Vec, @@ -55,7 +55,16 @@ where .update_owner_withdrawal_address { 0 => self.update_owner_withdrawal_address_v0( - masternode, + owner_identifier, + new_withdrawal_address, + block_info, + transaction, + drive_operations, + platform_version, + ), + 1 => self.update_owner_withdrawal_address_v1( + owner_identifier, + new_withdrawal_address, block_info, transaction, drive_operations, @@ -63,9 +72,276 @@ where ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "update_owner_withdrawal_address".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } } } + +#[cfg(test)] +mod tests { + use crate::test::helpers::setup::TestPlatformBuilder; + use dpp::block::block_info::BlockInfo; + use dpp::identity::accessors::IdentityGettersV0; + use dpp::identity::identity_public_key::v0::IdentityPublicKeyV0; + use dpp::identity::{Identity, IdentityV0, KeyType, Purpose, SecurityLevel}; + use dpp::platform_value::BinaryData; + use dpp::prelude::{Identifier, IdentityPublicKey}; + use platform_version::version::PlatformVersion; + use rand::prelude::StdRng; + use rand::Rng; + use rand::SeedableRng; + use std::collections::BTreeMap; + + #[test] + fn test_update_withdrawal_address() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let payout_address: [u8; 20] = rng.gen(); + + let withdrawal_key: IdentityPublicKey = IdentityPublicKeyV0 { + id: 0, + key_type: KeyType::ECDSA_HASH160, + purpose: Purpose::TRANSFER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(payout_address.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let identity: Identity = IdentityV0 { + id: Identifier::random_with_rng(&mut rng), + public_keys: BTreeMap::from([(0, withdrawal_key.clone())]), + balance: 0, + revision: 0, + } + .into(); + + // We just add this identity to the system first + + platform + .drive + .add_new_identity( + identity.clone(), + true, + &block_info, + true, + None, + platform_version, + ) + .expect("expected to add a new identity"); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_owner_withdrawal_address( + identity.id().to_buffer(), + [0; 20], + &block_info, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update owner withdrawal address"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + + #[test] + fn test_update_to_same_withdrawal_address() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let payout_address: [u8; 20] = rng.gen(); + + let withdrawal_key: IdentityPublicKey = IdentityPublicKeyV0 { + id: 0, + key_type: KeyType::ECDSA_HASH160, + purpose: Purpose::TRANSFER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(payout_address.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let identity: Identity = IdentityV0 { + id: Identifier::random_with_rng(&mut rng), + public_keys: BTreeMap::from([(0, withdrawal_key.clone())]), + balance: 0, + revision: 0, + } + .into(); + + // We just add this identity to the system first + + platform + .drive + .add_new_identity( + identity.clone(), + true, + &block_info, + true, + None, + platform_version, + ) + .expect("expected to add a new identity"); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_owner_withdrawal_address( + identity.id().to_buffer(), + payout_address, + &block_info, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update owner withdrawal address"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } + #[test] + fn test_update_to_previously_disabled_withdrawal_address() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_genesis_state(); + + let block_info = BlockInfo::default(); + + let mut rng = StdRng::seed_from_u64(5); + + let payout_address: [u8; 20] = rng.gen(); + + let withdrawal_key: IdentityPublicKey = IdentityPublicKeyV0 { + id: 0, + key_type: KeyType::ECDSA_HASH160, + purpose: Purpose::TRANSFER, + security_level: SecurityLevel::CRITICAL, + read_only: true, + data: BinaryData::new(payout_address.to_vec()), + disabled_at: None, + contract_bounds: None, + } + .into(); + + let identity: Identity = IdentityV0 { + id: Identifier::random_with_rng(&mut rng), + public_keys: BTreeMap::from([(0, withdrawal_key.clone())]), + balance: 0, + revision: 0, + } + .into(); + + // We just add this identity to the system first + + platform + .drive + .add_new_identity( + identity.clone(), + true, + &block_info, + true, + None, + platform_version, + ) + .expect("expected to add a new identity"); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_owner_withdrawal_address( + identity.id().to_buffer(), + [0; 20], + &block_info, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update owner withdrawal address"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + + let transaction = platform.drive.grove.start_transaction(); + + let mut drive_operations = vec![]; + + platform + .update_owner_withdrawal_address( + identity.id().to_buffer(), + payout_address, + &block_info, + &transaction, + &mut drive_operations, + platform_version, + ) + .expect("expected to update owner withdrawal address"); + + platform + .drive + .apply_drive_operations( + drive_operations, + true, + &block_info, + Some(&transaction), + platform_version, + None, + ) + .expect("expected to apply drive operations"); + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v0/mod.rs index 73d26e8235..640a038160 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v0/mod.rs @@ -3,10 +3,6 @@ use crate::error::Error; use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; -use dashcore_rpc::dashcore::hashes::Hash; -use dashcore_rpc::dashcore::ProTxHash; - -use dashcore_rpc::json::DMNStateDiff; use dpp::block::block_info::BlockInfo; use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; @@ -19,26 +15,22 @@ use drive::drive::identity::key::fetch::{ use drive::grovedb::Transaction; use drive::util::batch::DriveOperation; use drive::util::batch::DriveOperation::IdentityOperation; -use drive::util::batch::IdentityOperationType::{AddNewKeysToIdentity, DisableIdentityKeys}; +use drive::util::batch::IdentityOperationType::{ + AddNewKeysToIdentity, DisableIdentityKeys, ReEnableIdentityKeys, +}; impl Platform where C: CoreRPCLike, { pub(super) fn update_owner_withdrawal_address_v0( &self, - masternode: &(ProTxHash, DMNStateDiff), + owner_identifier: [u8; 32], + new_withdrawal_address: [u8; 20], block_info: &BlockInfo, transaction: &Transaction, drive_operations: &mut Vec, platform_version: &PlatformVersion, ) -> Result<(), Error> { - let (pro_tx_hash, state_diff) = masternode; - let Some(new_withdrawal_address) = state_diff.payout_address else { - return Ok(()); - }; - - let owner_identifier: [u8; 32] = pro_tx_hash.to_byte_array(); - let key_request = IdentityKeysRequest { identity_id: owner_identifier, request_type: KeyRequestType::AllKeys, @@ -60,15 +52,13 @@ where ))); } - let last_key_id = *old_withdrawal_identity_keys.keys().max().unwrap(); //todo - let key_ids_to_disable: Vec = old_withdrawal_identity_keys - .into_iter() + .iter() .filter_map(|(key_id, key)| { - if key.disabled_at().is_some() { - None //No need to disable it again + if key.disabled_at().is_some() || key.data().as_slice() == &new_withdrawal_address { + None //No need to disable it again or if we are adding the same key we already had } else { - Some(key_id) + Some(*key_id) } }) .collect(); @@ -88,25 +78,48 @@ where })); } - // add the new key - let new_owner_key = Self::get_owner_identity_key( - new_withdrawal_address, - last_key_id + 1, - platform_version, - )?; + if let Some((key_id, previously_disabled_old_key)) = old_withdrawal_identity_keys + .iter() + .find(|(_, key)| key.data().as_slice() == new_withdrawal_address) + { + // there might be a situation where we should do nothing as well + if previously_disabled_old_key.is_disabled() { + // We need to re-enable the withdrawal key + tracing::trace!( + identity_id = ?owner_identifier, + withdrawal_key = ?previously_disabled_old_key, + method = "update_owner_withdrawal_address_v0", + "re-enabled withdrawal key to owner identity" + ); + + drive_operations.push(IdentityOperation(ReEnableIdentityKeys { + identity_id: owner_identifier, + keys_ids: vec![*key_id], + })); + } + } else { + let last_key_id = *old_withdrawal_identity_keys.keys().max().unwrap(); //todo + + // add the new key + let new_owner_withdrawal_key = Self::get_owner_identity_withdrawal_key( + new_withdrawal_address, + last_key_id + 1, + platform_version, + )?; - tracing::trace!( - identity_id = ?owner_identifier, - withdrawal_key = ?new_owner_key, - method = "update_owner_withdrawal_address_v0", - "add new withdrawal key to owner identity" - ); + tracing::trace!( + identity_id = ?owner_identifier, + withdrawal_key = ?new_owner_withdrawal_key, + method = "update_owner_withdrawal_address_v0", + "add new withdrawal key to owner identity" + ); - drive_operations.push(IdentityOperation(AddNewKeysToIdentity { - identity_id: owner_identifier, - unique_keys_to_add: vec![], - non_unique_keys_to_add: vec![new_owner_key], - })); + drive_operations.push(IdentityOperation(AddNewKeysToIdentity { + identity_id: owner_identifier, + unique_keys_to_add: vec![], + non_unique_keys_to_add: vec![new_owner_withdrawal_key], + })); + } Ok(()) } diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v1/mod.rs new file mode 100644 index 0000000000..40e074193a --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_owner_withdrawal_address/v1/mod.rs @@ -0,0 +1,136 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; + +use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; +use dpp::identity::{KeyID, Purpose}; + +use dpp::version::PlatformVersion; +use drive::drive::identity::key::fetch::{ + IdentityKeysRequest, KeyIDIdentityPublicKeyPairBTreeMap, KeyRequestType, +}; +use drive::grovedb::Transaction; +use drive::util::batch::DriveOperation; +use drive::util::batch::DriveOperation::IdentityOperation; +use drive::util::batch::IdentityOperationType::{ + AddNewKeysToIdentity, DisableIdentityKeys, ReEnableIdentityKeys, +}; +impl Platform +where + C: CoreRPCLike, +{ + /// In this version we change how the new key_id is found, as there might also be an owner key + pub(super) fn update_owner_withdrawal_address_v1( + &self, + owner_identifier: [u8; 32], + new_withdrawal_address: [u8; 20], + block_info: &BlockInfo, + transaction: &Transaction, + drive_operations: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + let key_request = IdentityKeysRequest { + identity_id: owner_identifier, + request_type: KeyRequestType::AllKeys, + limit: None, + offset: None, + }; + + let old_withdrawal_identity_keys = self + .drive + .fetch_identity_keys::( + key_request, + Some(transaction), + platform_version, + )?; + + if old_withdrawal_identity_keys.is_empty() { + return Err(Error::Execution(ExecutionError::DriveMissingData( + "expected masternode owner identity to be in state".to_string(), + ))); + } + + let key_ids_to_disable: Vec = old_withdrawal_identity_keys + .iter() + .filter_map(|(key_id, key)| { + if key.disabled_at().is_some() + || key.data().as_slice() == &new_withdrawal_address + || key.purpose() == Purpose::OWNER + { + // We should not disable the owner key + // Also no need to disable withdrawal keys again + // Or if we are adding the same key we already had + None + } else { + Some(*key_id) + } + }) + .collect(); + + if !key_ids_to_disable.is_empty() { + tracing::trace!( + identity_id = ?owner_identifier, + keys_ids = ?key_ids_to_disable, + disable_at = ?block_info.time_ms, + method = "update_owner_withdrawal_address_v1", + "disable old withdrawal keys in owner identity" + ); + + drive_operations.push(IdentityOperation(DisableIdentityKeys { + identity_id: owner_identifier, + keys_ids: key_ids_to_disable, + })); + } + + if let Some((key_id, previously_disabled_old_key)) = old_withdrawal_identity_keys + .iter() + .find(|(_, key)| key.data().as_slice() == new_withdrawal_address) + { + // there might be a situation where we should do nothing as well + if previously_disabled_old_key.is_disabled() { + // We need to re-enable the withdrawal key + tracing::trace!( + identity_id = ?owner_identifier, + withdrawal_key = ?previously_disabled_old_key, + method = "update_owner_withdrawal_address_v0", + "re-enabled withdrawal key to owner identity" + ); + + drive_operations.push(IdentityOperation(ReEnableIdentityKeys { + identity_id: owner_identifier, + keys_ids: vec![*key_id], + })); + } + } else { + let last_key_id = *old_withdrawal_identity_keys + .keys() + .max() + .expect("there must be keys, we already checked"); + + // add the new key + let new_owner_withdrawal_key = Self::get_owner_identity_withdrawal_key( + new_withdrawal_address, + last_key_id + 1, + platform_version, + )?; + + tracing::trace!( + identity_id = ?owner_identifier, + withdrawal_key = ?new_owner_withdrawal_key, + method = "update_owner_withdrawal_address_v1", + "add new withdrawal key to owner identity" + ); + + drive_operations.push(IdentityOperation(AddNewKeysToIdentity { + identity_id: owner_identifier, + unique_keys_to_add: vec![], + non_unique_keys_to_add: vec![new_owner_withdrawal_key], + })); + } + + Ok(()) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs index 214393d4c3..4ecd62a4c9 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs @@ -67,3 +67,135 @@ where } } } + +#[cfg(test)] +mod test { + use super::*; + use crate::config::PlatformConfig; + use crate::test::helpers::setup::TestPlatformBuilder; + use dashcore_rpc::json::MasternodeListDiff; + use std::env; + use std::fs::File; + use std::io::BufReader; + use std::path::PathBuf; + + #[test] + fn test_update_masternode_list() { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig::default(); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let mut init_chain_platform_state = platform_state.as_ref().clone(); + + let genesis_core_block_height = 2128896; + let first_block_core_block_height = 2129440; + let genesis_time = 1; + let first_block_time = 2; + + let genesis_block_info = BlockInfo { + height: 1, + core_height: genesis_core_block_height, + time_ms: genesis_time, + ..Default::default() + }; + + let first_block_info = BlockInfo { + height: 1, + core_height: first_block_core_block_height, + time_ms: first_block_time, + ..Default::default() + }; + + fn adjust_path_based_on_current_dir(relative_path: &str) -> PathBuf { + let current_dir = env::current_dir().expect("expected to get current directory"); + // Check if the current directory ends with "platform" + let adjusted_path = if current_dir.ends_with("platform") { + current_dir + .join("packages/rs-drive-abci") + .join(relative_path) + } else { + current_dir.join(relative_path) + }; + + adjusted_path + } + + platform + .core_rpc + .expect_get_protx_diff_with_masternodes() + .returning(move |base_block, block| { + if block == 2128896 { + let file_path = adjust_path_based_on_current_dir( + "tests/supporting_files/mainnet_protx_list_diffs/1-2128896.json", + ); + // println!( + // "Current directory: {:?}, using {:?}", + // std::env::current_dir(), + // &file_path + // ); + // Deserialize the first JSON file + let file = File::open(file_path).expect("expected to open file"); + let reader = BufReader::new(file); + let init_chain_masternode_list_diff: MasternodeListDiff = + serde_json::from_reader(reader) + .expect("expected to deserialize into a masternode list diff"); + + Ok(init_chain_masternode_list_diff) + } else { + // Deserialize the second JSON file + let file = File::open(adjust_path_based_on_current_dir( + "tests/supporting_files/mainnet_protx_list_diffs/2128896-2129440.json", + )) + .expect("expected to open file"); + let reader = BufReader::new(file); + let block_1_masternode_list_diff: MasternodeListDiff = + serde_json::from_reader(reader) + .expect("expected to deserialize into a masternode list diff"); + + Ok(block_1_masternode_list_diff) + } + }); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .update_masternode_list( + None, + &mut init_chain_platform_state, + genesis_core_block_height, + true, + &genesis_block_info, + &transaction, + platform_version, + ) + .expect("expected to update masternode list"); + + let platform_state = init_chain_platform_state.clone(); + + let mut block_platform_state = platform_state.clone(); + + platform + .update_masternode_list( + Some(&platform_state), + &mut block_platform_state, + first_block_core_block_height, + false, + &first_block_info, + &transaction, + platform_version, + ) + .expect("expected to update masternode list"); + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit"); + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs index bcc65582d7..5ca6ce4070 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_quorum_info/v0/mod.rs @@ -7,7 +7,9 @@ use dashcore_rpc::json::{ExtendedQuorumListResult, QuorumType}; use std::collections::BTreeMap; use std::fmt::Display; -use crate::platform_types::validator_set::v0::{ValidatorSetV0, ValidatorSetV0Getters}; +use crate::platform_types::validator_set::v0::{ + ValidatorSetMethodsV0, ValidatorSetV0, ValidatorSetV0Getters, +}; use crate::platform_types::validator_set::ValidatorSet; use crate::rpc::core::CoreRPCLike; diff --git a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs index 15709631b6..14de0e6df7 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/fee_pool_outwards_distribution/add_epoch_pool_to_proposers_payout_operations/v0/mod.rs @@ -12,6 +12,7 @@ use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; use dpp::version::PlatformVersion; use dpp::ProtocolError; +use drive::query::proposer_block_count_query::ProposerQueryType; use drive::util::batch::DriveOperation; use drive::util::batch::DriveOperation::IdentityOperation; use drive::util::batch::IdentityOperationType::AddToIdentityBalance; @@ -56,9 +57,9 @@ impl Platform { let proposers = self .drive - .get_epoch_proposers( + .fetch_epoch_proposers( &unpaid_epoch_tree, - None, + ProposerQueryType::ByRange(None, None), Some(transaction), platform_version, ) diff --git a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs index c8aae65e35..e343d710c8 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/initialization/create_genesis_state/v0/mod.rs @@ -177,11 +177,11 @@ mod tests { use crate::config::PlatformConfig; use crate::test::helpers::setup::TestPlatformBuilder; use drive::config::DriveConfig; - use platform_version::version::PlatformVersion; + use platform_version::version::{PlatformVersion, INITIAL_PROTOCOL_VERSION}; #[test] pub fn should_create_genesis_state_deterministically() { - let platform_version = PlatformVersion::latest(); + let platform_version = PlatformVersion::first(); let platform = TestPlatformBuilder::new() .with_config(PlatformConfig { drive: DriveConfig { @@ -190,6 +190,7 @@ mod tests { }, ..Default::default() }) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc() .set_genesis_state(); @@ -200,6 +201,7 @@ mod tests { .unwrap() .expect("should obtain root hash"); + // This should never be changed assert_eq!( hex::encode(root_hash), "dc5b0d4be407428adda2315db7d782e64015cbe2d2b7df963f05622390dc3c9f" diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/mod.rs index 33805f3125..be12d1989d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/mod.rs @@ -5,6 +5,7 @@ use dpp::util::deserializer::ProtocolVersion; use dpp::version::PlatformVersion; mod v0; +mod v1; impl Platform { /// Checks for a network upgrade and resets activation window. @@ -12,7 +13,7 @@ impl Platform { /// /// # Arguments /// - /// * `total_hpmns` - The total number of high priority masternodes. + /// * `active_hpmns` - The total number of evonodes that are not banned. /// /// # Returns /// @@ -29,7 +30,7 @@ impl Platform { /// * More than one version pass the threshold to upgrade. pub fn check_for_desired_protocol_upgrade( &self, - total_hpmns: u32, + active_hpmns: u32, platform_version: &PlatformVersion, ) -> Result, Error> { match platform_version @@ -38,10 +39,11 @@ impl Platform { .protocol_upgrade .check_for_desired_protocol_upgrade { - 0 => self.check_for_desired_protocol_upgrade_v0(total_hpmns, platform_version), + 0 => self.check_for_desired_protocol_upgrade_v0(active_hpmns, platform_version), + 1 => self.check_for_desired_protocol_upgrade_v1(active_hpmns, platform_version), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "check_for_desired_protocol_upgrade".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v0/mod.rs index ba60c5a3fe..304b832ca9 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v0/mod.rs @@ -1,6 +1,7 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::Platform; +use dpp::dashcore::Network; use dpp::version::PlatformVersion; use drive::dpp::util::deserializer::ProtocolVersion; @@ -10,17 +11,33 @@ impl Platform { /// this should only be called on epoch change pub(super) fn check_for_desired_protocol_upgrade_v0( &self, - total_hpmns: u32, + active_hpmns: u32, platform_version: &PlatformVersion, ) -> Result, Error> { - let upgrade_percentage_needed = platform_version - .drive_abci - .methods - .protocol_upgrade - .protocol_version_upgrade_percentage_needed; + let upgrade_percentage_needed = if (self.config.network == Network::Dash + && platform_version.protocol_version == 1) + || (self.config.network == Network::Testnet && platform_version.protocol_version == 2) + { + // This is a solution for the emergency update to version 3 + // We clean this up immediately though as we transition to check_for_desired_protocol_upgrade_v1 + u64::min( + 51, + platform_version + .drive_abci + .methods + .protocol_upgrade + .protocol_version_upgrade_percentage_needed, + ) + } else { + platform_version + .drive_abci + .methods + .protocol_upgrade + .protocol_version_upgrade_percentage_needed + }; let required_upgraded_hpmns = 1 - + (total_hpmns as u64) + + (active_hpmns as u64) .checked_mul(upgrade_percentage_needed) .and_then(|product| product.checked_div(100)) .ok_or(Error::Execution(ExecutionError::Overflow( @@ -42,12 +59,13 @@ impl Platform { )); } - tracing::trace!( - total_hpmns, + tracing::debug!( + active_hpmns, required_upgraded_hpmns, all_votes = ?protocol_versions_counter.global_cache, ?versions_passing_threshold, - "Protocol version voting is finished. {} versions passing the threshold: {:?}", + "Protocol version voting is finished. we require {} upgraded, {} versions passing the threshold: {:?}", + required_upgraded_hpmns, versions_passing_threshold.len(), versions_passing_threshold ); diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v1/mod.rs new file mode 100644 index 0000000000..fd66cc62cd --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/check_for_desired_protocol_upgrade/v1/mod.rs @@ -0,0 +1,64 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use dpp::version::PlatformVersion; +use drive::dpp::util::deserializer::ProtocolVersion; + +impl Platform { + /// checks for a network upgrade and resets activation window + /// this should only be called on epoch change + pub(super) fn check_for_desired_protocol_upgrade_v1( + &self, + active_hpmns: u32, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let upgrade_percentage_needed = platform_version + .drive_abci + .methods + .protocol_upgrade + .protocol_version_upgrade_percentage_needed; + + let required_upgraded_hpmns = 1 + + (active_hpmns as u64) + .checked_mul(upgrade_percentage_needed) + .and_then(|product| product.checked_div(100)) + .ok_or(Error::Execution(ExecutionError::Overflow( + "overflow for required block count", + )))?; + + // if we are at an epoch change, check to see if over 75% of blocks of previous epoch + // were on the future version + let protocol_versions_counter = self.drive.cache.protocol_versions_counter.read(); + + let mut versions_passing_threshold = + protocol_versions_counter.versions_passing_threshold(required_upgraded_hpmns); + + if versions_passing_threshold.len() > 1 { + return Err(Error::Execution( + ExecutionError::ProtocolUpgradeIncoherence( + "only at most 1 version should be able to pass the threshold to upgrade", + ), + )); + } + + tracing::debug!( + active_hpmns, + required_upgraded_hpmns, + all_votes = ?protocol_versions_counter.global_cache, + ?versions_passing_threshold, + "Protocol version voting is finished. we require {} upgraded, {} versions passing the threshold: {:?}", + required_upgraded_hpmns, + versions_passing_threshold.len(), + versions_passing_threshold + ); + + if !versions_passing_threshold.is_empty() { + // same as equals 1 + let next_version = versions_passing_threshold.remove(0); + Ok(Some(next_version)) + } else { + Ok(None) + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/mod.rs index b2e1e826d4..588f34d169 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/mod.rs @@ -1,2 +1,3 @@ mod check_for_desired_protocol_upgrade; +mod perform_events_on_first_block_of_protocol_change; mod upgrade_protocol_version; diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/mod.rs new file mode 100644 index 0000000000..56c1e17c6a --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/mod.rs @@ -0,0 +1,72 @@ +mod v0; + +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use dpp::block::block_info::BlockInfo; +use dpp::version::PlatformVersion; +use dpp::version::ProtocolVersion; +use drive::grovedb::Transaction; + +impl Platform { + /// Executes protocol-specific events on the first block after a protocol version change. + /// + /// This function is triggered when there is a protocol version upgrade detected in the network. + /// It checks if the current protocol version has transitioned from an earlier version to version 4, + /// and if so, performs the necessary setup or migration tasks associated with version 4. + /// + /// Currently, the function handles the transition to version 4 by initializing new structures + /// or states required for the new protocol version. + /// + /// # Parameters + /// + /// * `transaction`: A reference to the transaction context in which the changes should be applied. + /// * `previous_protocol_version`: The protocol version prior to the upgrade. + /// * `platform_version`: The current platform version containing the updated protocol version and relevant configuration details. + /// + /// # Returns + /// + /// * `Ok(())`: If all events related to the protocol change were successfully executed. + /// * `Err(Error)`: If there was an issue executing the protocol-specific events. + /// + /// # Versioning + /// + /// This function uses the `platform_version` parameter to determine which version-specific implementation + /// of the protocol change events should be executed: + /// + /// - If the version is `0`, it calls the `perform_events_on_first_block_of_protocol_change_v0` function, + /// which contains the logic for version `0`. + /// - If no version is specified (`None`), the function does nothing and returns `Ok(())`. + /// - If a different version is specified, it returns an error indicating an unknown version mismatch. + /// + pub fn perform_events_on_first_block_of_protocol_change( + &self, + platform_state: &PlatformState, + block_info: &BlockInfo, + transaction: &Transaction, + previous_protocol_version: ProtocolVersion, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive_abci + .methods + .protocol_upgrade + .perform_events_on_first_block_of_protocol_change + { + Some(0) => self.perform_events_on_first_block_of_protocol_change_v0( + platform_state, + block_info, + transaction, + previous_protocol_version, + platform_version, + ), + None => return Ok(()), + Some(version) => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "perform_events_on_first_block_of_protocol_change".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs new file mode 100644 index 0000000000..f5cf202665 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/perform_events_on_first_block_of_protocol_change/v0/mod.rs @@ -0,0 +1,151 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use dpp::block::block_info::BlockInfo; +use dpp::dashcore::hashes::Hash; +use dpp::version::PlatformVersion; +use dpp::version::ProtocolVersion; +use drive::drive::identity::key::fetch::{ + IdentityKeysRequest, KeyIDIdentityPublicKeyPairBTreeMap, KeyRequestType, +}; +use drive::drive::identity::withdrawals::paths::{ + get_withdrawal_root_path, WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY, + WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, +}; +use drive::grovedb::{Element, Transaction}; + +impl Platform { + /// Executes protocol-specific events on the first block after a protocol version change. + /// + /// This function is triggered when there is a protocol version upgrade detected in the network. + /// It checks if the current protocol version has transitioned from an earlier version to version 4, + /// and if so, performs the necessary setup or migration tasks associated with version 4. + /// + /// Currently, the function handles the transition to version 4 by initializing new structures + /// or states required for the new protocol version. + /// + /// # Parameters + /// + /// * `transaction`: A reference to the transaction context in which the changes should be applied. + /// * `previous_protocol_version`: The protocol version prior to the upgrade. + /// * `platform_version`: The current platform version containing the updated protocol version and relevant configuration details. + /// + /// # Returns + /// + /// * `Ok(())`: If all events related to the protocol change were successfully executed. + /// * `Err(Error)`: If there was an issue executing the protocol-specific events. + pub(super) fn perform_events_on_first_block_of_protocol_change_v0( + &self, + platform_state: &PlatformState, + block_info: &BlockInfo, + transaction: &Transaction, + previous_protocol_version: ProtocolVersion, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + if previous_protocol_version < 4 && platform_version.protocol_version >= 4 { + self.transition_to_version_4( + platform_state, + block_info, + transaction, + platform_version, + )?; + } + + Ok(()) + } + + /// Initializes an empty sum tree for withdrawal transactions required for protocol version 4. + /// + /// This function is called during the transition to protocol version 4 to set up + /// an empty sum tree at the specified path if it does not already exist. + /// + /// # Parameters + /// + /// * `transaction`: A reference to the transaction context in which the changes should be applied. + /// * `platform_version`: The current platform version containing the updated protocol version and relevant configuration details. + /// + /// # Returns + /// + /// * `Ok(())`: If the transition to version 4 was successful. + /// * `Err(Error)`: If there was an issue creating or updating the necessary data structures. + fn transition_to_version_4( + &self, + platform_state: &PlatformState, + block_info: &BlockInfo, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + // We are adding the withdrawal transactions sum amount tree + let path = get_withdrawal_root_path(); + self.drive.grove_insert_if_not_exists( + (&path).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + Element::empty_sum_tree(), + Some(transaction), + None, + &platform_version.drive, + )?; + // We are adding a tree to store broadcasted transactions that might expire + self.drive.grove_insert_if_not_exists( + (&path).into(), + &WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY, + Element::empty_tree(), + Some(transaction), + None, + &platform_version.drive, + )?; + // We need to add all masternode owner keys + // This is because owner identities only had a withdrawal key + // But no owner key + for masternode in platform_state.full_masternode_list().values() { + let masternode_id = masternode.pro_tx_hash.to_byte_array(); + let key_request = IdentityKeysRequest { + identity_id: masternode_id, + request_type: KeyRequestType::AllKeys, + limit: None, + offset: None, + }; + + let old_owner_identity_keys = self + .drive + .fetch_identity_keys::( + key_request, + Some(transaction), + platform_version, + )?; + + if old_owner_identity_keys.is_empty() { + continue; + } + + let last_key_id = *old_owner_identity_keys + .keys() + .max() + .expect("there must be keys, we already checked"); + + let new_owner_key = Self::get_owner_identity_owner_key( + masternode.state.owner_address, + last_key_id + 1, + platform_version, + )?; + + tracing::trace!( + identity_id = ?masternode_id, + withdrawal_key = ?new_owner_key, + method = "transition_to_version_4", + "add new owner key to owner identity" + ); + + self.drive.add_new_non_unique_keys_to_identity( + masternode_id, + vec![new_owner_key], + block_info, + true, + Some(transaction), + platform_version, + )?; + } + Ok(()) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/upgrade_protocol_version/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/upgrade_protocol_version/v0/mod.rs index 5edbf3e2f1..79b6ce27cd 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/upgrade_protocol_version/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/protocol_upgrade/upgrade_protocol_version/v0/mod.rs @@ -7,6 +7,7 @@ use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; use chrono::{TimeZone, Utc}; use dpp::block::block_info::BlockInfo; +use dpp::dashcore::Network::Testnet; use dpp::version::PlatformVersion; use drive::grovedb::Transaction; @@ -57,10 +58,16 @@ impl Platform { // Determine a new protocol version for the next epoch if enough proposers voted // otherwise keep the current one - let hpmn_list_len = last_committed_platform_state.hpmn_list_len() as u32; + let hpmn_active_list_len = + if self.config.network == Testnet && epoch_info.current_epoch_index() <= 1430 { + // We had a bug on testnet that would use the entire hpmn list len, including banned nodes + last_committed_platform_state.hpmn_list_len() as u32 + } else { + last_committed_platform_state.hpmn_active_list_len() as u32 + }; let next_epoch_protocol_version = - self.check_for_desired_protocol_upgrade(hpmn_list_len, platform_version)?; + self.check_for_desired_protocol_upgrade(hpmn_active_list_len, platform_version)?; if let Some(protocol_version) = next_epoch_protocol_version { tracing::trace!( diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/mod.rs index 6bb08f7fac..71c8cf00da 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/mod.rs @@ -16,6 +16,7 @@ where /// Checks for ended vote polls pub(in crate::execution) fn check_for_ended_vote_polls( &self, + last_committed_platform_state: &PlatformState, block_platform_state: &PlatformState, block_info: &BlockInfo, transaction: TransactionArg, @@ -28,6 +29,7 @@ where .check_for_ended_vote_polls { 0 => self.check_for_ended_vote_polls_v0( + last_committed_platform_state, block_platform_state, block_info, transaction, diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/v0/mod.rs index ca84b63729..426888de5d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/check_for_ended_vote_polls/v0/mod.rs @@ -1,18 +1,26 @@ use crate::error::Error; use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; use crate::rpc::core::CoreRPCLike; +use dashcore_rpc::dashcore::Network::Testnet; use dpp::block::block_info::BlockInfo; use dpp::document::DocumentV0Getters; use dpp::prelude::TimestampMillis; use dpp::version::PlatformVersion; use dpp::voting::contender_structs::FinalizedContender; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity; use dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo; +use drive::drive::votes::paths::vote_end_date_queries_tree_path_vec; use drive::drive::votes::resolved::vote_polls::resolve::VotePollResolver; use drive::drive::votes::resolved::vote_polls::{ResolvedVotePoll, ResolvedVotePollWithVotes}; -use drive::grovedb::TransactionArg; -use drive::query::VotePollsByEndDateDriveQuery; +use drive::grovedb::{QueryItem, TransactionArg}; +use drive::query::vote_poll_vote_state_query::{ + ContestedDocumentVotePollDriveQuery, ContestedDocumentVotePollDriveQueryResultType, +}; +use drive::query::{PathQuery, Query, QueryResultType, VotePollsByEndDateDriveQuery}; +use drive::util::common::encode::encode_u64; use itertools::Itertools; use std::collections::BTreeMap; @@ -24,156 +32,286 @@ where #[inline(always)] pub(super) fn check_for_ended_vote_polls_v0( &self, + last_committed_platform_state: &PlatformState, block_platform_state: &PlatformState, block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { // let's start by getting the vote polls that have finished - let vote_polls_by_timestamp = - VotePollsByEndDateDriveQuery::execute_no_proof_for_specialized_end_time_query( + let ( + distribute_after_time, + clean_up_testnet_corrupted_reference_issue, + maximum_vote_polls_to_process, + ) = if self.config.network == Testnet + && last_committed_platform_state.current_protocol_version_in_consensus() == 1 + && block_platform_state.current_protocol_version_in_consensus() == 2 + { + // We need to clean up testnet + ( + TimestampMillis::MAX >> 1, + true, + platform_version + .drive_abci + .validation_and_processing + .event_constants + .maximum_vote_polls_to_process, + ) + } else if self.config.network == Testnet + && block_platform_state.last_committed_block_epoch().index == 1434 + && block_info.epoch.index == 1435 + { + // We need to clean up testnet, this time we are going to do this clean up at a specific epoch change version + (TimestampMillis::MAX >> 1, true, 100) + } else { + ( block_info.time_ms, + false, platform_version .drive_abci .validation_and_processing .event_constants .maximum_vote_polls_to_process, + ) + }; + let vote_polls_by_timestamp = + VotePollsByEndDateDriveQuery::execute_no_proof_for_specialized_end_time_query( + distribute_after_time, + maximum_vote_polls_to_process, &self.drive, transaction, &mut vec![], platform_version, )?; - let vote_polls_with_info = vote_polls_by_timestamp.into_iter().map(|(end_date, vote_polls)| { - let vote_polls_with_votes = vote_polls.into_iter().map(|vote_poll| { - let resolved_vote_poll = - vote_poll.resolve(&self.drive, transaction, platform_version)?; - match resolved_vote_poll { - ResolvedVotePoll::ContestedDocumentResourceVotePollWithContractInfo( - resolved_contested_document_resource_vote_poll, - ) => { - let document_type = - resolved_contested_document_resource_vote_poll.document_type()?; - // let's see who actually won - let result = self.tally_votes_for_contested_document_resource_vote_poll( - (&resolved_contested_document_resource_vote_poll).into(), - transaction, - platform_version, - )?; - let contenders = result.contenders; - // For each contender if there vote_tally is 1 or more we need to get their votes - // We don't do this for contenders with 0 votes, as there is no point. - - let sorted_contenders: Vec<_> = contenders - .into_iter() - .sorted_by(|a, b| Ord::cmp(&b.final_vote_tally, &a.final_vote_tally)) - .collect(); - - let (contenders_with_votes, contenders_with_no_votes) : (Vec<_>, Vec<_>) = sorted_contenders.iter().partition(|a| a.final_vote_tally > 0); - - let fetch_contenders = contenders_with_votes - .iter() - .map(|contender| contender.identity_id) - .collect::>(); - let mut other_contenders = if contenders_with_no_votes.is_empty() - { - BTreeMap::new() - } else { - // Other contenders are only those with no votes - contenders_with_no_votes.into_iter().map(|contender| (TowardsIdentity(contender.identity_id), vec![])).collect() - }; - - // We need to get the votes of the sorted contenders - let mut identifiers_voting_for_contenders = - self.drive.fetch_identities_voting_for_contenders( - &resolved_contested_document_resource_vote_poll, - fetch_contenders, - true, + // Check if awarding is disabled + let vote_polls_with_info = if clean_up_testnet_corrupted_reference_issue { + // We need to remove all empty trees before the current time + // This is because before this fix on testnet empty trees were left in the query by end date tree + let path = vote_end_date_queries_tree_path_vec(); + let query = + Query::new_single_query_item(QueryItem::RangeTo(..encode_u64(block_info.time_ms))); + let path_query = PathQuery::new_unsized(path.clone(), query); + + let keys = self + .drive + .grove_get_raw_path_query( + &path_query, + transaction, + QueryResultType::QueryKeyElementPairResultType, + &mut vec![], + &platform_version.drive, + )? + .0 + .to_keys(); + + for key in keys { + self.drive.grove_delete( + path.as_slice().into(), + key.as_slice(), + transaction, + &mut vec![], + &platform_version.drive, + )?; + } + + // Skip processing, just collect resolved vote polls for cleanup + vote_polls_by_timestamp.into_iter().map(|(end_date, vote_polls)| { + let vote_polls_with_votes = vote_polls.into_iter().map(|vote_poll| { + let resolved_vote_poll = vote_poll.resolve( + &self.drive, + transaction, + platform_version, + )?; + match resolved_vote_poll { + ResolvedVotePoll::ContestedDocumentResourceVotePollWithContractInfo( + resolved_contested_document_resource_vote_poll, + ) => { + let query = ContestedDocumentVotePollDriveQuery { + vote_poll: (&resolved_contested_document_resource_vote_poll).into(), + result_type: ContestedDocumentVotePollDriveQueryResultType::VoteTally, + offset: None, + limit: None, // There should be no limit here + start_at: None, + allow_include_locked_and_abstaining_vote_tally: true, + }; + + let query_result = + query.execute_no_proof(&self.drive, transaction, &mut vec![], platform_version)?; + + let contenders_with_no_votes : Vec<_> = query_result.contenders.iter().filter(|a| a.vote_tally().is_none() || a.vote_tally().unwrap() == 0 ).collect(); + + let mut other_contenders = if contenders_with_no_votes.is_empty() + { + BTreeMap::new() + } else { + // Other contenders are only those with no votes + contenders_with_no_votes.into_iter().map(|contender| (TowardsIdentity(contender.identity_id()), vec![])).collect() + }; + + if query_result.locked_vote_tally == Some(0) { + other_contenders.insert(ResourceVoteChoice::Lock, vec![]); + } + + if query_result.abstaining_vote_tally == Some(0) { + other_contenders.insert(ResourceVoteChoice::Abstain, vec![]); + } + + // We need to get the votes of the sorted contenders + let mut identifiers_voting_for_contenders = + self.drive.fetch_identities_voting_for_contenders( + &resolved_contested_document_resource_vote_poll, + query_result.contenders.into_iter().map(|contender| contender.identity_id()).collect(), + true, + transaction, + platform_version, + )?; + + identifiers_voting_for_contenders.append(&mut other_contenders); + + // We don't need votes, so we pass an empty BTreeMap + Ok(ResolvedVotePollWithVotes::ContestedDocumentResourceVotePollWithContractInfoAndVotes( + resolved_contested_document_resource_vote_poll, + identifiers_voting_for_contenders, + )) + } + } + }).collect::, Error>>()?; + Ok((end_date, vote_polls_with_votes)) + }).collect::>, Error>>() + } else { + vote_polls_by_timestamp.into_iter().map(|(end_date, vote_polls)| { + let vote_polls_with_votes = vote_polls.into_iter().map(|vote_poll| { + let resolved_vote_poll = + vote_poll.resolve(&self.drive, transaction, platform_version)?; + match resolved_vote_poll { + ResolvedVotePoll::ContestedDocumentResourceVotePollWithContractInfo( + resolved_contested_document_resource_vote_poll, + ) => { + let document_type = + resolved_contested_document_resource_vote_poll.document_type()?; + // let's see who actually won + let result = self.tally_votes_for_contested_document_resource_vote_poll( + (&resolved_contested_document_resource_vote_poll).into(), transaction, platform_version, )?; + let contenders = result.contenders; + // For each contender if there vote_tally is 1 or more we need to get their votes + // We don't do this for contenders with 0 votes, as there is no point. - identifiers_voting_for_contenders.append(&mut other_contenders); - - let highest_vote_tally = sorted_contenders - .first() - .map(|max_voted_contender| max_voted_contender.final_vote_tally) - .unwrap_or_default(); - // These are all the people who got top votes - let top_contenders: Vec = sorted_contenders - .into_iter() - .filter(|c| c.final_vote_tally == highest_vote_tally) - .take(100) // Limit to the first 100 before the expensive operation - .map(|contender| { - FinalizedContender::try_from_contender_with_serialized_document( - contender, - document_type, - platform_version, - ) - .map_err(Error::Protocol) - }) - .collect::, Error>>()?; - // Now we sort by the document creation date - let maybe_top_contender = top_contenders.into_iter().max_by(|a, b| { - a.document - .created_at() - .cmp(&b.document.created_at()) - .then_with(|| { - a.document - .created_at_block_height() - .cmp(&b.document.created_at_block_height()) - }) - .then_with(|| { - a.document - .created_at_core_block_height() - .cmp(&b.document.created_at_core_block_height()) - }) - .then_with(|| a.document.id().cmp(&b.document.id())) - }); - // We award the document to the top contender - let winner_info = if let Some(top_contender) = maybe_top_contender { - // let's check to make sure the lock votes didn't win it - // if the lock is tied with the top contender the top contender gets it - if result.locked_vote_tally > top_contender.final_vote_tally { - // the record will show it's locked - ContestedDocumentVotePollWinnerInfo::Locked + let sorted_contenders: Vec<_> = contenders + .into_iter() + .sorted_by(|a, b| Ord::cmp(&b.final_vote_tally, &a.final_vote_tally)) + .collect(); + + let (contenders_with_votes, contenders_with_no_votes): (Vec<_>, Vec<_>) = sorted_contenders.iter().partition(|a| a.final_vote_tally > 0); + + let fetch_contenders = contenders_with_votes + .iter() + .map(|contender| contender.identity_id) + .collect::>(); + let mut other_contenders = if contenders_with_no_votes.is_empty() + { + BTreeMap::new() } else { - let contender_id = top_contender.identity_id; - // We award the document to the winner of the vote poll - self.award_document_to_winner( - block_info, - top_contender, + // Other contenders are only those with no votes + contenders_with_no_votes.into_iter().map(|contender| (TowardsIdentity(contender.identity_id), vec![])).collect() + }; + + // We need to get the votes of the sorted contenders + let mut identifiers_voting_for_contenders = + self.drive.fetch_identities_voting_for_contenders( &resolved_contested_document_resource_vote_poll, + fetch_contenders, + true, transaction, platform_version, )?; - ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_id) - } - } else { - ContestedDocumentVotePollWinnerInfo::NoWinner - }; - // We want to keep a record of how everyone voted - self.keep_record_of_finished_contested_resource_vote_poll( - block_platform_state, - block_info, - &resolved_contested_document_resource_vote_poll, - &identifiers_voting_for_contenders, - winner_info, - transaction, - platform_version, - )?; - Ok(ResolvedVotePollWithVotes::ContestedDocumentResourceVotePollWithContractInfoAndVotes(resolved_contested_document_resource_vote_poll, identifiers_voting_for_contenders)) + + identifiers_voting_for_contenders.append(&mut other_contenders); + + let highest_vote_tally = sorted_contenders + .first() + .map(|max_voted_contender| max_voted_contender.final_vote_tally) + .unwrap_or_default(); + // These are all the people who got top votes + let top_contenders: Vec = sorted_contenders + .into_iter() + .filter(|c| c.final_vote_tally == highest_vote_tally) + .take(100) // Limit to the first 100 before the expensive operation + .map(|contender| { + FinalizedContender::try_from_contender_with_serialized_document( + contender, + document_type, + platform_version, + ) + .map_err(Error::Protocol) + }) + .collect::, Error>>()?; + // Now we sort by the document creation date + let maybe_top_contender = top_contenders.into_iter().max_by(|a, b| { + a.document + .created_at() + .cmp(&b.document.created_at()) + .then_with(|| { + a.document + .created_at_block_height() + .cmp(&b.document.created_at_block_height()) + }) + .then_with(|| { + a.document + .created_at_core_block_height() + .cmp(&b.document.created_at_core_block_height()) + }) + .then_with(|| a.document.id().cmp(&b.document.id())) + }); + // We award the document to the top contender + let winner_info = if let Some(top_contender) = maybe_top_contender { + // let's check to make sure the lock votes didn't win it + // if the lock is tied with the top contender the top contender gets it + if result.locked_vote_tally > top_contender.final_vote_tally { + // the record will show it's locked + ContestedDocumentVotePollWinnerInfo::Locked + } else { + let contender_id = top_contender.identity_id; + // We award the document to the winner of the vote poll + self.award_document_to_winner( + block_info, + top_contender, + &resolved_contested_document_resource_vote_poll, + transaction, + platform_version, + )?; + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_id) + } + } else { + ContestedDocumentVotePollWinnerInfo::NoWinner + }; + // We want to keep a record of how everyone voted + self.keep_record_of_finished_contested_resource_vote_poll( + block_platform_state, + block_info, + &resolved_contested_document_resource_vote_poll, + &identifiers_voting_for_contenders, + winner_info, + transaction, + platform_version, + )?; + Ok(ResolvedVotePollWithVotes::ContestedDocumentResourceVotePollWithContractInfoAndVotes(resolved_contested_document_resource_vote_poll, identifiers_voting_for_contenders)) + } } - } - }).collect::, Error>>()?; - Ok((end_date, vote_polls_with_votes)) - }).collect::>, Error>>()?; + }).collect::, Error>>()?; + Ok((end_date, vote_polls_with_votes)) + }).collect::>, Error>>() + }?; // We need to clean up the vote polls // This means removing it and also removing all current votes if !vote_polls_with_info.is_empty() { self.clean_up_after_vote_polls_end( &vote_polls_with_info, + clean_up_testnet_corrupted_reference_issue, transaction, platform_version, )?; diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/mod.rs index 05a48ad45c..1c13190a5a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/mod.rs @@ -24,6 +24,7 @@ where &TimestampMillis, &BTreeMap>, )>, + clean_up_testnet_corrupted_reference_issue: bool, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -35,6 +36,7 @@ where { 0 => self.clean_up_after_contested_resources_vote_polls_end_v0( vote_polls, + clean_up_testnet_corrupted_reference_issue, transaction, platform_version, ), diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/v0/mod.rs index f648ad27f8..f444ed1e61 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_contested_resources_vote_polls_end/v0/mod.rs @@ -24,6 +24,7 @@ where &TimestampMillis, &BTreeMap>, )>, + clean_up_testnet_corrupted_reference_issue: bool, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -52,6 +53,7 @@ where self.drive .remove_contested_resource_vote_poll_documents_operations( vote_polls.as_slice(), + clean_up_testnet_corrupted_reference_issue, &mut operations, transaction, platform_version, @@ -109,6 +111,23 @@ where )?; } + if clean_up_testnet_corrupted_reference_issue { + self.drive.remove_contested_resource_info_operations( + vote_polls.as_slice(), + &mut operations, + transaction, + platform_version, + )?; + // We remove the last index + self.drive + .remove_contested_resource_top_level_index_operations( + vote_polls.as_slice(), + &mut operations, + transaction, + platform_version, + )?; + } + if !operations.is_empty() { self.drive.apply_batch_low_level_drive_operations( None, diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/mod.rs index d5089264b8..2852effd32 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/mod.rs @@ -18,6 +18,7 @@ where pub(in crate::execution) fn clean_up_after_vote_polls_end( &self, vote_polls: &BTreeMap>, + clean_up_testnet_corrupted_reference_issue: bool, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -27,7 +28,12 @@ where .voting .clean_up_after_vote_poll_end { - 0 => self.clean_up_after_vote_polls_end_v0(vote_polls, transaction, platform_version), + 0 => self.clean_up_after_vote_polls_end_v0( + vote_polls, + clean_up_testnet_corrupted_reference_issue, + transaction, + platform_version, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "clean_up_after_vote_polls_end".to_string(), known_versions: vec![0], diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/v0/mod.rs index 20f39351ef..a5b0d75a3b 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/clean_up_after_vote_polls_end/v0/mod.rs @@ -19,6 +19,7 @@ where pub(super) fn clean_up_after_vote_polls_end_v0( &self, vote_polls: &BTreeMap>, + clean_up_testnet_corrupted_reference_issue: bool, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -44,6 +45,7 @@ where // Call the function to clean up contested document resource vote polls self.clean_up_after_contested_resources_vote_polls_end( contested_polls, + clean_up_testnet_corrupted_reference_issue, transaction, platform_version, ) diff --git a/packages/rs-drive-abci/src/execution/platform_events/voting/run_dao_platform_events/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/voting/run_dao_platform_events/v0/mod.rs index 817067f58c..2ea9357af1 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/voting/run_dao_platform_events/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/voting/run_dao_platform_events/v0/mod.rs @@ -30,6 +30,7 @@ where // Check for any vote polls that might have ended self.check_for_ended_vote_polls( + last_committed_platform_state, block_platform_state, block_info, transaction, diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/mod.rs index de42c73bda..3601bd9640 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/mod.rs @@ -1,10 +1,11 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::Platform; -use crate::platform_types::withdrawal::unsigned_withdrawal_txs::v0::UnsignedWithdrawalTxs; use crate::rpc::core::CoreRPCLike; -use dpp::dashcore::bls_sig_utils::BLSSignature; +use dpp::dashcore::Transaction; use dpp::version::PlatformVersion; +use std::collections::BTreeMap; +use tenderdash_abci::proto::types::VoteExtension; mod v0; @@ -15,8 +16,7 @@ where /// Appends signatures to unsigned withdrawal transactions and broadcast them to Core pub(in crate::execution) fn append_signatures_and_broadcast_withdrawal_transactions( &self, - unsigned_withdrawal_transactions: UnsignedWithdrawalTxs, - signatures: Vec, + withdrawal_transactions_with_vote_extensions: BTreeMap<&Transaction, &VoteExtension>, platform_version: &PlatformVersion, ) -> Result<(), Error> { match platform_version @@ -26,8 +26,7 @@ where .append_signatures_and_broadcast_withdrawal_transactions { 0 => self.append_signatures_and_broadcast_withdrawal_transactions_v0( - unsigned_withdrawal_transactions, - signatures, + withdrawal_transactions_with_vote_extensions, ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "append_signatures_and_broadcast_withdrawal_transactions".to_string(), diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/v0/mod.rs index 22a3c4d555..1f6cacbc2b 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/append_signatures_and_broadcast_withdrawal_transactions/v0/mod.rs @@ -1,7 +1,6 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::Platform; -use crate::platform_types::withdrawal::unsigned_withdrawal_txs::v0::UnsignedWithdrawalTxs; use crate::rpc::core::{ CoreRPCLike, CORE_RPC_ERROR_ASSET_UNLOCK_EXPIRED, CORE_RPC_ERROR_ASSET_UNLOCK_NO_ACTIVE_QUORUM, CORE_RPC_TX_ALREADY_IN_CHAIN, @@ -10,12 +9,14 @@ use dashcore_rpc::jsonrpc; use dashcore_rpc::Error as CoreRPCError; use dpp::dashcore::bls_sig_utils::BLSSignature; use dpp::dashcore::transaction::special_transaction::TransactionPayload::AssetUnlockPayloadType; -use dpp::dashcore::{consensus, Txid}; +use dpp::dashcore::{consensus, Transaction, Txid}; +use std::collections::BTreeMap; use std::fs::{self, File}; use std::io::Write; use std::path::Path; use std::time::{SystemTime, UNIX_EPOCH}; +use tenderdash_abci::proto::types::VoteExtension; impl Platform where @@ -23,79 +24,98 @@ where { pub(super) fn append_signatures_and_broadcast_withdrawal_transactions_v0( &self, - unsigned_withdrawal_transactions: UnsignedWithdrawalTxs, - signatures: Vec, + withdrawal_transactions_with_vote_extensions: BTreeMap<&Transaction, &VoteExtension>, ) -> Result<(), Error> { - if unsigned_withdrawal_transactions.is_empty() { + if withdrawal_transactions_with_vote_extensions.is_empty() { return Ok(()); } - if unsigned_withdrawal_transactions.len() != signatures.len() { - return Err(Error::Execution(ExecutionError::CorruptedCodeExecution( - "number of signatures must match number of withdrawal transactions", - ))); - } - tracing::debug!( - "Broadcasting {} withdrawal transactions", - unsigned_withdrawal_transactions.len(), + "Broadcasting {} asset unlock transactions", + withdrawal_transactions_with_vote_extensions.len(), ); let mut transaction_submission_failures = vec![]; - for (mut transaction, signature) in - unsigned_withdrawal_transactions.into_iter().zip(signatures) - { + for (transaction_ref, vote_extension) in withdrawal_transactions_with_vote_extensions { + // Clone the transaction to get an owned, mutable transaction + let mut transaction = transaction_ref.clone(); + + // Extract the signature from the vote extension + let signature_bytes: [u8; 96] = vote_extension + .signature + .as_slice() + .try_into() + .map_err(|_| { + Error::Execution(ExecutionError::CorruptedCodeExecution( + "invalid votes extension signature size", + )) + })?; + + let signature = BLSSignature::from(signature_bytes); + + // Modify the transaction's payload let Some(AssetUnlockPayloadType(mut payload)) = transaction.special_transaction_payload else { - return Err(Error::Execution(ExecutionError::CorruptedCodeExecution( - "withdrawal transaction payload must be AssetUnlockPayloadType", + return Err(Error::Execution(ExecutionError::CorruptedCachedState( + "withdrawal transaction payload must be AssetUnlockPayloadType".to_string(), ))); }; + // Assign the quorum signature payload.quorum_sig = signature; - let index = payload.base.index; + let tx_index = payload.base.index; + // Assign the modified payload back to the transaction transaction.special_transaction_payload = Some(AssetUnlockPayloadType(payload)); + // Serialize the transaction let tx_bytes = consensus::serialize(&transaction); - // TODO: We need to broadcast all or none of the transactions (in case of error) - // will be fixed in upcoming PR + // Send the transaction match self.core_rpc.send_raw_transaction(&tx_bytes) { Ok(_) => { tracing::debug!( tx_id = transaction.txid().to_hex(), - index, - "Successfully broadcasted withdrawal transaction with index {}", - index + tx_index, + "Successfully broadcasted asset unlock transaction with index {tx_index}", ); } - // Ignore errors that can happen during blockchain synchronization. - // They will be logged with dashcore_rpc + // Handle specific errors + Err(CoreRPCError::JsonRpc(jsonrpc::error::Error::Rpc(e))) + if e.code == CORE_RPC_TX_ALREADY_IN_CHAIN => + { + // Transaction already in chain; no action needed + } Err(CoreRPCError::JsonRpc(jsonrpc::error::Error::Rpc(e))) - if e.code == CORE_RPC_TX_ALREADY_IN_CHAIN - || e.message == CORE_RPC_ERROR_ASSET_UNLOCK_NO_ACTIVE_QUORUM + if e.message == CORE_RPC_ERROR_ASSET_UNLOCK_NO_ACTIVE_QUORUM || e.message == CORE_RPC_ERROR_ASSET_UNLOCK_EXPIRED => { - // These will never work again + tracing::debug!( + tx_id = transaction.txid().to_string(), + tx_index, + error = ?e, + "Asset unlock transaction with index {tx_index} is expired or has no active quorum: {}", + e.message + ); + transaction_submission_failures.push((transaction.txid(), tx_bytes)); } - // Errors that can happen if we created invalid tx or Core isn't responding + // Handle other errors Err(e) => { tracing::warn!( tx_id = transaction.txid().to_string(), - index, - "Failed to broadcast asset unlock transaction {}: {}", - index, + tx_index, + "Failed to broadcast asset unlock transaction with index {tx_index}: {}", e ); - // These errors might allow the state transition to be broadcast in the future + // Collect failed transactions for potential future retries transaction_submission_failures.push((transaction.txid(), tx_bytes)); } } } + // Store transaction submission failures if let Some(ref rejections_path) = self.config.rejections_path { store_transaction_failures(transaction_submission_failures, rejections_path) .map_err(|e| Error::Execution(e.into()))?; diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/mod.rs index e4cd110298..fb6717b7b8 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/mod.rs @@ -2,13 +2,11 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; use dpp::document::Document; -use dpp::identifier::Identifier; +use dpp::fee::Credits; use dpp::version::PlatformVersion; -use drive::drive::identity::withdrawals::{ - WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes, -}; -use std::collections::HashMap; +use dpp::withdrawal::{WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes}; mod v0; @@ -16,35 +14,41 @@ impl Platform where C: CoreRPCLike, { - /// Builds a list of Core transactions from withdrawal documents. This function is a version handler that - /// directs to specific version implementations of the `build_withdrawal_transactions_from_documents` function. + /// Builds a list of withdrawal transactions from the provided withdrawal documents. + /// Each withdrawal document is converted into a Core transaction, starting from the specified index. + /// The function encodes the transaction and updates the document with the transaction index, status, + /// updated time, and revision. /// /// # Arguments /// - /// * `documents` - A slice of `Document`. - /// * `drive_operation_types` - A mutable reference to `Vec`. - /// * `transaction` - A `TransactionArg` reference. - /// * `platform_version` - A `PlatformVersion` reference that dictates which version of - /// the method to call. + /// * `documents` - A mutable reference to a vector of `Document` representing the withdrawal requests. + /// * `start_index` - The starting index for the transaction, of type `WithdrawalTransactionIndex`. + /// * `block_info` - A reference to the `BlockInfo`, which provides the current block's timestamp. + /// * `platform_version` - A reference to the `PlatformVersion` that specifies the version of the platform being used. /// /// # Returns /// - /// * `Result, Error>` - Returns a HashMap containing withdrawal transactions if found, otherwise returns an `Error`. + /// * `Result, Error>` - On success, returns a vector of tuples containing the + /// transaction index and the encoded transaction bytes. On failure, returns an `Error`. pub(in crate::execution::platform_events::withdrawals) fn build_untied_withdrawal_transactions_from_documents( &self, - documents: &[Document], + documents: &mut Vec, start_index: WithdrawalTransactionIndex, + block_info: &BlockInfo, platform_version: &PlatformVersion, - ) -> Result, Error> { + ) -> Result<(Vec, Credits), Error> { match platform_version .drive_abci .methods .withdrawals .build_untied_withdrawal_transactions_from_documents { - 0 => { - self.build_untied_withdrawal_transactions_from_documents_v0(documents, start_index) - } + 0 => self.build_untied_withdrawal_transactions_from_documents_v0( + documents, + start_index, + block_info, + platform_version, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "build_untied_withdrawal_transactions_from_documents".to_string(), known_versions: vec![0], diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v0/mod.rs index ea63771c63..13da6e72f1 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v0/mod.rs @@ -1,28 +1,19 @@ -use std::collections::HashMap; - -use dashcore_rpc::dashcore::{ - blockdata::transaction::special_transaction::asset_unlock::{ - qualified_asset_unlock::ASSET_UNLOCK_TX_SIZE, - unqualified_asset_unlock::{AssetUnlockBasePayload, AssetUnlockBaseTransactionInfo}, - }, - consensus::Encodable, - ScriptBuf, TxOut, -}; -use dpp::document::{Document, DocumentV0Getters}; +use dashcore_rpc::dashcore::consensus::Encodable; +use dpp::block::block_info::BlockInfo; +use dpp::data_contracts::withdrawals_contract; +use dpp::data_contracts::withdrawals_contract::v1::document_types::withdrawal; +use dpp::document::document_methods::DocumentMethodsV0; +use dpp::document::{Document, DocumentV0Getters, DocumentV0Setters}; +use dpp::fee::Credits; use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; -use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; - -use drive::dpp::identifier::Identifier; -use drive::dpp::identity::convert_credits_to_duffs; -use drive::drive::identity::withdrawals::{ - WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes, -}; +use dpp::withdrawal::{WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes}; use crate::{ error::{execution::ExecutionError, Error}, platform_types::platform::Platform, rpc::core::CoreRPCLike, }; +use dpp::version::PlatformVersion; impl Platform where @@ -31,101 +22,91 @@ where /// Build list of Core transactions from withdrawal documents pub(super) fn build_untied_withdrawal_transactions_from_documents_v0( &self, - documents: &[Document], + documents: &mut Vec, start_index: WithdrawalTransactionIndex, - ) -> Result, Error> { - let mut withdrawals: HashMap = - HashMap::new(); - - for (i, document) in documents.iter().enumerate() { - let output_script_bytes = document - .properties() - .get_bytes(withdrawal::properties::OUTPUT_SCRIPT) - .map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Can't get outputScript from withdrawal document", - )) - })?; - - let amount = document - .properties() - .get_integer(withdrawal::properties::AMOUNT) - .map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Can't get amount from withdrawal document", + block_info: &BlockInfo, + platform_version: &PlatformVersion, + ) -> Result<(Vec, Credits), Error> { + documents.iter_mut().enumerate().try_fold( + (Vec::new(), 0u64), // Start with an empty vector for transactions and 0 for total amount. + |(mut transactions, mut total_amount), (i, document)| { + // Calculate the transaction index. + let transaction_index = start_index + i as WithdrawalTransactionIndex; + + // Convert the document into the withdrawal transaction information. + let withdrawal_transaction = document.try_into_asset_unlock_base_transaction_info( + transaction_index, + platform_version, + )?; + + // Create a buffer to hold the encoded transaction. + let mut transaction_buffer: Vec = vec![]; + + // Get the withdrawal amount from the document properties. + let amount: u64 = document + .properties() + .get_integer(withdrawal::properties::AMOUNT)?; + + // Add the amount to the total, checking for overflow. + total_amount = total_amount.checked_add(amount).ok_or_else(|| { + Error::Execution(ExecutionError::Overflow( + "Overflow while calculating total amount", )) })?; - let core_fee_per_byte: u32 = document - .properties() - .get_integer(withdrawal::properties::CORE_FEE_PER_BYTE) - .map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Can't get coreFeePerByte from withdrawal document", + // Consensus encode the withdrawal transaction into the buffer. + withdrawal_transaction + .consensus_encode(&mut transaction_buffer) + .map_err(|_| { + Error::Execution(ExecutionError::CorruptedCodeExecution( + "Can't consensus encode a withdrawal transaction", + )) + })?; + + // Update the document properties. + document.set_u64(withdrawal::properties::TRANSACTION_INDEX, transaction_index); + document.set_u8( + withdrawal::properties::STATUS, + withdrawals_contract::WithdrawalStatus::POOLED as u8, + ); + document.set_updated_at(Some(block_info.time_ms)); + + // Increment the document revision, handle error if it fails. + document.increment_revision().map_err(|_| { + Error::Execution(ExecutionError::Overflow( + "Overflow when adding to document revision for withdrawals", )) })?; - let output_script = ScriptBuf::from_bytes(output_script_bytes); - - let tx_out = TxOut { - value: convert_credits_to_duffs(amount)?, - script_pubkey: output_script, - }; - - let transaction_index = start_index + i as WithdrawalTransactionIndex; - - let withdrawal_transaction = AssetUnlockBaseTransactionInfo { - version: 1, - lock_time: 0, - output: vec![tx_out], - base_payload: AssetUnlockBasePayload { - version: 1, - index: transaction_index, - fee: ASSET_UNLOCK_TX_SIZE as u32 * core_fee_per_byte, - }, - }; - - let mut transaction_buffer: Vec = vec![]; - - withdrawal_transaction - .consensus_encode(&mut transaction_buffer) - .map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Can't consensus encode a withdrawal transaction", - )) - })?; - - withdrawals.insert(document.id(), (transaction_index, transaction_buffer)); - } + // Add the transaction index and encoded transaction to the result. + transactions.push((transaction_index, transaction_buffer)); - Ok(withdrawals) + // Return the updated accumulator. + Ok((transactions, total_amount)) + }, + ) } } #[cfg(test)] mod tests { - - use dpp::withdrawal::Pooling; - use dpp::{ - data_contracts::withdrawals_contract, tests::fixtures::get_withdrawal_document_fixture, - }; + use dpp::tests::fixtures::get_withdrawal_document_fixture; use drive::util::test_helpers::setup::setup_document; mod build_withdrawal_transactions_from_documents { + use super::*; + use crate::test::helpers::setup::TestPlatformBuilder; + use dpp::block::block_info::BlockInfo; use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contracts::withdrawals_contract::v1::document_types::withdrawal; use dpp::identity::core_script::CoreScript; use dpp::platform_value::platform_value; use dpp::prelude::Identifier; + use dpp::system_data_contracts::withdrawals_contract::WithdrawalStatus; use dpp::system_data_contracts::{load_system_data_contract, SystemDataContract}; use dpp::version::PlatformVersion; - use drive::drive::identity::withdrawals::WithdrawalTransactionIndexAndBytes; + use dpp::withdrawal::Pooling; use drive::util::test_helpers::setup::setup_system_data_contract; - use itertools::Itertools; - - use crate::test::helpers::setup::TestPlatformBuilder; - - use super::*; #[test] fn test_build() { @@ -152,7 +133,7 @@ mod tests { "coreFeePerByte": 1u32, "pooling": Pooling::Never as u8, "outputScript": CoreScript::from_bytes((0..23).collect::>()), - "status": withdrawals_contract::WithdrawalStatus::POOLED as u8, + "status": WithdrawalStatus::POOLED as u8, "transactionIndex": 1u64, }), None, @@ -180,7 +161,7 @@ mod tests { "coreFeePerByte": 1u32, "pooling": Pooling::Never as u8, "outputScript": CoreScript::from_bytes((0..23).collect::>()), - "status": withdrawals_contract::WithdrawalStatus::POOLED as u8, + "status": WithdrawalStatus::POOLED as u8, "transactionIndex": 2u64, }), None, @@ -196,18 +177,21 @@ mod tests { Some(&transaction), ); - let documents = vec![document_1, document_2]; + let mut documents = vec![document_1, document_2]; - let transactions = platform - .build_untied_withdrawal_transactions_from_documents_v0(&documents, 50) + let block_info = BlockInfo::default_with_time(50); + + let (transactions, credits) = platform + .build_untied_withdrawal_transactions_from_documents_v0( + &mut documents, + 50, + &block_info, + platform_version, + ) .expect("to build transactions from documents"); assert_eq!( - transactions - .values() - .cloned() - .sorted() - .collect::>(), + transactions, vec![ ( 50, @@ -226,10 +210,9 @@ mod tests { ], ), ] - .into_iter() - .sorted() - .collect::>(), ); + + assert_eq!(credits, 2000); } } } diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/mod.rs new file mode 100644 index 0000000000..837ffd1bf9 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/mod.rs @@ -0,0 +1,58 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; + +use dpp::version::PlatformVersion; +use drive::grovedb::Transaction; + +mod v0; + +impl Platform +where + C: CoreRPCLike, +{ + /// Cleans up expired locks of withdrawal amounts based on the protocol version. + /// + /// This function determines the appropriate versioned function to call for cleaning up expired + /// withdrawal locks according to the provided platform version. It deletes expired withdrawal locks + /// that have surpassed their allowed time limit, ensuring that only valid withdrawal entries remain. + /// + /// # Parameters + /// * `block_info`: Information about the current block, including the timestamp used to identify expired locks. + /// * `transaction`: The transaction under which this operation should be performed. + /// * `platform_version`: The version of the platform to ensure compatibility with the appropriate cleanup method. + /// + /// # Returns + /// * `Ok(())`: If the cleanup was performed successfully. + /// * `Err(Error::Execution(ExecutionError::UnknownVersionMismatch))`: If the platform version does not match known versions. + /// + /// # Errors + /// Returns an error if the platform version is unknown or if the cleanup process encounters an issue. + pub fn clean_up_expired_locks_of_withdrawal_amounts( + &self, + block_info: &BlockInfo, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive_abci + .methods + .withdrawals + .cleanup_expired_locks_of_withdrawal_amounts + { + 0 => self.cleanup_expired_locks_of_withdrawal_amounts_v0( + block_info, + transaction, + platform_version, + ), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "cleanup_expired_locks_of_withdrawal_amounts".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/v0/mod.rs new file mode 100644 index 0000000000..74315a1d6c --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/cleanup_expired_locks_of_withdrawal_amounts/v0/mod.rs @@ -0,0 +1,69 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; + +use dpp::version::PlatformVersion; +use drive::drive::identity::withdrawals::paths::get_withdrawal_transactions_sum_tree_path_vec; +use drive::grovedb::{PathQuery, QueryItem, Transaction}; +use drive::util::grove_operations::BatchDeleteApplyType; + +impl Platform +where + C: CoreRPCLike, +{ + pub(super) fn cleanup_expired_locks_of_withdrawal_amounts_v0( + &self, + block_info: &BlockInfo, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + if platform_version + .drive_abci + .withdrawal_constants + .cleanup_expired_locks_of_withdrawal_amounts_limit + == 0 + { + // No clean up + return Ok(()); + } + let mut batch_operations = vec![]; + + let sum_path = get_withdrawal_transactions_sum_tree_path_vec(); + + let mut path_query = PathQuery::new_single_query_item( + sum_path, + QueryItem::RangeTo(..block_info.time_ms.to_be_bytes().to_vec()), + ); + + path_query.query.limit = Some( + platform_version + .drive_abci + .withdrawal_constants + .cleanup_expired_locks_of_withdrawal_amounts_limit, + ); + + self.drive.batch_delete_items_in_path_query( + &path_query, + true, + // we know that we are not deleting a subtree + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + Some(transaction), + &mut batch_operations, + &platform_version.drive, + )?; + + self.drive.apply_batch_low_level_drive_operations( + None, + Some(transaction), + batch_operations, + &mut vec![], + &platform_version.drive, + )?; + + Ok(()) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs index 33edd09927..7a37525de6 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/dequeue_and_build_unsigned_withdrawal_transactions/v0/mod.rs @@ -13,7 +13,7 @@ use dpp::version::PlatformVersion; use drive::dpp::system_data_contracts::withdrawals_contract; use drive::dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; -use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; +use dpp::withdrawal::WithdrawalTransactionIndex; use drive::query::TransactionArg; use drive::util::batch::DriveOperation; @@ -28,8 +28,6 @@ use dpp::errors::ProtocolError; use drive::config::DEFAULT_QUERY_LIMIT; -const WITHDRAWAL_TRANSACTIONS_QUERY_LIMIT: u16 = 16; - impl Platform where C: CoreRPCLike, @@ -44,9 +42,11 @@ where ) -> Result { let mut drive_operations: Vec = vec![]; - // Get 16 latest withdrawal transactions from the queue + // Get withdrawal_transactions_per_block_limit (normally 4) latest withdrawal transactions from the queue let untied_withdrawal_transactions = self.drive.dequeue_untied_withdrawal_transactions( - WITHDRAWAL_TRANSACTIONS_QUERY_LIMIT, + platform_version + .system_limits + .withdrawal_transactions_per_block_limit, transaction, &mut drive_operations, platform_version, @@ -150,8 +150,8 @@ where document.set_updated_at(Some(block_info.time_ms)); document.increment_revision().map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Could not increment document revision", + Error::Execution(ExecutionError::Overflow( + "Overflow when adding to document revision for withdrawals", )) })?; diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/mod.rs index 0a4b17062e..726a86eef0 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/mod.rs @@ -4,7 +4,7 @@ use crate::platform_types::platform::Platform; use crate::rpc::core::CoreRPCLike; use dashcore_rpc::json::AssetUnlockStatus; use dpp::version::PlatformVersion; -use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; +use dpp::withdrawal::WithdrawalTransactionIndex; use std::collections::BTreeMap; mod v0; diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/v0/mod.rs index 86433d8c03..d284be086d 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/fetch_transactions_block_inclusion_status/v0/mod.rs @@ -1,9 +1,8 @@ +use crate::{error::Error, platform_types::platform::Platform, rpc::core::CoreRPCLike}; use dashcore_rpc::dashcore_rpc_json::AssetUnlockStatus; -use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; +use dpp::withdrawal::WithdrawalTransactionIndex; use std::collections::BTreeMap; -use crate::{error::Error, platform_types::platform::Platform, rpc::core::CoreRPCLike}; - impl Platform where C: CoreRPCLike, diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs index 7541211056..d7779c47b0 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs @@ -1,6 +1,8 @@ pub(in crate::execution) mod append_signatures_and_broadcast_withdrawal_transactions; pub(in crate::execution) mod build_untied_withdrawal_transactions_from_documents; +pub(in crate::execution) mod cleanup_expired_locks_of_withdrawal_amounts; pub(in crate::execution) mod dequeue_and_build_unsigned_withdrawal_transactions; pub(in crate::execution) mod fetch_transactions_block_inclusion_status; pub(in crate::execution) mod pool_withdrawals_into_transactions_queue; +pub(in crate::execution) mod rebroadcast_expired_withdrawal_documents; pub(in crate::execution) mod update_broadcasted_withdrawal_statuses; diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/mod.rs index 910445fe32..66be57e5e0 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/mod.rs @@ -2,12 +2,14 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; use crate::rpc::core::CoreRPCLike; use dpp::block::block_info::BlockInfo; use dpp::version::PlatformVersion; use drive::grovedb::TransactionArg; mod v0; +mod v1; impl Platform where @@ -29,6 +31,7 @@ where pub(in crate::execution) fn pool_withdrawals_into_transactions_queue( &self, block_info: &BlockInfo, + last_committed_platform_state: &PlatformState, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -39,13 +42,19 @@ where .pool_withdrawals_into_transactions_queue { 0 => self.pool_withdrawals_into_transactions_queue_v0( + block_info, + last_committed_platform_state, + transaction, + platform_version, + ), + 1 => self.pool_withdrawals_into_transactions_queue_v1( block_info, transaction, platform_version, ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "pool_withdrawals_into_transactions_queue".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v0/mod.rs index 9540d42f12..610d8e3fcc 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v0/mod.rs @@ -1,23 +1,10 @@ use dpp::block::block_info::BlockInfo; - -use dpp::data_contract::accessors::v0::DataContractV0Getters; -use dpp::document::document_methods::DocumentMethodsV0; -use dpp::document::{DocumentV0Getters, DocumentV0Setters}; - use dpp::version::PlatformVersion; - -use drive::drive::identity::withdrawals::WithdrawalTransactionIndexAndBytes; use drive::grovedb::TransactionArg; -use dpp::system_data_contracts::withdrawals_contract; -use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; -use drive::config::DEFAULT_QUERY_LIMIT; - -use crate::{ - error::{execution::ExecutionError, Error}, - platform_types::platform::Platform, - rpc::core::CoreRPCLike, -}; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use crate::{error::Error, platform_types::platform::Platform, rpc::core::CoreRPCLike}; impl Platform where @@ -27,115 +14,30 @@ where pub(super) fn pool_withdrawals_into_transactions_queue_v0( &self, block_info: &BlockInfo, + last_committed_platform_state: &PlatformState, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result<(), Error> { - let mut documents = self.drive.fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::QUEUED.into(), - DEFAULT_QUERY_LIMIT, - transaction, - platform_version, - )?; + // Currently Core only supports using the first 2 quorums (out of 24 for mainnet). + // For extra safety, we use only the first quorum because our quorum info based + // on core chain locked height which is always late comparing with Core. + let Some(position_of_current_quorum) = + last_committed_platform_state.current_validator_set_position_in_list_by_most_recent() + else { + tracing::warn!("Current quorum not in current validator set, do not pool withdrawals"); - if documents.is_empty() { return Ok(()); - } - - let start_transaction_index = self - .drive - .fetch_next_withdrawal_transaction_index(transaction, platform_version)?; - - let untied_withdrawal_transactions = self - .build_untied_withdrawal_transactions_from_documents( - &documents, - start_transaction_index, - platform_version, - )?; - - for document in documents.iter_mut() { - let Some((transaction_index, _)) = untied_withdrawal_transactions.get(&document.id()) - else { - return Err(Error::Execution(ExecutionError::CorruptedCodeExecution( - "transactions must contain a transaction", - ))); - }; - - document.set_u64( - withdrawal::properties::TRANSACTION_INDEX, - *transaction_index, - ); - - document.set_u8( - withdrawal::properties::STATUS, - withdrawals_contract::WithdrawalStatus::POOLED as u8, + }; + if position_of_current_quorum != 0 { + tracing::debug!( + "Current quorum is not most recent, it is in position {}, do not pool withdrawals", + position_of_current_quorum ); - document.set_updated_at(Some(block_info.time_ms)); - - document.increment_revision().map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Could not increment document revision", - )) - })?; + return Ok(()); } - - let withdrawal_transactions: Vec = - untied_withdrawal_transactions.into_values().collect(); - - let withdrawal_transactions_count = withdrawal_transactions.len(); - - let mut drive_operations = Vec::new(); - - self.drive - .add_enqueue_untied_withdrawal_transaction_operations( - withdrawal_transactions, - &mut drive_operations, - platform_version, - )?; - - let end_transaction_index = start_transaction_index + withdrawal_transactions_count as u64; - - self.drive - .add_update_next_withdrawal_transaction_index_operation( - end_transaction_index, - &mut drive_operations, - platform_version, - )?; - - tracing::debug!( - "Pooled {} withdrawal documents into {} transactions with indices from {} to {}", - documents.len(), - withdrawal_transactions_count, - start_transaction_index, - end_transaction_index, - ); - - let withdrawals_contract = self.drive.cache.system_data_contracts.load_withdrawals(); - - self.drive.add_update_multiple_documents_operations( - &documents, - &withdrawals_contract, - withdrawals_contract - .document_type_for_name(withdrawal::NAME) - .map_err(|_| { - Error::Execution(ExecutionError::CorruptedCodeExecution( - "Can't fetch withdrawal data contract", - )) - })?, - &mut drive_operations, - &platform_version.drive, - )?; - - self.drive.apply_drive_operations( - drive_operations, - true, - block_info, - transaction, - platform_version, - None, - )?; - - Ok(()) + // Just use the v1 as to not duplicate code + self.pool_withdrawals_into_transactions_queue_v1(block_info, transaction, platform_version) } } @@ -143,20 +45,23 @@ where mod tests { use super::*; use dpp::block::epoch::Epoch; - use itertools::Itertools; - + use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contracts::SystemDataContract; use dpp::identifier::Identifier; use dpp::identity::core_script::CoreScript; use dpp::tests::fixtures::get_withdrawal_document_fixture; use dpp::withdrawal::Pooling; use drive::util::test_helpers::setup::{setup_document, setup_system_data_contract}; + use itertools::Itertools; use crate::test::helpers::setup::TestPlatformBuilder; + use dpp::document::DocumentV0Getters; use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; use dpp::platform_value::platform_value; - use dpp::system_data_contracts::load_system_data_contract; + use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; + use dpp::system_data_contracts::{load_system_data_contract, withdrawals_contract}; use dpp::version::PlatformVersion; + use drive::config::DEFAULT_QUERY_LIMIT; #[test] fn test_pooling() { @@ -234,9 +139,12 @@ mod tests { Some(&transaction), ); + let platform_state = platform.state.load(); + platform .pool_withdrawals_into_transactions_queue_v0( &block_info, + &platform_state, Some(&transaction), platform_version, ) diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs new file mode 100644 index 0000000000..b0b0f99e65 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/pool_withdrawals_into_transactions_queue/v1/mod.rs @@ -0,0 +1,311 @@ +use dpp::block::block_info::BlockInfo; +use metrics::gauge; + +use dpp::data_contract::accessors::v0::DataContractV0Getters; +use dpp::document::DocumentV0Getters; +use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; +use dpp::version::PlatformVersion; +use drive::grovedb::TransactionArg; + +use dpp::system_data_contracts::withdrawals_contract; +use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; + +use crate::metrics::{ + GAUGE_CREDIT_WITHDRAWAL_LIMIT_AVAILABLE, GAUGE_CREDIT_WITHDRAWAL_LIMIT_TOTAL, +}; +use crate::{ + error::{execution::ExecutionError, Error}, + platform_types::platform::Platform, + rpc::core::CoreRPCLike, +}; + +impl Platform +where + C: CoreRPCLike, +{ + /// Pool withdrawal documents into transactions + /// Version 1 changes on Version 0, by not having the Core 2 Quorum limit. + /// We should switch to Version 1 once Core has fixed the issue + pub(super) fn pool_withdrawals_into_transactions_queue_v1( + &self, + block_info: &BlockInfo, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + let documents = self.drive.fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + platform_version + .system_limits + .withdrawal_transactions_per_block_limit, + transaction, + platform_version, + )?; + + if documents.is_empty() { + return Ok(()); + } + + // Only take documents up to the withdrawal amount + let withdrawals_info = self + .drive + .calculate_current_withdrawal_limit(transaction, platform_version)?; + + let current_withdrawal_limit = withdrawals_info.available(); + + // Store prometheus metrics + gauge!(GAUGE_CREDIT_WITHDRAWAL_LIMIT_AVAILABLE).set(current_withdrawal_limit as f64); + gauge!(GAUGE_CREDIT_WITHDRAWAL_LIMIT_TOTAL).set(withdrawals_info.daily_maximum as f64); + + // Only process documents up to the current withdrawal limit. + let mut total_withdrawal_amount = 0u64; + + // Iterate over the documents and accumulate their withdrawal amounts. + let mut documents_to_process = vec![]; + for document in documents { + // Get the withdrawal amount from the document properties. + let amount: u64 = document + .properties() + .get_integer(withdrawal::properties::AMOUNT)?; + + // Check if adding this amount would exceed the current withdrawal limit. + let potential_total_withdrawal_amount = + total_withdrawal_amount.checked_add(amount).ok_or_else(|| { + Error::Execution(ExecutionError::Overflow( + "overflow in total withdrawal amount", + )) + })?; + + // If adding this withdrawal would exceed the limit, stop processing further. + if potential_total_withdrawal_amount > current_withdrawal_limit { + tracing::debug!( + "Pooling is limited due to daily withdrawals limit. {} credits left", + current_withdrawal_limit + ); + break; + } + + total_withdrawal_amount = potential_total_withdrawal_amount; + + // Add this document to the list of documents to be processed. + documents_to_process.push(document); + } + + if documents_to_process.is_empty() { + return Ok(()); + } + + let start_transaction_index = self + .drive + .fetch_next_withdrawal_transaction_index(transaction, platform_version)?; + + let (withdrawal_transactions, total_amount) = self + .build_untied_withdrawal_transactions_from_documents( + &mut documents_to_process, + start_transaction_index, + block_info, + platform_version, + )?; + + let withdrawal_transactions_count = withdrawal_transactions.len(); + + let mut drive_operations = vec![]; + + self.drive + .add_enqueue_untied_withdrawal_transaction_operations( + withdrawal_transactions, + total_amount, + &mut drive_operations, + platform_version, + )?; + + let end_transaction_index = start_transaction_index + withdrawal_transactions_count as u64; + + self.drive + .add_update_next_withdrawal_transaction_index_operation( + end_transaction_index, + &mut drive_operations, + platform_version, + )?; + + tracing::debug!( + "Pooled {} withdrawal documents into {} transactions with indices from {} to {}", + documents_to_process.len(), + withdrawal_transactions_count, + start_transaction_index, + end_transaction_index, + ); + + let withdrawals_contract = self.drive.cache.system_data_contracts.load_withdrawals(); + + self.drive.add_update_multiple_documents_operations( + &documents_to_process, + &withdrawals_contract, + withdrawals_contract + .document_type_for_name(withdrawal::NAME) + .map_err(|_| { + Error::Execution(ExecutionError::CorruptedCodeExecution( + "Can't fetch withdrawal data contract", + )) + })?, + &mut drive_operations, + &platform_version.drive, + )?; + + self.drive.apply_drive_operations( + drive_operations, + true, + block_info, + transaction, + platform_version, + None, + )?; + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use dpp::block::epoch::Epoch; + use itertools::Itertools; + + use dpp::data_contracts::SystemDataContract; + use dpp::identifier::Identifier; + use dpp::identity::core_script::CoreScript; + use dpp::tests::fixtures::get_withdrawal_document_fixture; + use dpp::withdrawal::Pooling; + use drive::util::test_helpers::setup::{setup_document, setup_system_data_contract}; + + use crate::test::helpers::setup::TestPlatformBuilder; + use dpp::document::DocumentV0Getters; + use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; + use dpp::platform_value::platform_value; + use dpp::system_data_contracts::load_system_data_contract; + use dpp::version::PlatformVersion; + use drive::config::DEFAULT_QUERY_LIMIT; + + #[test] + fn test_pooling() { + let platform_version = PlatformVersion::latest(); + let platform = TestPlatformBuilder::new() + .build_with_mock_rpc() + .set_initial_state_structure(); + + let transaction = platform.drive.grove.start_transaction(); + + let block_info = BlockInfo { + time_ms: 1, + height: 1, + core_height: 96, + epoch: Epoch::default(), + }; + + let data_contract = + load_system_data_contract(SystemDataContract::Withdrawals, platform_version) + .expect("to load system data contract"); + + setup_system_data_contract(&platform.drive, &data_contract, Some(&transaction)); + + let owner_id = Identifier::new([1u8; 32]); + + let document_1 = get_withdrawal_document_fixture( + &data_contract, + owner_id, + platform_value!({ + "amount": 1000u64, + "coreFeePerByte": 1u32, + "pooling": Pooling::Never as u8, + "outputScript": CoreScript::from_bytes((0..23).collect::>()), + "status": withdrawals_contract::WithdrawalStatus::QUEUED as u8, + "transactionIndex": 1u64, + }), + None, + platform_version.protocol_version, + ) + .expect("expected withdrawal document"); + + let document_type = data_contract + .document_type_for_name(withdrawal::NAME) + .expect("expected to get document type"); + + setup_document( + &platform.drive, + &document_1, + &data_contract, + document_type, + Some(&transaction), + ); + + let document_2 = get_withdrawal_document_fixture( + &data_contract, + owner_id, + platform_value!({ + "amount": 1000u64, + "coreFeePerByte": 1u32, + "pooling": Pooling::Never as u8, + "outputScript": CoreScript::from_bytes((0..23).collect::>()), + "status": withdrawals_contract::WithdrawalStatus::QUEUED as u8, + "transactionIndex": 2u64, + }), + None, + platform_version.protocol_version, + ) + .expect("expected withdrawal document"); + + setup_document( + &platform.drive, + &document_2, + &data_contract, + document_type, + Some(&transaction), + ); + + let platform_state = platform.state.load(); + + platform + .pool_withdrawals_into_transactions_queue_v0( + &block_info, + &platform_state, + Some(&transaction), + platform_version, + ) + .expect("to pool withdrawal documents into transactions"); + + let updated_documents = platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + Some(&transaction), + platform_version, + ) + .expect("to fetch withdrawal documents"); + + for (i, document) in updated_documents + .into_iter() + // Sort by index because updated_at is the same for all documents within batch + .sorted_by(|a, b| { + let a_index = a + .properties() + .get_u64(withdrawal::properties::TRANSACTION_INDEX) + .expect("to get transactionIndex"); + let b_index = b + .properties() + .get_u64(withdrawal::properties::TRANSACTION_INDEX) + .expect("to get transactionIndex"); + a_index.cmp(&b_index) + }) + .enumerate() + { + assert_eq!(document.revision(), Some(2)); + + let tx_index = document + .properties() + .get_u64(withdrawal::properties::TRANSACTION_INDEX) + .expect("to get transactionIndex"); + + assert_eq!(tx_index, i as u64); + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/mod.rs new file mode 100644 index 0000000000..cb01272fdc --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/mod.rs @@ -0,0 +1,65 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::platform_types::platform::Platform; + +use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; + +use crate::platform_types::platform_state::PlatformState; +use dpp::version::PlatformVersion; +use drive::grovedb::Transaction; + +mod v0; +mod v1; + +impl Platform +where + C: CoreRPCLike, +{ + /// Rebroadcasts expired withdrawal documents if any exist. + /// + /// This function attempts to rebroadcast expired withdrawal documents by checking if there are + /// any documents with the status `EXPIRED`. It updates the status of such documents to + /// `BROADCASTED`, increments their revision, and reschedules them for broadcasting. + /// + /// # Parameters + /// - `block_info`: Information about the current block (e.g., timestamp). + /// - `last_committed_platform_state`: The last committed platform state needed to check active validator set. + /// - `transaction`: The transaction within which the rebroadcast should be executed. + /// - `platform_version`: The version of the platform, used to determine the correct method implementation. + /// + /// # Returns + /// - `Ok(())` if the rebroadcast process succeeds without issues. + /// - `Err(ExecutionError::UnknownVersionMismatch)` if the platform version is unsupported. + pub fn rebroadcast_expired_withdrawal_documents( + &self, + block_info: &BlockInfo, + last_committed_platform_state: &PlatformState, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive_abci + .methods + .withdrawals + .rebroadcast_expired_withdrawal_documents + { + 0 => self.rebroadcast_expired_withdrawal_documents_v0( + block_info, + last_committed_platform_state, + transaction, + platform_version, + ), + 1 => self.rebroadcast_expired_withdrawal_documents_v1( + block_info, + transaction, + platform_version, + ), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "rebroadcast_expired_withdrawal_documents".to_string(), + known_versions: vec![0, 1], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v0/mod.rs new file mode 100644 index 0000000000..d8949a06a0 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v0/mod.rs @@ -0,0 +1,39 @@ +use crate::error::Error; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use crate::{platform_types::platform::Platform, rpc::core::CoreRPCLike}; +use dpp::block::block_info::BlockInfo; +use dpp::version::PlatformVersion; +use drive::grovedb::Transaction; + +impl Platform +where + C: CoreRPCLike, +{ + pub(super) fn rebroadcast_expired_withdrawal_documents_v0( + &self, + block_info: &BlockInfo, + last_committed_platform_state: &PlatformState, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + // Currently Core only supports using the first 2 quorums (out of 24 for mainnet). + // For us, we just use the latest quorum to be extra safe. + let Some(position_of_current_quorum) = + last_committed_platform_state.current_validator_set_position_in_list_by_most_recent() + else { + tracing::warn!("Current quorum not in current validator set, do not re-broadcast expired withdrawals"); + return Ok(()); + }; + if position_of_current_quorum != 0 { + tracing::debug!( + "Current quorum is not most recent, it is in position {}, do not re-broadcast expired withdrawals", + position_of_current_quorum + ); + return Ok(()); + } + // Version 1 changes on Version 0, by not having the Core 2 Quorum limit. + // Hence we can just use the v1 here after the extra logic of v0 + self.rebroadcast_expired_withdrawal_documents_v1(block_info, transaction, platform_version) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs new file mode 100644 index 0000000000..e2e50b3e5b --- /dev/null +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/rebroadcast_expired_withdrawal_documents/v1/mod.rs @@ -0,0 +1,124 @@ +use dpp::block::block_info::BlockInfo; +use dpp::data_contract::accessors::v0::DataContractV0Getters; +use dpp::data_contracts::withdrawals_contract::WithdrawalStatus; +use dpp::document::document_methods::DocumentMethodsV0; +use dpp::document::{DocumentV0Getters, DocumentV0Setters}; +use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; + +use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; +use dpp::version::PlatformVersion; +use std::collections::BTreeSet; + +use crate::{ + error::{execution::ExecutionError, Error}, + platform_types::platform::Platform, + rpc::core::CoreRPCLike, +}; +use dpp::withdrawal::WithdrawalTransactionIndex; +use drive::grovedb::Transaction; +use drive::util::batch::DriveOperation; + +impl Platform +where + C: CoreRPCLike, +{ + /// Version 1 changes on Version 0, by not having the Core 2 Quorum limit. + /// We should switch to Version 1 once Core has fixed the issue + pub(super) fn rebroadcast_expired_withdrawal_documents_v1( + &self, + block_info: &BlockInfo, + transaction: &Transaction, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + let expired_withdrawal_documents_to_retry_signing = + self.drive.fetch_oldest_withdrawal_documents_by_status( + WithdrawalStatus::EXPIRED.into(), + platform_version + .system_limits + .retry_signing_expired_withdrawal_documents_per_block_limit, + transaction.into(), + platform_version, + )?; + + if expired_withdrawal_documents_to_retry_signing.is_empty() { + return Ok(()); + } + + // Collecting unique withdrawal indices of expired documents + let expired_withdrawal_indices: Vec = + expired_withdrawal_documents_to_retry_signing + .iter() + .map(|document| { + document + .properties() + .get_optional_u64(withdrawal::properties::TRANSACTION_INDEX)? + .ok_or(Error::Execution(ExecutionError::CorruptedDriveResponse( + "Can't get transaction index from withdrawal document".to_string(), + ))) + }) + .collect::, Error>>()? + .into_iter() + .collect(); + + let mut drive_operations: Vec = vec![]; + + // Collecting only documents that have been updated + let mut documents_to_update = Vec::new(); + + for mut document in expired_withdrawal_documents_to_retry_signing { + document.set_u8( + withdrawal::properties::STATUS, + WithdrawalStatus::BROADCASTED as u8, + ); + + document.set_u64( + withdrawal::properties::TRANSACTION_SIGN_HEIGHT, + block_info.core_height as u64, + ); + + document.set_updated_at(Some(block_info.time_ms)); + + document.increment_revision().map_err(Error::Protocol)?; + + documents_to_update.push(document); + } + + if documents_to_update.is_empty() { + return Ok(()); + } + + self.drive + .move_broadcasted_withdrawal_transactions_back_to_queue_operations( + expired_withdrawal_indices, + &mut drive_operations, + platform_version, + )?; + + let withdrawals_contract = self.drive.cache.system_data_contracts.load_withdrawals(); + + self.drive.add_update_multiple_documents_operations( + &documents_to_update, + &withdrawals_contract, + withdrawals_contract + .document_type_for_name(withdrawal::NAME) + .map_err(|_| { + Error::Execution(ExecutionError::CorruptedCodeExecution( + "Can't fetch withdrawal data contract", + )) + })?, + &mut drive_operations, + &platform_version.drive, + )?; + + self.drive.apply_drive_operations( + drive_operations, + true, + block_info, + transaction.into(), + platform_version, + None, + )?; + + Ok(()) + } +} diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs index 0257f29351..470d234939 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/update_broadcasted_withdrawal_statuses/v0/mod.rs @@ -8,21 +8,17 @@ use dpp::platform_value::btreemap_extensions::BTreeValueMapHelper; use dpp::system_data_contracts::withdrawals_contract::v1::document_types::withdrawal; use dpp::version::PlatformVersion; -use itertools::Itertools; -use std::collections::HashSet; - -use drive::config::DEFAULT_QUERY_LIMIT; -use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; -use drive::grovedb::Transaction; -use drive::util::batch::DriveOperation; +use std::collections::BTreeSet; use crate::{ error::{execution::ExecutionError, Error}, platform_types::platform::Platform, rpc::core::CoreRPCLike, }; - -const NUMBER_OF_BLOCKS_BEFORE_EXPIRED: u32 = 48; +use dpp::withdrawal::WithdrawalTransactionIndex; +use drive::config::DEFAULT_QUERY_LIMIT; +use drive::grovedb::Transaction; +use drive::util::batch::DriveOperation; impl Platform where @@ -47,20 +43,21 @@ where return Ok(()); } - // Collecting unique withdrawal indices - let broadcasted_withdrawal_indices = broadcasted_withdrawal_documents - .iter() - .map(|document| { - document - .properties() - .get_optional_u64(withdrawal::properties::TRANSACTION_INDEX)? - .ok_or(Error::Execution(ExecutionError::CorruptedDriveResponse( - "Can't get transaction index from withdrawal document".to_string(), - ))) - }) - .collect::, Error>>()? - .into_iter() - .collect_vec(); + // Collecting unique withdrawal indices of broadcasted documents + let broadcasted_withdrawal_indices: Vec = + broadcasted_withdrawal_documents + .iter() + .map(|document| { + document + .properties() + .get_optional_u64(withdrawal::properties::TRANSACTION_INDEX)? + .ok_or(Error::Execution(ExecutionError::CorruptedDriveResponse( + "Can't get transaction index from withdrawal document".to_string(), + ))) + }) + .collect::, Error>>()? + .into_iter() + .collect(); let withdrawal_transaction_statuses = self.fetch_transactions_block_inclusion_status( block_info.core_height, @@ -70,6 +67,18 @@ where let mut drive_operations: Vec = vec![]; + // Let's remove broadcasted withdrawal transactions that are now chainlocked + let chainlocked_indexes = withdrawal_transaction_statuses + .iter() + .filter_map(|(index, status)| { + if *status == AssetUnlockStatus::Chainlocked { + Some(*index) + } else { + None + } + }) + .collect::>(); + // Collecting only documents that have been updated let mut documents_to_update = Vec::new(); @@ -109,13 +118,17 @@ where ); WithdrawalStatus::COMPLETE - } else if block_height_difference > NUMBER_OF_BLOCKS_BEFORE_EXPIRED { + } else if block_height_difference + > platform_version + .drive_abci + .withdrawal_constants + .core_expiration_blocks + { tracing::debug!( transaction_sign_height, "Withdrawal with transaction index {} is marked as expired", withdrawal_index ); - WithdrawalStatus::EXPIRED } else { continue; @@ -134,6 +147,13 @@ where return Ok(()); } + self.drive + .remove_broadcasted_withdrawal_transactions_after_completion_operations( + chainlocked_indexes, + &mut drive_operations, + platform_version, + )?; + let withdrawals_contract = self.drive.cache.system_data_contracts.load_withdrawals(); self.drive.add_update_multiple_documents_operations( diff --git a/packages/rs-drive-abci/src/execution/types/block_execution_context/mod.rs b/packages/rs-drive-abci/src/execution/types/block_execution_context/mod.rs index a0054fff7a..3a866d17c7 100644 --- a/packages/rs-drive-abci/src/execution/types/block_execution_context/mod.rs +++ b/packages/rs-drive-abci/src/execution/types/block_execution_context/mod.rs @@ -42,12 +42,6 @@ impl BlockExecutionContextV0Getters for BlockExecutionContext { } } - fn hpmn_count(&self) -> u32 { - match self { - BlockExecutionContext::V0(v0) => v0.hpmn_count, - } - } - fn unsigned_withdrawal_transactions(&self) -> &UnsignedWithdrawalTxs { match self { BlockExecutionContext::V0(v0) => &v0.unsigned_withdrawal_transactions, @@ -80,12 +74,6 @@ impl BlockExecutionContextV0Setters for BlockExecutionContext { } } - fn set_hpmn_count(&mut self, count: u32) { - match self { - BlockExecutionContext::V0(v0) => v0.hpmn_count = count, - } - } - fn set_unsigned_withdrawal_transactions(&mut self, transactions: UnsignedWithdrawalTxs) { match self { BlockExecutionContext::V0(v0) => v0.unsigned_withdrawal_transactions = transactions, diff --git a/packages/rs-drive-abci/src/execution/types/block_execution_context/v0/mod.rs b/packages/rs-drive-abci/src/execution/types/block_execution_context/v0/mod.rs index 9276f1ff8a..de6e1ddc33 100644 --- a/packages/rs-drive-abci/src/execution/types/block_execution_context/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/types/block_execution_context/v0/mod.rs @@ -1,32 +1,3 @@ -// MIT LICENSE -// -// Copyright (c) 2021 Dash Core Group -// -// Permission is hereby granted, free of charge, to any -// person obtaining a copy of this software and associated -// documentation files (the "Software"), to deal in the -// Software without restriction, including without -// limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software -// is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice -// shall be included in all copies or substantial portions -// of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - use crate::execution::types::block_state_info::BlockStateInfo; use crate::platform_types::epoch_info::EpochInfo; @@ -42,8 +13,6 @@ pub struct BlockExecutionContextV0 { pub block_state_info: BlockStateInfo, /// Epoch info pub epoch_info: EpochInfo, - /// Total hpmn count - pub hpmn_count: u32, /// Unsigned withdrawal transactions to be available for extend and verify votes handlers pub unsigned_withdrawal_transactions: UnsignedWithdrawalTxs, /// Block state @@ -59,9 +28,6 @@ pub trait BlockExecutionContextV0Getters { /// Returns a reference of the epoch_info field. fn epoch_info(&self) -> &EpochInfo; - /// Returns the hpmn_count field. - fn hpmn_count(&self) -> u32; - /// Returns a reference of the withdrawal_transactions field. fn unsigned_withdrawal_transactions(&self) -> &UnsignedWithdrawalTxs; @@ -80,9 +46,6 @@ pub trait BlockExecutionContextV0Setters { /// Sets the epoch_info field. fn set_epoch_info(&mut self, info: EpochInfo); - /// Sets the hpmn_count field. - fn set_hpmn_count(&mut self, count: u32); - /// Sets the withdrawal_transactions field. fn set_unsigned_withdrawal_transactions(&mut self, transactions: UnsignedWithdrawalTxs); @@ -137,11 +100,6 @@ impl BlockExecutionContextV0Getters for BlockExecutionContextV0 { &self.epoch_info } - /// Returns the hpmn_count field. - fn hpmn_count(&self) -> u32 { - self.hpmn_count - } - /// Returns a reference to the unsigned withdrawal transactions fn unsigned_withdrawal_transactions(&self) -> &UnsignedWithdrawalTxs { &self.unsigned_withdrawal_transactions @@ -167,10 +125,6 @@ impl BlockExecutionContextV0Setters for BlockExecutionContextV0 { fn set_epoch_info(&mut self, info: EpochInfo) { self.epoch_info = info; } - /// Sets the hpmn_count field. - fn set_hpmn_count(&mut self, count: u32) { - self.hpmn_count = count; - } /// Sets the withdrawal_transactions field. fn set_unsigned_withdrawal_transactions(&mut self, transactions: UnsignedWithdrawalTxs) { self.unsigned_withdrawal_transactions = transactions; diff --git a/packages/rs-drive-abci/src/execution/types/execution_operation/mod.rs b/packages/rs-drive-abci/src/execution/types/execution_operation/mod.rs index 4024224e2e..d44b854495 100644 --- a/packages/rs-drive-abci/src/execution/types/execution_operation/mod.rs +++ b/packages/rs-drive-abci/src/execution/types/execution_operation/mod.rs @@ -67,6 +67,7 @@ pub enum ValidationOperation { Protocol(ProtocolValidationOperation), RetrieveIdentity(RetrieveIdentityInfo), RetrievePrefundedSpecializedBalance, + PerformNetworkThresholdSigning, SingleSha256(HashBlockCount), DoubleSha256(HashBlockCount), ValidateKeyStructure(KeyCount), // This is extremely cheap @@ -210,6 +211,19 @@ impl ValidationOperation { "execution processing fee overflow error", ))?; } + ValidationOperation::PerformNetworkThresholdSigning => { + let operation_cost = platform_version + .fee_version + .processing + .perform_network_threshold_signing; + + fee_result.processing_fee = fee_result + .processing_fee + .checked_add(operation_cost) + .ok_or(ExecutionError::Overflow( + "execution processing fee overflow error", + ))?; + } } } Ok(()) diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/check_tx_verification/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/check_tx_verification/v0/mod.rs index b48464fd3c..dde9c1e1f3 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/check_tx_verification/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/check_tx_verification/v0/mod.rs @@ -9,14 +9,13 @@ use dpp::prelude::ConsensusValidationResult; use dpp::serialization::Signable; use dpp::state_transition::signable_bytes_hasher::SignableBytesHasher; use dpp::ProtocolError; - use dpp::state_transition::StateTransition; use dpp::version::{DefaultForPlatformVersion, PlatformVersion}; use crate::error::execution::ExecutionError; use crate::execution::check_tx::CheckTxLevel; use crate::execution::types::state_transition_execution_context::StateTransitionExecutionContext; use crate::execution::validation::state_transition::common::asset_lock::proof::verify_is_not_spent::AssetLockProofVerifyIsNotSpent; -use crate::execution::validation::state_transition::processor::v0::{StateTransitionIdentityBalanceValidationV0, StateTransitionBasicStructureValidationV0, StateTransitionNonceValidationV0, StateTransitionIdentityBasedSignatureValidationV0, StateTransitionStructureKnownInStateValidationV0}; +use crate::execution::validation::state_transition::processor::v0::{StateTransitionIdentityBalanceValidationV0, StateTransitionBasicStructureValidationV0, StateTransitionNonceValidationV0, StateTransitionIdentityBasedSignatureValidationV0, StateTransitionStructureKnownInStateValidationV0, StateTransitionIsAllowedValidationV0}; use crate::execution::validation::state_transition::ValidationMode; pub(super) fn state_transition_to_execution_event_for_check_tx_v0<'a, C: CoreRPCLike>( @@ -29,9 +28,22 @@ pub(super) fn state_transition_to_execution_event_for_check_tx_v0<'a, C: CoreRPC let mut state_transition_execution_context = StateTransitionExecutionContext::default_for_platform_version(platform_version)?; + // TODO: There is no point to have it here. There is "_" arm implemented. #[allow(unreachable_patterns)] match check_tx_level { CheckTxLevel::FirstTimeCheck => { + if state_transition.has_is_allowed_validation(platform_version)? { + let result = state_transition.validate_is_allowed(platform, platform_version)?; + + if !result.is_valid() { + return Ok( + ConsensusValidationResult::>::new_with_errors( + result.errors, + ), + ); + } + } + // Only identity top up and identity create do not have nonces validation if state_transition.has_nonces_validation() { let result = state_transition.validate_nonces( 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 4e316a7af0..5d411c02a2 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 @@ -74,18 +74,12 @@ impl<'a> ValidateStateTransitionIdentitySignatureV0<'a> for StateTransition { let owner_id = self.owner_id(); - let security_levels = - self.security_level_requirement() + let allowed_purposes = + self.purpose_requirement() .ok_or(ProtocolError::CorruptedCodeExecution( - "state_transition does not have security level".to_string(), + "state_transition does not have a key purpose requirement".to_string(), ))?; - let purpose = self - .purpose_requirement() - .ok_or(ProtocolError::CorruptedCodeExecution( - "state_transition does not have a key purpose requirement".to_string(), - ))?; - let key_request = IdentityKeysRequest::new_specific_key_query(owner_id.as_bytes(), key_id); let maybe_partial_identity = match (request_identity_balance, request_identity_revision) { @@ -169,13 +163,19 @@ impl<'a> ValidateStateTransitionIdentitySignatureV0<'a> for StateTransition { return Ok(validation_result); } - if purpose != public_key.purpose() { + if !allowed_purposes.contains(&public_key.purpose()) { validation_result.add_error(SignatureError::InvalidSignaturePublicKeyPurposeError( - InvalidSignaturePublicKeyPurposeError::new(public_key.purpose(), purpose), + InvalidSignaturePublicKeyPurposeError::new(public_key.purpose(), allowed_purposes), )); return Ok(validation_result); } + let security_levels = self + .security_level_requirement(public_key.purpose()) + .ok_or(ProtocolError::CorruptedCodeExecution( + "state_transition does not have security level".to_string(), + ))?; + if !security_levels.contains(&public_key.security_level()) { validation_result.add_error( SignatureError::InvalidSignaturePublicKeySecurityLevelError( diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/mod.rs index 491f3e39b2..fa5a06fa41 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/mod.rs @@ -8,4 +8,4 @@ pub mod transformer; pub use state_transitions::*; #[cfg(test)] -pub(crate) use state_transitions::tests; +pub(in crate::execution) use state_transitions::tests; diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/processor/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/processor/v0/mod.rs index 9ec26800a9..bea2dcdccf 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/processor/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/processor/v0/mod.rs @@ -29,6 +29,7 @@ use crate::execution::validation::state_transition::identity_top_up::StateTransi use crate::execution::validation::state_transition::state_transitions::identity_update::advanced_structure::v0::IdentityUpdateStateTransitionIdentityAndSignaturesValidationV0; use crate::execution::validation::state_transition::state_transitions::identity_top_up::identity_retrieval::v0::IdentityTopUpStateTransitionIdentityRetrievalV0; use crate::execution::validation::state_transition::ValidationMode; +use crate::execution::validation::state_transition::state_transitions::identity_credit_withdrawal::signature_purpose_matches_requirements::IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidation; pub(super) fn process_state_transition_v0<'a, C: CoreRPCLike>( platform: &'a PlatformRef, block_info: &BlockInfo, @@ -39,6 +40,14 @@ pub(super) fn process_state_transition_v0<'a, C: CoreRPCLike>( let mut state_transition_execution_context = StateTransitionExecutionContext::default_for_platform_version(platform_version)?; + if state_transition.has_is_allowed_validation(platform_version)? { + let result = state_transition.validate_is_allowed(platform, platform_version)?; + + if !result.is_valid() { + return Ok(ConsensusValidationResult::::new_with_errors(result.errors)); + } + } + // Only identity create does not use identity in state validation, because it doesn't yet have the identity in state let mut maybe_identity = if state_transition.uses_identity_in_state() { // Validating signature for identity based state transitions (all those except identity create and identity top up) @@ -250,6 +259,18 @@ pub(super) fn process_state_transition_v0<'a, C: CoreRPCLike>( }) } +/// A trait for validating state transitions within a blockchain. +pub(crate) trait StateTransitionIsAllowedValidationV0 { + /// This means we should validate is state transition is allowed + fn has_is_allowed_validation(&self, platform_version: &PlatformVersion) -> Result; + /// Preliminary validation for a state transition + fn validate_is_allowed( + &self, + platform: &PlatformRef, + platform_version: &PlatformVersion, + ) -> Result, Error>; +} + /// A trait for validating state transitions within a blockchain. pub(crate) trait StateTransitionIdentityBasedSignatureValidationV0 { /// Validates the identity and signatures of a transaction to ensure its authenticity. @@ -790,7 +811,6 @@ impl StateTransitionIdentityBasedSignatureValidationV0 for StateTransition { match self { StateTransition::DataContractCreate(_) | StateTransition::DataContractUpdate(_) - | StateTransition::IdentityCreditWithdrawal(_) | StateTransition::IdentityCreditTransfer(_) | StateTransition::DocumentsBatch(_) => { //Basic signature verification @@ -803,6 +823,29 @@ impl StateTransitionIdentityBasedSignatureValidationV0 for StateTransition { platform_version, )?) } + StateTransition::IdentityCreditWithdrawal(credit_withdrawal) => { + let mut consensus_validation_result = self + .validate_state_transition_identity_signed( + drive, + true, + false, + tx, + execution_context, + platform_version, + )?; + + if consensus_validation_result.is_valid_with_data() { + let validation_result = credit_withdrawal + .validate_signature_purpose_matches_requirements( + consensus_validation_result.data.as_ref().unwrap(), + platform_version, + )?; + if !validation_result.is_valid() { + consensus_validation_result.add_errors(validation_result.errors); + } + } + Ok(consensus_validation_result) + } StateTransition::IdentityUpdate(_) => { //Basic signature verification Ok(self.validate_state_transition_identity_signed( @@ -971,3 +1014,34 @@ impl StateTransitionStateValidationV0 for StateTransition { } } } + +impl StateTransitionIsAllowedValidationV0 for StateTransition { + fn has_is_allowed_validation(&self, platform_version: &PlatformVersion) -> Result { + match self { + StateTransition::DocumentsBatch(st) => st.has_is_allowed_validation(platform_version), + StateTransition::DataContractCreate(_) + | StateTransition::DataContractUpdate(_) + | StateTransition::IdentityCreate(_) + | StateTransition::IdentityTopUp(_) + | StateTransition::IdentityCreditWithdrawal(_) + | StateTransition::IdentityUpdate(_) + | StateTransition::IdentityCreditTransfer(_) + | StateTransition::MasternodeVote(_) => Ok(false), + } + } + + fn validate_is_allowed( + &self, + platform: &PlatformRef, + platform_version: &PlatformVersion, + ) -> Result, Error> { + match self { + StateTransition::DocumentsBatch(st) => { + st.validate_is_allowed(platform, platform_version) + } + _ => Err(Error::Execution(ExecutionError::CorruptedCodeExecution( + "validate_is_allowed is not implemented for this state transition", + ))), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs index d74a18ba33..9cd512b6da 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/data_contract_update/mod.rs @@ -221,7 +221,6 @@ mod tests { use crate::execution::types::state_transition_execution_context::StateTransitionExecutionContext; use crate::execution::validation::state_transition::ValidationMode; use dpp::version::TryFromPlatformVersioned; - use platform_version::version::LATEST_PLATFORM_VERSION; use platform_version::{DefaultForPlatformVersion, TryIntoPlatformVersioned}; #[test] @@ -516,7 +515,7 @@ mod tests { updated_document_type.into(), true, &mut vec![], - LATEST_PLATFORM_VERSION, + platform_version, ) .expect("to be able to set document schema"); @@ -524,7 +523,7 @@ mod tests { data_contract.config_mut().set_keeps_history(false); let state_transition: DataContractUpdateTransitionV0 = (data_contract, 1) - .try_into_platform_versioned(LATEST_PLATFORM_VERSION) + .try_into_platform_versioned(platform_version) .expect("expected an update transition"); let state_transition: DataContractUpdateTransition = state_transition.into(); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/mod.rs index 54176e1dce..bff6309b3d 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/mod.rs @@ -8,10 +8,12 @@ use crate::error::Error; use crate::error::execution::ExecutionError; use crate::execution::types::state_transition_execution_context::StateTransitionExecutionContext; use crate::execution::validation::state_transition::documents_batch::action_validation::document_create_transition_action::state_v0::DocumentCreateTransitionActionStateValidationV0; +use crate::execution::validation::state_transition::documents_batch::action_validation::document_create_transition_action::state_v1::DocumentCreateTransitionActionStateValidationV1; use crate::execution::validation::state_transition::documents_batch::action_validation::document_create_transition_action::structure_v0::DocumentCreateTransitionActionStructureValidationV0; use crate::platform_types::platform::PlatformStateRef; mod state_v0; +mod state_v1; mod structure_v0; pub trait DocumentCreateTransitionActionValidation { @@ -78,9 +80,19 @@ impl DocumentCreateTransitionActionValidation for DocumentCreateTransitionAction transaction, platform_version, ), + // V1 introduces a validation that a contested document does not yet exist (and the + // cost for this operation) + 1 => self.validate_state_v1( + platform, + owner_id, + block_info, + execution_context, + transaction, + platform_version, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "DocumentCreateTransitionAction::validate_state".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v0/mod.rs index 29368d7c99..fdc1c0a2df 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v0/mod.rs @@ -129,7 +129,9 @@ impl DocumentCreateTransitionActionStateValidationV0 for DocumentCreateTransitio // We need to make sure that if there is a contest, it is in its first week // The week might be more or less, as it's a versioned parameter let time_ms_since_start = block_info.time_ms.checked_sub(start_block.time_ms).ok_or(Error::Drive(drive::error::Error::Drive(DriveError::CorruptedDriveState(format!("it makes no sense that the start block time {} is before our current block time {}", start_block.time_ms, block_info.time_ms)))))?; - let join_time_allowed = platform_version.dpp.validation.voting.allow_other_contenders_time_ms; + + let join_time_allowed = platform_version.dpp.validation.voting.allow_other_contenders_time_mainnet_ms; + if time_ms_since_start > join_time_allowed { return Ok(SimpleConsensusValidationResult::new_with_error(ConsensusError::StateError(StateError::DocumentContestNotJoinableError( DocumentContestNotJoinableError::new( diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v1/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v1/mod.rs new file mode 100644 index 0000000000..2e2908d9b5 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/action_validation/document_create_transition_action/state_v1/mod.rs @@ -0,0 +1,200 @@ +use dpp::block::block_info::BlockInfo; +use dpp::consensus::basic::document::InvalidDocumentTypeError; +use dpp::consensus::ConsensusError; +use dpp::consensus::state::document::document_already_present_error::DocumentAlreadyPresentError; +use dpp::consensus::state::document::document_contest_currently_locked_error::DocumentContestCurrentlyLockedError; +use dpp::consensus::state::document::document_contest_document_with_same_id_already_present_error::DocumentContestDocumentWithSameIdAlreadyPresentError; +use dpp::consensus::state::document::document_contest_identity_already_contestant::DocumentContestIdentityAlreadyContestantError; +use dpp::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError; +use dpp::consensus::state::state_error::StateError; +use dpp::dashcore::Network; +use dpp::data_contract::accessors::v0::DataContractV0Getters; +use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; +use dpp::prelude::{ConsensusValidationResult, Identifier}; +use dpp::validation::SimpleConsensusValidationResult; +use drive::state_transition_action::document::documents_batch::document_transition::document_base_transition_action::DocumentBaseTransitionActionAccessorsV0; +use drive::state_transition_action::document::documents_batch::document_transition::document_create_transition_action::{DocumentCreateTransitionAction, DocumentCreateTransitionActionAccessorsV0}; +use dpp::version::PlatformVersion; +use dpp::voting::vote_info_storage::contested_document_vote_poll_stored_info::{ContestedDocumentVotePollStatus, ContestedDocumentVotePollStoredInfoV0Getters}; +use drive::error::drive::DriveError; +use drive::query::TransactionArg; +use crate::error::Error; +use crate::execution::types::execution_operation::ValidationOperation; +use crate::execution::types::state_transition_execution_context::{StateTransitionExecutionContext, StateTransitionExecutionContextMethodsV0}; +use crate::execution::validation::state_transition::documents_batch::state::v0::fetch_contender::fetch_contender; +use crate::execution::validation::state_transition::documents_batch::state::v0::fetch_documents::{fetch_document_with_id, has_contested_document_with_document_id}; +use crate::platform_types::platform::PlatformStateRef; + +pub(super) trait DocumentCreateTransitionActionStateValidationV1 { + fn validate_state_v1( + &self, + platform: &PlatformStateRef, + owner_id: Identifier, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result; +} +impl DocumentCreateTransitionActionStateValidationV1 for DocumentCreateTransitionAction { + fn validate_state_v1( + &self, + platform: &PlatformStateRef, + owner_id: Identifier, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result { + let contract_fetch_info = self.base().data_contract_fetch_info(); + + let contract = &contract_fetch_info.contract; + + let document_type_name = self.base().document_type_name(); + + let Some(document_type) = contract.document_type_optional_for_name(document_type_name) + else { + return Ok(SimpleConsensusValidationResult::new_with_error( + InvalidDocumentTypeError::new(document_type_name.clone(), contract.id()).into(), + )); + }; + + // TODO: Use multi get https://github.com/facebook/rocksdb/wiki/MultiGet-Performance + // We should check to see if a document already exists in the state + let (already_existing_document, fee_result) = fetch_document_with_id( + platform.drive, + contract, + document_type, + self.base().id(), + transaction, + platform_version, + )?; + + execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); + + if already_existing_document.is_some() { + return Ok(ConsensusValidationResult::new_with_error( + ConsensusError::StateError(StateError::DocumentAlreadyPresentError( + DocumentAlreadyPresentError::new(self.base().id()), + )), + )); + } + + // we also need to validate that the new document wouldn't conflict with any other document + // this means for example having overlapping unique indexes + + if document_type.indexes().values().any(|index| index.unique) { + let validation_result = platform + .drive + .validate_document_create_transition_action_uniqueness( + contract, + document_type, + self, + owner_id, + transaction, + platform_version, + ) + .map_err(Error::Drive)?; + + if !validation_result.is_valid() { + return Ok(validation_result); + } + } + + if let Some((contested_document_resource_vote_poll, _)) = self.prefunded_voting_balance() { + // -->> Introduced in V1 <<-- + // We should check to see if a contested document already exists in the state with the same id + // This could happen if we used the same entropy for multiple different contests + let (contested_document_already_exists, fee_result) = + has_contested_document_with_document_id( + platform.drive, + contested_document_resource_vote_poll.contract.as_ref(), + contested_document_resource_vote_poll.document_type()?, + self.base().id(), + Some(&block_info.epoch), + transaction, + platform_version, + )?; + + execution_context + .add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); + + if contested_document_already_exists { + return Ok(ConsensusValidationResult::new_with_error( + ConsensusError::StateError( + StateError::DocumentContestDocumentWithSameIdAlreadyPresentError( + DocumentContestDocumentWithSameIdAlreadyPresentError::new( + self.base().id(), + ), + ), + ), + )); + } + + // -->> End Introduced in V1 <<-- + + if let Some(stored_info) = self.current_store_contest_info() { + // We have previous stored info + match stored_info.vote_poll_status() { + ContestedDocumentVotePollStatus::NotStarted => { + Ok(SimpleConsensusValidationResult::new()) + } + ContestedDocumentVotePollStatus::Awarded(_) => { + // This is weird as it should have already been found when querying the document, however it is possible + // That it was destroyed + Ok(SimpleConsensusValidationResult::new_with_error( + ConsensusError::StateError(StateError::DocumentAlreadyPresentError( + DocumentAlreadyPresentError::new(self.base().id()), + )), + )) + } + ContestedDocumentVotePollStatus::Locked => { + Ok(SimpleConsensusValidationResult::new_with_error( + ConsensusError::StateError(StateError::DocumentContestCurrentlyLockedError( + DocumentContestCurrentlyLockedError::new( + contested_document_resource_vote_poll.into(), + stored_info.clone(), + platform_version.fee_version.vote_resolution_fund_fees.contested_document_vote_resolution_unlock_fund_required_amount, + ))), + )) + } + ContestedDocumentVotePollStatus::Started(start_block) => { + // We need to make sure that if there is a contest, it is in its first week + // The week might be more or less, as it's a versioned parameter + let time_ms_since_start = block_info.time_ms.checked_sub(start_block.time_ms).ok_or(Error::Drive(drive::error::Error::Drive(DriveError::CorruptedDriveState(format!("it makes no sense that the start block time {} is before our current block time {}", start_block.time_ms, block_info.time_ms)))))?; + let join_time_allowed = match platform.config.network { + Network::Dash => platform_version.dpp.validation.voting.allow_other_contenders_time_mainnet_ms, + _ => platform_version.dpp.validation.voting.allow_other_contenders_time_testing_ms + }; + if time_ms_since_start > join_time_allowed { + return Ok(SimpleConsensusValidationResult::new_with_error(ConsensusError::StateError(StateError::DocumentContestNotJoinableError( + DocumentContestNotJoinableError::new( + contested_document_resource_vote_poll.into(), + stored_info.clone(), + start_block.time_ms, + block_info.time_ms, + join_time_allowed, + ))))) + } + + // we need to also make sure that we are not already a contestant + + let (maybe_existing_contender, fee_result) = fetch_contender(platform.drive, contested_document_resource_vote_poll, owner_id, block_info, transaction, platform_version)?; + + execution_context.add_operation(ValidationOperation::PrecalculatedOperation(fee_result)); + + if maybe_existing_contender.is_some() { + Ok(SimpleConsensusValidationResult::new_with_error(ConsensusError::StateError(StateError::DocumentContestIdentityAlreadyContestantError(DocumentContestIdentityAlreadyContestantError::new(contested_document_resource_vote_poll.into(), owner_id))))) + } else { + Ok(SimpleConsensusValidationResult::new()) + } + } + } + } else { + Ok(SimpleConsensusValidationResult::new()) + } + } else { + Ok(SimpleConsensusValidationResult::new()) + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/data_triggers/triggers/dpns/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/data_triggers/triggers/dpns/v0/mod.rs index ed384955e7..a790d727bd 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/data_triggers/triggers/dpns/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/data_triggers/triggers/dpns/v0/mod.rs @@ -413,7 +413,10 @@ pub(super) fn create_domain_data_trigger_v0( "expecting action to have a base", )))? .id(), - "preorderDocument was not found".to_string(), + format!( + "preorderDocument was not found with a salted domain hash of {}", + hex::encode(salted_domain_hash) + ), ); result.add_error(err) } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/mod.rs new file mode 100644 index 0000000000..8ff239d954 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/mod.rs @@ -0,0 +1,50 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use crate::execution::validation::state_transition::processor::v0::StateTransitionIsAllowedValidationV0; +use crate::platform_types::platform::PlatformRef; +use dpp::state_transition::documents_batch_transition::DocumentsBatchTransition; +use dpp::validation::ConsensusValidationResult; +use dpp::version::PlatformVersion; + +mod v0; + +impl StateTransitionIsAllowedValidationV0 for DocumentsBatchTransition { + fn has_is_allowed_validation(&self, platform_version: &PlatformVersion) -> Result { + match platform_version + .drive_abci + .validation_and_processing + .state_transitions + .documents_batch_state_transition + .is_allowed + { + 0 => Ok(true), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "StateTransition::has_is_allowed_validation".to_string(), + known_versions: vec![0], + received: version, + })), + } + } + + /// Disable contested document create transitions for the first 3 epochs + fn validate_is_allowed( + &self, + platform: &PlatformRef, + platform_version: &PlatformVersion, + ) -> Result, Error> { + match platform_version + .drive_abci + .validation_and_processing + .state_transitions + .documents_batch_state_transition + .is_allowed + { + 0 => Ok(v0::validate_is_allowed_v0(self, platform)), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "StateTransition::validate_is_allowed".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/v0/mod.rs new file mode 100644 index 0000000000..a98801ee70 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/is_allowed/v0/mod.rs @@ -0,0 +1,54 @@ +use crate::platform_types::platform::PlatformRef; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use dpp::block::epoch::EpochIndex; +use dpp::consensus::basic::document::ContestedDocumentsTemporarilyNotAllowedError; +use dpp::state_transition::documents_batch_transition::accessors::DocumentsBatchTransitionAccessorsV0; +use dpp::state_transition::documents_batch_transition::document_create_transition::v0::v0_methods::DocumentCreateTransitionV0Methods; +use dpp::state_transition::documents_batch_transition::DocumentsBatchTransition; +use dpp::validation::ConsensusValidationResult; + +// TARGET_EPOCH_INDEX was introduced without versioning. +// All Evonodes that have not upgraded to version 1.3 by Epoch 3 will chain stall. +// +// This value was previously 3 before version 1.3 +pub const TARGET_EPOCH_INDEX: EpochIndex = 4; + +#[inline(always)] +pub fn validate_is_allowed_v0( + state_transition: &DocumentsBatchTransition, + platform: &PlatformRef, +) -> ConsensusValidationResult<()> { + #[cfg(feature = "testing-config")] + if platform + .config + .testing_configs + .disable_contested_documents_is_allowed_validation + { + return ConsensusValidationResult::new(); + } + + let block_info = platform.state.last_block_info(); + + if block_info.epoch.index >= TARGET_EPOCH_INDEX { + return ConsensusValidationResult::new(); + } + + let is_contested = state_transition.transitions().iter().any(|transition| { + transition + .as_transition_create() + .and_then(|create| create.prefunded_voting_balance().as_ref()) + .is_some() + }); + + if is_contested { + return ConsensusValidationResult::new_with_errors(vec![ + ContestedDocumentsTemporarilyNotAllowedError::new( + block_info.epoch.index, + TARGET_EPOCH_INDEX, + ) + .into(), + ]); + } + + ConsensusValidationResult::new() +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/mod.rs index 42fa4e3644..eaa0f93bcc 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/mod.rs @@ -3,6 +3,7 @@ mod advanced_structure; mod balance; mod data_triggers; mod identity_contract_nonce; +mod is_allowed; mod state; mod transformer; @@ -260,6 +261,7 @@ mod tests { use dpp::state_transition::documents_batch_transition::DocumentsBatchTransition; use dpp::tests::json_document::json_document_to_contract; use drive::drive::document::query::QueryDocumentsOutcomeV0Methods; + use drive::drive::document::query::QueryDocumentsWithFlagsOutcomeV0Methods; use drive::query::DriveDocumentQuery; use drive::util::storage_flags::StorageFlags; use platform_version::version::PlatformVersion; @@ -296,11 +298,13 @@ mod tests { use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult::PaidConsensusError; use crate::test::helpers::fast_forward_to_block::fast_forward_to_block; + use dpp::consensus::state::state_error::StateError; #[test] fn test_document_creation() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -382,10 +386,162 @@ mod tests { .expect("expected to commit transaction"); } + #[test] + fn test_document_creation_should_fail_if_reusing_entropy() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let mut rng = StdRng::seed_from_u64(433); + + let platform_state = platform.state.load(); + + let (identity, signer, key) = setup_identity(&mut platform, 958, dash_to_credits!(0.1)); + + let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); + let dashpay_contract = dashpay.clone(); + + let profile = dashpay_contract + .document_type_for_name("profile") + .expect("expected a profile document type"); + + assert!(profile.documents_mutable()); + + let entropy = Bytes32::random_with_rng(&mut rng); + + let mut document = profile + .random_document_with_identifier_and_entropy( + &mut rng, + identity.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + document.set("avatarUrl", "http://test.com/bob.jpg".into()); + + let documents_batch_create_transition = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document, + profile, + entropy.0, + &key, + 2, + 0, + &signer, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition = documents_batch_create_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![documents_batch_create_serialized_transition.clone()], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::SuccessfulExecution(_, _)] + ); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Now let's create a second document with the same entropy + + let mut document = profile + .random_document_with_identifier_and_entropy( + &mut rng, + identity.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + document.set("avatarUrl", "http://test.com/coy.jpg".into()); + + let documents_batch_create_transition = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document, + profile, + entropy.0, + &key, + 3, + 0, + &signer, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition = documents_batch_create_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![documents_batch_create_serialized_transition.clone()], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::PaidConsensusError( + ConsensusError::StateError(StateError::DocumentAlreadyPresentError { .. }), + _ + )] + ); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + } + #[test] fn test_document_creation_with_very_big_field() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -500,6 +656,7 @@ mod tests { fn test_document_creation_on_contested_unique_index() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -662,7 +819,530 @@ mod tests { domain, entropy.0, &key_1, - 3, + 3, + 0, + &signer_1, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition_1 = + documents_batch_create_transition_1 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let documents_batch_create_transition_2 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document_2, + domain, + entropy.0, + &key_2, + 3, + 0, + &signer_2, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition_2 = + documents_batch_create_transition_2 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![ + documents_batch_create_serialized_preorder_transition_1.clone(), + documents_batch_create_serialized_preorder_transition_2.clone(), + ], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + assert_eq!(processing_result.valid_count(), 2); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![ + documents_batch_create_serialized_transition_1.clone(), + documents_batch_create_serialized_transition_2.clone(), + ], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + assert_eq!(processing_result.valid_count(), 2); + + // Now let's run a query for the vote totals + + let config = bincode::config::standard() + .with_big_endian() + .with_no_limit(); + + let dash_encoded = bincode::encode_to_vec(Value::Text("dash".to_string()), config) + .expect("expected to encode the word dash"); + + let quantum_encoded = + bincode::encode_to_vec(Value::Text("quantum".to_string()), config) + .expect("expected to encode the word quantum"); + + let index_name = "parentNameAndLabel".to_string(); + + let query_validation_result = platform + .query_contested_resource_vote_state( + GetContestedResourceVoteStateRequest { + version: Some(get_contested_resource_vote_state_request::Version::V0( + GetContestedResourceVoteStateRequestV0 { + contract_id: dpns_contract.id().to_vec(), + document_type_name: domain.name().clone(), + index_name: index_name.clone(), + index_values: vec![dash_encoded.clone(), quantum_encoded.clone()], + result_type: ResultType::DocumentsAndVoteTally as i32, + allow_include_locked_and_abstaining_vote_tally: false, + start_at_identifier_info: None, + count: None, + prove: false, + }, + )), + }, + &platform_state, + platform_version, + ) + .expect("expected to execute query") + .into_data() + .expect("expected query to be valid"); + + let get_contested_resource_vote_state_response::Version::V0( + GetContestedResourceVoteStateResponseV0 { + metadata: _, + result, + }, + ) = query_validation_result.version.expect("expected a version"); + + let Some( + get_contested_resource_vote_state_response_v0::Result::ContestedResourceContenders( + get_contested_resource_vote_state_response_v0::ContestedResourceContenders { + contenders, + abstain_vote_tally, + lock_vote_tally, + finished_vote_info, + }, + ), + ) = result + else { + panic!("expected contenders") + }; + + assert_eq!(abstain_vote_tally, None); + + assert_eq!(lock_vote_tally, None); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + let first_contender_document = Document::from_bytes( + first_contender + .document + .as_ref() + .expect("expected a document") + .as_slice(), + domain, + platform_version, + ) + .expect("expected to get document"); + + let second_contender_document = Document::from_bytes( + second_contender + .document + .as_ref() + .expect("expected a document") + .as_slice(), + domain, + platform_version, + ) + .expect("expected to get document"); + + assert_ne!(first_contender_document, second_contender_document); + + assert_eq!(first_contender.identifier, identity_1.id().to_vec()); + + assert_eq!(second_contender.identifier, identity_2.id().to_vec()); + + assert_eq!(first_contender.vote_count, Some(0)); + + assert_eq!(second_contender.vote_count, Some(0)); + + let GetContestedResourceVoteStateResponse { version } = platform + .query_contested_resource_vote_state( + GetContestedResourceVoteStateRequest { + version: Some(get_contested_resource_vote_state_request::Version::V0( + GetContestedResourceVoteStateRequestV0 { + contract_id: dpns_contract.id().to_vec(), + document_type_name: domain.name().clone(), + index_name: "parentNameAndLabel".to_string(), + index_values: vec![dash_encoded, quantum_encoded], + result_type: ResultType::DocumentsAndVoteTally as i32, + allow_include_locked_and_abstaining_vote_tally: true, + start_at_identifier_info: None, + count: None, + prove: true, + }, + )), + }, + &platform_state, + platform_version, + ) + .expect("expected to execute query") + .into_data() + .expect("expected query to be valid"); + + let get_contested_resource_vote_state_response::Version::V0( + GetContestedResourceVoteStateResponseV0 { + metadata: _, + result, + }, + ) = version.expect("expected a version"); + + let Some(get_contested_resource_vote_state_response_v0::Result::Proof(proof)) = result + else { + panic!("expected contenders") + }; + + let resolved_contested_document_vote_poll_drive_query = + ResolvedContestedDocumentVotePollDriveQuery { + vote_poll: ContestedDocumentResourceVotePollWithContractInfoAllowBorrowed { + contract: DataContractResolvedInfo::BorrowedDataContract(&dpns_contract), + document_type_name: domain.name().clone(), + index_name: index_name.clone(), + index_values: vec![ + Value::Text("dash".to_string()), + Value::Text("quantum".to_string()), + ], + }, + result_type: DocumentsAndVoteTally, + offset: None, + limit: None, + start_at: None, + allow_include_locked_and_abstaining_vote_tally: true, + }; + + let (_root_hash, result) = resolved_contested_document_vote_poll_drive_query + .verify_vote_poll_vote_state_proof(proof.grovedb_proof.as_ref(), platform_version) + .expect("expected to verify proof"); + + let contenders = result.contenders; + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + let first_contender_document = Document::from_bytes( + first_contender + .serialized_document() + .as_ref() + .expect("expected a document") + .as_slice(), + domain, + platform_version, + ) + .expect("expected to get document"); + + let second_contender_document = Document::from_bytes( + second_contender + .serialized_document() + .as_ref() + .expect("expected a document") + .as_slice(), + domain, + platform_version, + ) + .expect("expected to get document"); + + assert_ne!(first_contender_document, second_contender_document); + + assert_eq!(first_contender.identity_id(), identity_1.id()); + + assert_eq!(second_contender.identity_id(), identity_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + } + + #[test] + fn test_document_creation_on_contested_unique_index_should_fail_if_reusing_entropy() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let mut rng = StdRng::seed_from_u64(433); + + let platform_state = platform.state.load(); + + let (identity_1, signer_1, key_1) = + setup_identity(&mut platform, 958, dash_to_credits!(0.5)); + + let (identity_2, signer_2, key_2) = + setup_identity(&mut platform, 93, dash_to_credits!(0.5)); + + let dpns = platform.drive.cache.system_data_contracts.load_dpns(); + let dpns_contract = dpns.clone(); + + let preorder = dpns_contract + .document_type_for_name("preorder") + .expect("expected a profile document type"); + + assert!(!preorder.documents_mutable()); + assert!(preorder.documents_can_be_deleted()); + assert!(!preorder.documents_transferable().is_transferable()); + + let domain = dpns_contract + .document_type_for_name("domain") + .expect("expected a profile document type"); + + assert!(!domain.documents_mutable()); + // Deletion is disabled with data trigger + assert!(domain.documents_can_be_deleted()); + assert!(domain.documents_transferable().is_transferable()); + + let entropy = Bytes32::random_with_rng(&mut rng); + + let mut preorder_document_1 = preorder + .random_document_with_identifier_and_entropy( + &mut rng, + identity_1.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + let mut preorder_document_2 = preorder + .random_document_with_identifier_and_entropy( + &mut rng, + identity_2.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + let new_entropy = Bytes32::random_with_rng(&mut rng); + + let mut preorder_document_3_on_identity_1 = preorder + .random_document_with_identifier_and_entropy( + &mut rng, + identity_1.id(), + new_entropy, //change entropy here + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + let mut document_1 = domain + .random_document_with_identifier_and_entropy( + &mut rng, + identity_1.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + let mut document_2 = domain + .random_document_with_identifier_and_entropy( + &mut rng, + identity_2.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + let mut document_3_on_identity_1 = domain + .random_document_with_identifier_and_entropy( + &mut rng, + identity_1.id(), + entropy, //same entropy + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + document_1.set("parentDomainName", "dash".into()); + document_1.set("normalizedParentDomainName", "dash".into()); + document_1.set("label", "quantum".into()); + document_1.set("normalizedLabel", "quantum".into()); + document_1.set("records.identity", document_1.owner_id().into()); + document_1.set("subdomainRules.allowSubdomains", false.into()); + + document_2.set("parentDomainName", "dash".into()); + document_2.set("normalizedParentDomainName", "dash".into()); + document_2.set("label", "quantum".into()); + document_2.set("normalizedLabel", "quantum".into()); + document_2.set("records.identity", document_2.owner_id().into()); + document_2.set("subdomainRules.allowSubdomains", false.into()); + + document_3_on_identity_1.set("parentDomainName", "dash".into()); + document_3_on_identity_1.set("normalizedParentDomainName", "dash".into()); + document_3_on_identity_1.set("label", "cry".into()); + document_3_on_identity_1.set("normalizedLabel", "cry".into()); + document_3_on_identity_1.set( + "records.identity", + document_3_on_identity_1.owner_id().into(), + ); + document_3_on_identity_1.set("subdomainRules.allowSubdomains", false.into()); + + let salt_1: [u8; 32] = rng.gen(); + let salt_2: [u8; 32] = rng.gen(); + let salt_3: [u8; 32] = rng.gen(); + + let mut salted_domain_buffer_1: Vec = vec![]; + salted_domain_buffer_1.extend(salt_1); + salted_domain_buffer_1.extend("quantum.dash".as_bytes()); + + let salted_domain_hash_1 = hash_double(salted_domain_buffer_1); + + let mut salted_domain_buffer_2: Vec = vec![]; + salted_domain_buffer_2.extend(salt_2); + salted_domain_buffer_2.extend("quantum.dash".as_bytes()); + + let salted_domain_hash_2 = hash_double(salted_domain_buffer_2); + + let mut salted_domain_buffer_3: Vec = vec![]; + salted_domain_buffer_3.extend(salt_3); + salted_domain_buffer_3.extend("cry.dash".as_bytes()); + + let salted_domain_hash_3 = hash_double(salted_domain_buffer_3); + + preorder_document_1.set("saltedDomainHash", salted_domain_hash_1.into()); + preorder_document_2.set("saltedDomainHash", salted_domain_hash_2.into()); + preorder_document_3_on_identity_1.set("saltedDomainHash", salted_domain_hash_3.into()); + + document_1.set("preorderSalt", salt_1.into()); + document_2.set("preorderSalt", salt_2.into()); + document_3_on_identity_1.set("preorderSalt", salt_3.into()); + + let documents_batch_create_preorder_transition_1 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + preorder_document_1, + preorder, + entropy.0, + &key_1, + 2, + 0, + &signer_1, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_preorder_transition_1 = + documents_batch_create_preorder_transition_1 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let documents_batch_create_preorder_transition_2 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + preorder_document_2, + preorder, + entropy.0, + &key_2, + 2, + 0, + &signer_2, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_preorder_transition_2 = + documents_batch_create_preorder_transition_2 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let documents_batch_create_preorder_transition_3 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + preorder_document_3_on_identity_1, + preorder, + new_entropy.0, + &key_1, + 3, + 0, + &signer_1, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_preorder_transition_3 = + documents_batch_create_preorder_transition_3 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let documents_batch_create_transition_1 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document_1, + domain, + entropy.0, + &key_1, + 4, 0, &signer_1, platform_version, @@ -698,6 +1378,27 @@ mod tests { .serialize_to_bytes() .expect("expected documents batch serialized state transition"); + let documents_batch_create_transition_3 = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document_3_on_identity_1, + domain, + entropy.0, + &key_1, + 5, + 0, + &signer_1, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition_3 = + documents_batch_create_transition_3 + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + let transaction = platform.drive.grove.start_transaction(); let processing_result = platform @@ -706,6 +1407,7 @@ mod tests { &vec![ documents_batch_create_serialized_preorder_transition_1.clone(), documents_batch_create_serialized_preorder_transition_2.clone(), + documents_batch_create_serialized_preorder_transition_3.clone(), ], &platform_state, &BlockInfo::default(), @@ -723,7 +1425,7 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - assert_eq!(processing_result.valid_count(), 2); + assert_eq!(processing_result.valid_count(), 3); let transaction = platform.drive.grove.start_transaction(); @@ -752,6 +1454,38 @@ mod tests { assert_eq!(processing_result.valid_count(), 2); + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![documents_batch_create_serialized_transition_3.clone()], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::PaidConsensusError( + ConsensusError::StateError( + StateError::DocumentContestDocumentWithSameIdAlreadyPresentError { .. } + ), + _ + )] + ); + // Now let's run a query for the vote totals let config = bincode::config::standard() @@ -958,6 +1692,7 @@ mod tests { fn test_that_a_contested_document_can_not_be_added_to_after_a_week() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -982,10 +1717,17 @@ mod tests { ], "quantum", 10, + None, platform_version, ); - fast_forward_to_block(&platform, 500_000_000, 900, 42, 0, false); //less than a week + let max_join_time = platform_version + .dpp + .validation + .voting + .allow_other_contenders_time_testing_ms; + + fast_forward_to_block(&platform, max_join_time / 2, 900, 42, 0, false); let platform_state = platform.state.load(); @@ -998,26 +1740,46 @@ mod tests { platform_version, ); - fast_forward_to_block(&platform, 1_000_000_000, 900, 42, 0, false); //more than a week, less than 2 weeks + let time_now = platform_version + .dpp + .validation + .voting + .allow_other_contenders_time_testing_ms + + 100; + + fast_forward_to_block(&platform, time_now, 900, 42, 0, false); //more than a week, less than 2 weeks let platform_state = platform.state.load(); // We expect this to fail + let time_started = 0; + + let extra_time_used = 3000; // add_contender_to_dpns_name_contest uses this extra time + + let expected_error_message = format!( + "Document Contest for vote_poll ContestedDocumentResourceVotePoll {{ contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }} is not joinable V0(ContestedDocumentVotePollStoredInfoV0 {{ finalized_events: [], vote_poll_status: Started(BlockInfo {{ time_ms: {}, height: 0, core_height: 0, epoch: 0 }}), locked_count: 0 }}), it started {} and it is now {}, and you can only join for {}", + time_started + extra_time_used, + time_started + extra_time_used, + time_now + extra_time_used, + max_join_time + ); + let _contender_4 = add_contender_to_dpns_name_contest( &mut platform, &platform_state, 9, "quantum", - Some("Document Contest for vote_poll ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] } is not joinable V0(ContestedDocumentVotePollStoredInfoV0 { finalized_events: [], vote_poll_status: Started(BlockInfo { time_ms: 3000, height: 0, core_height: 0, epoch: 0 }), locked_count: 0 }), it started 3000 and it is now 1000003000, and you can only join for 604800000"), // this should fail, as we are over a week + Some(expected_error_message.as_str()), // this should fail, as we are over a week platform_version, ); } #[test] - fn test_that_a_contested_document_can_not_be_added_twice_by_the_same_identity() { + fn test_that_a_contest_can_not_be_joined_twice_by_the_same_identity() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1029,7 +1791,7 @@ mod tests { contender_1_signer, contender_1_key, _preorder_document_1, - (document_1, entropy), + (mut document_1, _entropy), ), (_contender_2, _, _, _, _), dpns_contract, @@ -1045,11 +1807,22 @@ mod tests { .document_type_for_name("domain") .expect("expected a profile document type"); + let mut rng = StdRng::seed_from_u64(89); + + let different_entropy = Bytes32::random_with_rng(&mut rng); + + document_1.set_id(Document::generate_document_id_v0( + dpns_contract.id_ref(), + document_1.owner_id_ref(), + domain.name(), + different_entropy.as_slice(), + )); + let documents_batch_create_transition_1 = DocumentsBatchTransition::new_document_creation_transition_from_document( document_1, domain, - entropy.0, + different_entropy.0, &contender_1_key, 4, 0, @@ -1106,6 +1879,7 @@ mod tests { fn test_that_a_contested_document_can_not_be_added_if_we_are_locked() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1130,10 +1904,23 @@ mod tests { ], "quantum", 10, + None, platform_version, ); - fast_forward_to_block(&platform, 200_000_000, 900, 42, 0, false); //less than a week + fast_forward_to_block( + &platform, + platform_version + .dpp + .validation + .voting + .allow_other_contenders_time_testing_ms + / 2, + 900, + 42, + 0, + false, + ); // a time when others can join let platform_state = platform.state.load(); @@ -1142,11 +1929,17 @@ mod tests { &platform_state, 4, "quantum", - None, // this should succeed, as we are under a week + None, // this should succeed, as we are under the `platform_version.dpp.validation.voting.allow_other_contenders_time_testing_ms` platform_version, ); - fast_forward_to_block(&platform, 2_000_000_000, 900, 42, 0, false); //more than two weeks + let time_after_distribution_limit = platform_version + .dpp + .voting_versions + .default_vote_poll_time_duration_test_network_ms + + 10_000; // add 10s (3 seconds is used by create_dpns_identity_name_contest) + + fast_forward_to_block(&platform, time_after_distribution_limit, 900, 42, 0, false); // after distribution let platform_state = platform.state.load(); @@ -1154,9 +1947,10 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &BlockInfo { - time_ms: 2_000_000_000, + time_ms: time_after_distribution_limit, height: 900, core_height: 42, epoch: Default::default(), @@ -1177,12 +1971,17 @@ mod tests { // We expect this to fail + let expected_error_message = format!( + "Document Contest for vote_poll ContestedDocumentResourceVotePoll {{ contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }} is currently already locked V0(ContestedDocumentVotePollStoredInfoV0 {{ finalized_events: [ContestedDocumentVotePollStoredInfoVoteEventV0 {{ resource_vote_choices: [FinalizedResourceVoteChoicesWithVoterInfo {{ resource_vote_choice: TowardsIdentity(BjNejy4r9QAvLHpQ9Yq6yRMgNymeGZ46d48fJxJbMrfW), voters: [2oGomAQc47V9h3mkpyHUPbF74gT2AmoYKg1oSb94Rbwm:1, 4iroeiNBeBYZetCt21kW7FGyczE8WqoqzZ48YAHwyV7R:1, Cdf8V4KGHHd395x5xPJPPrzTKwmp5MqbuszSE2iMzzeP:1] }}, FinalizedResourceVoteChoicesWithVoterInfo {{ resource_vote_choice: TowardsIdentity(FiLk5pGtspYtF65PKsQq3YFr1DEiXPHTZeKjusT6DuqN), voters: [] }}, FinalizedResourceVoteChoicesWithVoterInfo {{ resource_vote_choice: TowardsIdentity(Fv8S6kTbNrRqKC7PR7XcRUoPR59bxNhhggg5mRaNN6ow), voters: [4MK8GWEWX1PturUqjZJefdE4WGrUqz1UQZnbK17ENkeA:1, 5gRudU7b4n8LYkNvhZomv6FtMrP7gvaTvRrHKfaTS22K:1, AfzQBrdwzDuTVdXrMWqQyVvXRWqPMDVjA76hViuGLh6W:1, E75wdFZB22P1uW1wJBJGPgXZuZKLotK7YmbH5wUk5msH:1, G3ZfS2v39x6FuLGnnJ1RNQyy4zn4Wb64KiGAjqj39wUu:1] }}, FinalizedResourceVoteChoicesWithVoterInfo {{ resource_vote_choice: Abstain, voters: [5Ur8tDxJnatfUd9gcVFDde7ptHydujZzJLNTxa6aMYYy:1, 93Gsg14oT9K4FLYmC7N26uS4g5b7JcM1GwGEDeJCCBPJ:1, 96eX4PTjbXRuGHuMzwXdptWFtHcboXbtevk51Jd73pP7:1, AE9xm2mbemDeMxPUzyt35Agq1axRxggVfV4DRLAZp7Qt:1, FbLyu5d7JxEsvSsujj7Wopg57Wrvz9HH3UULCusKpBnF:1, GsubMWb3LH1skUJrcxTmZ7wus1habJcbpb8su8yBVqFY:1, H9UrL7aWaxDmXhqeGMJy7LrGdT2wWb45mc7kQYsoqwuf:1, Hv88mzPZVKq2fnjoUqK56vjzkcmqRHpWE1ME4z1MXDrw:1] }}, FinalizedResourceVoteChoicesWithVoterInfo {{ resource_vote_choice: Lock, voters: [F1oA8iAoyJ8dgCAi2GSPqcNhp9xEuAqhP47yXBDw5QR:1, 2YSjsJUp74MJpm12rdn8wyPR5MY3c322pV8E8siw989u:1, 3fQrmN4PWhthUFnCFTaJqbT2PPGf7MytAyik4eY1DP8V:1, 7r7gnAiZunVLjtSd5ky4yvPpnWTFYbJuQAapg8kDCeNK:1, 86TUE89xNkBDcmshXRD198xjAvMmKecvHbwo6i83AmqA:1, 97iYr4cirPdG176kqa5nvJWT9tsnqxHmENfRnZUgM6SC:1, 99nKfYZL4spsTe9p9pPNhc1JWv9yq4CbPPMPm87a5sgn:1, BYAqFxCVwMKrw5YAQMCFQGiAF2v3YhKRm2EdGfgkYN9G:1, CGKeK3AfdZUxXF3qH9zxp5MR7Z4WvDVqMrU5wjMKqT5C:1, HRPPEX4mdoZAMkg6NLJUgDzN4pSTpiDXEAGcR5JBdiXX:1] }}], start_block: BlockInfo {{ time_ms: 3000, height: 0, core_height: 0, epoch: 0 }}, finalization_block: BlockInfo {{ time_ms: {}, height: 900, core_height: 42, epoch: 0 }}, winner: Locked }}], vote_poll_status: Locked, locked_count: 1 }}), unlocking is possible by paying 400000000000 credits", + time_after_distribution_limit + ); + let _contender_4 = add_contender_to_dpns_name_contest( &mut platform, &platform_state, 9, "quantum", - Some("Document Contest for vote_poll ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] } is currently already locked V0(ContestedDocumentVotePollStoredInfoV0 { finalized_events: [ContestedDocumentVotePollStoredInfoVoteEventV0 { resource_vote_choices: [FinalizedResourceVoteChoicesWithVoterInfo { resource_vote_choice: TowardsIdentity(BjNejy4r9QAvLHpQ9Yq6yRMgNymeGZ46d48fJxJbMrfW), voters: [2oGomAQc47V9h3mkpyHUPbF74gT2AmoYKg1oSb94Rbwm:1, 4iroeiNBeBYZetCt21kW7FGyczE8WqoqzZ48YAHwyV7R:1, Cdf8V4KGHHd395x5xPJPPrzTKwmp5MqbuszSE2iMzzeP:1] }, FinalizedResourceVoteChoicesWithVoterInfo { resource_vote_choice: TowardsIdentity(FiLk5pGtspYtF65PKsQq3YFr1DEiXPHTZeKjusT6DuqN), voters: [] }, FinalizedResourceVoteChoicesWithVoterInfo { resource_vote_choice: TowardsIdentity(Fv8S6kTbNrRqKC7PR7XcRUoPR59bxNhhggg5mRaNN6ow), voters: [4MK8GWEWX1PturUqjZJefdE4WGrUqz1UQZnbK17ENkeA:1, 5gRudU7b4n8LYkNvhZomv6FtMrP7gvaTvRrHKfaTS22K:1, AfzQBrdwzDuTVdXrMWqQyVvXRWqPMDVjA76hViuGLh6W:1, E75wdFZB22P1uW1wJBJGPgXZuZKLotK7YmbH5wUk5msH:1, G3ZfS2v39x6FuLGnnJ1RNQyy4zn4Wb64KiGAjqj39wUu:1] }, FinalizedResourceVoteChoicesWithVoterInfo { resource_vote_choice: Abstain, voters: [5Ur8tDxJnatfUd9gcVFDde7ptHydujZzJLNTxa6aMYYy:1, 93Gsg14oT9K4FLYmC7N26uS4g5b7JcM1GwGEDeJCCBPJ:1, 96eX4PTjbXRuGHuMzwXdptWFtHcboXbtevk51Jd73pP7:1, AE9xm2mbemDeMxPUzyt35Agq1axRxggVfV4DRLAZp7Qt:1, FbLyu5d7JxEsvSsujj7Wopg57Wrvz9HH3UULCusKpBnF:1, GsubMWb3LH1skUJrcxTmZ7wus1habJcbpb8su8yBVqFY:1, H9UrL7aWaxDmXhqeGMJy7LrGdT2wWb45mc7kQYsoqwuf:1, Hv88mzPZVKq2fnjoUqK56vjzkcmqRHpWE1ME4z1MXDrw:1] }, FinalizedResourceVoteChoicesWithVoterInfo { resource_vote_choice: Lock, voters: [F1oA8iAoyJ8dgCAi2GSPqcNhp9xEuAqhP47yXBDw5QR:1, 2YSjsJUp74MJpm12rdn8wyPR5MY3c322pV8E8siw989u:1, 3fQrmN4PWhthUFnCFTaJqbT2PPGf7MytAyik4eY1DP8V:1, 7r7gnAiZunVLjtSd5ky4yvPpnWTFYbJuQAapg8kDCeNK:1, 86TUE89xNkBDcmshXRD198xjAvMmKecvHbwo6i83AmqA:1, 97iYr4cirPdG176kqa5nvJWT9tsnqxHmENfRnZUgM6SC:1, 99nKfYZL4spsTe9p9pPNhc1JWv9yq4CbPPMPm87a5sgn:1, BYAqFxCVwMKrw5YAQMCFQGiAF2v3YhKRm2EdGfgkYN9G:1, CGKeK3AfdZUxXF3qH9zxp5MR7Z4WvDVqMrU5wjMKqT5C:1, HRPPEX4mdoZAMkg6NLJUgDzN4pSTpiDXEAGcR5JBdiXX:1] }], start_block: BlockInfo { time_ms: 3000, height: 0, core_height: 0, epoch: 0 }, finalization_block: BlockInfo { time_ms: 2000000000, height: 900, core_height: 42, epoch: 0 }, winner: Locked }], vote_poll_status: Locked, locked_count: 1 }), unlocking is possible by paying 400000000000 credits"), // this should fail, as it is locked + Some(expected_error_message.as_str()), // this should fail, as it is locked platform_version, ); } @@ -1191,6 +1990,7 @@ mod tests { fn test_document_creation_on_restricted_document_type_that_only_allows_contract_owner_to_create( ) { let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_initial_state_structure(); @@ -1372,11 +2172,15 @@ mod tests { mod replacement_tests { use super::*; use crate::test::helpers::fast_forward_to_block::fast_forward_to_block; + use dpp::identifier::Identifier; + use dpp::prelude::IdentityNonce; + use std::collections::BTreeMap; #[test] fn test_document_replace_on_document_type_that_is_mutable() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1529,10 +2333,348 @@ mod tests { ); } + fn perform_document_replace_on_profile_after_epoch_change( + original_name: &str, + new_names: Vec<(&str, StorageFlags)>, + ) { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let mut rng = StdRng::seed_from_u64(433); + + let platform_state = platform.state.load(); + + let (identity, signer, key) = setup_identity(&mut platform, 958, dash_to_credits!(0.1)); + + let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); + let dashpay_contract = dashpay.clone(); + + let profile = dashpay_contract + .document_type_for_name("profile") + .expect("expected a profile document type"); + + assert!(profile.documents_mutable()); + + let entropy = Bytes32::random_with_rng(&mut rng); + + let mut document = profile + .random_document_with_identifier_and_entropy( + &mut rng, + identity.id(), + entropy, + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + platform_version, + ) + .expect("expected a random document"); + + document.set("displayName", original_name.into()); + document.set("avatarUrl", "http://test.com/bob.jpg".into()); + + let documents_batch_create_transition = + DocumentsBatchTransition::new_document_creation_transition_from_document( + document.clone(), + profile, + entropy.0, + &key, + 2, + 0, + &signer, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_create_serialized_transition = documents_batch_create_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![documents_batch_create_serialized_transition.clone()], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_eq!(processing_result.valid_count(), 1); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + for (i, (new_name, mut expected_flags)) in new_names.into_iter().enumerate() { + document.increment_revision().unwrap(); + document.set("displayName", new_name.into()); + + fast_forward_to_block( + &platform, + 500_000_000 + i as u64 * 1000, + 900 + i as u64, + 42, + 1 + i as u16, + true, + ); //less than a week + + let documents_batch_update_transition = + DocumentsBatchTransition::new_document_replacement_transition_from_document( + document.clone(), + profile, + &key, + 3 + i as IdentityNonce, + 0, + &signer, + platform_version, + None, + None, + None, + ) + .expect("expect to create documents batch transition"); + + let documents_batch_update_serialized_transition = + documents_batch_update_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let platform_state = platform.state.load(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![documents_batch_update_serialized_transition.clone()], + &platform_state, + platform_state.last_block_info(), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + assert_eq!(processing_result.invalid_paid_count(), 0); + + assert_eq!(processing_result.invalid_unpaid_count(), 0); + + assert_eq!( + processing_result.valid_count(), + 1, + "{:?}", + processing_result.execution_results() + ); + + let drive_query = DriveDocumentQuery::new_primary_key_single_item_query( + &dashpay, + profile, + document.id(), + ); + + let mut documents = platform + .drive + .query_documents_with_flags(drive_query, None, false, None, None) + .expect("expected to get back documents") + .documents_owned(); + + let (_first_document, storage_flags) = documents.remove(0); + + let storage_flags = storage_flags.expect("expected storage flags"); + + expected_flags.set_owner_id(identity.id().to_buffer()); + + assert_eq!(storage_flags, expected_flags); + } + + let issues = platform + .drive + .grove + .visualize_verify_grovedb(None, true, false, &platform_version.drive.grove_version) + .expect("expected to have no issues"); + + assert_eq!( + issues.len(), + 0, + "issues are {}", + issues + .iter() + .map(|(hash, (a, b, c))| format!("{}: {} {} {}", hash, a, b, c)) + .collect::>() + .join(" | ") + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_bigger_size() { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![( + "Samuel", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6)]), + Identifier::default().to_buffer(), + ), + )], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_smaller_size() { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![( + "S", + StorageFlags::SingleEpochOwned(0, Identifier::default().to_buffer()), + )], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_same_size() { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![( + "Max", + StorageFlags::SingleEpochOwned(0, Identifier::default().to_buffer()), + )], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_bigger_size_then_bigger_size( + ) { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![ + ( + "Samuel", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6)]), + Identifier::default().to_buffer(), + ), + ), + ( + "SamuelW", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6), (2, 4)]), + Identifier::default().to_buffer(), + ), + ), + ], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_bigger_size_then_bigger_size_by_3_bytes( + ) { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![ + ( + "Samuel", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6)]), + Identifier::default().to_buffer(), + ), + ), + ( + "SamuelWes", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6), (2, 6)]), + Identifier::default().to_buffer(), + ), + ), + ], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_bigger_size_then_smaller_size( + ) { + // In this case we start with the size Samuell Base epoch 0 epoch 1 added 7 bytes + // Then we try to update it to Sami Base epoch 2 + // Epoch 1 added 7 bytes is itself 3 bytes + // Sami is 3 bytes less than Samuell + // First iteration will say we should remove 6 bytes + // We need to start by calculating the cost of the original storage flags, in this case 5 bytes + // Then we need to calculate the cost of the new storage flags, in this case 2 bytes + // We should do the difference, then apply that difference in the combination function + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![ + ( + "Samuell", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 7)]), + Identifier::default().to_buffer(), + ), + ), + ( + "Sami", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 4)]), + Identifier::default().to_buffer(), + ), + ), + ], + ); + } + + #[test] + fn test_document_replace_on_document_type_that_is_mutable_different_epoch_bigger_size_then_back_to_original( + ) { + perform_document_replace_on_profile_after_epoch_change( + "Sam", + vec![ + ( + "Samuel", + StorageFlags::MultiEpochOwned( + 0, + BTreeMap::from([(1, 6)]), + Identifier::default().to_buffer(), + ), + ), + ( + "Sam", + StorageFlags::SingleEpochOwned(0, Identifier::default().to_buffer()), + ), + ], + ); + } + #[test] fn test_document_replace_on_document_type_that_is_not_mutable() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1875,6 +3017,7 @@ mod tests { fn test_document_replace_that_does_not_yet_exist() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1966,6 +3109,7 @@ mod tests { fn test_double_document_replace() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2183,6 +3327,7 @@ mod tests { fn test_double_document_replace_different_height_same_epoch() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2445,6 +3590,7 @@ mod tests { fn test_double_document_replace_no_change_different_height_same_epoch() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2703,6 +3849,7 @@ mod tests { fn test_double_document_replace_different_height_different_epoch() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2969,6 +4116,7 @@ mod tests { fn test_document_delete_on_document_type_that_is_mutable_and_can_be_deleted() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3472,6 +4620,7 @@ mod tests { fn test_document_delete_on_document_type_that_is_not_mutable_and_can_not_be_deleted() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3619,6 +4768,7 @@ mod tests { fn test_document_delete_that_does_not_yet_exist() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -6659,6 +7809,7 @@ mod tests { fn test_dpns_contract_references_with_no_contested_unique_index() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -7107,6 +8258,7 @@ mod tests { fn test_dpns_contract_references_with_no_contested_unique_index_null_searchable_true() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/state/v0/fetch_documents.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/state/v0/fetch_documents.rs index d569e680a2..8db9245d3f 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/state/v0/fetch_documents.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/documents_batch/state/v0/fetch_documents.rs @@ -1,11 +1,11 @@ -use std::collections::btree_map::Entry; -use std::collections::BTreeMap; - use crate::error::Error; use crate::platform_types::platform::PlatformStateRef; +use dpp::block::epoch::Epoch; use dpp::consensus::basic::document::{DataContractNotPresentError, InvalidDocumentTypeError}; use dpp::consensus::basic::BasicError; use dpp::data_contract::accessors::v0::DataContractV0Getters; +use std::collections::btree_map::Entry; +use std::collections::BTreeMap; use dpp::data_contract::document_type::DocumentTypeRef; use dpp::data_contract::DataContract; @@ -20,9 +20,13 @@ use dpp::state_transition::documents_batch_transition::document_transition::{ }; use dpp::validation::ConsensusValidationResult; use dpp::version::PlatformVersion; +use drive::drive::document::query::query_contested_documents_storage::QueryContestedDocumentsOutcomeV0Methods; use drive::drive::document::query::QueryDocumentsOutcomeV0Methods; use drive::drive::Drive; use drive::grovedb::TransactionArg; +use drive::query::drive_contested_document_query::{ + DriveContestedDocumentQuery, PrimaryContestedInternalClauses, +}; use drive::query::{DriveDocumentQuery, InternalClauses, WhereClause, WhereOperator}; #[allow(dead_code)] @@ -226,3 +230,45 @@ pub(crate) fn fetch_document_with_id( Ok((Some(documents.remove(0)), fee_result)) } } + +pub(crate) fn has_contested_document_with_document_id<'a>( + drive: &Drive, + contract: &'a DataContract, + document_type: DocumentTypeRef<'a>, + document_id: Identifier, + epoch: Option<&Epoch>, + transaction: TransactionArg, + platform_version: &PlatformVersion, +) -> Result<(bool, FeeResult), Error> { + let drive_query = DriveContestedDocumentQuery { + contract, + document_type, + internal_clauses: PrimaryContestedInternalClauses { + primary_key_in_clause: None, + primary_key_equal_clause: Some(document_id), + }, + }; + + let documents_outcome = drive.query_contested_documents( + drive_query, + epoch, + false, + transaction, + Some(platform_version.protocol_version), + )?; + + let fee = documents_outcome.cost(); + let fee_result = FeeResult { + storage_fee: 0, + processing_fee: fee, + fee_refunds: Default::default(), + removed_bytes_from_system: 0, + }; + let documents = documents_outcome.documents_owned(); + + if documents.is_empty() { + Ok((false, fee_result)) + } else { + Ok((true, fee_result)) + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/balance/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/balance/v0/mod.rs index 0c1b879b0f..0843ed7ec1 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/balance/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/balance/v0/mod.rs @@ -30,7 +30,11 @@ impl IdentityCreditTransferTransitionBalanceValidationV0 for IdentityCreditWithd "expected to have a balance on identity for credit withdrawal transition", )))?; - if balance < self.amount().checked_add(platform_version.fee_version.state_transition_min_fees.credit_withdrawal).ok_or(Error::Execution(ExecutionError::Overflow("overflow when adding amount and min_leftover_credits_before_processing in identity credit withdrawal")))? { + let amount_and_fees = self.amount() + .checked_add(platform_version.fee_version.state_transition_min_fees.credit_withdrawal) + .ok_or_else(|| Error::Execution(ExecutionError::Overflow("overflow when adding amount and min_leftover_credits_before_processing in identity credit withdrawal")))?; + + if balance < amount_and_fees { return Ok(SimpleConsensusValidationResult::new_with_error( IdentityInsufficientBalanceError::new(self.identity_id(), balance, self.amount()) .into(), @@ -40,3 +44,96 @@ impl IdentityCreditTransferTransitionBalanceValidationV0 for IdentityCreditWithd Ok(SimpleConsensusValidationResult::new()) } } + +#[cfg(test)] +mod tests { + use super::*; + + use assert_matches::assert_matches; + use dpp::consensus::state::state_error::StateError; + use dpp::consensus::ConsensusError; + use dpp::prelude::Identifier; + use dpp::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; + use platform_version::version::v1::PLATFORM_V1; + + mod validate_advanced_minimum_balance_pre_check_v0 { + use super::*; + + #[test] + fn should_return_invalid_result_if_balance_is_less_than_amount_and_fees() { + let balance = 100; + + let amount = 200; + + let identity = PartialIdentity { + id: Identifier::random(), + loaded_public_keys: Default::default(), + balance: Some(balance), + revision: None, + not_found_public_keys: Default::default(), + }; + + let transaction = + IdentityCreditWithdrawalTransition::V0(IdentityCreditWithdrawalTransitionV0 { + identity_id: identity.id, + amount, + core_fee_per_byte: 0, + pooling: Default::default(), + output_script: Default::default(), + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transaction + .validate_advanced_minimum_balance_pre_check_v0(&identity, platform_version) + .expect("failed to validate minimum balance"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::StateError( + StateError::IdentityInsufficientBalanceError(err) + )] if err.balance() == balance && err.required_balance() == amount && err.identity_id() == &identity.id + ); + } + + #[test] + fn should_return_valid_result() { + let balance = 200000000000; + + let amount = 100; + + let identity = PartialIdentity { + id: Identifier::random(), + loaded_public_keys: Default::default(), + balance: Some(balance), + revision: None, + not_found_public_keys: Default::default(), + }; + + let transaction = + IdentityCreditWithdrawalTransition::V0(IdentityCreditWithdrawalTransitionV0 { + identity_id: Default::default(), + amount, + core_fee_per_byte: 0, + pooling: Default::default(), + output_script: Default::default(), + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transaction + .validate_advanced_minimum_balance_pre_check_v0(&identity, platform_version) + .expect("failed to validate minimum balance"); + + assert_matches!(result.errors.as_slice(), []); + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/mod.rs index 8e5f5155f2..3b42e8e744 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/mod.rs @@ -1,5 +1,6 @@ mod balance; mod nonce; +pub(crate) mod signature_purpose_matches_requirements; mod state; mod structure; @@ -31,10 +32,10 @@ impl StateTransitionActionTransformerV0 for IdentityCreditWithdrawalTransition { fn transform_into_action( &self, platform: &PlatformRef, - _block_info: &BlockInfo, + block_info: &BlockInfo, _validation_mode: ValidationMode, - _execution_context: &mut StateTransitionExecutionContext, - _tx: TransactionArg, + execution_context: &mut StateTransitionExecutionContext, + tx: TransactionArg, ) -> Result, Error> { let platform_version = platform.state.current_platform_version()?; @@ -45,7 +46,13 @@ impl StateTransitionActionTransformerV0 for IdentityCreditWithdrawalTransition { .identity_credit_withdrawal_state_transition .transform_into_action { - 0 => self.transform_into_action_v0(platform), + 0 => self.transform_into_action_v0( + platform, + block_info, + execution_context, + tx, + platform_version, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "identity credit withdrawal transition: transform_into_action".to_string(), known_versions: vec![0], @@ -71,7 +78,7 @@ impl StateTransitionBasicStructureValidationV0 for IdentityCreditWithdrawalTrans // Returns not supported self.validate_basic_structure_v0(platform_version) } - Some(1) => self.validate_basic_structure_v1(), + Some(1) => self.validate_basic_structure_v1(platform_version), Some(version) => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "identity credit withdrawal transition: validate_basic_structure" .to_string(), @@ -93,8 +100,8 @@ impl StateTransitionStateValidationV0 for IdentityCreditWithdrawalTransition { _action: Option, platform: &PlatformRef, _validation_mode: ValidationMode, - _block_info: &BlockInfo, - _execution_context: &mut StateTransitionExecutionContext, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg, ) -> Result, Error> { let platform_version = platform.state.current_platform_version()?; @@ -106,7 +113,13 @@ impl StateTransitionStateValidationV0 for IdentityCreditWithdrawalTransition { .identity_credit_withdrawal_state_transition .state { - 0 => self.validate_state_v0(platform, tx), + 0 => self.validate_state_v0( + platform, + block_info, + execution_context, + tx, + platform_version, + ), version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { method: "identity credit withdrawal transition: validate_state".to_string(), known_versions: vec![0], @@ -119,7 +132,9 @@ impl StateTransitionStateValidationV0 for IdentityCreditWithdrawalTransition { #[cfg(test)] mod tests { use crate::config::{PlatformConfig, PlatformTestConfig}; - use crate::execution::validation::state_transition::tests::setup_identity_with_withdrawal_key_and_system_credits; + use crate::execution::validation::state_transition::tests::{ + setup_identity_with_withdrawal_key_and_system_credits, setup_masternode_owner_identity, + }; use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::test::helpers::fast_forward_to_block::fast_forward_to_block; use crate::test::helpers::setup::TestPlatformBuilder; @@ -129,10 +144,14 @@ mod tests { use dpp::consensus::ConsensusError; use dpp::dash_to_credits; use dpp::identity::core_script::CoreScript; + use dpp::identity::KeyType::{ECDSA_HASH160, ECDSA_SECP256K1}; use dpp::serialization::PlatformSerializable; - use dpp::state_transition::identity_credit_withdrawal_transition::methods::IdentityCreditWithdrawalTransitionMethodsV0; + use dpp::state_transition::identity_credit_withdrawal_transition::methods::{ + IdentityCreditWithdrawalTransitionMethodsV0, PreferredKeyPurposeForSigningWithdrawal, + }; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::withdrawal::Pooling; + use platform_version::version::v1::PROTOCOL_VERSION_1; use platform_version::version::PlatformVersion; use rand::prelude::StdRng; use rand::{Rng, SeedableRng}; @@ -152,6 +171,7 @@ mod tests { let mut platform = TestPlatformBuilder::new() .with_config(platform_config) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc() .set_initial_state_structure(); @@ -161,6 +181,7 @@ mod tests { setup_identity_with_withdrawal_key_and_system_credits( &mut platform, rng.gen(), + ECDSA_SECP256K1, dash_to_credits!(0.5), ); @@ -170,16 +191,17 @@ mod tests { let credit_withdrawal_transition = IdentityCreditWithdrawalTransition::try_from_identity( &identity, - Some(&withdrawal_key), - CoreScript::random_p2pkh(&mut rng), + Some(CoreScript::random_p2pkh(&mut rng)), withdrawal_amount, Pooling::Never, 1, 0, signer, + Some(&withdrawal_key), + PreferredKeyPurposeForSigningWithdrawal::Any, 2, platform_version, - None, + Some(1), ) .expect("expected a credit withdrawal transition"); @@ -209,4 +231,462 @@ mod tests { )] ); } + + #[test] + fn test_identity_credit_withdrawal_with_withdrawal_address_creates_withdrawal_document() { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(567); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, withdrawal_key) = + setup_identity_with_withdrawal_key_and_system_credits( + &mut platform, + rng.gen(), + ECDSA_SECP256K1, + dash_to_credits!(0.5), + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + Some(CoreScript::random_p2pkh(&mut rng)), + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + Some(&withdrawal_key), + PreferredKeyPurposeForSigningWithdrawal::Any, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::SuccessfulExecution(..)] + ); + } + + #[test] + fn test_identity_credit_withdrawal_without_withdrawal_address_creates_withdrawal_document_when_signing_with_withdrawal_key( + ) { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(567); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, withdrawal_key) = + setup_identity_with_withdrawal_key_and_system_credits( + &mut platform, + rng.gen(), + ECDSA_HASH160, + dash_to_credits!(0.5), + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + None, + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + Some(&withdrawal_key), + PreferredKeyPurposeForSigningWithdrawal::TransferOnly, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::SuccessfulExecution(..)] + ); + } + + #[test] + fn test_masternode_credit_withdrawal_without_withdrawal_address_creates_withdrawal_document_when_signing_with_withdrawal_key( + ) { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(529); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, _) = setup_masternode_owner_identity( + &mut platform, + rng.gen(), + dash_to_credits!(0.5), + platform_version, + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + None, + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + None, + PreferredKeyPurposeForSigningWithdrawal::TransferOnly, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::SuccessfulExecution(..)] + ); + } + + #[test] + fn test_masternode_credit_withdrawal_without_withdrawal_address_creates_withdrawal_document_when_signing_with_owner_key( + ) { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(529); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, _) = setup_masternode_owner_identity( + &mut platform, + rng.gen(), + dash_to_credits!(0.5), + platform_version, + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + None, + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + None, + PreferredKeyPurposeForSigningWithdrawal::OwnerOnly, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::SuccessfulExecution(..)] + ); + } + + mod errors { + use super::*; + use dpp::consensus::state::state_error::StateError; + #[test] + fn test_credit_withdrawal_without_withdrawal_address_with_a_non_payable_transfer_key() { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(567); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, withdrawal_key) = + setup_identity_with_withdrawal_key_and_system_credits( + &mut platform, + rng.gen(), + ECDSA_SECP256K1, + dash_to_credits!(0.5), + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = + IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + None, + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + Some(&withdrawal_key), + PreferredKeyPurposeForSigningWithdrawal::TransferOnly, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::UnpaidConsensusError( + ConsensusError::StateError( + StateError::NoTransferKeyForCoreWithdrawalAvailableError(_) + ) + )] + ); + } + + #[test] + fn test_masternode_credit_withdrawal_with_withdrawal_address_creates_when_signing_with_owner_key_should_fail( + ) { + let platform_version = PlatformVersion::latest(); + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let mut rng = StdRng::seed_from_u64(529); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + fast_forward_to_block(&platform, 1_200_000_000, 900, 42, 1, false); //next epoch + + let (identity, signer, _, _) = setup_masternode_owner_identity( + &mut platform, + rng.gen(), + dash_to_credits!(0.5), + platform_version, + ); + + let platform_state = platform.state.load(); + + let withdrawal_amount = dash_to_credits!(0.1); + + let credit_withdrawal_transition = + IdentityCreditWithdrawalTransition::try_from_identity( + &identity, + Some(CoreScript::random_p2pkh(&mut rng)), + withdrawal_amount, + Pooling::Never, + 1, + 0, + signer, + None, + PreferredKeyPurposeForSigningWithdrawal::OwnerOnly, + 2, + platform_version, + None, + ) + .expect("expected a credit withdrawal transition"); + + let credit_withdrawal_transition_serialized_transition = credit_withdrawal_transition + .serialize_to_bytes() + .expect("expected documents batch serialized state transition"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![credit_withdrawal_transition_serialized_transition.clone()], + &platform_state, + &BlockInfo::default_with_time(1_200_001_000), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); + + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::UnpaidConsensusError( + ConsensusError::BasicError( + BasicError::WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError(_) + ) + )] + ); + } + } } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/mod.rs new file mode 100644 index 0000000000..d82846f84e --- /dev/null +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/mod.rs @@ -0,0 +1,45 @@ +pub(crate) mod v0; + +use crate::error::Error; +use dpp::identity::PartialIdentity; +use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use dpp::validation::SimpleConsensusValidationResult; +use dpp::version::PlatformVersion; +use crate::error::execution::ExecutionError; +use crate::execution::validation::state_transition::identity_credit_withdrawal::signature_purpose_matches_requirements::v0::IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidationV0; + +pub(in crate::execution::validation::state_transition) trait IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidation +{ + fn validate_signature_purpose_matches_requirements( + &self, + identity: &PartialIdentity, + platform_version: &PlatformVersion, + ) -> Result; +} + +impl IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidation + for IdentityCreditWithdrawalTransition +{ + fn validate_signature_purpose_matches_requirements( + &self, + identity: &PartialIdentity, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive_abci + .validation_and_processing + .state_transitions + .identity_credit_withdrawal_state_transition_purpose_matches_requirements + { + 0 => self.validate_signature_purpose_matches_requirements_v0( + identity, + platform_version, + ), + version => Err(Error::Execution(ExecutionError::UnknownVersionMismatch { + method: "identity credit withdrawal transition: validate_signature_purpose_matches_requirements".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/v0/mod.rs new file mode 100644 index 0000000000..4bdd1ff1a2 --- /dev/null +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/signature_purpose_matches_requirements/v0/mod.rs @@ -0,0 +1,53 @@ +use crate::error::execution::ExecutionError; +use crate::error::Error; +use dpp::consensus::basic::identity::WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError; +use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; +use dpp::identity::{PartialIdentity, Purpose}; +use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; +use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use dpp::state_transition::StateTransitionIdentitySigned; +use dpp::validation::SimpleConsensusValidationResult; +use dpp::version::PlatformVersion; + +pub(super) trait IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidationV0 +{ + fn validate_signature_purpose_matches_requirements_v0( + &self, + identity: &PartialIdentity, + platform_version: &PlatformVersion, + ) -> Result; +} + +impl IdentityCreditWithdrawalStateTransitionSignaturePurposeMatchesRequirementsValidationV0 + for IdentityCreditWithdrawalTransition +{ + fn validate_signature_purpose_matches_requirements_v0( + &self, + identity: &PartialIdentity, + _platform_version: &PlatformVersion, + ) -> Result { + let mut result = SimpleConsensusValidationResult::default(); + + if let Some(output_script) = self.output_script() { + let Some(signing_key) = identity + .loaded_public_keys + .get(&self.signature_public_key_id()) + else { + return Err(Error::Execution(ExecutionError::CorruptedCodeExecution( + "we should have a loaded key at this point", + ))); + }; + + if signing_key.purpose() == Purpose::OWNER { + result.add_error( + WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError::new( + output_script.clone(), + signing_key.id(), + ), + ); + } + } + + Ok(result) + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/state/v0/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/state/v0/mod.rs index cecf5edb3d..87eff3dbaa 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/state/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/state/v0/mod.rs @@ -1,15 +1,16 @@ -use crate::error::execution::ExecutionError; use crate::error::Error; use crate::platform_types::platform::PlatformRef; use crate::rpc::core::CoreRPCLike; +use dpp::block::block_info::BlockInfo; -use crate::platform_types::platform_state::v0::PlatformStateV0Methods; -use dpp::consensus::signature::IdentityNotFoundError; -use dpp::consensus::state::identity::IdentityInsufficientBalanceError; use dpp::prelude::ConsensusValidationResult; -use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use crate::execution::types::execution_operation::ValidationOperation; +use crate::execution::types::state_transition_execution_context::{ + StateTransitionExecutionContext, StateTransitionExecutionContextMethodsV0, +}; +use dpp::version::PlatformVersion; use drive::grovedb::TransactionArg; use drive::state_transition_action::identity::identity_credit_withdrawal::IdentityCreditWithdrawalTransitionAction; use drive::state_transition_action::StateTransitionAction; @@ -18,12 +19,19 @@ pub(in crate::execution::validation::state_transition::state_transitions::identi fn validate_state_v0( &self, platform: &PlatformRef, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg, + platform_version: &PlatformVersion, ) -> Result, Error>; fn transform_into_action_v0( &self, platform: &PlatformRef, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, + tx: TransactionArg, + platform_version: &PlatformVersion, ) -> Result, Error>; } @@ -33,53 +41,43 @@ impl IdentityCreditWithdrawalStateTransitionStateValidationV0 fn validate_state_v0( &self, platform: &PlatformRef, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg, + platform_version: &PlatformVersion, ) -> Result, Error> { - let platform_version = platform.state.current_platform_version()?; - let maybe_existing_identity_balance = platform.drive.fetch_identity_balance( - self.identity_id().to_buffer(), + self.transform_into_action_v0( + platform, + block_info, + execution_context, tx, platform_version, - )?; - - let Some(existing_identity_balance) = maybe_existing_identity_balance else { - return Ok(ConsensusValidationResult::new_with_error( - IdentityNotFoundError::new(self.identity_id()).into(), - )); - }; - - if existing_identity_balance < self.amount() { - return Ok(ConsensusValidationResult::new_with_error( - IdentityInsufficientBalanceError::new( - self.identity_id(), - existing_identity_balance, - self.amount(), - ) - .into(), - )); - } - - self.transform_into_action_v0(platform) + ) } fn transform_into_action_v0( &self, platform: &PlatformRef, + block_info: &BlockInfo, + execution_context: &mut StateTransitionExecutionContext, + tx: TransactionArg, + platform_version: &PlatformVersion, ) -> Result, Error> { - let last_block_time = - platform - .state - .last_committed_block_time_ms() - .ok_or(Error::Execution(ExecutionError::StateNotInitialized( - "expected a last platform block during identity update validation", - )))?; - - Ok(ConsensusValidationResult::new_with_data( - IdentityCreditWithdrawalTransitionAction::from_identity_credit_withdrawal( + let consensus_validation_result = + IdentityCreditWithdrawalTransitionAction::try_from_identity_credit_withdrawal( + platform.drive, + tx, self, - last_block_time, + block_info, + platform_version, ) - .into(), - )) + .map(|consensus_validation_result| { + consensus_validation_result.map(|withdrawal| withdrawal.into()) + })?; + if consensus_validation_result.is_valid() { + // If this is valid then we will apply the action and eventually perform network threshold signing + execution_context.add_operation(ValidationOperation::PerformNetworkThresholdSigning); + } + Ok(consensus_validation_result) } } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs index b89b35655c..f3898d0b0d 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_credit_withdrawal/structure/v1/mod.rs @@ -8,29 +8,36 @@ use dpp::consensus::ConsensusError; use crate::error::Error; use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; -use dpp::state_transition::identity_credit_withdrawal_transition::v0::{ - MIN_CORE_FEE_PER_BYTE, MIN_WITHDRAWAL_AMOUNT, +use dpp::state_transition::identity_credit_withdrawal_transition::{ + IdentityCreditWithdrawalTransition, MIN_CORE_FEE_PER_BYTE, MIN_WITHDRAWAL_AMOUNT, }; -use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::util::is_fibonacci_number::is_fibonacci_number; use dpp::validation::SimpleConsensusValidationResult; +use dpp::version::PlatformVersion; use dpp::withdrawal::Pooling; pub(in crate::execution::validation::state_transition::state_transitions::identity_credit_withdrawal) trait IdentityCreditWithdrawalStateTransitionStructureValidationV1 { - fn validate_basic_structure_v1(&self) -> Result; + fn validate_basic_structure_v1(&self, platform_version: &PlatformVersion) -> Result; } impl IdentityCreditWithdrawalStateTransitionStructureValidationV1 for IdentityCreditWithdrawalTransition { - fn validate_basic_structure_v1(&self) -> Result { + fn validate_basic_structure_v1( + &self, + platform_version: &PlatformVersion, + ) -> Result { let mut result = SimpleConsensusValidationResult::default(); - if self.amount() < MIN_WITHDRAWAL_AMOUNT { + let amount = self.amount(); + if amount < MIN_WITHDRAWAL_AMOUNT + || amount > platform_version.system_limits.max_withdrawal_amount + { result.add_error(ConsensusError::from( InvalidIdentityCreditWithdrawalTransitionAmountError::new( self.amount(), MIN_WITHDRAWAL_AMOUNT, + platform_version.system_limits.max_withdrawal_amount, ), )); } @@ -57,15 +64,274 @@ impl IdentityCreditWithdrawalStateTransitionStructureValidationV1 return Ok(result); } - // validate output_script types - if !self.output_script().is_p2pkh() && !self.output_script().is_p2sh() { - result.add_error( - InvalidIdentityCreditWithdrawalTransitionOutputScriptError::new( - self.output_script().clone(), - ), - ); + if let Some(output_script) = self.output_script() { + // validate output_script types + if !output_script.is_p2pkh() && !output_script.is_p2sh() { + result.add_error( + InvalidIdentityCreditWithdrawalTransitionOutputScriptError::new( + output_script.clone(), + ), + ); + } } Ok(result) } } + +#[cfg(test)] +mod tests { + use super::*; + + use assert_matches::assert_matches; + use dpp::consensus::basic::BasicError; + use dpp::dashcore::ScriptBuf; + use dpp::identity::core_script::CoreScript; + use dpp::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; + use platform_version::version::v1::PLATFORM_V1; + use rand::SeedableRng; + + mod validate_basic_structure_v1 { + use super::*; + use rand::prelude::StdRng; + + #[test] + fn should_return_invalid_result_if_amount_too_low() { + let amount = 18000; + + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount, + core_fee_per_byte: 1, + pooling: Default::default(), + output_script: None, + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::BasicError( + BasicError::InvalidIdentityCreditWithdrawalTransitionAmountError( + InvalidIdentityCreditWithdrawalTransitionAmountError { + amount: a, + min_amount: 190000, + max_amount: 50000000000000, + }, + ), + )] if *a == amount + ); + } + + #[test] + fn should_return_invalid_result_if_amount_too_high() { + let amount = 60000000000000; + + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount, + core_fee_per_byte: 1, + pooling: Default::default(), + output_script: None, + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::BasicError( + BasicError::InvalidIdentityCreditWithdrawalTransitionAmountError( + InvalidIdentityCreditWithdrawalTransitionAmountError { + amount: a, + min_amount: 190000, + max_amount: 50000000000000, + }, + ), + )] if *a == amount + ); + } + + #[test] + fn should_return_invalid_result_if_pooling_not_never() { + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 1, + pooling: Pooling::Standard, + output_script: None, + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::BasicError( + BasicError::NotImplementedIdentityCreditWithdrawalTransitionPoolingError(err), + )] if err.pooling() == Pooling::Standard as u8 + ); + } + + #[test] + fn should_return_invalid_result_if_core_fee_not_fibonacci() { + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 0, + pooling: Pooling::Never, + output_script: None, + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::BasicError( + BasicError::InvalidIdentityCreditWithdrawalTransitionCoreFeeError(err) + )] if err.min_core_fee_per_byte() == 1 && err.core_fee_per_byte() == 0 + ); + } + + #[test] + fn should_return_invalid_result_if_output_script_is_not_p2pkh_or_p2sh() { + let output_script = CoreScript::new(ScriptBuf::new()); + + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 1, + pooling: Pooling::Never, + output_script: Some(output_script.clone()), + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert_matches!( + result.errors.as_slice(), + [ConsensusError::BasicError( + BasicError::InvalidIdentityCreditWithdrawalTransitionOutputScriptError(err) + )] if err.output_script() == output_script + ); + } + + #[test] + fn should_return_valid_result_if_output_script_is_p2pkh() { + let rng = &mut StdRng::from_entropy(); + + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 1, + pooling: Pooling::Never, + output_script: Some(CoreScript::random_p2pkh(rng)), + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert!(result.is_valid()); + } + + #[test] + fn should_return_valid_result_if_output_script_is_p2sh() { + let rng = &mut StdRng::from_entropy(); + + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 1, + pooling: Pooling::Never, + output_script: Some(CoreScript::random_p2sh(rng)), + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert!(result.is_valid()); + } + + #[test] + fn should_return_valid_result_without_output_script() { + let transition = + IdentityCreditWithdrawalTransition::V1(IdentityCreditWithdrawalTransitionV1 { + identity_id: Default::default(), + amount: 200000, + core_fee_per_byte: 1, + pooling: Pooling::Never, + output_script: None, + nonce: 0, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + }); + + let platform_version = &PLATFORM_V1; + + let result = transition + .validate_basic_structure_v1(platform_version) + .expect("failed to validate basic structure"); + + assert!(result.is_valid()); + } + } +} diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_update/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_update/mod.rs index 0b6adcdf0d..629240407a 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_update/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/identity_update/mod.rs @@ -116,9 +116,13 @@ mod tests { use crate::execution::validation::state_transition::tests::{ setup_add_key_to_identity, setup_identity_return_master_key, }; + use crate::platform_types::state_transitions_processing_result::StateTransitionExecutionResult; use crate::test::helpers::setup::TestPlatformBuilder; + use assert_matches::assert_matches; use dpp::block::block_info::BlockInfo; + use dpp::consensus::ConsensusError; use dpp::dash_to_credits; + use dpp::dashcore::key::{KeyPair, Secp256k1}; use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::contract_bounds::ContractBounds; @@ -128,8 +132,11 @@ mod tests { use dpp::serialization::{PlatformSerializable, Signable}; use dpp::state_transition::identity_update_transition::v0::IdentityUpdateTransitionV0; use dpp::state_transition::identity_update_transition::IdentityUpdateTransition; + use dpp::state_transition::public_key_in_creation::v0::IdentityPublicKeyInCreationV0; use dpp::state_transition::StateTransition; use platform_version::version::PlatformVersion; + use rand::rngs::StdRng; + use rand::SeedableRng; #[test] fn test_identity_update_that_disables_an_authentication_key() { @@ -337,4 +344,109 @@ mod tests { .join(" | ") ); } + + #[test] + fn test_identity_update_adding_owner_key_not_allowed() { + let platform_config = PlatformConfig { + testing_configs: PlatformTestConfig { + disable_instant_lock_signature_verification: true, + ..Default::default() + }, + ..Default::default() + }; + + let platform_version = PlatformVersion::latest(); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .build_with_mock_rpc() + .set_genesis_state(); + + let (identity, signer, key) = + setup_identity_return_master_key(&mut platform, 958, dash_to_credits!(0.1)); + + let platform_state = platform.state.load(); + + let secp = Secp256k1::new(); + + let mut rng = StdRng::seed_from_u64(1292); + + let new_key_pair = KeyPair::new(&secp, &mut rng); + + let new_key = IdentityPublicKeyInCreationV0 { + id: 2, + purpose: Purpose::OWNER, + security_level: SecurityLevel::HIGH, + key_type: KeyType::ECDSA_SECP256K1, + read_only: false, + data: new_key_pair.public_key().serialize().to_vec().into(), + signature: Default::default(), + contract_bounds: None, + }; + + let update_transition: IdentityUpdateTransition = IdentityUpdateTransitionV0 { + identity_id: identity.id(), + revision: 1, + nonce: 1, + add_public_keys: vec![new_key.into()], + disable_public_keys: vec![], + user_fee_increase: 0, + signature_public_key_id: key.id(), + signature: Default::default(), + } + .into(); + + let mut update_transition: StateTransition = update_transition.into(); + + let data = update_transition + .signable_bytes() + .expect("expected signable bytes"); + update_transition.set_signature( + signer + .sign(&key, data.as_slice()) + .expect("expected to sign"), + ); + + let update_transition_bytes = update_transition + .serialize_to_bytes() + .expect("expected to serialize"); + + let transaction = platform.drive.grove.start_transaction(); + + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![update_transition_bytes.clone()], + &platform_state, + &BlockInfo::default(), + &transaction, + platform_version, + true, + None, + ) + .expect("expected to process state transition"); + + // We expect there to be an error because you should not be able to add owner keys + assert_matches!( + processing_result.execution_results().as_slice(), + [StateTransitionExecutionResult::UnpaidConsensusError( + ConsensusError::BasicError(_) + )] + ); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit"); + + let issues = platform + .drive + .grove + .visualize_verify_grovedb(None, true, false, &platform_version.drive.grove_version) + .expect("expected to have no issues"); + + assert_eq!(issues.len(), 0); + } } diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/masternode_vote/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/masternode_vote/mod.rs index f2ce1e3662..fe7d8095b8 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/masternode_vote/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/masternode_vote/mod.rs @@ -159,7 +159,7 @@ mod tests { }; use dpp::fee::Credits; use drive::drive::Drive; - use crate::execution::validation::state_transition::state_transitions::tests::{create_dpns_identity_name_contest, verify_dpns_name_contest, perform_vote, setup_masternode_identity, get_proved_vote_states, get_vote_states, perform_votes_multi}; + use crate::execution::validation::state_transition::state_transitions::tests::{create_dpns_identity_name_contest, verify_dpns_name_contest, perform_vote, setup_masternode_voting_identity, get_proved_vote_states, get_vote_states, perform_votes_multi}; use dapi_grpc::platform::v0::get_contested_resource_vote_state_response::get_contested_resource_vote_state_response_v0::{finished_vote_info, FinishedVoteInfo}; use dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo; use dapi_grpc::platform::v0::get_vote_polls_by_end_date_request::get_vote_polls_by_end_date_request_v0; @@ -174,6 +174,7 @@ mod tests { fn test_not_proved_contests_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -275,6 +276,7 @@ mod tests { fn test_proved_contests_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -369,6 +371,7 @@ mod tests { fn test_empty_string_start_index_value() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -502,6 +505,7 @@ mod tests { fn test_no_start_index_value() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -642,6 +646,7 @@ mod tests { fn test_existing_end_index_value() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -786,6 +791,7 @@ mod tests { fn test_non_existing_end_index_value() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -920,6 +926,7 @@ mod tests { fn test_non_existing_end_index_value_many_values() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1018,6 +1025,7 @@ mod tests { fn test_limit() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1169,6 +1177,7 @@ mod tests { fn test_start_at() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1350,6 +1359,7 @@ mod tests { fn test_not_proved_vote_state_query_request_after_vote() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1364,7 +1374,7 @@ mod tests { ); let (pro_tx_hash_1, _masternode_1, signer_1, voting_key_1) = - setup_masternode_identity(&mut platform, 29, platform_version); + setup_masternode_voting_identity(&mut platform, 29, platform_version); let platform_state = platform.state.load(); @@ -1500,6 +1510,7 @@ mod tests { fn test_proved_vote_state_query_request_after_vote() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1514,7 +1525,7 @@ mod tests { ); let (pro_tx_hash_1, _masternode_1, signer_1, voting_key_1) = - setup_masternode_identity(&mut platform, 29, platform_version); + setup_masternode_voting_identity(&mut platform, 29, platform_version); let platform_state = platform.state.load(); @@ -1647,6 +1658,7 @@ mod tests { fn test_not_proved_vote_state_query_request_after_many_votes() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1671,6 +1683,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -1902,6 +1915,7 @@ mod tests { fn test_proved_vote_state_query_request_after_many_votes() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -1926,6 +1940,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -2212,6 +2227,7 @@ mod tests { fn test_vote_state_query_request_with_no_index_values_should_return_error() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2236,6 +2252,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -2337,6 +2354,7 @@ mod tests { fn test_vote_state_query_request_with_limit_too_high_should_return_error() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2361,6 +2379,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -2477,6 +2496,7 @@ mod tests { fn test_vote_state_query_request_with_limit_4_should_return_4_contenders() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2518,6 +2538,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -2637,6 +2658,7 @@ mod tests { fn test_proved_vote_state_query_request_with_limit_4_should_return_4_contenders() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -2678,6 +2700,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -3000,6 +3023,7 @@ mod tests { fn test_non_proved_contestant_votes_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3023,7 +3047,7 @@ mod tests { for i in 0..50 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 10 + i, platform_version); let platform_state = platform.state.load(); @@ -3044,7 +3068,7 @@ mod tests { for i in 0..5 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 100 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 100 + i, platform_version); let platform_state = platform.state.load(); @@ -3065,7 +3089,7 @@ mod tests { for i in 0..8 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 200 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 200 + i, platform_version); let platform_state = platform.state.load(); @@ -3147,7 +3171,7 @@ mod tests { // let's add another 50 votes for i in 0..50 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 400 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 400 + i, platform_version); let platform_state = platform.state.load(); @@ -3183,7 +3207,7 @@ mod tests { // let's add another vote for i in 0..1 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 500 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 500 + i, platform_version); let platform_state = platform.state.load(); @@ -3243,6 +3267,7 @@ mod tests { fn test_proved_contestant_votes_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3266,7 +3291,7 @@ mod tests { for i in 0..50 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 10 + i, platform_version); let platform_state = platform.state.load(); @@ -3287,7 +3312,7 @@ mod tests { for i in 0..5 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 100 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 100 + i, platform_version); let platform_state = platform.state.load(); @@ -3308,7 +3333,7 @@ mod tests { for i in 0..8 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 200 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 200 + i, platform_version); let platform_state = platform.state.load(); @@ -3550,6 +3575,7 @@ mod tests { fn test_not_proved_identity_given_votes_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3583,7 +3609,7 @@ mod tests { ); let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10, platform_version); + setup_masternode_voting_identity(&mut platform, 10, platform_version); // Now let's perform a few votes @@ -3712,6 +3738,7 @@ mod tests { fn test_proved_identity_given_votes_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3745,7 +3772,7 @@ mod tests { ); let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10, platform_version); + setup_masternode_voting_identity(&mut platform, 10, platform_version); // Now let's perform a few votes @@ -3872,11 +3899,14 @@ mod tests { mod end_date_query { use super::*; + use crate::config::PlatformConfig; #[test] fn test_not_proved_end_date_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -3978,6 +4008,8 @@ mod tests { fn test_proved_end_date_query_request() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4066,6 +4098,8 @@ mod tests { fn test_not_proved_end_date_query_multiple_contests() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4253,6 +4287,8 @@ mod tests { fn test_proved_end_date_query_multiple_contests() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4403,6 +4439,8 @@ mod tests { fn test_not_proved_end_date_query_multiple_contests_with_start_at() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4659,6 +4697,8 @@ mod tests { fn test_not_proved_end_date_query_multiple_contests_with_end_at() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4817,6 +4857,7 @@ mod tests { fn test_not_proved_end_date_query_multiple_contests_with_end_at_before_start_at() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -4971,6 +5012,8 @@ mod tests { fn test_not_proved_end_date_query_multiple_contests_with_start_at_ascending_false() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -5142,6 +5185,8 @@ mod tests { fn test_proved_end_date_query_multiple_contests_with_start_at() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_mainnet()) + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -5511,6 +5556,7 @@ mod tests { fn test_non_proved_prefunded_specialized_balance_request_after_many_votes() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -5554,7 +5600,7 @@ mod tests { for i in 0..50 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 10 + i, platform_version); let platform_state = platform.state.load(); @@ -5585,7 +5631,7 @@ mod tests { for i in 0..5 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 100 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 100 + i, platform_version); let platform_state = platform.state.load(); @@ -5619,6 +5665,7 @@ mod tests { fn test_proved_prefunded_specialized_balance_request_after_many_votes() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -5662,7 +5709,7 @@ mod tests { for i in 0..50 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 10 + i, platform_version); let platform_state = platform.state.load(); @@ -5693,7 +5740,7 @@ mod tests { for i in 0..5 { let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 100 + i, platform_version); + setup_masternode_voting_identity(&mut platform, 100 + i, platform_version); let platform_state = platform.state.load(); @@ -5726,12 +5773,24 @@ mod tests { mod document_distribution { use super::*; - use crate::execution::validation::state_transition::tests::create_dpns_contract_name_contest; + use crate::config::PlatformConfig; + use crate::execution::validation::state_transition::tests::{ + create_dpns_contract_name_contest, + create_dpns_identity_name_contest_skip_creating_identities, + }; + use assert_matches::assert_matches; + use dapi_grpc::platform::v0::get_contested_resource_vote_state_request::GetContestedResourceVoteStateRequestV0; + use dapi_grpc::platform::v0::{ + get_contested_resource_vote_state_request, GetContestedResourceVoteStateRequest, + }; + use dpp::dashcore::Network; + use platform_version::version::INITIAL_PROTOCOL_VERSION; #[test] fn test_document_distribution() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -5756,6 +5815,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -5830,6 +5890,7 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), @@ -5942,129 +6003,50 @@ mod tests { } #[test] - fn test_document_distribution_abstain_very_high() { + fn test_document_distribution_many_votes() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); - let platform_state = platform.state.load(); - - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); - - perform_votes_multi( - &mut platform, - dpns_contract.as_ref(), - vec![ - (TowardsIdentity(contender_1.id()), 50), - (TowardsIdentity(contender_2.id()), 5), - (ResourceVoteChoice::Abstain, 60), - (ResourceVoteChoice::Lock, 3), - ], - "quantum", - 10, - platform_version, - ); - - let platform_state = platform.state.load(); - - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); - - assert_eq!(finished_vote_info, None); - - assert_eq!(contenders.len(), 2); - - let first_contender = contenders.first().unwrap(); - - let second_contender = contenders.last().unwrap(); - - assert_ne!(first_contender.document(), second_contender.document()); - - assert_eq!(first_contender.identity_id(), contender_1.id()); - - assert_eq!(second_contender.identity_id(), contender_2.id()); - - assert_eq!(first_contender.vote_tally(), Some(50)); - - assert_eq!(second_contender.vote_tally(), Some(5)); - - assert_eq!(abstaining, Some(60)); - - assert_eq!(locking, Some(3)); - - let mut platform_state = (**platform_state).clone(); - - let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, - core_height: 42, - epoch: Default::default(), - }; - - platform_state.set_last_committed_block_info(Some( - ExtendedBlockInfoV0 { - basic_info: block_info, - app_hash: platform - .drive - .grove - .root_hash(None, &platform_version.drive.grove_version) - .unwrap() - .unwrap(), - quorum_hash: [0u8; 32], - block_id_hash: [0u8; 32], - proposer_pro_tx_hash: [0u8; 32], - signature: [0u8; 96], - round: 0, - } - .into(), - )); - - platform.state.store(Arc::new(platform_state)); + let votes = 10; //let's do this 10 times - let platform_state = platform.state.load(); + for i in 0..votes { + let platform_state = platform.state.load(); - let transaction = platform.drive.grove.start_transaction(); + let name = format!("quantum{}", (b'A' + i as u8) as char); + let (contender_1, contender_2, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7 + i, + name.as_str(), + platform_version, + ); - platform - .check_for_ended_vote_polls( - &platform_state, - &block_info, - Some(&transaction), + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + name.as_str(), + i * 500 + 10, + None, platform_version, - ) - .expect("expected to check for ended vote polls"); - - platform - .drive - .grove - .commit_transaction(transaction) - .unwrap() - .expect("expected to commit transaction"); + ); - // At this point the document should have been awarded to contender 1. + let platform_state = platform.state.load(); - { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( &platform, &platform_state, &dpns_contract, - "quantum", + name.as_str(), None, true, None, @@ -6072,18 +6054,7 @@ mod tests { platform_version, ); - assert_eq!( - finished_vote_info, - Some(FinishedVoteInfo { - finished_vote_outcome: - finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, - won_by_identity_id: Some(contender_1.id().to_vec()), - finished_at_block_height: 10000, - finished_at_core_block_height: 42, - finished_at_block_time_ms: 1209900000, - finished_at_epoch: 0 - }) - ); + assert_eq!(finished_vote_info, None); assert_eq!(contenders.len(), 2); @@ -6091,9 +6062,7 @@ mod tests { let second_contender = contenders.last().unwrap(); - assert_eq!(first_contender.document(), &None); - - assert_eq!(second_contender.document(), &None); + assert_ne!(first_contender.document(), second_contender.document()); assert_eq!(first_contender.identity_id(), contender_1.id()); @@ -6103,18 +6072,68 @@ mod tests { assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(60)); + assert_eq!(abstaining, Some(10)); assert_eq!(locking, Some(3)); - } - { - let (contenders, abstaining, locking, finished_vote_info) = - get_proved_vote_states( + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000 * (i + 1), //2 weeks and 300s + height: 10000 + i, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( &platform, &platform_state, &dpns_contract, - "quantum", + name.as_str(), None, true, None, @@ -6122,102 +6141,1358 @@ mod tests { platform_version, ); - assert_eq!( - finished_vote_info, - Some(( - ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), - block_info - )) - ); + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000 + i, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1_209_900_000 * (i + 1), + finished_at_epoch: 0 + }) + ); - assert_eq!(contenders.len(), 2); + assert_eq!(contenders.len(), 2); - let first_contender = contenders.first().unwrap(); + let first_contender = contenders.first().unwrap(); - let second_contender = contenders.last().unwrap(); + let second_contender = contenders.last().unwrap(); - assert_eq!(first_contender.document(), &None); + assert_eq!(first_contender.document(), &None); - assert_eq!(second_contender.document(), &None); + assert_eq!(second_contender.document(), &None); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(first_contender.identity_id(), contender_1.id()); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(50)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(5)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(60)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(3)); - } - } + assert_eq!(locking, Some(3)); + } - #[test] - fn test_document_distribution_low_votes() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity( + contender_1.id() + ), + block_info + )) + ); - let platform_state = platform.state.load(); + assert_eq!(contenders.len(), 2); - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); + let first_contender = contenders.first().unwrap(); - perform_votes_multi( - &mut platform, - dpns_contract.as_ref(), - vec![ - (TowardsIdentity(contender_1.id()), 1), - (TowardsIdentity(contender_2.id()), 1), - (ResourceVoteChoice::Abstain, 1), - (ResourceVoteChoice::Lock, 1), - ], - "quantum", - 10, - platform_version, - ); + let second_contender = contenders.last().unwrap(); - let platform_state = platform.state.load(); + assert_eq!(first_contender.document(), &None); - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); + assert_eq!(second_contender.document(), &None); - assert_eq!(finished_vote_info, None); + assert_eq!(first_contender.identity_id(), contender_1.id()); - assert_eq!(contenders.len(), 2); + assert_eq!(second_contender.identity_id(), contender_2.id()); - let first_contender = contenders.first().unwrap(); + assert_eq!(first_contender.vote_tally(), Some(50)); - let second_contender = contenders.last().unwrap(); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_ne!(first_contender.document(), second_contender.document()); + assert_eq!(abstaining, Some(10)); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(locking, Some(3)); + } + } + } - assert_eq!(second_contender.identity_id(), contender_2.id()); + #[test] + fn test_document_distribution_many_votes_two_contests_same_time() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); - assert_eq!(first_contender.vote_tally(), Some(1)); + let votes = 10; //let's do this 10 times - assert_eq!(second_contender.vote_tally(), Some(1)); + for i in 0..votes { + let platform_state = platform.state.load(); - assert_eq!(abstaining, Some(1)); + let name = format!("quantum{}", (b'A' + i as u8) as char); + let (contender_1, contender_2, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7 + i, + name.as_str(), + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + name.as_str(), + i * 500 + 50, + None, + platform_version, + ); + + let name2 = format!("alpha{}", (b'A' + i as u8) as char); + let (contender_3, contender_4, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 100007 + i, + name2.as_str(), + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_3.id()), 30), + (TowardsIdentity(contender_4.id()), 53), + (ResourceVoteChoice::Abstain, 2), + (ResourceVoteChoice::Lock, 5), + ], + name2.as_str(), + i * 750 + 500000, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(30)); + + assert_eq!(second_contender.vote_tally(), Some(53)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(5)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000 * (i + 1), //2 weeks and 300s + height: 10000 + i, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000 + i, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1_209_900_000 * (i + 1), + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity( + contender_1.id() + ), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + // At this point the document should have been awarded to contender 4. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_4.id().to_vec()), + finished_at_block_height: 10000 + i, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1_209_900_000 * (i + 1), + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(30)); + + assert_eq!(second_contender.vote_tally(), Some(53)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(5)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity( + contender_4.id() + ), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(30)); + + assert_eq!(second_contender.vote_tally(), Some(53)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(5)); + } + } + } + + #[test] + fn test_document_distribution_many_votes_three_contests_same_time() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let votes = 10; //let's do this 10 times + + for i in 0..votes { + let platform_state = platform.state.load(); + + let name = format!("quantum{}", (b'A' + i as u8) as char); + let (contender_1, contender_2, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7 + i, + name.as_str(), + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 2), + (TowardsIdentity(contender_2.id()), 1), + (ResourceVoteChoice::Abstain, 4), + (ResourceVoteChoice::Lock, 0), + ], + name.as_str(), + i * 500 + 50, + None, + platform_version, + ); + + let name2 = format!("alpha{}", (b'A' + i as u8) as char); + let (contender_3, contender_4, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 100007 + i, + name2.as_str(), + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_3.id()), 5), + (TowardsIdentity(contender_4.id()), 6), + (ResourceVoteChoice::Abstain, 2), + (ResourceVoteChoice::Lock, 6), + ], + name2.as_str(), + i * 750 + 500000, + None, + platform_version, + ); + + let name3 = format!("beta{}", (b'A' + i as u8) as char); + let (contender_5, contender_6, dpns_contract) = + create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 200007 + i, + name3.as_str(), + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_5.id()), 5), + (TowardsIdentity(contender_6.id()), 6), + (ResourceVoteChoice::Abstain, 2), + (ResourceVoteChoice::Lock, 6), + ], + name3.as_str(), + i * 500 + 600000, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(2)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(4)); + + assert_eq!(locking, Some(0)); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name3.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_5.id()); + + assert_eq!(second_contender.identity_id(), contender_6.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000 * (i + 1), //2 weeks and 300s + height: 10000 + i * 2, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point 1 of the 3 should not have been awarded, we are not sure which one it is though + { + // Check the first poll + let (_contenders1, _abstaining1, _locking1, finished_vote_info1) = + get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + // Check the second poll + let (_contenders2, _abstaining2, _locking2, finished_vote_info2) = + get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + // Check the third poll + let (_contenders3, _abstaining3, _locking3, finished_vote_info3) = + get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name3.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + // Now check that exactly one of the 'finished_vote_info's is None, and the other two are Some(_) + let finished_vote_infos = vec![ + finished_vote_info1.is_some(), + finished_vote_info2.is_some(), + finished_vote_info3.is_some(), + ]; + + // Count how many polls have been awarded + let awarded_count = finished_vote_infos + .iter() + .filter(|&&is_awarded| is_awarded) + .count(); + + // Assert that exactly two polls have been awarded + assert_eq!( + awarded_count, 2, + "Exactly two polls should have been awarded for event {}", + i + ); + + // Assert that exactly one poll has not been awarded + assert_eq!( + finished_vote_infos.len() - awarded_count, + 1, + "Exactly one poll should not have been awarded for event {}", + i + ); + } + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000 * (i + 1) + 50, //2 weeks and 350s + height: 10001 + i * 2, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(2)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(4)); + + assert_eq!(locking, Some(0)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(2)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(4)); + + assert_eq!(locking, Some(0)); + } + + // At this point the document should have been awarded to contender 4. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name2.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + } + + // At this point the document should have been awarded to contender 6. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + name3.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_5.id()); + + assert_eq!(second_contender.identity_id(), contender_6.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + name3.as_str(), + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_matches!(finished_vote_info, Some(_)); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_5.id()); + + assert_eq!(second_contender.identity_id(), contender_6.id()); + + assert_eq!(first_contender.vote_tally(), Some(5)); + + assert_eq!(second_contender.vote_tally(), Some(6)); + + assert_eq!(abstaining, Some(2)); + + assert_eq!(locking, Some(6)); + } + } + } + + #[test] + fn test_document_distribution_abstain_very_high() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 60), + (ResourceVoteChoice::Lock, 3), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(60)); + + assert_eq!(locking, Some(3)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(60)); + + assert_eq!(locking, Some(3)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(60)); + + assert_eq!(locking, Some(3)); + } + } + + #[test] + fn test_document_distribution_low_votes() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 1), + (TowardsIdentity(contender_2.id()), 1), + (ResourceVoteChoice::Abstain, 1), + (ResourceVoteChoice::Lock, 1), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(1)); assert_eq!(locking, Some(1)); @@ -6256,6 +7531,2111 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(1)); + + assert_eq!(locking, Some(1)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(1)); + + assert_eq!(abstaining, Some(1)); + + assert_eq!(locking, Some(1)); + } + } + + #[test] + fn test_document_distribution_single_vote() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![(TowardsIdentity(contender_1.id()), 1)], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(1)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + } + + #[test] + fn test_document_distribution_no_votes() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + false, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + } + + #[test] + fn test_document_locking() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 20), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 60), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(20)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(60)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: finished_vote_info::FinishedVoteOutcome::Locked + as i32, + won_by_identity_id: None, + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(20)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(60)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some((ContestedDocumentVotePollWinnerInfo::Locked, block_info)) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(20)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(60)); + } + } + + #[test] + fn test_new_vote_after_document_distribution() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + // now let's try to do another vote + + let (pro_tx_hash, _masternode, signer, voting_key) = + setup_masternode_voting_identity(&mut platform, 5000, platform_version); + + let platform_state = platform.state.load(); + + perform_vote( + &mut platform, + &platform_state, + dpns_contract.as_ref(), + TowardsIdentity(contender_1.id()), + "quantum", + &signer, + pro_tx_hash, + &voting_key, + 2, + Some("VotePoll ContestedDocumentResourceVotePoll(ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }) not available for voting: Awarded(BjNejy4r9QAvLHpQ9Yq6yRMgNymeGZ46d48fJxJbMrfW)"), + platform_version, + ); + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + } + + #[test] + fn test_new_vote_after_lock() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 2), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 50), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(2)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(50)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + // now let's try to do another vote + + let (pro_tx_hash, _masternode, signer, voting_key) = + setup_masternode_voting_identity(&mut platform, 5000, platform_version); + + let platform_state = platform.state.load(); + + perform_vote( + &mut platform, + &platform_state, + dpns_contract.as_ref(), + TowardsIdentity(contender_1.id()), + "quantum", + &signer, + pro_tx_hash, + &voting_key, + 2, + Some("VotePoll ContestedDocumentResourceVotePoll(ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }) not available for voting: Locked"), + platform_version, + ); + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: finished_vote_info::FinishedVoteOutcome::Locked + as i32, + won_by_identity_id: None, + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(2)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(50)); + } + } + + #[test] + fn test_queries_after_document_distribution() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + // Let's check that the contest is still seen (even though it's closed) + + let domain = dpns_contract + .document_type_for_name("domain") + .expect("expected a profile document type"); + + let index_name = "parentNameAndLabel".to_string(); + + let config = bincode::config::standard() + .with_big_endian() + .with_no_limit(); + + let dash_encoded = bincode::encode_to_vec(Value::Text("dash".to_string()), config) + .expect("expected to encode value"); + + let query_validation_result = platform + .query_contested_resources( + GetContestedResourcesRequest { + version: Some(get_contested_resources_request::Version::V0( + GetContestedResourcesRequestV0 { + contract_id: dpns_contract.id().to_vec(), + document_type_name: domain.name().clone(), + index_name: index_name.clone(), + start_index_values: vec![dash_encoded], + end_index_values: vec![], + start_at_value_info: None, + count: None, + order_ascending: true, + prove: true, + }, + )), + }, + &platform_state, + platform_version, + ) + .expect("expected to execute query") + .into_data() + .expect("expected query to be valid"); + + let get_contested_resources_response::Version::V0( + GetContestedResourcesResponseV0 { + metadata: _, + result, + }, + ) = query_validation_result.version.expect("expected a version"); + + let Some(get_contested_resources_response_v0::Result::Proof(proof)) = result else { + panic!("expected proof") + }; + + let resolved_contested_document_vote_poll_drive_query = + ResolvedVotePollsByDocumentTypeQuery { + contract: DataContractResolvedInfo::BorrowedDataContract( + dpns_contract.as_ref(), + ), + document_type_name: domain.name(), + index_name: &index_name, + start_index_values: &vec!["dash".into()], + end_index_values: &vec![], + limit: None, + order_ascending: true, + start_at_value: &None, + }; + + let (_, contests) = resolved_contested_document_vote_poll_drive_query + .verify_contests_proof(proof.grovedb_proof.as_ref(), platform_version) + .expect("expected to verify proof"); + + assert_eq!(contests.len(), 1); + + { + let (contenders, abstaining, locking, finished_info) = get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + { + let (contenders, abstaining, locking, finished_info) = get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::Documents, + platform_version, + ); + + assert_eq!(finished_info, None); + + assert_eq!(contenders.len(), 0); + + assert_eq!(abstaining, None); + + assert_eq!(locking, None); + } + + { + let (contenders, abstaining, locking, finished_info) = get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::VoteTally, + platform_version, + ); + + assert_eq!( + finished_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + } + + #[test] + fn test_document_distribution_to_contract() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_contract_name_contest( + &mut platform, + &platform_state, + 600, + "cards", + platform_version, + ); + + perform_votes_multi( + &mut platform, + &dpns_contract, + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "cards", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "cards", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), second_contender.document()); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "cards", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: 1209900000, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "cards", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + } + + #[test] + fn test_document_distribution_does_not_affect_other_contests() { + let platform_version = PlatformVersion::latest(); + let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "quantum", + 10, + None, + platform_version, + ); + + let max_join_time = platform_version + .dpp + .validation + .voting + .allow_other_contenders_time_testing_ms; + + let platform_state = platform.state.load(); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: max_join_time + 100, // Less than 2 weeks + height: 5000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let (contender_3, contender_4, _) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 9, + "alpha", + platform_version, + ); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + let mut platform_state = (**platform_state).clone(); + + let time_after_distribution = platform_version + .dpp + .voting_versions + .default_vote_poll_time_duration_test_network_ms + + 10_000; + + let block_info = BlockInfo { + time_ms: time_after_distribution, + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // At this point the quantum document should have been awarded to contender 1. + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(FinishedVoteInfo { + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), + finished_at_block_height: 10000, + finished_at_core_block_height: 42, + finished_at_block_time_ms: time_after_distribution, + finished_at_epoch: 0 + }) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); + + assert_eq!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_1.id()); + + assert_eq!(second_contender.identity_id(), contender_2.id()); + + assert_eq!(first_contender.vote_tally(), Some(50)); + + assert_eq!(second_contender.vote_tally(), Some(5)); + + assert_eq!(abstaining, Some(10)); + + assert_eq!(locking, Some(3)); + } + + // At this point the alpha document should not have been awarded + + { + let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), &None); + + assert_ne!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_ne!(first_contender.document(), &None); + + assert_ne!(second_contender.document(), &None); + + assert_eq!(first_contender.identity_id(), contender_3.id()); + + assert_eq!(second_contender.identity_id(), contender_4.id()); + + assert_eq!(first_contender.vote_tally(), Some(0)); + + assert_eq!(second_contender.vote_tally(), Some(0)); + + assert_eq!(abstaining, Some(0)); + + assert_eq!(locking, Some(0)); + } + } + + #[test] + fn test_document_distribution_fix_for_testnet_no_votes_v1() { + // There was an issue that we need to repair on testnet. + // Documents will have been deleted + // Let's verify that the fix works as intended + let platform_version = PlatformVersion::first(); + + let platform_config = PlatformConfig::default_for_network(Network::Testnet); + + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) + .build_with_mock_rpc() + .set_genesis_state(); + + let platform_state = platform.state.load(); + + let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 7, + "quantum", + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_1.id()), 50), + (TowardsIdentity(contender_2.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "quantum", + 10, + None, + platform_version, + ); + + let platform_state = platform.state.load(); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_000_000_000, // Less than 2 weeks + height: 5000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let (_contender_3, _contender_4, _) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 9, + "alpha", + platform_version, + ); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); + + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + let mut platform_state = (**platform_state).clone(); + + let block_info = BlockInfo { + time_ms: 1_209_900_000, //2 weeks and 300s + height: 10000, + core_height: 42, + epoch: Default::default(), + }; + + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); + + platform.state.store(Arc::new(platform_state)); + + let platform_state = platform.state.load(); + + let transaction = platform.drive.grove.start_transaction(); + + platform + .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), @@ -6270,7 +9650,7 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. + // At this point the quantum document should have been awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( @@ -6312,13 +9692,13 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(1)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(1)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(1)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(1)); + assert_eq!(locking, Some(3)); } { @@ -6357,90 +9737,76 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(1)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(1)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(1)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(1)); + assert_eq!(locking, Some(3)); } - } - - #[test] - fn test_document_distribution_single_vote() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); - - let platform_state = platform.state.load(); - - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); - - perform_votes_multi( - &mut platform, - dpns_contract.as_ref(), - vec![(TowardsIdentity(contender_1.id()), 1)], - "quantum", - 10, - platform_version, - ); - - let platform_state = platform.state.load(); - - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); - - assert_eq!(finished_vote_info, None); - - assert_eq!(contenders.len(), 2); - - let first_contender = contenders.first().unwrap(); - let second_contender = contenders.last().unwrap(); + // At this point the alpha document should not have been awarded - assert_ne!(first_contender.document(), second_contender.document()); + { + let config = bincode::config::standard() + .with_big_endian() + .with_no_limit(); - assert_eq!(first_contender.identity_id(), contender_1.id()); + let dash_encoded = + bincode::encode_to_vec(Value::Text("dash".to_string()), config) + .expect("expected to encode the word dash"); - assert_eq!(second_contender.identity_id(), contender_2.id()); + let alpha_encoded = bincode::encode_to_vec( + Value::Text(convert_to_homograph_safe_chars("alpha")), + config, + ) + .expect("expected to encode the word quantum"); - assert_eq!(first_contender.vote_tally(), Some(1)); + let index_name = "parentNameAndLabel".to_string(); - assert_eq!(second_contender.vote_tally(), Some(0)); + let query_validation_result = platform.query_contested_resource_vote_state( + GetContestedResourceVoteStateRequest { + version: Some(get_contested_resource_vote_state_request::Version::V0( + GetContestedResourceVoteStateRequestV0 { + contract_id: dpns_contract.id().to_vec(), + document_type_name: "domain".to_string(), + index_name: index_name.clone(), + index_values: vec![dash_encoded.clone(), alpha_encoded.clone()], + result_type: ResultType::DocumentsAndVoteTally as i32, + allow_include_locked_and_abstaining_vote_tally: true, + start_at_identifier_info: None, + count: None, + prove: false, + }, + )), + }, + &platform_state, + platform_version, + ); - assert_eq!(abstaining, Some(0)); + assert_matches!( + query_validation_result, + Err(Error::Drive(drive::error::Error::GroveDB( + drive::grovedb::Error::CorruptedReferencePathKeyNotFound(_) + ))) + ) + } - assert_eq!(locking, Some(0)); + // Now that we know the error exists, let's make sure it is fixed when going to v2 let mut platform_state = (**platform_state).clone(); - let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, + let block_info_later = BlockInfo { + time_ms: 1_409_900_000, //a bit later + height: 10050, core_height: 42, epoch: Default::default(), }; platform_state.set_last_committed_block_info(Some( ExtendedBlockInfoV0 { - basic_info: block_info, + basic_info: block_info_later, app_hash: platform .drive .grove @@ -6460,14 +9826,19 @@ mod tests { let platform_state = platform.state.load(); + let mut block_platform_state = (**platform_state).clone(); + + block_platform_state.set_current_protocol_version_in_consensus(2); + let transaction = platform.drive.grove.start_transaction(); platform .check_for_ended_vote_polls( &platform_state, + &block_platform_state, &block_info, Some(&transaction), - platform_version, + PlatformVersion::get(2).unwrap(), ) .expect("expected to check for ended vote polls"); @@ -6478,7 +9849,7 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. + // The quantum document should still be awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( @@ -6520,13 +9891,13 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(1)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(0)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(0)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(0)); + assert_eq!(locking, Some(3)); } { @@ -6565,119 +9936,57 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(1)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(0)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(0)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(0)); + assert_eq!(locking, Some(3)); } - } - - #[test] - fn test_document_distribution_no_votes() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); - - let platform_state = platform.state.load(); - - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); - - let platform_state = platform.state.load(); - - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); - - assert_eq!(finished_vote_info, None); - - assert_eq!(contenders.len(), 2); - - let first_contender = contenders.first().unwrap(); - - let second_contender = contenders.last().unwrap(); - - assert_ne!(first_contender.document(), second_contender.document()); - assert_eq!(first_contender.identity_id(), contender_1.id()); - - assert_eq!(second_contender.identity_id(), contender_2.id()); - - assert_eq!(first_contender.vote_tally(), Some(0)); - - assert_eq!(second_contender.vote_tally(), Some(0)); - - assert_eq!(abstaining, Some(0)); - - assert_eq!(locking, Some(0)); - - let mut platform_state = (**platform_state).clone(); + // The alpha document should not exist at all - let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, - core_height: 42, - epoch: Default::default(), - }; + { + let (contenders, _abstaining, _locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + false, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); - platform_state.set_last_committed_block_info(Some( - ExtendedBlockInfoV0 { - basic_info: block_info, - app_hash: platform - .drive - .grove - .root_hash(None, &platform_version.drive.grove_version) - .unwrap() - .unwrap(), - quorum_hash: [0u8; 32], - block_id_hash: [0u8; 32], - proposer_pro_tx_hash: [0u8; 32], - signature: [0u8; 96], - round: 0, - } - .into(), - )); + assert_eq!(finished_vote_info, None); - platform.state.store(Arc::new(platform_state)); + assert_eq!(contenders.len(), 0); + } - let platform_state = platform.state.load(); + { + let (contenders, _abstaining, _locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + false, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); - let transaction = platform.drive.grove.start_transaction(); + assert_eq!(finished_vote_info, None); - platform - .check_for_ended_vote_polls( - &platform_state, - &block_info, - Some(&transaction), - platform_version, - ) - .expect("expected to check for ended vote polls"); + assert_eq!(contenders.len(), 0); + } - platform - .drive - .grove - .commit_transaction(transaction) - .unwrap() - .expect("expected to commit transaction"); + // At this point everything should be "clean" except previously awarded contests, let's make sure they still are good - // At this point the document should have been awarded to contender 1. + // The quantum document should still be awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( @@ -6686,7 +9995,7 @@ mod tests { &dpns_contract, "quantum", None, - false, + true, None, ResultType::DocumentsAndVoteTally, platform_version, @@ -6719,13 +10028,13 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(0)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(0)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(0)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(0)); + assert_eq!(locking, Some(3)); } { @@ -6764,88 +10073,49 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(0)); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(second_contender.vote_tally(), Some(0)); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(abstaining, Some(0)); + assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(0)); + assert_eq!(locking, Some(3)); } - } - - #[test] - fn test_document_locking() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); - let platform_state = platform.state.load(); + // We keep seed 9 to use on the same identities - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); + let (contender_3, contender_4, _) = + create_dpns_identity_name_contest_skip_creating_identities( + &mut platform, + &platform_state, + 9, + "alpha", + Some(2), // We need a nonce offset + platform_version, + ); perform_votes_multi( &mut platform, dpns_contract.as_ref(), vec![ - (TowardsIdentity(contender_1.id()), 20), - (TowardsIdentity(contender_2.id()), 5), + (TowardsIdentity(contender_3.id()), 50), + (TowardsIdentity(contender_4.id()), 5), (ResourceVoteChoice::Abstain, 10), - (ResourceVoteChoice::Lock, 60), + (ResourceVoteChoice::Lock, 3), ], - "quantum", - 10, + "alpha", + 658, + Some(1), platform_version, ); let platform_state = platform.state.load(); - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); - - assert_eq!(finished_vote_info, None); - - assert_eq!(contenders.len(), 2); - - let first_contender = contenders.first().unwrap(); - - let second_contender = contenders.last().unwrap(); - - assert_ne!(first_contender.document(), second_contender.document()); - - assert_eq!(first_contender.identity_id(), contender_1.id()); - - assert_eq!(second_contender.identity_id(), contender_2.id()); - - assert_eq!(first_contender.vote_tally(), Some(20)); - - assert_eq!(second_contender.vote_tally(), Some(5)); - - assert_eq!(abstaining, Some(10)); - - assert_eq!(locking, Some(60)); - let mut platform_state = (**platform_state).clone(); let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, + time_ms: 3_000_000_000, // more than 2 weeks more + height: 5100, core_height: 42, epoch: Default::default(), }; @@ -6876,6 +10146,7 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), @@ -6890,13 +10161,14 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. + // At this point the alpha document should have been awarded to contender 1. + { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( &platform, &platform_state, &dpns_contract, - "quantum", + "alpha", None, true, None, @@ -6907,12 +10179,12 @@ mod tests { assert_eq!( finished_vote_info, Some(FinishedVoteInfo { - finished_vote_outcome: finished_vote_info::FinishedVoteOutcome::Locked - as i32, - won_by_identity_id: None, - finished_at_block_height: 10000, + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_3.id().to_vec()), + finished_at_block_height: 5100, finished_at_core_block_height: 42, - finished_at_block_time_ms: 1209900000, + finished_at_block_time_ms: 3_000_000_000, finished_at_epoch: 0 }) ); @@ -6927,17 +10199,17 @@ mod tests { assert_eq!(second_contender.document(), &None); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(first_contender.identity_id(), contender_3.id()); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(second_contender.identity_id(), contender_4.id()); - assert_eq!(first_contender.vote_tally(), Some(20)); + assert_eq!(first_contender.vote_tally(), Some(50)); assert_eq!(second_contender.vote_tally(), Some(5)); assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(60)); + assert_eq!(locking, Some(3)); } { @@ -6946,7 +10218,7 @@ mod tests { &platform, &platform_state, &dpns_contract, - "quantum", + "alpha", None, true, None, @@ -6956,7 +10228,10 @@ mod tests { assert_eq!( finished_vote_info, - Some((ContestedDocumentVotePollWinnerInfo::Locked, block_info)) + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_3.id()), + block_info + )) ); assert_eq!(contenders.len(), 2); @@ -6969,24 +10244,32 @@ mod tests { assert_eq!(second_contender.document(), &None); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(first_contender.identity_id(), contender_3.id()); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(second_contender.identity_id(), contender_4.id()); - assert_eq!(first_contender.vote_tally(), Some(20)); + assert_eq!(first_contender.vote_tally(), Some(50)); assert_eq!(second_contender.vote_tally(), Some(5)); assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(60)); + assert_eq!(locking, Some(3)); } } #[test] - fn test_new_vote_after_document_distribution() { - let platform_version = PlatformVersion::latest(); + fn test_document_distribution_fix_for_testnet_with_votes_v1() { + // There was an issue that we need to repair on testnet. + // Documents will have been deleted + // Let's verify that the fix works as intended + let platform_version = PlatformVersion::first(); + + let platform_config = PlatformConfig::default_for_network(Network::Testnet); + let mut platform = TestPlatformBuilder::new() + .with_config(platform_config) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc() .set_genesis_state(); @@ -7011,47 +10294,90 @@ mod tests { ], "quantum", 10, - platform_version, - ); - - let platform_state = platform.state.load(); - - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, None, - ResultType::DocumentsAndVoteTally, platform_version, ); - assert_eq!(finished_vote_info, None); + let platform_state = platform.state.load(); - assert_eq!(contenders.len(), 2); + // Jump to the future on block 5000 to reproduce testnet issue + let mut platform_state = (**platform_state).clone(); - let first_contender = contenders.first().unwrap(); + let block_info = BlockInfo { + time_ms: 1_000_000_000, // Less than 2 weeks + height: 5000, + core_height: 42, + epoch: Default::default(), + }; - let second_contender = contenders.last().unwrap(); + platform_state.set_last_committed_block_info(Some( + ExtendedBlockInfoV0 { + basic_info: block_info, + app_hash: platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .unwrap(), + quorum_hash: [0u8; 32], + block_id_hash: [0u8; 32], + proposer_pro_tx_hash: [0u8; 32], + signature: [0u8; 96], + round: 0, + } + .into(), + )); - assert_ne!(first_contender.document(), second_contender.document()); + platform.state.store(Arc::new(platform_state)); - assert_eq!(first_contender.identity_id(), contender_1.id()); + // Create the second alpha contest + let platform_state = platform.state.load(); - assert_eq!(second_contender.identity_id(), contender_2.id()); + let (contender_3, contender_4, _) = create_dpns_identity_name_contest( + &mut platform, + &platform_state, + 9, + "alpha", + platform_version, + ); - assert_eq!(first_contender.vote_tally(), Some(50)); + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_3.id()), 10), + (TowardsIdentity(contender_4.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "alpha", + 540500, + None, + platform_version, + ); - assert_eq!(second_contender.vote_tally(), Some(5)); + let transaction = platform.drive.grove.start_transaction(); - assert_eq!(abstaining, Some(10)); + platform + .check_for_ended_vote_polls( + &platform_state, + &platform_state, + &block_info, + Some(&transaction), + platform_version, + ) + .expect("expected to check for ended vote polls"); - assert_eq!(locking, Some(3)); + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); let mut platform_state = (**platform_state).clone(); + // We jump to the future to make sure the first (quantum) contest is finished let block_info = BlockInfo { time_ms: 1_209_900_000, //2 weeks and 300s height: 10000, @@ -7085,6 +10411,7 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), @@ -7099,28 +10426,7 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. - - // now let's try to do another vote - - let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 5000, platform_version); - - let platform_state = platform.state.load(); - - perform_vote( - &mut platform, - &platform_state, - dpns_contract.as_ref(), - TowardsIdentity(contender_1.id()), - "quantum", - &signer, - pro_tx_hash, - &voting_key, - 2, - Some("VotePoll ContestedDocumentResourceVotePoll(ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }) not available for voting: Awarded(BjNejy4r9QAvLHpQ9Yq6yRMgNymeGZ46d48fJxJbMrfW)"), - platform_version, - ); + // At this point the quantum document should have been awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( @@ -7170,87 +10476,118 @@ mod tests { assert_eq!(locking, Some(3)); } - } - #[test] - fn test_new_vote_after_lock() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); - let platform_state = platform.state.load(); + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); - let (contender_1, contender_2, dpns_contract) = create_dpns_identity_name_contest( - &mut platform, - &platform_state, - 7, - "quantum", - platform_version, - ); + assert_eq!(contenders.len(), 2); + + let first_contender = contenders.first().unwrap(); + + let second_contender = contenders.last().unwrap(); + + assert_eq!(first_contender.document(), &None); - perform_votes_multi( - &mut platform, - dpns_contract.as_ref(), - vec![ - (TowardsIdentity(contender_1.id()), 2), - (TowardsIdentity(contender_2.id()), 5), - (ResourceVoteChoice::Abstain, 10), - (ResourceVoteChoice::Lock, 50), - ], - "quantum", - 10, - platform_version, - ); + assert_eq!(second_contender.document(), &None); - let platform_state = platform.state.load(); + assert_eq!(first_contender.identity_id(), contender_1.id()); - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "quantum", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); + assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(finished_vote_info, None); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_eq!(contenders.len(), 2); + assert_eq!(second_contender.vote_tally(), Some(5)); - let first_contender = contenders.first().unwrap(); + assert_eq!(abstaining, Some(10)); - let second_contender = contenders.last().unwrap(); + assert_eq!(locking, Some(3)); + } - assert_ne!(first_contender.document(), second_contender.document()); + // At this point the alpha document should not have been awarded - assert_eq!(first_contender.identity_id(), contender_1.id()); + // Prove that we have a corrupted reference due to deletion of all documents + // of the same document type on the first (quantum) contest completion - assert_eq!(second_contender.identity_id(), contender_2.id()); + { + let config = bincode::config::standard() + .with_big_endian() + .with_no_limit(); - assert_eq!(first_contender.vote_tally(), Some(2)); + let dash_encoded = + bincode::encode_to_vec(Value::Text("dash".to_string()), config) + .expect("expected to encode the word dash"); - assert_eq!(second_contender.vote_tally(), Some(5)); + let alpha_encoded = bincode::encode_to_vec( + Value::Text(convert_to_homograph_safe_chars("alpha")), + config, + ) + .expect("expected to encode the word quantum"); - assert_eq!(abstaining, Some(10)); + let index_name = "parentNameAndLabel".to_string(); - assert_eq!(locking, Some(50)); + let query_validation_result = platform.query_contested_resource_vote_state( + GetContestedResourceVoteStateRequest { + version: Some(get_contested_resource_vote_state_request::Version::V0( + GetContestedResourceVoteStateRequestV0 { + contract_id: dpns_contract.id().to_vec(), + document_type_name: "domain".to_string(), + index_name: index_name.clone(), + index_values: vec![dash_encoded.clone(), alpha_encoded.clone()], + result_type: ResultType::DocumentsAndVoteTally as i32, + allow_include_locked_and_abstaining_vote_tally: true, + start_at_identifier_info: None, + count: None, + prove: false, + }, + )), + }, + &platform_state, + platform_version, + ); + + assert_matches!( + query_validation_result, + Err(Error::Drive(drive::error::Error::GroveDB( + drive::grovedb::Error::CorruptedReferencePathKeyNotFound(_) + ))) + ) + } + + // Now that we know the error exists, let's make sure it is fixed when going to v2 let mut platform_state = (**platform_state).clone(); - let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, + // Jump to v2 + + let block_info_later = BlockInfo { + time_ms: 1_409_900_000, //a bit later + height: 10050, core_height: 42, epoch: Default::default(), }; platform_state.set_last_committed_block_info(Some( ExtendedBlockInfoV0 { - basic_info: block_info, + basic_info: block_info_later, app_hash: platform .drive .grove @@ -7270,14 +10607,19 @@ mod tests { let platform_state = platform.state.load(); + let mut block_platform_state = (**platform_state).clone(); + + block_platform_state.set_current_protocol_version_in_consensus(2); + let transaction = platform.drive.grove.start_transaction(); platform .check_for_ended_vote_polls( &platform_state, + &block_platform_state, &block_info, Some(&transaction), - platform_version, + PlatformVersion::get(2).unwrap(), ) .expect("expected to check for ended vote polls"); @@ -7288,28 +10630,7 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. - - // now let's try to do another vote - - let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 5000, platform_version); - - let platform_state = platform.state.load(); - - perform_vote( - &mut platform, - &platform_state, - dpns_contract.as_ref(), - TowardsIdentity(contender_1.id()), - "quantum", - &signer, - pro_tx_hash, - &voting_key, - 2, - Some("VotePoll ContestedDocumentResourceVotePoll(ContestedDocumentResourceVotePoll { contract_id: GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec, document_type_name: domain, index_name: parentNameAndLabel, index_values: [string dash, string quantum] }) not available for voting: Locked"), - platform_version, - ); + // The quantum document should still be awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( @@ -7327,9 +10648,9 @@ mod tests { assert_eq!( finished_vote_info, Some(FinishedVoteInfo { - finished_vote_outcome: finished_vote_info::FinishedVoteOutcome::Locked - as i32, - won_by_identity_id: None, + finished_vote_outcome: + finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, + won_by_identity_id: Some(contender_1.id().to_vec()), finished_at_block_height: 10000, finished_at_core_block_height: 42, finished_at_block_time_ms: 1209900000, @@ -7351,88 +10672,140 @@ mod tests { assert_eq!(second_contender.identity_id(), contender_2.id()); - assert_eq!(first_contender.vote_tally(), Some(2)); + assert_eq!(first_contender.vote_tally(), Some(50)); assert_eq!(second_contender.vote_tally(), Some(5)); assert_eq!(abstaining, Some(10)); - assert_eq!(locking, Some(50)); + assert_eq!(locking, Some(3)); } - } - #[test] - fn test_document_distribution_to_contract() { - let platform_version = PlatformVersion::latest(); - let mut platform = TestPlatformBuilder::new() - .build_with_mock_rpc() - .set_genesis_state(); + { + let (contenders, abstaining, locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "quantum", + None, + true, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); - let platform_state = platform.state.load(); + assert_eq!( + finished_vote_info, + Some(( + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + block_info + )) + ); - let (contender_1, contender_2, dpns_contract) = create_dpns_contract_name_contest( - &mut platform, - &platform_state, - 600, - "cards", - platform_version, - ); + assert_eq!(contenders.len(), 2); - perform_votes_multi( - &mut platform, - &dpns_contract, - vec![ - (TowardsIdentity(contender_1.id()), 50), - (TowardsIdentity(contender_2.id()), 5), - (ResourceVoteChoice::Abstain, 10), - (ResourceVoteChoice::Lock, 3), - ], - "cards", - 10, - platform_version, - ); + let first_contender = contenders.first().unwrap(); - let platform_state = platform.state.load(); + let second_contender = contenders.last().unwrap(); - let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( - &platform, - &platform_state, - &dpns_contract, - "cards", - None, - true, - None, - ResultType::DocumentsAndVoteTally, - platform_version, - ); + assert_eq!(first_contender.document(), &None); - assert_eq!(finished_vote_info, None); + assert_eq!(second_contender.document(), &None); - assert_eq!(contenders.len(), 2); + assert_eq!(first_contender.identity_id(), contender_1.id()); - let first_contender = contenders.first().unwrap(); + assert_eq!(second_contender.identity_id(), contender_2.id()); - let second_contender = contenders.last().unwrap(); + assert_eq!(first_contender.vote_tally(), Some(50)); - assert_ne!(first_contender.document(), second_contender.document()); + assert_eq!(second_contender.vote_tally(), Some(5)); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(abstaining, Some(10)); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(locking, Some(3)); + } - assert_eq!(first_contender.vote_tally(), Some(50)); + // The alpha document should not exist at all - assert_eq!(second_contender.vote_tally(), Some(5)); + { + let (contenders, _abstaining, _locking, finished_vote_info) = get_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + false, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); - assert_eq!(abstaining, Some(10)); + assert_eq!(finished_vote_info, None); - assert_eq!(locking, Some(3)); + assert_eq!(contenders.len(), 0); + } + + { + let (contenders, _abstaining, _locking, finished_vote_info) = + get_proved_vote_states( + &platform, + &platform_state, + &dpns_contract, + "alpha", + None, + false, + None, + ResultType::DocumentsAndVoteTally, + platform_version, + ); + + assert_eq!(finished_vote_info, None); + + assert_eq!(contenders.len(), 0); + } + + // At this point everything should be "clean" except previously awarded contests, let's make sure they still are good + + // We want to create the same contest to make sure that there are no + // leftovers and now logic works correctly + + // We keep seed 9 to use on the same identities + + let (contender_3, contender_4, _) = + create_dpns_identity_name_contest_skip_creating_identities( + &mut platform, + &platform_state, + 9, + "alpha", + Some(2), // We need a nonce offset + platform_version, + ); + + perform_votes_multi( + &mut platform, + dpns_contract.as_ref(), + vec![ + (TowardsIdentity(contender_3.id()), 50), + (TowardsIdentity(contender_4.id()), 5), + (ResourceVoteChoice::Abstain, 10), + (ResourceVoteChoice::Lock, 3), + ], + "alpha", + 658, + Some(1), + platform_version, + ); + + let platform_state = platform.state.load(); let mut platform_state = (**platform_state).clone(); + // Jump to the future to make sure the new alpha contest is finished + let block_info = BlockInfo { - time_ms: 1_209_900_000, //2 weeks and 300s - height: 10000, + time_ms: 3_000_000_000, // more than 2 weeks more + height: 5100, core_height: 42, epoch: Default::default(), }; @@ -7463,6 +10836,7 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), @@ -7477,14 +10851,14 @@ mod tests { .unwrap() .expect("expected to commit transaction"); - // At this point the document should have been awarded to contender 1. + // At this point the alpha document should have been awarded to contender 1. { let (contenders, abstaining, locking, finished_vote_info) = get_vote_states( &platform, &platform_state, &dpns_contract, - "cards", + "alpha", None, true, None, @@ -7497,10 +10871,10 @@ mod tests { Some(FinishedVoteInfo { finished_vote_outcome: finished_vote_info::FinishedVoteOutcome::TowardsIdentity as i32, - won_by_identity_id: Some(contender_1.id().to_vec()), - finished_at_block_height: 10000, + won_by_identity_id: Some(contender_3.id().to_vec()), + finished_at_block_height: 5100, finished_at_core_block_height: 42, - finished_at_block_time_ms: 1209900000, + finished_at_block_time_ms: 3_000_000_000, finished_at_epoch: 0 }) ); @@ -7515,9 +10889,9 @@ mod tests { assert_eq!(second_contender.document(), &None); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(first_contender.identity_id(), contender_3.id()); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(second_contender.identity_id(), contender_4.id()); assert_eq!(first_contender.vote_tally(), Some(50)); @@ -7534,7 +10908,7 @@ mod tests { &platform, &platform_state, &dpns_contract, - "cards", + "alpha", None, true, None, @@ -7545,7 +10919,7 @@ mod tests { assert_eq!( finished_vote_info, Some(( - ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_1.id()), + ContestedDocumentVotePollWinnerInfo::WonByIdentity(contender_3.id()), block_info )) ); @@ -7560,9 +10934,9 @@ mod tests { assert_eq!(second_contender.document(), &None); - assert_eq!(first_contender.identity_id(), contender_1.id()); + assert_eq!(first_contender.identity_id(), contender_3.id()); - assert_eq!(second_contender.identity_id(), contender_2.id()); + assert_eq!(second_contender.identity_id(), contender_4.id()); assert_eq!(first_contender.vote_tally(), Some(50)); @@ -7581,6 +10955,7 @@ mod tests { fn test_masternode_vote_again_same_vote_should_return_error() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -7595,7 +10970,7 @@ mod tests { ); let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10, platform_version); + setup_masternode_voting_identity(&mut platform, 10, platform_version); let platform_state = platform.state.load(); @@ -7632,6 +11007,7 @@ mod tests { fn test_masternode_vote_again_different_choice() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -7646,7 +11022,7 @@ mod tests { ); let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10, platform_version); + setup_masternode_voting_identity(&mut platform, 10, platform_version); let platform_state = platform.state.load(); @@ -7713,6 +11089,7 @@ mod tests { fn test_masternode_vote_again_different_choice_too_many_times() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -7727,7 +11104,7 @@ mod tests { ); let (pro_tx_hash, _masternode, signer, voting_key) = - setup_masternode_identity(&mut platform, 10, platform_version); + setup_masternode_voting_identity(&mut platform, 10, platform_version); let platform_state = platform.state.load(); @@ -7824,6 +11201,7 @@ mod tests { fn test_masternode_vote_removals() { let platform_version = PlatformVersion::latest(); let mut platform = TestPlatformBuilder::new() + .with_latest_protocol_version() .build_with_mock_rpc() .set_genesis_state(); @@ -7848,6 +11226,7 @@ mod tests { ], "quantum", 10, + None, platform_version, ); @@ -7959,6 +11338,7 @@ mod tests { platform .check_for_ended_vote_polls( + &platform_state, &platform_state, &block_info, Some(&transaction), diff --git a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs index 00f0933f5c..b0986e026d 100644 --- a/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs +++ b/packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/mod.rs @@ -51,7 +51,7 @@ impl ValidationMode { } #[cfg(test)] -pub(crate) mod tests { +pub(in crate::execution) mod tests { use crate::rpc::core::MockCoreRPCLike; use crate::test::helpers::setup::TempPlatform; use dpp::block::block_info::BlockInfo; @@ -125,7 +125,7 @@ pub(crate) mod tests { use crate::execution::types::processed_block_fees_outcome::v0::ProcessedBlockFeesOutcome; /// We add an identity, but we also add the same amount to system credits - pub(crate) fn setup_identity_with_system_credits( + pub(in crate::execution) fn setup_identity_with_system_credits( platform: &mut TempPlatform, seed: u64, credits: Credits, @@ -138,7 +138,7 @@ pub(crate) mod tests { setup_identity(platform, seed, credits) } - pub(crate) fn setup_identity( + pub(in crate::execution) fn setup_identity( platform: &mut TempPlatform, seed: u64, credits: Credits, @@ -196,7 +196,50 @@ pub(crate) mod tests { (identity, signer, critical_public_key) } - pub(crate) fn setup_identity_return_master_key( + pub(in crate::execution) fn setup_identity_without_adding_it( + seed: u64, + credits: Credits, + ) -> (Identity, SimpleSigner, IdentityPublicKey) { + let platform_version = PlatformVersion::latest(); + let mut signer = SimpleSigner::default(); + + let mut rng = StdRng::seed_from_u64(seed); + + let (master_key, master_private_key) = + IdentityPublicKey::random_ecdsa_master_authentication_key_with_rng( + 0, + &mut rng, + platform_version, + ) + .expect("expected to get key pair"); + + signer.add_key(master_key.clone(), master_private_key.clone()); + + let (critical_public_key, private_key) = + IdentityPublicKey::random_ecdsa_critical_level_authentication_key_with_rng( + 1, + &mut rng, + platform_version, + ) + .expect("expected to get key pair"); + + signer.add_key(critical_public_key.clone(), private_key.clone()); + + let identity: Identity = IdentityV0 { + id: Identifier::random_with_rng(&mut rng), + public_keys: BTreeMap::from([ + (0, master_key.clone()), + (1, critical_public_key.clone()), + ]), + balance: credits, + revision: 0, + } + .into(); + + (identity, signer, critical_public_key) + } + + pub(in crate::execution) fn setup_identity_return_master_key( platform: &mut TempPlatform, seed: u64, credits: Credits, @@ -299,9 +342,10 @@ pub(crate) mod tests { key } - pub(crate) fn setup_identity_with_withdrawal_key_and_system_credits( + pub(in crate::execution) fn setup_identity_with_withdrawal_key_and_system_credits( platform: &mut TempPlatform, seed: u64, + withdrawal_key_type: KeyType, credits: Credits, ) -> (Identity, SimpleSigner, IdentityPublicKey, IdentityPublicKey) { let platform_version = PlatformVersion::latest(); @@ -339,7 +383,7 @@ pub(crate) mod tests { &mut rng, Purpose::TRANSFER, SecurityLevel::CRITICAL, - KeyType::ECDSA_SECP256K1, + withdrawal_key_type, None, platform_version, ) @@ -379,7 +423,7 @@ pub(crate) mod tests { (identity, signer, critical_public_key, withdrawal_public_key) } - pub(crate) fn process_state_transitions( + pub(in crate::execution) fn process_state_transitions( platform: &TempPlatform, state_transitions: &[StateTransition], block_info: BlockInfo, @@ -427,7 +471,6 @@ pub(crate) mod tests { app_hash: None, }), epoch_info: EpochInfo::V0(EpochInfoV0::default()), - hpmn_count: 0, unsigned_withdrawal_transactions: Default::default(), block_platform_state: platform_state.clone(), proposer_results: None, @@ -453,7 +496,7 @@ pub(crate) mod tests { (fee_results, processed_block_fees) } - pub(crate) fn fetch_expected_identity_balance( + pub(in crate::execution) fn fetch_expected_identity_balance( platform: &TempPlatform, identity_id: Identifier, platform_version: &PlatformVersion, @@ -468,7 +511,113 @@ pub(crate) mod tests { .expect("expected a balance") ); } - pub(crate) fn setup_masternode_identity( + + pub(in crate::execution) fn setup_masternode_owner_identity( + platform: &mut TempPlatform, + seed: u64, + credits: Credits, + platform_version: &PlatformVersion, + ) -> (Identity, SimpleSigner, IdentityPublicKey, IdentityPublicKey) { + let mut signer = SimpleSigner::default(); + + platform + .drive + .add_to_system_credits(credits, None, platform_version) + .expect("expected to add to system credits"); + + let mut rng = StdRng::seed_from_u64(seed); + + let (transfer_key, transfer_private_key) = + IdentityPublicKey::random_masternode_transfer_key_with_rng( + 0, + &mut rng, + platform_version, + ) + .expect("expected to get key pair"); + + let (owner_key, owner_private_key) = + IdentityPublicKey::random_masternode_owner_key_with_rng(1, &mut rng, platform_version) + .expect("expected to get key pair"); + + let owner_address = owner_key + .public_key_hash() + .expect("expected a public key hash"); + + let payout_address = transfer_key + .public_key_hash() + .expect("expected a public key hash"); + + signer.add_key(transfer_key.clone(), transfer_private_key.clone()); + signer.add_key(owner_key.clone(), owner_private_key.clone()); + + let pro_tx_hash_bytes: [u8; 32] = rng.gen(); + + let identity: Identity = IdentityV0 { + id: pro_tx_hash_bytes.into(), + public_keys: BTreeMap::from([(0, transfer_key.clone()), (1, owner_key.clone())]), + balance: credits, + revision: 0, + } + .into(); + + // We just add this identity to the system first + + platform + .drive + .add_new_identity( + identity.clone(), + true, + &BlockInfo::default(), + true, + None, + platform_version, + ) + .expect("expected to add a new identity"); + + let mut platform_state = platform.state.load().clone().deref().clone(); + + let pro_tx_hash = ProTxHash::from_byte_array(pro_tx_hash_bytes); + + let random_ip = Ipv4Addr::new( + rng.gen_range(0..255), + rng.gen_range(0..255), + rng.gen_range(0..255), + rng.gen_range(0..255), + ); + + platform_state.full_masternode_list_mut().insert( + pro_tx_hash, + MasternodeListItem { + node_type: MasternodeType::Regular, + pro_tx_hash, + collateral_hash: Txid::from_byte_array(rng.gen()), + collateral_index: 0, + collateral_address: rng.gen(), + operator_reward: 0.0, + state: DMNState { + service: SocketAddr::new(IpAddr::V4(random_ip), 19999), + registered_height: 0, + pose_revived_height: None, + pose_ban_height: None, + revocation_reason: 0, + owner_address, + voting_address: rng.gen(), + payout_address, + pub_key_operator: vec![], + operator_payout_address: None, + platform_node_id: None, + platform_p2p_port: None, + platform_http_port: None, + }, + }, + ); + + platform.state.store(Arc::new(platform_state)); + + (identity, signer, owner_key, transfer_key) + } + + pub(in crate::execution) fn setup_masternode_voting_identity( platform: &mut TempPlatform, seed: u64, platform_version: &PlatformVersion, @@ -557,7 +706,7 @@ pub(crate) mod tests { (pro_tx_hash_bytes.into(), identity, signer, voting_key) } - pub(crate) fn take_down_masternode_identities( + pub(in crate::execution) fn take_down_masternode_identities( platform: &mut TempPlatform, masternode_identities: &Vec, ) { @@ -574,7 +723,7 @@ pub(crate) mod tests { platform.state.store(Arc::new(platform_state)); } - pub(crate) fn create_dpns_name_contest_give_key_info( + pub(in crate::execution) fn create_dpns_name_contest_give_key_info( platform: &mut TempPlatform, platform_state: &PlatformState, seed: u64, @@ -619,6 +768,8 @@ pub(crate) mod tests { platform_state, rng, name, + None, + false, platform_version, ); @@ -645,7 +796,7 @@ pub(crate) mod tests { ) } - pub(crate) fn create_dpns_identity_name_contest( + pub(in crate::execution) fn create_dpns_identity_name_contest( platform: &mut TempPlatform, platform_state: &PlatformState, seed: u64, @@ -673,12 +824,51 @@ pub(crate) mod tests { platform_state, rng, name, + None, + false, platform_version, ); (identity_1_info.0, identity_2_info.0, dpns_contract) } - pub(crate) fn create_dpns_contract_name_contest( + /// This can be useful if we already created the identities and we reuse the seed + pub(in crate::execution) fn create_dpns_identity_name_contest_skip_creating_identities( + platform: &mut TempPlatform, + platform_state: &PlatformState, + seed: u64, + name: &str, + nonce_offset: Option, + platform_version: &PlatformVersion, + ) -> (Identity, Identity, Arc) { + let mut rng = StdRng::seed_from_u64(seed); + + let identity_1_info = setup_identity_without_adding_it(rng.gen(), dash_to_credits!(0.5)); + + let identity_2_info = setup_identity_without_adding_it(rng.gen(), dash_to_credits!(0.5)); + + // Flip them if needed so identity 1 id is always smaller than identity 2 id + let (identity_1_info, identity_2_info) = if identity_1_info.0.id() < identity_2_info.0.id() + { + (identity_1_info, identity_2_info) + } else { + (identity_2_info, identity_1_info) + }; + + let (_, _, dpns_contract) = create_dpns_name_contest_on_identities( + platform, + &identity_1_info, + &identity_2_info, + platform_state, + rng, + name, + nonce_offset, + true, //we should also skip preorder + platform_version, + ); + (identity_1_info.0, identity_2_info.0, dpns_contract) + } + + pub(in crate::execution) fn create_dpns_contract_name_contest( platform: &mut TempPlatform, platform_state: &PlatformState, seed: u64, @@ -734,6 +924,8 @@ pub(crate) mod tests { platform_state: &PlatformState, mut rng: StdRng, name: &str, + nonce_offset: Option, + skip_preorder: bool, platform_version: &PlatformVersion, ) -> ( ((Document, Bytes32), (Document, Bytes32)), @@ -857,7 +1049,7 @@ pub(crate) mod tests { preorder, entropy.0, key_1, - 2, + 2 + nonce_offset.unwrap_or_default(), 0, signer_1, platform_version, @@ -878,7 +1070,7 @@ pub(crate) mod tests { preorder, entropy.0, key_2, - 2, + 2 + nonce_offset.unwrap_or_default(), 0, signer_2, platform_version, @@ -899,7 +1091,7 @@ pub(crate) mod tests { domain, entropy.0, key_1, - 3, + 3 + nonce_offset.unwrap_or_default(), 0, signer_1, platform_version, @@ -919,7 +1111,7 @@ pub(crate) mod tests { domain, entropy.0, key_2, - 3, + 3 + nonce_offset.unwrap_or_default(), 0, signer_2, platform_version, @@ -933,37 +1125,51 @@ pub(crate) mod tests { .serialize_to_bytes() .expect("expected documents batch serialized state transition"); - let transaction = platform.drive.grove.start_transaction(); + if !skip_preorder { + let transaction = platform.drive.grove.start_transaction(); - let processing_result = platform - .platform - .process_raw_state_transitions( - &vec![ - documents_batch_create_serialized_preorder_transition_1.clone(), - documents_batch_create_serialized_preorder_transition_2.clone(), - ], - platform_state, - &BlockInfo::default_with_time( - platform_state - .last_committed_block_time_ms() - .unwrap_or_default() - + 3000, - ), - &transaction, - platform_version, - false, - None, - ) - .expect("expected to process state transition"); + let processing_result = platform + .platform + .process_raw_state_transitions( + &vec![ + documents_batch_create_serialized_preorder_transition_1.clone(), + documents_batch_create_serialized_preorder_transition_2.clone(), + ], + platform_state, + &BlockInfo::default_with_time( + platform_state + .last_committed_block_time_ms() + .unwrap_or_default() + + 3000, + ), + &transaction, + platform_version, + false, + None, + ) + .expect("expected to process state transition"); - platform - .drive - .grove - .commit_transaction(transaction) - .unwrap() - .expect("expected to commit transaction"); + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + let successful_count = processing_result + .execution_results() + .iter() + .filter(|result| { + assert_matches!( + result, + StateTransitionExecutionResult::SuccessfulExecution(_, _) + ); + true + }) + .count(); - assert_eq!(processing_result.valid_count(), 2); + assert_eq!(successful_count, 2); + } let transaction = platform.drive.grove.start_transaction(); @@ -995,7 +1201,19 @@ pub(crate) mod tests { .unwrap() .expect("expected to commit transaction"); - assert_eq!(processing_result.valid_count(), 2); + let successful_count = processing_result + .execution_results() + .iter() + .filter(|result| { + assert_matches!( + result, + StateTransitionExecutionResult::SuccessfulExecution(_, _) + ); + true + }) + .count(); + + assert_eq!(successful_count, 2); ( ((preorder_document_1, entropy), (document_1, entropy)), ((preorder_document_2, entropy), (document_2, entropy)), @@ -1287,7 +1505,7 @@ pub(crate) mod tests { ) } - pub(crate) fn add_contender_to_dpns_name_contest( + pub(in crate::execution) fn add_contender_to_dpns_name_contest( platform: &mut TempPlatform, platform_state: &PlatformState, seed: u64, @@ -1468,7 +1686,7 @@ pub(crate) mod tests { identity_1 } - pub(crate) fn verify_dpns_name_contest( + pub(in crate::execution) fn verify_dpns_name_contest( platform: &mut TempPlatform, platform_state: &Guard>, dpns_contract: &DataContract, @@ -1676,7 +1894,7 @@ pub(crate) mod tests { assert_eq!(second_contender.vote_tally(), Some(0)); } - pub(crate) fn perform_vote( + pub(in crate::execution) fn perform_vote( platform: &mut TempPlatform, platform_state: &Guard>, dpns_contract: &DataContract, @@ -1755,19 +1973,20 @@ pub(crate) mod tests { } } - pub(crate) fn perform_votes( + pub(in crate::execution) fn perform_votes( platform: &mut TempPlatform, dpns_contract: &DataContract, resource_vote_choice: ResourceVoteChoice, name: &str, count: u64, start_seed: u64, + nonce_offset: Option, platform_version: &PlatformVersion, ) -> Vec<(Identifier, Identity, SimpleSigner, IdentityPublicKey)> { let mut masternode_infos = vec![]; for i in 0..count { let (pro_tx_hash_bytes, voting_identity, signer, voting_key) = - setup_masternode_identity(platform, start_seed + i, platform_version); + setup_masternode_voting_identity(platform, start_seed + i, platform_version); let platform_state = platform.state.load(); @@ -1780,7 +1999,7 @@ pub(crate) mod tests { &signer, pro_tx_hash_bytes, &voting_key, - 1, + 1 + nonce_offset.unwrap_or_default(), None, platform_version, ); @@ -1790,12 +2009,13 @@ pub(crate) mod tests { masternode_infos } - pub(crate) fn perform_votes_multi( + pub(in crate::execution) fn perform_votes_multi( platform: &mut TempPlatform, dpns_contract: &DataContract, resource_vote_choices: Vec<(ResourceVoteChoice, u64)>, name: &str, start_seed: u64, + nonce_offset: Option, platform_version: &PlatformVersion, ) -> BTreeMap> { @@ -1809,6 +2029,7 @@ pub(crate) mod tests { name, count, count_aggregate, + nonce_offset, platform_version, ); masternodes_by_vote_choice.insert(resource_vote_choice, masternode_infos); @@ -1817,7 +2038,7 @@ pub(crate) mod tests { masternodes_by_vote_choice } - pub(crate) fn get_vote_states( + pub(in crate::execution) fn get_vote_states( platform: &TempPlatform, platform_state: &PlatformState, dpns_contract: &DataContract, @@ -1848,7 +2069,7 @@ pub(crate) mod tests { let dash_encoded = bincode::encode_to_vec(Value::Text("dash".to_string()), config) .expect("expected to encode the word dash"); - let quantum_encoded = + let name_encoded = bincode::encode_to_vec(Value::Text(convert_to_homograph_safe_chars(name)), config) .expect("expected to encode the word quantum"); @@ -1862,7 +2083,7 @@ pub(crate) mod tests { contract_id: dpns_contract.id().to_vec(), document_type_name: domain.name().clone(), index_name: index_name.clone(), - index_values: vec![dash_encoded.clone(), quantum_encoded.clone()], + index_values: vec![dash_encoded.clone(), name_encoded.clone()], result_type: result_type as i32, allow_include_locked_and_abstaining_vote_tally, start_at_identifier_info, @@ -1923,7 +2144,7 @@ pub(crate) mod tests { ) } - pub(crate) fn get_proved_vote_states( + pub(in crate::execution) fn get_proved_vote_states( platform: &TempPlatform, platform_state: &PlatformState, dpns_contract: &DataContract, diff --git a/packages/rs-drive-abci/src/main.rs b/packages/rs-drive-abci/src/main.rs index fee28d3086..aab50e3e06 100644 --- a/packages/rs-drive-abci/src/main.rs +++ b/packages/rs-drive-abci/src/main.rs @@ -123,6 +123,7 @@ impl Cli { config.db_path.clone(), Some(config.clone()), core_rpc, + None, ) .expect("Failed to open platform"); @@ -201,6 +202,12 @@ fn main() -> Result<(), ExitCode> { install_panic_hook(cancel.clone()); // Start runtime in the main thread + tracing::info!( + version = env!("CARGO_PKG_VERSION"), + features = list_enabled_features().join(","), + rust = env!("CARGO_PKG_RUST_VERSION"), + "drive-abci server initializing", + ); let runtime_guard = runtime.enter(); @@ -282,6 +289,19 @@ fn dump_config(config: &PlatformConfig) -> Result<(), String> { Ok(()) } +fn list_enabled_features() -> Vec<&'static str> { + vec![ + #[cfg(feature = "console")] + "console", + #[cfg(feature = "testing-config")] + "testing-config", + #[cfg(feature = "grovedbg")] + "grovedbg", + #[cfg(feature = "mocks")] + "mocks", + ] +} + /// Check status of ABCI server. fn check_status(config: &PlatformConfig) -> Result<(), String> { if let Some(prometheus_addr) = &config.prometheus_bind_address { diff --git a/packages/rs-drive-abci/src/metrics.rs b/packages/rs-drive-abci/src/metrics.rs index 5c90ec2501..943f0d5aae 100644 --- a/packages/rs-drive-abci/src/metrics.rs +++ b/packages/rs-drive-abci/src/metrics.rs @@ -6,7 +6,7 @@ use std::time::Duration; use std::{sync::Once, time::Instant}; use dapi_grpc::tonic::Code; -use metrics::{counter, describe_counter, describe_histogram, histogram, Label}; +use metrics::{counter, describe_counter, describe_gauge, describe_histogram, histogram, Label}; use metrics_exporter_prometheus::PrometheusBuilder; /// Default Prometheus port (29090) @@ -29,6 +29,10 @@ pub const LABEL_STATE_TRANSITION_NAME: &str = "st_name"; const LABEL_STATE_TRANSITION_EXECUTION_CODE: &str = "st_exec_code"; /// Metrics label to specify check tx mode: 0 - first time check, 1 - recheck pub const LABEL_CHECK_TX_MODE: &str = "check_tx_mode"; +/// Withdrawal daily limit available credits +pub const GAUGE_CREDIT_WITHDRAWAL_LIMIT_AVAILABLE: &str = "credit_withdrawal_limit_available"; +/// Total withdrawal daily limit in credits +pub const GAUGE_CREDIT_WITHDRAWAL_LIMIT_TOTAL: &str = "credit_withdrawal_limit_total"; /// Error returned by metrics subsystem #[derive(thiserror::Error, Debug)] @@ -210,7 +214,17 @@ impl Prometheus { HISTOGRAM_QUERY_DURATION, metrics::Unit::Seconds, "Duration of query request execution inside Drive per endpoint, in seconds" - ) + ); + + describe_gauge!( + GAUGE_CREDIT_WITHDRAWAL_LIMIT_AVAILABLE, + "Available withdrawal limit for last 24 hours in credits" + ); + + describe_gauge!( + GAUGE_CREDIT_WITHDRAWAL_LIMIT_TOTAL, + "Total withdrawal limit for last 24 hours in credits" + ); }); } } diff --git a/packages/rs-drive-abci/src/mimic/mod.rs b/packages/rs-drive-abci/src/mimic/mod.rs index 52189c40e9..0fb866b107 100644 --- a/packages/rs-drive-abci/src/mimic/mod.rs +++ b/packages/rs-drive-abci/src/mimic/mod.rs @@ -329,6 +329,7 @@ impl<'a, C: CoreRPCLike> FullAbciApplication<'a, C> { transaction .rollback_to_savepoint() .expect("expected to rollback to savepoint"); + transaction.set_savepoint(); let start_root_hash = self .platform diff --git a/packages/rs-drive-abci/src/platform_types/cleaned_abci_messages/request_init_chain_cleaned_params/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/cleaned_abci_messages/request_init_chain_cleaned_params/v0/mod.rs index b82e36261d..cccbfb0234 100644 --- a/packages/rs-drive-abci/src/platform_types/cleaned_abci_messages/request_init_chain_cleaned_params/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/cleaned_abci_messages/request_init_chain_cleaned_params/v0/mod.rs @@ -75,10 +75,12 @@ impl TryFrom for RequestInitChainCleanedParams { "consensus params are required in init chain".to_string(), ))?; - let tenderdash_abci::proto::types::VersionParams { app_version } = - consensus_params.version.ok_or(AbciError::BadRequest( - "consensus params version is required in init chain".to_string(), - ))?; + let tenderdash_abci::proto::types::VersionParams { + app_version, + consensus_version: _consensus_version, + } = consensus_params.version.ok_or(AbciError::BadRequest( + "consensus params version is required in init chain".to_string(), + ))?; Ok(Self { genesis_time, diff --git a/packages/rs-drive-abci/src/platform_types/epoch_info/mod.rs b/packages/rs-drive-abci/src/platform_types/epoch_info/mod.rs index 3fb8512a78..8ea7c8a84f 100644 --- a/packages/rs-drive-abci/src/platform_types/epoch_info/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/epoch_info/mod.rs @@ -8,7 +8,7 @@ use crate::platform_types::epoch_info::v0::{ EpochInfoV0, EpochInfoV0Getters, EpochInfoV0Methods, EpochInfoV0Setters, }; use derive_more::From; -use dpp::block::epoch::Epoch; +use dpp::block::epoch::{Epoch, EpochIndex}; use dpp::ProtocolError; use serde::{Deserialize, Serialize}; @@ -26,7 +26,7 @@ pub mod v0; /// This means that if we ever want to update EpochInfo, we will need to do so on a release /// where the new fields of epoch info are not being used. Then make another version once /// that one is activated. -#[derive(Clone, Serialize, Deserialize, Debug, From, Eq, PartialEq)] +#[derive(Clone, Copy, Serialize, Deserialize, Debug, From, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub enum EpochInfo { /// Version 0 @@ -39,6 +39,11 @@ impl EpochInfoV0Methods for EpochInfo { EpochInfo::V0(v0) => v0.is_epoch_change_but_not_genesis(), } } + fn is_first_block_of_epoch(&self, epoch_index: EpochIndex) -> bool { + match self { + EpochInfo::V0(v0) => v0.is_first_block_of_epoch(epoch_index), + } + } } impl EpochInfoV0Getters for EpochInfo { diff --git a/packages/rs-drive-abci/src/platform_types/epoch_info/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/epoch_info/v0/mod.rs index b0891428c7..a2e216dc9d 100644 --- a/packages/rs-drive-abci/src/platform_types/epoch_info/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/epoch_info/v0/mod.rs @@ -1,32 +1,3 @@ -// MIT LICENSE -// -// Copyright (c) 2021 Dash Core Group -// -// Permission is hereby granted, free of charge, to any -// person obtaining a copy of this software and associated -// documentation files (the "Software"), to deal in the -// Software without restriction, including without -// limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software -// is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice -// shall be included in all copies or substantial portions -// of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - //! Epoch Info. //! //! This module defines and implements the `EpochInfo` struct containing @@ -37,7 +8,7 @@ use crate::error::execution::ExecutionError; use crate::error::Error; use crate::execution::types::block_state_info::v0::BlockStateInfoV0; -use dpp::block::epoch::Epoch; +use dpp::block::epoch::{Epoch, EpochIndex}; use dpp::fee::epoch::GENESIS_EPOCH_INDEX; use dpp::ProtocolError; @@ -45,7 +16,7 @@ use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; /// Info pertinent to the current epoch. -#[derive(Clone, Serialize, Deserialize, Debug, Eq, PartialEq)] +#[derive(Clone, Copy, Serialize, Deserialize, Debug, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub struct EpochInfoV0 { /// Current epoch index @@ -63,6 +34,9 @@ pub struct EpochInfoV0 { pub trait EpochInfoV0Methods { /// Returns true if it's an epoch change but not the Epoch 0 on genesis fn is_epoch_change_but_not_genesis(&self) -> bool; + + /// Returns if we are the first block of a specific epoch + fn is_first_block_of_epoch(&self, epoch_index: EpochIndex) -> bool; } /// Getters for `EpochInfoV0` @@ -122,6 +96,10 @@ impl EpochInfoV0Methods for EpochInfoV0 { fn is_epoch_change_but_not_genesis(&self) -> bool { self.is_epoch_change && self.current_epoch_index != GENESIS_EPOCH_INDEX } + + fn is_first_block_of_epoch(&self, epoch_index: EpochIndex) -> bool { + self.is_epoch_change && self.current_epoch_index == epoch_index + } } impl EpochInfoV0 { diff --git a/packages/rs-drive-abci/src/platform_types/platform/mod.rs b/packages/rs-drive-abci/src/platform_types/platform/mod.rs index 20c13b0b5c..d5d99f71b3 100644 --- a/packages/rs-drive-abci/src/platform_types/platform/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform/mod.rs @@ -18,6 +18,7 @@ use dashcore_rpc::dashcore::BlockHash; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; use crate::platform_types::platform_state::PlatformState; +use dpp::version::ProtocolVersion; use dpp::version::{PlatformVersion, PlatformVersionCurrentVersion}; use serde_json::json; @@ -116,7 +117,7 @@ impl Platform { "Could not setup Dash Core RPC client", )) })?; - Self::open_with_client(path, Some(config), core_rpc) + Self::open_with_client(path, Some(config), core_rpc, None) } } @@ -126,6 +127,7 @@ impl Platform { pub fn open>( path: P, config: Option, + initial_protocol_version: Option, ) -> Result, Error> { let mut core_rpc_mock = MockCoreRPCLike::new(); @@ -141,7 +143,7 @@ impl Platform { "tx": [], })) }); - Self::open_with_client(path, config, core_rpc_mock) + Self::open_with_client(path, config, core_rpc_mock, initial_protocol_version) } /// Fetch and reload the state from the backing store @@ -171,6 +173,7 @@ impl Platform { path: P, config: Option, core_rpc: C, + initial_protocol_version: Option, ) -> Result, Error> where C: CoreRPCLike, @@ -203,8 +206,8 @@ impl Platform { drive, core_rpc, config, - INITIAL_PROTOCOL_VERSION, - INITIAL_PROTOCOL_VERSION, + initial_protocol_version.unwrap_or(INITIAL_PROTOCOL_VERSION), + initial_protocol_version.unwrap_or(INITIAL_PROTOCOL_VERSION), ) } diff --git a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs index 626cf36501..e937924c94 100644 --- a/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform_state/mod.rs @@ -283,6 +283,12 @@ impl PlatformStateV0Methods for PlatformState { } } + fn hpmn_active_list_len(&self) -> usize { + match self { + PlatformState::V0(v0) => v0.hpmn_active_list_len(), + } + } + fn current_validator_set(&self) -> Result<&ValidatorSet, Error> { match self { PlatformState::V0(v0) => v0.current_validator_set(), diff --git a/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs index 0ad2f2c179..f9fa9d6deb 100644 --- a/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/platform_state/v0/mod.rs @@ -23,6 +23,7 @@ use crate::config::PlatformConfig; use crate::platform_types::signature_verification_quorum_set::{ SignatureVerificationQuorumSet, SignatureVerificationQuorumSetForSaving, }; +use crate::platform_types::validator_set::v0::ValidatorSetV0Getters; use dpp::fee::default_costs::CachedEpochIndexFeeVersions; use itertools::Itertools; use std::collections::BTreeMap; @@ -344,6 +345,32 @@ pub trait PlatformStateV0Methods { /// Returns the quorum hash of the current validator set. fn current_validator_set_quorum_hash(&self) -> QuorumHash; + /// Get validator sets sorted by their core height by most recent order coming first + fn validator_sets_sorted_by_core_height_by_most_recent(&self) -> Vec<&ValidatorSet> { + // Get the validator sets and collect them into a vector for sorting + let mut validator_sets: Vec<&ValidatorSet> = self.validator_sets().values().collect(); + + // Sort the validator sets by core height in descending order + validator_sets.sort_by(|a, b| b.core_height().cmp(&a.core_height())); + + validator_sets + } + + /// Where is the current validator set in the list + fn current_validator_set_position_in_list_by_most_recent(&self) -> Option { + // Get the current quorum hash + let current_quorum_hash = self.current_validator_set_quorum_hash(); + + // Get the validator sets by post recent + let validator_sets = self.validator_sets_sorted_by_core_height_by_most_recent(); + + // Find the position of the current validator set in the sorted list + validator_sets + .iter() + .position(|&validator_set| validator_set.quorum_hash() == ¤t_quorum_hash) + .map(|position| position as u16) // Convert position to u16 + } + /// Returns the quorum hash of the next validator set, if it exists. fn next_validator_set_quorum_hash(&self) -> &Option; @@ -453,6 +480,9 @@ pub trait PlatformStateV0Methods { fn hpmn_masternode_list_changes(&self, previous: &Self) -> MasternodeListChanges where Self: Sized; + + /// The size of the hpmn list that are currently not banned + fn hpmn_active_list_len(&self) -> usize; } impl PlatformStateV0PrivateMethods for PlatformStateV0 { @@ -565,6 +595,14 @@ impl PlatformStateV0Methods for PlatformStateV0 { self.hpmn_masternode_list.len() } + /// HPMN active list len + fn hpmn_active_list_len(&self) -> usize { + self.hpmn_masternode_list + .values() + .filter(|masternode| masternode.state.pose_ban_height.is_none()) + .count() + } + /// Get the current quorum fn current_validator_set(&self) -> Result<&ValidatorSet, Error> { self.validator_sets diff --git a/packages/rs-drive-abci/src/platform_types/validator/mod.rs b/packages/rs-drive-abci/src/platform_types/validator/mod.rs index 3ad5264d5d..10144bf53f 100644 --- a/packages/rs-drive-abci/src/platform_types/validator/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator/mod.rs @@ -1,114 +1,3 @@ -use crate::platform_types::validator::v0::{ValidatorV0, ValidatorV0Getters, ValidatorV0Setters}; -use dashcore_rpc::dashcore::{ProTxHash, PubkeyHash}; -use dpp::bls_signatures::PublicKey as BlsPublicKey; -use serde::{Deserialize, Serialize}; - /// Version 0 pub mod v0; - -/// A validator in the context of a quorum -#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] -pub enum Validator { - /// Version 0 - V0(ValidatorV0), -} - -impl ValidatorV0Getters for Validator { - fn pro_tx_hash(&self) -> &ProTxHash { - match self { - Validator::V0(v0) => v0.pro_tx_hash(), - } - } - - fn public_key(&self) -> &Option { - match self { - Validator::V0(v0) => v0.public_key(), - } - } - - fn node_ip(&self) -> &String { - match self { - Validator::V0(v0) => v0.node_ip(), - } - } - - fn node_id(&self) -> &PubkeyHash { - match self { - Validator::V0(v0) => v0.node_id(), - } - } - - fn core_port(&self) -> u16 { - match self { - Validator::V0(v0) => v0.core_port(), - } - } - - fn platform_http_port(&self) -> u16 { - match self { - Validator::V0(v0) => v0.platform_http_port(), - } - } - - fn platform_p2p_port(&self) -> u16 { - match self { - Validator::V0(v0) => v0.platform_p2p_port(), - } - } - - fn is_banned(&self) -> bool { - match self { - Validator::V0(v0) => v0.is_banned(), - } - } -} - -impl ValidatorV0Setters for Validator { - fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash) { - match self { - Validator::V0(v0) => v0.set_pro_tx_hash(pro_tx_hash), - } - } - - fn set_public_key(&mut self, public_key: Option) { - match self { - Validator::V0(v0) => v0.set_public_key(public_key), - } - } - - fn set_node_ip(&mut self, node_ip: String) { - match self { - Validator::V0(v0) => v0.set_node_ip(node_ip), - } - } - - fn set_node_id(&mut self, node_id: PubkeyHash) { - match self { - Validator::V0(v0) => v0.set_node_id(node_id), - } - } - - fn set_core_port(&mut self, core_port: u16) { - match self { - Validator::V0(v0) => v0.set_core_port(core_port), - } - } - - fn set_platform_http_port(&mut self, platform_http_port: u16) { - match self { - Validator::V0(v0) => v0.set_platform_http_port(platform_http_port), - } - } - - fn set_platform_p2p_port(&mut self, platform_p2p_port: u16) { - match self { - Validator::V0(v0) => v0.set_platform_p2p_port(platform_p2p_port), - } - } - - fn set_is_banned(&mut self, is_banned: bool) { - match self { - Validator::V0(v0) => v0.set_is_banned(is_banned), - } - } -} +pub use dpp::core_types::validator::*; diff --git a/packages/rs-drive-abci/src/platform_types/validator/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/validator/v0/mod.rs index 665c48c3dc..433fe506bf 100644 --- a/packages/rs-drive-abci/src/platform_types/validator/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator/v0/mod.rs @@ -1,52 +1,21 @@ use crate::platform_types::platform_state::v0::PlatformStateV0Methods; -use dashcore_rpc::dashcore::hashes::Hash; -use dashcore_rpc::dashcore::{ProTxHash, PubkeyHash}; -use dashcore_rpc::dashcore_rpc_json::{DMNState, MasternodeListItem}; -use std::fmt::{Debug, Formatter}; - use crate::platform_types::platform_state::PlatformState; +use dashcore_rpc::json::{DMNState, MasternodeListItem}; use dpp::bls_signatures::PublicKey as BlsPublicKey; -use serde::{Deserialize, Serialize}; - -/// A validator in the context of a quorum -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq)] -pub struct ValidatorV0 { - /// The proTxHash - pub pro_tx_hash: ProTxHash, - /// The public key share of this validator for this quorum - pub public_key: Option, - /// The node address - pub node_ip: String, - /// The node id - pub node_id: PubkeyHash, - /// Core port - pub core_port: u16, - /// Http port - pub platform_http_port: u16, - /// Tenderdash port - pub platform_p2p_port: u16, - /// Is the validator banned - pub is_banned: bool, -} - -impl Debug for ValidatorV0 { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - f.debug_struct("ValidatorV0") - .field("pro_tx_hash", &self.pro_tx_hash.to_string()) - .field("public_key", &self.public_key) - .field("node_ip", &self.node_ip) - .field("node_id", &self.node_id) - .field("core_port", &self.core_port) - .field("platform_http_port", &self.platform_http_port) - .field("platform_p2p_port", &self.platform_p2p_port) - .field("is_banned", &self.is_banned) - .finish() - } +pub use dpp::core_types::validator::v0::*; +use dpp::dashcore::hashes::Hash; +use dpp::dashcore::{ProTxHash, PubkeyHash}; +pub(crate) trait NewValidatorIfMasternodeInState { + fn new_validator_if_masternode_in_state( + pro_tx_hash: ProTxHash, + public_key: Option, + state: &PlatformState, + ) -> Option; } -impl ValidatorV0 { +impl NewValidatorIfMasternodeInState for ValidatorV0 { /// Makes a validator if the masternode is in the list and is valid - pub fn new_validator_if_masternode_in_state( + fn new_validator_if_masternode_in_state( pro_tx_hash: ProTxHash, public_key: Option, state: &PlatformState, @@ -80,111 +49,3 @@ impl ValidatorV0 { }) } } - -/// Traits to get properties of a validator. -pub trait ValidatorV0Getters { - /// Returns the proTxHash of the validator. - fn pro_tx_hash(&self) -> &ProTxHash; - /// Returns the public key share of this validator for this quorum. - fn public_key(&self) -> &Option; - /// Returns the node address of the validator. - fn node_ip(&self) -> &String; - /// Returns the node id of the validator. - fn node_id(&self) -> &PubkeyHash; - /// Returns the core port of the validator. - fn core_port(&self) -> u16; - /// Returns the Http port of the validator. - fn platform_http_port(&self) -> u16; - /// Returns the Tenderdash port of the validator. - fn platform_p2p_port(&self) -> u16; - /// Returns the status of the validator whether it's banned or not. - fn is_banned(&self) -> bool; -} - -/// Traits to set properties of a validator. -pub trait ValidatorV0Setters { - /// Sets the proTxHash of the validator. - fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash); - /// Sets the public key share of this validator for this quorum. - fn set_public_key(&mut self, public_key: Option); - /// Sets the node address of the validator. - fn set_node_ip(&mut self, node_ip: String); - /// Sets the node id of the validator. - fn set_node_id(&mut self, node_id: PubkeyHash); - /// Sets the core port of the validator. - fn set_core_port(&mut self, core_port: u16); - /// Sets the Http port of the validator. - fn set_platform_http_port(&mut self, platform_http_port: u16); - /// Sets the Tenderdash port of the validator. - fn set_platform_p2p_port(&mut self, platform_p2p_port: u16); - /// Sets the status of the validator whether it's banned or not. - fn set_is_banned(&mut self, is_banned: bool); -} - -impl ValidatorV0Getters for ValidatorV0 { - fn pro_tx_hash(&self) -> &ProTxHash { - &self.pro_tx_hash - } - - fn public_key(&self) -> &Option { - &self.public_key - } - - fn node_ip(&self) -> &String { - &self.node_ip - } - - fn node_id(&self) -> &PubkeyHash { - &self.node_id - } - - fn core_port(&self) -> u16 { - self.core_port - } - - fn platform_http_port(&self) -> u16 { - self.platform_http_port - } - - fn platform_p2p_port(&self) -> u16 { - self.platform_p2p_port - } - - fn is_banned(&self) -> bool { - self.is_banned - } -} - -impl ValidatorV0Setters for ValidatorV0 { - fn set_pro_tx_hash(&mut self, pro_tx_hash: ProTxHash) { - self.pro_tx_hash = pro_tx_hash; - } - - fn set_public_key(&mut self, public_key: Option) { - self.public_key = public_key; - } - - fn set_node_ip(&mut self, node_ip: String) { - self.node_ip = node_ip; - } - - fn set_node_id(&mut self, node_id: PubkeyHash) { - self.node_id = node_id; - } - - fn set_core_port(&mut self, core_port: u16) { - self.core_port = core_port; - } - - fn set_platform_http_port(&mut self, platform_http_port: u16) { - self.platform_http_port = platform_http_port; - } - - fn set_platform_p2p_port(&mut self, platform_p2p_port: u16) { - self.platform_p2p_port = platform_p2p_port; - } - - fn set_is_banned(&mut self, is_banned: bool) { - self.is_banned = is_banned; - } -} diff --git a/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs b/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs index 5dd9adb1f8..414fbe0c8f 100644 --- a/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator_set/mod.rs @@ -1,114 +1,27 @@ -use crate::platform_types::validator::v0::ValidatorV0; -use crate::platform_types::validator_set::v0::{ - ValidatorSetV0, ValidatorSetV0Getters, ValidatorSetV0Setters, -}; -use dashcore_rpc::dashcore::{ProTxHash, QuorumHash}; -use dpp::bls_signatures::PublicKey as BlsPublicKey; -use serde::{Deserialize, Serialize}; -use std::collections::BTreeMap; +use crate::platform_types::validator_set::v0::ValidatorSetMethodsV0; use tenderdash_abci::proto::abci::ValidatorSetUpdate; -/// Version 0 -pub mod v0; - -/// The validator set is only slightly different from a quorum as it does not contain non valid -/// members -#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] -pub enum ValidatorSet { - /// Version 0 - V0(ValidatorSetV0), -} - -impl ValidatorSetV0Getters for ValidatorSet { - fn quorum_hash(&self) -> &QuorumHash { - match self { - ValidatorSet::V0(v0) => v0.quorum_hash(), - } - } +pub use dpp::core_types::validator_set::*; - fn quorum_index(&self) -> Option { - match self { - ValidatorSet::V0(v0) => v0.quorum_index(), - } - } - - fn core_height(&self) -> u32 { - match self { - ValidatorSet::V0(v0) => v0.core_height(), - } - } - - fn members(&self) -> &BTreeMap { - match self { - ValidatorSet::V0(v0) => v0.members(), - } - } - - fn members_mut(&mut self) -> &mut BTreeMap { - match self { - ValidatorSet::V0(v0) => v0.members_mut(), - } - } - - fn members_owned(self) -> BTreeMap { - match self { - ValidatorSet::V0(v0) => v0.members_owned(), - } - } +/// v0 +pub mod v0; - fn threshold_public_key(&self) -> &BlsPublicKey { - match self { - ValidatorSet::V0(v0) => v0.threshold_public_key(), - } - } +pub(crate) trait ValidatorSetExt { + fn to_update(&self) -> ValidatorSetUpdate; + #[allow(unused)] + fn to_update_owned(self) -> ValidatorSetUpdate; } -impl ValidatorSetV0Setters for ValidatorSet { - fn set_quorum_hash(&mut self, quorum_hash: QuorumHash) { - match self { - ValidatorSet::V0(v0) => v0.set_quorum_hash(quorum_hash), - } - } - - fn set_quorum_index(&mut self, index: Option) { - match self { - ValidatorSet::V0(v0) => v0.set_quorum_index(index), - } - } - - fn set_core_height(&mut self, core_height: u32) { +impl ValidatorSetExt for ValidatorSet { + fn to_update(&self) -> ValidatorSetUpdate { match self { - ValidatorSet::V0(v0) => v0.set_core_height(core_height), + ValidatorSet::V0(v0) => v0.to_update(), } } - fn set_members(&mut self, members: BTreeMap) { + fn to_update_owned(self) -> ValidatorSetUpdate { match self { - ValidatorSet::V0(v0) => v0.set_members(members), - } - } - - fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey) { - match self { - ValidatorSet::V0(v0) => v0.set_threshold_public_key(threshold_public_key), - } - } -} - -/// In this case we are changing to this validator set from another validator set and there are no -/// changes -impl From for ValidatorSetUpdate { - fn from(value: ValidatorSet) -> Self { - match value { - ValidatorSet::V0(v0) => v0.into(), - } - } -} - -impl From<&ValidatorSet> for ValidatorSetUpdate { - fn from(value: &ValidatorSet) -> Self { - match value { - ValidatorSet::V0(v0) => v0.into(), + ValidatorSet::V0(v0) => v0.to_update_owned(), } } } diff --git a/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs index 7574a5d31d..f7141d1ff4 100644 --- a/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/validator_set/v0/mod.rs @@ -1,62 +1,38 @@ use crate::error::execution::ExecutionError; use crate::error::Error; -use crate::platform_types::validator::v0::ValidatorV0; use dashcore_rpc::dashcore::hashes::Hash; -use dashcore_rpc::dashcore::{ProTxHash, QuorumHash}; +use dashcore_rpc::dashcore::ProTxHash; use crate::platform_types::platform_state::PlatformState; +use crate::platform_types::validator::v0::NewValidatorIfMasternodeInState; use dashcore_rpc::json::QuorumInfoResult; use dpp::bls_signatures::PublicKey as BlsPublicKey; -use serde::{Deserialize, Serialize}; +use dpp::core_types::validator::v0::ValidatorV0; +pub use dpp::core_types::validator_set::v0::*; use std::collections::BTreeMap; -use std::fmt::{Debug, Formatter}; use tenderdash_abci::proto::abci::ValidatorSetUpdate; use tenderdash_abci::proto::crypto::public_key::Sum::Bls12381; use tenderdash_abci::proto::{abci, crypto}; -/// The validator set is only slightly different from a quorum as it does not contain non valid -/// members -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq)] -pub struct ValidatorSetV0 { - /// The quorum hash - pub quorum_hash: QuorumHash, - /// Rotation quorum index is available only for DIP24 quorums - pub quorum_index: Option, - /// Active height - pub core_height: u32, - /// The list of masternodes - pub members: BTreeMap, - /// The threshold quorum public key - pub threshold_public_key: BlsPublicKey, -} +pub(crate) trait ValidatorSetMethodsV0 { + #[allow(unused)] + fn update_difference(&self, rhs: &ValidatorSetV0) -> Result; -impl Debug for ValidatorSetV0 { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - f.debug_struct("ValidatorSetV0") - .field("quorum_hash", &self.quorum_hash.to_string()) - .field("core_height", &self.core_height) - .field( - "members", - &self - .members - .iter() - .map(|(k, v)| (k.to_string(), v)) - .collect::>(), - ) - .field("threshold_public_key", &self.threshold_public_key) - .finish() - } + fn to_update(&self) -> ValidatorSetUpdate; + fn to_update_owned(self) -> ValidatorSetUpdate; + /// Try to create a quorum from info from the Masternode list (given with state), + /// and for information return for quorum members + fn try_from_quorum_info_result( + value: QuorumInfoResult, + state: &PlatformState, + ) -> Result; } -impl ValidatorSetV0 { +impl ValidatorSetMethodsV0 for ValidatorSetV0 { /// For changes between two validator sets, we take the new (rhs) element if is different /// for every validator - #[allow(dead_code)] - pub(crate) fn update_difference( - &self, - rhs: &ValidatorSetV0, - ) -> Result { + fn update_difference(&self, rhs: &ValidatorSetV0) -> Result { if self.quorum_hash != rhs.quorum_hash { return Err(Error::Execution(ExecutionError::CorruptedCachedState( format!( @@ -127,7 +103,7 @@ impl ValidatorSetV0 { } }), power: 100, - pro_tx_hash: reverse(pro_tx_hash.as_byte_array()), + pro_tx_hash: pro_tx_hash.as_byte_array().to_vec(), node_address, })) } @@ -159,7 +135,7 @@ impl ValidatorSetV0 { } }), power: 100, - pro_tx_hash: reverse(&pro_tx_hash.to_byte_array()), + pro_tx_hash: pro_tx_hash.to_byte_array().to_vec(), node_address, })) } @@ -174,35 +150,21 @@ impl ValidatorSetV0 { threshold_public_key: Some(crypto::PublicKey { sum: Some(Bls12381(self.threshold_public_key.to_bytes().to_vec())), }), - quorum_hash: reverse(&self.quorum_hash.to_byte_array()), + quorum_hash: self.quorum_hash.to_byte_array().to_vec(), }) } -} - -/// Reverse bytes -/// -/// TODO: This is a workaround for reversed data returned by dashcore_rpc (little endian / big endian handling issue). -/// We need to decide on a consistent approach to endianness and follow it. -fn reverse(data: &[u8]) -> Vec { - // data.reverse(); - data.to_vec() -} - -/// In this case we are changing to this validator set from another validator set and there are no -/// changes -impl From for ValidatorSetUpdate { - fn from(value: ValidatorSetV0) -> Self { + fn to_update(&self) -> ValidatorSetUpdate { let ValidatorSetV0 { quorum_hash, members: validator_set, threshold_public_key, .. - } = value; + } = self; ValidatorSetUpdate { validator_updates: validator_set - .into_values() - .filter_map(|validator| { + .iter() + .filter_map(|(_, validator)| { let ValidatorV0 { pro_tx_hash, public_key, @@ -212,7 +174,8 @@ impl From for ValidatorSetUpdate { is_banned, .. } = validator; - if is_banned { + + if *is_banned { return None; } let node_address = format!( @@ -221,13 +184,12 @@ impl From for ValidatorSetUpdate { node_ip, platform_p2p_port ); - Some(abci::ValidatorUpdate { - pub_key: public_key.map(|public_key| crypto::PublicKey { + pub_key: public_key.as_ref().map(|public_key| crypto::PublicKey { sum: Some(Bls12381(public_key.to_bytes().to_vec())), }), power: 100, - pro_tx_hash: reverse(&pro_tx_hash.to_byte_array()), + pro_tx_hash: pro_tx_hash.to_byte_array().to_vec(), node_address, }) }) @@ -235,23 +197,21 @@ impl From for ValidatorSetUpdate { threshold_public_key: Some(crypto::PublicKey { sum: Some(Bls12381(threshold_public_key.to_bytes().to_vec())), }), - quorum_hash: reverse(&quorum_hash.to_byte_array()), + quorum_hash: quorum_hash.to_byte_array().to_vec(), } } -} -impl From<&ValidatorSetV0> for ValidatorSetUpdate { - fn from(value: &ValidatorSetV0) -> Self { + fn to_update_owned(self) -> ValidatorSetUpdate { let ValidatorSetV0 { quorum_hash, members: validator_set, threshold_public_key, .. - } = value; + } = self; ValidatorSetUpdate { validator_updates: validator_set - .iter() - .filter_map(|(_, validator)| { + .into_values() + .filter_map(|validator| { let ValidatorV0 { pro_tx_hash, public_key, @@ -261,8 +221,7 @@ impl From<&ValidatorSetV0> for ValidatorSetUpdate { is_banned, .. } = validator; - - if *is_banned { + if is_banned { return None; } let node_address = format!( @@ -271,12 +230,13 @@ impl From<&ValidatorSetV0> for ValidatorSetUpdate { node_ip, platform_p2p_port ); + Some(abci::ValidatorUpdate { - pub_key: public_key.as_ref().map(|public_key| crypto::PublicKey { + pub_key: public_key.map(|public_key| crypto::PublicKey { sum: Some(Bls12381(public_key.to_bytes().to_vec())), }), power: 100, - pro_tx_hash: reverse(&pro_tx_hash.to_byte_array()), + pro_tx_hash: pro_tx_hash.to_byte_array().to_vec(), node_address, }) }) @@ -284,15 +244,13 @@ impl From<&ValidatorSetV0> for ValidatorSetUpdate { threshold_public_key: Some(crypto::PublicKey { sum: Some(Bls12381(threshold_public_key.to_bytes().to_vec())), }), - quorum_hash: reverse(&quorum_hash.to_byte_array()), + quorum_hash: quorum_hash.to_byte_array().to_vec(), } } -} -impl ValidatorSetV0 { /// Try to create a quorum from info from the Masternode list (given with state), /// and for information return for quorum members - pub fn try_from_quorum_info_result( + fn try_from_quorum_info_result( value: QuorumInfoResult, state: &PlatformState, ) -> Result { @@ -350,87 +308,3 @@ impl ValidatorSetV0 { }) } } - -/// Trait providing getter methods for `ValidatorSetV0` struct -pub trait ValidatorSetV0Getters { - /// Returns the quorum hash of the validator set. - fn quorum_hash(&self) -> &QuorumHash; - /// Returns rotation quorum index. It's available only for DIP24 quorums - fn quorum_index(&self) -> Option; - /// Returns the active height of the validator set. - fn core_height(&self) -> u32; - /// Returns the members of the validator set. - fn members(&self) -> &BTreeMap; - /// Returns the members of the validator set. - fn members_mut(&mut self) -> &mut BTreeMap; - /// Returns the members of the validator set. - fn members_owned(self) -> BTreeMap; - /// Returns the threshold public key of the validator set. - fn threshold_public_key(&self) -> &BlsPublicKey; -} - -/// Trait providing setter methods for `ValidatorSetV0` struct -pub trait ValidatorSetV0Setters { - /// Sets the quorum hash of the validator set. - fn set_quorum_hash(&mut self, quorum_hash: QuorumHash); - /// Sets the quorum index of the validator set. - fn set_quorum_index(&mut self, index: Option); - /// Sets the active height of the validator set. - fn set_core_height(&mut self, core_height: u32); - /// Sets the members of the validator set. - fn set_members(&mut self, members: BTreeMap); - /// Sets the threshold public key of the validator set. - fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey); -} - -impl ValidatorSetV0Getters for ValidatorSetV0 { - fn quorum_hash(&self) -> &QuorumHash { - &self.quorum_hash - } - - fn quorum_index(&self) -> Option { - self.quorum_index - } - - fn core_height(&self) -> u32 { - self.core_height - } - - fn members(&self) -> &BTreeMap { - &self.members - } - - fn members_mut(&mut self) -> &mut BTreeMap { - &mut self.members - } - - fn members_owned(self) -> BTreeMap { - self.members - } - - fn threshold_public_key(&self) -> &BlsPublicKey { - &self.threshold_public_key - } -} - -impl ValidatorSetV0Setters for ValidatorSetV0 { - fn set_quorum_hash(&mut self, quorum_hash: QuorumHash) { - self.quorum_hash = quorum_hash; - } - - fn set_quorum_index(&mut self, index: Option) { - self.quorum_index = index; - } - - fn set_core_height(&mut self, core_height: u32) { - self.core_height = core_height; - } - - fn set_members(&mut self, members: BTreeMap) { - self.members = members; - } - - fn set_threshold_public_key(&mut self, threshold_public_key: BlsPublicKey) { - self.threshold_public_key = threshold_public_key; - } -} diff --git a/packages/rs-drive-abci/src/platform_types/withdrawal/unsigned_withdrawal_txs/v0/mod.rs b/packages/rs-drive-abci/src/platform_types/withdrawal/unsigned_withdrawal_txs/v0/mod.rs index 0d61d4e471..1143c0aa09 100644 --- a/packages/rs-drive-abci/src/platform_types/withdrawal/unsigned_withdrawal_txs/v0/mod.rs +++ b/packages/rs-drive-abci/src/platform_types/withdrawal/unsigned_withdrawal_txs/v0/mod.rs @@ -1,8 +1,10 @@ //! Withdrawal transactions definitions and processing + use dpp::dashcore::consensus::Encodable; use dpp::dashcore::hashes::Hash; use dpp::dashcore::transaction::special_transaction::TransactionPayload::AssetUnlockPayloadType; use dpp::dashcore::{Transaction, VarInt}; +use std::collections::{BTreeMap, HashMap}; use std::fmt::Display; use tenderdash_abci::proto::types::VoteExtension; use tenderdash_abci::proto::{abci::ExtendVoteExtension, types::VoteExtensionType}; @@ -48,19 +50,64 @@ impl UnsignedWithdrawalTxs { } /// Verifies that the collection of unsigned withdrawal transactions matches the given votes extensions - /// created based on these transactions - pub fn are_matching_with_vote_extensions(&self, other: &[VoteExtension]) -> bool { + /// created based on these transactions. + /// Returns a mapping from transactions to their corresponding vote extensions if they match, or `None` if they don't. + pub fn verify_and_match_with_vote_extensions<'a>( + &'a self, + other: &'a [VoteExtension], + ) -> Option> { if self.0.len() != other.len() { - return false; - }; + return None; + } - !self.0.iter().zip(other.iter()).any(|(tx, vote_extension)| { + // Build a map from sign_request_id to VoteExtension + let mut vote_extension_map = HashMap::new(); + for vote_extension in other { + // Ensure that each signature is 96 bytes (size of a bls sig) + if vote_extension.signature.len() != 96 { + return None; + } + // Ensure sign_request_id is Some + if let Some(sign_request_id) = &vote_extension.sign_request_id { + vote_extension_map.insert(sign_request_id.clone(), vote_extension); + } else { + // If sign_request_id is None, we cannot match, return None + return None; + } + } + + let mut tx_to_vote_extension_map = BTreeMap::new(); + + // For each transaction, check if a matching vote extension exists + for tx in &self.0 { let extend_vote_extension = tx_to_extend_vote_extension(tx); + let sign_request_id = match &extend_vote_extension.sign_request_id { + Some(id) => id, + None => { + // If sign_request_id is None, we cannot match, return None + return None; + } + }; + + match vote_extension_map.get(sign_request_id) { + Some(vote_extension) => { + if vote_extension.r#type != extend_vote_extension.r#type + || vote_extension.extension != extend_vote_extension.extension + { + return None; + } else { + // All good, insert into map + tx_to_vote_extension_map.insert(tx, *vote_extension); + } + } + None => { + // No matching vote extension found + return None; + } + } + } - vote_extension.r#type != extend_vote_extension.r#type - || vote_extension.sign_request_id != extend_vote_extension.sign_request_id - || vote_extension.extension != extend_vote_extension.extension - }) + Some(tx_to_vote_extension_map) } } @@ -112,7 +159,7 @@ impl From<&UnsignedWithdrawalTxs> for Vec { } } -fn tx_to_extend_vote_extension(tx: &Transaction) -> ExtendVoteExtension { +pub(crate) fn tx_to_extend_vote_extension(tx: &Transaction) -> ExtendVoteExtension { let request_id = make_extend_vote_request_id(tx); let extension = tx.txid().as_byte_array().to_vec(); diff --git a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract/v0/mod.rs b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract/v0/mod.rs index 83b8fea5f7..493a60fe80 100644 --- a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract/v0/mod.rs @@ -80,7 +80,7 @@ mod tests { #[test] fn test_invalid_data_contract_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractRequestV0 { id: vec![0; 8], @@ -94,7 +94,7 @@ mod tests { #[test] fn test_data_contract_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetDataContractRequestV0 { @@ -114,7 +114,7 @@ mod tests { #[test] fn test_data_contract_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetDataContractRequestV0 { diff --git a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract_history/v0/mod.rs b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract_history/v0/mod.rs index 0611a3ccc1..328f2ac307 100644 --- a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract_history/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contract_history/v0/mod.rs @@ -243,7 +243,7 @@ mod tests { #[test] fn test_invalid_data_contract_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractHistoryRequestV0 { id: vec![0; 8], @@ -262,7 +262,7 @@ mod tests { #[test] fn test_invalid_limit_overflow() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractHistoryRequestV0 { id: vec![0; 32], @@ -284,7 +284,7 @@ mod tests { #[test] fn test_invalid_offset_overflow() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractHistoryRequestV0 { id: vec![0; 32], @@ -305,7 +305,7 @@ mod tests { #[test] fn test_data_contract_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; @@ -470,7 +470,7 @@ mod tests { #[test] fn test_data_contract_history_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractHistoryRequestV0 { id: vec![0; 32], diff --git a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contracts/v0/mod.rs b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contracts/v0/mod.rs index f1533b2473..12b52e050a 100644 --- a/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contracts/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/data_contract_based_queries/data_contracts/v0/mod.rs @@ -92,7 +92,7 @@ mod tests { #[test] fn test_invalid_data_contract_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDataContractsRequestV0 { ids: vec![vec![0; 8]], @@ -108,7 +108,7 @@ mod tests { #[test] fn test_data_contracts_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetDataContractsRequestV0 { @@ -131,7 +131,7 @@ mod tests { #[test] fn test_data_contracts_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetDataContractsRequestV0 { diff --git a/packages/rs-drive-abci/src/query/document_query/v0/mod.rs b/packages/rs-drive-abci/src/query/document_query/v0/mod.rs index 307919493c..8af82e39cc 100644 --- a/packages/rs-drive-abci/src/query/document_query/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/document_query/v0/mod.rs @@ -186,7 +186,7 @@ mod tests { #[test] fn test_invalid_document_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetDocumentsRequestV0 { data_contract_id: vec![0; 8], @@ -207,7 +207,7 @@ mod tests { #[test] fn test_data_contract_not_found_in_documents_request() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let data_contract_id = vec![0; 32]; @@ -233,7 +233,7 @@ mod tests { #[test] fn test_absent_document_type() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -265,7 +265,7 @@ mod tests { #[test] fn test_invalid_where_clause() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -295,7 +295,7 @@ mod tests { #[test] fn test_invalid_order_by_clause() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -325,7 +325,7 @@ mod tests { #[test] fn test_invalid_start_at_clause() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -355,7 +355,7 @@ mod tests { #[test] fn test_invalid_start_after_clause() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -385,7 +385,7 @@ mod tests { #[test] fn test_invalid_limit() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -416,7 +416,7 @@ mod tests { #[test] fn test_documents_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); @@ -449,7 +449,7 @@ mod tests { #[test] fn test_documents_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let created_data_contract = get_data_contract_fixture(None, 0, version.protocol_version); store_data_contract(&platform, created_data_contract.data_contract(), version); diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/balance/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/balance/v0/mod.rs index 5f6718eb13..dfabb8560a 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/balance/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/balance/v0/mod.rs @@ -69,7 +69,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityBalanceRequestV0 { id: vec![0; 8], @@ -85,7 +85,7 @@ mod tests { #[test] fn test_identity_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; @@ -106,7 +106,7 @@ mod tests { #[test] fn test_identity_balance_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/balance_and_revision/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/balance_and_revision/v0/mod.rs index d4f8233e21..518cb47239 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/balance_and_revision/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/balance_and_revision/v0/mod.rs @@ -88,7 +88,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityBalanceAndRevisionRequestV0 { id: vec![0; 8], @@ -104,7 +104,7 @@ mod tests { #[test] fn test_identity_not_found_when_querying_balance_and_revision() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; @@ -125,7 +125,7 @@ mod tests { #[test] fn test_identity_balance_and_revision_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/balances/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/balances/mod.rs new file mode 100644 index 0000000000..0e8a260464 --- /dev/null +++ b/packages/rs-drive-abci/src/query/identity_based_queries/balances/mod.rs @@ -0,0 +1,61 @@ +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_identities_balances_request::Version as RequestVersion; +use dapi_grpc::platform::v0::get_identities_balances_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::{GetIdentitiesBalancesRequest, GetIdentitiesBalancesResponse}; +use dpp::version::PlatformVersion; + +mod v0; + +impl Platform { + /// Querying of the balances of multiple identities + pub fn query_identities_balances( + &self, + GetIdentitiesBalancesRequest { version }: GetIdentitiesBalancesRequest, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let Some(version) = version else { + return Ok(QueryValidationResult::new_with_error( + QueryError::DecodingError("could not decode identity balance query".to_string()), + )); + }; + + let feature_version_bounds = &platform_version + .drive_abci + .query + .identity_based_queries + .identities_balances; + + let feature_version = match &version { + RequestVersion::V0(_) => 0, + }; + if !feature_version_bounds.check_version(feature_version) { + return Ok(QueryValidationResult::new_with_error( + QueryError::UnsupportedQueryVersion( + "identities_balances".to_string(), + feature_version_bounds.min_version, + feature_version_bounds.max_version, + platform_version.protocol_version, + feature_version, + ), + )); + } + match version { + RequestVersion::V0(request_v0) => { + let result = self.query_identities_balances_v0( + request_v0, + platform_state, + platform_version, + )?; + + Ok(result.map(|response_v0| GetIdentitiesBalancesResponse { + version: Some(ResponseVersion::V0(response_v0)), + })) + } + } + } +} diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/balances/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/balances/v0/mod.rs new file mode 100644 index 0000000000..c8d054f888 --- /dev/null +++ b/packages/rs-drive-abci/src/query/identity_based_queries/balances/v0/mod.rs @@ -0,0 +1,76 @@ +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_identities_balances_request::GetIdentitiesBalancesRequestV0; +use dapi_grpc::platform::v0::get_identities_balances_response::{ + get_identities_balances_response_v0, GetIdentitiesBalancesResponseV0, +}; +use dpp::check_validation_result_with_data; +use dpp::identifier::Identifier; +use dpp::validation::ValidationResult; +use dpp::version::PlatformVersion; + +impl Platform { + pub(super) fn query_identities_balances_v0( + &self, + GetIdentitiesBalancesRequestV0 { ids, prove }: GetIdentitiesBalancesRequestV0, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let identifiers = check_validation_result_with_data!(ids + .into_iter() + .map(|identity_id| { + let identifier: Identifier = identity_id.try_into().map_err(|_| { + QueryError::InvalidArgument( + "id must be a valid identifier (32 bytes long)".to_string(), + ) + })?; + Ok(identifier.into_buffer()) + }) + .collect::, QueryError>>()); + let response = if prove { + let proof = + check_validation_result_with_data!(self.drive.prove_many_identity_balances( + identifiers.as_slice(), + None, + &platform_version.drive + )); + + GetIdentitiesBalancesResponseV0 { + result: Some(get_identities_balances_response_v0::Result::Proof( + self.response_proof_v0(platform_state, proof), + )), + metadata: Some(self.response_metadata_v0(platform_state)), + } + } else { + let map = |(key, value): ([u8; 32], Option)| { + get_identities_balances_response_v0::IdentityBalance { + identity_id: key.to_vec(), + balance: value, + } + }; + + let identities_balances = self + .drive + .fetch_optional_identities_balances(&identifiers, None, platform_version)? + .into_iter() + .map(map) + .collect(); + + GetIdentitiesBalancesResponseV0 { + result: Some( + get_identities_balances_response_v0::Result::IdentitiesBalances( + get_identities_balances_response_v0::IdentitiesBalances { + entries: identities_balances, + }, + ), + ), + metadata: Some(self.response_metadata_v0(platform_state)), + } + }; + + Ok(QueryValidationResult::new_with_data(response)) + } +} diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/identities_contract_keys/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/identities_contract_keys/v0/mod.rs index 12f840d9d9..195d3bfe5f 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/identities_contract_keys/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/identities_contract_keys/v0/mod.rs @@ -150,7 +150,8 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -180,7 +181,8 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity_proved() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -231,7 +233,7 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity_absent_contract() { - let (platform, state, platform_version) = setup_platform(None, Network::Testnet); + let (platform, state, platform_version) = setup_platform(None, Network::Testnet, None); let request = GetIdentitiesContractKeysRequestV0 { identities_ids: vec![vec![1; 32]], @@ -259,7 +261,7 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity_absent_contract_proved() { - let (platform, state, platform_version) = setup_platform(None, Network::Testnet); + let (platform, state, platform_version) = setup_platform(None, Network::Testnet, None); let request = GetIdentitiesContractKeysRequestV0 { identities_ids: vec![vec![1; 32]], @@ -306,7 +308,7 @@ mod tests { #[test] fn test_identities_contract_keys_with_identity_absent_contract() { - let (platform, state, platform_version) = setup_platform(None, Network::Testnet); + let (platform, state, platform_version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); @@ -348,7 +350,7 @@ mod tests { #[test] fn test_identities_contract_keys_with_identity_absent_contract_proved() { - let (platform, state, platform_version) = setup_platform(None, Network::Testnet); + let (platform, state, platform_version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); @@ -409,7 +411,8 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity_keys() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -453,7 +456,8 @@ mod tests { #[test] fn test_identities_contract_keys_missing_identity_keys_proved() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -516,7 +520,8 @@ mod tests { #[test] fn test_identities_contract_keys() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -674,7 +679,8 @@ mod tests { #[test] fn test_identities_contract_keys_proof() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -769,7 +775,8 @@ mod tests { #[test] fn test_multiple_identities_contract_keys() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); @@ -969,7 +976,8 @@ mod tests { #[test] fn test_multiple_identities_contract_keys_proof() { - let (platform, state, platform_version) = setup_platform(Some((1, 1)), Network::Testnet); + let (platform, state, platform_version) = + setup_platform(Some((1, 1)), Network::Testnet, None); let dashpay = platform.drive.cache.system_data_contracts.load_dashpay(); diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/identity/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/identity/v0/mod.rs index 9ead1303bf..ae2ae47027 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/identity/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/identity/v0/mod.rs @@ -75,7 +75,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, _unused_version) = setup_platform(None, Network::Testnet); + let (platform, state, _unused_version) = setup_platform(None, Network::Testnet, None); let version = PlatformVersion::latest(); @@ -93,7 +93,7 @@ mod tests { #[test] fn test_identity_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetIdentityRequestV0 { @@ -115,7 +115,7 @@ mod tests { #[test] fn test_identity_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; let request = GetIdentityRequestV0 { diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/identity_by_public_key_hash/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/identity_by_public_key_hash/v0/mod.rs index e3249f2537..0d3db5c802 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/identity_by_public_key_hash/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/identity_by_public_key_hash/v0/mod.rs @@ -83,7 +83,7 @@ mod tests { #[test] fn test_invalid_public_key_hash() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityByPublicKeyHashRequestV0 { public_key_hash: vec![0; 8], @@ -102,7 +102,7 @@ mod tests { #[test] fn test_identity_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let public_key_hash = vec![0; 20]; let request = GetIdentityByPublicKeyHashRequestV0 { @@ -122,7 +122,7 @@ mod tests { #[test] fn test_identity_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let public_key_hash = vec![0; 20]; let request = GetIdentityByPublicKeyHashRequestV0 { diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/identity_contract_nonce/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/identity_contract_nonce/v0/mod.rs index 6db26c62f8..ec40ac7358 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/identity_contract_nonce/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/identity_contract_nonce/v0/mod.rs @@ -92,7 +92,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityContractNonceRequestV0 { identity_id: vec![0; 8], @@ -111,7 +111,7 @@ mod tests { #[test] fn test_invalid_contract_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityContractNonceRequestV0 { identity_id: vec![0; 32], @@ -130,7 +130,7 @@ mod tests { #[test] fn test_identity_not_found_when_querying_identity_nonce() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityContractNonceRequestV0 { identity_id: vec![0; 32], @@ -157,7 +157,7 @@ mod tests { #[test] fn test_contract_info_not_found_when_querying_identity_nonce_with_known_identity() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(45); let id = rng.gen::<[u8; 32]>(); let _unused_identity = @@ -189,7 +189,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let identity = create_test_identity_with_rng(&platform.drive, id, &mut rng, None, version) @@ -236,7 +236,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce_after_update() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let identity = create_test_identity_with_rng(&platform.drive, id, &mut rng, None, version) @@ -297,7 +297,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce_after_update_for_past() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let identity = create_test_identity_with_rng(&platform.drive, id, &mut rng, None, version) @@ -373,7 +373,7 @@ mod tests { #[test] fn test_identity_contract_nonce_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityContractNonceRequestV0 { identity_id: vec![0; 32], diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/identity_nonce/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/identity_nonce/v0/mod.rs index 4c6874cf27..45abbb1710 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/identity_nonce/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/identity_nonce/v0/mod.rs @@ -72,7 +72,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityNonceRequestV0 { identity_id: vec![0; 8], @@ -90,7 +90,7 @@ mod tests { #[test] fn test_identity_not_found_when_querying_identity_nonce() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityNonceRequestV0 { identity_id: vec![0; 32], @@ -114,7 +114,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let _unused_identity = @@ -143,7 +143,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce_after_update() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let identity = create_test_identity_with_rng(&platform.drive, id, &mut rng, None, version) @@ -195,7 +195,7 @@ mod tests { #[test] fn test_identity_is_found_when_querying_identity_nonce_after_update_for_past() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rng = StdRng::seed_from_u64(10); let id = rng.gen::<[u8; 32]>(); let identity = create_test_identity_with_rng(&platform.drive, id, &mut rng, None, version) @@ -260,7 +260,7 @@ mod tests { #[test] fn test_identity_contract_nonce_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityNonceRequestV0 { identity_id: vec![0; 32], diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/keys/v0/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/keys/v0/mod.rs index 7079dacf09..3cc854832d 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/keys/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/keys/v0/mod.rs @@ -173,7 +173,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 8], @@ -192,7 +192,7 @@ mod tests { #[test] fn test_invalid_limit_u16_overflow() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -214,7 +214,7 @@ mod tests { #[test] fn test_invalid_limit_max() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -241,7 +241,7 @@ mod tests { #[test] fn test_invalid_offset_u16_overflow() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -263,7 +263,7 @@ mod tests { #[test] fn test_missing_request_type() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -285,7 +285,7 @@ mod tests { #[test] fn test_missing_request() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -307,7 +307,7 @@ mod tests { #[test] fn test_invalid_key_request_type() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -340,7 +340,7 @@ mod tests { #[test] fn test_absent_keys() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], @@ -367,7 +367,7 @@ mod tests { #[test] fn test_absent_keys_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetIdentityKeysRequestV0 { identity_id: vec![0; 32], diff --git a/packages/rs-drive-abci/src/query/identity_based_queries/mod.rs b/packages/rs-drive-abci/src/query/identity_based_queries/mod.rs index 3a9d833283..29fea76521 100644 --- a/packages/rs-drive-abci/src/query/identity_based_queries/mod.rs +++ b/packages/rs-drive-abci/src/query/identity_based_queries/mod.rs @@ -1,5 +1,6 @@ mod balance; mod balance_and_revision; +mod balances; mod identities_contract_keys; mod identity; mod identity_by_public_key_hash; diff --git a/packages/rs-drive-abci/src/query/mod.rs b/packages/rs-drive-abci/src/query/mod.rs index 197cb4dd26..a7d58c7358 100644 --- a/packages/rs-drive-abci/src/query/mod.rs +++ b/packages/rs-drive-abci/src/query/mod.rs @@ -6,6 +6,7 @@ mod proofs; mod response_metadata; mod service; mod system; +mod validator_queries; mod voting; use crate::error::query::QueryError; @@ -18,7 +19,7 @@ pub use service::QueryService; pub type QueryValidationResult = ValidationResult; #[cfg(test)] -mod tests { +pub(crate) mod tests { use crate::error::query::QueryError; use crate::platform_types::platform::Platform; use crate::platform_types::platform_state::v0::PlatformStateV0Methods; @@ -34,32 +35,47 @@ mod tests { use dpp::prelude::{CoreBlockHeight, TimestampMillis}; use drive::util::batch::DataContractOperationType; use drive::util::batch::DriveOperation::DataContractOperation; - use platform_version::version::PlatformVersion; + use platform_version::version::{PlatformVersion, ProtocolVersion}; use std::borrow::Cow; use std::sync::Arc; pub fn setup_platform<'a>( with_genesis_state: Option<(TimestampMillis, CoreBlockHeight)>, network: Network, + initial_protocol_version: Option, ) -> ( TempPlatform, Arc, &'a PlatformVersion, ) { let platform = if let Some((timestamp, activation_core_block_height)) = with_genesis_state { - TestPlatformBuilder::new() - .with_config(PlatformConfig::default_for_network(network)) + let mut platform_builder = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_for_network(network)); + + if let Some(initial_protocol_version) = initial_protocol_version { + platform_builder = + platform_builder.with_initial_protocol_version(initial_protocol_version); + } + + platform_builder .build_with_mock_rpc() .set_genesis_state_with_activation_info(timestamp, activation_core_block_height) } else { - TestPlatformBuilder::new() - .with_config(PlatformConfig::default_for_network(network)) + let mut platform_builder = TestPlatformBuilder::new() + .with_config(PlatformConfig::default_for_network(network)); + + if let Some(initial_protocol_version) = initial_protocol_version { + platform_builder = + platform_builder.with_initial_protocol_version(initial_protocol_version); + } + + platform_builder .build_with_mock_rpc() .set_initial_state_structure() }; // We can't return a reference to Arc (`load` method) so we clone Arc (`load_full`). - // This is a bit slower but we don't care since we are in test environment + // This is a bit slower, but we don't care since we are in test environment let platform_state = platform.platform.state.load_full(); let platform_version = platform_state.current_platform_version().unwrap(); diff --git a/packages/rs-drive-abci/src/query/prefunded_specialized_balances/balance/v0/mod.rs b/packages/rs-drive-abci/src/query/prefunded_specialized_balances/balance/v0/mod.rs index 4684c64658..fed648c116 100644 --- a/packages/rs-drive-abci/src/query/prefunded_specialized_balances/balance/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/prefunded_specialized_balances/balance/v0/mod.rs @@ -74,7 +74,7 @@ mod tests { #[test] fn test_invalid_identity_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetPrefundedSpecializedBalanceRequestV0 { id: vec![0; 8], @@ -90,7 +90,7 @@ mod tests { #[test] fn test_identity_not_found() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; @@ -111,7 +111,7 @@ mod tests { #[test] fn test_identity_balance_absence_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let id = vec![0; 32]; diff --git a/packages/rs-drive-abci/src/query/proofs/v0/mod.rs b/packages/rs-drive-abci/src/query/proofs/v0/mod.rs index 3152ecf4c8..7db4d01227 100644 --- a/packages/rs-drive-abci/src/query/proofs/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/proofs/v0/mod.rs @@ -180,7 +180,7 @@ mod tests { #[test] fn test_invalid_identity_ids() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![IdentityRequest { @@ -201,7 +201,7 @@ mod tests { #[test] fn test_invalid_identity_prove_request_type() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request_type = 10; @@ -230,7 +230,7 @@ mod tests { #[test] fn test_invalid_contract_ids() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![], @@ -250,7 +250,7 @@ mod tests { #[test] fn test_invalid_contract_id_for_documents_proof() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![], @@ -274,7 +274,7 @@ mod tests { #[test] fn test_invalid_document_id() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![], @@ -298,7 +298,7 @@ mod tests { #[test] fn test_proof_of_absence() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![], @@ -325,7 +325,7 @@ mod tests { #[test] fn test_proof_of_absence_of_vote() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let dpns_contract = platform .drive @@ -377,7 +377,7 @@ mod tests { #[test] fn test_prove_all() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProofsRequestV0 { identities: vec![IdentityRequest { diff --git a/packages/rs-drive-abci/src/query/service.rs b/packages/rs-drive-abci/src/query/service.rs index af8d1b840a..54e51348c0 100644 --- a/packages/rs-drive-abci/src/query/service.rs +++ b/packages/rs-drive-abci/src/query/service.rs @@ -15,19 +15,23 @@ use dapi_grpc::platform::v0::{ GetContestedResourceIdentityVotesResponse, GetContestedResourceVoteStateRequest, GetContestedResourceVoteStateResponse, GetContestedResourceVotersForIdentityRequest, GetContestedResourceVotersForIdentityResponse, GetContestedResourcesRequest, - GetContestedResourcesResponse, GetDataContractHistoryRequest, GetDataContractHistoryResponse, - GetDataContractRequest, GetDataContractResponse, GetDataContractsRequest, - GetDataContractsResponse, GetDocumentsRequest, GetDocumentsResponse, GetEpochsInfoRequest, - GetEpochsInfoResponse, GetIdentitiesContractKeysRequest, GetIdentitiesContractKeysResponse, - GetIdentityBalanceAndRevisionRequest, GetIdentityBalanceAndRevisionResponse, - GetIdentityBalanceRequest, GetIdentityBalanceResponse, GetIdentityByPublicKeyHashRequest, - GetIdentityByPublicKeyHashResponse, GetIdentityContractNonceRequest, - GetIdentityContractNonceResponse, GetIdentityKeysRequest, GetIdentityKeysResponse, - GetIdentityNonceRequest, GetIdentityNonceResponse, GetIdentityRequest, GetIdentityResponse, - GetPathElementsRequest, GetPathElementsResponse, GetPrefundedSpecializedBalanceRequest, - GetPrefundedSpecializedBalanceResponse, GetProofsRequest, GetProofsResponse, - GetProtocolVersionUpgradeStateRequest, GetProtocolVersionUpgradeStateResponse, - GetProtocolVersionUpgradeVoteStatusRequest, GetProtocolVersionUpgradeVoteStatusResponse, + GetContestedResourcesResponse, GetCurrentQuorumsInfoRequest, GetCurrentQuorumsInfoResponse, + GetDataContractHistoryRequest, GetDataContractHistoryResponse, GetDataContractRequest, + GetDataContractResponse, GetDataContractsRequest, GetDataContractsResponse, + GetDocumentsRequest, GetDocumentsResponse, GetEpochsInfoRequest, GetEpochsInfoResponse, + GetEvonodesProposedEpochBlocksByIdsRequest, GetEvonodesProposedEpochBlocksByRangeRequest, + GetEvonodesProposedEpochBlocksResponse, GetIdentitiesBalancesRequest, + GetIdentitiesBalancesResponse, GetIdentitiesContractKeysRequest, + GetIdentitiesContractKeysResponse, GetIdentityBalanceAndRevisionRequest, + GetIdentityBalanceAndRevisionResponse, GetIdentityBalanceRequest, GetIdentityBalanceResponse, + GetIdentityByPublicKeyHashRequest, GetIdentityByPublicKeyHashResponse, + GetIdentityContractNonceRequest, GetIdentityContractNonceResponse, GetIdentityKeysRequest, + GetIdentityKeysResponse, GetIdentityNonceRequest, GetIdentityNonceResponse, GetIdentityRequest, + GetIdentityResponse, GetPathElementsRequest, GetPathElementsResponse, + GetPrefundedSpecializedBalanceRequest, GetPrefundedSpecializedBalanceResponse, + GetProofsRequest, GetProofsResponse, GetProtocolVersionUpgradeStateRequest, + GetProtocolVersionUpgradeStateResponse, GetProtocolVersionUpgradeVoteStatusRequest, + GetProtocolVersionUpgradeVoteStatusResponse, GetStatusRequest, GetStatusResponse, GetTotalCreditsInPlatformRequest, GetTotalCreditsInPlatformResponse, GetVotePollsByEndDateRequest, GetVotePollsByEndDateResponse, WaitForStateTransitionResultRequest, WaitForStateTransitionResultResponse, @@ -545,6 +549,66 @@ impl PlatformService for QueryService { ) .await } + + async fn get_identities_balances( + &self, + request: Request, + ) -> Result, Status> { + self.handle_blocking_query( + request, + Platform::::query_identities_balances, + "get_identities_balances", + ) + .await + } + + async fn get_status( + &self, + request: Request, + ) -> Result, Status> { + self.handle_blocking_query( + request, + Platform::::query_partial_status, + "query_partial_status", + ) + .await + } + + async fn get_evonodes_proposed_epoch_blocks_by_ids( + &self, + request: Request, + ) -> Result, Status> { + self.handle_blocking_query( + request, + Platform::::query_proposed_block_counts_by_evonode_ids, + "query_proposed_block_counts_by_evonode_ids", + ) + .await + } + + async fn get_evonodes_proposed_epoch_blocks_by_range( + &self, + request: Request, + ) -> Result, Status> { + self.handle_blocking_query( + request, + Platform::::query_proposed_block_counts_by_range, + "query_proposed_block_counts_by_range", + ) + .await + } + + async fn get_current_quorums_info( + &self, + request: Request, + ) -> Result, Status> { + self.handle_blocking_query( + request, + Platform::::query_current_quorums_info, + "query_current_quorums_info", + ) + .await + } } fn query_error_into_status(error: QueryError) -> Status { diff --git a/packages/rs-drive-abci/src/query/system/current_quorums_info/mod.rs b/packages/rs-drive-abci/src/query/system/current_quorums_info/mod.rs new file mode 100644 index 0000000000..85ac929687 --- /dev/null +++ b/packages/rs-drive-abci/src/query/system/current_quorums_info/mod.rs @@ -0,0 +1,59 @@ +mod v0; + +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_current_quorums_info_request::Version as RequestVersion; +use dapi_grpc::platform::v0::get_current_quorums_info_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::{GetCurrentQuorumsInfoRequest, GetCurrentQuorumsInfoResponse}; +use dpp::version::PlatformVersion; + +impl Platform { + /// Querying of current quorums info + pub fn query_current_quorums_info( + &self, + GetCurrentQuorumsInfoRequest { version }: GetCurrentQuorumsInfoRequest, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let Some(version) = version else { + return Ok(QueryValidationResult::new_with_error( + QueryError::DecodingError( + "could not decode current quorums info request".to_string(), + ), + )); + }; + + let feature_version_bounds = &platform_version + .drive_abci + .query + .system + .current_quorums_info; + + let feature_version = match &version { + RequestVersion::V0(_) => 0, + }; + if !feature_version_bounds.check_version(feature_version) { + return Ok(QueryValidationResult::new_with_error( + QueryError::UnsupportedQueryVersion( + "current_quorums_info".to_string(), + feature_version_bounds.min_version, + feature_version_bounds.max_version, + platform_version.protocol_version, + feature_version, + ), + )); + } + match version { + RequestVersion::V0(request_v0) => { + let result = self.query_current_quorums_info_v0(request_v0, platform_state)?; + + Ok(result.map(|response_v0| GetCurrentQuorumsInfoResponse { + version: Some(ResponseVersion::V0(response_v0)), + })) + } + } + } +} diff --git a/packages/rs-drive-abci/src/query/system/current_quorums_info/v0/mod.rs b/packages/rs-drive-abci/src/query/system/current_quorums_info/v0/mod.rs new file mode 100644 index 0000000000..f512f4b8f0 --- /dev/null +++ b/packages/rs-drive-abci/src/query/system/current_quorums_info/v0/mod.rs @@ -0,0 +1,68 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::platform_types::platform_state::PlatformState; +use crate::platform_types::validator_set::v0::ValidatorSetV0Getters; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_current_quorums_info_request::GetCurrentQuorumsInfoRequestV0; +use dapi_grpc::platform::v0::get_current_quorums_info_response::{ + GetCurrentQuorumsInfoResponseV0, ValidatorSetV0, ValidatorV0, +}; +use dpp::dashcore::hashes::Hash; + +impl Platform { + pub(super) fn query_current_quorums_info_v0( + &self, + GetCurrentQuorumsInfoRequestV0 {}: GetCurrentQuorumsInfoRequestV0, + platform_state: &PlatformState, + ) -> Result, Error> { + // Get all validator sets sorted by core height + let validator_sets_sorted = + platform_state.validator_sets_sorted_by_core_height_by_most_recent(); + + // Collect the validator sets in the desired format + let validator_sets: Vec = validator_sets_sorted + .iter() + .map(|validator_set| { + // Map each ProTxHash to a ValidatorV0 object + let members: Vec = validator_set + .members() + .iter() + .map(|(pro_tx_hash, validator)| ValidatorV0 { + pro_tx_hash: pro_tx_hash.as_byte_array().to_vec(), + node_ip: validator.node_ip.clone(), + is_banned: validator.is_banned, + }) + .collect(); + + // Construct a ValidatorSetV0 object + ValidatorSetV0 { + quorum_hash: validator_set.quorum_hash().as_byte_array().to_vec(), + core_height: validator_set.core_height(), + members, + threshold_public_key: validator_set.threshold_public_key().to_bytes().to_vec(), + } + }) + .collect(); + + // Get the current proposer index and current quorum index, if applicable + let current_quorum_index = platform_state.current_validator_set_quorum_hash(); + let last_committed_block_proposer_pro_tx_hash = + platform_state.last_committed_block_proposer_pro_tx_hash(); + + // Construct the response + let response = GetCurrentQuorumsInfoResponseV0 { + quorum_hashes: validator_sets_sorted + .iter() + .map(|validator_set| validator_set.quorum_hash().as_byte_array().to_vec()) + .collect(), + validator_sets, + last_block_proposer: last_committed_block_proposer_pro_tx_hash.to_vec(), + current_quorum_hash: current_quorum_index.as_byte_array().to_vec(), + metadata: Some(self.response_metadata_v0(platform_state)), + }; + + // Return the response wrapped in a QueryValidationResult + Ok(QueryValidationResult::new_with_data(response)) + } +} diff --git a/packages/rs-drive-abci/src/query/system/epoch_infos/v0/mod.rs b/packages/rs-drive-abci/src/query/system/epoch_infos/v0/mod.rs index 48f32c8847..8df6f0a681 100644 --- a/packages/rs-drive-abci/src/query/system/epoch_infos/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/system/epoch_infos/v0/mod.rs @@ -106,7 +106,7 @@ mod tests { #[test] fn test_query_empty_epoch_infos() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetEpochsInfoRequestV0 { start_epoch: None, // 0 @@ -130,7 +130,7 @@ mod tests { #[test] fn test_query_empty_epoch_infos_descending() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetEpochsInfoRequestV0 { start_epoch: None, // 0 diff --git a/packages/rs-drive-abci/src/query/system/mod.rs b/packages/rs-drive-abci/src/query/system/mod.rs index b317be8edf..6eecfed910 100644 --- a/packages/rs-drive-abci/src/query/system/mod.rs +++ b/packages/rs-drive-abci/src/query/system/mod.rs @@ -1,5 +1,7 @@ +mod current_quorums_info; mod epoch_infos; mod path_elements; +mod status; mod total_credits_in_platform; mod version_upgrade_state; mod version_upgrade_vote_status; diff --git a/packages/rs-drive-abci/src/query/system/path_elements/mod.rs b/packages/rs-drive-abci/src/query/system/path_elements/mod.rs index 1a91523602..cf056e84b2 100644 --- a/packages/rs-drive-abci/src/query/system/path_elements/mod.rs +++ b/packages/rs-drive-abci/src/query/system/path_elements/mod.rs @@ -20,7 +20,7 @@ impl Platform { ) -> Result, Error> { let Some(version) = version else { return Ok(QueryValidationResult::new_with_error( - QueryError::DecodingError("could not decode epoch info request".to_string()), + QueryError::DecodingError("could not decode path elements".to_string()), )); }; diff --git a/packages/rs-drive-abci/src/query/system/path_elements/v0/mod.rs b/packages/rs-drive-abci/src/query/system/path_elements/v0/mod.rs index f3d63cb6e5..0808f3398d 100644 --- a/packages/rs-drive-abci/src/query/system/path_elements/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/system/path_elements/v0/mod.rs @@ -85,7 +85,7 @@ mod tests { #[test] fn test_query_total_system_credits_from_path_elements_query() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive-abci/src/query/system/status/mod.rs b/packages/rs-drive-abci/src/query/system/status/mod.rs new file mode 100644 index 0000000000..3fd78f8ede --- /dev/null +++ b/packages/rs-drive-abci/src/query/system/status/mod.rs @@ -0,0 +1,52 @@ +mod v0; + +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_status_request::{GetStatusRequestV0, Version as RequestVersion}; +use dapi_grpc::platform::v0::get_status_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::{GetStatusRequest, GetStatusResponse}; +use dpp::version::PlatformVersion; + +impl Platform { + /// Querying Drive information for platform status endpoint + /// implemented in DAPI + pub fn query_partial_status( + &self, + _request: GetStatusRequest, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + // GetStatusRequestV0 doesn't contain any fields so request version + // will be always empty + let version = RequestVersion::V0(GetStatusRequestV0 {}); + + let feature_version_bounds = &platform_version.drive_abci.query.system.partial_status; + + let feature_version = match &version { + RequestVersion::V0(_) => 0, + }; + if !feature_version_bounds.check_version(feature_version) { + return Ok(QueryValidationResult::new_with_error( + QueryError::UnsupportedQueryVersion( + "partial_status".to_string(), + feature_version_bounds.min_version, + feature_version_bounds.max_version, + platform_version.protocol_version, + feature_version, + ), + )); + } + match version { + RequestVersion::V0(request_v0) => { + let result = self.query_partial_status_v0(request_v0, platform_state)?; + + Ok(result.map(|response_v0| GetStatusResponse { + version: Some(ResponseVersion::V0(response_v0)), + })) + } + } + } +} diff --git a/packages/rs-drive-abci/src/query/system/status/v0/mod.rs b/packages/rs-drive-abci/src/query/system/status/v0/mod.rs new file mode 100644 index 0000000000..5d336f11f6 --- /dev/null +++ b/packages/rs-drive-abci/src/query/system/status/v0/mod.rs @@ -0,0 +1,73 @@ +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_status_request::GetStatusRequestV0; +use dapi_grpc::platform::v0::get_status_response::{get_status_response_v0, GetStatusResponseV0}; + +use crate::platform_types::platform_state::PlatformState; +use dpp::version::PlatformVersion; + +impl Platform { + pub(super) fn query_partial_status_v0( + &self, + _request: GetStatusRequestV0, + platform_state: &PlatformState, + ) -> Result, Error> { + let latest_supported_protocol_version = PlatformVersion::latest().protocol_version; + + let version = get_status_response_v0::Version { + protocol: Some(get_status_response_v0::version::Protocol { + tenderdash: None, + drive: Some(get_status_response_v0::version::protocol::Drive { + latest: latest_supported_protocol_version, + current: platform_state.current_protocol_version_in_consensus(), + }), + }), + software: Some(get_status_response_v0::version::Software { + dapi: "".to_string(), + drive: Some(env!("CARGO_PKG_VERSION").to_string()), + tenderdash: None, + }), + }; + + let chain = get_status_response_v0::Chain { + catching_up: false, + latest_block_hash: vec![], + latest_app_hash: vec![], + latest_block_height: 0, + earliest_block_hash: vec![], + earliest_app_hash: vec![], + earliest_block_height: 0, + max_peer_block_height: 0, + core_chain_locked_height: Some(platform_state.last_committed_core_height()), + }; + + let time = get_status_response_v0::Time { + local: 0, + block: Some( + platform_state + .last_committed_block_time_ms() + .unwrap_or_default(), + ), + genesis: Some( + platform_state + .genesis_block_info() + .map(|info| info.time_ms) + .unwrap_or_default(), + ), + epoch: Some(platform_state.last_committed_block_epoch().index as u32), + }; + + let response = GetStatusResponseV0 { + version: Some(version), + node: None, + chain: Some(chain), + network: None, + state_sync: None, + time: Some(time), + }; + + Ok(QueryValidationResult::new_with_data(response)) + } +} diff --git a/packages/rs-drive-abci/src/query/system/total_credits_in_platform/mod.rs b/packages/rs-drive-abci/src/query/system/total_credits_in_platform/mod.rs index 1bb352103f..f0d126b0d0 100644 --- a/packages/rs-drive-abci/src/query/system/total_credits_in_platform/mod.rs +++ b/packages/rs-drive-abci/src/query/system/total_credits_in_platform/mod.rs @@ -22,7 +22,7 @@ impl Platform { ) -> Result, Error> { let Some(version) = version else { return Ok(QueryValidationResult::new_with_error( - QueryError::DecodingError("could not decode epoch info request".to_string()), + QueryError::DecodingError("could not decode total credits in platform".to_string()), )); }; diff --git a/packages/rs-drive-abci/src/query/system/total_credits_in_platform/v0/mod.rs b/packages/rs-drive-abci/src/query/system/total_credits_in_platform/v0/mod.rs index 890ca58828..829950e1f1 100644 --- a/packages/rs-drive-abci/src/query/system/total_credits_in_platform/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/system/total_credits_in_platform/v0/mod.rs @@ -151,7 +151,7 @@ mod tests { current_core_height: CoreBlockHeight, ) -> Credits { let (platform, _state, platform_version) = - setup_platform(Some((1, activation_core_height)), Network::Regtest); + setup_platform(Some((1, activation_core_height)), Network::Regtest, None); platform .drive @@ -218,7 +218,7 @@ mod tests { current_core_height: CoreBlockHeight, ) -> Credits { let (platform, _state, platform_version) = - setup_platform(Some((1, activation_core_height)), Network::Regtest); + setup_platform(Some((1, activation_core_height)), Network::Regtest, None); platform .drive diff --git a/packages/rs-drive-abci/src/query/system/version_upgrade_state/v0/mod.rs b/packages/rs-drive-abci/src/query/system/version_upgrade_state/v0/mod.rs index 44e6f7a685..4395078b12 100644 --- a/packages/rs-drive-abci/src/query/system/version_upgrade_state/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/system/version_upgrade_state/v0/mod.rs @@ -72,13 +72,14 @@ mod tests { use drive::util::grove_operations::BatchInsertApplyType; use drive::util::object_size_info::PathKeyElementInfo; use integer_encoding::VarInt; + use platform_version::version::INITIAL_PROTOCOL_VERSION; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; use std::ops::RangeFull; #[test] fn test_query_empty_upgrade_state() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProtocolVersionUpgradeStateRequestV0 { prove: false }; @@ -97,7 +98,7 @@ mod tests { #[test] fn test_query_upgrade_state() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rand = StdRng::seed_from_u64(10); @@ -189,7 +190,7 @@ mod tests { #[test] fn test_prove_empty_upgrade_state() { let platform_version = PlatformVersion::latest(); - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let request = GetProtocolVersionUpgradeStateRequestV0 { prove: true }; @@ -225,8 +226,9 @@ mod tests { #[test] fn test_prove_upgrade_state() { - let platform_version = PlatformVersion::latest(); - let (platform, state, version) = setup_platform(None, Network::Testnet); + let platform_version = PlatformVersion::first(); + let (platform, state, version) = + setup_platform(None, Network::Testnet, Some(INITIAL_PROTOCOL_VERSION)); let mut rand = StdRng::seed_from_u64(10); diff --git a/packages/rs-drive-abci/src/query/system/version_upgrade_vote_status/v0/mod.rs b/packages/rs-drive-abci/src/query/system/version_upgrade_vote_status/v0/mod.rs index 08b598fb31..66ece674ed 100644 --- a/packages/rs-drive-abci/src/query/system/version_upgrade_vote_status/v0/mod.rs +++ b/packages/rs-drive-abci/src/query/system/version_upgrade_vote_status/v0/mod.rs @@ -109,12 +109,13 @@ mod tests { use drive::util::grove_operations::BatchInsertApplyType; use drive::util::object_size_info::PathKeyElementInfo; use integer_encoding::VarInt; + use platform_version::version::INITIAL_PROTOCOL_VERSION; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; #[test] fn test_query_empty_upgrade_vote_status() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rand = StdRng::seed_from_u64(10); @@ -140,7 +141,7 @@ mod tests { #[test] fn test_query_upgrade_vote_status() { - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rand = StdRng::seed_from_u64(10); @@ -233,7 +234,7 @@ mod tests { #[test] fn test_prove_empty_upgrade_vote_status() { let platform_version = PlatformVersion::latest(); - let (platform, state, version) = setup_platform(None, Network::Testnet); + let (platform, state, version) = setup_platform(None, Network::Testnet, None); let mut rand = StdRng::seed_from_u64(10); @@ -281,8 +282,9 @@ mod tests { #[test] fn test_prove_upgrade_vote_status() { - let platform_version = PlatformVersion::latest(); - let (platform, state, version) = setup_platform(None, Network::Testnet); + let platform_version = PlatformVersion::first(); + let (platform, state, version) = + setup_platform(None, Network::Testnet, Some(INITIAL_PROTOCOL_VERSION)); let mut rand = StdRng::seed_from_u64(10); diff --git a/packages/rs-drive-abci/src/query/validator_queries/mod.rs b/packages/rs-drive-abci/src/query/validator_queries/mod.rs new file mode 100644 index 0000000000..d4af9a0d52 --- /dev/null +++ b/packages/rs-drive-abci/src/query/validator_queries/mod.rs @@ -0,0 +1,2 @@ +mod proposed_block_counts_by_evonode_ids; +mod proposed_block_counts_by_range; diff --git a/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/mod.rs b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/mod.rs new file mode 100644 index 0000000000..08a48bc2e5 --- /dev/null +++ b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/mod.rs @@ -0,0 +1,67 @@ +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_ids_request::Version as RequestVersion; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::{ + GetEvonodesProposedEpochBlocksByIdsRequest, GetEvonodesProposedEpochBlocksResponse, +}; +use dpp::version::PlatformVersion; + +mod v0; + +impl Platform { + /// Querying of the proposed block counts by evonode ids + pub fn query_proposed_block_counts_by_evonode_ids( + &self, + GetEvonodesProposedEpochBlocksByIdsRequest { version }: GetEvonodesProposedEpochBlocksByIdsRequest, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let Some(version) = version else { + return Ok(QueryValidationResult::new_with_error( + QueryError::DecodingError( + "could not decode evonodes proposed block counts by ids query".to_string(), + ), + )); + }; + + let feature_version_bounds = &platform_version + .drive_abci + .query + .validator_queries + .proposed_block_counts_by_evonode_ids; + + let feature_version = match &version { + RequestVersion::V0(_) => 0, + }; + if !feature_version_bounds.check_version(feature_version) { + return Ok(QueryValidationResult::new_with_error( + QueryError::UnsupportedQueryVersion( + "proposed_block_counts_by_evonode_ids".to_string(), + feature_version_bounds.min_version, + feature_version_bounds.max_version, + platform_version.protocol_version, + feature_version, + ), + )); + } + match version { + RequestVersion::V0(request_v0) => { + let result = self.query_proposed_block_counts_by_evonode_ids_v0( + request_v0, + platform_state, + platform_version, + )?; + + Ok( + result.map(|response_v0| GetEvonodesProposedEpochBlocksResponse { + version: Some(ResponseVersion::V0(response_v0)), + }), + ) + } + } + } +} diff --git a/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/v0/mod.rs b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/v0/mod.rs new file mode 100644 index 0000000000..6780b1a690 --- /dev/null +++ b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_evonode_ids/v0/mod.rs @@ -0,0 +1,107 @@ +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_ids_request::GetEvonodesProposedEpochBlocksByIdsRequestV0; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::GetEvonodesProposedEpochBlocksResponseV0; +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::get_evonodes_proposed_epoch_blocks_response_v0; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::get_evonodes_proposed_epoch_blocks_response_v0::{EvonodeProposedBlocks, EvonodesProposedBlocks}; +use dpp::block::epoch::Epoch; +use dpp::check_validation_result_with_data; +use dpp::validation::ValidationResult; +use dpp::version::PlatformVersion; +use drive::query::proposer_block_count_query::ProposerQueryType; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; + +impl Platform { + pub(super) fn query_proposed_block_counts_by_evonode_ids_v0( + &self, + GetEvonodesProposedEpochBlocksByIdsRequestV0 { epoch, ids, prove }: GetEvonodesProposedEpochBlocksByIdsRequestV0, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + if ids.len() > self.config.drive.max_query_limit as usize { + return Ok(QueryValidationResult::new_with_error( + QueryError::TooManyElements(format!( + "this query only supports up to {} ids at a time", + ids.len() + )), + )); + } + let evonode_ids = check_validation_result_with_data!(ids + .into_iter() + .map(|evonode_id_vec| { + if evonode_id_vec.len() != 32 { + Err(QueryError::InvalidArgument( + "id must be a valid identifier (32 bytes long)".to_string(), + )) + } else { + Ok(evonode_id_vec) + } + }) + .collect::>, QueryError>>()); + + let epoch = if let Some(epoch) = epoch { + if epoch > (u16::MAX - 1) as u32 { + return Ok(QueryValidationResult::new_with_error( + QueryError::InvalidArgument( + "epoch must be within a normal range (less than u16::Max - 1)".to_string(), + ), + )); + } + + let epoch = + check_validation_result_with_data!(Epoch::new(epoch as u16).map_err(|_| { + QueryError::InvalidArgument( + "epoch must be within a normal range (less than u16::Max - 1)".to_string(), + ) + })); + epoch + } else { + // Get current epoch instead + platform_state.last_committed_block_epoch() + }; + + let response = if prove { + let proof = check_validation_result_with_data!(self.drive.prove_epoch_proposers( + &epoch, + ProposerQueryType::ByIds(evonode_ids), + None, + platform_version + )); + + GetEvonodesProposedEpochBlocksResponseV0 { + result: Some( + get_evonodes_proposed_epoch_blocks_response_v0::Result::Proof( + self.response_proof_v0(platform_state, proof), + ), + ), + metadata: Some(self.response_metadata_v0(platform_state)), + } + } else { + let evonodes_proposed_block_counts = self + .drive + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByIds(evonode_ids), + None, + platform_version, + )? + .into_iter() + .map(|(pro_tx_hash, count)| EvonodeProposedBlocks { pro_tx_hash, count }) + .collect(); + + let evonode_proposed_blocks = EvonodesProposedBlocks { + evonodes_proposed_block_counts, + }; + + GetEvonodesProposedEpochBlocksResponseV0 { + result: Some(get_evonodes_proposed_epoch_blocks_response_v0::Result::EvonodesProposedBlockCountsInfo(evonode_proposed_blocks)), + metadata: Some(self.response_metadata_v0(platform_state)), + } + }; + + Ok(QueryValidationResult::new_with_data(response)) + } +} diff --git a/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/mod.rs b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/mod.rs new file mode 100644 index 0000000000..c56fe5b921 --- /dev/null +++ b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/mod.rs @@ -0,0 +1,67 @@ +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_range_request::Version as RequestVersion; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::Version as ResponseVersion; +use dapi_grpc::platform::v0::{ + GetEvonodesProposedEpochBlocksByRangeRequest, GetEvonodesProposedEpochBlocksResponse, +}; +use dpp::version::PlatformVersion; + +mod v0; + +impl Platform { + /// Querying of the proposed block counts by range + pub fn query_proposed_block_counts_by_range( + &self, + GetEvonodesProposedEpochBlocksByRangeRequest { version }: GetEvonodesProposedEpochBlocksByRangeRequest, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let Some(version) = version else { + return Ok(QueryValidationResult::new_with_error( + QueryError::DecodingError( + "could not decode evonodes proposed block counts by range query".to_string(), + ), + )); + }; + + let feature_version_bounds = &platform_version + .drive_abci + .query + .validator_queries + .proposed_block_counts_by_range; + + let feature_version = match &version { + RequestVersion::V0(_) => 0, + }; + if !feature_version_bounds.check_version(feature_version) { + return Ok(QueryValidationResult::new_with_error( + QueryError::UnsupportedQueryVersion( + "proposed_block_counts_by_range".to_string(), + feature_version_bounds.min_version, + feature_version_bounds.max_version, + platform_version.protocol_version, + feature_version, + ), + )); + } + match version { + RequestVersion::V0(request_v0) => { + let result = self.query_proposed_block_counts_by_range_v0( + request_v0, + platform_state, + platform_version, + )?; + + Ok( + result.map(|response_v0| GetEvonodesProposedEpochBlocksResponse { + version: Some(ResponseVersion::V0(response_v0)), + }), + ) + } + } + } +} diff --git a/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/v0/mod.rs b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/v0/mod.rs new file mode 100644 index 0000000000..9ba56968ec --- /dev/null +++ b/packages/rs-drive-abci/src/query/validator_queries/proposed_block_counts_by_range/v0/mod.rs @@ -0,0 +1,135 @@ +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_range_request::get_evonodes_proposed_epoch_blocks_by_range_request_v0::Start; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_range_request::GetEvonodesProposedEpochBlocksByRangeRequestV0; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::GetEvonodesProposedEpochBlocksResponseV0; +use crate::error::query::QueryError; +use crate::error::Error; +use crate::platform_types::platform::Platform; +use crate::platform_types::platform_state::PlatformState; +use crate::query::QueryValidationResult; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::get_evonodes_proposed_epoch_blocks_response_v0; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_response::get_evonodes_proposed_epoch_blocks_response_v0::{EvonodeProposedBlocks, EvonodesProposedBlocks}; +use dpp::block::epoch::Epoch; +use dpp::check_validation_result_with_data; +use dpp::validation::ValidationResult; +use dpp::version::PlatformVersion; +use drive::query::proposer_block_count_query::ProposerQueryType; +use drive::error::query::QuerySyntaxError; +use crate::platform_types::platform_state::v0::PlatformStateV0Methods; + +impl Platform { + pub(super) fn query_proposed_block_counts_by_range_v0( + &self, + GetEvonodesProposedEpochBlocksByRangeRequestV0 { + epoch, + limit, + prove, + start, + }: GetEvonodesProposedEpochBlocksByRangeRequestV0, + platform_state: &PlatformState, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let config = &self.config.drive; + let limit = limit + .map_or(Some(config.default_query_limit), |limit_value| { + if limit_value == 0 + || limit_value > u16::MAX as u32 + || limit_value as u16 > config.max_query_limit + { + None + } else { + Some(limit_value as u16) + } + }) + .ok_or(drive::error::Error::Query(QuerySyntaxError::InvalidLimit( + format!( + "limit {} greater than max limit {} or was set as 0", + limit.unwrap(), + config.max_query_limit + ), + )))?; + + let formatted_start = match start { + None => None, + Some(Start::StartAfter(after)) => { + let id: [u8; 32] = + check_validation_result_with_data!(after.try_into().map_err(|_| { + QueryError::Query(QuerySyntaxError::InvalidStartsWithClause( + "start after should be a 32 byte identifier", + )) + })); + Some((id, false)) + } + Some(Start::StartAt(after)) => { + let id: [u8; 32] = + check_validation_result_with_data!(after.try_into().map_err(|_| { + QueryError::Query(QuerySyntaxError::InvalidStartsWithClause( + "start after should be a 32 byte identifier", + )) + })); + Some((id, true)) + } + }; + + let epoch = if let Some(epoch) = epoch { + if epoch > (u16::MAX - 1) as u32 { + return Ok(QueryValidationResult::new_with_error( + QueryError::InvalidArgument( + "epoch must be within a normal range (less than u16::Max - 1)".to_string(), + ), + )); + } + + let epoch = + check_validation_result_with_data!(Epoch::new(epoch as u16).map_err(|_| { + QueryError::InvalidArgument( + "epoch must be within a normal range (less than u16::Max - 1)".to_string(), + ) + })); + epoch + } else { + // Get current epoch instead + platform_state.last_committed_block_epoch() + }; + + let response = if prove { + let proof = check_validation_result_with_data!(self.drive.prove_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(limit), formatted_start), + None, + platform_version + )); + + GetEvonodesProposedEpochBlocksResponseV0 { + result: Some( + get_evonodes_proposed_epoch_blocks_response_v0::Result::Proof( + self.response_proof_v0(platform_state, proof), + ), + ), + metadata: Some(self.response_metadata_v0(platform_state)), + } + } else { + let evonodes_proposed_block_counts = self + .drive + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(limit), formatted_start), + None, + platform_version, + )? + .into_iter() + .map(|(pro_tx_hash, count)| EvonodeProposedBlocks { pro_tx_hash, count }) + .collect(); + + let evonode_proposed_blocks = EvonodesProposedBlocks { + evonodes_proposed_block_counts, + }; + + GetEvonodesProposedEpochBlocksResponseV0 { + result: Some(get_evonodes_proposed_epoch_blocks_response_v0::Result::EvonodesProposedBlockCountsInfo(evonode_proposed_blocks)), + metadata: Some(self.response_metadata_v0(platform_state)), + } + }; + + Ok(QueryValidationResult::new_with_data(response)) + } +} diff --git a/packages/rs-drive-abci/src/rpc/core.rs b/packages/rs-drive-abci/src/rpc/core.rs index 46e16a2e0b..a16f0341dc 100644 --- a/packages/rs-drive-abci/src/rpc/core.rs +++ b/packages/rs-drive-abci/src/rpc/core.rs @@ -152,9 +152,9 @@ pub const CORE_RPC_INVALID_ADDRESS_OR_KEY: i32 = -5; /// Invalid, missing or duplicate parameter pub const CORE_RPC_INVALID_PARAMETER: i32 = -8; -/// Asset Unlock consenus error "bad-assetunlock-not-active-quorum" +/// Asset Unlock consensus error "bad-assetunlock-not-active-quorum" pub const CORE_RPC_ERROR_ASSET_UNLOCK_NO_ACTIVE_QUORUM: &str = "bad-assetunlock-not-active-quorum"; -/// Asset Unlock consenus error "bad-assetunlock-not-active-quorum" +/// Asset Unlock consensus error "bad-assetunlock-not-active-quorum" pub const CORE_RPC_ERROR_ASSET_UNLOCK_EXPIRED: &str = "bad-assetunlock-too-late"; macro_rules! retry { diff --git a/packages/rs-drive-abci/src/test/fixture/abci.rs b/packages/rs-drive-abci/src/test/fixture/abci.rs index 0d2db3608e..45abd250ca 100644 --- a/packages/rs-drive-abci/src/test/fixture/abci.rs +++ b/packages/rs-drive-abci/src/test/fixture/abci.rs @@ -2,12 +2,19 @@ //! use crate::config::PlatformConfig; +use dpp::version::PlatformVersion; +use dpp::version::ProtocolVersion; use tenderdash_abci::proto::abci::RequestInitChain; use tenderdash_abci::proto::google::protobuf::Timestamp; use tenderdash_abci::proto::types::{ConsensusParams, VersionParams}; /// Creates static init chain request fixture -pub fn static_init_chain_request(config: &PlatformConfig) -> RequestInitChain { +pub fn static_init_chain_request( + config: &PlatformConfig, + protocol_version: ProtocolVersion, +) -> RequestInitChain { + let platform_version = + PlatformVersion::get(protocol_version).expect("expected to get platform version"); RequestInitChain { time: Some(Timestamp { seconds: 0, @@ -16,7 +23,8 @@ pub fn static_init_chain_request(config: &PlatformConfig) -> RequestInitChain { chain_id: "strategy_tests".to_string(), consensus_params: Some(ConsensusParams { version: Some(VersionParams { - app_version: config.initial_protocol_version as u64, + app_version: protocol_version as u64, + consensus_version: platform_version.consensus.tenderdash_consensus_version as i32, }), ..Default::default() }), diff --git a/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs b/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs index 9cbc8bec21..28f9d5152f 100644 --- a/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs +++ b/packages/rs-drive-abci/src/test/helpers/fast_forward_to_block.rs @@ -105,9 +105,6 @@ pub(crate) fn process_epoch_change( previous_epoch_index: epoch_index.checked_sub(1), is_epoch_change: true, }), - // TODO: It doesn't seem correct to use previous block count of hpmns. - // We currently not using this field in the codebase. We probably should just remove it. - hpmn_count: 100, unsigned_withdrawal_transactions: UnsignedWithdrawalTxs::default(), block_platform_state: platform_state, proposer_results: None, diff --git a/packages/rs-drive-abci/src/test/helpers/setup.rs b/packages/rs-drive-abci/src/test/helpers/setup.rs index a557c2e915..08d56b2dc5 100644 --- a/packages/rs-drive-abci/src/test/helpers/setup.rs +++ b/packages/rs-drive-abci/src/test/helpers/setup.rs @@ -1,32 +1,3 @@ -// MIT LICENSE -// -// Copyright (c) 2021 Dash Core Group -// -// Permission is hereby granted, free of charge, to any -// person obtaining a copy of this software and associated -// documentation files (the "Software"), to deal in the -// Software without restriction, including without -// limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software -// is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice -// shall be included in all copies or substantial portions -// of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - //! Platform setup helpers. //! //! This module defines helper functions related to setting up Platform. @@ -45,12 +16,14 @@ use dpp::nft::TradeMode; use dpp::prelude::{CoreBlockHeight, DataContract, TimestampMillis}; use dpp::tests::json_document::json_document_to_contract; use dpp::version::PlatformVersion; +use dpp::version::ProtocolVersion; use drive::util::storage_flags::StorageFlags; use tempfile::TempDir; /// A test platform builder. pub struct TestPlatformBuilder { config: Option, + initial_protocol_version: Option, tempdir: TempDir, } @@ -74,10 +47,36 @@ impl TestPlatformBuilder { self } + /// Add initial protocol version + pub fn with_initial_protocol_version( + mut self, + initial_protocol_version: ProtocolVersion, + ) -> Self { + self.initial_protocol_version = Some(initial_protocol_version); + self + } + + /// Add initial protocol version as latest + pub fn with_latest_protocol_version(mut self) -> Self { + self.initial_protocol_version = Some(PlatformVersion::latest().protocol_version); + self + } + /// Create a new temp platform with a mock core rpc pub fn build_with_mock_rpc(self) -> TempPlatform { - let platform = Platform::::open(self.tempdir.path(), self.config) - .expect("should open Platform successfully"); + let use_initial_protocol_version = + if let Some(initial_protocol_version) = self.initial_protocol_version { + // We should use the latest if nothing is set + Some(initial_protocol_version) + } else { + Some(PlatformVersion::latest().protocol_version) + }; + let platform = Platform::::open( + self.tempdir.path(), + self.config, + use_initial_protocol_version, + ) + .expect("should open Platform successfully"); TempPlatform { platform, @@ -103,6 +102,7 @@ impl Default for TestPlatformBuilder { Self { tempdir, config: None, + initial_protocol_version: None, } } } @@ -192,8 +192,15 @@ impl TempPlatform { /// Sets Platform to genesis state. pub fn set_genesis_state(self) -> Self { + let platform_state = self.platform.state.load(); self.platform - .create_genesis_state(1, Default::default(), None, PlatformVersion::latest()) + .create_genesis_state( + 1, + Default::default(), + None, + PlatformVersion::get(platform_state.current_protocol_version_in_consensus()) + .expect("expected to get platform version"), + ) .expect("should create root tree successfully"); self @@ -205,12 +212,16 @@ impl TempPlatform { genesis_time: TimestampMillis, start_core_block_height: CoreBlockHeight, ) -> Self { + let platform_state = self.platform.state.load(); + let platform_version = + PlatformVersion::get(platform_state.current_protocol_version_in_consensus()) + .expect("expected to get platform version"); self.platform .create_genesis_state( start_core_block_height, genesis_time, None, - PlatformVersion::latest(), + platform_version, ) .expect("should create root tree successfully"); @@ -219,7 +230,7 @@ impl TempPlatform { /// Rebuilds Platform from the tempdir as if it was destroyed and restarted pub fn open_with_tempdir(tempdir: TempDir, config: PlatformConfig) -> Self { - let platform = Platform::::open(tempdir.path(), Some(config)) + let platform = Platform::::open(tempdir.path(), Some(config), None) .expect("should open Platform successfully"); Self { platform, tempdir } diff --git a/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs b/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs index 9318c7c299..474e67e577 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/chain_lock_update.rs @@ -1,6 +1,5 @@ #[cfg(test)] mod tests { - use crate::execution::run_chain_for_strategy; use crate::strategy::CoreHeightIncrease::RandomCoreHeightIncrease; use crate::strategy::{MasternodeListChangesStrategy, NetworkStrategy}; @@ -68,12 +67,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() diff --git a/packages/rs-drive-abci/tests/strategy_tests/execution.rs b/packages/rs-drive-abci/tests/strategy_tests/execution.rs index 66f2735db7..777dc361a2 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/execution.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/execution.rs @@ -829,8 +829,15 @@ pub(crate) fn start_chain_for_strategy( .get::(¤t_validator_quorum_hash) .expect("expected a quorum to be found"); + let platform_state = abci_application.platform.state.load(); + let protocol_version = platform_state + .current_platform_version() + .unwrap() + .protocol_version; + drop(platform_state); + // init chain - let mut init_chain_request = static_init_chain_request(&config); + let mut init_chain_request = static_init_chain_request(&config, protocol_version); init_chain_request.initial_core_height = config.abci.genesis_core_height; init_chain_request.validator_set = Some(ValidatorSetUpdate { @@ -886,6 +893,7 @@ pub(crate) fn start_chain_for_strategy( current_votes: Default::default(), start_time_ms: GENESIS_TIME_MS, current_time_ms: GENESIS_TIME_MS, + current_identities: Vec::new(), }, strategy, config, @@ -915,6 +923,7 @@ pub(crate) fn continue_chain_for_strategy( start_time_ms, mut current_time_ms, instant_lock_quorums, + mut current_identities, } = chain_execution_parameters; let mut rng = match seed { StrategyRandomness::SeedEntropy(seed) => StdRng::seed_from_u64(seed), @@ -922,7 +931,6 @@ pub(crate) fn continue_chain_for_strategy( }; let quorum_size = config.validator_set.quorum_size; let first_block_time = start_time_ms; - let mut current_identities = vec![]; let mut signer = strategy.strategy.signer.clone().unwrap_or_default(); let mut i = 0; @@ -1208,5 +1216,6 @@ pub(crate) fn continue_chain_for_strategy( validator_set_updates, state_transition_results_per_block, instant_lock_quorums, + signer, } } diff --git a/packages/rs-drive-abci/tests/strategy_tests/failures.rs b/packages/rs-drive-abci/tests/strategy_tests/failures.rs index 9c2cb59c92..eb80cc1e5b 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/failures.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/failures.rs @@ -87,12 +87,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() diff --git a/packages/rs-drive-abci/tests/strategy_tests/main.rs b/packages/rs-drive-abci/tests/strategy_tests/main.rs index ed4b1655b1..2312241cc6 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/main.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/main.rs @@ -30,6 +30,7 @@ mod strategy; mod upgrade_fork_tests; mod verify_state_transitions; mod voting_tests; +mod withdrawal_tests; pub type BlockHeight = u64; @@ -43,15 +44,13 @@ fn asset_unlock_index(tx: &Transaction) -> u64 { #[cfg(test)] mod tests { use super::*; - use crate::execution::{continue_chain_for_strategy, run_chain_for_strategy, GENESIS_TIME_MS}; + use crate::execution::{continue_chain_for_strategy, run_chain_for_strategy}; use crate::query::QueryStrategy; use crate::strategy::{FailureStrategy, MasternodeListChangesStrategy}; use dashcore_rpc::dashcore::hashes::Hash; use dashcore_rpc::dashcore::BlockHash; - use dashcore_rpc::dashcore_rpc_json::AssetUnlockStatus; - use dashcore_rpc::json::{AssetUnlockStatusResult, QuorumType}; + use dashcore_rpc::json::QuorumType; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0Getters; - use std::sync::{Arc, Mutex}; use strategy_tests::operations::DocumentAction::{ DocumentActionReplaceRandom, DocumentActionTransferRandom, }; @@ -61,21 +60,15 @@ mod tests { use strategy_tests::{IdentityInsertInfo, StartIdentities}; use crate::strategy::CoreHeightIncrease::RandomCoreHeightIncrease; - use dpp::dashcore::bls_sig_utils::BLSSignature; use dpp::dashcore::ChainLock; - use dpp::dashcore::Txid; use dpp::data_contract::accessors::v0::{DataContractV0Getters, DataContractV0Setters}; use dpp::data_contract::document_type::random_document::{ DocumentFieldFillSize, DocumentFieldFillType, }; use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; - use dpp::system_data_contracts::withdrawals_contract; use dpp::tests::json_document::json_document_to_created_contract; use dpp::util::hash::hash_to_hex_string; - use dpp::version::PlatformVersion; - use drive::config::DEFAULT_QUERY_LIMIT; - use drive::drive::identity::withdrawals::WithdrawalTransactionIndex; use drive_abci::config::{ ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformTestConfig, ValidatorSetConfig, }; @@ -87,11 +80,14 @@ mod tests { use rand::SeedableRng; use tenderdash_abci::proto::abci::{RequestInfo, ResponseInfo}; + use dpp::dash_to_duffs; use dpp::data_contract::document_type::v0::random_document_type::{ FieldMinMaxBounds, FieldTypeWeights, RandomDocumentTypeParameters, }; use dpp::identity::{Identity, KeyType, Purpose, SecurityLevel}; use dpp::state_transition::StateTransition; + use platform_version::version::v1::PROTOCOL_VERSION_1; + use platform_version::version::PlatformVersion; use simple_signer::signer::SimpleSigner; use strategy_tests::transitions::create_state_transitions_for_identities; use tenderdash_abci::Application; @@ -314,6 +310,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -456,6 +453,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -505,12 +503,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -1160,17 +1153,13 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc(); let outcome = run_chain_for_strategy(&mut platform, 150, strategy, config, 15, &mut None); @@ -1252,12 +1241,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -1266,6 +1250,16 @@ mod tests { let outcome = run_chain_for_strategy(&mut platform, 1, strategy, config, 15, &mut None); + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + outcome .abci_app .platform @@ -1463,12 +1457,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -1653,12 +1642,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 120; @@ -1767,12 +1751,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 120; @@ -1900,18 +1879,14 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 120; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc(); let outcome = @@ -2035,18 +2010,14 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 120; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc(); let outcome = @@ -2369,6 +2340,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -2401,12 +2373,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 30; @@ -2507,6 +2474,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -2539,12 +2507,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 21; @@ -2635,6 +2598,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &simple_signer, &mut rng, platform_version, @@ -2695,12 +2659,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let block_count = 21; @@ -2809,6 +2768,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -2841,29 +2801,24 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; - let block_count = 30; + let block_count = 100; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) .build_with_mock_rpc(); let outcome = run_chain_for_strategy(&mut platform, block_count, strategy, config, 15, &mut None); - assert_eq!(outcome.identities.len() as u64, 83); + assert_eq!(outcome.identities.len() as u64, 296); assert_eq!(outcome.masternode_identity_balances.len(), 100); let balance_count = outcome .masternode_identity_balances .into_iter() .filter(|(_, balance)| *balance != 0) .count(); - assert_eq!(balance_count, 19); // 1 epoch worth of proposers + assert_eq!(balance_count, 92); // 1 epoch worth of proposers let issues = outcome .abci_app @@ -2945,7 +2900,7 @@ mod tests { Operation { op_type: OperationType::Document(document_insertion_op), frequency: Frequency { - times_per_block_range: 1..40, + times_per_block_range: 1..10, chance_per_block: None, }, }, @@ -2979,6 +2934,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -3011,29 +2967,24 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; - let block_count = 30; + let block_count = 70; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) .build_with_mock_rpc(); let outcome = run_chain_for_strategy(&mut platform, block_count, strategy, config, 15, &mut None); - assert_eq!(outcome.identities.len() as u64, 79); + assert_eq!(outcome.identities.len() as u64, 201); assert_eq!(outcome.masternode_identity_balances.len(), 100); let balance_count = outcome .masternode_identity_balances .into_iter() .filter(|(_, balance)| *balance != 0) .count(); - assert_eq!(balance_count, 19); // 1 epoch worth of proposers + assert_eq!(balance_count, 55); // 1 epoch worth of proposers } #[test] @@ -3045,7 +2996,7 @@ mod tests { strategy: Strategy { start_contracts: vec![], operations: vec![Operation { - op_type: OperationType::IdentityTopUp, + op_type: OperationType::IdentityTopUp(dash_to_duffs!(1)..=dash_to_duffs!(1)), frequency: Frequency { times_per_block_range: 1..3, chance_per_block: None, @@ -3168,12 +3119,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -3258,12 +3204,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() @@ -3297,610 +3238,6 @@ mod tests { })); } - #[test] - #[ignore] - fn run_chain_top_up_and_withdraw_from_identities() { - let platform_version = PlatformVersion::latest(); - let strategy = NetworkStrategy { - strategy: Strategy { - start_contracts: vec![], - operations: vec![ - Operation { - op_type: OperationType::IdentityTopUp, - frequency: Frequency { - times_per_block_range: 1..4, - chance_per_block: None, - }, - }, - Operation { - op_type: OperationType::IdentityWithdrawal, - frequency: Frequency { - times_per_block_range: 1..4, - chance_per_block: None, - }, - }, - ], - start_identities: StartIdentities::default(), - identity_inserts: IdentityInsertInfo { - frequency: Frequency { - times_per_block_range: 1..2, - chance_per_block: None, - }, - start_keys: 3, - extra_keys: [( - Purpose::TRANSFER, - [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), - )] - .into(), - }, - identity_contract_nonce_gaps: None, - signer: None, - }, - total_hpmns: 100, - extra_normal_mns: 0, - validator_quorum_count: 24, - chain_lock_quorum_count: 24, - upgrading_info: None, - - proposer_strategy: Default::default(), - rotate_quorums: false, - failure_testing: None, - query_testing: None, - // because we can add an identity and withdraw from it in the same block - // the result would be different from what would be expected - verify_state_transition_results: false, - ..Default::default() - }; - let config = PlatformConfig { - validator_set: ValidatorSetConfig::default_100_67(), - chain_lock: ChainLockConfig::default_100_67(), - instant_lock: InstantLockConfig::default_100_67(), - execution: ExecutionConfig { - verify_sum_trees: true, - - ..Default::default() - }, - block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, - ..Default::default() - }; - - let mut platform = TestPlatformBuilder::new() - .with_config(config.clone()) - .build_with_mock_rpc(); - - platform - .core_rpc - .expect_send_raw_transaction() - .returning(move |_| Ok(Txid::all_zeros())); - - struct CoreState { - asset_unlock_statuses: BTreeMap, - chain_lock: ChainLock, - } - - let mut chain_locked_height = 1; - - // Have to go with a complicated shared object for the core state because we need to change - // rpc response along the way but we can't mutate `platform.core_rpc` later - // because platform reference is moved into the AbciApplication. - let shared_core_state = Arc::new(Mutex::new(CoreState { - asset_unlock_statuses: BTreeMap::new(), - chain_lock: ChainLock { - block_height: chain_locked_height, - block_hash: BlockHash::from_byte_array([1; 32]), - signature: BLSSignature::from([2; 96]), - }, - })); - - // Set up Core RPC responses - { - let core_state = shared_core_state.clone(); - - platform - .core_rpc - .expect_get_asset_unlock_statuses() - .returning(move |indices, _| { - Ok(indices - .iter() - .map(|index| { - core_state - .lock() - .unwrap() - .asset_unlock_statuses - .get(index) - .cloned() - .unwrap() - }) - .collect()) - }); - - let core_state = shared_core_state.clone(); - platform - .core_rpc - .expect_get_best_chain_lock() - .returning(move || Ok(core_state.lock().unwrap().chain_lock.clone())); - } - - // Run first two blocks: - // - Block 1: creates identity - // - Block 2: tops up identity and initiates withdrawals - let ( - ChainExecutionOutcome { - abci_app, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions, - end_time_ms, - identity_nonce_counter, - identity_contract_nonce_counter, - instant_lock_quorums, - .. - }, - last_block_pooled_withdrawals_amount, - ) = { - let outcome = run_chain_for_strategy( - &mut platform, - 2, - strategy.clone(), - config.clone(), - 1, - &mut None, - ); - - // Withdrawal transactions are not populated to block execution context yet - assert_eq!(outcome.withdrawals.len(), 0); - - // Withdrawal documents with pooled status should exist. - let withdrawal_documents_pooled = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::POOLED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - assert!(!withdrawal_documents_pooled.is_empty()); - let pooled_withdrawals = withdrawal_documents_pooled.len(); - - (outcome, pooled_withdrawals) - }; - - // Run block 3 - // Should broadcast previously pooled withdrawals to core - let ChainExecutionOutcome { - abci_app, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions, - end_time_ms, - withdrawals: last_block_withdrawals, - identity_nonce_counter, - identity_contract_nonce_counter, - instant_lock_quorums, - .. - } = { - let outcome = continue_chain_for_strategy( - abci_app, - ChainExecutionParameters { - block_start: 3, - core_height_start: 1, - block_count: 1, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions: Some(current_proposer_versions), - current_identity_nonce_counter: identity_nonce_counter, - current_identity_contract_nonce_counter: identity_contract_nonce_counter, - current_votes: BTreeMap::default(), - start_time_ms: GENESIS_TIME_MS, - current_time_ms: end_time_ms, - instant_lock_quorums, - }, - strategy.clone(), - config.clone(), - StrategyRandomness::SeedEntropy(2), - ); - - // Withdrawal documents with pooled status should exist. - let withdrawal_documents_broadcasted = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - // In this block all previously pooled withdrawals should be broadcasted - assert_eq!( - outcome.withdrawals.len(), - last_block_pooled_withdrawals_amount - ); - assert_eq!( - withdrawal_documents_broadcasted.len(), - last_block_pooled_withdrawals_amount - ); - - outcome - }; - - // Update core state before running next block. - // Asset unlocks broadcasted in the last block should have Unknown status - { - let mut core_state = shared_core_state.lock().unwrap(); - last_block_withdrawals.iter().for_each(|tx| { - let index = asset_unlock_index(tx); - - core_state.asset_unlock_statuses.insert( - index, - AssetUnlockStatusResult { - index, - status: AssetUnlockStatus::Unknown, - }, - ); - }); - } - - // Run block 4 - // Should change pooled status to broadcasted - let last_block_broadcasted_withdrawals_amount = last_block_withdrawals.len(); - let ( - ChainExecutionOutcome { - abci_app, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions, - end_time_ms, - withdrawals: last_block_withdrawals, - identity_nonce_counter, - identity_contract_nonce_counter, - instant_lock_quorums, - .. - }, - last_block_broadcased_withdrawals_amount, - ) = { - let outcome = continue_chain_for_strategy( - abci_app, - ChainExecutionParameters { - block_start: 4, - core_height_start: 1, - block_count: 1, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions: Some(current_proposer_versions), - current_identity_nonce_counter: identity_nonce_counter, - current_identity_contract_nonce_counter: identity_contract_nonce_counter, - current_votes: BTreeMap::default(), - start_time_ms: GENESIS_TIME_MS, - current_time_ms: end_time_ms + 1000, - instant_lock_quorums, - }, - strategy.clone(), - config.clone(), - StrategyRandomness::SeedEntropy(3), - ); - - let withdrawal_documents_pooled = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::POOLED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_broadcasted = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - // In this block we should have new withdrawals pooled - assert!(!withdrawal_documents_pooled.is_empty()); - - // And extra withdrawals broadcasted - let withdrawals_broadcasted_expected = - last_block_broadcasted_withdrawals_amount + outcome.withdrawals.len(); - assert_eq!( - withdrawal_documents_broadcasted.len(), - withdrawals_broadcasted_expected - ); - - (outcome, withdrawal_documents_broadcasted.len()) - }; - - // Update core state for newly broadcasted transactions - { - let mut core_state = shared_core_state.lock().unwrap(); - - // First, set all previously broadcasted transactions to Chainlocked - core_state - .asset_unlock_statuses - .iter_mut() - .for_each(|(index, status_result)| { - // Do not settle yet transactions that were broadcasted in the last block - status_result.index = *index; - status_result.status = AssetUnlockStatus::Chainlocked; - }); - - // Then increase chainlocked height, so that withdrawals for chainlocked transactions - // could be completed in the next block - // TODO: do we need this var? - chain_locked_height += 1; - core_state.chain_lock.block_height = chain_locked_height; - - // Then set all newly broadcasted transactions to Unknown - last_block_withdrawals.iter().for_each(|tx| { - let index = asset_unlock_index(tx); - - core_state.asset_unlock_statuses.insert( - index, - AssetUnlockStatusResult { - index, - status: AssetUnlockStatus::Unknown, - }, - ); - }); - - drop(core_state); - } - - // Run block 5 - // Previously broadcasted transactions should be settled after block 5, - // and their corresponding statuses should be changed to COMPLETED - let ( - ChainExecutionOutcome { - abci_app, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions, - end_time_ms, - withdrawals: last_block_withdrawals, - identity_nonce_counter, - identity_contract_nonce_counter, - instant_lock_quorums, - .. - }, - last_block_withdrawals_completed_amount, - ) = { - let outcome = continue_chain_for_strategy( - abci_app, - ChainExecutionParameters { - block_start: 5, - core_height_start: 1, - block_count: 1, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions: Some(current_proposer_versions), - current_identity_nonce_counter: identity_nonce_counter, - current_identity_contract_nonce_counter: identity_contract_nonce_counter, - current_votes: BTreeMap::default(), - start_time_ms: GENESIS_TIME_MS, - current_time_ms: end_time_ms + 1000, - instant_lock_quorums, - }, - strategy.clone(), - config.clone(), - StrategyRandomness::SeedEntropy(4), - ); - - let withdrawal_documents_pooled = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::POOLED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_broadcasted = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_completed = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::COMPLETE.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - // In this block we should have new withdrawals pooled - assert!(!withdrawal_documents_pooled.is_empty()); - - // And some withdrawals completed - let withdrawals_completed_expected = - // Withdrawals issued on {previous_block - 1} considered completed - last_block_broadcased_withdrawals_amount - last_block_withdrawals.len(); - assert_eq!( - withdrawal_documents_completed.len(), - withdrawals_completed_expected - ); - - // And extra withdrawals broadcasted - let withdrawals_broadcasted_expected = - // Withdrawals issued on previous block + withdrawals from this block are still in broadcasted state - last_block_withdrawals.len() + outcome.withdrawals.len(); - - assert_eq!( - withdrawal_documents_broadcasted.len(), - withdrawals_broadcasted_expected - ); - - (outcome, withdrawal_documents_completed.len()) - }; - - // Update state of the core before proceeding to the next block - { - // Simulate transactions being added to the core mempool - let mut core_state = shared_core_state.lock().unwrap(); - - let number_of_blocks_before_expiration: u32 = 48; - chain_locked_height += number_of_blocks_before_expiration; - - core_state.chain_lock.block_height = chain_locked_height; - - last_block_withdrawals.iter().for_each(|tx| { - let index = asset_unlock_index(tx); - - core_state.asset_unlock_statuses.insert( - index, - AssetUnlockStatusResult { - index, - status: AssetUnlockStatus::Unknown, - }, - ); - }); - } - - // Run block 6. - // Tests withdrawal expiration - let ChainExecutionOutcome { .. } = { - let outcome = continue_chain_for_strategy( - abci_app, - ChainExecutionParameters { - block_start: 6, - core_height_start: 1, - block_count: 1, - proposers, - validator_quorums: quorums, - current_validator_quorum_hash: current_quorum_hash, - current_proposer_versions: Some(current_proposer_versions), - current_identity_nonce_counter: identity_nonce_counter, - current_identity_contract_nonce_counter: identity_contract_nonce_counter, - current_votes: BTreeMap::default(), - start_time_ms: GENESIS_TIME_MS, - current_time_ms: end_time_ms + 1000, - instant_lock_quorums, - }, - strategy.clone(), - config.clone(), - StrategyRandomness::SeedEntropy(5), - ); - - let withdrawal_documents_pooled = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::POOLED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_broadcasted = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_completed = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::COMPLETE.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - let withdrawal_documents_expired = outcome - .abci_app - .platform - .drive - .fetch_oldest_withdrawal_documents_by_status( - withdrawals_contract::WithdrawalStatus::EXPIRED.into(), - DEFAULT_QUERY_LIMIT, - None, - platform_version, - ) - .unwrap(); - - // In this block we should have new withdrawals pooled - assert!(!withdrawal_documents_pooled.is_empty()); - - // Amount of completed withdrawals stays the same as in the last block - assert_eq!( - withdrawal_documents_completed.len(), - last_block_withdrawals_completed_amount - ); - - // And some withdrawals got expired - let withdrawals_expired_expected = - // Withdrawals issued on {previous_block - 1}, but not chainlocked yet, considered expired - last_block_broadcased_withdrawals_amount - last_block_withdrawals.len(); - - assert_eq!( - withdrawal_documents_expired.len(), - withdrawals_expired_expected - ); - - // And extra withdrawals broadcasted - let withdrawals_broadcasted_expected = - // Withdrawals issued on previous block + withdrawals from this block are still in broadcasted state - last_block_withdrawals.len() + outcome.withdrawals.len(); - - assert_eq!( - withdrawal_documents_broadcasted.len(), - withdrawals_broadcasted_expected - ); - - outcome - }; - } - #[test] fn run_chain_rotation_is_deterministic_1_block() { let strategy = NetworkStrategy { @@ -3916,6 +3253,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -4102,6 +3440,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -4264,6 +3603,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -4310,12 +3650,7 @@ mod tests { ..Default::default() }, block_spacing_ms: day_in_ms, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform_a = TestPlatformBuilder::new() @@ -4560,6 +3895,7 @@ mod tests { current_votes: BTreeMap::default(), start_time_ms: 1681094380000, current_time_ms: end_time_ms, + current_identities: Vec::new(), }, strategy, config, @@ -4593,6 +3929,7 @@ mod tests { [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), )] .into(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, identity_contract_nonce_gaps: None, @@ -4622,12 +3959,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; @@ -4667,6 +3999,7 @@ mod tests { }, start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), }, ..Default::default() @@ -4684,12 +4017,7 @@ mod tests { ..Default::default() }, block_spacing_ms: 3000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() diff --git a/packages/rs-drive-abci/tests/strategy_tests/patch_platform_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/patch_platform_tests.rs index ee2e087e45..6a68330cae 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/patch_platform_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/patch_platform_tests.rs @@ -18,6 +18,7 @@ mod tests { use platform_version::version; use platform_version::version::mocks::v2_test::TEST_PROTOCOL_VERSION_2; use platform_version::version::patches::PatchFn; + use platform_version::version::v1::PROTOCOL_VERSION_1; use platform_version::version::PlatformVersion; #[test] @@ -105,6 +106,7 @@ mod tests { let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc(); // Run chain before the first patch @@ -179,13 +181,14 @@ mod tests { proposers, validator_quorums: quorums, current_validator_quorum_hash: current_quorum_hash, + instant_lock_quorums, current_proposer_versions: Some(current_proposer_versions.clone()), current_identity_nonce_counter: identity_nonce_counter, current_identity_contract_nonce_counter: identity_contract_nonce_counter, current_votes: BTreeMap::default(), start_time_ms: 1681094380000, current_time_ms: end_time_ms, - instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -246,6 +249,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -310,6 +314,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -370,6 +375,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, diff --git a/packages/rs-drive-abci/tests/strategy_tests/strategy.rs b/packages/rs-drive-abci/tests/strategy_tests/strategy.rs index 61046f87e6..667b846868 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/strategy.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/strategy.rs @@ -14,7 +14,8 @@ use dpp::state_transition::identity_topup_transition::IdentityTopUpTransition; use strategy_tests::frequency::Frequency; use strategy_tests::operations::FinalizeBlockOperation::IdentityAddKeys; use strategy_tests::operations::{ - DocumentAction, DocumentOp, FinalizeBlockOperation, IdentityUpdateOp, OperationType, + AmountRange, DocumentAction, DocumentOp, FinalizeBlockOperation, IdentityUpdateOp, + OperationType, }; use dpp::document::DocumentV0Getters; @@ -40,9 +41,10 @@ use drive_abci::rpc::core::MockCoreRPCLike; use rand::prelude::{IteratorRandom, SliceRandom, StdRng}; use rand::Rng; use strategy_tests::Strategy; -use strategy_tests::transitions::{create_state_transitions_for_identities, create_state_transitions_for_identities_and_proofs, instant_asset_lock_proof_fixture}; +use strategy_tests::transitions::{create_state_transitions_for_identities, create_state_transitions_for_identities_and_proofs, instant_asset_lock_proof_fixture, instant_asset_lock_proof_fixture_with_dynamic_range}; use std::borrow::Cow; use std::collections::{BTreeMap, HashMap, HashSet}; +use std::ops::RangeInclusive; use std::str::FromStr; use tenderdash_abci::proto::abci::{ExecTxResult, ValidatorSetUpdate}; use dpp::dashcore::hashes::Hash; @@ -1118,7 +1120,7 @@ impl NetworkStrategy { operations.push(document_batch_transition); } } - OperationType::IdentityTopUp if !current_identities.is_empty() => { + OperationType::IdentityTopUp(amount) if !current_identities.is_empty() => { let indices: Vec = (0..current_identities.len()).choose_multiple(rng, count as usize); let random_identities: Vec<&Identity> = indices @@ -1130,6 +1132,7 @@ impl NetworkStrategy { operations.push(self.create_identity_top_up_transition( rng, random_identity, + amount, instant_lock_quorums, &platform.config, platform_version, @@ -1177,7 +1180,7 @@ impl NetworkStrategy { } } } - OperationType::IdentityWithdrawal if !current_identities.is_empty() => { + OperationType::IdentityWithdrawal(amount) if !current_identities.is_empty() => { let indices: Vec = (0..current_identities.len()).choose_multiple(rng, count as usize); for index in indices { @@ -1185,6 +1188,7 @@ impl NetworkStrategy { let state_transition = strategy_tests::transitions::create_identity_withdrawal_transition( random_identity, + amount.clone(), identity_nonce_counter, signer, rng, @@ -1491,6 +1495,7 @@ impl NetworkStrategy { ) -> Vec<(Identity, StateTransition)> { let key_count = self.strategy.identity_inserts.start_keys as KeyID; let extra_keys = &self.strategy.identity_inserts.extra_keys; + let balance_range = &self.strategy.identity_inserts.start_balance_range; let (mut identities, mut keys) = Identity::random_identities_with_private_keys_with_rng::< Vec<_>, @@ -1524,6 +1529,7 @@ impl NetworkStrategy { if self.sign_instant_locks { let identities_with_proofs = create_signed_instant_asset_lock_proofs_for_identities( identities, + balance_range, rng, instant_lock_quorums, platform_config, @@ -1536,7 +1542,13 @@ impl NetworkStrategy { platform_version, ) } else { - create_state_transitions_for_identities(identities, signer, rng, platform_version) + create_state_transitions_for_identities( + identities, + balance_range, + signer, + rng, + platform_version, + ) } } @@ -1545,6 +1557,7 @@ impl NetworkStrategy { &self, rng: &mut StdRng, identity: &Identity, + amount_range: &AmountRange, instant_lock_quorums: &Quorums, platform_config: &PlatformConfig, platform_version: &PlatformVersion, @@ -1554,8 +1567,11 @@ impl NetworkStrategy { .unwrap(); let sk: [u8; 32] = pk.try_into().unwrap(); let secret_key = SecretKey::from_str(hex::encode(sk).as_str()).unwrap(); - let mut asset_lock_proof = - instant_asset_lock_proof_fixture(PrivateKey::new(secret_key, Network::Dash)); + let mut asset_lock_proof = instant_asset_lock_proof_fixture_with_dynamic_range( + PrivateKey::new(secret_key, Network::Dash), + amount_range, + rng, + ); // Sign transaction and update signature in instant lock proof if self.sign_instant_locks { @@ -1636,6 +1652,7 @@ pub struct ChainExecutionOutcome<'a> { /// height to the validator set update at that height pub validator_set_updates: BTreeMap, pub state_transition_results_per_block: BTreeMap>, + pub signer: SimpleSigner, } impl<'a> ChainExecutionOutcome<'a> { @@ -1662,10 +1679,12 @@ pub struct ChainExecutionParameters { pub current_votes: BTreeMap>, pub start_time_ms: u64, pub current_time_ms: u64, + pub current_identities: Vec, } fn create_signed_instant_asset_lock_proofs_for_identities( identities: Vec, + balance_range: &RangeInclusive, rng: &mut StdRng, instant_lock_quorums: &Quorums, platform_config: &PlatformConfig, @@ -1690,7 +1709,11 @@ fn create_signed_instant_asset_lock_proofs_for_identities( let secret_key = SecretKey::from_str(hex::encode(pk_fixed).as_str()).unwrap(); let private_key = PrivateKey::new(secret_key, Network::Dash); - let mut asset_lock_proof = instant_asset_lock_proof_fixture(private_key); + let mut asset_lock_proof = instant_asset_lock_proof_fixture_with_dynamic_range( + private_key, + balance_range, + rng, + ); // Sign transaction and update instant lock let AssetLockProof::Instant(InstantAssetLockProof { instant_lock, .. }) = diff --git a/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs index b1fc8e7be8..554394956b 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/upgrade_fork_tests.rs @@ -1,19 +1,20 @@ #[cfg(test)] mod tests { + use crate::execution::{continue_chain_for_strategy, run_chain_for_strategy}; + use crate::strategy::{ + ChainExecutionOutcome, ChainExecutionParameters, CoreHeightIncrease, + MasternodeListChangesStrategy, NetworkStrategy, StrategyRandomness, UpgradingInfo, + }; use dpp::block::block_info::BlockInfo; + use dpp::block::epoch::Epoch; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0Getters; use dpp::block::extended_epoch_info::v0::ExtendedEpochInfoV0Getters; use dpp::dashcore::hashes::Hash; + use dpp::dashcore::Network::Regtest; use dpp::dashcore::{BlockHash, ChainLock}; use dpp::version::PlatformVersion; use drive::config::DriveConfig; - use std::collections::{BTreeMap, HashMap}; - - use crate::execution::{continue_chain_for_strategy, run_chain_for_strategy}; - use crate::strategy::{ - ChainExecutionOutcome, ChainExecutionParameters, CoreHeightIncrease, - MasternodeListChangesStrategy, NetworkStrategy, StrategyRandomness, UpgradingInfo, - }; + use drive::query::proposer_block_count_query::ProposerQueryType; use drive_abci::config::{ ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, ValidatorSetConfig, @@ -27,6 +28,8 @@ mod tests { use platform_version::version::mocks::v3_test::TEST_PROTOCOL_VERSION_3; use platform_version::version::patches::PatchFn; use platform_version::version::v1::PROTOCOL_VERSION_1; + use platform_version::version::INITIAL_PROTOCOL_VERSION; + use std::collections::{BTreeMap, HashMap}; use strategy_tests::frequency::Frequency; use strategy_tests::{IdentityInsertInfo, StartIdentities, Strategy}; @@ -89,6 +92,7 @@ mod tests { }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc(); platform .core_rpc @@ -192,6 +196,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -244,6 +249,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -272,6 +278,39 @@ mod tests { assert_eq!(counter.get(&1).unwrap(), None); //no one has proposed 1 yet assert_eq!(counter.get(&TEST_PROTOCOL_VERSION_2).unwrap(), Some(&147)); } + + let epoch_proposers_2 = platform + .drive + .fetch_epoch_proposers( + &Epoch::new(2).unwrap(), + ProposerQueryType::ByRange(None, None), + None, + platform_version, + ) + .expect("expected to get epoch proposers"); + assert_eq!(epoch_proposers_2.len(), 147); + + let epoch_proposers_1 = platform + .drive + .fetch_epoch_proposers( + &Epoch::new(1).unwrap(), + ProposerQueryType::ByRange(None, None), + None, + platform_version, + ) + .expect("expected to get epoch proposers"); + assert_eq!(epoch_proposers_1.len(), 299); // We had 299 proposers in epoch 1 + + let epoch_proposers_0 = platform + .drive + .fetch_epoch_proposers( + &Epoch::new(0).unwrap(), + ProposerQueryType::ByRange(None, None), + None, + platform_version, + ) + .expect("expected to get epoch proposers"); + assert_eq!(epoch_proposers_0.len(), 447); // We had 447 proposers in epoch 0 }) .expect("Failed to create thread with custom stack size"); @@ -337,6 +376,7 @@ mod tests { }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc(); platform .core_rpc @@ -437,6 +477,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -489,6 +530,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -579,19 +621,14 @@ mod tests { epoch_time_length_s, ..Default::default() }, - initial_protocol_version: PROTOCOL_VERSION_1, block_spacing_ms: epoch_time_length_s * 1000, - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), ..Default::default() }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(PROTOCOL_VERSION_1) .build_with_mock_rpc(); let ChainExecutionOutcome { @@ -738,6 +775,7 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let config = PlatformConfig { + network: Regtest, validator_set: ValidatorSetConfig { quorum_size: 40, ..Default::default() @@ -760,6 +798,7 @@ mod tests { }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc(); platform .core_rpc @@ -854,6 +893,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -905,6 +945,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -975,6 +1016,7 @@ mod tests { }; let hour_in_ms = 1000 * 60 * 60; let mut config = PlatformConfig { + network: Regtest, validator_set: ValidatorSetConfig { quorum_size: 50, ..Default::default() @@ -997,6 +1039,7 @@ mod tests { }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc(); platform .core_rpc @@ -1082,6 +1125,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config.clone(), @@ -1181,6 +1225,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy.clone(), config.clone(), @@ -1238,6 +1283,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, @@ -1338,6 +1384,7 @@ mod tests { }; let mut platform = TestPlatformBuilder::new() .with_config(config.clone()) + .with_initial_protocol_version(INITIAL_PROTOCOL_VERSION) .build_with_mock_rpc(); platform .core_rpc @@ -1471,6 +1518,7 @@ mod tests { start_time_ms: 1681094380000, current_time_ms: end_time_ms, instant_lock_quorums, + current_identities: Vec::new(), }, strategy, config, diff --git a/packages/rs-drive-abci/tests/strategy_tests/voting_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/voting_tests.rs index 9e1f71fa52..e14f8d7b1b 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/voting_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/voting_tests.rs @@ -16,6 +16,7 @@ mod tests { use rand::SeedableRng; use simple_signer::signer::SimpleSigner; use std::collections::BTreeMap; + use assert_matches::assert_matches; use dapi_grpc::platform::v0::{get_contested_resource_vote_state_request, get_contested_resource_vote_state_response, GetContestedResourceVoteStateRequest}; use dapi_grpc::platform::v0::get_contested_resource_vote_state_request::get_contested_resource_vote_state_request_v0::ResultType; use dapi_grpc::platform::v0::get_contested_resource_vote_state_request::GetContestedResourceVoteStateRequestV0; @@ -23,7 +24,9 @@ mod tests { use dapi_grpc::platform::v0::get_contested_resource_vote_state_response::get_contested_resource_vote_state_response_v0::FinishedVoteInfo; use dapi_grpc::platform::v0::get_contested_resource_vote_state_response::get_contested_resource_vote_state_response_v0::finished_vote_info::FinishedVoteOutcome; use dpp::block::extended_block_info::v0::ExtendedBlockInfoV0Getters; + use dpp::dash_to_duffs; use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; + use dpp::state_transition::StateTransition; use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; use drive::util::object_size_info::DataContractOwnedResolvedInfo; use drive::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; @@ -34,17 +37,292 @@ mod tests { use strategy_tests::{StartIdentities, Strategy}; #[test] - fn run_chain_block_two_state_transitions_conflicting_unique_index_inserted_same_block() { - // In this test we try to insert two state transitions with the same unique index - // We use the DPNS contract, and we insert two documents both with the same "name" - // This is a common scenario we should see quite often + fn run_chain_with_temporarily_disabled_contested_documents() { + let epoch_time_length_s = 60; + let config = PlatformConfig { testing_configs: PlatformTestConfig { block_signing: false, store_platform_state: false, block_commit_signature_verification: false, disable_instant_lock_signature_verification: true, + disable_contested_documents_is_allowed_validation: false, + }, + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + //we disable document triggers because we are using dpns and dpns needs a preorder + use_document_triggers: false, + epoch_time_length_s, + ..Default::default() + }, + block_spacing_ms: epoch_time_length_s * 1000, + ..Default::default() + }; + let mut platform = TestPlatformBuilder::new() + .with_config(config.clone()) + .build_with_mock_rpc(); + + let platform_version = PlatformVersion::latest(); + + let mut rng = StdRng::seed_from_u64(567); + + let mut simple_signer = SimpleSigner::default(); + + let (identity1, keys1) = + Identity::random_identity_with_main_keys_with_private_key::>( + 2, + &mut rng, + platform_version, + ) + .unwrap(); + + simple_signer.add_keys(keys1); + + let start_identities = create_state_transitions_for_identities( + vec![identity1], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), + &simple_signer, + &mut rng, + platform_version, + ); + + let dpns_contract = platform + .drive + .cache + .system_data_contracts + .load_dpns() + .as_ref() + .clone(); + + let document_type = dpns_contract + .document_type_for_name("domain") + .expect("expected a profile document type") + .to_owned_document_type(); + + let identity1_id = start_identities.first().unwrap().0.id(); + let document_op_1 = DocumentOp { + contract: dpns_contract.clone(), + action: DocumentAction::DocumentActionInsertSpecific( + BTreeMap::from([ + ("label".into(), "quantum".into()), + ("normalizedLabel".into(), "quantum".into()), + ("normalizedParentDomainName".into(), "dash".into()), + ( + "records".into(), + BTreeMap::from([("identity", Value::from(identity1_id))]).into(), + ), + ]), + Some(start_identities.first().unwrap().0.id()), + DocumentFieldFillType::FillIfNotRequired, + DocumentFieldFillSize::AnyDocumentFillSize, + ), + document_type: document_type.clone(), + }; + + let strategy = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::Document(document_op_1.clone()), + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + }], + start_identities: StartIdentities { + hard_coded: start_identities.clone(), + ..Default::default() + }, + identity_inserts: Default::default(), + + identity_contract_nonce_gaps: None, + signer: Some(simple_signer.clone()), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let mut voting_signer = Some(SimpleSigner::default()); + + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums, + current_validator_quorum_hash, + instant_lock_quorums, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + state_transition_results_per_block, + identities, + .. + } = run_chain_for_strategy( + &mut platform, + 2, + strategy.clone(), + config.clone(), + 15, + &mut voting_signer, + ); + + let platform_state = abci_app.platform.state.load(); + + // On first block we have identity + // On second block we have should have documents + // but not in our case because we disabled contested documents + let state_transitions_block_2 = state_transition_results_per_block + .get(&2) + .expect("expected to get block 2"); + + // Document transaction was rejected + assert!(state_transitions_block_2.is_empty()); + + assert_eq!(platform_state.last_committed_block_epoch().index, 1); + + // Move over 2nd epochs + + let block_start = platform_state + .last_committed_block_info() + .as_ref() + .unwrap() + .basic_info() + .height + + 1; + + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums, + current_validator_quorum_hash, + instant_lock_quorums, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + .. + } = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start, + core_height_start: 1, + block_count: 3, + proposers, + validator_quorums, + current_validator_quorum_hash, + instant_lock_quorums, + current_proposer_versions: Some(current_proposer_versions.clone()), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: 1681094380000, + current_time_ms: end_time_ms, + current_identities: Vec::new(), }, + NetworkStrategy::default(), + config.clone(), + StrategyRandomness::SeedEntropy(7), + ); + + let platform_state = abci_app.platform.state.load(); + + assert_eq!(platform_state.last_committed_block_epoch().index, 4); + + // Insert successfully contested document + + let block_start = platform_state + .last_committed_block_info() + .as_ref() + .unwrap() + .basic_info() + .height + + 1; + + let strategy = NetworkStrategy { + strategy: Strategy { + operations: vec![Operation { + op_type: OperationType::Document(document_op_1.clone()), + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + }], + signer: Some(simple_signer), + ..Default::default() + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let ChainExecutionOutcome { + state_transition_results_per_block, + .. + } = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums, + current_validator_quorum_hash, + instant_lock_quorums, + current_proposer_versions: Some(current_proposer_versions.clone()), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: 1681094380000, + current_time_ms: end_time_ms, + current_identities: identities, + }, + strategy, + config.clone(), + StrategyRandomness::SeedEntropy(7), + ); + + let state_transitions_block_6 = state_transition_results_per_block + .get(&6) + .expect("expected to get block 6"); + + // Contested document was created + assert_eq!(state_transitions_block_6.len(), 1); + + let (state_transition, execution_result) = state_transitions_block_6 + .first() + .expect("expected a document insert"); + + assert_matches!(state_transition, StateTransition::DocumentsBatch(_)); + + assert_eq!(execution_result.code, 0); + } + + #[test] + fn run_chain_block_two_state_transitions_conflicting_unique_index_inserted_same_block() { + // In this test we try to insert two state transitions with the same unique index + // We use the DPNS contract, and we insert two documents both with the same "name" + // This is a common scenario we should see quite often + let config = PlatformConfig { + testing_configs: PlatformTestConfig::default_minimal_verifications(), chain_lock: ChainLockConfig::default_100_67(), instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { @@ -87,6 +365,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &simple_signer, &mut rng, platform_version, @@ -315,12 +594,7 @@ mod tests { // We use the DPNS contract, and we insert two documents both with the same "name" // This is a common scenario we should see quite often let config = PlatformConfig { - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), chain_lock: ChainLockConfig::default_100_67(), instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { @@ -363,6 +637,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &simple_signer, &mut rng, platform_version, @@ -537,6 +812,7 @@ mod tests { current_votes: BTreeMap::default(), start_time_ms: 1681094380000, current_time_ms: end_time_ms, + current_identities: Vec::new(), }, NetworkStrategy { strategy: Strategy { @@ -671,12 +947,7 @@ mod tests { // We use the DPNS contract, and we insert two documents both with the same "name" // This is a common scenario we should see quite often let config = PlatformConfig { - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), chain_lock: ChainLockConfig::default_100_67(), instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { @@ -719,6 +990,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &simple_signer, &mut rng, platform_version, @@ -893,6 +1165,7 @@ mod tests { current_votes: BTreeMap::default(), start_time_ms: 1681094380000, current_time_ms: end_time_ms, + current_identities: Vec::new(), }, NetworkStrategy { strategy: Strategy { @@ -1038,12 +1311,7 @@ mod tests { // We use the DPNS contract, and we insert two documents both with the same "name" // This is a common scenario we should see quite often let config = PlatformConfig { - testing_configs: PlatformTestConfig { - block_signing: false, - store_platform_state: false, - block_commit_signature_verification: false, - disable_instant_lock_signature_verification: true, - }, + testing_configs: PlatformTestConfig::default_minimal_verifications(), chain_lock: ChainLockConfig::default_100_67(), instant_lock: InstantLockConfig::default_100_67(), execution: ExecutionConfig { @@ -1087,6 +1355,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &simple_signer, &mut rng, platform_version, @@ -1275,6 +1544,7 @@ mod tests { current_votes: BTreeMap::default(), start_time_ms: 1681094380000, current_time_ms: end_time_ms, + current_identities: Vec::new(), }, NetworkStrategy { strategy: Strategy { diff --git a/packages/rs-drive-abci/tests/strategy_tests/withdrawal_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/withdrawal_tests.rs new file mode 100644 index 0000000000..1748498709 --- /dev/null +++ b/packages/rs-drive-abci/tests/strategy_tests/withdrawal_tests.rs @@ -0,0 +1,2699 @@ +mod tests { + use crate::asset_unlock_index; + use crate::execution::{continue_chain_for_strategy, run_chain_for_strategy, GENESIS_TIME_MS}; + use crate::strategy::{ + ChainExecutionOutcome, ChainExecutionParameters, NetworkStrategy, StrategyRandomness, + }; + use dashcore_rpc::dashcore_rpc_json::{AssetUnlockStatus, AssetUnlockStatusResult}; + use dpp::dashcore::bls_sig_utils::BLSSignature; + use dpp::dashcore::hashes::Hash; + use dpp::dashcore::{BlockHash, ChainLock, Txid}; + use dpp::data_contracts::withdrawals_contract; + use dpp::identity::{KeyType, Purpose, SecurityLevel}; + use dpp::withdrawal::WithdrawalTransactionIndex; + use dpp::{dash_to_credits, dash_to_duffs}; + use drive::config::DEFAULT_QUERY_LIMIT; + use drive::drive::balances::TOTAL_SYSTEM_CREDITS_STORAGE_KEY; + use drive::drive::identity::withdrawals::paths::{ + get_withdrawal_root_path, WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + }; + use drive::drive::system::misc_path; + use drive::util::grove_operations::DirectQueryType; + use drive_abci::config::{ + ChainLockConfig, ExecutionConfig, InstantLockConfig, PlatformConfig, PlatformTestConfig, + ValidatorSetConfig, + }; + use drive_abci::test::helpers::setup::TestPlatformBuilder; + use platform_version::version::mocks::v3_test::TEST_PLATFORM_V3; + use platform_version::version::PlatformVersion; + use std::collections::BTreeMap; + use std::sync::{Arc, Mutex}; + use strategy_tests::frequency::Frequency; + use strategy_tests::operations::{Operation, OperationType}; + use strategy_tests::{IdentityInsertInfo, StartIdentities, Strategy}; + + struct CoreState { + asset_unlock_statuses: BTreeMap, + chain_lock: ChainLock, + } + + #[test] + fn run_chain_withdraw_from_identities() { + // TEST_PLATFORM_V3 is like v4, but without the single quorum can sign withdrawals restriction + let platform_version = PlatformVersion::get(TEST_PLATFORM_V3.protocol_version) + .expect("expected to get platform version"); + let start_strategy = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityTopUp(dash_to_duffs!(10)..=dash_to_duffs!(10)), + frequency: Frequency { + times_per_block_range: 1..4, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo { + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + start_keys: 3, + extra_keys: [( + Purpose::TRANSFER, + [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), + )] + .into(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), + }, + identity_contract_nonce_gaps: None, + signer: None, + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let hour_in_ms = 1000 * 60 * 60; + let config = PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: hour_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }; + + let mut platform = TestPlatformBuilder::new() + .with_config(config.clone()) + .with_initial_protocol_version(TEST_PLATFORM_V3.protocol_version) + .build_with_mock_rpc(); + + platform + .core_rpc + .expect_send_raw_transaction() + .returning(move |_| Ok(Txid::all_zeros())); + + let mut chain_locked_height = 1; + + // Have to go with a complicated shared object for the core state because we need to change + // rpc response along the way but we can't mutate `platform.core_rpc` later + // because platform reference is moved into the AbciApplication. + let shared_core_state = Arc::new(Mutex::new(CoreState { + asset_unlock_statuses: BTreeMap::new(), + chain_lock: ChainLock { + block_height: chain_locked_height, + block_hash: BlockHash::from_byte_array([1; 32]), + signature: BLSSignature::from([2; 96]), + }, + })); + + // Set up Core RPC responses + { + let core_state = shared_core_state.clone(); + + platform + .core_rpc + .expect_get_asset_unlock_statuses() + .returning(move |indices, _| { + Ok(indices + .iter() + .map(|index| { + core_state + .lock() + .unwrap() + .asset_unlock_statuses + .get(index) + .cloned() + .unwrap() + }) + .collect()) + }); + + let core_state = shared_core_state.clone(); + platform + .core_rpc + .expect_get_best_chain_lock() + .returning(move || Ok(core_state.lock().unwrap().chain_lock.clone())); + } + + // Run first two blocks: + // - Block 1: creates identity + // - Block 2: tops up identity + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + signer, + .. + } = { + let outcome = run_chain_for_strategy( + &mut platform, + 2, + start_strategy, + config.clone(), + 1, + &mut None, + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 0); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + assert_eq!(pooled_withdrawals, 0); + + outcome + }; + + let continue_strategy_only_withdrawal = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityWithdrawal( + dash_to_credits!(0.1)..=dash_to_credits!(0.1), + ), + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer.clone()), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let continue_strategy_no_operations = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + // Run Block 3: initiates a withdrawal + let ( + ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + }, + last_block_pooled_withdrawals_amount, + ) = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 3, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_only_withdrawal.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + assert_eq!(tx_results_per_block.len(), 1); + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(!withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(0.1) as i64); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + (outcome, pooled_withdrawals) + }; + + // Run block 4 + // Should broadcast previously pooled withdrawals to core + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + withdrawals: last_block_withdrawals, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 4, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(3), + ); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // In this block all previously pooled withdrawals should be broadcasted + assert_eq!( + outcome.withdrawals.len(), + last_block_pooled_withdrawals_amount + ); + assert_eq!( + withdrawal_documents_broadcasted.len(), + last_block_pooled_withdrawals_amount + ); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(0.1) as i64); + + outcome + }; + + // Update core state before running next block. + // Asset unlocks broadcasted in the last block should have Unknown status + { + let mut core_state = shared_core_state.lock().unwrap(); + last_block_withdrawals.iter().for_each(|tx| { + let index = asset_unlock_index(tx); + + core_state.asset_unlock_statuses.insert( + index, + AssetUnlockStatusResult { + index, + status: AssetUnlockStatus::Unknown, + }, + ); + }); + } + + // Run block 5 + // Should change do nothing, because core doesn't report any change + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + withdrawals: last_block_withdrawals, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 5, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(4), + ); + + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // things have not changed + assert!(withdrawal_documents_completed.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(0.1) as i64); + + outcome + }; + + // Update core state for newly broadcasted transactions + { + let mut core_state = shared_core_state.lock().unwrap(); + + // First, set all previously broadcasted transactions to Chainlocked + core_state + .asset_unlock_statuses + .iter_mut() + .for_each(|(index, status_result)| { + // Do not settle yet transactions that were broadcasted in the last block + status_result.index = *index; + status_result.status = AssetUnlockStatus::Chainlocked; + }); + + // Then increase chainlocked height, so that withdrawals for chainlocked transactions + // could be completed in the next block + // TODO: do we need this var? + chain_locked_height += 1; + core_state.chain_lock.block_height = chain_locked_height; + + // Then set all newly broadcasted transactions to Unknown + last_block_withdrawals.iter().for_each(|tx| { + let index = asset_unlock_index(tx); + + core_state.asset_unlock_statuses.insert( + index, + AssetUnlockStatusResult { + index, + status: AssetUnlockStatus::Unknown, + }, + ); + }); + + drop(core_state); + } + + // Run block 6 + // Previously broadcasted transactions should be settled after block 5, + // and their corresponding statuses should be changed to COMPLETED + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 6, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(5), + ); + + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // In this block we should have new withdrawals pooled + assert!(withdrawal_documents_pooled.is_empty()); + assert!(withdrawal_documents_broadcasted.is_empty()); + + assert_eq!(withdrawal_documents_completed.len(), 1); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(0.1) as i64); + + outcome + }; + + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 7, + core_height_start: 1, + block_count: 24, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(6), + ); + + // We should have unlocked the amounts by now + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 0); + } + + #[test] + fn run_chain_withdrawal_expired() { + // TEST_PLATFORM_V3 is like v4, but without the single quorum can sign withdrawals restriction + let platform_version = PlatformVersion::get(TEST_PLATFORM_V3.protocol_version) + .expect("expected to get platform version"); + let start_strategy = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityTopUp(dash_to_duffs!(10)..=dash_to_duffs!(10)), + frequency: Frequency { + times_per_block_range: 1..4, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo { + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + start_keys: 3, + extra_keys: [( + Purpose::TRANSFER, + [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), + )] + .into(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), + }, + identity_contract_nonce_gaps: None, + signer: None, + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let hour_in_ms = 1000 * 60 * 60; + let config = PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: hour_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }; + + let mut platform = TestPlatformBuilder::new() + .with_config(config.clone()) + .with_initial_protocol_version(TEST_PLATFORM_V3.protocol_version) + .build_with_mock_rpc(); + + platform + .core_rpc + .expect_send_raw_transaction() + .returning(move |_| Ok(Txid::all_zeros())); + + // Have to go with a complicated shared object for the core state because we need to change + // rpc response along the way but we can't mutate `platform.core_rpc` later + // because platform reference is moved into the AbciApplication. + let shared_core_state = Arc::new(Mutex::new(CoreState { + asset_unlock_statuses: BTreeMap::new(), + chain_lock: ChainLock { + block_height: 1, + block_hash: BlockHash::from_byte_array([1; 32]), + signature: BLSSignature::from([2; 96]), + }, + })); + + // Set up Core RPC responses + { + let core_state = shared_core_state.clone(); + + platform + .core_rpc + .expect_get_asset_unlock_statuses() + .returning(move |indices, _| { + Ok(indices + .iter() + .map(|index| { + core_state + .lock() + .unwrap() + .asset_unlock_statuses + .get(index) + .cloned() + .unwrap() + }) + .collect()) + }); + + let core_state = shared_core_state.clone(); + platform + .core_rpc + .expect_get_best_chain_lock() + .returning(move || Ok(core_state.lock().unwrap().chain_lock.clone())); + } + + // Run first two blocks: + // - Block 1: creates identity + // - Block 2: tops up identity + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + signer, + .. + } = { + let outcome = run_chain_for_strategy( + &mut platform, + 2, + start_strategy, + config.clone(), + 1, + &mut None, + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 0); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + assert_eq!(pooled_withdrawals, 0); + + outcome + }; + + let continue_strategy_only_withdrawal = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityWithdrawal( + dash_to_credits!(0.1)..=dash_to_credits!(0.1), + ), + frequency: Frequency { + times_per_block_range: 1..2, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer.clone()), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let continue_strategy_no_operations = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + // Run Block 3: initiates a withdrawal + let ( + ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + }, + last_block_pooled_withdrawals_amount, + ) = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 3, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_only_withdrawal.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + assert_eq!(tx_results_per_block.len(), 1); + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(!withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(0.1) as i64); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + (outcome, pooled_withdrawals) + }; + + // Run block 4 + // Should broadcast previously pooled withdrawals to core + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + withdrawals: last_block_withdrawals, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 4, + core_height_start: 1, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // In this block all previously pooled withdrawals should be broadcasted + assert_eq!( + outcome.withdrawals.len(), + last_block_pooled_withdrawals_amount + ); + assert_eq!( + withdrawal_documents_broadcasted.len(), + last_block_pooled_withdrawals_amount + ); + + outcome + }; + + // Update state of the core before proceeding to the next block + { + // Simulate transactions being added to the core mempool + let mut core_state = shared_core_state.lock().unwrap(); + + core_state.chain_lock.block_height = 50; + + last_block_withdrawals.iter().for_each(|tx| { + let index = asset_unlock_index(tx); + + core_state.asset_unlock_statuses.insert( + index, + AssetUnlockStatusResult { + index, + status: AssetUnlockStatus::Unknown, + }, + ); + }); + } + + // Run block 5 + // Tests withdrawal expiration + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 5, + core_height_start: 50, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(5), + ); + + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + assert!(withdrawal_documents_pooled.is_empty()); + assert!(withdrawal_documents_completed.is_empty()); + + assert_eq!(withdrawal_documents_expired.len(), 1); + + assert!(withdrawal_documents_broadcasted.is_empty()); + + outcome + }; + + // Run block 6 + // Should broadcast previously expired transaction + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 6, + core_height_start: 50, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + assert!(withdrawal_documents_pooled.is_empty()); + assert!(withdrawal_documents_completed.is_empty()); + + assert_eq!(withdrawal_documents_broadcasted.len(), 1); + + assert!(withdrawal_documents_expired.is_empty()); + + outcome + }; + + // Update core state saying transaction is chainlocked + { + let mut core_state = shared_core_state.lock().unwrap(); + + // First, set all previously broadcasted transactions to Chainlocked + core_state + .asset_unlock_statuses + .iter_mut() + .for_each(|(index, status_result)| { + // Do not settle yet transactions that were broadcasted in the last block + status_result.index = *index; + status_result.status = AssetUnlockStatus::Chainlocked; + }); + + core_state.chain_lock.block_height = 51; + + drop(core_state); + } + + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 7, + core_height_start: 51, + block_count: 1, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + assert_eq!(withdrawal_documents_completed.len(), 1); + assert!(withdrawal_documents_pooled.is_empty()); + assert!(withdrawal_documents_broadcasted.is_empty()); + assert!(withdrawal_documents_expired.is_empty()); + } + + #[test] + fn run_chain_withdraw_from_identities_too_many_withdrawals_within_a_day_hitting_limit() { + // TEST_PLATFORM_V3 is like v4, but without the single quorum can sign withdrawals restriction + let platform_version = PlatformVersion::get(TEST_PLATFORM_V3.protocol_version) + .expect("expected to get platform version"); + let start_strategy = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityTopUp(dash_to_duffs!(10)..=dash_to_duffs!(10)), + frequency: Frequency { + times_per_block_range: 10..11, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo { + frequency: Frequency { + times_per_block_range: 10..11, + chance_per_block: None, + }, + start_keys: 3, + extra_keys: [( + Purpose::TRANSFER, + [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), + )] + .into(), + start_balance_range: dash_to_duffs!(200)..=dash_to_duffs!(200), + }, + identity_contract_nonce_gaps: None, + signer: None, + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let minute_in_ms = 1000 * 60; + let config = PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: minute_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }; + + let mut platform = TestPlatformBuilder::new() + .with_initial_protocol_version(TEST_PLATFORM_V3.protocol_version) + .with_config(config.clone()) + .build_with_mock_rpc(); + + platform + .core_rpc + .expect_send_raw_transaction() + .returning(move |_| Ok(Txid::all_zeros())); + + let chain_locked_height = 1; + + // Have to go with a complicated shared object for the core state because we need to change + // rpc response along the way but we can't mutate `platform.core_rpc` later + // because platform reference is moved into the AbciApplication. + let shared_core_state = Arc::new(Mutex::new(CoreState { + asset_unlock_statuses: BTreeMap::new(), + chain_lock: ChainLock { + block_height: chain_locked_height, + block_hash: BlockHash::from_byte_array([1; 32]), + signature: BLSSignature::from([2; 96]), + }, + })); + + // Set up Core RPC responses + { + let core_state = shared_core_state.clone(); + + platform + .core_rpc + .expect_get_asset_unlock_statuses() + .returning(move |indices, _| { + Ok(indices + .iter() + .map(|index| { + core_state + .lock() + .unwrap() + .asset_unlock_statuses + .get(index) + .cloned() + .unwrap() + }) + .collect()) + }); + + let core_state = shared_core_state.clone(); + platform + .core_rpc + .expect_get_best_chain_lock() + .returning(move || Ok(core_state.lock().unwrap().chain_lock.clone())); + } + + // Run first two blocks: + // - Block 1: creates identity + // - Block 2: tops up identity + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + signer, + .. + } = { + let outcome = run_chain_for_strategy( + &mut platform, + 2, + start_strategy, + config.clone(), + 1, + &mut None, + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 0); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + assert_eq!(pooled_withdrawals, 0); + + let total_credits_balance = outcome + .abci_app + .platform + .drive + .calculate_total_credits_balance(None, &platform_version.drive) + .expect("expected to get total credits balance"); + + assert_eq!( + total_credits_balance.total_identity_balances, + 409997575280380 + ); // Around 4100 Dash. + + assert_eq!( + total_credits_balance.total_in_trees().unwrap(), + 410000000000000 + ); // Around 4100 Dash. + + let total_credits_in_platform = outcome + .abci_app + .platform + .drive + .grove_get_raw_value_u64_from_encoded_var_vec( + (&misc_path()).into(), + TOTAL_SYSTEM_CREDITS_STORAGE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get total credits in platform"); + + assert_eq!(total_credits_in_platform, Some(410000000000000)); + + outcome + }; + + let continue_strategy_only_withdrawal = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityWithdrawal( + dash_to_credits!(25)..=dash_to_credits!(25), + ), + frequency: Frequency { + times_per_block_range: 4..5, // 25 Dash x 4 Withdrawals = 100 Dash + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer.clone()), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let continue_strategy_no_operations = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + // Run Block 3 onwards: initiates withdrawals + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 3, + core_height_start: 1, + block_count: 20, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_only_withdrawal.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + assert_eq!(tx_results_per_block.len(), 4); + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal documents with pooled status should not exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None are currently pooled since we have no more room + assert!(withdrawal_documents_pooled.is_empty()); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_queued = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have 66 out of 100 queued + assert_eq!(withdrawal_documents_queued.len(), 66); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None have completed because core didn't acknowledge them + assert_eq!(withdrawal_documents_completed.len(), 0); + + // Withdrawal documents with EXPIRED status should not exist yet. + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have none expired yet + assert_eq!(withdrawal_documents_expired.len(), 0); + + // Withdrawal documents with broadcasted status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have 14 broadcasted (66 queued + 14 broadcasted = 80 total) + // 14 broadcasted = 14 * 25 Dash = 350 Dash + // This is explained by + // withdrawal block 1 : 4 withdrawals taking us to 4000 Dash and 100 Dash Taken + // limit is 100, 4 broadcasted + // withdrawal block 2 : 4 withdrawals taking us to 3900 Dash and 100 Dash Taken + // limit is 390 - 100 = 290, 4 broadcasted + // withdrawal block 3 : 4 withdrawals taking us to 3800 Dash and 100 Dash Taken + // limit is 380 - 200 = 180, 4 broadcasted + // withdrawal block 4 : 4 withdrawals taking us to 3700 Dash and 100 Dash Taken + // limit is 370 - 300 = 70, 2 broadcasted + assert_eq!(withdrawal_documents_broadcasted.len(), 14); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, dash_to_credits!(350) as i64); + + outcome + }; + + let hour_in_ms = 1000 * 60 * 60; + + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 23, + core_height_start: 1, + block_count: 48, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: hour_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }, + StrategyRandomness::SeedEntropy(9), + ); + + // We should have unlocked the amounts by now + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + // There's about 2000 Dash left in platform, it's normal we are locking 1/10th of it + assert_eq!(locked_amount, 20000000000000); + + // Withdrawal documents with pooled status should not exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None are currently pooled since we have no more room + assert!(withdrawal_documents_pooled.is_empty()); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_queued = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have 58 out of 100 queued + assert_eq!(withdrawal_documents_queued.len(), 58); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None have completed because core didn't acknowledge them + assert_eq!(withdrawal_documents_completed.len(), 0); + + // Withdrawal documents with EXPIRED status should not exist yet. + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have none expired yet, because the core height never went up + assert_eq!(withdrawal_documents_expired.len(), 0); + + // Withdrawal documents with broadcasted status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + assert_eq!(withdrawal_documents_broadcasted.len(), 22); + outcome + }; + + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 71, + core_height_start: 1, + block_count: 250, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: hour_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }, + StrategyRandomness::SeedEntropy(9), + ); + + // We should have unlocked the amounts by now + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + // We have nothing locked left + assert_eq!(locked_amount, 0); + + // Withdrawal documents with pooled status should not exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None are currently pooled since we have no more room + assert!(withdrawal_documents_pooled.is_empty()); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_queued = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // Nothing is left in the queue + assert_eq!(withdrawal_documents_queued.len(), 0); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None have completed because core didn't acknowledge them + assert_eq!(withdrawal_documents_completed.len(), 0); + + // Withdrawal documents with EXPIRED status should not exist yet. + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have none expired yet, because the core height never went up + assert_eq!(withdrawal_documents_expired.len(), 0); + + // Withdrawal documents with broadcasted status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + assert_eq!(withdrawal_documents_broadcasted.len(), 80); + } + + #[test] + fn run_chain_withdraw_from_identities_many_small_withdrawals() { + // TEST_PLATFORM_V3 is like v4, but without the single quorum can sign withdrawals restriction + let platform_version = PlatformVersion::get(TEST_PLATFORM_V3.protocol_version) + .expect("expected to get platform version"); + let start_strategy = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityTopUp(dash_to_duffs!(10)..=dash_to_duffs!(10)), + frequency: Frequency { + times_per_block_range: 10..11, + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo { + frequency: Frequency { + times_per_block_range: 10..11, + chance_per_block: None, + }, + start_keys: 3, + extra_keys: [( + Purpose::TRANSFER, + [(SecurityLevel::CRITICAL, vec![KeyType::ECDSA_SECP256K1])].into(), + )] + .into(), + start_balance_range: dash_to_duffs!(200)..=dash_to_duffs!(200), + }, + identity_contract_nonce_gaps: None, + signer: None, + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let minute_in_ms = 1000 * 60; + let config = PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: minute_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }; + + let mut platform = TestPlatformBuilder::new() + .with_config(config.clone()) + .with_initial_protocol_version(TEST_PLATFORM_V3.protocol_version) + .build_with_mock_rpc(); + + platform + .core_rpc + .expect_send_raw_transaction() + .returning(move |_| Ok(Txid::all_zeros())); + + let chain_locked_height = 1; + + // Have to go with a complicated shared object for the core state because we need to change + // rpc response along the way but we can't mutate `platform.core_rpc` later + // because platform reference is moved into the AbciApplication. + let shared_core_state = Arc::new(Mutex::new(CoreState { + asset_unlock_statuses: BTreeMap::new(), + chain_lock: ChainLock { + block_height: chain_locked_height, + block_hash: BlockHash::from_byte_array([1; 32]), + signature: BLSSignature::from([2; 96]), + }, + })); + + // Set up Core RPC responses + { + let core_state = shared_core_state.clone(); + + platform + .core_rpc + .expect_get_asset_unlock_statuses() + .returning(move |indices, _| { + Ok(indices + .iter() + .map(|index| { + core_state + .lock() + .unwrap() + .asset_unlock_statuses + .get(index) + .cloned() + .unwrap() + }) + .collect()) + }); + + let core_state = shared_core_state.clone(); + platform + .core_rpc + .expect_get_best_chain_lock() + .returning(move || Ok(core_state.lock().unwrap().chain_lock.clone())); + } + + // Run first two blocks: + // - Block 1: creates identity + // - Block 2: tops up identity + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + signer, + .. + } = { + let outcome = run_chain_for_strategy( + &mut platform, + 2, + start_strategy, + config.clone(), + 1, + &mut None, + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal transactions are not populated to block execution context yet + assert_eq!(outcome.withdrawals.len(), 0); + + // Withdrawal documents with pooled status should exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + assert!(withdrawal_documents_pooled.is_empty()); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 0); + + let pooled_withdrawals = withdrawal_documents_pooled.len(); + + assert_eq!(pooled_withdrawals, 0); + + let total_credits_balance = outcome + .abci_app + .platform + .drive + .calculate_total_credits_balance(None, &platform_version.drive) + .expect("expected to get total credits balance"); + + assert_eq!( + total_credits_balance.total_identity_balances, + 409997575280380 + ); // Around 4100 Dash. + + assert_eq!( + total_credits_balance.total_in_trees().unwrap(), + 410000000000000 + ); // Around 4100 Dash. + + let total_credits_in_platform = outcome + .abci_app + .platform + .drive + .grove_get_raw_value_u64_from_encoded_var_vec( + (&misc_path()).into(), + TOTAL_SYSTEM_CREDITS_STORAGE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get total credits in platform"); + + assert_eq!(total_credits_in_platform, Some(410000000000000)); + + outcome + }; + + let continue_strategy_only_withdrawal = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![Operation { + op_type: OperationType::IdentityWithdrawal( + dash_to_credits!(0.0025)..=dash_to_credits!(0.0025), + ), + frequency: Frequency { + times_per_block_range: 40..41, // 0.0025 Dash x 40 Withdrawals = 0.1 Dash + chance_per_block: None, + }, + }], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer.clone()), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + let continue_strategy_no_operations = NetworkStrategy { + strategy: Strategy { + start_contracts: vec![], + operations: vec![], + start_identities: StartIdentities::default(), + identity_inserts: IdentityInsertInfo::default(), + identity_contract_nonce_gaps: None, + signer: Some(signer), + }, + total_hpmns: 100, + extra_normal_mns: 0, + validator_quorum_count: 24, + chain_lock_quorum_count: 24, + upgrading_info: None, + + proposer_strategy: Default::default(), + rotate_quorums: false, + failure_testing: None, + query_testing: None, + verify_state_transition_results: true, + ..Default::default() + }; + + // Run Block 3-23 onwards: initiates withdrawals + let ChainExecutionOutcome { + abci_app, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions, + end_time_ms, + identity_nonce_counter, + identity_contract_nonce_counter, + instant_lock_quorums, + identities, + .. + } = { + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 3, + core_height_start: 1, + block_count: 20, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_only_withdrawal.clone(), + config.clone(), + StrategyRandomness::SeedEntropy(2), + ); + + for tx_results_per_block in outcome.state_transition_results_per_block.values() { + assert_eq!(tx_results_per_block.len(), 20); + for (state_transition, result) in tx_results_per_block { + assert_eq!( + result.code, 0, + "state transition got code {} : {:?}", + result.code, state_transition + ); + } + } + + // Withdrawal documents with pooled status should not exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We should have 4 pooled, which is the limit per block + assert_eq!(withdrawal_documents_pooled.len(), 4); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_queued = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + 10000, + None, + platform_version, + ) + .unwrap(); + + // We have 320 queued + assert_eq!(withdrawal_documents_queued.len(), 320); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None have completed because core didn't acknowledge them + assert_eq!(withdrawal_documents_completed.len(), 0); + + // Withdrawal documents with EXPIRED status should not exist yet. + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have none expired yet + assert_eq!(withdrawal_documents_expired.len(), 0); + + // Withdrawal documents with broadcasted status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have 76 broadcasted (4 pooled + 76 broadcasted = 80 total for 4 per block in 20 blocks) + assert_eq!(withdrawal_documents_broadcasted.len(), 76); + + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + // 0.2 is 0.0025 amount * 80 withdrawals + assert_eq!(locked_amount, dash_to_credits!(0.2) as i64); + + outcome + }; + + let hour_in_ms = 1000 * 60 * 60; + + let outcome = continue_chain_for_strategy( + abci_app, + ChainExecutionParameters { + block_start: 23, + core_height_start: 1, + block_count: 88, + proposers, + validator_quorums: quorums, + current_validator_quorum_hash: current_quorum_hash, + current_proposer_versions: Some(current_proposer_versions), + current_identity_nonce_counter: identity_nonce_counter, + current_identity_contract_nonce_counter: identity_contract_nonce_counter, + current_votes: BTreeMap::default(), + start_time_ms: GENESIS_TIME_MS, + current_time_ms: end_time_ms + 1000, + instant_lock_quorums, + current_identities: identities, + }, + continue_strategy_no_operations.clone(), + PlatformConfig { + validator_set: ValidatorSetConfig::default_100_67(), + chain_lock: ChainLockConfig::default_100_67(), + instant_lock: InstantLockConfig::default_100_67(), + execution: ExecutionConfig { + verify_sum_trees: true, + + ..Default::default() + }, + block_spacing_ms: hour_in_ms, + testing_configs: PlatformTestConfig::default_minimal_verifications(), + ..Default::default() + }, + StrategyRandomness::SeedEntropy(9), + ); + + // We should have unlocked the amounts by now + let locked_amount = outcome + .abci_app + .platform + .drive + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to get locked amount"); + + assert_eq!(locked_amount, 18000000000); + + // Withdrawal documents with pooled status should not exist. + let withdrawal_documents_pooled = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::POOLED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None are currently pooled since we finished the queue + assert!(withdrawal_documents_pooled.is_empty()); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_queued = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::QUEUED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // Queue has been finished + assert_eq!(withdrawal_documents_queued.len(), 0); + + // Withdrawal documents with queued status should exist. + let withdrawal_documents_completed = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::COMPLETE.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // None have completed because core didn't acknowledge them + assert_eq!(withdrawal_documents_completed.len(), 0); + + // Withdrawal documents with EXPIRED status should not exist yet. + let withdrawal_documents_expired = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::EXPIRED.into(), + DEFAULT_QUERY_LIMIT, + None, + platform_version, + ) + .unwrap(); + + // We have none expired yet, because the core height never went up + assert_eq!(withdrawal_documents_expired.len(), 0); + + // Withdrawal documents with broadcasted status should exist. + let withdrawal_documents_broadcasted = outcome + .abci_app + .platform + .drive + .fetch_oldest_withdrawal_documents_by_status( + withdrawals_contract::WithdrawalStatus::BROADCASTED.into(), + 1000, + None, + platform_version, + ) + .unwrap(); + + assert_eq!(withdrawal_documents_broadcasted.len(), 400); + } +} diff --git a/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/1-2128896.json b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/1-2128896.json new file mode 100644 index 0000000000..5036b1ddb6 --- /dev/null +++ b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/1-2128896.json @@ -0,0 +1,86540 @@ +{ + "baseHeight": 1, + "blockHeight": 2128896, + "addedMNs": [ + { + "type": "Regular", + "proTxHash": "a8355582b280be9452f939d34637ab82226ba2c97e1aac15eaf6db878fec0130", + "collateralHash": "b815315ce608046f4e11fed2596e6cdc9441cb41c2b288ab4e73d4b8cca3db1e", + "collateralIndex": 1, + "collateralAddress": "XywwEP8jfwVzGGRxLPAQUyw91vamyWPKgT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.72.161:9999", + "registeredHeight": 1028165, + "lastPaidHeight": 1736241, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1687843, + "PoSeBanHeight": 1738698, + "revocationReason": 0, + "ownerAddress": "XcE1kpouByJ6zXXFpkQeR7fViVvF5qDfmi", + "votingAddress": "XcE1kpouByJ6zXXFpkQeR7fViVvF5qDfmi", + "payoutAddress": "XywwEP8jfwVzGGRxLPAQUyw91vamyWPKgT", + "pubKeyOperator": "85e216e58ae3ffa72235597fa7f0b24d3ba8761a3a2608ee82e0e4d1daafb02f6af103acd32fc90af7b06ccd3994b4fa" + } + }, + { + "type": "Regular", + "proTxHash": "219edddca6b0973d4b9fd24ae62d9b8a8c4addd0d1c44de577e1ef127f37fb32", + "collateralHash": "d8acd851e706aa75bed28dcfe5c62dd0157920f4a63f9a06c61894ea605b6d0a", + "collateralIndex": 1, + "collateralAddress": "Xt77nU5qc5wquYng2om1fRSHsnmUB3WL1Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.228:9999", + "registeredHeight": 1028165, + "lastPaidHeight": 2127072, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtqJ5rnqadDmgRmZQ769UN6y9zYjMDhBMf", + "votingAddress": "XtqJ5rnqadDmgRmZQ769UN6y9zYjMDhBMf", + "payoutAddress": "Xt77nU5qc5wquYng2om1fRSHsnmUB3WL1Z", + "pubKeyOperator": "052768279662dde58004c839fa200f66d7ea94cc15d8ac3b835290b0a28f892c936978c320872a1e673056f839dd381c" + } + }, + { + "type": "Regular", + "proTxHash": "56894355c1b8596c9742681956293d457cb7eece84b0e65cb5095f8be4964881", + "collateralHash": "78e3c27b21a7d83ccbad6c4b01a27ab0e0ee8275315bd8f774a2d829c8bc620d", + "collateralIndex": 1, + "collateralAddress": "Xjstd5ZP1GmB8myBd7fayQVq9r6FxDTY63", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.141.240.136:9999", + "registeredHeight": 1028165, + "lastPaidHeight": 1730788, + "consecutivePayments": 0, + "PoSePenalty": 4473, + "PoSeRevivedHeight": 1747937, + "PoSeBanHeight": 1748778, + "revocationReason": 0, + "ownerAddress": "XcQeWcL4hjs2j4KrfHS7xd62g5ndGug7Ai", + "votingAddress": "XcQeWcL4hjs2j4KrfHS7xd62g5ndGug7Ai", + "payoutAddress": "XqE414Emx3BpErTVV7amxE54PhvyqTJeWU", + "pubKeyOperator": "04abf0519b7114fd86b3f17f536888dbf93d0619f87e7f0a41c71a49caec9a619752a56d78dd2d0374cea38e557213e7" + } + }, + { + "type": "Regular", + "proTxHash": "d1dc61fec1fb3c58cb5a1ce3d4a2d2e162b092a2d139d36e23ca75a961a5d706", + "collateralHash": "4096baeebef9b90c58ba9b091e15c38b97081750dc73aac0445e4ebb15b265ba", + "collateralIndex": 1, + "collateralAddress": "XsjmYePtnmAJ2SA8Q8uMSikP3dmc5fXFvX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.191.222:9999", + "registeredHeight": 1028165, + "lastPaidHeight": 2126856, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1687171, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPswZ5MMXaxUgoTapxdAW9eX9qqYVrCz3", + "votingAddress": "XcPswZ5MMXaxUgoTapxdAW9eX9qqYVrCz3", + "payoutAddress": "XnceyaAjQJ2P5LHsXosYGEZMCNK8EdwPX4", + "pubKeyOperator": "9694dc353353d256f8000d3855944699c6ce4431f8a754219ee56583e2bab6bd11e670bec2841a161e04f9cf0d61426c" + } + }, + { + "type": "Regular", + "proTxHash": "da539b7435a73e61990f460193f9a391b1b4d77c2eb97ed61378eaf04232fb82", + "collateralHash": "7625afa56cbbe0c200b911d557c7302dcbd5fa97dcf831d1e14a91671751b163", + "collateralIndex": 1, + "collateralAddress": "XtAyqBgMQZGYxb7XisNg1iQ4kCVvVoDJok", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.141.223.228:9999", + "registeredHeight": 1028165, + "lastPaidHeight": 1732206, + "consecutivePayments": 0, + "PoSePenalty": 4472, + "PoSeRevivedHeight": 1747938, + "PoSeBanHeight": 1748939, + "revocationReason": 0, + "ownerAddress": "XkCsxp2nJe49U5csN2R9zQkeH415HVNV2Z", + "votingAddress": "XkCsxp2nJe49U5csN2R9zQkeH415HVNV2Z", + "payoutAddress": "XbKVbAw9S9NK89z8wjdLCVxcHGQZFFz3ev", + "pubKeyOperator": "0005ef95afc9acd78f7a82842626cf882b36390c53429384fd29ec4b27ee774dc1761faefb0035c208a22f4a129788ca" + } + }, + { + "type": "Regular", + "proTxHash": "dcb7a6d7eeaa524e4f4c8659bcce17d4c275b841fac468ee84cae7afc1f18dca", + "collateralHash": "a1d88f299a74010e9f4ced43c756857913e3404ef764880f55741ab29e619589", + "collateralIndex": 0, + "collateralAddress": "Xh3wA9HtJtKLGc5tjHYf5jteYNdqyAcjHV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.82.102:9999", + "registeredHeight": 1028169, + "lastPaidHeight": 2126114, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1915908, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtVYGqpCJpLLaXrLzg8w4pQrdMEejnK6K4", + "votingAddress": "XtVYGqpCJpLLaXrLzg8w4pQrdMEejnK6K4", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "0cc3e63623d7c4141109f63c0ccd7e4cb24c5743e2eb349a8ebe2b78d569c99b9796740192168dac8a2509733c803bbe" + } + }, + { + "type": "Regular", + "proTxHash": "0b2749202fcc29241ea6121ce11812c4320ec3796ca540cb0a395bd48eb451b1", + "collateralHash": "a365e6e6e215faa703f971abdc92b3fc8dad93b7ddc6b37d728688dfc5d5d5a9", + "collateralIndex": 0, + "collateralAddress": "XsAJbyMXTvuo2Zbnm7xJhyMEbCc2PDgtGx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "217.69.5.141:9999", + "registeredHeight": 1028169, + "lastPaidHeight": 2128685, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1984432, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsH8nLKTjGJaDY9CoMn9NQEGvxVubNZtzt", + "votingAddress": "XsH8nLKTjGJaDY9CoMn9NQEGvxVubNZtzt", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "115bc709f4a650044a105fcb6637378e35c039cbd9833ae2b4661f65d16127676c19e1a7176e87e28d7e85c0d87b94b6" + } + }, + { + "type": "Regular", + "proTxHash": "c12ab4e87d71b1f5213a23ba834f367263ea8aa6857142e58941746e4af9ca9e", + "collateralHash": "3b1ac3835eccd0785753d214e829c413867707f0c17fb773096df79f9af5afd1", + "collateralIndex": 1, + "collateralAddress": "Xeb44xeWVQM16n3n9R2mtRsPLCuyFBGPA2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.89.174:9999", + "registeredHeight": 1028169, + "lastPaidHeight": 2128502, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh6zDDMNqgd2BMipCjcdgubxJVBzHD5QgU", + "votingAddress": "Xh6zDDMNqgd2BMipCjcdgubxJVBzHD5QgU", + "payoutAddress": "Xeb44xeWVQM16n3n9R2mtRsPLCuyFBGPA2", + "pubKeyOperator": "85783af3e12e16fa3e314079c568894577956f294dfe7b30368829c3f1384cbe08980993fdf0963702fafb8aae19835d" + } + }, + { + "type": "Regular", + "proTxHash": "dd19cea6d38939d2aec066d87fd325943a26d3d07aa835aa224132bbdd8be323", + "collateralHash": "bbae2abac6b69c44716ff3cb8152add9e47036275b3c1f4ea3b043054b64d3d3", + "collateralIndex": 0, + "collateralAddress": "XcRFsCZ4g9XMMXewAr822VXxQtMnaYJGPv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.10.45:9999", + "registeredHeight": 1028169, + "lastPaidHeight": 2128047, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1531166, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmN4VqGikdrTLPomgNNDT5yzC23sjX8vB6", + "votingAddress": "XmN4VqGikdrTLPomgNNDT5yzC23sjX8vB6", + "payoutAddress": "Xf8TVrji9pD6c1tRwYE5iK3Uyim6TPT5h3", + "pubKeyOperator": "81a2733e45eba76282fa365c415815338a2c8e1da3a432f7860bcc9e891b36a23e5590278e13eb0b998b8ed5e9b56009" + } + }, + { + "type": "Regular", + "proTxHash": "a1872519ddef48cfcd806b1dcd58bde5a309d39554b635eb005352a0316ecce8", + "collateralHash": "ccc6306c857ecb034a18cf3e940082abb7d2d9d69d5b2db363cccb06f6f9299e", + "collateralIndex": 1, + "collateralAddress": "XvREKNnLEJXccRbuYhr8pfaYN4GoUkEWD7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.69.55.87:9999", + "registeredHeight": 1028169, + "lastPaidHeight": 2128674, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuaNfrvYgjHgKPXy29d3tswS9oT3c5ajXD", + "votingAddress": "XuaNfrvYgjHgKPXy29d3tswS9oT3c5ajXD", + "payoutAddress": "XbXD6V1ZP4LUkX55rk6EwPJWsrnTa8uGCq", + "pubKeyOperator": "96272376aa3b91448589d857a27aa66aa7c86f9d61a2e35b3f509ef3a7b811ee7c3e3d00dd45cd66dd5cf058d1ed490b" + } + }, + { + "type": "Regular", + "proTxHash": "9c663ed039e98d055af0e1dbd30a7b702e77fce302708114915cf2ede9f85874", + "collateralHash": "69671a6f82c4aec27bc1f1c54361eb2b0637208a7d38f18c590f931c35134891", + "collateralIndex": 0, + "collateralAddress": "XdwZ3RUNSA941TgUJeWE9KBhxsUeX16BUW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.190.33.135:9999", + "registeredHeight": 1028171, + "lastPaidHeight": 2127489, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115135, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqAJRzPEQ82BwEfs41cpkMSAvrcfB1FWTc", + "votingAddress": "XqAJRzPEQ82BwEfs41cpkMSAvrcfB1FWTc", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "0505cffc69beb642ff54726ff52139cc18014c6cbc603d46a706ecaf9668db058e7532a96aae6d476ce474c7b122aa71" + } + }, + { + "type": "Regular", + "proTxHash": "b0e8bf20b8aa55e7ddb9410e0d1c5dc89f44fcce476e21780f2569fbbf040501", + "collateralHash": "36670b43ec0e6017f0cc7a2e0359fc7e8a181baf9e354ed37b414dc101e02d86", + "collateralIndex": 1, + "collateralAddress": "XmpFsTXMvejes8zhotdwgg9y3dcG81pE1C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.102.65.145:9999", + "registeredHeight": 1028202, + "lastPaidHeight": 2128428, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122133, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpn7K7w7TzzJvuwWiju6eiGbqXBpE9f1gn", + "votingAddress": "Xpn7K7w7TzzJvuwWiju6eiGbqXBpE9f1gn", + "payoutAddress": "XmpFsTXMvejes8zhotdwgg9y3dcG81pE1C", + "pubKeyOperator": "1319bd8c3c5218e4a0af65b83e9ae46d01e5a9f54229a2803e737720191f2b88a66dd938ef30cd49c15421cc59c538ce" + } + }, + { + "type": "Regular", + "proTxHash": "51b7641a899c9327273b0198503878fafeb66ec9904fe3b39662475b96e351a2", + "collateralHash": "a22e28bdd05f2d1fe304b8e600947cb576bddc508b366e2355a23b5e6530efad", + "collateralIndex": 0, + "collateralAddress": "XvVnAAB3QkyTxPLeuP9uKiGKF6k2xvJobv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.84:9999", + "registeredHeight": 1028202, + "lastPaidHeight": 2127812, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrkXoyBJYDqGqBo9CxUTLDw7YZeTU54MaN", + "votingAddress": "XrkXoyBJYDqGqBo9CxUTLDw7YZeTU54MaN", + "payoutAddress": "Xv1LJrQsW1QQBZ3LKhu8uXovD8D6jAFHjW", + "pubKeyOperator": "89133f89ff049d4da8cd3b718e7a10885aa332b31d83f102d184c3a33ab4f77b3faa39a0098443eadae470c3c5b5f9f0" + } + }, + { + "type": "Regular", + "proTxHash": "60161082b09a35f4e2d300e4fcf6063f8207fb2150f8848961a55a1304bcf2bd", + "collateralHash": "56a04f6ff0891c35ae946469853a86cedbc44a271a3d7087b835768b81da6f70", + "collateralIndex": 0, + "collateralAddress": "XhDZ2EJ4p23pTcCdJ47kKjy5QJop8sbiku", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.82.173:9999", + "registeredHeight": 1028203, + "lastPaidHeight": 2127842, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbjC2jjiuB3ccGgUrbTsw2YrCXfdDv9QSF", + "votingAddress": "XbjC2jjiuB3ccGgUrbTsw2YrCXfdDv9QSF", + "payoutAddress": "XmQcc19cZo81yM1DbVweQVxPC4bbgoF9DG", + "pubKeyOperator": "84830a7f9af1b788df3060c089e3e7d6e242e94802dfb8d2eb46d69aa27276a860963c52b20f41cdb4791a71e58b4344" + } + }, + { + "type": "Regular", + "proTxHash": "bfb4e30b7d2b8d46060a045e1451d144e0ba29d5db1132ef2583182f070d801f", + "collateralHash": "4a38c89009f0dc6b5020c8cfd6adc7faf96db94b63f7024ba86a72fff148a64a", + "collateralIndex": 0, + "collateralAddress": "XwE4dydM2kac2RwMho9JmdeTLZPiQV5k4q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.20.102.188:9999", + "registeredHeight": 1028206, + "lastPaidHeight": 2128594, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1414720, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs1pMPpG8PT1NBDHx81N49bmRKHnxPY6FJ", + "votingAddress": "Xs1pMPpG8PT1NBDHx81N49bmRKHnxPY6FJ", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "0ca6c2cfef46803dfff341f7a4319d3e6e2f2abeb0bf4a976f95298b1a343f073ec8e5d83e58f1014fe690a7066b1a66" + } + }, + { + "type": "Regular", + "proTxHash": "cac8fe7c551fe427fa88f08b582c4649ad465863bc0906b71811451dc9c3d892", + "collateralHash": "d6298ed4d3887421bc7a4b62cba16a41c5d79daa3e276e52a956e61569fa8eec", + "collateralIndex": 0, + "collateralAddress": "Xn4LJBeVFEhdLVBCghAbzgxrGeLVtDyewD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.31:9999", + "registeredHeight": 1028206, + "lastPaidHeight": 2127912, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhRTDjh1ZP7tFtDN4kCQz3wW39idTC9P6K", + "votingAddress": "XhRTDjh1ZP7tFtDN4kCQz3wW39idTC9P6K", + "payoutAddress": "XwpReg2DNDXXFxWvDmbBDPzrViJANrunrn", + "pubKeyOperator": "0af18a77709f059861df34e66f3b01a30255330686b77b5e5768261e4f902e9598fe8b0f4d919d2b768a5705ad743718" + } + }, + { + "type": "Regular", + "proTxHash": "c0eac14a38182aaf467d232c2a8a3178bb121875c283343094211d53091436f0", + "collateralHash": "a5e3b9f0263aea8107bc806da4594f0dba43d1a1b39b5bb770e5d1e6d69515fc", + "collateralIndex": 0, + "collateralAddress": "Xc9sSFJVP5nEpgYwnoPu7AS9NgEP7Vy2ky", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.43:9999", + "registeredHeight": 1028206, + "lastPaidHeight": 2128817, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977468, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwWr8ZHm28BoAJQBk2aLMSD35FYZ8RUsMC", + "votingAddress": "XwWr8ZHm28BoAJQBk2aLMSD35FYZ8RUsMC", + "payoutAddress": "XmdYsjLXU7AcuMdEoB1rhU2S7BJ59mVCvM", + "pubKeyOperator": "962f4706a58b95212c03bf8f4b8fe8e7e8198f23b33ed49cd68f806cc95bf9acbedb6d95a03033522c1fc715a47b5784" + } + }, + { + "type": "Regular", + "proTxHash": "aeaa961f986d5328b0133dddaf5dd7fab3972b7163a9b952442ac05fdcdb81ab", + "collateralHash": "41aae0b61f6349be137e76403d070998f33ffd21f66c89542e068cab1eebedd3", + "collateralIndex": 0, + "collateralAddress": "Xbrnjad7A5qpXkW6nBePhh5Z2tfs6Qdmpw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.241:9999", + "registeredHeight": 1028206, + "lastPaidHeight": 2127918, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw2sXBjQciGobzpKjgqTAnZ798ZeyPANbt", + "votingAddress": "Xw2sXBjQciGobzpKjgqTAnZ798ZeyPANbt", + "payoutAddress": "XredhX2Zxh774kuJLU866Wbc1C8PSc2h5X", + "pubKeyOperator": "0937df6a7c7037fb37fbee0a0740e35bed81ad2b0adf6dbaa2410917e585515097df9ca430fa249886648d5b3387a64c" + } + }, + { + "type": "Regular", + "proTxHash": "058a33de919dd30c5c584685945d6e97af4c2b0391e21418e02140658569f888", + "collateralHash": "513717b86c21d498a1125caa719a48baa6517056e601b146bae870ce02f79145", + "collateralIndex": 0, + "collateralAddress": "XyJhHKioHs5VWbgu2kpsCGMcNMK2buuSv1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.237:9999", + "registeredHeight": 1028206, + "lastPaidHeight": 2128313, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976887, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqBLuEVMV6gY4S8ibgVc8nfx6aKtEdpCur", + "votingAddress": "XqBLuEVMV6gY4S8ibgVc8nfx6aKtEdpCur", + "payoutAddress": "XffEFifXCZyZv6Hcu7U4748EjczWmdMLus", + "pubKeyOperator": "8997607e87d3364b12aa07dcb3b58530c4fc0b8043c1b1d50f0c9f7c06e75803cf14fc61ba3fba4290cf6adf5e3eca87" + } + }, + { + "type": "Regular", + "proTxHash": "664a9d8284ed557e99ccfdcdc8c8f67824fdc2bcbbcf00d2fae403999c60b789", + "collateralHash": "fdf5e709a06ba631941f4b7265314e6f397addc1f146bc9a1733f40c9d799026", + "collateralIndex": 0, + "collateralAddress": "XkSFCiAgiN7dNFTWHQA4doFcqQLwXLpP7r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.93.41:9999", + "registeredHeight": 1028208, + "lastPaidHeight": 2127957, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfjAVvYhx7KrBvfrWor6qRX7TVxkNa9WvR", + "votingAddress": "XfjAVvYhx7KrBvfrWor6qRX7TVxkNa9WvR", + "payoutAddress": "Xo9fKToe6vQJv58qyRVJrEhtKRZM6hkCYn", + "pubKeyOperator": "8757590e3b6d21d4f6b6331f4d831e089514e52bc8285f3dfa4a842359e2f74a1d97dd56edc8e3286bf8ca7cb000eef9" + } + }, + { + "type": "Regular", + "proTxHash": "aabc6311a7036a7b355cee184aeba050a49499bdbaca1d229acdc2ced7fd4090", + "collateralHash": "8989846a89f19aec73846f1a959efdcbb67ee167b96d70b58307e28fc93f441f", + "collateralIndex": 0, + "collateralAddress": "XccRJdmH7EqmA6qKMQEm4rAZQLhnVy3JD1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.41:9999", + "registeredHeight": 1028208, + "lastPaidHeight": 2128235, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976861, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiC4X65YM1ny4LeZeUyowHUgNCwN1THg5P", + "votingAddress": "XiC4X65YM1ny4LeZeUyowHUgNCwN1THg5P", + "payoutAddress": "XgRA6xJxUUWyt7M6xonRqN7HaSPWpfB3dU", + "pubKeyOperator": "893b13f8dc01ac57ef61a1fe07b38486f199e7255b8696d91e00bf8121a4b1c4d7d73ed35743fedb0fe3cf24a2b4e4a2" + } + }, + { + "type": "Regular", + "proTxHash": "4917499c57b200696910ff3b118b328eb9c02dbb954ea5652d024b32ae362d8a", + "collateralHash": "5f8bb69fb300222aceb2d5ba64f95ac9c3f1e56d636c1cf582dd6c9f34f224b1", + "collateralIndex": 1, + "collateralAddress": "XiFWXPaSbshYMioFZ9CYTFARVUcd9LpeTE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.170:9999", + "registeredHeight": 1028219, + "lastPaidHeight": 2126501, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1760606, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuFkem5atYYhHTGNrPe45TS9pzLvkBuL2Y", + "votingAddress": "XuFkem5atYYhHTGNrPe45TS9pzLvkBuL2Y", + "payoutAddress": "Xk7iVKhqPXuAwJ5hCyFPYFxWGo6JDbez8C", + "pubKeyOperator": "958f34e34c0b050cd3da0be731e40c88090ec6896581d70534334fd7de105d4b21270d9be5782ec9da634ba6e5dd85d7" + } + }, + { + "type": "Regular", + "proTxHash": "29412459c4822da5ff55e1d4465b4a8832bc9f3b13aa9255241bd5b58ead24e1", + "collateralHash": "369a30b4c3c8eb6b9dc79dc9cd8cbebbc5c2ced0d54d74caf690016293401ae1", + "collateralIndex": 1, + "collateralAddress": "XqEJqACwJrH92uDKrJHCavgFzap5GY65r8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.204:9999", + "registeredHeight": 1028219, + "lastPaidHeight": 2128401, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoZRakBtESBKpck5M8Tq9Nddh8dbBydcWb", + "votingAddress": "XoZRakBtESBKpck5M8Tq9Nddh8dbBydcWb", + "payoutAddress": "XpbRCEWytCVEUBVyV6vj8SPYfga7dDDc8Q", + "pubKeyOperator": "16d9c52c4c50b38210b4c82e336905c17642d0aac9057b6f21677caced7970e0be53dc073e6cf2afefe97dc66d2f95b0" + } + }, + { + "type": "Regular", + "proTxHash": "de7d70dd7fde02ecdeed543671a81091d4816497e40ead5441de294ca072f81d", + "collateralHash": "00c3b8653cc0c6085caa4f8fad3b694a7caf991cdc9f20e262a5717520d98725", + "collateralIndex": 1, + "collateralAddress": "Xim9gSKWu7dBnuUzmiDbUshmpSU6gbxH1v", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.112:9999", + "registeredHeight": 1028224, + "lastPaidHeight": 2128446, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw4X1mCQetsttXSFFG5bfD2kZXFn3HnKYn", + "votingAddress": "Xw4X1mCQetsttXSFFG5bfD2kZXFn3HnKYn", + "payoutAddress": "XpbRCEWytCVEUBVyV6vj8SPYfga7dDDc8Q", + "pubKeyOperator": "1354b3a46ed641c54b00b9365a602aacce704ddf0a7c3b492f56cc7694be19022f50360b3d88ee41c1d0fe25e37c2ee2" + } + }, + { + "type": "Regular", + "proTxHash": "25993b19c5e11c340fdcc74ebb468191ce63010aaf97d296e7b0d552d0568024", + "collateralHash": "e58cae996e00fbd29264fb5b1ef45d97f0b010b1fee994ef47c714e5451b4bf2", + "collateralIndex": 1, + "collateralAddress": "Xg9gDuyABEiZB3Nu1Es5C4Et5kjpHDmz8W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.199:9999", + "registeredHeight": 1028229, + "lastPaidHeight": 2128486, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1327475, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoEkkVKP53VvB2iLebwDYvwDpoSreeQhEv", + "votingAddress": "XoEkkVKP53VvB2iLebwDYvwDpoSreeQhEv", + "payoutAddress": "Xb39DbRYNbSaTwre1NjxFecfNAXGBhW7KS", + "pubKeyOperator": "968a0ed3c5fdbd18799d82cbbd70cf870a29f16f718c4969dddd64cf54bf9d7677d16516e8515a07b3a2ad01baf09594" + } + }, + { + "type": "Regular", + "proTxHash": "d522b563f5d7d6afe653086f5ff2ff7626ca07661515cf6420f1e49ea06f41c6", + "collateralHash": "ba5e663e74b12075cab765f59a4becc1d11c5d2568d571167af1ad2cc9c0eccb", + "collateralIndex": 1, + "collateralAddress": "XuvyX1rXhJV4wuExirBN56gA9LRUFQxsmM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.177.33:9999", + "registeredHeight": 1028229, + "lastPaidHeight": 2125999, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877629, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb6eNvKbJkSv956D6XTVvCsh8feNdnaoXj", + "votingAddress": "Xb6eNvKbJkSv956D6XTVvCsh8feNdnaoXj", + "payoutAddress": "XuvyX1rXhJV4wuExirBN56gA9LRUFQxsmM", + "pubKeyOperator": "03352c3615f1daa6a09405767570f89f19e8c58b2422ffe291f0b10587f1b490a05e65d842afa328838c8ff7b213f41a" + } + }, + { + "type": "Regular", + "proTxHash": "8d55373c405a716babaab9f1cecc08d9170914940d278f4b5d1559995d963236", + "collateralHash": "82fd89d6f1fd180d6321c473d777629550f3a8c5dd1b489e25aa8452a0f1f3c7", + "collateralIndex": 1, + "collateralAddress": "XumwLrpUoHsLEKCZy2gMWyP7iLXJkxMvfJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.180:9999", + "registeredHeight": 1028229, + "lastPaidHeight": 2126378, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1083105, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbHUK2e1ttVX8t5Nbz5qQwPoMDuH63WJfT", + "votingAddress": "XbHUK2e1ttVX8t5Nbz5qQwPoMDuH63WJfT", + "payoutAddress": "XkRRbNTNUWBLWS4VZrTr3Zg9kbLVNnQMwH", + "pubKeyOperator": "008dfafcb95b4025b41ed94c02413d7c1e150f3031347fa1e6fa131c5823aa9cce2670a1cab2328be162b343225ce499" + } + }, + { + "type": "Regular", + "proTxHash": "d169e69fddc8cbb0f47f744759a6180dda53614555799f0fc04f3819bb65ea97", + "collateralHash": "21b22b7aebc8db94ff6c3f3011a9043466470af51f81037e40cd9f91ce50a175", + "collateralIndex": 1, + "collateralAddress": "XgxDQnx135tCpjGnoQ8EAY6y9YnKXLcJZV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.192:9999", + "registeredHeight": 1028236, + "lastPaidHeight": 2127038, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1687454, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcgtFcwXGnm4E2kqRhSZyK2VmkjKGhkofB", + "votingAddress": "XcgtFcwXGnm4E2kqRhSZyK2VmkjKGhkofB", + "payoutAddress": "XvT9sRquC6vAVN5uQf5DGyrsHKmh8kzC3J", + "pubKeyOperator": "0451e9a20d07707519322559cd12dd32a1c94180b53eec0d3bdb27e87405b2d26c0fc4f1abcd5502087d6a0dd1ee13bd" + } + }, + { + "type": "Regular", + "proTxHash": "ff3fbf3c46d18ab8fe7e80ef1519df0474bf10555d731e6b710f2d7b1a69e4e5", + "collateralHash": "4d5a52f7107c4b28552fe483ddfb7bbc9df34d2734ce91af62b9308d09be9cf5", + "collateralIndex": 0, + "collateralAddress": "XfDf5V8jkg97vPj5zHfyTPTFByVMMQeqCt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.213:9999", + "registeredHeight": 1028236, + "lastPaidHeight": 2125736, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpTFKu9U9iAF5RGcFxxWsTtbXyh5iA4FeK", + "votingAddress": "XpTFKu9U9iAF5RGcFxxWsTtbXyh5iA4FeK", + "payoutAddress": "XkYr6LgiuKFSBH5ucCdk7BVBpKTSA9DRCn", + "pubKeyOperator": "1239c5879818919fa29176e44c3d58e2f0005121f0623919a88fdd3eda9889f0c3f0c69cc2766a09e0647020b53f0a6d" + } + }, + { + "type": "Regular", + "proTxHash": "39d29a71c08a9de7877921a57a3624b73138dd0520ae358c1b476d74ed14f4a0", + "collateralHash": "9b926346601cc4862baa97fe5b32d172440dd69ea9326bf1d8c03ed4db549b0b", + "collateralIndex": 0, + "collateralAddress": "XkMSxZA88p3k6JN3XMcgZh53HjVzboSUuh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.107.90:9999", + "registeredHeight": 1028236, + "lastPaidHeight": 2127840, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1692310, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfxmHruXMNh23ZyAA8KecBb2bvNe7DqeLz", + "votingAddress": "XfxmHruXMNh23ZyAA8KecBb2bvNe7DqeLz", + "payoutAddress": "XpT8HZL8ZzY64XtDQAGxAT329W7m2feWSj", + "pubKeyOperator": "81b6d9c7821984cf77b423a0b10d842378e95cfbf9b85fa287c48e2e798862a5735950cafd26d5f84a9fc0af0fc6796d" + } + }, + { + "type": "Regular", + "proTxHash": "b494027b61e6e201c6c108e285b7ba1be56acb439a980196fb7b9b158dfdf7c8", + "collateralHash": "a06d36a24ca3e079ed21b0c5e90f97d3698bc0299ca1e27501a4b35b43f5afca", + "collateralIndex": 1, + "collateralAddress": "XnjeWaiGbwq2YkS47sCKCG67u8cREjnu4q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.149:9999", + "registeredHeight": 1028236, + "lastPaidHeight": 2125734, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv6JVGFV4pgA4WrA99x6j9fc6quH6Biiec", + "votingAddress": "Xv6JVGFV4pgA4WrA99x6j9fc6quH6Biiec", + "payoutAddress": "Xtj3SKTZmDpegTDkgrFSL3LE4jiFE65jKe", + "pubKeyOperator": "0cb2b49919a26c6323c83acd4df737cc91c9c8beda9782b2b3a28f8614f175e89a2eb5c388c17b650b39459d7e267c98" + } + }, + { + "type": "Regular", + "proTxHash": "aa737be0bcf1c0bc8ed365b778e8b2e93c91872dcdf272dcb2d5597f8e4f1050", + "collateralHash": "cabc024798a5a61dd9bdd189b8561b8301b148db98115a75e7f540a549dace4e", + "collateralIndex": 0, + "collateralAddress": "XnjcheHQECCyWVh9uXvVA3AmKTTMaUqJBE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.220:9999", + "registeredHeight": 1028246, + "lastPaidHeight": 2125861, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe57dP9LampmyjLy8uLqfzLK3JGXf2UVS1", + "votingAddress": "Xe57dP9LampmyjLy8uLqfzLK3JGXf2UVS1", + "payoutAddress": "Xq52AaH7RUJUv6RedXUqweTfLurUUR1VP3", + "pubKeyOperator": "928156d91fcecaabef3471b803c87069e7466ca8e0cb686890700bf11ba88e7dc701daf6f1b4344f6d48b537c5cc2ee6" + } + }, + { + "type": "Regular", + "proTxHash": "40794c0e9f328fdfab6e9bd5b806256eb0f9472d85e6c47787145908aae4a499", + "collateralHash": "b07cfa5b297aa376071b1ee7fc3b3c56ea03f323dcb6c06651465da518ef7368", + "collateralIndex": 0, + "collateralAddress": "XjjrbiCkeVMMX1WPbM7t8sa7VxuuVhxRnr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.248.52.75:9999", + "registeredHeight": 1028246, + "lastPaidHeight": 2127845, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1692312, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuDQmtK75t1cAbdo1q95yWH5fUjkWGmKvW", + "votingAddress": "XuDQmtK75t1cAbdo1q95yWH5fUjkWGmKvW", + "payoutAddress": "Xdwe3Mp246WUynDUgyeMj23Sdca8p8XjQ2", + "pubKeyOperator": "8469de272c7201e91ba31cb7f1f057b925c6b157bf6d95b36eb0910d2bc6cf6c9c5845bf20664fac1d660b714f47f52c" + } + }, + { + "type": "Regular", + "proTxHash": "a50674e910fe5222fad6610828e78ff27bec438f18b60007429b16ffe31e3331", + "collateralHash": "7a45a5b93af392cbad7b62ab7c782d30431e889e07cde78b25869118d1e2d61e", + "collateralIndex": 1, + "collateralAddress": "XfyGAQhbY94eSXMEJnrWWcDAk8aoHqCuRz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.40:9999", + "registeredHeight": 1028246, + "lastPaidHeight": 2127956, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1800450, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu97YQxTxtRSqJMTLqHWD53qYPCU6nSpty", + "votingAddress": "Xu97YQxTxtRSqJMTLqHWD53qYPCU6nSpty", + "payoutAddress": "XnHRpzSmnSftf2M2qUYcfFWTdUSBtQPXg2", + "pubKeyOperator": "142b110f767094403169c1abb1502b85e8cfcd0c8a71110b7ce05fa832f8dea88a37d008c53b6374a7d4852dd9b5ae81" + } + }, + { + "type": "Regular", + "proTxHash": "9988bd570aead7eb60e5eb90f7f9f17d233a0d12316d35ec00514d6cf41ebc2b", + "collateralHash": "dd867402961a325d4e3bccb9212d9a54ccde688eda9afb7355337a42284d2897", + "collateralIndex": 1, + "collateralAddress": "XiJjMUTBvvUr9rmoYS32oLf3bwZV2fhJ5R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.209:9999", + "registeredHeight": 1028249, + "lastPaidHeight": 2127299, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1687711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqCdYg4LKfWifSyx14CYhm4vYCFQKc6UKM", + "votingAddress": "XqCdYg4LKfWifSyx14CYhm4vYCFQKc6UKM", + "payoutAddress": "XvkD2AgYcQqnq2LwZRMS3Lz4j6iEfpmoa1", + "pubKeyOperator": "86347ae62dd2f50a21c362307a08fa175873700ff6b4487c6bf7c23feaf408508808d6a27a9cb74dbdbbe648e35ad762" + } + }, + { + "type": "Regular", + "proTxHash": "390e6b731013c3da296b61a7365b9954c5a403c95f997e89bf979469f9c1d704", + "collateralHash": "50943819889eec3214442d294dab3cc4a32cd5944b3a681dd02df6bd5ff702da", + "collateralIndex": 1, + "collateralAddress": "XbUHn8JzQZ2HGkRYjYQ8YixRjN5wPiF2za", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.91:9999", + "registeredHeight": 1028250, + "lastPaidHeight": 2128811, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977465, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnqE8nLZmYCqoSwap5RuKNhzakG3K8JcBi", + "votingAddress": "XnqE8nLZmYCqoSwap5RuKNhzakG3K8JcBi", + "payoutAddress": "XbUHn8JzQZ2HGkRYjYQ8YixRjN5wPiF2za", + "pubKeyOperator": "84fd5da5261b56788c935066800808476498160ab5e5e2a27a4b69d433f3f64e0e6950b440c9bb27831581276ef7f861" + } + }, + { + "type": "Regular", + "proTxHash": "4387add2f959bc6490859fd48db6ed99b835c0947956263775c14430d73f7054", + "collateralHash": "f06c18aa532aa5bbf97490332851a5818c12714b088d833581e9dfb3273479cc", + "collateralIndex": 0, + "collateralAddress": "Xh5VeLNybKBWtSy4Eg6yCLP7G2tAFJDrDS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.219:9999", + "registeredHeight": 1028250, + "lastPaidHeight": 2125956, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtEKRukCUCYzk5CFBGS2bcZwMFbVbLHgwq", + "votingAddress": "XtEKRukCUCYzk5CFBGS2bcZwMFbVbLHgwq", + "payoutAddress": "XtpTtQNpTjDmr5gC84EzbBEyq4DcS3DSPV", + "pubKeyOperator": "89a4a96fc7a23ac3de06eb2c55dd2d8e24057e77abfb72bbde744dfd8b8a002460cd07dd19692ecbc89021be39117389" + } + }, + { + "type": "Regular", + "proTxHash": "1bb846e890e938b9c3f9a0a0adc4eaa66d1fcf7d06ab4c397344536daf31be0c", + "collateralHash": "c1ff3ce478f38492a897fb4eebb88f40306c0c0db43d0ff95d0699950671d301", + "collateralIndex": 1, + "collateralAddress": "XqhrYzvpWAhZhNyYidTmMrKQ5m1tZLDw9K", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.36:9999", + "registeredHeight": 1028250, + "lastPaidHeight": 2125955, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsac6qCzR7Lr6j4sweguoTBCxDK6nMym2o", + "votingAddress": "Xsac6qCzR7Lr6j4sweguoTBCxDK6nMym2o", + "payoutAddress": "XqhrYzvpWAhZhNyYidTmMrKQ5m1tZLDw9K", + "pubKeyOperator": "06dfca6812726aff821fe27eabe48051ed218a0f43948a902c97a348bc44473f3e347d1390ceb65b7ec4b2d4e7f90b25" + } + }, + { + "type": "Regular", + "proTxHash": "0f142865a9ba76c424d16a3c76de5d486228746e6171d59263f1593c6d9b0ecb", + "collateralHash": "7cdb625724883a08981dba45636da5152edc81a4f5de020a285c3b5b529c13c8", + "collateralIndex": 1, + "collateralAddress": "XseoUE5ErDupiKCmFRz5k3uhf9eXDaJMc9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.45:9999", + "registeredHeight": 1028250, + "lastPaidHeight": 2125960, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxBP3eMHfJN6CqHCuSBrqCQViASMBeRBJc", + "votingAddress": "XxBP3eMHfJN6CqHCuSBrqCQViASMBeRBJc", + "payoutAddress": "XfuMwq71TxgdkwjJtM1QYXtr4Q5PdKyKSd", + "pubKeyOperator": "02fa0b5093d9182bfed82e93771965ba43ed61a7b19ff5e98c97a01122342e20e77ea2ce54fa1af38718511192ed27a4" + } + }, + { + "type": "Regular", + "proTxHash": "47ba14d326e51f644a7c9b5b8a67311870ef9f297ee9a6215fdba7e5ef1a432a", + "collateralHash": "74c1c562051926d02e6a5858dbdbf8a0b6b65d767d69ed5df14d404cc1c7c768", + "collateralIndex": 1, + "collateralAddress": "XcqNEJWBXUR9Ui7Jnej3eWqs6DV3Zup4YH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.196:9999", + "registeredHeight": 1028251, + "lastPaidHeight": 2125961, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsQkNj7E4tiiUaAqksuvAGnNQGhDTtryoY", + "votingAddress": "XsQkNj7E4tiiUaAqksuvAGnNQGhDTtryoY", + "payoutAddress": "Xapy4Vm1ZdhZMm4aAWm3PRKKY9UA1GPCAt", + "pubKeyOperator": "14637f80ffbe549b24b66e2e19e429dd60c70c741c9f394c1bb5b3e75b67b7e0ea1c557559580f19c4def136bd237c96" + } + }, + { + "type": "Regular", + "proTxHash": "00ae93fc9706943eb22c2f31d21b0ebc807e2f36587d097abba66579ab2b0633", + "collateralHash": "fbfbdcf0c5b20b911d7f0f1ff2d192a618078d15fba535f3b7985e289e865730", + "collateralIndex": 0, + "collateralAddress": "XeqhkDA44J8ckSs5BoPXZs4bky8nxppDsG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.207:9999", + "registeredHeight": 1028255, + "lastPaidHeight": 2125968, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq5FXHCQNrx8xhWXaqK3bDe4EDZH44fb2c", + "votingAddress": "Xq5FXHCQNrx8xhWXaqK3bDe4EDZH44fb2c", + "payoutAddress": "XpuGtdY2nPsirRuj2Bgpgaw2bgB5Q5EM19", + "pubKeyOperator": "8c2a7d1210e4f70f5a3f4dd0bd346303e67d75e204e37d3cf84bd26c0231d53bb8a979ce6134bfe84e8dcd4ddb41a9a3" + } + }, + { + "type": "Regular", + "proTxHash": "487df28eec71164874e2ea758e17bf8d6eb9d9281ebd6f7c65afe64a64895237", + "collateralHash": "29980f55ea863f36c668683c2519b53c69b57b6fdd546249bb0bafc55a1e0ff0", + "collateralIndex": 0, + "collateralAddress": "Xo783DXb34oJC4AHMPUpYUFRfP7jSbyuuU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.42:9999", + "registeredHeight": 1028262, + "lastPaidHeight": 2127605, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2027042, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbTk4JZAZh9amUSydgTmP2mXMGFY7knMWi", + "votingAddress": "XbTk4JZAZh9amUSydgTmP2mXMGFY7knMWi", + "payoutAddress": "XnFrZjt7v2ajBaa4FiZU2pVJEhqAhdeybG", + "pubKeyOperator": "8eef990620fbf5fe968295f41458cb68fcb6bc354988af6d58f73884a92fcd32c8e78a84b57d235d62153bc5f43594fe" + } + }, + { + "type": "Regular", + "proTxHash": "f15ce81d7d2e5cae8023c0f2069b74fb7257efabef9534e9a8a55a5b751de9cc", + "collateralHash": "140c18e494db5b4e83884d80181537cf1df660598fe6eb1785cf7ae416a5c831", + "collateralIndex": 1, + "collateralAddress": "XtnZdGgAt7JvVNCZGr5JL1BJ9z54gCuDKd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.153.186.100:9999", + "registeredHeight": 1028264, + "lastPaidHeight": 2128876, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1660135, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk7xJQNFZRgBzsZsGsSz4mMzXbpym5Q5kh", + "votingAddress": "Xk7xJQNFZRgBzsZsGsSz4mMzXbpym5Q5kh", + "payoutAddress": "XcuuDosC6B34zEFMb97MYTiHczfKMHTbUN", + "pubKeyOperator": "0fa657db0b8a05ca9980898e94d7e3a2e4b044918af5a139781417b4db7b470dd6fb6c4ff26978f4730993de9804c85b" + } + }, + { + "type": "Regular", + "proTxHash": "b959cccb296184e7680c8d8c5f012ab7dd86c879670dc07b2b10322c967f13eb", + "collateralHash": "71d5af6906ff71015c0cee4e060ec01fde1936714a21f0bd9f6068c8f2f32c5c", + "collateralIndex": 0, + "collateralAddress": "Xq7K3cxmndRGSt1frYRbBYrFtcJjMsCaVt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.65:9999", + "registeredHeight": 1028268, + "lastPaidHeight": 2126432, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1101985, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfuFwupAsDd8kqC2Gjbz18hLppkkohkWkn", + "votingAddress": "XfuFwupAsDd8kqC2Gjbz18hLppkkohkWkn", + "payoutAddress": "XywhpcnnqNa4JSo9maAoNMuR8nrBrFwHyG", + "pubKeyOperator": "0a03adb79bb7ebd6f06002a5b4f124981da67cdf9c59bc7d9df434240c19eb9fa32c52c5581b170a2fd618189edbf217" + } + }, + { + "type": "Regular", + "proTxHash": "e49996a100c66bca973f6ac232cd35bb6496990e6425d0225084cdd236a049df", + "collateralHash": "574c19d8be2cd62944cbcdeeb3e61863001ee5da2cf6fe232201b4be45ca7204", + "collateralIndex": 1, + "collateralAddress": "Xc2fh29A9DxpEtQBmvpZfqVCBALWjBCjLk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.224:9999", + "registeredHeight": 1028274, + "lastPaidHeight": 2127913, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2003609, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcZsf49qztghi5Gf1HM17JfMPj6Q6L2NwY", + "votingAddress": "XcZsf49qztghi5Gf1HM17JfMPj6Q6L2NwY", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "01da056d3b253e6660c98771aea644191640f179dee3674f0c720ae896ebc9a4614f707c6809ad8f33a7226abf65d549" + } + }, + { + "type": "Regular", + "proTxHash": "58850f9bc48710a4fea598cbeb023087ed5d0449f21a7aab54c0b815b664c45f", + "collateralHash": "b6cae60c23c188858ada52d2e081edf31fc74da9564f9b23cefbb19c9c603a0a", + "collateralIndex": 0, + "collateralAddress": "Xkav8ae9jP6cANr7kPsnyL2Z8hjcqf8aG4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.243:9999", + "registeredHeight": 1028276, + "lastPaidHeight": 2125774, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1786332, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XityXVuQCk4LxBn8wMFFEhrEYRvKq23aCx", + "votingAddress": "XityXVuQCk4LxBn8wMFFEhrEYRvKq23aCx", + "payoutAddress": "XfE6mwRsixQh8DoqqLYiRGTekvbwvqD67X", + "pubKeyOperator": "85473f12dee8f18bd20066659629a1e24d3a3b3c78f5a18f579de575f606ac66978e4867bb50a1982e5f377633d92f66" + } + }, + { + "type": "Regular", + "proTxHash": "3b154e9da84f0f2f2c88b3d79a24296baefce3a0af1e26bbc051104d8de2877b", + "collateralHash": "f80634e2eb2ed6cddcb5b680dbe9b7eddeec07c32addc246daad0ad619068087", + "collateralIndex": 0, + "collateralAddress": "Xg5fsQeLPPjwp7BN3HiYDA9Wfh1jBZHcGm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.5.55.136:9999", + "registeredHeight": 1028276, + "lastPaidHeight": 2126637, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgy8i8r6hpfHfnTeyPCVNEbi8UDq8Uwfgr", + "votingAddress": "Xgy8i8r6hpfHfnTeyPCVNEbi8UDq8Uwfgr", + "payoutAddress": "XdJaiKTaqAZC8oZrjL8G1PhstWFE5DTD7f", + "pubKeyOperator": "9201a6b39c9976bbb4c7c11168493d0afa5f5ef73e8e140c7c359b8ca8f63b3a70ff1aab941b21ca750ecc002f9bc27d" + } + }, + { + "type": "Regular", + "proTxHash": "e4d0a098c4fa77b604b972fca5440b2334bcc06f985a814636e6b447ed19b949", + "collateralHash": "ae7010a742e22007fa2f77d0ea00b336891b48a6e201c8d48d92f97807fc1f64", + "collateralIndex": 1, + "collateralAddress": "Xqmwo3gXGe4fU9E5FQZWtH8U4hjtye1mVM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.225:9999", + "registeredHeight": 1028279, + "lastPaidHeight": 2126706, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxBoe1vb47uPzxGkxinnKtzQwYa3JhkCuj", + "votingAddress": "XxBoe1vb47uPzxGkxinnKtzQwYa3JhkCuj", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "82ee2a9db8dc0aa59497b655e9f0adb3870fd6dd7c079c61d280fd5b535fd894c905a21406ce580a670f00a8dc393f5b" + } + }, + { + "type": "Regular", + "proTxHash": "049fc8f0474e162fc5674c3526dc29224b294ac02e47ac5c4be656e016248996", + "collateralHash": "1a53944da90348e470c39fc623192dcbbf52bdaf2fad4bf258c77ab88e9627eb", + "collateralIndex": 1, + "collateralAddress": "Xeqa3sGHm1NfxiZ3QduaMGqtnsVjAJRAhz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.208:9999", + "registeredHeight": 1028281, + "lastPaidHeight": 2127017, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1606059, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgGuK4GVs2SL4iUVn3WH9KZ9U7WPU4Xej5", + "votingAddress": "XgGuK4GVs2SL4iUVn3WH9KZ9U7WPU4Xej5", + "payoutAddress": "XbXfnRJeNe1swJ3w33B1pBADvNsQqaC9oQ", + "pubKeyOperator": "9771552c0369ace1577640f5f5122eeb12b375458497bca88de57fd731de6b5e968c1b3128ce66fe4a1fdc654b3ff399" + } + }, + { + "type": "Regular", + "proTxHash": "9025435ab7440c8e60cd2c07231ac460c55712931381d524ee3bd37d1177c5f1", + "collateralHash": "3ee20b71555475d04f54746aa95145798fd6bffac559659a4a9ef6e631ab2a68", + "collateralIndex": 0, + "collateralAddress": "XhauKzhGyyb8Ri8AeN79L6KebyYjjy5agT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.65.70:9999", + "registeredHeight": 1028281, + "lastPaidHeight": 2126754, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTCdawmukiSuEntpHYa97zGoSrXXepqxv", + "votingAddress": "XrTCdawmukiSuEntpHYa97zGoSrXXepqxv", + "payoutAddress": "XsiPH1jRUd444NRpBvCyKRKgUz3NNfPdXD", + "pubKeyOperator": "1157d9ee4b37f3576973e6ac237328474b5650a61b4a1d7a4c59ff77c2568906a9dc5592aac64b4f27e719c0efab3ca7" + } + }, + { + "type": "Regular", + "proTxHash": "a5c36b84429d820f0c8fe773072e19b3f3bf5efbb993ae62ac05041044fa481a", + "collateralHash": "0226495c4067c6b40a0b2637a7e068d4427d483912c68a551dbeb0dd2cd51c0d", + "collateralIndex": 0, + "collateralAddress": "XcCf6BwMehwiPkpBsAJShvYbBKcTjXoa3U", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.12.22:9999", + "registeredHeight": 1028284, + "lastPaidHeight": 2127253, + "consecutivePayments": 0, + "PoSePenalty": 831, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwwbbwTmEZNcyjdw8xW8NxsSUFRyNNMr1b", + "votingAddress": "XwwbbwTmEZNcyjdw8xW8NxsSUFRyNNMr1b", + "payoutAddress": "XvYd9qNz5kcV4T1Ph9XEdRcrRpLkaDiR59", + "pubKeyOperator": "038558dbedd58a7d9278e5ae9b89786aad10d1f6b6cbcdad906d22b9be59cc7e757d34a5279b4606b222d49993a5e1f5" + } + }, + { + "type": "Regular", + "proTxHash": "cddb6746d679b557752125cab4ae0fe2b54b95da73afea5f40d193796176702f", + "collateralHash": "6e4b722c41c596f702feeee2ca0a7c0d9a3fcb66b665fd794a5f708211bd5c48", + "collateralIndex": 1, + "collateralAddress": "Xe8ntmCgvRYvgc9HCgxCuASpb1rAsV8UbF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.226:9999", + "registeredHeight": 1028284, + "lastPaidHeight": 2126769, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqY7FgZ57kEc4KxMyKLp9TDtiRpkjnzoJb", + "votingAddress": "XqY7FgZ57kEc4KxMyKLp9TDtiRpkjnzoJb", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "94229e3fb5fee9e2e7e53d0d96b0c40e77e1a1598a87b91b90444a699b71b6a8e425b54f05927f8ad2086765f681ff5f" + } + }, + { + "type": "Regular", + "proTxHash": "8cd7e1ef26804cc63a429c1aaacde22bfea2d44b65b94c37e1704a55ce0d3aaa", + "collateralHash": "4d538415944afc78723312df1029ca88625a638db652b4df71115623defdc50d", + "collateralIndex": 0, + "collateralAddress": "XkyUbE5UspDDuoDpcMHKQW4uyHsBzfYEd1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.94.162:9999", + "registeredHeight": 1028284, + "lastPaidHeight": 2128812, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977465, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xup3Cm46s1ByMVzXzRNWCVR8jEWkrL4orM", + "votingAddress": "Xup3Cm46s1ByMVzXzRNWCVR8jEWkrL4orM", + "payoutAddress": "XgmpVJfQw78KGB2F1TmmQDZojhWYAKiS9p", + "pubKeyOperator": "9783b7462412dae70f3851814b19a12f334e123c86872d4988a5225641d6f621835c2774ef811a5352951399dc261d80" + } + }, + { + "type": "Regular", + "proTxHash": "0c387489c877ec180fa9261b15936e66f59590240c3478b5a942e36cc05a18bc", + "collateralHash": "507e280ec04a4afda32365366aa75cbcc30fd6f481c4117639d49471e112286a", + "collateralIndex": 0, + "collateralAddress": "XgX1HzSvfAZL72qiTKPz83iGn9SqXeBgDw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.239.83:9999", + "registeredHeight": 1028284, + "lastPaidHeight": 2126783, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnUMVoSS1Fbxo8rcpwM91TufjKBV6JJppS", + "votingAddress": "XnUMVoSS1Fbxo8rcpwM91TufjKBV6JJppS", + "payoutAddress": "Xvd5WVzsjJxtectWLL4aJGZKDyKUC9hbBU", + "pubKeyOperator": "8348c6520760ce5bb0fb1ba8090a81d8e2ee4591373ee3cdd3ded56d8690d14dee4d4bd36a8f292473f7260081ce485f" + } + }, + { + "type": "Regular", + "proTxHash": "b485011d1987e997780cdda168e834f14850687475912f7c7aee4ffa5d72eeab", + "collateralHash": "d4abb3f57bf0cb8ae05f405e89b203e53e7f61cb90a63ba24cee48c7eb3e9502", + "collateralIndex": 1, + "collateralAddress": "XpmtQdUf45BVZAJF1FdYfHc5jbWDL7XYy6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.183.51.141:9999", + "registeredHeight": 1028290, + "lastPaidHeight": 2127846, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876264, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiYdndmtDmzonsNKVssojFUQnHbLfcU4KK", + "votingAddress": "XiYdndmtDmzonsNKVssojFUQnHbLfcU4KK", + "payoutAddress": "XwQYik4QyEGZWj5z2bWyukSkCAwCSpY8Ug", + "pubKeyOperator": "10afb4018f009b5700d7ba2f4a840c70accb413d5c47fe39db25ebbdedc7c6b2a2ad2ce36b1b12c5f2b74342d1e913fb" + } + }, + { + "type": "Regular", + "proTxHash": "e0c00950d286c62f76d7766af3c578476579ad648a2430916168c498ef0bcd35", + "collateralHash": "b1a758c1174d8c6a7b099edabfea63ec7949f77a560b6d9c32b0df7babc441bf", + "collateralIndex": 1, + "collateralAddress": "XidqYvcFu3WiXibkN8gD2jB16vatm29KiB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.227:9999", + "registeredHeight": 1028290, + "lastPaidHeight": 2126913, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcfCp1TT1nQszGCYDaE4pZ8cVrk8io9YPU", + "votingAddress": "XcfCp1TT1nQszGCYDaE4pZ8cVrk8io9YPU", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "12c02530dd72a031f56d16ba1f4be9022180ca358339229b98446b7700471b9daffce843f815f2e875c4416248ee6525" + } + }, + { + "type": "Regular", + "proTxHash": "b295cbb1351b9c6d507c43ee7c1b393bac873039432f587ae9bf5f623fffd843", + "collateralHash": "4afd8aee21de0a322dd555019d1082f515a32ce3fb33fa0c40145f1bfcf29d72", + "collateralIndex": 1, + "collateralAddress": "XsxBS8cxtCr7W5euqeYs2nYCxGK9X646PE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.228:9999", + "registeredHeight": 1028300, + "lastPaidHeight": 2127914, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2003611, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgtJmrm1Yqi1KAy3wsSEGQ2VDviMrGFgdk", + "votingAddress": "XgtJmrm1Yqi1KAy3wsSEGQ2VDviMrGFgdk", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "80389e6d198ac2e5947153a4500d3ff4684eccaa111941660d83c6871dbedbf4878eeb46587f37ee4e57fa048f69f09e" + } + }, + { + "type": "Regular", + "proTxHash": "ba9eff9f2c280cb180125183eeaa3df2dcdc8209ff6af9447406dc491295a150", + "collateralHash": "43374957e191f6d2257acd402ef51884d255c7f680ca71d33f003788a546ffb9", + "collateralIndex": 1, + "collateralAddress": "Xq7EEKpmD4Lb6TVwUKrtW2dZPJ5vRfjmzJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.21.44:9999", + "registeredHeight": 1028300, + "lastPaidHeight": 2126800, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120749, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqXL25KcytyNKcTbMWjbDJGh1PvFir6NwK", + "votingAddress": "XqXL25KcytyNKcTbMWjbDJGh1PvFir6NwK", + "payoutAddress": "XcXxqEQUtKybULLdvrnkCktmsyJPw5y3a2", + "pubKeyOperator": "01e8d309c0129592d2c320a99695b8cf465a0aaa9d82f1fc278be88ae9faa2a8491faebbe9d368e5fc013db721e025fc" + } + }, + { + "type": "Regular", + "proTxHash": "a3087f7bb52d9609cdc5c1e489bea53abcedadffbda71e1ee271c532b24f4536", + "collateralHash": "579b914000aebda5426815c0d70ce56ed310b4124232f6287ad9972113f01144", + "collateralIndex": 1, + "collateralAddress": "XiH8aoZ2CkwUiKcEUjP1KTdCcnZc7j92iR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.229:9999", + "registeredHeight": 1028311, + "lastPaidHeight": 2125806, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1981274, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbcnmJYaw6Acqt2xrg2Za6wWy24QaJtU3q", + "votingAddress": "XbcnmJYaw6Acqt2xrg2Za6wWy24QaJtU3q", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "07a0f318a396cb601aa225bc2a431e2a34486894b89d325ffb997d223f1a7b39d30c7599770c7a7986728307d3c6060c" + } + }, + { + "type": "Regular", + "proTxHash": "1a72394be79d9e10be18043dcbaf8287ee077d7045d491f1415eb3e352896f50", + "collateralHash": "448e351d3cf512a6eee9fde402e625994435f0fa7cab0f5c14969c5acc981d0b", + "collateralIndex": 1, + "collateralAddress": "Xb3XMTZ5xLMZLegCfDMiWq7Bj456NTVXZ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.99.244.220:9999", + "registeredHeight": 1028311, + "lastPaidHeight": 2127018, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120959, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgkF1R9q3J3gru6sc31sHTqPqPVM4xoJ1H", + "votingAddress": "XgkF1R9q3J3gru6sc31sHTqPqPVM4xoJ1H", + "payoutAddress": "XhrghnrFYoho5S2Pvh2MmcC4XVuGmPKg24", + "pubKeyOperator": "94fc7e0f97f5c4d46310bfa784603fa7e6961831c0f28f7f4083715d15b972fd31f2edaed55adb60cd0d608b529c2106" + } + }, + { + "type": "Regular", + "proTxHash": "542c37bf022d714c599fb79516b7644310dd6f3316ec26e3b4fcedf42615f8e9", + "collateralHash": "fac4e442fa809dc33499fa9903b34fbab05b16d1fbb028a316c6c632733e2c15", + "collateralIndex": 1, + "collateralAddress": "XndAXzgPjn6H69tjVH28e9q79CA6xDj9Rz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.162.131.197:9999", + "registeredHeight": 1028313, + "lastPaidHeight": 2126828, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2039724, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn63ipMduqFZXXaD8RftPXyCXas1o8mcsn", + "votingAddress": "Xn63ipMduqFZXXaD8RftPXyCXas1o8mcsn", + "payoutAddress": "XvrhJ4VPwQKyXmCXZGvcKP7dw1FMPCvhPy", + "pubKeyOperator": "139799cff261e45118408dbd9d70b8f4c9e0944c5f954fcda731a8050546951bf7cc8dddf1375e773836e146649c2841" + } + }, + { + "type": "Regular", + "proTxHash": "7932f8ee72d582b92d7e2fa86e7b7c8d52ac9b26b0665a0c43598ad8fe3c4e83", + "collateralHash": "21eef5dd487b3c8bfbe4baec1303b6d2ed61510034c5310e6e0916d7e2891454", + "collateralIndex": 1, + "collateralAddress": "XeBDCx3qVbyuPLhHbJ9v12w2bFbeBewdrq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.230:9999", + "registeredHeight": 1028315, + "lastPaidHeight": 2127233, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114838, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XffLjm5Aq9bwBCvvdqgeU1UDhqz2pgFySr", + "votingAddress": "XffLjm5Aq9bwBCvvdqgeU1UDhqz2pgFySr", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "059fe567e8e59449935eeb6869f3b046a63f09858408d4eaaf8ac4b6d703796a296c1aa8cc942e3bb95bcc7e401e8de0" + } + }, + { + "type": "Regular", + "proTxHash": "6905574fabc3dadbdaa59f90590cfb90e46334a3abca0b179c1a0591be0fb1da", + "collateralHash": "094bbdb7762c4ea5f51dd8b1c353a774e524dcdb833e6a1f6684c6f64d357e55", + "collateralIndex": 1, + "collateralAddress": "XyqH6JxaQByeSsbp7YqYzaFb9BsArkfkUD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.231:9999", + "registeredHeight": 1028317, + "lastPaidHeight": 2127921, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2003619, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoNnhtpJDEfLGBYWaTFDd3J59hUg3Uk4sY", + "votingAddress": "XoNnhtpJDEfLGBYWaTFDd3J59hUg3Uk4sY", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "818e66a69f7a338e911bf71f0cf39e8f8bd0b935c4d20a854213750fb7954fd71b458ee0dfe84ad8e80934c9a17c8084" + } + }, + { + "type": "Regular", + "proTxHash": "dfe21ef8b52aff03ed880424149d7f719d07319d6de03fed49a4c76a6af79020", + "collateralHash": "c8dce38d4c9205b673210c06290e51d2bc7d7608a379529fe6e4694897f7be2c", + "collateralIndex": 1, + "collateralAddress": "Xf2QMmhFoY5Z8VyReXapEhowpmerzZu6rW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.232:9999", + "registeredHeight": 1028329, + "lastPaidHeight": 2126478, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114078, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XopPTGfXqr3zNsxcLWdzSETXmjAtndyDfx", + "votingAddress": "XopPTGfXqr3zNsxcLWdzSETXmjAtndyDfx", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "16fff273840b16a50c04fbb60524964ca2cd349020e5b0c40c9a2f8defa0fba624f6e0d965855bd4bd82df8d113f215c" + } + }, + { + "type": "Regular", + "proTxHash": "5031dfff1c257b247dfe3bd44225201b0307f30a67e0f39bdc31870ee5aa1fea", + "collateralHash": "c1c2a7d8b0f8f7aa3028b901e37fbbda7d4bfba509bcb0f2481dff027eb0c3f5", + "collateralIndex": 0, + "collateralAddress": "Xm2i8wciKbuoEP2pzCQnHobV1dnFHPw9mD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.83.19.0:9999", + "registeredHeight": 1028330, + "lastPaidHeight": 2127639, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124470, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvsBbutbsBjwXDsuY5i9XMz4H6KcxVAvTx", + "votingAddress": "XvsBbutbsBjwXDsuY5i9XMz4H6KcxVAvTx", + "payoutAddress": "XyfyKAW4oqi9UQanBBHrjkutqecrXmv4jm", + "pubKeyOperator": "8bbc611d1742be42ee82306630b63c91f96cb3e7cf129661a8145c5b285c752ecad7198d57f588408c413af3b93aea96" + } + }, + { + "type": "Regular", + "proTxHash": "c7a697fc9a18866ed7f972d52a48b584e003c0786515c9b2354f44af42928a96", + "collateralHash": "7dc414120df6c34927cdca1e41b76ee2bba2a465a10dfd3471a140c50db46428", + "collateralIndex": 1, + "collateralAddress": "XxgRQunkMvpp1PUATdEFqnwP7BNbx6axha", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.167.131:9999", + "registeredHeight": 1028333, + "lastPaidHeight": 2126370, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123204, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcxBBc4vXPGYx9rzCgACy51DZXUzibZJj7", + "votingAddress": "XcxBBc4vXPGYx9rzCgACy51DZXUzibZJj7", + "payoutAddress": "Xjp43gCPstX8gpJcrGPdaQD6h6SF5wFKZ8", + "pubKeyOperator": "960f63e1c8f19381869f3da0115ef02734f1475ef9a20be42e07a8a318eccf6810e46c26c3733abb9c0c66be3fda79d6" + } + }, + { + "type": "Regular", + "proTxHash": "00f857f0b62faa97bf7bdb0ee5ee183e3428298d558dd535b9e35db2cf474717", + "collateralHash": "8bd92a705c3dc49deb83dee5ddfdfa90f54983c1f612b47ccd002b32d4281f6c", + "collateralIndex": 0, + "collateralAddress": "XcP7MvrDN1fkuPycRkbbRRCRwbZbd9Tdn5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.233.182:9999", + "registeredHeight": 1028333, + "lastPaidHeight": 2126369, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123204, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjdyWWs2VKWkNCvbt46x4sfmWRRUHGxgjv", + "votingAddress": "XjdyWWs2VKWkNCvbt46x4sfmWRRUHGxgjv", + "payoutAddress": "Xjp43gCPstX8gpJcrGPdaQD6h6SF5wFKZ8", + "pubKeyOperator": "11bb080a4f63376d41dcc49ef2f298d44a273129ab6218c3f97a4cad31fb0354e6f12ae36b9862819265a104d468272f" + } + }, + { + "type": "Regular", + "proTxHash": "124ff0f15c34d3abf417b9646d6937f36bd41bd0549e0a49252f06fc4b1fa4c7", + "collateralHash": "d46b547c5119ce0f7f1a44db5035ecdf0bec21782a8cbe3c3876450333fa332b", + "collateralIndex": 1, + "collateralAddress": "XgoA15NZY5aL8DvdLdXW2jbdsdWucoen9D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.240.127:9999", + "registeredHeight": 1028335, + "lastPaidHeight": 2114345, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": 2080058, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xc5WELzmHG7pYd6pbzUTXnR3hmsqwdqKVa", + "votingAddress": "XkWB2kSB7NgQd1Vw1RVPzeBJCXP5yyLT25", + "payoutAddress": "XwBodL9yoDwEr9xmBNvPXjXyTpG6iSJ9W6", + "pubKeyOperator": "0bc603cc70cf7d244ee7ead632117381de28549750877e45eef3dd0ff5329f9ad5ad61553cff797dd9ca2985ec829e2a" + } + }, + { + "type": "Regular", + "proTxHash": "93b32aabfc98edcc18fa54d586aa3f2663b86fd9db6691b0c0804eb4089d7761", + "collateralHash": "5d3aeb382f47b0edee67a5e41f65fd03a36c6f5beb3bc652b2d60779413cdc81", + "collateralIndex": 1, + "collateralAddress": "XcoaVapLa3DqRubgbjfj62U4b6AYAez54W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.233:9999", + "registeredHeight": 1028339, + "lastPaidHeight": 2126529, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1899335, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xex6SK5vSYiaZoFn7aQF9XZaWdtSbnPqrF", + "votingAddress": "Xex6SK5vSYiaZoFn7aQF9XZaWdtSbnPqrF", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "9050a68d5d6bbad4e7d3c53e99aa6a55ebd64261deac5ddc876f433b91a19e1d3f4723411e9c8cae42823c3511a4412b" + } + }, + { + "type": "Regular", + "proTxHash": "5dc71405a57182b985969af37d44a9012deef49ba5164230c512b8e3cb78715a", + "collateralHash": "0ab2ffa7514bee44a17ed1114b41376df6d60feb5fd4839bfd840a2575419b03", + "collateralIndex": 1, + "collateralAddress": "XpxZUVYUWDQnYXkLNBV2yDnpEwznWSN2EQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.231:9999", + "registeredHeight": 1028340, + "lastPaidHeight": 2127210, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114828, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfeFiDtkHCw3PyVnyg4oNsW4jWVdNoVnpn", + "votingAddress": "XfeFiDtkHCw3PyVnyg4oNsW4jWVdNoVnpn", + "payoutAddress": "XqkcftUrB8DrF15qWjZxLUUNy1pskGojLy", + "pubKeyOperator": "0426933a053e68888f5c52e747dae5b958035dc39bea6b54c8af86cdfa90705519f8babe8ac085fc877e2bc83c3025d8" + } + }, + { + "type": "Regular", + "proTxHash": "781cf2a16c92d056835d68d50f0f5308dc947a17432370a401b24f95abc0edc8", + "collateralHash": "8289dd6c1acea49691c1c2ceceaed3734b210b66dae95dbaa35b9d31b244a639", + "collateralIndex": 1, + "collateralAddress": "XrtzpxizFLtV3Ssw98rK6wdrDnNbrpoHti", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.234:9999", + "registeredHeight": 1028346, + "lastPaidHeight": 2127966, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpkbbJCMBzYKYBBgDoeJCv4A7VEcGTnaHa", + "votingAddress": "XpkbbJCMBzYKYBBgDoeJCv4A7VEcGTnaHa", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "103cec76e609c17911c05d5c41722b209a0be70bb8bde4537feca19bb72ec79afbd45e2567efeb41f942766e1edbbd5e" + } + }, + { + "type": "Regular", + "proTxHash": "48cdd62f070d3bf1022520a74f6893718624cabc3a15e2205059a09d594ab408", + "collateralHash": "28a9d1ec0518a7266d9eeba7fbf43098ab8d8ba0e78be8b7368393e9376ecd61", + "collateralIndex": 1, + "collateralAddress": "XpcPDYsnDQaTxgpXHg65iUbdMy8fwt66Xo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.235:9999", + "registeredHeight": 1028348, + "lastPaidHeight": 2127967, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkZYPh3dRVBD2sFTCv7XStTfgprzxaSxVX", + "votingAddress": "XkZYPh3dRVBD2sFTCv7XStTfgprzxaSxVX", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "0a5a3deedf52f0ea6775d3caceade48e4d0fbcdfc090b9696109690bd0584e6722bb9688a1d35749325998370e86c0bc" + } + }, + { + "type": "Regular", + "proTxHash": "9b893b6f01f21c58d268afcbcce13879773cf2d21b4f4ef491ffc5c2644142c4", + "collateralHash": "16cb07714993fd6c69d6a56721f2a2cd542348113074b12bcc9d7a21a2e5fa5f", + "collateralIndex": 1, + "collateralAddress": "XcA7DgRA44GLKSCsZp5okNp9V6coUTrUAa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.236:9999", + "registeredHeight": 1028348, + "lastPaidHeight": 2127229, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2073798, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XajiBxg1Yvz1xj3x5RVVCsd2jz3F36Jn6A", + "votingAddress": "XajiBxg1Yvz1xj3x5RVVCsd2jz3F36Jn6A", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "80019ea038772fdde3381ed817e1ba45f3d5fffa341778e4dfc46bfbbfc7e982fcb7fda44fd453bd2830a3f2426600fd" + } + }, + { + "type": "Regular", + "proTxHash": "d07e1f491d48947fa2fe9b88cc0e01275c582f3d9fae361d2744c5dee57b48f6", + "collateralHash": "0cc48b21601beb008d37c20d74d28a7da22632d58ff879a96c787bbbe1089fb3", + "collateralIndex": 1, + "collateralAddress": "XwNFd2hdDH6cno7mhs3Sqv2HDNSRVubuuj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "84.242.179.204:9999", + "registeredHeight": 1028349, + "lastPaidHeight": 2126134, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120071, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc26QRy4vz1SNP45GVxQ9setw1ywxMqq5x", + "votingAddress": "Xc26QRy4vz1SNP45GVxQ9setw1ywxMqq5x", + "payoutAddress": "Xij2hVxLBMmX97D9HQF94m4GcN3Fdv3feq", + "pubKeyOperator": "09ac57c174a9bfafa23f81d38223b342e51cf6bf59a9145c69b6098665b4c2d105de10ad211003a3114e06684a21a16a" + } + }, + { + "type": "Regular", + "proTxHash": "ddee1b7ae6687d90e825ad03d9a371cf994f796e40d0755e55116d0e730e2c8e", + "collateralHash": "c669466458fc269ca56f9e8b2b3d578a86e0cde84468d6145f4048d1664fcf99", + "collateralIndex": 1, + "collateralAddress": "XbMsQNuGJikKzpk7txR4b7jJQC1LmotD7R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.121:9999", + "registeredHeight": 1028352, + "lastPaidHeight": 2126336, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1493898, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoe1eEqcU4xbJ3QCY3MdSwhEigFGrP9nBE", + "votingAddress": "Xoe1eEqcU4xbJ3QCY3MdSwhEigFGrP9nBE", + "payoutAddress": "XivNvuGXmCZazERQjiSAGKDYNpk8oQKBHr", + "pubKeyOperator": "13ab17fe8cf037cdbe142efbf26f07fcaaae27a9248cc797edf6b09851258160d06d67450ef784f94b890c9eeaf1ee08" + } + }, + { + "type": "Regular", + "proTxHash": "aeedbc500211f1a19dffbc04fa0f8a181d43dc647c51c5e627b439b40ba2c370", + "collateralHash": "5c08913db37656c90c9df749a5a617af95379978ef7f361b9f983020db4c0def", + "collateralIndex": 1, + "collateralAddress": "Xq2X4GAX8koHQ8i342Pm6qKuvBfx8cwsWT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.85.238:9999", + "registeredHeight": 1028352, + "lastPaidHeight": 2126528, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1622725, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwsyVTbSNJEz14aCtgKiW7wPZzTqFNzE2K", + "votingAddress": "XwsyVTbSNJEz14aCtgKiW7wPZzTqFNzE2K", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "89da8f2b9e9d62cbdcf8dadf9c2e397caa1ddab2164bab477e78a52d6e5833c6b2678d00ed017f12e1cd01ad04e24a41" + } + }, + { + "type": "Regular", + "proTxHash": "5b023482df38894bd9800ef877fe6daf2fe38934c6c7fddb2165718fff6e4d9f", + "collateralHash": "a134ed554b74b4aaf6e10cca3f7c898abfb5a35521c66689300c7c44587cc441", + "collateralIndex": 0, + "collateralAddress": "XhrKBHCwCgxNZkmNpvbpCSG5UksPV1FkHr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.154.226.228:9999", + "registeredHeight": 1028352, + "lastPaidHeight": 2128443, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1668106, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcrGuzKqXFvn5AH2bbMBxj6JvqTw1GHNyk", + "votingAddress": "XcrGuzKqXFvn5AH2bbMBxj6JvqTw1GHNyk", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "87e115a5297a48d001b4fc5d8c48d05c4b113cf5515d7f7bc05075e78f649525b54b2404b5848fc439bcf2454855d82c" + } + }, + { + "type": "Regular", + "proTxHash": "26d7da33f8121790d751cf12519c59c6f1d5692830052f8465024e825d9f4b16", + "collateralHash": "dbf195af34c9fc8cf678d27272c2178a3f517d4f00a211b0681389bd21ce71b9", + "collateralIndex": 1, + "collateralAddress": "XoFTko271DBEc7KU9RNdGrfBMVS5tHmXcj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.110.82:9999", + "registeredHeight": 1028354, + "lastPaidHeight": 2127994, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJQpHfdSsDDRK9Tz7S2tZyJKPTT8wjxRv", + "votingAddress": "XrJQpHfdSsDDRK9Tz7S2tZyJKPTT8wjxRv", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "89ca6cd16f8be95689b4d37a3cb279180ca543007fbf24f8f026f51c7340539be24d95be325bdafe99dc27da44b0b743" + } + }, + { + "type": "Regular", + "proTxHash": "71075ecf01676159b9a38ee0e1327bfa79a6f90c41bacf0499962b703adaa7b9", + "collateralHash": "c1135f9df94aa798554056d68b1c5b5563c424e5d5f4845a8389b2bfb6d2a8d3", + "collateralIndex": 1, + "collateralAddress": "Xeg2eAiSkG99VYMfKmQrvenYL5YJCn74xF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.23:9999", + "registeredHeight": 1028361, + "lastPaidHeight": 2128777, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1866284, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiFrHZGQtP6Cz7f8EgTjMgkCg5J9ihm8Gx", + "votingAddress": "XiFrHZGQtP6Cz7f8EgTjMgkCg5J9ihm8Gx", + "payoutAddress": "Xroq2GSk1WUTiUx1dNPz3uJ5ruwWuDJL69", + "pubKeyOperator": "01ef09ec0ed788980da4eaa5ca9aa0546005f47ffe31ab6e4a5e48e190a57677cfd0195d48e0a9ce9097f483b97f938e" + } + }, + { + "type": "Regular", + "proTxHash": "ab51f6e98cb044b72b45065b3e51085be5cd08a70f7d2fdd4e647b935aa86622", + "collateralHash": "0da1727d4ae3b182b62866343039bf87fbbb4f972f7660de648e7427f78848e5", + "collateralIndex": 1, + "collateralAddress": "XstRHxa3vPpjmkQWc7qeZYLVMPF8ADA4rK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.248.3.156:9999", + "registeredHeight": 1028361, + "lastPaidHeight": 2128861, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1984683, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XednwYFJemBQSY9gbWRDfxTtyfjVzSwC1y", + "votingAddress": "XednwYFJemBQSY9gbWRDfxTtyfjVzSwC1y", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "9947cb689ad8d8d400851e1d54808317a0e2c932faf7e8c20041292f959f4a57e6e8336278326193dc5b5e1a38932524" + } + }, + { + "type": "Regular", + "proTxHash": "31cc55e53f8e0cc890d3b9818e3298ff6d36481689a6308d184a5e49f42bbe6c", + "collateralHash": "9cc57f47c4511f6308aba0a22d503ed9695c0c3b874e8502a5522ced43e30ef7", + "collateralIndex": 0, + "collateralAddress": "XgxMraf4npPXjBpEqSTmKSfA121JpGPySF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.243.76:9999", + "registeredHeight": 1028375, + "lastPaidHeight": 2126627, + "consecutivePayments": 0, + "PoSePenalty": 1121, + "PoSeRevivedHeight": 1975156, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnayW6zWLGaZe7aSYT8zF4iLKf9nLJqgWF", + "votingAddress": "XnayW6zWLGaZe7aSYT8zF4iLKf9nLJqgWF", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "172c645665f6742c2226cc815a2c735908e0b20f949f42f7a6713b6613e17250242f6a6cd8d75ed46f335e8ee6abb22d" + } + }, + { + "type": "Regular", + "proTxHash": "65f2573918509a2b0e42f7f2f5a0b1f5d5b8b1a7b9ed4627fea780f50a91700f", + "collateralHash": "50567dc440ffb6a859795a7caca57e76ba25a02d6da562bd3ecf24d9d9354eb4", + "collateralIndex": 0, + "collateralAddress": "XimaTYz1FSUX3eNHdT88vGCJLWqa6dGfSr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.88.22.65:9999", + "registeredHeight": 1028375, + "lastPaidHeight": 2128002, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1496117, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvXhKERQZzmcGTysN84Tq6RuJpoa2dPgZa", + "votingAddress": "XvXhKERQZzmcGTysN84Tq6RuJpoa2dPgZa", + "payoutAddress": "XqEx3jQQFq53XqHJrys2L1CNLm84Mj8err", + "pubKeyOperator": "066dfca307bf25ae1211d9b3a6d679925fd1d92a926dd5ead240d56f5f5b0665de8c3951dc937ff69168dd6447b279da" + } + }, + { + "type": "Regular", + "proTxHash": "ab363e2cb53097499fc9c0bd730a6e4ff6d3013f052869cc9f978c129ac65de2", + "collateralHash": "6553f626a7380955dca4dd3d539594586de885f6d3ddfb68c150a492adb3e4bd", + "collateralIndex": 1, + "collateralAddress": "XpbzSYoVe1L6upmXGtuMy3ogtPerJLo9R3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.73.67:9999", + "registeredHeight": 1028385, + "lastPaidHeight": 2127599, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1725214, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XehwDnvTGv1yPiHfB5ZTiv9ec4FM6LEUbK", + "votingAddress": "XehwDnvTGv1yPiHfB5ZTiv9ec4FM6LEUbK", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "8fdcfbf79ba282ec7f172fbf8e66b52eb2f433964bafde92e89c3ce0972d5522c70658f91b78918f592c44f2a52c4a9e" + } + }, + { + "type": "Regular", + "proTxHash": "73d1f149ab826ac523e0363b7f77878fdd36ae59502b140b7cda618457808350", + "collateralHash": "882d6a3a24c8f56ad9e2ff03d1c467d3902189f976dc1a0c2a26dc3c217c7b6c", + "collateralIndex": 1, + "collateralAddress": "XpzSWU6whqC6L6Gmx1x36HDKE124ykoitX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.20.101.115:9999", + "registeredHeight": 1028388, + "lastPaidHeight": 2128483, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmBDJgugr9SyV93wvdJCyVmPweKpF6JJb7", + "votingAddress": "XmBDJgugr9SyV93wvdJCyVmPweKpF6JJb7", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "93c43ce5875255eb5ea922f3df479f3053f6c4a4927f4f365a8ef63718244a76f8eda9c14202363f5ab4c1a45548696f" + } + }, + { + "type": "Regular", + "proTxHash": "e59af9f5b45fbb1c365f8ab074062705711ea9c3a0c66e6dac7612850c43015d", + "collateralHash": "5eb2ce4f6c8ddf0c84a54826cce9207072d1b422fe1e32cddf591c7cc74a1750", + "collateralIndex": 1, + "collateralAddress": "Xkii6qKmiqC229oggR2RHrw9c7U5C3CCTx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.227.122.247:9999", + "registeredHeight": 1028388, + "lastPaidHeight": 2126007, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1874370, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu67wsaMN4fy8LXuubjpg1VZdaBrAya3SP", + "votingAddress": "Xu67wsaMN4fy8LXuubjpg1VZdaBrAya3SP", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "03568ec3f6aaa956d5846d3a4b94e713c26b1af733effb4a00c18d4a8498be891877f48f159e2df1d8e75368ff3107ee" + } + }, + { + "type": "Regular", + "proTxHash": "abdfdd443daee7fa10d2e635ec03e34b1fff57db847855fc80e08da9ae84df88", + "collateralHash": "000be8f5f64b7bf26029218f647af1ff16a25c0fc1747930a5ee4e03860ec581", + "collateralIndex": 1, + "collateralAddress": "Xsyw4nDP682YTgg7Bp426pGC3FhHZyMCna", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.234.147:9999", + "registeredHeight": 1028396, + "lastPaidHeight": 2126623, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120576, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqqoaw8MpJ4BN9sqvZbr893HDhBpMaAe57", + "votingAddress": "Xqqoaw8MpJ4BN9sqvZbr893HDhBpMaAe57", + "payoutAddress": "XiwYx9vPDsviVbARe9deBs9QFsgYZNAHrC", + "pubKeyOperator": "860413b84c02b5bfd97f44a2737dc4bd20404614d74e63da02d3dd91fd211d7c5b4ffc9caa23b277b53b96ec50bd7ff7" + } + }, + { + "type": "Regular", + "proTxHash": "23e6b8961e3f9df047ceb601bd9032c51cec45821e32a15ef8e7e056f0215601", + "collateralHash": "9aad4c10b182b57b45b2b558dbf7c7123507cb4c677c40835b802dad7d40bcd5", + "collateralIndex": 1, + "collateralAddress": "XwtjDE351G562UrCsEpqRebCbF194H8cKy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.82.108:9999", + "registeredHeight": 1028396, + "lastPaidHeight": 2127774, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976317, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQnC9ySr9V3rXs6tdVqabSBNiJqANuXWd", + "votingAddress": "XyQnC9ySr9V3rXs6tdVqabSBNiJqANuXWd", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "87c5fa8399499943a8053cc0abd333d7de887494abcf610a3bad844345745c639d4b649a6e28f1bf14f66dfeff361f97" + } + }, + { + "type": "Regular", + "proTxHash": "2465f2d56cb2e8ca5591420dd033fb45e8c2b7d0fb2d7cf3dc3dcdefa99f29bb", + "collateralHash": "04f0905b27ccb84b8d77e2d646a67eda345a211383cced8c7557e88c69652158", + "collateralIndex": 1, + "collateralAddress": "XrFAzve9sYy936Qivi3zeZddBa2eYFaPwn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.254.159:9999", + "registeredHeight": 1028398, + "lastPaidHeight": 2126624, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120576, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfDhRfyQ2Hc5a1mnH3QoWQdjULKfzadpR4", + "votingAddress": "XfDhRfyQ2Hc5a1mnH3QoWQdjULKfzadpR4", + "payoutAddress": "XiwYx9vPDsviVbARe9deBs9QFsgYZNAHrC", + "pubKeyOperator": "144a96bbf2a15ec13ed0b679951099cfaedde29a5ad8e568bbc5c08058d77af78fefeb041f4fd4f88a4c9de15ed3b89a" + } + }, + { + "type": "Regular", + "proTxHash": "8bea86c4bcaf5a3a43dfff5e4df3901bdf6aae75fcecb3b6e78ed918f8f1ff2e", + "collateralHash": "82317a265164d9981d89e3b46e47ac58d26244dd461abe6a80ac964e0dc75591", + "collateralIndex": 1, + "collateralAddress": "XhEGEcoQgAZHMhqNpBJkJHYzUZDWH5ie7N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.146.196:9999", + "registeredHeight": 1028423, + "lastPaidHeight": 2128781, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1980957, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjBfUwiU7bBFQZdMFtJ581LkFuc6M9JNFy", + "votingAddress": "XjBfUwiU7bBFQZdMFtJ581LkFuc6M9JNFy", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "1054b3cb64d47501632d239ed4d97d8a0f6a9485d6c46253b57989074544963ac6c38248c87f9b832517528b1cd15edd" + } + }, + { + "type": "Regular", + "proTxHash": "f48b7c45cc018c0ff4f4cb2c83a15db1c2bc9b6326240486e523645cecb0eff6", + "collateralHash": "04d545b8699764340ee65541cfc6148f36b3ab8b1718706a38093c6fb6f4ba9e", + "collateralIndex": 1, + "collateralAddress": "Xn8pjPHw9gQs95hJ6LzeiPjSZEbUDQv9Ua", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.198.104.135:9999", + "registeredHeight": 1028423, + "lastPaidHeight": 2127992, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1667682, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqvLC1YjU2D1bk3car1tzADgwFBvBNghmg", + "votingAddress": "XqvLC1YjU2D1bk3car1tzADgwFBvBNghmg", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "8a007d192694253167bb81f6befa7d6497de93865f727724d8de15324b28feb8384d3b382ad67aacea1b0898eec5cfd2" + } + }, + { + "type": "Regular", + "proTxHash": "8986f136c95d7629f0aefc985ffd84c5f18e07428401fb5ebdc288f18cf4c7d8", + "collateralHash": "563929a21a9fc2bf4ffdf2f28f19da40fedd3452edcea8d2f7b8d12804400f67", + "collateralIndex": 0, + "collateralAddress": "XbFHLgd5qmWdSZDGwcsro9xSjUVk9xPJXf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.203.203:9999", + "registeredHeight": 1028423, + "lastPaidHeight": 2126537, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1949327, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjCYqhqPJdiWrhmutMcmEbp9SbGjU8P4a5", + "votingAddress": "XjCYqhqPJdiWrhmutMcmEbp9SbGjU8P4a5", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "918ca940fbc37718a6243eb5e2d7f6f92bb68f2c8ea8fc02fda810c6b4ea56813008735d4c3331a7210b82706f1e044b" + } + }, + { + "type": "Regular", + "proTxHash": "9e8ecd117e722124e27e9afa92524202bb8f8b38d29f74d5fb80c236c7923586", + "collateralHash": "e890e847945a6d9475e01ed502c7e8256d560573d99307c41f8dc43d7d3667e0", + "collateralIndex": 1, + "collateralAddress": "Xn1fb9z1cQRKzq8RFsCnSxkjBzPDHi3hba", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.128:9999", + "registeredHeight": 1028426, + "lastPaidHeight": 2128698, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpwU4NsS3ZMS8DCcLgD7MqyLJAtWqWHimi", + "votingAddress": "XpwU4NsS3ZMS8DCcLgD7MqyLJAtWqWHimi", + "payoutAddress": "Xn1fb9z1cQRKzq8RFsCnSxkjBzPDHi3hba", + "pubKeyOperator": "88b5c294afddaf031a291fef7b536c3811a9b62a4d2ae3e4abe6d97bf2b4f0961d3b9e58c9bd944d2b4d2af726f0874e" + } + }, + { + "type": "Regular", + "proTxHash": "20d618f06375130b480cbdcdc6e3678c8a4fdfd2caabf5c85631826e85b7d3bc", + "collateralHash": "14fd21b334591e02b04fb9ab661aad754ae02365f006d5cf812fdd5294bf1db0", + "collateralIndex": 0, + "collateralAddress": "XxutseNXweihuCmm5jg1fjAUmJJyAUSaDs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.102.72:9999", + "registeredHeight": 1028441, + "lastPaidHeight": 2128892, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh2pNuoAE6pit78ZZbvLoqfU4hMfsjfbTv", + "votingAddress": "XgAxMPnmdSnq42ubqYH32NBbdMjRPRzN2H", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "146498df1effdc4028d4aaa0d0ce53ef3f205b940e1755f03e8e56be572264e62c2beda6cca69efe00ec3385bfd46a48" + } + }, + { + "type": "Regular", + "proTxHash": "daded9ac7ab44603018fc0f06ba359b1f8ea7d6f815a056f914b49714f057449", + "collateralHash": "ec307d10002e3dfdc987870041ac91ff28e9de5853867dcc60873e383da6a08b", + "collateralIndex": 1, + "collateralAddress": "XkwJ5PPoTQQNK5kWTQKmHUbwh4QDmizJ5b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.73:9999", + "registeredHeight": 1028463, + "lastPaidHeight": 2125762, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcMxLAUmGRLuuNe9ApVP92kQdgu1KtY59b", + "votingAddress": "XcMxLAUmGRLuuNe9ApVP92kQdgu1KtY59b", + "payoutAddress": "XkwJ5PPoTQQNK5kWTQKmHUbwh4QDmizJ5b", + "pubKeyOperator": "833a87a7f22d0e86c6d47c4a2a514609372c42a90c703a4f95e703d6cbbee918141e509de5e3a77b3ade3369f6c3cc0b" + } + }, + { + "type": "Regular", + "proTxHash": "1c359d8332b5738f6f88f5ad6aea76b94c333aab1141b75dbdcd28152551ada9", + "collateralHash": "08c4d2c614693d3fd06db20a34b43c6599172baca0a5fad9f94346f825c56830", + "collateralIndex": 0, + "collateralAddress": "XdwnJtbn9hAjMpKs9K4QZbJWDyAaTuggFD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.23.116:9999", + "registeredHeight": 1028470, + "lastPaidHeight": 2126988, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1892736, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuiRfBknNPTJyL2J8zhTLsfBuZLQn6K66G", + "votingAddress": "XuiRfBknNPTJyL2J8zhTLsfBuZLQn6K66G", + "payoutAddress": "Xekm7hxgnQED4bMt37a96f3AdKFmMQbhJq", + "pubKeyOperator": "118dbcd6639452652c1a10e618c2432d709e7d055c6234be02e144d9904df36af1163dd13acd6ca8f694427d9d1ff436" + } + }, + { + "type": "Regular", + "proTxHash": "d3a2b9417d2130f4a14fb09546c78f7d130923025a5b88c4219ec312f9b69b6b", + "collateralHash": "0215860c8dff64e85cec3c3707136216b08f34330e426cca43dc41530ead9eae", + "collateralIndex": 1, + "collateralAddress": "XpfynApXfcEStRW4JPAwJUxP7bbMymtBcF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.111:9999", + "registeredHeight": 1028480, + "lastPaidHeight": 2127238, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975742, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtpR4GGZgpV8FunRqjFsUSSdtp87koNgRv", + "votingAddress": "XtpR4GGZgpV8FunRqjFsUSSdtp87koNgRv", + "payoutAddress": "XxbvtdARL7s4Mj2xoG4tWsqpiHGxCegJPM", + "pubKeyOperator": "8c120589e88547cacde9bcbc81d3cdd328aa3a6dfe99376ca7ce958faa5ecc39da21b79c72750a14d20f9f0950a814e2" + } + }, + { + "type": "Regular", + "proTxHash": "6bd7bebca8469ca992bc5093646dd61269c3f27debfd20b0a134cfd35e0d9976", + "collateralHash": "e0d479204781f63ef495749d8363cc0f5e8575fc3a82061d38a092111217b768", + "collateralIndex": 1, + "collateralAddress": "XsVfLB3FAZyJfy2W1jt1GPGzWfqWanS8FU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.207:9999", + "registeredHeight": 1028480, + "lastPaidHeight": 2125877, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuLF6oCQYVPMnbjvbx6x8vgaWHXk6vsuaK", + "votingAddress": "XuLF6oCQYVPMnbjvbx6x8vgaWHXk6vsuaK", + "payoutAddress": "XcMYmAG4VfrYDxq6sKsZvFZxGFJzgvUjmB", + "pubKeyOperator": "0139176c8f1f195ca77284dfc7a5313717c4beb6aec5001f4cf804a05b8d9e391556d93f447325d40b2bb8e536d61f9b" + } + }, + { + "type": "Regular", + "proTxHash": "86147b250d902d4e120e02dbde0caac254de64c2b5fb3fee41dcf175b58e0745", + "collateralHash": "121e9fe94f15e06f05d84c5fabc993bd2220d88f1e9935bc7188ab906d5de81f", + "collateralIndex": 1, + "collateralAddress": "Xc1EfBi2LgiwLPWSBzpQGXdJH3dREJ8MYy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.235.170:9999", + "registeredHeight": 1028503, + "lastPaidHeight": 2125954, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkjt8NWhye8Ucm93W7MVWEn6mvr5wxBcSc", + "votingAddress": "Xkjt8NWhye8Ucm93W7MVWEn6mvr5wxBcSc", + "payoutAddress": "Xc1EfBi2LgiwLPWSBzpQGXdJH3dREJ8MYy", + "pubKeyOperator": "83d6a79d6a5d006cac96816b47e17d473350537e1736fda22798bd7a3dcbd51ff2cb315c7517450b3a9a795057e07362" + } + }, + { + "type": "Regular", + "proTxHash": "9661cea56646843ddedf8cc0d99337877bb5456fe6d59a47ee51ecce9a51f01c", + "collateralHash": "0d56971a64356d25dc36043e4f572e302f7153f27ff0abde2004182663b41889", + "collateralIndex": 0, + "collateralAddress": "Xhvnyo9cgx7C5t4LLETeiVnjGaUrqfDbxL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.106.130:9999", + "registeredHeight": 1028503, + "lastPaidHeight": 2125950, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxfSRvEyH9CrVxJvdr8vEiereCPD1Sjzua", + "votingAddress": "XxfSRvEyH9CrVxJvdr8vEiereCPD1Sjzua", + "payoutAddress": "Xr5ykJuVXM1voLXjmEH8WrxeyXvzHoTeci", + "pubKeyOperator": "03d85dd2c2b6f5cd282faea6aac7b1e7b4a18f81fa5e0c42fa6ea9cbc4d3c2a504261961c83bef688bb7d13e0934a32f" + } + }, + { + "type": "Regular", + "proTxHash": "c1d0788e79377da74abe477c7e5b391a641a3d6af4e7f14e183be4f5660ca36e", + "collateralHash": "53d692372673528b14b423af7a2f5ed3c7108e65a5d4ecc9d484e4904405f1cb", + "collateralIndex": 1, + "collateralAddress": "Xf8HsUhRshn1iboog7XrbA9gPhupT3M35m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.163.76:9999", + "registeredHeight": 1028512, + "lastPaidHeight": 2125965, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoEzsso9T8CJzNTsgwKAg6YQyKdf3udP6L", + "votingAddress": "XoEzsso9T8CJzNTsgwKAg6YQyKdf3udP6L", + "payoutAddress": "XxFb6SbgHpYob5xfoFbueXPF4mwEFRxxVn", + "pubKeyOperator": "92aadbcec7b7e611977020cb7592e47d971379e364b524c2a36389930bbd88fe532d5c22cb9811a5cfb793e0075302fd" + } + }, + { + "type": "Regular", + "proTxHash": "4a918d9f1d0f81a7b52a36ef83b4e402b32ea35717d63ad173599e6600bda407", + "collateralHash": "1cad5e438a2bfa9667a4abfd800b5639d19bc6a11eb7cda1aaa5525e072cd0d8", + "collateralIndex": 1, + "collateralAddress": "XnBSi9o7bQPpsavtEFPCBx9ZNRf8TKJjS3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.45:9999", + "registeredHeight": 1028515, + "lastPaidHeight": 2125967, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxdvHmccaWXw252Suv2oGGYVU4accorpf7", + "votingAddress": "XxdvHmccaWXw252Suv2oGGYVU4accorpf7", + "payoutAddress": "Xyc5F4oCUF3o9D3gKVKCB7qTyAHpMKznL4", + "pubKeyOperator": "0fae7a82deb2f9e95adef3df9b56244119fe73eb694d01a0003d8d310ac17df3d8eb1d106aec9d3be432d6942f1f850c" + } + }, + { + "type": "Regular", + "proTxHash": "6be8ac01a06ec2c93d303b44413ce01ba05e6c14363ed6c4a443a6ba6d82475d", + "collateralHash": "a8895923ff22bb1ee2bc91231ebf34304f7e35058782871efabf98ddd1835bad", + "collateralIndex": 1, + "collateralAddress": "Xob9Aa84a87NN2YmnEPZ7Lpn9VjzHdHyUF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.150.129:9999", + "registeredHeight": 1028519, + "lastPaidHeight": 2126001, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnfUPYrhZeCJj6UjaTKFDuET99kayk3BL1", + "votingAddress": "XnfUPYrhZeCJj6UjaTKFDuET99kayk3BL1", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "84222ab9a2d1fb45ae405f161578968fd0c4835abe46de830abcde7f93bc3b6cf968c2f4c3f438859810f3e8e35c5e9a" + } + }, + { + "type": "Regular", + "proTxHash": "d9cbb6a771f959595df9c57f87eed9040107f4a5df4658ef3c9ebd2cea90c1f2", + "collateralHash": "49d78ca9ebc5e37ee545850ee4567460e31335050a9baef647fac907232500ae", + "collateralIndex": 0, + "collateralAddress": "XhbVfWrXsEDDUjorh5ridx54e5QCwqGfpC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.210.143:9999", + "registeredHeight": 1028519, + "lastPaidHeight": 2128485, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987561, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw27oB5oStpjkFP6RWfMGSqAEkzuw1pgrZ", + "votingAddress": "Xw27oB5oStpjkFP6RWfMGSqAEkzuw1pgrZ", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "017c7ab255c609cb80029e883775095658cc97919f8cb20666c475154096d0ab68f5029859e10c0722b7b687ecd27273" + } + }, + { + "type": "Regular", + "proTxHash": "25f1cfe6539322347021fc8c223dc635b2ecaed11b1070dcb484a42b72f1615a", + "collateralHash": "7c1f3a0f7d1b52c699b9348094dde4090f40f5f4357fc28b30a116d5cdbb4ba6", + "collateralIndex": 0, + "collateralAddress": "XwM2EjEgPnQVjkRUqjKUniKJPnqa9oXYGA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.198.22:9999", + "registeredHeight": 1028520, + "lastPaidHeight": 2126970, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114630, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpr3qDA9pdyiMYb4ubYtq2EwG7byQYJZ4d", + "votingAddress": "Xpr3qDA9pdyiMYb4ubYtq2EwG7byQYJZ4d", + "payoutAddress": "Xy54EQCzHLuUzUTwWUVYUAAan93dcdiZcp", + "pubKeyOperator": "11dff5b9236fdda7b03b90f2498a4094e855c835f6d9461bcdd17d0a702f70c2a40f688e8259733353192499d2d22c86" + } + }, + { + "type": "Regular", + "proTxHash": "85feae74e6d3a147179e05d966e19b2bd14780193f8bb5cf2a2dd48c3ffbc6e2", + "collateralHash": "60fe151cce93b010692158c6d28d3743e24e0a443f9e599c8488b1f571aa975c", + "collateralIndex": 1, + "collateralAddress": "XgVALzurpc3LKwU95kA8bf2s7MreT4wP6t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.58.97:9999", + "registeredHeight": 1028520, + "lastPaidHeight": 2128598, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007704, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnGiXqSW7EBW6M7DYyyLPt1sUuDbKZEJXV", + "votingAddress": "XnGiXqSW7EBW6M7DYyyLPt1sUuDbKZEJXV", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "05ac3e0e26eb52d86f1f033026689a39639ee24d4cc1737f66a5aa9b57d4c9216136475d93204b3e4189ffd733921881" + } + }, + { + "type": "Regular", + "proTxHash": "340b0689d93754ec030a2a609ae2b17412958860c3098c9677845f946e0c231c", + "collateralHash": "4f04d588ff6663bc39657fe60bc6a8ff89781a2f147e9f08d6ca10f9fce0f64d", + "collateralIndex": 0, + "collateralAddress": "Xb76T2VDH5X2E3rVZzyo9QoeqacmM7jW3k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "62.77.158.109:9999", + "registeredHeight": 1028522, + "lastPaidHeight": 2128803, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977462, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxz2MeSLQWwyA6svbF1mHoqfBTgKe9Paqz", + "votingAddress": "Xxz2MeSLQWwyA6svbF1mHoqfBTgKe9Paqz", + "payoutAddress": "Xb76T2VDH5X2E3rVZzyo9QoeqacmM7jW3k", + "pubKeyOperator": "91acac9cfe17c21769742ccd1dd3ef72e22b287cf4d4982abf956cc314cf34839f424fb5a8e48caa98731f581ead5b3c" + } + }, + { + "type": "Regular", + "proTxHash": "9e14664ea5bbc80a2d4de0c494e9453a5b4f7c1fd5a67d0f8fb9daf3cc328c1d", + "collateralHash": "73725719ba62f73997076b08539db5f590a57b7f8f82039e2df8d89c15c53a29", + "collateralIndex": 1, + "collateralAddress": "XbMAKCcSZDULEU9M2dkb4jeLBB1pgFhvvC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.3:9999", + "registeredHeight": 1028530, + "lastPaidHeight": 2126697, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1776002, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsmdtJyZWwwPhm2UbnQ7sNLPXR7ByuDeuX", + "votingAddress": "XsmdtJyZWwwPhm2UbnQ7sNLPXR7ByuDeuX", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "85b29951c7b78191e7361494b579188e02c02f80109baf06ba140249c331c28123e67ba122b44a5c7082316ae9e0aaaf" + } + }, + { + "type": "Regular", + "proTxHash": "32d120a25e4d202cbe824312a4f60e1779438d79ff297780b6f5c942cdab501b", + "collateralHash": "92a2a6ac4495875728d7f1b8d7538aafba352c0a9d671caed860ea027095e7b1", + "collateralIndex": 0, + "collateralAddress": "Xqfjoimin7AB29Akx1xBG88tG3TnBcN6Gr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.3:9999", + "registeredHeight": 1028548, + "lastPaidHeight": 2128233, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976861, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtvC6cM57oPuN545atBacRan1XwTdFJtpz", + "votingAddress": "XtvC6cM57oPuN545atBacRan1XwTdFJtpz", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "835bfe604b2e633573e97f8717051aec81eea1445c6a671de0a11a7030cd359007a5de28877ba8ab88ca62b2eb372726" + } + }, + { + "type": "Regular", + "proTxHash": "ff00b58e4b281f41d6d87df335ab8e632177c3c2ec57c6e4e0d7f248e0bb9f51", + "collateralHash": "68875dd61e51922576e303b845b7995fb80f93bcf8abb503b36b3e9d54cf475a", + "collateralIndex": 0, + "collateralAddress": "XmnHevqrxpBBb8iLHyj3Et2gcdk7xFALh3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.5:9999", + "registeredHeight": 1028548, + "lastPaidHeight": 2126352, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiTtiSE1x3ufhDNTkEsu4UJRVd127NXm4W", + "votingAddress": "XiTtiSE1x3ufhDNTkEsu4UJRVd127NXm4W", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "95715cd801a40df05a5a09e769b2f0c7268639eda22d99691c466d3d6bb4ae60a89e04a0f5d56c3a145007c41b520033" + } + }, + { + "type": "Regular", + "proTxHash": "0cdc857aaabb3c4652b274727764c5a4545515f732de096cd78605d314e1679c", + "collateralHash": "296bf0af288211f9a803f8ce3e1c0f188158ff204ead3c4c05ac9770ba7904e3", + "collateralIndex": 0, + "collateralAddress": "Xqbi4gn5YZJ6fD25LY7CpWbKuJWdayCjqP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "62.77.155.26:9999", + "registeredHeight": 1028548, + "lastPaidHeight": 2126354, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcGmQijkcU2MEYpt9oLm3Yne6v1Ad1R3s8", + "votingAddress": "XcGmQijkcU2MEYpt9oLm3Yne6v1Ad1R3s8", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "1096dcd0d7678f2fcf94ac87b3d535849d607fa2042b066c97303e81f3adb3a9fa660b26d1b993a319e28802aef1b895" + } + }, + { + "type": "Regular", + "proTxHash": "a991c6992a48cbaf7663fe3729a0b027898a2d37f8495ab591b6343a6791d2e6", + "collateralHash": "1bcd3aef8c92dd1e22890445aad2480f14542f6fce818eeadc909734ea6e2ecc", + "collateralIndex": 0, + "collateralAddress": "XazryiGxpxkDK1npgWeapooYnEi5GDuEU9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.113.85:9999", + "registeredHeight": 1028553, + "lastPaidHeight": 2126972, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114632, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpT6f9sfaa8UqC6HxFheAGsSUc2V8hB1MS", + "votingAddress": "XpT6f9sfaa8UqC6HxFheAGsSUc2V8hB1MS", + "payoutAddress": "Xby2sZ9yBPD8WkyoebjtgTLCj5qhsTQJPp", + "pubKeyOperator": "82f028672d3def392c8d983a1f27166cd22e3aa8be11cee7640f1ab6e64ed036b1bbe34dfb1651be1e6128ce5edecd73" + } + }, + { + "type": "Regular", + "proTxHash": "2f9b93aff5c3a58a0ac27b8e3378d859f3668392c622417cc59d35cd5e8b1753", + "collateralHash": "221f57c0f821b5bae3e315195159c7f16ca5db14d66b6a5a19210894b7e89494", + "collateralIndex": 1, + "collateralAddress": "XxJAA3L1ygjBHkTG973iWpuxZxMFb73PWq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.58.33.88:9999", + "registeredHeight": 1028558, + "lastPaidHeight": 2126398, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh42NpXJKXvU1pAqzGu5yinb9DxWencYDE", + "votingAddress": "Xh42NpXJKXvU1pAqzGu5yinb9DxWencYDE", + "payoutAddress": "XmPayW3w9vnuZ4baHZgP8amKv9TAPUqAc7", + "pubKeyOperator": "0de0ef0a751ec1963e95c42d595003a5dccc0fd9a4c7ba136f2d72f64a6b958b703a749524fb9b01cb0048f3879d4899" + } + }, + { + "type": "Regular", + "proTxHash": "1b44955af0f274388a6c69ca260521ac6f6076dc9c2033a50143f945336d0634", + "collateralHash": "0fff848da0fee2eadeaf84818c1a4c0653919633636a69e079e3272bdef898f0", + "collateralIndex": 0, + "collateralAddress": "XpZzP7aXu9tS41ickE4uFK3cn6b8LAWu7o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.206.43:9999", + "registeredHeight": 1028561, + "lastPaidHeight": 2126973, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114633, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwrf6HE3UbLLzwHbaqNwDMovXZBmmdbJw6", + "votingAddress": "Xwrf6HE3UbLLzwHbaqNwDMovXZBmmdbJw6", + "payoutAddress": "XswF4vzJ8nQV9tEcLHkknpGWQ2d22W3fWP", + "pubKeyOperator": "0396f9ebb9a42a6af2a5d0f422ea29511c0098a685fe5031b202803d886e54ecd3ad7d0da79faa10a0c56c33cd8d1668" + } + }, + { + "type": "Regular", + "proTxHash": "09615521fa04a2c5c2bc16cc3421c7da1ac92774ed0bf2ee00ec13a79aa76606", + "collateralHash": "9a1557e46b0451e9fdd9a57d40ba4703b22f3526c1e664f20a9d56bae96ef9de", + "collateralIndex": 1, + "collateralAddress": "XahMtUBJsyswuzpEsBTJbfCbC4CSFuiokF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.107:9999", + "registeredHeight": 1028568, + "lastPaidHeight": 2126434, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYfx4Qw4dsG6D6pcfSe6mW2uxMAYx7VCt", + "votingAddress": "XuYfx4Qw4dsG6D6pcfSe6mW2uxMAYx7VCt", + "payoutAddress": "XahMtUBJsyswuzpEsBTJbfCbC4CSFuiokF", + "pubKeyOperator": "19d3d2acd66d363faa6429e5ea3d050212e2e52ee443fc13dd0e2b069b37d099cfc5de8afb3f5d3cf1ea25fc78cf78c1" + } + }, + { + "type": "Regular", + "proTxHash": "62aeca86982ebc2e39a4555431a1af6cbfd20adbdc5a7241283074826b282c4e", + "collateralHash": "08a18348a66a9b2d0069a84243ad08c6d55993eba69c1e35d48f06b0837c4460", + "collateralIndex": 1, + "collateralAddress": "XoG9YVdrnzkYYxp5vre5pDzqxRfKPAQwbJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "152.53.3.166:9999", + "registeredHeight": 1028578, + "lastPaidHeight": 2126319, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2062712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgD8SkfLjiVofJ1qy2QfU1N9xooGjmhMP7", + "votingAddress": "XgD8SkfLjiVofJ1qy2QfU1N9xooGjmhMP7", + "payoutAddress": "XmPayW3w9vnuZ4baHZgP8amKv9TAPUqAc7", + "pubKeyOperator": "8f9031be564284d5680e840e0dca4fa1afb5d7e88fe864a7d17d845cbdc7495e92baa52c990f81f7d4c43c9980475982" + } + }, + { + "type": "Regular", + "proTxHash": "ea1ae51fc6edcc97218c2e62fae93c52f6aeb163dc65a630d62cb9a7b142c22e", + "collateralHash": "3d05ed2c942f328306996c12fed0e98ae7e31939ed50fd6407b80f4df8bcd7df", + "collateralIndex": 1, + "collateralAddress": "XxzMwqgSHHCL7Mj6WTsgLxT69tS5p58rk4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.225.91:9999", + "registeredHeight": 1028584, + "lastPaidHeight": 2126670, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmkaHoiXC7ebd9Gn6WDXwWJSuhsSvkDNrc", + "votingAddress": "XmkaHoiXC7ebd9Gn6WDXwWJSuhsSvkDNrc", + "payoutAddress": "XmPayW3w9vnuZ4baHZgP8amKv9TAPUqAc7", + "pubKeyOperator": "891316d5b60aff94028d8459bf1f2a44f434f9788a3757706c8de8b4014af05e4621bdf09f0ea2635415c72e35aefa3d" + } + }, + { + "type": "Regular", + "proTxHash": "39b4552615512ae55ae12e682d5e91aea4c41eda6fc5d82e8ff4504c8ac23ef1", + "collateralHash": "33a8558a1cb1b92f9f37fa7a9b85eb596c600ae69de3c3941ab91d4db0687b95", + "collateralIndex": 1, + "collateralAddress": "XxEUB2UUa2PoNepWFVy76bJLEVGPKy8MxQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.202.222:9999", + "registeredHeight": 1028584, + "lastPaidHeight": 2127492, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1872504, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrzQdmSbbD2rMPZwmgRt4Y6jB9TNJA2qiA", + "votingAddress": "XrzQdmSbbD2rMPZwmgRt4Y6jB9TNJA2qiA", + "payoutAddress": "XmPayW3w9vnuZ4baHZgP8amKv9TAPUqAc7", + "pubKeyOperator": "15cad8b86ce3e416e97c18945ef90202e4fb249c657d1e810d1500791b3660036f2ae9ea6bcbd4fb533bb23bcba09f07" + } + }, + { + "type": "Regular", + "proTxHash": "8ecfae740a7f2ddd5ce4b4b3d772942887f6dccface3719a5b653b9f590ae525", + "collateralHash": "7d9e1211ee4f8a674857a60bc74c861f95c3fd5c66da4bb2456faabb78509315", + "collateralIndex": 0, + "collateralAddress": "XkKhYptvt2wkEmqf8CyUUfivr9Fmgn5yZT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.36.241:9999", + "registeredHeight": 1028615, + "lastPaidHeight": 2126719, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120669, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrk8WMRcVcou1szYKuZgDXxuo8D3rabPAm", + "votingAddress": "Xrk8WMRcVcou1szYKuZgDXxuo8D3rabPAm", + "payoutAddress": "XkKhYptvt2wkEmqf8CyUUfivr9Fmgn5yZT", + "pubKeyOperator": "8d84c2ee7b2b3053a7ac9da9db0f8bdf6c74d1d1f3374bab8e4efd0a1bbe4abaac040a47dfc9e954ea53a8e115ce748c" + } + }, + { + "type": "Regular", + "proTxHash": "ac0d77c6bdeebdc05f6dac11253baf5d504f7df637ead36f172e3b9d2f558db0", + "collateralHash": "5994ddb4231365e841bff6574f1d396dd6ae840f229c6b6f2bc277e853e7a4fa", + "collateralIndex": 1, + "collateralAddress": "XnTQViNhUwibRybX3EkFfEivTFpwd4kRqP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.207:9999", + "registeredHeight": 1028619, + "lastPaidHeight": 2126822, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2093804, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XymGzFFUcjGsXsoHXXT2fBswHF5j41RE1R", + "votingAddress": "XymGzFFUcjGsXsoHXXT2fBswHF5j41RE1R", + "payoutAddress": "XuCxEXt2eUJ1mtWGzm2bpHu7BywcFEpQKL", + "pubKeyOperator": "8e2093d9cbd082705ea17d1062dcb4f457c1914260ce5898842fd072c26ca9c868e2f8127d5d7ef7ac06ab168b89d912" + } + }, + { + "type": "Regular", + "proTxHash": "5fbe5b453bc240d5889a572910dbe6b9ca25cb418c02648c9afe5419f5d9c5f8", + "collateralHash": "b2db355a5652e1dbc8ad2dc0f5d8d0e3c440039166dbc553dc82969f320b05b9", + "collateralIndex": 1, + "collateralAddress": "XepaNrVc1xtXmaksvDJXMcag8H8XjiT7Qc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.8.95:9999", + "registeredHeight": 1028621, + "lastPaidHeight": 2126911, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190391, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaovPGc4pXX6kHfoaaqwcywgPWsQj8WiRM", + "votingAddress": "Xt9h2QKGeKJsDessH2myrbF89Kcy7KR2pg", + "payoutAddress": "Xwobeghjv26FVW4GB2seGkELkStj3AxePT", + "pubKeyOperator": "195f739639909ab3442965065f1a1fe189f3fe9f10d50408a2785e356ab7b2f6120600cc6ed3179f7f5d27b1703461c2" + } + }, + { + "type": "Regular", + "proTxHash": "5cdfcfd741502e7230df5c1d4dca352d3dad4111bc2e91548ee361bb1ad3754e", + "collateralHash": "d80956dc306fbaaac2565ccdddbd65fd16cb9da8d90156bc780e2b564f785bac", + "collateralIndex": 0, + "collateralAddress": "XjDrfZWizS4tPVbGgn1geWngwU6gZTzoip", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.33.84:9999", + "registeredHeight": 1028622, + "lastPaidHeight": 2126720, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120669, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiJMzkyoZbNV6PVPh6K2q1ANfEj8e4bUWT", + "votingAddress": "XiJMzkyoZbNV6PVPh6K2q1ANfEj8e4bUWT", + "payoutAddress": "XjDrfZWizS4tPVbGgn1geWngwU6gZTzoip", + "pubKeyOperator": "81041d5c61339bca6fc592980103720bc8e0ee1f186589545e22acc255ef48100910aeb4991d7a550c9869b79936776c" + } + }, + { + "type": "Regular", + "proTxHash": "a665dc86baa4fb4a21c3027bc96076d98ac90c5c8f31b7cf954d3d143f9fc1e4", + "collateralHash": "58c41bc5dc8855ebbe6016b77ed4d5b69545897a2955c490647f62d94a06260e", + "collateralIndex": 1, + "collateralAddress": "XvhxJ5f2A3E5ko7XiDRaSVXDwxzb8gDNp6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.28:9999", + "registeredHeight": 1028632, + "lastPaidHeight": 2126924, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeVRpgEaNACL8MqrP7wXhFfBHEVFGwirrr", + "votingAddress": "XeVRpgEaNACL8MqrP7wXhFfBHEVFGwirrr", + "payoutAddress": "XuCxEXt2eUJ1mtWGzm2bpHu7BywcFEpQKL", + "pubKeyOperator": "902f6767a0b069c892b182802bd2a49d351effb615df49786374b68b278c4607722d07900bbdaa7e0776eee7024461f1" + } + }, + { + "type": "Regular", + "proTxHash": "b7919fba8085a30cec91df19ae59a5bd7c398132c2b4f9057e699b8ea1623162", + "collateralHash": "6f3c60e05bd1702fa18a6d73904b34952ebee6e01a2d2b297fa77126b980c7c9", + "collateralIndex": 1, + "collateralAddress": "XwdQs9jreMgZRY82GkhpD7qSVBuSY39SkL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.39.142:9999", + "registeredHeight": 1028636, + "lastPaidHeight": 2126936, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbGJjirZFwEcZbKBer4n9JC5PWajWqb3vZ", + "votingAddress": "XbGJjirZFwEcZbKBer4n9JC5PWajWqb3vZ", + "payoutAddress": "Xg2teJKknWpjsC3csmcHofViWQZodRDQun", + "pubKeyOperator": "0747c6caca6ca007a52231e7747938cf60e6b49f00e2cfc8b222883b7c86304474add2748b1cce7d9fb1a49ada8a4fdc" + } + }, + { + "type": "Regular", + "proTxHash": "4797d8f141b4da04768f17610a10fc19fe135d14a39af67fe2c39029e9bd4982", + "collateralHash": "83afa3cbcfd418225a0280f00aa17ebe62e51176d43f9706c7499db8581351db", + "collateralIndex": 1, + "collateralAddress": "XhZXCo2NUduM9hDx62qbDkcfAuMVwDn5Kd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.21:9999", + "registeredHeight": 1028636, + "lastPaidHeight": 2126945, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe12Qvq36K9wo9oh3iLzsLQXKAX1UFeX9Q", + "votingAddress": "Xe12Qvq36K9wo9oh3iLzsLQXKAX1UFeX9Q", + "payoutAddress": "XuCxEXt2eUJ1mtWGzm2bpHu7BywcFEpQKL", + "pubKeyOperator": "15a3705fca8ac9bd074a25e0fc09fe5c9ba31aa6a0e46e8e4254a1549f0fa3a91fc566df1ea071d16d3141792feeb07f" + } + }, + { + "type": "Regular", + "proTxHash": "b49365a75a33ad7f662a66a9c4daed67aed5480272587439b1292c959a436935", + "collateralHash": "aab420bde9b2a0e6054814d36ec2e83dc987f9c00acb44a58712f1574bd15c84", + "collateralIndex": 1, + "collateralAddress": "XoAhm8tavyoU1JzvMEBUY1CkY2GtukqPRm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.92.160.130:9999", + "registeredHeight": 1028639, + "lastPaidHeight": 2128794, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977451, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xav7uEYXje46d5aLdhjrXnJQ4ragaJJjTb", + "votingAddress": "Xav7uEYXje46d5aLdhjrXnJQ4ragaJJjTb", + "payoutAddress": "XnoDiL7XPNXYkW8cmj9MwGm3gZ6uNHjgS7", + "pubKeyOperator": "0a5b0c62d8550ced8e2d876c6b123dc358a3de5eb5f4effb69afcc20c5f6015fca99054457e248972fe3662afb80ec9c" + } + }, + { + "type": "Regular", + "proTxHash": "58ab0246cb3019e7edbba696c5a254e2af1d9d88f6e996d12a8cda0c30fc869a", + "collateralHash": "528f26d36b9b8315b7e83adba1e029613a0e6bd1a488759078cde572f1403c46", + "collateralIndex": 1, + "collateralAddress": "XsTSDoXuVxGsWiQWQptqF8R2XzJ25GTzg8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.65.68:9999", + "registeredHeight": 1028643, + "lastPaidHeight": 2127071, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190633, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfZSscz5R6vGH46eVyJ75YdYtayfdY3fxU", + "votingAddress": "XdWDo2JL65hvLvDbPx3yRYWp2hEH5Xufuj", + "payoutAddress": "XcBpJyKZGx347w3h1PbTACGNaw7yuZZ7Zn", + "pubKeyOperator": "980851dab0ec93f06bf3bab4c265da57624d22d2035f5f2aed317af367471b6b1adab594d4fd63c171d2d02e748c9930" + } + }, + { + "type": "Regular", + "proTxHash": "631a5e99e59bab2bf06e4ec9874b3c3ced59187dc724c689ffa0fe99f2d3f210", + "collateralHash": "e1b5e68a44fb2e5c702f7e62b6826b667ed6c016cd3aa82ea096e43fe673955b", + "collateralIndex": 1, + "collateralAddress": "XfmbA5sQuyA1nrmyzTd2zLt8AHBb2JY2y3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.213:9999", + "registeredHeight": 1028646, + "lastPaidHeight": 2126204, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1582831, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhrvPSw1pNRnYymGcMLUz55dMqktV5V8dj", + "votingAddress": "XhrvPSw1pNRnYymGcMLUz55dMqktV5V8dj", + "payoutAddress": "Xir7MaW1TBUxA7DufKA6VUF1FhCp5HLW2g", + "pubKeyOperator": "0db0e782170cd410e7968d78f31d5fdf92d7eebf3624b30e6f69f8a84907d68a1020081c4218a42e618a1bd85e768326" + } + }, + { + "type": "Regular", + "proTxHash": "c8d076cdc5c037136eabc0cb2d71691fcb70e9e4dbcdbe0fe64903b99bd04935", + "collateralHash": "1e05b49f2e516a5aa45de554bd6e880a09642ec5d3aa4251f790d50879b15b7c", + "collateralIndex": 1, + "collateralAddress": "XiDcmrdsNDqctAgDwuKNgBcKnKbJZ16HFm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.203.249:9999", + "registeredHeight": 1028649, + "lastPaidHeight": 2127972, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1886671, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkBZLWypr9X5TY5wP3ksPtdCNxdVUBax7E", + "votingAddress": "XkBZLWypr9X5TY5wP3ksPtdCNxdVUBax7E", + "payoutAddress": "XeVew1oNJYevGH8zuBbpHkia4QCZCdHvhr", + "pubKeyOperator": "8309e90bbd4ec2363f9990c42707e05d45a0faa5f8e80e0f854e5c81bf18ea1e0fe00133e2cdf430634c1596cbdc6ad9" + } + }, + { + "type": "Regular", + "proTxHash": "4f6a4d8c144bee691a82b7251c061301d6dc58a5ea12d4c26bf40229cc12a89c", + "collateralHash": "b1dd9a43dabcec6c8aadee2871d4a3b8d63cabb327bc252c2fb4ba8c64054eb3", + "collateralIndex": 0, + "collateralAddress": "Xz2Drw7Z3ipg64HLPsymXbmhaWc4fNzfWM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.94:9999", + "registeredHeight": 1028649, + "lastPaidHeight": 2127802, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976334, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp8VZQPtJkxHnYBmkt85NWwjKHLvWJKbx9", + "votingAddress": "Xp8VZQPtJkxHnYBmkt85NWwjKHLvWJKbx9", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "0a7f1103715af39799693715a29e4f66b1e9d91b84a5590af9e33c9717d6a1e7aafa3bbaf80f558345123901c5d7f6ef" + } + }, + { + "type": "Regular", + "proTxHash": "12ec28c86dccccbf7d5ffe2116a090eb5f238d487b76af684f1dafe8c1d04a85", + "collateralHash": "50da67acdf7c45957ffa2db984a78404506fdcc08850c46aef9b615801f71133", + "collateralIndex": 1, + "collateralAddress": "XmcTgQENPzrAYsecxxmNVj6X6Ty8WnB4ij", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.21:9999", + "registeredHeight": 1028650, + "lastPaidHeight": 2127115, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoKfF6C9Qbi899uCZehZcaWNJsKLpazRRm", + "votingAddress": "XoKfF6C9Qbi899uCZehZcaWNJsKLpazRRm", + "payoutAddress": "Xir7MaW1TBUxA7DufKA6VUF1FhCp5HLW2g", + "pubKeyOperator": "17e39d0d0d0ce95e48f8c2fb7cb7aa88e59062ba4c51d8c3b01d593cea0d22f4f5146d0c8ca9a31b9cb887d0539d35e0" + } + }, + { + "type": "Regular", + "proTxHash": "331bc8bd4e6dfe3de27c72df7271dc449e97bff6c0190fe9e30b3318cf426ce8", + "collateralHash": "5dd3535931bf0484f8373d31c919cab53066314b41dec16bfe07658ba4715816", + "collateralIndex": 1, + "collateralAddress": "XiK19BUfGVKdgoP5oW6eM1K3rC3fp7TPQC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.241.133:9999", + "registeredHeight": 1028650, + "lastPaidHeight": 2127118, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpeYTY61t8sC6LCsFdif4nnVRBbaLMCaZB", + "votingAddress": "XpeYTY61t8sC6LCsFdif4nnVRBbaLMCaZB", + "payoutAddress": "XtyhNx2mSARHN7TUFqNm48BoqD1FKTF8MB", + "pubKeyOperator": "89c4e707d2c2ed3f2796b8de0977c71871d485f2809401872267441b6cf8670da7210988cf14cbc66579e4cd44204e7c" + } + }, + { + "type": "Regular", + "proTxHash": "f494efe97df769ea9863700cc8cfe625d19519168a245dc0b72dc02b41c2de2d", + "collateralHash": "5263427ed8aca641ccbe98b7ae339ab7f625bf0fad86ca1ad9d87263f6e8d516", + "collateralIndex": 0, + "collateralAddress": "Xe9SDWf89zCsW4U9HkjNqUPGMmRgDCrJkq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.1:9999", + "registeredHeight": 1028651, + "lastPaidHeight": 2127578, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036577, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmhkxRgrUNGfDetdrbJ2LmTosLATjzbaLD", + "votingAddress": "XmhkxRgrUNGfDetdrbJ2LmTosLATjzbaLD", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "8159c2b4af66d035fa194b42fe48c33ae384606a22b217f74fbcb837caedeae27faacb1cbc049a1fcaf75bbbdb1e170a" + } + }, + { + "type": "Regular", + "proTxHash": "0911a5921394b1e8ab07cbbaeb5500ca25008c50cba4dfcde41e39c33c838d25", + "collateralHash": "3ee24b1e4d378757d55de023fa3956c3ecf4199b769d7f4f0c9dbc25ca6f2ebc", + "collateralIndex": 0, + "collateralAddress": "Xwm4hPHTg3tRRTgB6jB5RgDBRCTdqQNgKQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.8:9999", + "registeredHeight": 1028652, + "lastPaidHeight": 2125844, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1639048, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiL5xSJq8EPM4FdkWxCHXNXCLUHhyyJdTY", + "votingAddress": "XiL5xSJq8EPM4FdkWxCHXNXCLUHhyyJdTY", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "85abe7166acc5fa57890138913bed8c3fff0d98bd0c4d055dd83b1efa4edd13a056952f67386fbbf6793556785bf3727" + } + }, + { + "type": "Regular", + "proTxHash": "d1f965259f4d14fd34a8531b17c21eea7b4073e02b850a3d79945db62fc5baf9", + "collateralHash": "3a1bf746ab1b8b9f1349979ccaee7bb4e65238e155bf8554cd2039abb1b75905", + "collateralIndex": 1, + "collateralAddress": "XwJy96RwPo6WfM5B2BoGAgW9jq48U2wBBx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.33.254:9999", + "registeredHeight": 1028652, + "lastPaidHeight": 2127128, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190834, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv99GNpGPKweyXCA8F8bme24WAtVBd5jkc", + "votingAddress": "XrDosiewXj9T8vP88MUNXHSGNB2LZ7oxy5", + "payoutAddress": "Xk4Vfi8i2dAi1QqutYD61vMegcLho8XUvq", + "pubKeyOperator": "131bf345f5b24b2a9894775cf4d9c636235d83178c7a4e747de30b31005fe240104a0ff953a4ab62fac1b87495146890" + } + }, + { + "type": "Regular", + "proTxHash": "4514ae3a73bc1b19a9ffcf601aa6dab7e639c4330ccb4ace02668d11d4f5c391", + "collateralHash": "707c079b23d61aae1168d57aeb4c48d030944fde31f7ee14139d4f262184278a", + "collateralIndex": 0, + "collateralAddress": "XpxnvEgCiVv6Ba2fsHLSGxqRnZzyTMKeHT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.79.28:9999", + "registeredHeight": 1028654, + "lastPaidHeight": 2128311, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2098578, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XysdX9XyGzAhd481uxqFi8V9G5fGCWNvyS", + "votingAddress": "XysdX9XyGzAhd481uxqFi8V9G5fGCWNvyS", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "8ce1b3bd04c1f83847be2360920943cf1bbac7d111f3bc38179b363f10fc5a5b604a452100519ea62598c741ab15253a" + } + }, + { + "type": "Regular", + "proTxHash": "4040458775dae2b9b210bc101783314bf1b9f1963093c128616a99d8967125bd", + "collateralHash": "a7c3fcf53ab9e74a942be3fc845e9d96844fbc6ad138398b6777dbcc8e11c78f", + "collateralIndex": 1, + "collateralAddress": "XyTaTMwriQnL1Fy9YnBcEeKrtbr7rfRAGm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.244.103.110:9999", + "registeredHeight": 1028657, + "lastPaidHeight": 2128571, + "consecutivePayments": 0, + "PoSePenalty": 1121, + "PoSeRevivedHeight": 2078484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcWBn2qFH2anosfg2vqyE4sVHvbJzgGpCR", + "votingAddress": "XcWBn2qFH2anosfg2vqyE4sVHvbJzgGpCR", + "payoutAddress": "XrckquhAFHPiq2xAhEcxc89Phn1phD59Mi", + "pubKeyOperator": "10f912e265e3865b0ca0e7a8514616f541d2526e493212d0e82218f2ec7abce09eeb0316d165cdf006dfb596b37380d9" + } + }, + { + "type": "Regular", + "proTxHash": "6b17d6e16977fe93f0fe11f2402253f62e4b29451c5696afe514a1999bc2cefb", + "collateralHash": "81803cde842e8646ad2a5548dae4d7cdf2a910de6e87782a14207ec2067469d2", + "collateralIndex": 1, + "collateralAddress": "XifQSYwYuzyxHLjXYBnxu8cuLibjbiHt4a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.61.192:9999", + "registeredHeight": 1028657, + "lastPaidHeight": 2127281, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190963, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoL6TtiErhRQgseNvfjukU2AQ9BNrEYjoH", + "votingAddress": "Xt7XGDYbKho8Z3g3YEA7hxafhBsL733oVj", + "payoutAddress": "Xjqwpj7hq2AufiMj6HFrpaowff2TxWU3GN", + "pubKeyOperator": "129327f57de0d6a08ac4418087d355e106ef091a11d88ec88dd4f9b2acc1889e500713c739b4c2cfec0e1d1d9cc25375" + } + }, + { + "type": "Regular", + "proTxHash": "05991034adf969a27058d8cd2ece6f174cc1997cdb91ea1abb1ecaf6a701c369", + "collateralHash": "458a1ea37be82f73c531a42af3268eaac252a6a01ae7e3354441ccf6cb5dd235", + "collateralIndex": 0, + "collateralAddress": "XiVUmYddk7SCHwtQ5sJdKBeba2mh8Jnqfv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.70.107:9999", + "registeredHeight": 1028657, + "lastPaidHeight": 2127584, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036577, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbYaJJLbjJbgmB47obn89X6vWcRTTXmwYo", + "votingAddress": "XbYaJJLbjJbgmB47obn89X6vWcRTTXmwYo", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "8d56766dd40b24f0b4c9a19e18ff322057dbf25a9ed354fb8ae5853372bfad7086772ee6ae546239b33e7e8f78c8878c" + } + }, + { + "type": "Regular", + "proTxHash": "d7e5cc259a7b1a208dab29b99bd20cc3d6c5385b06084b586f804a062f9355a6", + "collateralHash": "568f657bd0f52b139c4410427a1c1c224126fc7c4dad90e504eb6c23c2d69f2a", + "collateralIndex": 1, + "collateralAddress": "XjRkf3tw3HM4ANFDph5ejasS6kQWBc2oTq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.199.119.21:9999", + "registeredHeight": 1028657, + "lastPaidHeight": 2127794, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1521605, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtHgp16hmrQ9oRjkDKyCZpcufuYBfD1i81", + "votingAddress": "XtHgp16hmrQ9oRjkDKyCZpcufuYBfD1i81", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "86de437a3adf49b886960eb95b230cb1ffe05e7f8331edc6c1def87b6cec95d1e65d9bc13945bcde644e796b7cb1178e" + } + }, + { + "type": "Regular", + "proTxHash": "d36f26a754b07c6d7c7f6abbe0ea740c9770bd7dfff9f25ef4e71764b999aef1", + "collateralHash": "debd91c2dce843a0471934e3b4390178645dfb12ab1ab94da2ad2af5dca64b8d", + "collateralIndex": 0, + "collateralAddress": "XjejLZqun61BM4apDgKki8J7cnc8xXte8e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.50:9999", + "registeredHeight": 1028657, + "lastPaidHeight": 2126322, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1263144, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwVDDKmixn5Jmedx2onRxaFcjqzbDNA1jG", + "votingAddress": "XwVDDKmixn5Jmedx2onRxaFcjqzbDNA1jG", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "096a12aa606b61b29b4bbc66ed3f05d5796dc61c5cd0963d9c70fed5d194c7f85cb0df0f06d5fcb629c7c88d951bec7d" + } + }, + { + "type": "Regular", + "proTxHash": "feb146a52985cbf69f0a46b3a56f5f505538440bd42e993a0685a11fac1fdda5", + "collateralHash": "d38aca1449954d9908054c02ddc198d13c545d7f043ca82bb98917a03659041f", + "collateralIndex": 0, + "collateralAddress": "Xy4KfnXQkyRVrXc1fbpmajRHC83WgagKTd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.10:9999", + "registeredHeight": 1028658, + "lastPaidHeight": 2126983, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761180, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk8cuXGxhtuov84CPe4uwJrcCJyVVDrFSy", + "votingAddress": "Xk8cuXGxhtuov84CPe4uwJrcCJyVVDrFSy", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "0ddb912c6e449e1b7dc4c0e4277dbe3a5ead08026d08c408bd359065c190840ff1fa69b08de02d3d121d8f4baf5cbabf" + } + }, + { + "type": "Regular", + "proTxHash": "3e7e6faef727c5f7ac9d944d75ad8d0327498964da6ae562d1cee9e2d3854a2f", + "collateralHash": "fc9611eea8cd4b7ddac078eac039e7529fd0469b2bbfb5ebf8d1e036f1763a67", + "collateralIndex": 0, + "collateralAddress": "XnWdSqGCgv5H2equdz1wfKjgEcqv7UUAiJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.12:9999", + "registeredHeight": 1028658, + "lastPaidHeight": 2127581, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036577, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XicR796mvcZmwtPDstYh2d66dWE1pzYmWo", + "votingAddress": "XicR796mvcZmwtPDstYh2d66dWE1pzYmWo", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "87b5b9fbc61c9d07c70b7acd57d8d6419e29b8fe3a587313697002f8ca5d14f3d5f8abe8ccb4fbee585795a9cdde0f0f" + } + }, + { + "type": "Regular", + "proTxHash": "c9e90509b2267157f68da3f2071e678931f1e2494ffda4a412d3db2bdaa3139e", + "collateralHash": "c8ee605f73580ec873b643f896b8a3393f58ed0f3c7e55007ee2a299e8452312", + "collateralIndex": 1, + "collateralAddress": "XuU6seBgCqLrP1T1R27yCDn5dBW6cEAEWy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.33.3:9999", + "registeredHeight": 1028658, + "lastPaidHeight": 2127289, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190968, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn6jMhTjv4eshbyJ5KJkAehoELdW7oUtXu", + "votingAddress": "XtsJ81JoRUHPVAJPuZsDW1jGmfUqNt6Lu9", + "payoutAddress": "Xcx3EtDwjnirJDgojwM6zXjNzPFWt9ckQF", + "pubKeyOperator": "890f64239dec329b2d251bd4172cb6b751c5b32e90dd1e032a3130d78197559937d7491a32d28e0732c1b1c70887c9b3" + } + }, + { + "type": "Regular", + "proTxHash": "86c39ca07a3c5221300cfe88746de75b37340fc425f88f9ca74b95aec03b5b23", + "collateralHash": "2eb5cbb9e84b5bc53f5ab3f0e65b14585302015e3cd11bb94546b54783c2ee62", + "collateralIndex": 0, + "collateralAddress": "XdwSYqVzdPQhKfqmKaVgoRRX28sJv9kzJ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.44:9999", + "registeredHeight": 1028659, + "lastPaidHeight": 2127588, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036578, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpaMZx93Ebi9Wy6iQG63VbTuRGsnF8zDbB", + "votingAddress": "XpaMZx93Ebi9Wy6iQG63VbTuRGsnF8zDbB", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "06c9f110042ef9981090b08578c2a472ba32cc69b4b73c3ec54c7f095be4919f2c11d5250cd003aa910e2d2429d8c83f" + } + }, + { + "type": "Regular", + "proTxHash": "f35428f9f6fabb7cc4c18a2261a29bbfdb8202d9e910925b64e255228458ee5c", + "collateralHash": "69306b0124b427b1b974627c0493ac3e79b3e23d977ad323899e496b76ca96e6", + "collateralIndex": 1, + "collateralAddress": "Xfd4z7p8z4UNUrBh16Xdo3wqZfttf81WoG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.146.189:9999", + "registeredHeight": 1028659, + "lastPaidHeight": 2127291, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1190970, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo7bqCJGWiQ6U4na2Pdq6iWBXLgCU5root", + "votingAddress": "XeCWR3uoxcrQAZFpH9AZQFH1MqAp5Z8WD8", + "payoutAddress": "XoCiVu5wFioKEsKMQbFZx5M86CvHxhxNhj", + "pubKeyOperator": "959dc707ea3fc22028a74953ec5d7fa3e4c6b038155af23ed8100b6a9f0a46899c58765db66a2f869202dc446e33da40" + } + }, + { + "type": "Regular", + "proTxHash": "076a86b320712712e6e236605126bf90f5b3e1ca6378dda07b0389716e31f19e", + "collateralHash": "73be48a77d80f8cf1ac51357ac013f54d1067b65a5270602148443462eee43f3", + "collateralIndex": 0, + "collateralAddress": "Xb4WaUjapzLv455pZbdZEgTjriquDjHm5m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.81.69:9999", + "registeredHeight": 1028660, + "lastPaidHeight": 2127959, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2000286, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyPNsBG7Wv54QYkRpw7HtwrErTw7swBBk6", + "votingAddress": "XyPNsBG7Wv54QYkRpw7HtwrErTw7swBBk6", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "8794b2e818d32974e727fd4b766a52a22468792fae65d4d37b78de0b986469d2b3ff80d5200ac3ae50ca6b8f13af12a5" + } + }, + { + "type": "Regular", + "proTxHash": "c92b9732ccfd2bfdf2520495260b504296e4986f2500ba0d11e527f099c9db84", + "collateralHash": "fb729db1e7446b191577be54570542d3956ded4f84d099405923b41b44276da3", + "collateralIndex": 0, + "collateralAddress": "XxWUakv2mpYpNUteKaYRyJAnv4QrAmRFSS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.107.22:9999", + "registeredHeight": 1028663, + "lastPaidHeight": 2127591, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036580, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdqBBuHt2kWBx4hvwbqQBFd3CsYMcwCrrv", + "votingAddress": "XdqBBuHt2kWBx4hvwbqQBFd3CsYMcwCrrv", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "92444a5a3bc28642379d0e50f8846b21cbdbb5808449d202fa328306719fe4a6491ba0185922bac193efed595c341a58" + } + }, + { + "type": "Regular", + "proTxHash": "db4967d8b5ac5ec29e52069b77f6bbd778e7cb41482e5f3e4b656d9c3431b4aa", + "collateralHash": "a966825826e06a7a8f471e865a723a43a2a4191abe79845f290ad22808a65455", + "collateralIndex": 0, + "collateralAddress": "Xy9ADMpbNhFTw7c9o1tpwsH5TRVEGEWrpG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.105:9999", + "registeredHeight": 1028663, + "lastPaidHeight": 2127596, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036583, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsRyLzUQseHEE9WFMq2WXAcXqAjXHs1Z1t", + "votingAddress": "XsRyLzUQseHEE9WFMq2WXAcXqAjXHs1Z1t", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "813e8bd1efa30fecd9614245169cc8b5f55592b8840448463d568277923dcb2922909e3eaf96e4bfb38fbd7cb0510c50" + } + }, + { + "type": "Regular", + "proTxHash": "f47c15055374ba362aec9a0b46352f316eb32858b7a1fee64bde11542706da46", + "collateralHash": "e7828bcadf55edacb0a14d6a102b37fa5d32a2ea788d3a72526133f8879883ad", + "collateralIndex": 0, + "collateralAddress": "XfmjCn9hfrqsVmgsP6EiF8CJ4cuasRqApu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.237.147:9999", + "registeredHeight": 1028664, + "lastPaidHeight": 2127593, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036583, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmemuCP2GwzKTVMHC66N8gVbNnsS9KUysJ", + "votingAddress": "XmemuCP2GwzKTVMHC66N8gVbNnsS9KUysJ", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "18e1b4bd8c05893191217db3ee5fff732ca9545d7c2ef4d21b9bdc5d9b19a63b4452cc5b3424daafce0d30aea3d2dfb2" + } + }, + { + "type": "Regular", + "proTxHash": "8f8dc8da08b5771fea3705cafe0f1aeed759bf896aec7ad281801bcc876299f9", + "collateralHash": "31a0b534e81d6b2bb62ed3410244a78a00ea921113766b4b46a24641891bf9ac", + "collateralIndex": 1, + "collateralAddress": "XrTzSNN7yoK7ASf2BKqZphKKiaS5iGHwzF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.92.220.178:9999", + "registeredHeight": 1028665, + "lastPaidHeight": 2125808, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988090, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbvdxPw7CkD2oDtoP49xcRmix6yE6rp8gP", + "votingAddress": "XbvdxPw7CkD2oDtoP49xcRmix6yE6rp8gP", + "payoutAddress": "XrTzSNN7yoK7ASf2BKqZphKKiaS5iGHwzF", + "pubKeyOperator": "952312664fe7cce377da1ff950b3b5d1b93bc0660f65aac43e96b46fb39dc449abf9cf882d3597a1c7b8cd5a126943d2" + } + }, + { + "type": "Regular", + "proTxHash": "7727d3c436ef68d4cc80693aae1f1abe5e72260154c4f0ecc6d64c9be22da982", + "collateralHash": "85d272ea535add5946da1942e2a59e7703c615bd6947ec6fc63395806dff82b0", + "collateralIndex": 0, + "collateralAddress": "XjyLVJtJzzA8uBP4XwR8qD8ifsTKuubXxx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.217:9999", + "registeredHeight": 1028665, + "lastPaidHeight": 2127594, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036583, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XddzjYabv41hvE2PMH8YYFEJM1bU2sZASg", + "votingAddress": "XddzjYabv41hvE2PMH8YYFEJM1bU2sZASg", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "150386fac7dc6da722d54f788f86ed39dd9a1b63a5b66eeecd9fe9edbbacbea2ffc1e7e324f8dc4b6a35dc74d9b2a46b" + } + }, + { + "type": "Regular", + "proTxHash": "23fe42795cfc81bff7e03a23e848a55e458060731f2a04de8cdcaf238051a46f", + "collateralHash": "6227f3ee69b5c070b982a8908b88340c4fc378dfc7d3b93349410e3b956a3782", + "collateralIndex": 0, + "collateralAddress": "Xn675sBk84DsuVTSVmeZAReD6YKbXtL1PQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.96.159:9999", + "registeredHeight": 1028665, + "lastPaidHeight": 2127597, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036584, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmtcncMdj9at9Zd9UBvDBkSaTqSr2XMbe5", + "votingAddress": "XmtcncMdj9at9Zd9UBvDBkSaTqSr2XMbe5", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "0e69ce091ce490c59b8ae7433e5619c547aeeb1b0f7cbb9741538997e561bc09f5071ffcc5e6815bb57ba0be5ab38290" + } + }, + { + "type": "Regular", + "proTxHash": "3a7fd50b99bed6fb8940a7ff1a8882573bec8fa914b4cf0b5ef0b8b59868d4c6", + "collateralHash": "48172354ec5ebe05d31bdec6ed0ea65016301c2cc7bad673736177f3223c54f8", + "collateralIndex": 0, + "collateralAddress": "Xt5j2c1VQt9S3BHn6LCo7yBM3hvmLYqF7R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.236.201:9999", + "registeredHeight": 1028665, + "lastPaidHeight": 2128806, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977462, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjEEFM7whheamo7T6WysZMJwryuZDA6s6L", + "votingAddress": "XjEEFM7whheamo7T6WysZMJwryuZDA6s6L", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "0d8c32551c50fbdbfbb6df3f3ccdacba9f1e028fd994588ea4add23f2704a9d8cceb34bf7f29ada21ec59a489aeabfd8" + } + }, + { + "type": "Regular", + "proTxHash": "876857c306ee9cec49ea0be03c6d2583401f56d88f6f1205f7cdf2cdaf29d5da", + "collateralHash": "8be4428ee0e5d05d0f5927db500d0bd237b99d82d086c576a514713b9115d080", + "collateralIndex": 0, + "collateralAddress": "XvLTFa1NF8KhGU567vd4EkXz7NsjggLEKY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.15:9999", + "registeredHeight": 1028669, + "lastPaidHeight": 2127598, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036584, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrodHYeesYLwjy2t18zffwaPpS1dipQujf", + "votingAddress": "XrodHYeesYLwjy2t18zffwaPpS1dipQujf", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "939ac458195e7f4245f4dc6d2185f32d39aff42875d36b0fa51e97d03fb3b92d2001df4fb21a55303c9c92ea13505769" + } + }, + { + "type": "Regular", + "proTxHash": "bd1137def6ade1571ff28f64ef2a8cb8157b15c1b7abbdf5f5230bad3101d248", + "collateralHash": "748b7bf41ef477b03e9370dca4749e12698da90ad0c18c4640a03961090aade6", + "collateralIndex": 0, + "collateralAddress": "XipQb1NTPjXAABEJYs4U28UNn4QpCGoN86", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.83:9999", + "registeredHeight": 1028669, + "lastPaidHeight": 2126723, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1623024, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtyn9umjh4dHK3vUaKA8a1sERrn26spCFi", + "votingAddress": "Xtyn9umjh4dHK3vUaKA8a1sERrn26spCFi", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "83190a1c61a9fae05e75baefd649eeb2497c1beaae5df34a34cfa683093f828a1b63471b56b9204f97bc070333927de1" + } + }, + { + "type": "Regular", + "proTxHash": "3c631592a49fc9193b1d3a5aec6ca0e1e0752e09991e21f12ded4a817b038017", + "collateralHash": "63dd8956f865c049f8af07fdfb92d20841abe18aab49ef690153f39239da6987", + "collateralIndex": 0, + "collateralAddress": "XbyNb4TKVVrdKGrb28W873wNZqmrW6uUft", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.90:9999", + "registeredHeight": 1028669, + "lastPaidHeight": 2126946, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1213641, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeaQ62h3RuCR5qVMcKFzFns9ornTnqEYqS", + "votingAddress": "XeaQ62h3RuCR5qVMcKFzFns9ornTnqEYqS", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "0cd65d60de99950802c094fc694688d18cb47d41c4ca22e4426467b1325a08cdabab9e4d1b63372608466ff42faed6a9" + } + }, + { + "type": "Regular", + "proTxHash": "0e98fdf7488a6929b2b45640973453d74698d943eb1cf1b5664fe05111b73c00", + "collateralHash": "3ac7caeba66c4efee034abaceab0fdf8c16ea34af2c0701de7245bd9b67577ac", + "collateralIndex": 0, + "collateralAddress": "XgZsjoabNhXdL27eEab4fvBVhg3jgx1YZY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.233:9999", + "registeredHeight": 1028671, + "lastPaidHeight": 2127600, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036586, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxcVyFQPiMbzraTGLj6QXQUpRu5DGHnq3s", + "votingAddress": "XxcVyFQPiMbzraTGLj6QXQUpRu5DGHnq3s", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "10a06fdd00f1d15e7399e77aeb9baf5a1a37ec8da37bfb104fef4a95523a78052b29994b08c34e5f61b1264bb9f73c75" + } + }, + { + "type": "Regular", + "proTxHash": "e752169d4531641579b4c87c8bb36ed4cd2c26f395e5a7e655e64c47c1b47de7", + "collateralHash": "55a825cf6da4956252026fe0fa0831c28e07ea99c69d748ab654ee1425989a76", + "collateralIndex": 1, + "collateralAddress": "XuoSEppC4QrhTbFRWYfpLvJUeU62BN7Vv6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.252:9999", + "registeredHeight": 1028671, + "lastPaidHeight": 2127377, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcbFt4dvqzatXPDHRCA22529WPZye62gT1", + "votingAddress": "XcbFt4dvqzatXPDHRCA22529WPZye62gT1", + "payoutAddress": "XyXxaw5ZVzCYVaZMJknHkTSuXVGB5xDogE", + "pubKeyOperator": "002795bdb9c708229f4b3fdffdc0a079a101e7dba7f0b4c5a57f91081ce1e9978008b47c63129502f4ed06046501d11a" + } + }, + { + "type": "Regular", + "proTxHash": "6a7d56379f83f6889ab0ac026117c555c91d574afd541370bfa1e7e7326df4d7", + "collateralHash": "ac8a7a7040afc40bbd7c34a7b6bba986875157221ec69a2e992ea52c070cbc7e", + "collateralIndex": 0, + "collateralAddress": "XgxcxcmoZwEurogJBZbGQmDCgxShvpVko6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.4:9999", + "registeredHeight": 1028674, + "lastPaidHeight": 2127603, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1036586, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5ZxJUGjNeK2ePCq49xjnvwYTHm6cWcnC", + "votingAddress": "Xg5ZxJUGjNeK2ePCq49xjnvwYTHm6cWcnC", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "05003fe4d02540a14cd269085adff09cb4797e538f0461faad8b19c79b0e96b5d5ceea02f303a9c736112a2b04a779c9" + } + }, + { + "type": "Regular", + "proTxHash": "3c71ec67e9d091afc17494760ee19e6a1ae5f96fe40f6388104f88d51b543a02", + "collateralHash": "2bdb7007546f21ca3d1e84262f0954f66e6d842630ad5a9371fb0b7c6b04d0a8", + "collateralIndex": 1, + "collateralAddress": "XhhBfJ5JrXhuVDdA66TnCqZQrBygr2ZnXQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.211:9999", + "registeredHeight": 1028678, + "lastPaidHeight": 2127404, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkriM81o7uX1LNZxRHiAtpa8Ecv8KBiFWL", + "votingAddress": "XkriM81o7uX1LNZxRHiAtpa8Ecv8KBiFWL", + "payoutAddress": "XyXxaw5ZVzCYVaZMJknHkTSuXVGB5xDogE", + "pubKeyOperator": "17ac04dcbe4572333decb848d4dcea1c2e5edf24a1e774aa1c1c6f31dbc3261883ad27cacd2efdd2ab91b24a77390b3f" + } + }, + { + "type": "Regular", + "proTxHash": "7fa4f46adc5ac94b565bb13546bc2de630dd25524ac2dce26d4f5ae0b6459a11", + "collateralHash": "de8403d6198c85ac8d0132a6890beb4b3761f963e5a0a58256ba33c651584851", + "collateralIndex": 1, + "collateralAddress": "XgJknwchXRVdtRj9ukn3rAtt9fXEKjGEZe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.207.130.246:9999", + "registeredHeight": 1028679, + "lastPaidHeight": 2117203, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127392, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvpuDyvmEjKDWW6UjY2hXsjAxXYbDzcxek", + "votingAddress": "XvpuDyvmEjKDWW6UjY2hXsjAxXYbDzcxek", + "payoutAddress": "XgJknwchXRVdtRj9ukn3rAtt9fXEKjGEZe", + "pubKeyOperator": "11b70a4e4c15676a026dd333c75a3e2b19daff4dfb8744cef911450b55d1886c4ca116c65203662476916e6233ddf239" + } + }, + { + "type": "Regular", + "proTxHash": "95e54f309763c35a7018d065df9ed1ff3c75635295b257def88ccecdf3259cfc", + "collateralHash": "decb5e2642e2b5f756ed0169e2fc29a6a29f595a30e301024e7b8b9fd700a371", + "collateralIndex": 1, + "collateralAddress": "XuzT5BLBMbwUqrRhAMaiDbzFcnxiCqpcWL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.222:9999", + "registeredHeight": 1028680, + "lastPaidHeight": 2127418, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XheRu9f4VTxmfZrgdhp5jEGUMuYmaimWvJ", + "votingAddress": "XheRu9f4VTxmfZrgdhp5jEGUMuYmaimWvJ", + "payoutAddress": "XyXxaw5ZVzCYVaZMJknHkTSuXVGB5xDogE", + "pubKeyOperator": "999cf5f91e03b7475470463f4b803a71654dd31c9c59bc6ad4a06b9414e03c87020ab3f76007bab5e9ce9755e1d6708e" + } + }, + { + "type": "Regular", + "proTxHash": "49d1a3e0cce16f7c0122a907b9a373a19b59dd3ace78ab4babe190aeecce4aa8", + "collateralHash": "793fa499f566ea926296c722d42bdde3b35ac9bbfe2bd10e9fd3b9b9c410ef9d", + "collateralIndex": 0, + "collateralAddress": "XsRTxXZhyhHimmk3DXmYzUWbBwu7FJuuvk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.5.55.80:9999", + "registeredHeight": 1028684, + "lastPaidHeight": 2128324, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976889, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnawK411jkeYcb7cyoxhLjMFS2z9pfywN1", + "votingAddress": "XnawK411jkeYcb7cyoxhLjMFS2z9pfywN1", + "payoutAddress": "XrvUAnQBJTApGKGEtYHAe88P8RUvvCqm3q", + "pubKeyOperator": "8fbe9701924454912de9372e576c8ac8766c99cf1189909e84fa532c1b01372f9198c1dbfd37d7febfbf73d320d11991" + } + }, + { + "type": "Regular", + "proTxHash": "f7af2fce06d447deb480a9aad2289c7e7fb4906260ea38d2480ef6902842e674", + "collateralHash": "567574eda8d3b69b0dff62838a9a08be7acc031b5be446b41acb5fafdedba2f7", + "collateralIndex": 0, + "collateralAddress": "Xuy4RkX29KUs9K2DPydQfrWrzjgyxdkqe2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.167.102:9999", + "registeredHeight": 1028690, + "lastPaidHeight": 2125832, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127399, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmZEvLN85A6FYQUrmHP7dcZUVhxyxgkZVV", + "votingAddress": "XmZEvLN85A6FYQUrmHP7dcZUVhxyxgkZVV", + "payoutAddress": "Xuy4RkX29KUs9K2DPydQfrWrzjgyxdkqe2", + "pubKeyOperator": "8a9b6271675391e46e2bbfd963590e5f5a88929d586256a3608385a423cd3005d370ba8835eba8fa4df101824de3f670" + } + }, + { + "type": "Regular", + "proTxHash": "610319ffb4da94ed1945d8622ddfa07d2fbd6600b26233c448d0e80fc7c8e5eb", + "collateralHash": "d02a1cc191237cf77b98549bffd5ba289db3d52d16ae1c93503baa5f8f40a697", + "collateralIndex": 0, + "collateralAddress": "Xk23jpkSFNQY7de1Gcmt6PNszBAeCJWUa2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.232.112:9999", + "registeredHeight": 1028694, + "lastPaidHeight": 2127592, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwCxk8LkaBjf6v4LwaKHL473c6WEUZWaR1", + "votingAddress": "XwCxk8LkaBjf6v4LwaKHL473c6WEUZWaR1", + "payoutAddress": "XuEySymCu8fMMqsXSwDZad2A7P7xsopnUy", + "pubKeyOperator": "8f03a4bd3c33f232efb54886f48b914a050261dde23f47c2a1fc22d86a662d612db1d26a3eb0492cdead3dd98240217f" + } + }, + { + "type": "Regular", + "proTxHash": "a9d5a2d5b79dbf0e0ff2c9a59064f48812c1ff307568e5d626bd7e4c33fbee1f", + "collateralHash": "1b46bad56906c9a61aa5e0cab1ea8b412b2634fb1a7f51eddd359511ae08cc76", + "collateralIndex": 0, + "collateralAddress": "XpwHv9m9oCk2r9m5fRven4r3b8YcGPhhSh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.236.252:9999", + "registeredHeight": 1028697, + "lastPaidHeight": 2127604, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk5TNW4MzyrRubC932pXkTi8d2ydZUsBkV", + "votingAddress": "Xk5TNW4MzyrRubC932pXkTi8d2ydZUsBkV", + "payoutAddress": "Xvz5tRfK5Z1s5bjDdq6y1NJMsFkfrGfdXg", + "pubKeyOperator": "93323d3eec97b3b02577f9406739a3636486977426cebcbfcb8253eb90876b731f8e767ea4fe40807167fd61a280d797" + } + }, + { + "type": "Regular", + "proTxHash": "a3fb3038d99c35fb20c0314abf9bf1657811f8f7ade49044a3d16b4a547d33a4", + "collateralHash": "f1edfefdd494553390d71b8f32adcea0f922eaebafbfd91e333e73cf638c7b30", + "collateralIndex": 0, + "collateralAddress": "Xmw2zrsaEKr4LbnAcv1G4dK78F1LXdFeFU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.9:9999", + "registeredHeight": 1028697, + "lastPaidHeight": 2127614, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaoxqgGLT7bWuubPLShNaLP5bK7r9jAvvB", + "votingAddress": "XaoxqgGLT7bWuubPLShNaLP5bK7r9jAvvB", + "payoutAddress": "Xm2LmEuPZAzBg2mSpekqdfC3GQ45Aj3rcV", + "pubKeyOperator": "17e26dc2f3aa80354cf191333030900af4e4a339f32a59cc79a5ecc0e3b15d3f9cb2fa8a6203c8417d95edea56211b03" + } + }, + { + "type": "Regular", + "proTxHash": "4b6c0f2e9a1c1c7d04d7866f2a089086ff5467a5991400d61e76222a7479b18a", + "collateralHash": "23b3af4b30c8943fbad355448e6ea1b24fbd1b3c3922e25debc8f354e97d6f04", + "collateralIndex": 0, + "collateralAddress": "XfLdHtJPAQXa9nWdqM65qYHi1V9n2uREPW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.220:9999", + "registeredHeight": 1028697, + "lastPaidHeight": 2127612, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XupHKkHkRmaz2sSjf8VqLydzpWQeksGcxp", + "votingAddress": "XupHKkHkRmaz2sSjf8VqLydzpWQeksGcxp", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "09addc90a12fee075945d41aa170167577d5812c1224189462d74988f4f2df2b10619912067a0d476c776f531cffb9f2" + } + }, + { + "type": "Regular", + "proTxHash": "1a72e7631b3bd11433bdb625306d00f946f6cbbfa633f98e7f8ae074dbce109c", + "collateralHash": "5b085c9a2eee6e7ff98d42d90e6e98274ac405724dffab51f80fb9ee02ad007a", + "collateralIndex": 1, + "collateralAddress": "Xs9TFoq8R1tEVMod6kmmSr9XUKUpu4Pewo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.176.125:9999", + "registeredHeight": 1028698, + "lastPaidHeight": 2128367, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115899, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcK5ZoQquUEujq1Rg4KbNQxmq9QQcTmTkR", + "votingAddress": "XcK5ZoQquUEujq1Rg4KbNQxmq9QQcTmTkR", + "payoutAddress": "Xs9TFoq8R1tEVMod6kmmSr9XUKUpu4Pewo", + "pubKeyOperator": "86230e89575b73f17b2459324fe3eb802e2c03a354f9c050295facc1f64337226ea30ef992fa6830a3b7c17ef8ceda6b" + } + }, + { + "type": "Regular", + "proTxHash": "bc54e4943e7c80834f255f935a5da86cb6c902c0abcdd36ff1afaaaa3b16877f", + "collateralHash": "74352126d813d9bedb2c0646fe9a34b3e0dc2592ef333c1a168b3343d57f821e", + "collateralIndex": 0, + "collateralAddress": "XucdwxUCMhFpTanrRafEgYr5iDoC8pYwmt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.69.54.109:9999", + "registeredHeight": 1028699, + "lastPaidHeight": 2127620, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvL8H7XavJC4QnfAZPfWyrQgjWvLqH6T3A", + "votingAddress": "XvL8H7XavJC4QnfAZPfWyrQgjWvLqH6T3A", + "payoutAddress": "XbrHswbTMChwrDCCLeXzD25feHGrheQwwz", + "pubKeyOperator": "0980de89ca42fd8ed2ed784f5b3c9adc49d530b160c7f0281494b4559a62d91a54c592d4c81dff76cbde16f4b969a1bf" + } + }, + { + "type": "Regular", + "proTxHash": "06b12fb8f43cedc7567a42bd33b7da061234cd5127fd7e0bb8b4b0b3c03841a8", + "collateralHash": "7f7ac43d11e11e1dcd99ebd93970b641fcaf2dfb225db4e436a16ddd3111945e", + "collateralIndex": 1, + "collateralAddress": "XtCAP428shWAUN7umZ7KcZasVyfRb9kbiD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.250:9999", + "registeredHeight": 1028699, + "lastPaidHeight": 2127627, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvKkRG7SD2Bw5K7eEEHgZ2Zdn3KQvAdhFo", + "votingAddress": "XvKkRG7SD2Bw5K7eEEHgZ2Zdn3KQvAdhFo", + "payoutAddress": "XyXxaw5ZVzCYVaZMJknHkTSuXVGB5xDogE", + "pubKeyOperator": "81fcdf5adfb8f48190226e707fa1bbcb3350c597026c339203ce1d3d29cc1b1e134a1e7e1adfb59fe84a82c8f918f553" + } + }, + { + "type": "Regular", + "proTxHash": "e9872f0282fad1f00d60a5bc2c3d63f48082a08b4856b667406558923f0705a9", + "collateralHash": "4668694b769e6c7a2d95b29d06fa07b9a04298c9fffa46435d2988a714f273bf", + "collateralIndex": 1, + "collateralAddress": "XeGn8AkaN1tjmEScnVkxMWBSyoBFGMsVeF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.24:9999", + "registeredHeight": 1028700, + "lastPaidHeight": 2126402, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1533204, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfhLmDe6dGbqhfQnKfBBh2UMWxoSJ9SrGh", + "votingAddress": "XfhLmDe6dGbqhfQnKfBBh2UMWxoSJ9SrGh", + "payoutAddress": "Xu9TUAxfcxVJqH3Fsea6CDHoh6twgb94Me", + "pubKeyOperator": "07319ec88d7bab2df77fe2b7c30944161316423e4c4f3d07504351308cc0103dba47fdbad6e50ef4057b9b12137a3bd2" + } + }, + { + "type": "Regular", + "proTxHash": "ab34565beb2403f75886a0ebab118e8265e78790f288c28727826e2a950e8ff6", + "collateralHash": "29bf63c68c2714e9898bb7f82c2f3444c282f520f4b80b629eab632bf9d3d610", + "collateralIndex": 1, + "collateralAddress": "XahRUR7MXf2awYtNvTccNRUoqmEPCrh79i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.207.130.255:9999", + "registeredHeight": 1028701, + "lastPaidHeight": 2125846, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988152, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xaxchj9ApXcQP7YTzy6Yjx59xZVxvBpVHr", + "votingAddress": "Xaxchj9ApXcQP7YTzy6Yjx59xZVxvBpVHr", + "payoutAddress": "XahRUR7MXf2awYtNvTccNRUoqmEPCrh79i", + "pubKeyOperator": "06935396bc1e4a84ef5dfc56fc0f27bebb5d784d2b7eabdd6ed1ffa9965221e01f8f25571525fd4f6a8e339819e784df" + } + }, + { + "type": "Regular", + "proTxHash": "ab03441377cabda2a7ae9c81fc3ca5f09254f79c932b661bb2cf3721abdce1e9", + "collateralHash": "fffa00722be2eace316cc56797be93e285435ea369fe146024bd727e27dfbcd8", + "collateralIndex": 1, + "collateralAddress": "XuiuHT7GVaMeQ3hdWkDPYhVLnHe7jmxsMv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.196:9999", + "registeredHeight": 1028702, + "lastPaidHeight": 2127733, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp8SQ5iCNc8dV5b7FMLvfM6cduew4UzLoC", + "votingAddress": "Xp8SQ5iCNc8dV5b7FMLvfM6cduew4UzLoC", + "payoutAddress": "Xu9TUAxfcxVJqH3Fsea6CDHoh6twgb94Me", + "pubKeyOperator": "995e4d5677bf72a9728dbf0b586c39bbd6ba9fe6f1a8c4eb5c8f4abbf64c57f7b73ed76b4d859a5cc9a2e91d2261b952" + } + }, + { + "type": "Regular", + "proTxHash": "78deb99d08ba1e3120a235746f5497720c8b605342df8b7464f6ff26ac188bf5", + "collateralHash": "ffb23482c91c0bd2716c9c2aa9b6e147dd4739c6ef78c1da9dc8f7bc5de7dc0c", + "collateralIndex": 1, + "collateralAddress": "XsG6puM6dw5HV3AFHKX2PctV3ZDZGsYUAL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.34:9999", + "registeredHeight": 1028710, + "lastPaidHeight": 2127780, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsCYDvq9azvtTj51pXUctVmG6pP9Rs1FsR", + "votingAddress": "XsCYDvq9azvtTj51pXUctVmG6pP9Rs1FsR", + "payoutAddress": "Xu9TUAxfcxVJqH3Fsea6CDHoh6twgb94Me", + "pubKeyOperator": "96893ff9f7be91a90f8d5f2b87db814fbbca16bafdf0e47eb86637ab87265fbe181ade0dde7c5c9462ec3d248446bcf1" + } + }, + { + "type": "Regular", + "proTxHash": "5494e1866985d55136309f987ca5e7fe39e1f837e3c1d539aa0669e2f5038167", + "collateralHash": "36abcbc48ebe509d6fbf311965a76246b7f5b4cc5c5c34a683eb313fa8487ec3", + "collateralIndex": 1, + "collateralAddress": "XhMCFbnwPD9xBpBr2s3gMWWCXfHxei6JzW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.171.85:9999", + "registeredHeight": 1028713, + "lastPaidHeight": 2125863, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988163, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkAUQ8hhaseVhwh3edPgvJW3FsYK8v7emu", + "votingAddress": "XkAUQ8hhaseVhwh3edPgvJW3FsYK8v7emu", + "payoutAddress": "XhMCFbnwPD9xBpBr2s3gMWWCXfHxei6JzW", + "pubKeyOperator": "0e46393d91ace04c99e110e49155d8edec31f731ba5897a48190023262a452d55ebdee43972e458cc622eebc14255a99" + } + }, + { + "type": "Regular", + "proTxHash": "10a9953f64e22fe4f94b56abe61fe7ea815da71e1029984248ab48f219be3b13", + "collateralHash": "3f39396585e102a6db8324cabeeb856c0c5290d0f7eb82d168f83e9ac4bd3b02", + "collateralIndex": 1, + "collateralAddress": "XpgYb36ekQPXGN4epQVmXCaCHRbdXrqXJb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.159.13:9999", + "registeredHeight": 1028717, + "lastPaidHeight": 2125874, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988181, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfVXahh5U89LuM14bEeZdHsg5XTAudwn46", + "votingAddress": "XfVXahh5U89LuM14bEeZdHsg5XTAudwn46", + "payoutAddress": "XpgYb36ekQPXGN4epQVmXCaCHRbdXrqXJb", + "pubKeyOperator": "8e10923c85e4251604b077a05f28e3f18c576a81010425245f77268b3e10e38502cf46efb75be368670539666938be6c" + } + }, + { + "type": "Regular", + "proTxHash": "76b9f786eaba46f2a8dcac22f4cef32a17276c375b823225ac28ba5435433bf2", + "collateralHash": "7a0d197d6931ee4b307f70c3938db9b10adc2c6885acb5e571f8d20f957982bf", + "collateralIndex": 1, + "collateralAddress": "XshbaHzZVsfWijMpXXf6qtyVY8efE21aG9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.176.179:9999", + "registeredHeight": 1028725, + "lastPaidHeight": 2125886, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988193, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnME6kHsKCUQoNHBtvCDJoXuL2ipLdGi5S", + "votingAddress": "XnME6kHsKCUQoNHBtvCDJoXuL2ipLdGi5S", + "payoutAddress": "XshbaHzZVsfWijMpXXf6qtyVY8efE21aG9", + "pubKeyOperator": "0f95b011360bb2109c7ff95eaec8ac8cf3f703c3cb74d5f28d738ea5e4b417063a252825e0749027ea387be76e880be0" + } + }, + { + "type": "Regular", + "proTxHash": "3a6b4022ee414931b09d651a3d76c21665dc8e5fff839adc753b286c03d2c38f", + "collateralHash": "fba952c7b9303330e13f1fb8427135a4cff1a1ca07b463bc1e21a2d719243020", + "collateralIndex": 1, + "collateralAddress": "XphnRagfW5B5iNMbu7Mo4gtquwykEEcLNs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.214:9999", + "registeredHeight": 1028725, + "lastPaidHeight": 2128339, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1585796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XprZTvUZChypi4ZuQM9smjn99DVQSL86we", + "votingAddress": "XprZTvUZChypi4ZuQM9smjn99DVQSL86we", + "payoutAddress": "Xu9TUAxfcxVJqH3Fsea6CDHoh6twgb94Me", + "pubKeyOperator": "94d877c6c8efd85862a0bebbe6e342e562648b27216e65b10ca4180e2d315979cf6cb572c033f4a786e9121afc9be3c9" + } + }, + { + "type": "Regular", + "proTxHash": "7336adb5940f2e8e56663df667aca345935b2555a5286dc4a69dc060755e58fe", + "collateralHash": "84e35ee6a3e3be9ac55817980f7760ee2de2a69c26d2415298d2e05cac268564", + "collateralIndex": 1, + "collateralAddress": "Xxkgm2iKadWiLi7Bvg9MfpRjcnvWUnhECf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.81.167.103:9999", + "registeredHeight": 1028725, + "lastPaidHeight": 2127852, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmiAeJ8iAFVXVVDfJ29T9kMoo19sFcfGfZ", + "votingAddress": "XmiAeJ8iAFVXVVDfJ29T9kMoo19sFcfGfZ", + "payoutAddress": "XqdvxpTuDipxx4ca1eTCNx2zJMfec91B8z", + "pubKeyOperator": "877d2479c5c7f591d9b4ac5acbb9c4c36b7255bced57efbf1d10fa7aab110bdff3a6d143ee111b0cd5e70603c5f00bf2" + } + }, + { + "type": "Regular", + "proTxHash": "874c4500184dc46e1a1affe5bd02298977425c0aa25ee76787aeb0b77bb5bc33", + "collateralHash": "34e3b7abf9180de881bdb4629c7c84ced46210ea6c0b66148fb8101d6367cfec", + "collateralIndex": 1, + "collateralAddress": "XcNYfGoc6VGcYEeBV18qBSTq67nvSPMujk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.29:9999", + "registeredHeight": 1028729, + "lastPaidHeight": 2127869, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfL8hiNamxPTarv5pr8DZkvTPJtsspG2L4", + "votingAddress": "XfL8hiNamxPTarv5pr8DZkvTPJtsspG2L4", + "payoutAddress": "Xuesp5DQ7Eo9c1d1PfwHLb7gdzJfaTZqe4", + "pubKeyOperator": "9949033f1b836cec66e675eb7d943ff04595a4e19d9e51b31d79cec9bf113e4d83f7f119201ab07488bb1f691b0b7e53" + } + }, + { + "type": "Regular", + "proTxHash": "6711160f9b48d72a1770e6af69a24149a1924e9a0590023e2ee56953b878fdee", + "collateralHash": "ecea331fcd5d75e9d720ba43df13ab2dde0a2c4bc390a108216a81393afcf4b4", + "collateralIndex": 1, + "collateralAddress": "XbyJuV8CC38pxPDwh45R9Z8qg8oqnva2Gf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.59.176.128:9999", + "registeredHeight": 1028729, + "lastPaidHeight": 2127801, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118532, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhkxtuXpomyviS71JHqDNvknrVeMuF1urP", + "votingAddress": "XhkxtuXpomyviS71JHqDNvknrVeMuF1urP", + "payoutAddress": "Xnr3fBZHW9yZZ4YYyWPnFvbjcaddXWkpFJ", + "pubKeyOperator": "88a503dd9d96998aaada1a63ab0b00b2623f82bccf0e0bcf044689b783b5d5e08c371c78f26571fcef2a172182b9e061" + } + }, + { + "type": "Regular", + "proTxHash": "54df432fb25c88bcee3533e7cd55577e5860592a14f00500e28b8e3acfee0e9e", + "collateralHash": "765f00f7eed6feee325113bf9d96ede9823b786d4a296e88f9492c8e272c03bb", + "collateralIndex": 1, + "collateralAddress": "XcqcZ1E3q8whR2TLrKKL7YsgkGFyNxPSTQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.35.170:9999", + "registeredHeight": 1028733, + "lastPaidHeight": 2128329, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2024323, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyUzRdJaALiDNR6LKedgAGDwUUvbwBMKDq", + "votingAddress": "XyUzRdJaALiDNR6LKedgAGDwUUvbwBMKDq", + "payoutAddress": "XcqcZ1E3q8whR2TLrKKL7YsgkGFyNxPSTQ", + "pubKeyOperator": "87b9b39c92e2a0414eee1380234658943deea458398c5908a64d297ae1179646950747435a9a26135120c81c4dc731c1" + } + }, + { + "type": "Regular", + "proTxHash": "7cf22b643695657d3d9adc10d105046036822477d630ca4c60cf92afaf09209c", + "collateralHash": "d9f0fa9fb4d1655d139063dfe8e66beccfe51d94cd29e49008517c414463ef9d", + "collateralIndex": 1, + "collateralAddress": "Xi7ukT4BsF4yMm63yD7aN2EekkP8vRAZD8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.74.201:9999", + "registeredHeight": 1028755, + "lastPaidHeight": 2125904, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988218, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyHdfppepeZwNnZcCbPrMipQex4rVk8L2n", + "votingAddress": "XyHdfppepeZwNnZcCbPrMipQex4rVk8L2n", + "payoutAddress": "Xi7ukT4BsF4yMm63yD7aN2EekkP8vRAZD8", + "pubKeyOperator": "867ed2f432f2fa93d2b9b340a9c176a47ab70da12caa97bffe12ca8d863ea5d258bc04cec1c0229c9389d443c72cc30e" + } + }, + { + "type": "Regular", + "proTxHash": "0653864aec2522c9b5796b220e4c57ecae36e3fae02d2a9ef956465a08846d1a", + "collateralHash": "979f07185e8d010f129e7e1e3be15f9a7c0de91e6b341041a6a42adbc1718752", + "collateralIndex": 1, + "collateralAddress": "XyvTFegLkstAqSZfi9WeZJqt9xr3A41cKK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.15.33:9999", + "registeredHeight": 1028766, + "lastPaidHeight": 2126397, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2113986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw1Fyf7vp1tAuUBwnFDHveRKMdFnTvKhnB", + "votingAddress": "Xw1Fyf7vp1tAuUBwnFDHveRKMdFnTvKhnB", + "payoutAddress": "XyvTFegLkstAqSZfi9WeZJqt9xr3A41cKK", + "pubKeyOperator": "91ff2270b496261b8b98cec7e539ddd9c80a40012b5ee95879d3370e5b3f2d1ab4cfe9f5cb39c7c58d3ef5bb8111fde8" + } + }, + { + "type": "Regular", + "proTxHash": "eff87acd8ca820916badbd01ee212151e0d3809695904514b7843ce5b51936e3", + "collateralHash": "44d0a35a91283a7d29c62a977be6beb0b148869efcfa7009a58c66f77f9cc8ad", + "collateralIndex": 1, + "collateralAddress": "Xy6LhfK87iDPqUYyKgXTM6bdto6hDw3yRi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.71.19:9999", + "registeredHeight": 1028773, + "lastPaidHeight": 2051197, + "consecutivePayments": 0, + "PoSePenalty": 3799, + "PoSeRevivedHeight": 2024337, + "PoSeBanHeight": 2051754, + "revocationReason": 0, + "ownerAddress": "XhWB7dQ1qmHBDh9k2SpoEi5mexXNrG2Zp2", + "votingAddress": "XhWB7dQ1qmHBDh9k2SpoEi5mexXNrG2Zp2", + "payoutAddress": "Xy6LhfK87iDPqUYyKgXTM6bdto6hDw3yRi", + "pubKeyOperator": "8c04177be0682d8cdb6bc92463ee86ef23b00abc6cbedfaaa8787d5e15944bb53e21f727009fb5fb206c3f4d2690c710" + } + }, + { + "type": "Regular", + "proTxHash": "7d31e8ddc12027bfdf944650da55467707ff5f3c21037b3bc00b280a739f4f05", + "collateralHash": "c15ca21009d1e4ca6db8f68396389283f67185354c5a0342cb6f05166335cee3", + "collateralIndex": 1, + "collateralAddress": "XyqPuaBzNdSHa8huzXU7XgaDGgrYMu5muK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.189.92:9999", + "registeredHeight": 1028782, + "lastPaidHeight": 2125801, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988082, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqNwpNjBoDC1EaZ5MYcf8jWnPSCb5MfkJt", + "votingAddress": "XqNwpNjBoDC1EaZ5MYcf8jWnPSCb5MfkJt", + "payoutAddress": "XyqPuaBzNdSHa8huzXU7XgaDGgrYMu5muK", + "pubKeyOperator": "90a2f2b86f04a57ceaad39354f87417d1eea55e561eb4e480a8bc7e2a10d91f799ea8e7131ca215adda9e92198e3120b" + } + }, + { + "type": "Regular", + "proTxHash": "ad28f97f2cae085c56dcb5f7a8a10a6b4721f575dcf41e1b17641819910b4471", + "collateralHash": "2770933a84ac824761229754fac4aa2fb6947e7a30db8d16ab6e1a0907faf6c9", + "collateralIndex": 1, + "collateralAddress": "XdyuLsaMZdBZ8dBjN28mMrBkYYgGfCRmX1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.108.68:9999", + "registeredHeight": 1028793, + "lastPaidHeight": 2051204, + "consecutivePayments": 0, + "PoSePenalty": 3818, + "PoSeRevivedHeight": 2024344, + "PoSeBanHeight": 2052906, + "revocationReason": 0, + "ownerAddress": "XjnQFTqyFhQTiiaEPUzxSdR7M63DqnnzRn", + "votingAddress": "XjnQFTqyFhQTiiaEPUzxSdR7M63DqnnzRn", + "payoutAddress": "XdyuLsaMZdBZ8dBjN28mMrBkYYgGfCRmX1", + "pubKeyOperator": "0fd404da8fdb750c4cce6cf0c18686ad1c5499685a4bc5f6b55799da97b1d66a1ac4a82dba090c8fb1501575fe65f073" + } + }, + { + "type": "Regular", + "proTxHash": "e03b0df226a5a99fb39eeb1c85c0c97974a38d2bab196c42a114e5c1e9af60bb", + "collateralHash": "ea5c9dd6f134ece7975a65ea1c222ee04cbec8f8985caf252387b1d0fd453966", + "collateralIndex": 1, + "collateralAddress": "XsxLP3Q9eWg8MKrG91YQ4RFbCJNUU817oy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.30:9999", + "registeredHeight": 1028819, + "lastPaidHeight": 2127995, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgC8uBrP9UgqSxxD9BwfPrt3mmE7vHceTA", + "votingAddress": "XgC8uBrP9UgqSxxD9BwfPrt3mmE7vHceTA", + "payoutAddress": "XdTyjcqvEwdETnwXoPTwLYy8yvtnTnTZVC", + "pubKeyOperator": "8f76091ec6d2dc7da0893a3616c4e5bb779e9524ea62cdb3509b1083d6dbfdc3e76c88878d4df471ae2d34604dac8d45" + } + }, + { + "type": "Regular", + "proTxHash": "3ca9a244b6f2cd8f1a6329c7bcfac76c277d90090fb16c2360f4c2e566c45afa", + "collateralHash": "f2bc9b700113bc3fed4ab4618adadce3f78f8d5cf711216b61ab846226202d75", + "collateralIndex": 1, + "collateralAddress": "XiHwN7aQXrRzSJR5gPQrbtjwsXicZpvRsg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.235.90:9999", + "registeredHeight": 1028825, + "lastPaidHeight": 2128001, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtC2N7yMkPeVWx7yiFdmnEb3gdZvX3DPbb", + "votingAddress": "XgUfcqh5CNR44eRRUveaEJoc1MLy8K3FUQ", + "payoutAddress": "XiHwN7aQXrRzSJR5gPQrbtjwsXicZpvRsg", + "pubKeyOperator": "175f77984b7e05d5c01da3eb5ce1a65d0eeeb6cee3a395ce70c53b14237da2ba8b04ccc9a490e3e340fe371e67c75e69" + } + }, + { + "type": "Regular", + "proTxHash": "8a85b23f9831ecc108b6edd355a85cab0b4b149a36533854c1aeb1cb5acd44ea", + "collateralHash": "e3cb6ee3e0c94a828c0bf49332449e80bc2da5dc7df95be12c1b6f6e99ea8e78", + "collateralIndex": 0, + "collateralAddress": "Xs8eRwnrRaLiERoahqPRCRDicf9kpQopyD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.107:9999", + "registeredHeight": 1028830, + "lastPaidHeight": 2128033, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjvK9bjLvcpz21LkVtMjGTPpNBDfpEhww1", + "votingAddress": "XjvK9bjLvcpz21LkVtMjGTPpNBDfpEhww1", + "payoutAddress": "XfBvPTw3QMBYnwizULREKqLiTN6reXHaNd", + "pubKeyOperator": "0c261f446b125fd803d4cde523eb5e94d0d43f264e2808c52e389053c2e2825d275669b9d6fa622311ee1ca0e5b0e254" + } + }, + { + "type": "Regular", + "proTxHash": "e0a0d46cf38447ca82861bb3d663f0a683cb32e1be912a96b18fc3c9a4e69799", + "collateralHash": "6bf23310c893741af36cd4b3191a92effdae5242b50df62e094769da6da0a388", + "collateralIndex": 0, + "collateralAddress": "XjE5nToFadrkS5tRktfqZ2x13C6jx6dFxJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.26:9999", + "registeredHeight": 1028830, + "lastPaidHeight": 2128025, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyMLNnGQTMepn1S7oQaD9TWj16KewRzs2n", + "votingAddress": "XyMLNnGQTMepn1S7oQaD9TWj16KewRzs2n", + "payoutAddress": "XsPA499FjsNRZpBqPdkFuxtqTe2CVwgP5u", + "pubKeyOperator": "8bd7376e671d5084f86067ae219f7c6408bd3f021c7915823ae5159685acca255d837c9d7d303fa42462afa0be3a7076" + } + }, + { + "type": "Regular", + "proTxHash": "2b0e6df3743db02752783384891a0adadb604c285ba2ba3780b919963b8431f2", + "collateralHash": "8224b526934bf77b5ef83cdda7d4ccc494edefa3463020ab23738289b54a8aac", + "collateralIndex": 0, + "collateralAddress": "XmRJ3WvbA5MK2LhPRe3vqf8sfub11RKvJc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.14:9999", + "registeredHeight": 1028847, + "lastPaidHeight": 2128399, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgp8KpSJu5oAbFhWRtKfLQCZzmoRgJQrzj", + "votingAddress": "Xgp8KpSJu5oAbFhWRtKfLQCZzmoRgJQrzj", + "payoutAddress": "Xg8Qif5f61foTdHmXkZt8xeaLFXddLzdGg", + "pubKeyOperator": "94c4456a3c5a2c60c97b738802998c25457dbc6a69e14b00923a3cf9a2698b65b905a19e47bef0df3f30f1af92be90d0" + } + }, + { + "type": "Regular", + "proTxHash": "2f2fff14255b8dfee26e0ebf9ceeb5a7b49b6fe73cf2dc39027cdd572535e4f7", + "collateralHash": "c4014541c4258f660bd748e36a2ade491db66fd5a4831543392be35f90cc6e73", + "collateralIndex": 1, + "collateralAddress": "XtmdahwcdeHbk55nXdCrN4PMT66RdtjjkN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.208:9999", + "registeredHeight": 1028847, + "lastPaidHeight": 2128400, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsfSavs2nLJMFXFmLy7hJ6BYdud8vuuPsD", + "votingAddress": "XsfSavs2nLJMFXFmLy7hJ6BYdud8vuuPsD", + "payoutAddress": "XyRkHjmMTjZPKv4kyRTaoRAN5pgGHKsDQ9", + "pubKeyOperator": "8642a83ed1024f881df4abe2a684ef3518e928eb2b9225dec76a860518aebde6e3cf6d2920253c88fcf53e1345cc2b1e" + } + }, + { + "type": "Regular", + "proTxHash": "73bc326fa11ba1f95183d90f47d7bd1f0d8d4e46b4aa48c6ef1efc98e1e5fd22", + "collateralHash": "75ee11658b395fc00768874a27e7074a18917d93520f767da63504584def2c4c", + "collateralIndex": 1, + "collateralAddress": "Xmy9gckpdoxZW7Ci64fhZ92L5fcmoB47AV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.198:9999", + "registeredHeight": 1028849, + "lastPaidHeight": 2126433, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1092504, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xevry7z1jHXFSxf9gbsHKDp3MbsJU1TzG3", + "votingAddress": "Xevry7z1jHXFSxf9gbsHKDp3MbsJU1TzG3", + "payoutAddress": "XkPGYfW6kSzbb4CX7og8UJxmKwbqF1jwNJ", + "pubKeyOperator": "956bdf934f2848cfaf505e628fe472413493f34083791663d23f7fd2ead6cd54ae81348cfd2a20f1d15e03668bc34517" + } + }, + { + "type": "Regular", + "proTxHash": "9559d386f88c30716089eea3df569dacdda0c697a517699af11f1c5caf3a677d", + "collateralHash": "d1bdc7789f3bfe068b23b475e42a751e770fb7fce40476e60f254cd846fef5a4", + "collateralIndex": 0, + "collateralAddress": "XupvMH9DDcRrPZtks7n9W8irUL3zqc6B5g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.31:9999", + "registeredHeight": 1028855, + "lastPaidHeight": 2128402, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhYt6DhZ7dacELSpCsaL6KwDwX5BEqLXTN", + "votingAddress": "XhYt6DhZ7dacELSpCsaL6KwDwX5BEqLXTN", + "payoutAddress": "XnAKTgeg68fGrdeQT1Xu8DLwAHFAkuLZ1t", + "pubKeyOperator": "8486990b25a946043c74ef87a1fd6b22b2e5bf1bf800976e948da5a649610f6974c54d684a0675a685d4a80b10ce0b1e" + } + }, + { + "type": "Regular", + "proTxHash": "aa3ef1b4973f851c39ffe08e42622bc6403c2e2bbd7e8a89efa33f53eafaa060", + "collateralHash": "2c79fff315f353496f203bcec9a125644f9360fddbbcbf2490a6c29fc6e30277", + "collateralIndex": 1, + "collateralAddress": "XksNoqKaiVvW9Q3xYc5dbyiweuz9RF2oFb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.105:9999", + "registeredHeight": 1028900, + "lastPaidHeight": 2125866, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820903, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf6EuyoYEsSA5HfFSLZNFYkU1EoGK5oEe7", + "votingAddress": "Xf6EuyoYEsSA5HfFSLZNFYkU1EoGK5oEe7", + "payoutAddress": "Xdzmc4hDD2Vjb13VFibMNca4NQx3mrHBrS", + "pubKeyOperator": "086f5c0d57ac779daae188eb2e177f49ab2dfe26114889fa0a7af5dcfca25cffad47f2b4e1cee0d90736aac589a46283" + } + }, + { + "type": "Regular", + "proTxHash": "ffaaf68b98d79e28fd26f9404696385f64d3576af39507adfc295e8037993787", + "collateralHash": "e0335f8c751e56e3ae7ad891a4c5c28c74f6d12d6321a2af90cfbcf88d5e395e", + "collateralIndex": 0, + "collateralAddress": "XpUEq6XazzbMn495kRj6LiVGB3j8EvdNM4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.106:9999", + "registeredHeight": 1028932, + "lastPaidHeight": 2128746, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2011247, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjwUywSpaf7Vt5edmYhPohNSkVHzBc3sY9", + "votingAddress": "XjwUywSpaf7Vt5edmYhPohNSkVHzBc3sY9", + "payoutAddress": "XdXANh3Whr4Tt8KXkUG6ZnvUCCbHBsN7yc", + "pubKeyOperator": "17f9e6c9ffed21ca3d3357f31c18cbc541d95c232025b705a65d7a32be10227c804454b690b28ebeaad910478559cbc2" + } + }, + { + "type": "Regular", + "proTxHash": "959f41018ba69aa15bbb374ef82b1d19b22470365a6c41e0d8946a1465650131", + "collateralHash": "96ee9b37bbcb1c406ff9de9b2c887b44506a2d8885ef8095d14524b962640e47", + "collateralIndex": 1, + "collateralAddress": "Xwko49B439BxYGfCqCNmRmUN5gY9SeTF3U", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.175:9999", + "registeredHeight": 1028947, + "lastPaidHeight": 2127512, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2108225, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk2i9znP14kG5Ehw9S8sQdsKnqJKzD3J8q", + "votingAddress": "Xk2i9znP14kG5Ehw9S8sQdsKnqJKzD3J8q", + "payoutAddress": "XdTsCjo5JzQkLBKZ2y9oDDSYM5HWt3UTs7", + "pubKeyOperator": "94d4d6e6c595e69345155c0574e96e892d3eaa9dbf49ee921e0801d18d8c34c641ff65fcd7977ed83c453f5be7a6a8e4" + } + }, + { + "type": "Regular", + "proTxHash": "7b18e7941f448a171e3cbea0d2722efb3a77c37422c72c0a3dbde9b5b289722a", + "collateralHash": "a362132b145dc6980d85b31a38143e8eb89e180cd034459e9b2ffd45a3533748", + "collateralIndex": 0, + "collateralAddress": "XvcUtRekWrCoT4CF9USDo2nLs4zQaaPaHF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.18:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2127904, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987015, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdmS15UxQNq1GksLhbAwrcvkmzh2R2bnra", + "votingAddress": "XdmS15UxQNq1GksLhbAwrcvkmzh2R2bnra", + "payoutAddress": "XgWgyw4kjqgMuG8B59FY5YMBDMCc41pPNZ", + "pubKeyOperator": "82ce1d6a7f58a0f82af51ce99209555d7b43c3328036deb0c01f645dd4c2e4631135900937b8b18c3ebf5192fe215616" + } + }, + { + "type": "Regular", + "proTxHash": "2c41989563fb0caf8580c89afbadc6443a1b852a26971b4336681f34e4231862", + "collateralHash": "38e0c8e15a37de1d1446629d25dc3c71794724f5a4aceba352bf5dfe6f090e87", + "collateralIndex": 0, + "collateralAddress": "XyGFQa9NYPXigSbC6tT3P9zuSkXGovfuCV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.77:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2125862, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820898, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdgZkpRPZWr8DRLKpdKUP3MpCZiTqEKuBS", + "votingAddress": "XdgZkpRPZWr8DRLKpdKUP3MpCZiTqEKuBS", + "payoutAddress": "XsUDyGe8WsHpgCjcLm4pC3x1tmP5bRgvso", + "pubKeyOperator": "83da4cca499eff56909809acfc4a79c8fe3ca901430b71952599dbaaa5bcd103761f9d38de6bbe5775037c0e7c1ce373" + } + }, + { + "type": "Regular", + "proTxHash": "8ca15cb36826ba0f1059a3eb7c06805d7b069dd59cb803f79bad7f2289846f8e", + "collateralHash": "859235bb6ccfca94eb9627a004172a9647e1018feb7c699c4b42c2e9be38f500", + "collateralIndex": 0, + "collateralAddress": "XjDcNkctV9qWdkyWdEs5WTuDdyRsjN6CYi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.13:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2127996, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987119, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdRTBciuGuswemxBAwDo2HuV4fpRtUHQpA", + "votingAddress": "XdRTBciuGuswemxBAwDo2HuV4fpRtUHQpA", + "payoutAddress": "Xo4RFVEF9QZAU84h3FiuxCVeUWoc49NsGE", + "pubKeyOperator": "0cf547563bc2dc6c4622e6232f8865f27c8f3339bddeece6ab053207dc56e0ef318ba737fbc3bca03b298fad3f93e775" + } + }, + { + "type": "Regular", + "proTxHash": "d8e26e34c39d79a98ea086e9f64439a7ebabe9626280655c8e4b0664d8766813", + "collateralHash": "2d35e4cdc6c2513479c28b9cebd1bf722b9aa0ffe9d6b59183ce7f95db19eb7a", + "collateralIndex": 0, + "collateralAddress": "XqYDLusrMjWPF3QpUZZNjvkHvV6LjAVEMe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.230:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2126024, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948683, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjwRgy3ff6YDNNSBhDaTeFmeP4Xkte4645", + "votingAddress": "XjwRgy3ff6YDNNSBhDaTeFmeP4Xkte4645", + "payoutAddress": "Xy5oRHhkQP7RAMQAqmVAcTUxUEEtjMkazB", + "pubKeyOperator": "0662ce293367288a2a20709a8e602919bdb529aad4a3c2fe68b0be06b26d71010d8aa98cf23af31973e7fa7f2c4a4868" + } + }, + { + "type": "Regular", + "proTxHash": "317fb910cda4c59e75720b5a1f94c655e3fc85a735ba11627041f0a9fba81455", + "collateralHash": "c079393750920122db2a8997deab0a8b81d2726e6f6122dc79ba20b02d446e1a", + "collateralIndex": 0, + "collateralAddress": "Xiy2nPz598EqGHNGgNiythukUgbPxZ2BwK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.8:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2128530, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmCubEBW69TUwmCekUVwfFZUFomZpH26ST", + "votingAddress": "XmCubEBW69TUwmCekUVwfFZUFomZpH26ST", + "payoutAddress": "XbpnnqMhGUvAM6bEcw3N5s7SfV2siqaXQN", + "pubKeyOperator": "0e9f4273233170e5d0d42786b15eca7fbffb801927b533537652c5021505010256260adc130b8bf47ad154b18f181522" + } + }, + { + "type": "Regular", + "proTxHash": "44f55fa413180961199c12fd79e9280c3f96ecd0ead8f92e3abd6efe28868977", + "collateralHash": "808ded36f2b7744089e211da2ec08e0b7e0cec691ac35eae2f3d4c64e76cc115", + "collateralIndex": 0, + "collateralAddress": "XdRkH4KcJeN5XjSFcxuNqbxaTCXoRb5TS6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.9:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2127917, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1611489, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuzAAmfXEgkgubFE3nwV45r7uDYabbPyHS", + "votingAddress": "XuzAAmfXEgkgubFE3nwV45r7uDYabbPyHS", + "payoutAddress": "XrVH26sWC4XT7h82owL6BQAVvR45JuF74D", + "pubKeyOperator": "0c802fae7c97ee388645e447bd980112271176aa746b483c2b0aa21b96168066b99fb5ae137fe4c94bcee9a981db4a29" + } + }, + { + "type": "Regular", + "proTxHash": "d23c417a1096b21ac366d403a4095d488e3a0c796fb677cf7e56a046609233bf", + "collateralHash": "dc4a750b740da8a314f3c921a7729576b62189a80b0b3118a694d8e2b6368463", + "collateralIndex": 1, + "collateralAddress": "XbwXMbst9r8vP91mcn1nEziJSVpsaGYujY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.14:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2128542, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcSS3yEgVijYNkpNyoUAqwpkt5LALTAgFG", + "votingAddress": "XcSS3yEgVijYNkpNyoUAqwpkt5LALTAgFG", + "payoutAddress": "Xyx2TEg1eigikEvLxNU53aPsGewAPYcvwm", + "pubKeyOperator": "015f3d46d905c60ca66f8c305b81426877607eacc79332005545494ea36a74e7500e67b2b70aace555abcffcdfb9eee7" + } + }, + { + "type": "Regular", + "proTxHash": "00b062b6809f623413bd658d91c6a64c85e34411b72b309fcd0477bc271283cd", + "collateralHash": "5eb1f3f5c9e7421f242155a4f894a4a0bd00da168f8504f332d13242a1e9fb73", + "collateralIndex": 0, + "collateralAddress": "XjRHohGADJLBo8qsxRwQRXPdPiBy2KeBB8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.67:9999", + "registeredHeight": 1028954, + "lastPaidHeight": 2128544, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxPFtuU3iiig6t9Admt2vDC5THH94oFv5x", + "votingAddress": "XxPFtuU3iiig6t9Admt2vDC5THH94oFv5x", + "payoutAddress": "XauLKRwtANviaWjT1bjn5GQ32nNcCt4ByC", + "pubKeyOperator": "8dbb1e4f1bbaff1b496157a8f9d5ecf998d88fe5a2a6011bbe59178990efc6fdaac429ac1d090fc7d3879571426aadba" + } + }, + { + "type": "Regular", + "proTxHash": "bad0ff2141cde6527f589167709d880f3ff127ab0e1c9a545bf1fc8c45d98602", + "collateralHash": "49c322cc054f232fa9353dd995e41fb336d82cd3bc183a5764dfd780b0d7213e", + "collateralIndex": 1, + "collateralAddress": "XqKaf2bSEnusr98nM1UpUDrYVbKSRNSMHW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.108.68:9999", + "registeredHeight": 1028972, + "lastPaidHeight": 2126479, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120423, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeA3BqZK7jBx2fLq4LybExVjEc1pdEZBXQ", + "votingAddress": "Xe4jbGtc2TbK9MDAFrNpdqygBVWG8XnX8C", + "payoutAddress": "XrNbhz5XkituyhBaRCB3RPB94zm2rG93NZ", + "pubKeyOperator": "0eb811dc1ce20c14407b252919d8b3b23ae93f4bc8766fbee3389696e7a9c78e297dd2115447b065f42900e35f789944" + } + }, + { + "type": "Regular", + "proTxHash": "cbb95a31a451914c9fd9462ba650cc179bddd629c2ca65037cfcb04ce2aaeb76", + "collateralHash": "ef6df2ff0901133ab3e2125612d2d63240a6004767b4e55d6f5eaa7db51372ee", + "collateralIndex": 1, + "collateralAddress": "XsHmnuxfp9d5cytCXXsDiCJrCfsEzV4MbX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.243.115.219:9999", + "registeredHeight": 1028974, + "lastPaidHeight": 2127637, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaooBphi52MmWQXfDKtynemPcDAV6FK14z", + "votingAddress": "XaooBphi52MmWQXfDKtynemPcDAV6FK14z", + "payoutAddress": "XpS61fY3tTERiQsSdKY9K5C9KZFwXtWAGe", + "pubKeyOperator": "05fa562a0470028da4df4a35186787680ebd36c995c0da815abd2ddc6ab9e95769eef7cedfbf1640a5b3c16b119a4ce6" + } + }, + { + "type": "Regular", + "proTxHash": "d345010cdc11366cfc417029a4dd459ee0196064af898173b50918e60165fc3c", + "collateralHash": "23c01f75391dd5a7608fb39991b12ee06efc75e9a04d6a4aff739dec2cb4ea32", + "collateralIndex": 0, + "collateralAddress": "Xiw5TmPcwkLNFC9UYHfUsw6x6t2wTgW9e1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.69:9999", + "registeredHeight": 1028978, + "lastPaidHeight": 2127861, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1620089, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnVv5e6Z1ETU1FNont3FJRzysQz34BKuyG", + "votingAddress": "XnVv5e6Z1ETU1FNont3FJRzysQz34BKuyG", + "payoutAddress": "Xqmc7bjbzqzDVXNX9JnmKZuiG7KNPe5k33", + "pubKeyOperator": "93e30dd89474d8016a5facce14bfee27c44f4e705590278068c270c29543762e5d854fb696afb6dca9f43ec815a0cfb4" + } + }, + { + "type": "Regular", + "proTxHash": "cae3d13451f45f15cd134bca43b76664d3997ae6b119a5494897b8ea9a7dbbc3", + "collateralHash": "bdff7042f9454406088c0b5a4b7637d91f5a66a1ce4fab775de80138648c38d3", + "collateralIndex": 0, + "collateralAddress": "XcGdCThbEZAhbvTWzKQgbn9J7ffM2QUCW1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.56:9999", + "registeredHeight": 1028978, + "lastPaidHeight": 2128676, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc5FVUXt9skmq6D96w6duBgWdG8eoQifi6", + "votingAddress": "Xc5FVUXt9skmq6D96w6duBgWdG8eoQifi6", + "payoutAddress": "XgGae326eo8ngfnRfv16mC2n47XLLKiA8v", + "pubKeyOperator": "8ccef098e3bd942906ebf19e58a5022960018de619446459c515b1c6d294d07681e8c7d09458a7dc54c9c561e96a845d" + } + }, + { + "type": "Regular", + "proTxHash": "2524850ab5600627d88f68f44c76e0558a326ed12febd746dd5ef05f9b17bb44", + "collateralHash": "4ea2066ca14021eb261f4dcafc9733caaea22a3deee6ff7f4cf94c1bf7c174b3", + "collateralIndex": 0, + "collateralAddress": "XhDUuhSPCXwtv7YcNaCPKfYw2SbS2qKuP1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.142:9999", + "registeredHeight": 1028979, + "lastPaidHeight": 2128681, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgAzdfnzJLBzoK4ykkarBAhARna8g78nq9", + "votingAddress": "XgAzdfnzJLBzoK4ykkarBAhARna8g78nq9", + "payoutAddress": "XjyXRMNyGwRhnu1mhyQPa2wd3s57Py3mek", + "pubKeyOperator": "1487ce9fd2001fc3d30496fdf73ce521369123db23a52f2edcdee20615a4c1ef320a8b166d6a8967776aa988e3f7f6bc" + } + }, + { + "type": "Regular", + "proTxHash": "b4fe56e2c71d9daf251d1fa7a3a62c8429d39e33af4f9cbf79503bb131fde8f4", + "collateralHash": "3b03226e02c30c16d6ab953a25a4c17d3be393410f2af8664063293d25c6d063", + "collateralIndex": 0, + "collateralAddress": "Xrw349x4o245ZeLAaVz75VbyBUgyj7Jdja", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.224:9999", + "registeredHeight": 1028979, + "lastPaidHeight": 2128687, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfXdxWiPbLMMQkXSNm975fgfKu9i3quvMu", + "votingAddress": "XfXdxWiPbLMMQkXSNm975fgfKu9i3quvMu", + "payoutAddress": "XbqtsiUbibr2jfZwWJ5GDR7KfEGZzG9sBF", + "pubKeyOperator": "85767af5c1598737292569382eec3374c8701814348ace4e78c53b44077bc5921a3641920c62bc01ef4ed8ae23fbe818" + } + }, + { + "type": "Regular", + "proTxHash": "c4bbcb3b47169b9082e10662319988e30ae087bc02da848cf7d9ee5fab53de81", + "collateralHash": "4c956e821dceceacdbd7b7fb1e422035254b97c12524a84ec3f03a2e5d0beda4", + "collateralIndex": 0, + "collateralAddress": "XdoFfH7Jb8Jt7NU12mReBMQaxzkzTqVLRS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.226:9999", + "registeredHeight": 1028979, + "lastPaidHeight": 2128231, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976860, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrxRMVG7KNGJUHM4JJTcpTF5nGiC56AYoT", + "votingAddress": "XrxRMVG7KNGJUHM4JJTcpTF5nGiC56AYoT", + "payoutAddress": "XkT5HpouuvEe1e57mwSQTRi35K6v6hKea8", + "pubKeyOperator": "83686e7dd5210cf140cfd41ccebcede0f41dcb4c1ce613b2dbcdb6de4cbde71732dca04bd8c9a81c1128ffa0756589b0" + } + }, + { + "type": "Regular", + "proTxHash": "5b0163e910a64b68bbc87327eb815d9241530e16963ec646bc7642e6d52453aa", + "collateralHash": "89a6f0f8aaa5d0abfcb181449bb8a0adcafcfd1418bc465af9397b8c004b584d", + "collateralIndex": 0, + "collateralAddress": "XiM8vYUMhyGBdbfo2vpbqTNVNeeQrEJ51E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.140:9999", + "registeredHeight": 1029002, + "lastPaidHeight": 2127958, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1611617, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsymQE9jbtWwCHLYanZNug24HpTpK8UJiC", + "votingAddress": "XsymQE9jbtWwCHLYanZNug24HpTpK8UJiC", + "payoutAddress": "XockbyPuXeoWumNnvn1ePUmEykRxTuCH18", + "pubKeyOperator": "0f3c5db4d829b4279d3970f628e7567b79063019f722217e9f3ece39557e5626410990629a53916d8797fc772c7cf1b5" + } + }, + { + "type": "Regular", + "proTxHash": "c8e075fc6417d32536f1d65b6a9410f74ae4bd85ddb24bb01ba479bbf260e8e3", + "collateralHash": "921e9cbb37b94f1e80c03e336df574b28d4a3a887e6be888c24bdd1a8201096b", + "collateralIndex": 0, + "collateralAddress": "Xkfa2kkZs3wuBVj2xYTc6WEZvuHs25sF1j", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.65.114:9999", + "registeredHeight": 1029003, + "lastPaidHeight": 2127255, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmv4fSX8jJ16ZKToJBcBHgqM5HKv2DPzCg", + "votingAddress": "Xmv4fSX8jJ16ZKToJBcBHgqM5HKv2DPzCg", + "payoutAddress": "XiMLFpK3UciwEhvQHuhx5kBk3CwARg4tvm", + "pubKeyOperator": "914ddd3e0982cd0354263f64dcd38e66a1a9e1d31d32a003795f0943d082e258f0777d03d0faa2f0d86279a0776d67c6" + } + }, + { + "type": "Regular", + "proTxHash": "eb862ce19646aba03b115f5085170e0290981d896996083c09dff5fd337e1fb8", + "collateralHash": "46c5f0cbe8e9612575c87051cb0fa6c0d3dac3b598285a8ce3c7e09837027df7", + "collateralIndex": 0, + "collateralAddress": "XdqCKNsn2hcKtTbMaTL2sKRUWWvqJty891", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.168:9999", + "registeredHeight": 1029019, + "lastPaidHeight": 2128858, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu4PzVQF4QDPy2BEZefLGdrk6avBy7U2eg", + "votingAddress": "Xu4PzVQF4QDPy2BEZefLGdrk6avBy7U2eg", + "payoutAddress": "XeRE4wZB2W9f6DRnYgpqzR8NsCXkcFAPp4", + "pubKeyOperator": "92cf219768bf95e594983a850da2ae975e98198f83c8c1eb114ce1ac8fcf1ff8b60b9593a4da3b71f236ffb49f73997b" + } + }, + { + "type": "Regular", + "proTxHash": "f7b0bd6d214f9c39301a1fa1b9a3e8ed4c0edbb25f1d90a28acde88e7ae87ead", + "collateralHash": "7c4eb4d44054e7b03c74864ff4984aaf7b9ca8fb0b6bbe56b7b1b737dffc046d", + "collateralIndex": 0, + "collateralAddress": "XunEbJdBPNx8qW8iLGmvhUC9wz1BvQodho", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.100.248:9999", + "registeredHeight": 1029021, + "lastPaidHeight": 2128862, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcwnnzptDKhaFgmUJznZiirnFEb6kv51em", + "votingAddress": "XcwnnzptDKhaFgmUJznZiirnFEb6kv51em", + "payoutAddress": "XoWSv6USTowQZAkuydS7X4jAtbDX9m5kRA", + "pubKeyOperator": "87cd1eac172b1fb108fb98ca70e58659da59fbf5ced7f1ebedf5ab838294e25814ce857daff97ebbe047d62d1f2c1ca3" + } + }, + { + "type": "Regular", + "proTxHash": "41074c1102d82f772f2f6a13ed200a8af070d4403ae23953e5c7138337aa44da", + "collateralHash": "4f34b4e365ab7a16a26fd74135e6fa1503425d5004d3ebfff82032fd5c7fa3ec", + "collateralIndex": 0, + "collateralAddress": "Xg9EocpqvdRbAkzsHxNewKdHGt7ZTQAzYK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.209:9999", + "registeredHeight": 1029021, + "lastPaidHeight": 2127734, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1473662, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgDfiYngw9J2Ufc7DjHp6Vm4UkuZeWDLKg", + "votingAddress": "XgDfiYngw9J2Ufc7DjHp6Vm4UkuZeWDLKg", + "payoutAddress": "XupxaQzBhRKtAp74qEcRerAnDzXnmmzeu2", + "pubKeyOperator": "15becf08436079ba7c612a8dc96eefda1e306078b317784af0ed282f288bccdfe5e4f822a555cc97332869c7b0adadf8" + } + }, + { + "type": "Regular", + "proTxHash": "74d432b149279e1267129f97092738c5dc6bb0c0f2218edd4a3c741b09e32de1", + "collateralHash": "cc51db2e030fd591a852ffc8a82567922db1da89df95822bccdfc5a6f8ffa798", + "collateralIndex": 0, + "collateralAddress": "XwEdd6uj5CT6CkAR4GGnabXhEHB8FYHXN7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.99:9999", + "registeredHeight": 1029021, + "lastPaidHeight": 2128863, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxTkBvZ2gy7tsND7SR1qs2rMhcsLGq7MWy", + "votingAddress": "XxTkBvZ2gy7tsND7SR1qs2rMhcsLGq7MWy", + "payoutAddress": "XtqBDpvVNkYnjYBgkmyAqdNn84ms3VuiWK", + "pubKeyOperator": "9770a91e47e983c4526d905f37777954a6ee409e345325a39c325a86f2635caed5096d7e3d2dfadf8acc293cd3b1c126" + } + }, + { + "type": "Regular", + "proTxHash": "464633648cb123879f3415a2a5bd6e282da43921119f9adf2e5c399bffb0efa2", + "collateralHash": "baeed5c59bcfaaa0fb7bf29adae871aacb4b0cdeabfc9108dbcf2fb56f5c7b1f", + "collateralIndex": 0, + "collateralAddress": "XwBi3s2fgST7XcYzAoUUevDzfya2UWUu1k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.98:9999", + "registeredHeight": 1029021, + "lastPaidHeight": 2128860, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrN7Y5UHTYLZSPfaw1gVZcgZazCBeq9QwN", + "votingAddress": "XrN7Y5UHTYLZSPfaw1gVZcgZazCBeq9QwN", + "payoutAddress": "XiQV7eu9w4h6PFNEo5m5noUabJebignXde", + "pubKeyOperator": "021c8bbbeae8dcdecfb981bce45a72f6b3921154e772371ad266613785211307754232581cb314c25493a9d23a26cbab" + } + }, + { + "type": "Regular", + "proTxHash": "5fae706fed2344c90c8163bd2321627c81bf9f2c08bbdb960387e2aa695cf77f", + "collateralHash": "a6c6ea173da2e67f0506ee9d08f29be6823d421c6c5aabc6e78b2bf18f035f4b", + "collateralIndex": 0, + "collateralAddress": "XgdUmfUqcZtGepkfqdtMzYetzWacdrS5FF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.221.24:9999", + "registeredHeight": 1029025, + "lastPaidHeight": 2126563, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1570106, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgYtAoznQeuc5Ad5M33NYZSQGEP4GFj3vG", + "votingAddress": "XgYtAoznQeuc5Ad5M33NYZSQGEP4GFj3vG", + "payoutAddress": "XtmHPhq9ogKP4gaHGBWP1eojqjVo91LjN6", + "pubKeyOperator": "82867c36ceb8f26d1f85364c6a2fb778929019006539d49038919f3d7927bb594fa84d1cc3a655b2f552ab12f7b16bcf" + } + }, + { + "type": "Regular", + "proTxHash": "c2f404620a1c24c07308b62b3bea0a11fc006c10d42f92759bb0c8a4b6de6940", + "collateralHash": "8d2ded17d4c44bf55afbaada0e09c0f80363870b4cf105d377dd3ba2128f6958", + "collateralIndex": 0, + "collateralAddress": "XcWEv6JRERwqWq8pqDuYJH4Sdq6FrYVr47", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.35:9999", + "registeredHeight": 1029034, + "lastPaidHeight": 2126985, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761181, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkyZqFNsMcwmBsy4WkaC93yCcCNXCHqXGy", + "votingAddress": "XkyZqFNsMcwmBsy4WkaC93yCcCNXCHqXGy", + "payoutAddress": "XayWoMGtKnqugLJ1MEiRfqy8jrQVY3uqd8", + "pubKeyOperator": "81b285b858e2a4221aea57bc70c7bb3d800229e6164baee7955429acda11b4281428b4e665f6b351c52cfb461e456be9" + } + }, + { + "type": "Regular", + "proTxHash": "81318461d3a453ca9d900fed0f19808dd8ab660e6fda44c55ec2097b285cc8e2", + "collateralHash": "e6a3c97259316674f2571eb521269ffe7a2ff9e07c6419f942992ec8f4ef77ff", + "collateralIndex": 1, + "collateralAddress": "XcSpz8AdYGVWAmBzBdkoQzrkToc6hWESS4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.215:9999", + "registeredHeight": 1029035, + "lastPaidHeight": 2127647, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XevU8k1zMzLbk2BriHG8diWwPVHKRjcuA1", + "votingAddress": "XevU8k1zMzLbk2BriHG8diWwPVHKRjcuA1", + "payoutAddress": "XqRrWeX4Y9HDx1yJUNgZBUjmHCY4whAgfi", + "pubKeyOperator": "91cf78e72aa5f2c07018b92feb6f33e2a2aac6b16e592df6797a83799f0155327d07fce524f25e09482aa4ec6d069a25" + } + }, + { + "type": "Regular", + "proTxHash": "438d296e97c33a8be7036f8d298d92469a5d54811084095e59fe8b29fb6a1102", + "collateralHash": "7744a3a529c8104c79083a8d14557717a5cf8f47b04c38b13bdfafe765f99769", + "collateralIndex": 0, + "collateralAddress": "XdNWRUWZrzeaGSiJLjUTY3Hzdtur2YuqeR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.38:9999", + "registeredHeight": 1029035, + "lastPaidHeight": 2128886, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn5SqDRa4wdmjxNcvx4SJfs4RpaXUhMFGo", + "votingAddress": "Xn5SqDRa4wdmjxNcvx4SJfs4RpaXUhMFGo", + "payoutAddress": "XjngpHxtS5hbxoLjHTASvXqGWPteYJXVZa", + "pubKeyOperator": "06cfc8655eedd59cfc4145fbd2c0d2790215efaf07e315dcb1b9808be64e980dcdd2348cefe84641e047ee56e7153981" + } + }, + { + "type": "Regular", + "proTxHash": "bca5b528092c64aea0f35c3076909a3c916b72ba65cf4e2d0a7f68fd0fd7a350", + "collateralHash": "35370e2ac5bd7e5f1d14032a8fa7b7abad0a503c70d3c4763fc4f4fe16a1da5e", + "collateralIndex": 1, + "collateralAddress": "XoTswGSCwm5a6cCNuzs12ZWyMqb24Ssc6M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.128.136:9999", + "registeredHeight": 1029035, + "lastPaidHeight": 2125907, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2089305, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrEbLmw6psPE5gu6aNfy8RUfebQjTJyenZ", + "votingAddress": "XrEbLmw6psPE5gu6aNfy8RUfebQjTJyenZ", + "payoutAddress": "XoTswGSCwm5a6cCNuzs12ZWyMqb24Ssc6M", + "pubKeyOperator": "8f73d820e1d4b2fecb4148c699026aecd4b8bb2314cb7d299eb0cdae44001f63fd56dc6d5a2545b9163c36309aa5615a" + } + }, + { + "type": "Regular", + "proTxHash": "a6efe6505567b18706d6990ec60d9a74866bde28ae7cb0426b6b555c88656660", + "collateralHash": "a7ae25311c1d6c565936a11c5ca68bd75fb81e30fb0bb921e4f62c020d999638", + "collateralIndex": 1, + "collateralAddress": "Xd5zh2dcLzSkVSnE3qB56KJXTNfVfzPffe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.159.48:9999", + "registeredHeight": 1029040, + "lastPaidHeight": 2126736, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1899570, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcKPwtixhhkNCjWqUST4qzCtEyG2DqqDuF", + "votingAddress": "XcKPwtixhhkNCjWqUST4qzCtEyG2DqqDuF", + "payoutAddress": "Xd5zh2dcLzSkVSnE3qB56KJXTNfVfzPffe", + "pubKeyOperator": "88dfa4b1b0be528f687d516a76a8597fbfcd2bbb787f45160608d0ea1b103778be1fb65bde20ecc8d6dad2aed52ddea8" + } + }, + { + "type": "Regular", + "proTxHash": "16ca7584b2e8a50b3778ac919d24a7f82bc72ad95c79b77e398d7f751211a975", + "collateralHash": "29e680aeca17f666ddd65d55c5217751be2141b1837510b94819c7176565e5b7", + "collateralIndex": 0, + "collateralAddress": "XxKbjVqDTQBwy9QArZLu5oNpzfH3c2v1xC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.68:9999", + "registeredHeight": 1029057, + "lastPaidHeight": 2127651, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986818, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuPWZqCuJJ2Fhv8bh7rCh6CcfTcoeG2xvM", + "votingAddress": "XuPWZqCuJJ2Fhv8bh7rCh6CcfTcoeG2xvM", + "payoutAddress": "XnJR1NAZjEmiEyoZfKXuxNN1GxvidoYXda", + "pubKeyOperator": "85cdfd7367bdf06e8fe870d98bb071f731b1652c63c643800aa59adad12f360291d40361faa1d463708a01afae1c1496" + } + }, + { + "type": "Regular", + "proTxHash": "b4429f77d4fde0932405d2fb72ef37ae0c014814c50a16bde2a7cee6cf1488b8", + "collateralHash": "e7b58da1ce2687038f348a9b2b9bdf84203d127c2d3a4ef85616ee6cfeefb0b1", + "collateralIndex": 0, + "collateralAddress": "XsjvUP1gYx9HFRp771yMiNf18ken1Lswbc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.10:9999", + "registeredHeight": 1029057, + "lastPaidHeight": 2125745, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XonRQZSRaynYZ19Pmjtji3iLaH7KqCZSjM", + "votingAddress": "XonRQZSRaynYZ19Pmjtji3iLaH7KqCZSjM", + "payoutAddress": "XkjHjzrhTXtocjm5nyuP751Egpp6hYysJA", + "pubKeyOperator": "17c265f846d8d9d7a9a3f1d797b870a9d94f4bacd623e5e3c26fd606b321c469d29ec46a1d863cd4e718c68c1911b37f" + } + }, + { + "type": "Regular", + "proTxHash": "0940ab0f9a7cc88feef76a2fc9d87c1420ba350de86c2baa5ff158508230c6d3", + "collateralHash": "4168d2406543c3c56882a75cd1b6e18e9aaa19a5b71e38583a4dad69af697346", + "collateralIndex": 1, + "collateralAddress": "XvzpAFj9j6sMDnCaLFmCTg9L8zF6m1VKD8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.90:9999", + "registeredHeight": 1029058, + "lastPaidHeight": 2127749, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986847, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvW4wJDt83AxQSpsYiGYybo8M55FSiWevF", + "votingAddress": "XvW4wJDt83AxQSpsYiGYybo8M55FSiWevF", + "payoutAddress": "Xi1TxAcXzWFXtVr7ZJTS24BwqBoiuMwT7i", + "pubKeyOperator": "80d722388521768129bcc20f0a719f603233687d2f3acc6d1833dc0c25931a33d3b3172bd8290a91d942a1be409834a8" + } + }, + { + "type": "Regular", + "proTxHash": "f37ec729b0328e2f914559e9c89c54b104377cfc2e342a0d2cce2e69488193b2", + "collateralHash": "62bb47bb939a5f27512688d3062da8119792af457d2aacd821dd6bd434a25417", + "collateralIndex": 1, + "collateralAddress": "Xus761yQR4bEsCbTXxEgaX2cWRpkYqwG65", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.163:9999", + "registeredHeight": 1029058, + "lastPaidHeight": 2126851, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1871828, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcbTdC63uCa5AWpogQovNNsZKPtdFJsQB6", + "votingAddress": "XcbTdC63uCa5AWpogQovNNsZKPtdFJsQB6", + "payoutAddress": "XsJ2g9ovY4ZMfReXuqmR5JMRDBYvmknzaJ", + "pubKeyOperator": "0332993c6c856c34f0c4c98ff848d5fdfc5468b8a07e71cc78cb22545f57b81d51d7cd5295bbce3ef530476cefc2f361" + } + }, + { + "type": "Regular", + "proTxHash": "347392831a07429acdc3859afd140f8e1349814f0ebff5af5bf62e121641ae16", + "collateralHash": "c63fe7b3719e95d3184e7996ffe7af35161d6a263298abc628d7db0eab89efb7", + "collateralIndex": 1, + "collateralAddress": "Xsqc9Zq79Aps3ueXwYrTK7oyrunTh2VrhG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.164:9999", + "registeredHeight": 1029064, + "lastPaidHeight": 2126960, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695453, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnCDP96i3QNKMw2j3aJx5s4GUWf366YZTe", + "votingAddress": "XnCDP96i3QNKMw2j3aJx5s4GUWf366YZTe", + "payoutAddress": "XoiByUEcDTSSWL2XheLS3vBQ8QFjjJ1eGT", + "pubKeyOperator": "108e03fd4b6af6cdfd223f90f33a62ac84783a28a5a43f366eec81a6870b0e2c8a406b8a23d59df926365b94048c27a4" + } + }, + { + "type": "Regular", + "proTxHash": "40cd8b1cb048b22f905b11a5250e14ebc51c4b5b30e51878c7a49e95516d480e", + "collateralHash": "ede6769dff78aa6ca58a73831b7cccda521a8ed7b1a86882060e785de5cba193", + "collateralIndex": 1, + "collateralAddress": "XqfEkowLW4kMAA7jtctAwCNBzmAEUe2ZFQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.91:9999", + "registeredHeight": 1029069, + "lastPaidHeight": 2127554, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1278814, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp7Fo4jXBJbtsMT7mM3wnXXMKMCqgDSEgp", + "votingAddress": "Xp7Fo4jXBJbtsMT7mM3wnXXMKMCqgDSEgp", + "payoutAddress": "XsMd5XxhTbWjiLcniSUjtXA6Z4aYCjcvxp", + "pubKeyOperator": "99e9a924c7c67cbb77945393fed3193d7bfd18d410394c6dd8f02a2e1e2a8b3dfbb6a33005d4da2a94cb370b1ffa9f12" + } + }, + { + "type": "Regular", + "proTxHash": "81aabb72da033570dcc3baf74c4e37a0ef449b4bae9cfca508b43b98211272b8", + "collateralHash": "58fad641982c8a4879112624a918030a34a70483151b7ef9d47e3539e1718783", + "collateralIndex": 1, + "collateralAddress": "Xs9Xiei44UfXNxPELW9oiwBPhwLcLm84Ya", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.19:9999", + "registeredHeight": 1029069, + "lastPaidHeight": 2126997, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986173, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdcnw4Pkdkc9kE1zUsVXzKtkbHiEakWPeV", + "votingAddress": "Xdcnw4Pkdkc9kE1zUsVXzKtkbHiEakWPeV", + "payoutAddress": "XjwErABymqQyvyhW6d6X8V1VMM7CriiWPk", + "pubKeyOperator": "1983508d97551b8821aa657d8913e1daecbeeec0965b1c89f11d14357706f4015201483d3dcf9cb130d8b2af4a40680a" + } + }, + { + "type": "Regular", + "proTxHash": "08bef1551d9a44b7ed99b8f880963c67509868de7d8818acff71066f3dd3920c", + "collateralHash": "181771a33451b92825046b4f7786e1d92f151019e104452ca9af7be5b1f96717", + "collateralIndex": 1, + "collateralAddress": "XaqEoJE739bV8W9YVPi4Bbni6tsGBpqZLC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.165:9999", + "registeredHeight": 1029070, + "lastPaidHeight": 2125885, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820940, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbea8U5vcTixcFtiZpxsLVENXgBK3LCfiA", + "votingAddress": "Xbea8U5vcTixcFtiZpxsLVENXgBK3LCfiA", + "payoutAddress": "XinEsvDCXrvctGQCuyqSiVLN21GzFzSron", + "pubKeyOperator": "87533414b8dd916a726cd11ef2b2c3f5be32882991908f917f354ec5ed39eba2101e5552011fde5a41a0dc59feb9552e" + } + }, + { + "type": "Regular", + "proTxHash": "c79b739a4538f137c26d17bc0670e3ede98630171f08317185c3a33254abb04b", + "collateralHash": "86bc2f8e5b69e120130ec8000b38357f4dbea660c6707ede7a59e83ceccde4b0", + "collateralIndex": 0, + "collateralAddress": "XpHHtpLLiSKJB1jf18YtWy74ZhYEK3GQfs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.15:9999", + "registeredHeight": 1029070, + "lastPaidHeight": 2125755, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvqVKSNTQzFKeWAMARm5JNSzutME96KWWt", + "votingAddress": "XvqVKSNTQzFKeWAMARm5JNSzutME96KWWt", + "payoutAddress": "Xg2usfvHAjpkYQn6wKqEewvjX7tAGqdDWX", + "pubKeyOperator": "85cdfad1dcfd2c1c6c55304d2b8a658449602d5be60357b28ad593350bbd76d71e2552b395f97e59a93f8bdc81353ae9" + } + }, + { + "type": "Regular", + "proTxHash": "be3202a2c405a5c4624fe761a78fc2ec7ec9db15e865c569c953d96136f38792", + "collateralHash": "3e8ae12e86959111ccf67f469e60ca43cec8ae858ef99694144b20d3ab961970", + "collateralIndex": 1, + "collateralAddress": "XhHMb6J8XRPnXkNKUdNfrvdMTy78t74KKD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.14:9999", + "registeredHeight": 1029070, + "lastPaidHeight": 2126112, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948741, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpebzR5Ezy8mUeQFSfTt38NYsgEvafH8Ao", + "votingAddress": "XpebzR5Ezy8mUeQFSfTt38NYsgEvafH8Ao", + "payoutAddress": "XiMd24Jp17s2hqjGFtV5Hokx56bpr2xGnU", + "pubKeyOperator": "9788958acdbf8e8b738c055caeb615d1b5ab0be2ec70fbb6537d83b51b2c02954c1879f38c8aed67db9bffb4570f1745" + } + }, + { + "type": "Regular", + "proTxHash": "431fb10dfe87bbb8c4d5cec90091461a2bc7aef52e4c6ac245e727c3a5c319e3", + "collateralHash": "7ba726b3141bc74676303168b63c9a8472ea64a487854951b5be0e53c67b350e", + "collateralIndex": 1, + "collateralAddress": "XoBAporChtwdf1NvTKRgB45JkdUW6394Hm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.144:9999", + "registeredHeight": 1029075, + "lastPaidHeight": 2125773, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyJX1f8miZUfAfvrQNFW3g45NPCeuharWW", + "votingAddress": "XyJX1f8miZUfAfvrQNFW3g45NPCeuharWW", + "payoutAddress": "Xk9qiYwxzDCSaZWMnfRLPxx18b2EQN7q8P", + "pubKeyOperator": "14e214f55ee8d991b947c42ba29b73db70270e294c7290a7c84c4490e7a80a9bf0f0876ff6bd8137a5fa869f8b35c083" + } + }, + { + "type": "Regular", + "proTxHash": "76b5a12b116fa98eaac9d4e127e1d84baa771b863b3cb6c0992e52620ba3b0dd", + "collateralHash": "c2d1c067c6feeaacfd12db1af082e32b6596c75566a8626d8ea1694bfd7c4ce2", + "collateralIndex": 1, + "collateralAddress": "XgU2yCRBEZFjtHAPbeQYdpvNapLSwKq6fb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.156:9999", + "registeredHeight": 1029076, + "lastPaidHeight": 2127645, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoBae3GShmUC1YZPf2zdr8LKFDgwc3Ly1Y", + "votingAddress": "XoBae3GShmUC1YZPf2zdr8LKFDgwc3Ly1Y", + "payoutAddress": "XgU2yCRBEZFjtHAPbeQYdpvNapLSwKq6fb", + "pubKeyOperator": "157e360dbacd9f8a4db15ab03fe5f44d4c6f019258753a86ae8954040b23dc048eb0b12332353d61de2625e896922fba" + } + }, + { + "type": "Regular", + "proTxHash": "1844b1eb7bb1b2228ff0b4d61f2a8bf2a65a9008d12da01c474df3ca8e2981b5", + "collateralHash": "7fd0a64b1336a6fd67435879c27016381599b97347a703c8184249672c608390", + "collateralIndex": 0, + "collateralAddress": "XdtZDkUoRpNHTcSgweP5kuYJ3vpjTBkqB5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.208.231.28:9999", + "registeredHeight": 1029114, + "lastPaidHeight": 2128236, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976861, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJg1UAKkA6825CxJJboiZcRLdv7Q43xoQ", + "votingAddress": "XhJg1UAKkA6825CxJJboiZcRLdv7Q43xoQ", + "payoutAddress": "XceyXYmVSXSA5Dyfvu9xJ7nWGa1yYdY31h", + "pubKeyOperator": "94cc2df48ed7197d479337ff9c30d374ccbfac3f6a67f81fcb96573625ee418f3249a6ede19efb2d47ab739769f091c8" + } + }, + { + "type": "Regular", + "proTxHash": "d82b40380059e3417da1d00a6a6bcca527cf886288c80a4e05e2870a078f0ddb", + "collateralHash": "d857fce6a7d99e160ec7ff865b98c6af4bf9320c900c96cdba70ba9490208cd5", + "collateralIndex": 0, + "collateralAddress": "XmZobGv3ZZHwDzvnrJi3QkbbouSm4uWRpN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.120.66:9999", + "registeredHeight": 1029130, + "lastPaidHeight": 2122071, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127429, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbTMFmYqrtCdnSDTcKodkMNBpVSyykD9VW", + "votingAddress": "XbTMFmYqrtCdnSDTcKodkMNBpVSyykD9VW", + "payoutAddress": "XmZobGv3ZZHwDzvnrJi3QkbbouSm4uWRpN", + "pubKeyOperator": "94de03921db225779ee4dbdc3c73efd2c043559c8b23a291264a52a0ae7d19ead392d89ca7cc981f96b52666bd3b6f15" + } + }, + { + "type": "Regular", + "proTxHash": "d6a0f58cbb0b58d1819ee119184410bd1df9fd60a66d2fa2bf210900ca92290f", + "collateralHash": "44df6d1a025a254937844b10c84b3d22f2e12a54dbaa9e70ebbe94ef260e016e", + "collateralIndex": 1, + "collateralAddress": "XgYXwLZg61qBAwT6S3fF3g2jbAw2MLRGez", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.207.72.151:9999", + "registeredHeight": 1029147, + "lastPaidHeight": 1604388, + "consecutivePayments": 0, + "PoSePenalty": 4588, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1606907, + "revocationReason": 0, + "ownerAddress": "XtbzeRAVZtxraXQd9KCzRqW7h2dMwDnTGA", + "votingAddress": "Xrf5BDJ2XTvnQTUiYraPhHsJXVFSmNknwt", + "payoutAddress": "XgYXwLZg61qBAwT6S3fF3g2jbAw2MLRGez", + "pubKeyOperator": "8580cb364986c0e4d40e6bef560df5642347a67729ac742290e4e0b5aab86370db87f6b397ef6d66d6f5d135155705c3" + } + }, + { + "type": "Regular", + "proTxHash": "847f7390a1e5d49ed9fd0578d90bcea8ee077d68da2835a69fc0082550dc3159", + "collateralHash": "cbe72314feb2c6dd63141296eef9afeb643ca2ae84f0c401c9647e7df353b14d", + "collateralIndex": 1, + "collateralAddress": "Xx1o6SdXPzmy65dRcCWuvkodG6X2VHgKqQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.203.244.188:9999", + "registeredHeight": 1029154, + "lastPaidHeight": 1604433, + "consecutivePayments": 0, + "PoSePenalty": 4588, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1607051, + "revocationReason": 0, + "ownerAddress": "XhiNVrXib8gYQjBxxe5CFV66G8H2XN6UXH", + "votingAddress": "Xxd2KAyFzjcAzaXrTyNvrdHLMum9zwL7q5", + "payoutAddress": "Xx1o6SdXPzmy65dRcCWuvkodG6X2VHgKqQ", + "pubKeyOperator": "93547e0589c8aea352e15765cff3a40eef88d96a9a8e28db62607b14dd81c95de775173e52e478169310c5b72e75f1ec" + } + }, + { + "type": "Regular", + "proTxHash": "ab0a9a2c15d8782726109d56e072ea0b91fdaca7e22db7e283a746a15ebe3229", + "collateralHash": "c22db674db321dd1e91cf9b655a2f1a0586a69236048dd8bbc0f066e60b679bc", + "collateralIndex": 1, + "collateralAddress": "XgC9WunkiCSSL21oRvueeeAKDdabM1qkJu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.145.240:9999", + "registeredHeight": 1029159, + "lastPaidHeight": 2126798, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120749, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XynAs6ZzCGzmb7UaWzjxVadaKVpQ2Q9hov", + "votingAddress": "XynAs6ZzCGzmb7UaWzjxVadaKVpQ2Q9hov", + "payoutAddress": "XbigWQJCz3UKKankvZ59HJE4jBS2zkLkQu", + "pubKeyOperator": "015ae9f1e5392a9952a6af37cc548a604d67a3e1b777126c3bd8e44b48c3fdc0525fd435e9bbdd193fd946ea0647bbdf" + } + }, + { + "type": "Regular", + "proTxHash": "ed9ce3de0e37f7eb18f9ac4ddf108f19c531b0f0d21b60c431b85e582159aa93", + "collateralHash": "a037cb4effdf06f3623d509f3e659fc9a3aff0f68959d40779d088b739923544", + "collateralIndex": 1, + "collateralAddress": "XdVBvzTYne2VQzcMckc18n7MLfo1N73WuX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.156.71:9999", + "registeredHeight": 1029258, + "lastPaidHeight": 2126738, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1768499, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnqES437jyft6EPkWkDp8n86ANtch9amtx", + "votingAddress": "Xpg31TuVe6ywL91FAmruZTZBiMmf6osw6h", + "payoutAddress": "XehJtdbhKFChLFM76uMpR9oE7kSTCaFEGf", + "pubKeyOperator": "80b84cff0c18d98c9aa2c0323d72d79a91344683594b5657f7ac3bed74797b400e8800367eaa2c8725085faefcc679a6" + } + }, + { + "type": "Regular", + "proTxHash": "4155cffae0e53761c8c763181be5fc656dbf5a4bd6ae3b1e86c3f70094f579b2", + "collateralHash": "0299e278050060e81b4e834e099b0e92a22d633683fc8a2c8555010856b6a17b", + "collateralIndex": 1, + "collateralAddress": "XbyEmfaixBbnM6qv4mrc92mPMG6QQp3C7n", + "operatorReward": 0, + "state": { + "version": 1, + "service": "92.60.36.89:9999", + "registeredHeight": 1029304, + "lastPaidHeight": 1972740, + "consecutivePayments": 0, + "PoSePenalty": 4075, + "PoSeRevivedHeight": 1910688, + "PoSeBanHeight": 1974570, + "revocationReason": 0, + "ownerAddress": "Xt94GeLtDe7hSSX5KtLw77uu2YcqntXvdS", + "votingAddress": "Xt94GeLtDe7hSSX5KtLw77uu2YcqntXvdS", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "1935463522df77ade2c6857041ce0bd9dd4ded6a343b93c423764fd244793ff03b251f8c9a0ac2f552be9784b63973c6" + } + }, + { + "type": "Regular", + "proTxHash": "410585c03167636cdb9493bb76bca7601be00489b50db9376f548a8920205511", + "collateralHash": "f072597843ea19deb73a0e5e81eb974a4b93e6e921aea282ea77508cbe2d9b8d", + "collateralIndex": 1, + "collateralAddress": "XyfpioNniToJS29sXwSBhGftvTN9ixAGYf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.20:9999", + "registeredHeight": 1029317, + "lastPaidHeight": 2126420, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv6wEZA1kr44zR4jKTHCXXRyZvHHsGWybN", + "votingAddress": "Xv6wEZA1kr44zR4jKTHCXXRyZvHHsGWybN", + "payoutAddress": "XdgsNpcyX2uiGn3eXR2JW2RA6GPSjFcddm", + "pubKeyOperator": "96661efd681f5f89f46ac2fd55d6fd38c15d14e924b5aad7992158e8920d79e43c08115ba1f266b4386e2e6796a5046e" + } + }, + { + "type": "Regular", + "proTxHash": "5942017987a75dad698f89eee17e91d587e2e669ce341ed00fc329208f8b032a", + "collateralHash": "222381a85e7d72a23ca7058333489090196fbe8fed3c2960acc0f3ad0ad2a60c", + "collateralIndex": 0, + "collateralAddress": "XpvZPnCnf9s2G6oNGaNZfAEEJZuxefqnx7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.21:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2128648, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1572863, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcESkVRB3aE3s2yixr6dmRz7tEXLUqwUsR", + "votingAddress": "XcESkVRB3aE3s2yixr6dmRz7tEXLUqwUsR", + "payoutAddress": "XjnkC8haDHrdCwLA1LAm1gmvrCpxPSHcPi", + "pubKeyOperator": "0ccbb3fde3de721bf7797290cdbed6f5fa139b6b37bf5c663ad2d668827b52b31e82cf37e2d73c6e43ea0cfaae987ac4" + } + }, + { + "type": "Regular", + "proTxHash": "99ee801e03f78744ad69a1f354c4afee2bd9d49c71ce6ce0ca98810d937d4dbe", + "collateralHash": "7df5bb0d3e97a003074544f18773d4c7852b6c2df71ae887ddcd1c2479b4df0d", + "collateralIndex": 0, + "collateralAddress": "XgFeiQFHdcgz66h1DBtU5qfeMJTadDd3nY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.26:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2128004, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987128, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtVCJxvHJss2k5PgMt2c1Xfva7Kr5oiagp", + "votingAddress": "XtVCJxvHJss2k5PgMt2c1Xfva7Kr5oiagp", + "payoutAddress": "Xr99Q6bybpRMyJfCud39wgrELSiHTgTKe8", + "pubKeyOperator": "911ef413183ef903a6ad5b0d5b1e5a7f0379ba605ae82cf0f673585f2ddef56bcb71068adf03a2bcf5ffdf89f9f117ca" + } + }, + { + "type": "Regular", + "proTxHash": "6d69b7e463b90d7a84665e106f0196d860714bfe2a10cd04582f48fc6906b718", + "collateralHash": "12f4c63faa9ab7605c6751d0d9df5ac8a838d6139510c66decbbfea7c178446e", + "collateralIndex": 1, + "collateralAddress": "XqCtQYcKfgiW5ny8ZyQmQHdXnQWHG2jMvQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.25:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2126383, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1272366, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr5biZZkfnZ6osiF7XMvxaNCQpcAiwPm4U", + "votingAddress": "Xr5biZZkfnZ6osiF7XMvxaNCQpcAiwPm4U", + "payoutAddress": "Xf8jwnhpELCZw16yAeBoXMXGuJPrcUqzks", + "pubKeyOperator": "08d3f26462607a856da1766fd97a53955540f41ac630f7ec7b93e145c6eda8ba1272b8fa92fc4ed622e646568751ecf4" + } + }, + { + "type": "Regular", + "proTxHash": "49fb7756df2c96988b7bc343211931c7a1eea1d65ae5f45aa15e24fffd63e298", + "collateralHash": "5bdb373005b57a1af962ccfee4fb156215ba9767d908f0b065f6b4b370217025", + "collateralIndex": 0, + "collateralAddress": "XvYZekK2u9Q71niMSicqKtE3K7bkDaUJ7d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.244:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2127382, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761624, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj6ZrmKB1vXB4M744QskhzDuNgC2ojQJBX", + "votingAddress": "Xj6ZrmKB1vXB4M744QskhzDuNgC2ojQJBX", + "payoutAddress": "XqVjy5qf5W47VWWUM9XDCkkiabmEWuffBT", + "pubKeyOperator": "0cf8c54eccd8568d4d04663628d3d4f177a4e80559758af495c085c6c8c3c8440654d3c1458f4390ef0128d042581c3d" + } + }, + { + "type": "Regular", + "proTxHash": "a164e170fdffc8037e1f9436e2873df010a588e9431ae14554889242605bf299", + "collateralHash": "522249632aa582c11fd0ca4514e25ade307bf7054550b213428cced8225cba2d", + "collateralIndex": 0, + "collateralAddress": "Xy6zpbjZaCKjpLDLxRgFCxm8oqQ2rgkHUr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.24:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2125802, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820807, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XouZ15GHTn3F5VcRcGdQ2zKyjxrUQeFZ2w", + "votingAddress": "XouZ15GHTn3F5VcRcGdQ2zKyjxrUQeFZ2w", + "payoutAddress": "XxrdFdTnKLujKtYNfUf6Pp13mvoTyj7F41", + "pubKeyOperator": "98a9d9bf82b6dcb5afb63b863fc45c91065d0354297fe25060ce827e9f0d1af25eccb91cf15318f425cb5da27aab2f9f" + } + }, + { + "type": "Regular", + "proTxHash": "ff8b08a613ae5f177482f698efb7b27cf00916debee37b3f221d05f8e5efb2e0", + "collateralHash": "2b258823805f7f9e33dc383653d91660bb4e452ab02f7705a5739841bb163ec3", + "collateralIndex": 1, + "collateralAddress": "XhqxeJuh5VjaYTg1A6miJXrrrSXXvbM2rW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.23:9999", + "registeredHeight": 1029320, + "lastPaidHeight": 2126445, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xow8582yZMb8UnYNAsi8oo4N4eXdPqpxX4", + "votingAddress": "Xow8582yZMb8UnYNAsi8oo4N4eXdPqpxX4", + "payoutAddress": "XdM9NW5fx6gt81wxQM8fZJFxa9gyTBFUUZ", + "pubKeyOperator": "83be89a7c5f82e7607af4503753d8a50699246035c6c9be7c7d10048ff03382739c8de8b7b158a8935554e3983971d59" + } + }, + { + "type": "Regular", + "proTxHash": "37cd1d98a806432d55c363d42f28b138ff1663baabff861235090c5268f9ecb7", + "collateralHash": "143fdc0b05777d728cb8c5a356956e5e6aa809bdaeb6d2b8d1ad17457db8bee6", + "collateralIndex": 1, + "collateralAddress": "XwapbUnDQmyJpbEkHFaXzREJa3oXR22kPA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.236:9999", + "registeredHeight": 1029321, + "lastPaidHeight": 2128573, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004292, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeMHkUNXg6BgyAKnuZwmvhem7tApAtgEUi", + "votingAddress": "XeMHkUNXg6BgyAKnuZwmvhem7tApAtgEUi", + "payoutAddress": "XiRAd7HmdFFxM6ofQsMo8rv9PMJZHep54Z", + "pubKeyOperator": "109ba1e7736fd311758fe471fc7f4b91d522524ac2b56eec73b5c3f988c61584fe2982de7809278d35264e47a1eb68a2" + } + }, + { + "type": "Regular", + "proTxHash": "00f3583e4810e06e454d011a0cde6f61aedab3bdd6153e95db1a39052eb0e378", + "collateralHash": "9820423f3bac08256f8b945d84bc8dcb725aeae22cb08a1a31ca36e31a4eee36", + "collateralIndex": 1, + "collateralAddress": "XkN1qML7m5V8w8PGsaAcCwW9E1QmfQfzY1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.237:9999", + "registeredHeight": 1029324, + "lastPaidHeight": 2126460, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqEDmPRY3V2uct2kv6HczYPzLow3iuJZtq", + "votingAddress": "XqEDmPRY3V2uct2kv6HczYPzLow3iuJZtq", + "payoutAddress": "XvciyBRvqnK2quWMv5kXwUWfYrLqmfve8Y", + "pubKeyOperator": "8766cec62bc40cc9b83f395627514d94780ffaf2c5cd8f8d5abc09a99b89c3009783c48f35b6063e7ec0ded6f14b04a4" + } + }, + { + "type": "Regular", + "proTxHash": "7ccdecdd6ffb52d56513b1f35e5f8f8f842e40b6cc7ef7c02efac3576453d418", + "collateralHash": "5c2a326c38a8d815253ab1d1b02da66145fac086965cd772d4eb384f6809d903", + "collateralIndex": 0, + "collateralAddress": "Xxa9a1yMVsMV2rHcSPGoetHcxjXYTiifa6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.188:9999", + "registeredHeight": 1029325, + "lastPaidHeight": 2126890, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986092, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwfx3czmd6si9cEorXE4J5QWuYch27UCWP", + "votingAddress": "Xwfx3czmd6si9cEorXE4J5QWuYch27UCWP", + "payoutAddress": "XfL8HUSckwByPVt9wvEP5rTAdSs65qepty", + "pubKeyOperator": "9315bf078b52bc1463fd5741950912751944ce133d04ccd48ff8a7e82fcce2f5b751c4985cf5acafb0a3b02aa4a66a45" + } + }, + { + "type": "Regular", + "proTxHash": "05d6c2471b69c0ec8f71c70d78799756c465ae5d91a03344777b0017a8043014", + "collateralHash": "1bb1a8533bf672fa83d17a914540450f2a7714e4fd7e0f221bbe8325a94de13f", + "collateralIndex": 0, + "collateralAddress": "XsvarhZWkW2mkw5ojm758EFfa2B6SP7Tyj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.189:9999", + "registeredHeight": 1029328, + "lastPaidHeight": 2126508, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf3wMa7ehUNa8zQRp3CDGPoPD4QUkg8z97", + "votingAddress": "Xf3wMa7ehUNa8zQRp3CDGPoPD4QUkg8z97", + "payoutAddress": "XyUQHc2vwY2uSpWrP5tVRtyFhjWifGLwEC", + "pubKeyOperator": "146de9f1bdacddddd3161dc2bca21e0f5432290b761967edc92e670df9fcbdf1e476f81c4c2f4d3146fff6c361c40631" + } + }, + { + "type": "Regular", + "proTxHash": "77d23cf380b0005b3f57ffd7ef3913c9f142944327e95b40973a229d1be0f859", + "collateralHash": "e8f30ece3f8f8eed761fb3d1d559d4d8aec26d5825ad547dfe3fee6fdc449082", + "collateralIndex": 0, + "collateralAddress": "Xw13Tyugejc1HujpNQPGVEKAjmmgGAsQNj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.238:9999", + "registeredHeight": 1029328, + "lastPaidHeight": 2126140, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948761, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XucVMj2nHJJLSccbUuLoxQpiBkfzc8iZ9P", + "votingAddress": "XucVMj2nHJJLSccbUuLoxQpiBkfzc8iZ9P", + "payoutAddress": "Xr1q5uZ6K28rY3qPFwZZCUYyCD3KDYRTVf", + "pubKeyOperator": "07ed43e3d431820ee3b36c7cfc76273df658e23cbcc97e77c287b9567dbb696810d23a493bde66b95489081949cbb3a9" + } + }, + { + "type": "Regular", + "proTxHash": "5bc8a264128db7566958c0f8f144e93d0334a8eb8b5a048e9a20a9be6a816b02", + "collateralHash": "c8598f19ad87fa49790d3f1184262293549098f35f2cc14acae5a758b7c8c284", + "collateralIndex": 0, + "collateralAddress": "XgSRaEMSbTuGuhVMxRctFYxFuoxShbvBvJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.239:9999", + "registeredHeight": 1029328, + "lastPaidHeight": 2126507, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwaa2PRBwCYMJJPHFnZAjt9Vnzt9VDUh4P", + "votingAddress": "Xwaa2PRBwCYMJJPHFnZAjt9Vnzt9VDUh4P", + "payoutAddress": "XtY65wjqvfrNMhvjs7GD3mSqnQyfybsQWe", + "pubKeyOperator": "8192ba0ed679cc7bbd23925efd48a79ee17146136465456d5ae3f8f644ffd7baa0b9ced3fe88fa2d35fdef807952b592" + } + }, + { + "type": "Regular", + "proTxHash": "b5da9e91919865ab515979e9868ff97da7e7cfa52cfe922b67ebc46d0182881e", + "collateralHash": "b8ad3ad9d3fda1693168d155c81f9b7c641925e063613994d98386341e4e0724", + "collateralIndex": 1, + "collateralAddress": "XtEkRBBWc4irnryiMuw2uuLhW2XJqtVzKQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.176:9999", + "registeredHeight": 1029329, + "lastPaidHeight": 2126099, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948735, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd5RMYvKA7SB2p26r7DN7khyB3wrcYXZ76", + "votingAddress": "Xd5RMYvKA7SB2p26r7DN7khyB3wrcYXZ76", + "payoutAddress": "Xr6TX5KFP9wKSvq4UmooXv1djgmUz4rmG8", + "pubKeyOperator": "00451bf80050d40a9d7c2b23f0bbac25d82581e08d74eaade0fe44f280abbefb843e4ae8a3316f4667ad20ec8b032f30" + } + }, + { + "type": "Regular", + "proTxHash": "58b38dcb81ddc582ef54b94ce8a7b847ea15728e5612be42d45513e3110d7f34", + "collateralHash": "215dbda087c7c31c9ba7c648bf3478f0fa1e3275ef25af7fdd95976c00f319e8", + "collateralIndex": 1, + "collateralAddress": "Xuyr2grKqhYjYdhxEgbCg61WZDqgZ2LX2m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.245:9999", + "registeredHeight": 1029329, + "lastPaidHeight": 2126196, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1271953, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpvhN1DEhWppF2GjASNKiFQeGFweNLWSrF", + "votingAddress": "XpvhN1DEhWppF2GjASNKiFQeGFweNLWSrF", + "payoutAddress": "XvEaZYAxGtdT4mMgJ6bGbd7JLzkcUeq8GY", + "pubKeyOperator": "0c5e523c4be2c7acda6b71d52fee336131e133cdfc1272768a16e87c28d5c9a0778a9b44cf16e6a0b043382cdcb82d68" + } + }, + { + "type": "Regular", + "proTxHash": "a569acf816ff49a72c18a62bdcc59bb95ed962c9c6ceae2fb4006e30d1946700", + "collateralHash": "e71d353a0daccb2e1e8f840de2f2d044d3f42d8bd8791092b6181977bcafa7a5", + "collateralIndex": 0, + "collateralAddress": "Xaxmqs8nRZjeTmiTSJVmcRUaZLSpr7gTT5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.240:9999", + "registeredHeight": 1029332, + "lastPaidHeight": 2126125, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948760, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuDCe9eAmU9nhQSmwY8iMrUH5bB3qrzPcG", + "votingAddress": "XuDCe9eAmU9nhQSmwY8iMrUH5bB3qrzPcG", + "payoutAddress": "XpeY7R987NXvmqBUaq6hfd41xTLhTvQUMV", + "pubKeyOperator": "1861fb12213ec53e74b34a189a89594f24c670e21ecdd2246bbdc1bb95c00a02191579e8c841cdcc9d58ff82692970cf" + } + }, + { + "type": "Regular", + "proTxHash": "e0675980b1979c33d9df71dc5a27fb3c2e7b0e2b467321049b294cb20c6ff048", + "collateralHash": "fffb5b9a61856d3fdd10570cbba14316382fa15a29d7daf593e322b6dfee1250", + "collateralIndex": 0, + "collateralAddress": "XgxS1VhHp6q45bFd2YUJ645okigAWwtKKS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.190:9999", + "registeredHeight": 1029332, + "lastPaidHeight": 2127809, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876237, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XazT1zZfqETqVEwy9mTSRZcqL6wEtjDbBh", + "votingAddress": "XazT1zZfqETqVEwy9mTSRZcqL6wEtjDbBh", + "payoutAddress": "XqfLo4XdaMGev8KnzRnAwg1AANWXEh5qZW", + "pubKeyOperator": "065c796228b9e6a444c21a5376fa18f94480d5c71dedf481d6e27907e26db7aa0ec4d1faeb216744772fc662315df85c" + } + }, + { + "type": "Regular", + "proTxHash": "de4ec2421addff6d4f16c24fb9cab0751e6a46dec809d6b4e0b100dfe32df6ab", + "collateralHash": "bc150d32a225ec559719546df9369abb7c9db5cea17d6897966d719923334f3a", + "collateralIndex": 0, + "collateralAddress": "XazVXwzJURYuKN48ZHYkCRKmLVgRed3ZWT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.177:9999", + "registeredHeight": 1029332, + "lastPaidHeight": 2126103, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948735, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwPavFNLj4DHHbvsMZ8uSKNtLZ9m9exx36", + "votingAddress": "XwPavFNLj4DHHbvsMZ8uSKNtLZ9m9exx36", + "payoutAddress": "XsebS2xHngnRcb89qiwdtLjRsTVihKLV6f", + "pubKeyOperator": "926f2a61ba75c2ecd369692848e138d8d18b2474422eb1865e044b1078baa361cbad5250760bda6c5470d5181ab6c84d" + } + }, + { + "type": "Regular", + "proTxHash": "65e423fdfcdf0105e45cf9efd786bae90472a2332cfc75db484f4f0fa5aa5e60", + "collateralHash": "cba60508df5c189414f60600f3d0cfef3370ec199dceb0c6d2a4ea3620e26e50", + "collateralIndex": 1, + "collateralAddress": "XbnNSYdFvi9rbZwAsSQhNMxYqAVSdrryms", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.179:9999", + "registeredHeight": 1029334, + "lastPaidHeight": 2125777, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820783, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyL9FHHDTfwofie2rDbGzRjjZQEN8VDv4C", + "votingAddress": "XyL9FHHDTfwofie2rDbGzRjjZQEN8VDv4C", + "payoutAddress": "XhTbhpgWvTb4Ki1cxShsavpDaVHrTi71Vw", + "pubKeyOperator": "85ff78e51f591b465456a2071c0d760a3fbab350a8914701d07e369edd92bf4db71320bf9a572f991070dd936a45129e" + } + }, + { + "type": "Regular", + "proTxHash": "cae8ea64148ed721a5bae7882df125c931266f86a2bd4f47c29723c571ed9178", + "collateralHash": "94f6e909c2a36cb7999bf722a7208419bb1b40ae58d975bf0e58605ee36da431", + "collateralIndex": 1, + "collateralAddress": "XqYp6vLVfDdkJ2977ZNoxeLapkbTWanQPb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.231:9999", + "registeredHeight": 1029334, + "lastPaidHeight": 2128651, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1572870, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcC7W8KwcLjm9Rd49dFC8vyNJ1AY8M5FdW", + "votingAddress": "XcC7W8KwcLjm9Rd49dFC8vyNJ1AY8M5FdW", + "payoutAddress": "XwWs1kmbkbSkA3KrWKPDMiNZUxD4qyfC2U", + "pubKeyOperator": "0e70519ed62505531e3dccfc8b463ff6b1fcdcb908ea0080934f966eb33af63d37e3906a07766d632efe990a25142765" + } + }, + { + "type": "Regular", + "proTxHash": "ffd6d22ab773cc667432e548b8956662050b0924f335b29bce8055749f99206f", + "collateralHash": "be92dd717a12b251d273ae3ca5c9c43575f32c7fea86244f12109fa841a59b50", + "collateralIndex": 0, + "collateralAddress": "XbypeBTdKqJNdWAzKKA13FGV4ZN8DCRYe1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.246:9999", + "registeredHeight": 1029351, + "lastPaidHeight": 2126671, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt2egPDu4xy7QR4qAi7GELa1CZK9YPnDf2", + "votingAddress": "Xt2egPDu4xy7QR4qAi7GELa1CZK9YPnDf2", + "payoutAddress": "Xo2w6T1PjgaZ4PHLcoceueAQZifdDQ5ViD", + "pubKeyOperator": "90571176dc000c4372f51d9603c93034cf37d8254ac4ef6d7aabb7ca5fbca03f47b02184c08e04160d976a9e177ab50a" + } + }, + { + "type": "Regular", + "proTxHash": "5d53e276bf2fade8f8fe7e24548341ccd7058aabef28914b0505e305e6b11b7d", + "collateralHash": "52099877ab5ab8fbdad492d9c150f13962f541131ca2232a9bba796dfdd01041", + "collateralIndex": 0, + "collateralAddress": "Xsn76jPQNUdda8MV2JQxn8a8bnYmoxwxMs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.242:9999", + "registeredHeight": 1029351, + "lastPaidHeight": 2126941, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986138, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XemZq4maM6JLqdfJU9msgVqp9KfFM6MJZj", + "votingAddress": "XemZq4maM6JLqdfJU9msgVqp9KfFM6MJZj", + "payoutAddress": "Xm7n2Q5roqggzDtgXgVZiNVZS3soEgwXYs", + "pubKeyOperator": "03437877af6b89c0305cb891dd31d009d8257572628c1da93b2e2f9b4ee5eac1924613d43409f8b3d267e24bca63ddc9" + } + }, + { + "type": "Regular", + "proTxHash": "eae6ac386bab3b6963f9f6ec18253661bc0cb0088c61297ec1c6cfd01c2f68d5", + "collateralHash": "79c60069f25a4792631b071afdb57325709bb024b5aea99201809d2cb0912559", + "collateralIndex": 0, + "collateralAddress": "Xmh5BcQvSNM9R2K6bsvJgM7wzagTSaKqc1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.178:9999", + "registeredHeight": 1029351, + "lastPaidHeight": 2126104, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948735, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPN4FmyLKL8sHRQmxm65JkspEDGDGr1gQ", + "votingAddress": "XcPN4FmyLKL8sHRQmxm65JkspEDGDGr1gQ", + "payoutAddress": "XshGkfr9KW6Apzn62Jid8RbDAjDzeSzGGs", + "pubKeyOperator": "0e174ae474071ca7d9bcd0f8f1d011e82a59639faf2db95232e07c48ddb04885a1239135e90be5f640dc149d07798ccb" + } + }, + { + "type": "Regular", + "proTxHash": "c5c4612ee4dff316beda43489e5edb5e7e11d84796f07ac8d2a4bfb4e5f72b27", + "collateralHash": "fa4ece9dbd055edd7b5b25c6cbde73a8e6a328741b2a25a8596a03a7daf080f6", + "collateralIndex": 0, + "collateralAddress": "Xc2WhsNaFE2V2YFEor6FqBoZRS9WnNF8qm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.241:9999", + "registeredHeight": 1029351, + "lastPaidHeight": 2125789, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820787, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaoiNAs1Q9u14n824NL1fdNGyXyCiTky1j", + "votingAddress": "XaoiNAs1Q9u14n824NL1fdNGyXyCiTky1j", + "payoutAddress": "XjL2UvLBAfL66AjujQxGZmj2iiD5H7hfxE", + "pubKeyOperator": "96a49f41704cb6a365aaa537b23ca8592db9790df76a65f2a8fa45e478a5fd8075fbc842e98b738174d8ac16061bf7ae" + } + }, + { + "type": "Regular", + "proTxHash": "856e1ad9987de4859b7029405065675bed79592cd6802e2ed885eb5dca95a97c", + "collateralHash": "04d2357313d65eed23040802f56bac0ac2fe7d25039c504ed20ce3afc22b0ce7", + "collateralIndex": 0, + "collateralAddress": "XigCbQGw82RdcjK5Tsa3VxrHvE4qC4EFGE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.225:9999", + "registeredHeight": 1029351, + "lastPaidHeight": 2126688, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xeu7WC9soGtZDvLTk7m9QgSAA1ZNWNDuDa", + "votingAddress": "Xeu7WC9soGtZDvLTk7m9QgSAA1ZNWNDuDa", + "payoutAddress": "XsihM3ie5sRB8zDH2JVTpFsKHzXR2WUqF2", + "pubKeyOperator": "04d6645744e7bcc14b986de35930162452a5f7229a46bfad5f1d39da7f9205ef56fcddefd2fb14f8ee7f7f340aecbacf" + } + }, + { + "type": "Regular", + "proTxHash": "5e4c3a248ef6de76efb8fb0193a20a7cdc44c25abb78bb075f2713315c94285a", + "collateralHash": "ecdba96ee84521755ab8ec31a7a291938f143f6023f6a60226f995ce8f024cdc", + "collateralIndex": 1, + "collateralAddress": "Xttqnkhf4TfyzK4nvnoRJu8nTWydZahNor", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.243:9999", + "registeredHeight": 1029353, + "lastPaidHeight": 2126692, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XknCRzCqY8ig8xXKJdKr3WLsvT63ALXeoX", + "votingAddress": "XknCRzCqY8ig8xXKJdKr3WLsvT63ALXeoX", + "payoutAddress": "Xn69eru9uKhyGqDrELCFsqkRdNcDCbhPym", + "pubKeyOperator": "157ceade87a403a3bc127d8f7f849d5d62e1e7dd3ebc9b71d4521f9b5085a82fe0ab3c8d59010a4289bbab3362472cbf" + } + }, + { + "type": "Regular", + "proTxHash": "8410079cef81f5b6a054c5f94c528d6c9099a3301dbe6f02b0d87a361b581ac1", + "collateralHash": "a11ad46cae87da167bd698360eb67fe8dc9b680e738b1f57d4d846b78b9e5815", + "collateralIndex": 0, + "collateralAddress": "XePVjiPEgFxLF1E7sUB5tq8hYzrDpuGPmn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.226:9999", + "registeredHeight": 1029354, + "lastPaidHeight": 2126989, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986171, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsmidmV3pM5wBCVVtd4Cr34Nq8WAKsjEDT", + "votingAddress": "XsmidmV3pM5wBCVVtd4Cr34Nq8WAKsjEDT", + "payoutAddress": "XfSiabHjXV7vkrZ3VEMfKXXy1X6LwxFYsY", + "pubKeyOperator": "88403efbdd1fbacc498d5cb83b380591cbb18d9189e1900775e2595d608660a53a5428339f4f98d9dfb2ea6246b0ef71" + } + }, + { + "type": "Regular", + "proTxHash": "e8b598360aad1d29903e54fe0ca8b36b855f9026a1dccd0ff52f2247bcf6d5fe", + "collateralHash": "cfca25072d479a7ba5fca77c3e33d80d34fdcb2e9353a9703fed1ecc45277cbf", + "collateralIndex": 1, + "collateralAddress": "XcHB1taK9PkEk4CAZaEe8VwMgGCG2HhjWv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.248:9999", + "registeredHeight": 1029357, + "lastPaidHeight": 2126830, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764845, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvRjcw6tyLgFwEYTiDHXEjza9xtTzT9yu2", + "votingAddress": "XvRjcw6tyLgFwEYTiDHXEjza9xtTzT9yu2", + "payoutAddress": "XqWsBi98QzR67E8E9xWWfg6SfnWVJfM3EK", + "pubKeyOperator": "946e8e0b2e12135d5d32407e984962b87c1dfcc7189dee8921a107874c1845e8262381ccfe33a03f0d7de7834fd811fb" + } + }, + { + "type": "Regular", + "proTxHash": "f400ce8c09b0610ddc039345702c400071a94180e433084c3aebf59158ca3089", + "collateralHash": "ed0bd618afafa9987c589e46e9d993f8d93380fe3e794600b85b34cec6202982", + "collateralIndex": 0, + "collateralAddress": "XwJxKZuHiHEzNf6WAcdkujF2uABvHmqgcd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.247:9999", + "registeredHeight": 1029357, + "lastPaidHeight": 2128583, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004296, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqrH9Yat3XuM6f65qj1d2VSEUCoBs15ost", + "votingAddress": "XqrH9Yat3XuM6f65qj1d2VSEUCoBs15ost", + "payoutAddress": "Xe8JH3pfm7zg5dvD52zZr4i27LaWT9pjZs", + "pubKeyOperator": "81cdbbd0611cf9807ce5cc15b4cef322bb02615d4291e6c68138e97e1d3383d6f54c2a2a9573728633e7f7c4c4984e3e" + } + }, + { + "type": "Regular", + "proTxHash": "36aee1d8c11588f6fd1f91887ddf317f11f3b21eb924968a59207c9a77ba57b5", + "collateralHash": "3f34e3bc72221ac79c73ebf45476961aed67ed37111537bee2ff343fc4cc678b", + "collateralIndex": 1, + "collateralAddress": "XuEwQXni5RznZXzz1Kqh43p1fJX5oPw9jb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.227:9999", + "registeredHeight": 1029357, + "lastPaidHeight": 2126770, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2036302, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhsG1Xrq7Bs7PWR7yhoS32MvrDWMnsYh4d", + "votingAddress": "XhsG1Xrq7Bs7PWR7yhoS32MvrDWMnsYh4d", + "payoutAddress": "XfpyVBHouxeRWq7u5ipnaoWZyJsHjFxfYb", + "pubKeyOperator": "07cbe435b4b9a5c2a35d6935edcae152b74cf4690b67167ab6bb3bfc968713b421b3396c45b740f4f47e28ad63651b68" + } + }, + { + "type": "Regular", + "proTxHash": "c98870821a35647bba4fd1cb8473f47fb545521780130b03b1448015e42b385b", + "collateralHash": "910536ef129a5444fa718601d03d7c907341e4bf06ad2097ac5078929bacd220", + "collateralIndex": 1, + "collateralAddress": "Xt944KAumsAF88VVw3eHxBhHwsGYTGYVy1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.212:9999", + "registeredHeight": 1029366, + "lastPaidHeight": 2126724, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XioWn7r9Pc3ZkDBkJVsto3r8uVKfor62HL", + "votingAddress": "XioWn7r9Pc3ZkDBkJVsto3r8uVKfor62HL", + "payoutAddress": "XjKpwTPYfJr9UTpwnikTVuNfsR6ettUt7z", + "pubKeyOperator": "0cc6225a6f31ed99e0e1fcb8bf7552d7aa42ce338a442d400d42de0fd6f05f923e3f69a84e0feeca504919b4696b201e" + } + }, + { + "type": "Regular", + "proTxHash": "58e15bd9ffafbe30c313d04d39d56c50ff1dc73b9f96d625b89239b157167862", + "collateralHash": "8097b774640887f8db90813eeba9a5da24e0d045f4a0a639ac800ce7e255977d", + "collateralIndex": 1, + "collateralAddress": "XjTj3dHyULKq8CUrVQCicasCfMNgG9HkSC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.228:9999", + "registeredHeight": 1029379, + "lastPaidHeight": 2128567, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004289, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxt4n9kC1kgzMGaehdgSV6PmbgbRzAFk4f", + "votingAddress": "Xxt4n9kC1kgzMGaehdgSV6PmbgbRzAFk4f", + "payoutAddress": "Xqajnc3xTktQRinhPgZAErHsMj3i9DD8W4", + "pubKeyOperator": "07ad3633714ee3ebdf1ba552d8b121af21a7146f9188bc392391f8709e82b0fb39507100e20476ea33032d0e01991c47" + } + }, + { + "type": "Regular", + "proTxHash": "b71d199a89c5d5553923460b6226ae4a39ea982eb9d0bf5487782b0a777eeb7a", + "collateralHash": "ca96f090c1a9ec4247ba6c9a9356f4c60e12e37d764c3f9f9389df91d7eebfbf", + "collateralIndex": 0, + "collateralAddress": "XjVpVufztErz65rV3FxpLLzB1RnM2zy91o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.229:9999", + "registeredHeight": 1029379, + "lastPaidHeight": 2126768, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvMArSvR1EwRdt8gJxG6JSnPhUgRaRhowG", + "votingAddress": "XvMArSvR1EwRdt8gJxG6JSnPhUgRaRhowG", + "payoutAddress": "XvaGyXAcyYA19SvMhgR5Qh6c2VLRQNfF5W", + "pubKeyOperator": "8be9b7504bb89ad6530a25478f0310027e3f5bd8f62ecabbd725458f5352f6050bb2038ceada3346eab15227bd3a6e43" + } + }, + { + "type": "Regular", + "proTxHash": "ce4153fbfacbaf75e5afe167379829e4d2076efaf11132c2687d7a55310d31d1", + "collateralHash": "03838b8c9233e0b60e68817c4a002eb3098bb11979bbb8056978669064aef2ff", + "collateralIndex": 0, + "collateralAddress": "Xt89s798ewCpB8Xz8jwu3sApHEBdubrjpA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.93:9999", + "registeredHeight": 1029380, + "lastPaidHeight": 2127748, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986847, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoeP7fs4bZvsaxunJSyzMALW53NFkiVMut", + "votingAddress": "XoeP7fs4bZvsaxunJSyzMALW53NFkiVMut", + "payoutAddress": "XvneF5rRa8mSK6G3Gasr4MkTZpWpPcKscf", + "pubKeyOperator": "8c2c18d0a8125aaa8f5fc6ac2f1885292149ec5b3137cf9e856613f1eeddceccb95c01d654c2649e864e8e6b0f16ada6" + } + }, + { + "type": "Regular", + "proTxHash": "e8b9d59a23d46b7af2b77006896f62b71b353c9cf81834faa2ce7cc0902dfb1e", + "collateralHash": "64f9491f6a70c649b5dbb5599f5292347edce6a5b8a0b585e7a7437abe228591", + "collateralIndex": 0, + "collateralAddress": "XoEcQpoTdb4PKY4fBcjtTsQpDtDHgpZL7L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.22:9999", + "registeredHeight": 1029380, + "lastPaidHeight": 2127004, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1350023, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnxe9fwrKaPU5DWhFwPBksKcdBZG5Y7xJa", + "votingAddress": "Xnxe9fwrKaPU5DWhFwPBksKcdBZG5Y7xJa", + "payoutAddress": "XxmHXuxvJJFWJJ8qSZE8en3cewCdyNTA8U", + "pubKeyOperator": "95d3c42c3ac01e0410c2582654579bcdd2bb2036fc2b2e880a7ce44c538d56dda48b57c8ab4d1b285b5ce64f2505b732" + } + }, + { + "type": "Regular", + "proTxHash": "4930133c83958393188b359636a293e20cf9b7c37497e75e9cf4a2c42ec6d176", + "collateralHash": "c5041f6cf322535d48dd51fc8af0111888bc29a1377a5016a630dbc6770eedae", + "collateralIndex": 1, + "collateralAddress": "XmdgF352zA6tSHwbFUBMYuKdxvQkTDPC9k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.21:9999", + "registeredHeight": 1029380, + "lastPaidHeight": 2127461, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986598, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwXiwCWEJe6mFsz9FnrRcyNk91W8Ny2ndh", + "votingAddress": "XwXiwCWEJe6mFsz9FnrRcyNk91W8Ny2ndh", + "payoutAddress": "Xhpb67w2KfVqcAU8Qbrex25cSb5Hqhwehb", + "pubKeyOperator": "99e62339847d6d36b0eee5ffb927f1660debdedbaa9ae0ad6b748159c91436ea5a5da6c75900b2e96304b5c10168dded" + } + }, + { + "type": "Regular", + "proTxHash": "834b8b76d9a8fbab66da322a56e738a303afb5947b91507b51a22c10c29aa509", + "collateralHash": "c332536595b5354645c627a00dd9e7687cf3d5db6098771383a2eb4c49d6044b", + "collateralIndex": 0, + "collateralAddress": "Xf1SQtY21kVdnzAZngDGpDUTEZuRDmyEB4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.94:9999", + "registeredHeight": 1029385, + "lastPaidHeight": 2127193, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1315975, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwFomdH9pajsVsz8mgBsVzapcAFA6BUno6", + "votingAddress": "XwFomdH9pajsVsz8mgBsVzapcAFA6BUno6", + "payoutAddress": "XsXSgQpnVKX8hhyoVcqkCQgXRx6mmMdN3F", + "pubKeyOperator": "9132aed3d970adfefc2f560555fe99c0535c1ce2913f91047e45d6cd815cb1273208187a86ec31be6b0f8e1af62b907f" + } + }, + { + "type": "Regular", + "proTxHash": "929976d218efd33fabcea8fe87fd987f3189402476112d1df6284b93c0f81f4f", + "collateralHash": "160d6d9240831b606b3f2c634a2472d172c7d4511f1d692a156883255c87d70a", + "collateralIndex": 1, + "collateralAddress": "XkEfzxHZj7LzooSQAbP525Vju9BMfVQWQM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.97:9999", + "registeredHeight": 1029385, + "lastPaidHeight": 2126777, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtdL82y5dZNhHApy7wKjq3EtjkpiTDDJuU", + "votingAddress": "XtdL82y5dZNhHApy7wKjq3EtjkpiTDDJuU", + "payoutAddress": "Xy9zARXCevgFz1zxtaRe42fEGnSrBdDELf", + "pubKeyOperator": "02ab52425100d319bc1b5e1382c4eba074f73f2ae94f6e1713ffd9a0f513b541f44d9a0879f48fdcaf3521ebd3b734e3" + } + }, + { + "type": "Regular", + "proTxHash": "da76c71b2591058a2cda16903c7fec2ae447d75be83c8a6d8b687b1ae6d224ad", + "collateralHash": "90e09bd52fce7ee4e883388c8f8e1331764c8730a533c7920e2967efa126bff0", + "collateralIndex": 1, + "collateralAddress": "XvXF4tSroWp5ejyQWx9LNrR5bKkxciDXLy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.96:9999", + "registeredHeight": 1029385, + "lastPaidHeight": 2127265, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986408, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrYhgsUASKknugeooVRhKLrULW8oddZVmH", + "votingAddress": "XrYhgsUASKknugeooVRhKLrULW8oddZVmH", + "payoutAddress": "XhZCdbSACdVZWZr1P5gSnGBchpXSDicsSV", + "pubKeyOperator": "100a733c6eff643d68f8af2db4ae89f4b191b042b5feda21ea7237a99583a51fe904c57b3d6a7d998b6278537bffa4a4" + } + }, + { + "type": "Regular", + "proTxHash": "3f06e7c308f0476584a99bb8c687ddb52e5b62f5852fef243366f4336f53c2cd", + "collateralHash": "fd085768a8815dba66fecb1b99d62665c68e827927c88a71408cbac76242fa60", + "collateralIndex": 1, + "collateralAddress": "XrHRoH1NQEohKNzAAyytdzs4p69GehGwwt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.23:9999", + "registeredHeight": 1029385, + "lastPaidHeight": 2126043, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwJe8Gjbzh7REp7dv5HC78DXzuHAFdU4RY", + "votingAddress": "XwJe8Gjbzh7REp7dv5HC78DXzuHAFdU4RY", + "payoutAddress": "XfK4aoQHLxjitzLeXsTQCaG9VhywBKqVus", + "pubKeyOperator": "83a556ddb1a3ce59a3d2d08ffc03cd291efa0d163188932c766b0326dc15eb73472f26eafc1edf5cca2db5745a932611" + } + }, + { + "type": "Regular", + "proTxHash": "9204f1cb4d44752e48781c9dbec1c98ca93b2392e0108e616f5adb78922190fd", + "collateralHash": "30c5240a257e298955d6e332ca5664b310b18f24c77b4fd643ae81a713fc34bd", + "collateralIndex": 1, + "collateralAddress": "XbFLQQhmPg9KnzQry7HCk8R1fUsDZpKvCW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.95:9999", + "registeredHeight": 1029385, + "lastPaidHeight": 2127278, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986416, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgkPLdYFmi4Zbgv8LmhBirfA5vABCQHko8", + "votingAddress": "XgkPLdYFmi4Zbgv8LmhBirfA5vABCQHko8", + "payoutAddress": "XwCHkG38a5cB61j9teG1zFSpQnQT1X6tfb", + "pubKeyOperator": "84ae61a283c1c4dd6667fecfa8a963362d9747f43b2942bc48e9bb93c6de51ef9e7925a9c6adffc2492318dd7ffd10d9" + } + }, + { + "type": "Regular", + "proTxHash": "9951c932fa70afcee01a3fb2caa49b74c81618798bf1d3e9744dfed82af48406", + "collateralHash": "2e3b2ed8171e9847487bc3a713be1ac0664515621152977a1459f6b818cf0a25", + "collateralIndex": 1, + "collateralAddress": "XvoeiWxMxg45XcRTRejegwzbfVUnRUuXPx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.98:9999", + "registeredHeight": 1029392, + "lastPaidHeight": 2127259, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986403, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq49uHJ3T1Qwi9xRrnYdXWu6zscfMk9j3e", + "votingAddress": "Xq49uHJ3T1Qwi9xRrnYdXWu6zscfMk9j3e", + "payoutAddress": "XffseypcSXeboZdy4hmqMtPx3s1VNT35oV", + "pubKeyOperator": "972935cb28ac518159a9badc53452c65bfa45566c8f15250f7c3b456d7ba8010233104fa3f6efe85146e778891655513" + } + }, + { + "type": "Regular", + "proTxHash": "b99c926d56c8414ac217ec92211f4682ddb8aefda94e536d106171b4e9253b15", + "collateralHash": "35d56c4f32b660d47f30f476d932145b08adf955845524738e8c1b3b147562e6", + "collateralIndex": 1, + "collateralAddress": "Xg3JHiy5vpCVn3kiLza45kD6f9oZxeJwgb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.24:9999", + "registeredHeight": 1029392, + "lastPaidHeight": 2127633, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986818, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XreyDHVv6ADXRBUgUG85TYTVXttpguLfwR", + "votingAddress": "XreyDHVv6ADXRBUgUG85TYTVXttpguLfwR", + "payoutAddress": "XipKqCpoYjyrbZJiFiigdoXa3NxLfRT9is", + "pubKeyOperator": "8eb3e59c661e5a525935d21dae4baff0b9950bb0d4dbc8b522d77d0246651b31c9471d31b233ef7df37cb401e350be8c" + } + }, + { + "type": "Regular", + "proTxHash": "0bb46b2bc2f96443584250c1cd9252f0143862b6076fcb0ad3313f19a66b7382", + "collateralHash": "06b1be20e0ca1516251daa10193b48099b5549dc5c21ac7f4ac4ac013991618a", + "collateralIndex": 0, + "collateralAddress": "Xj1aKrhKZtzmk7xBGBjaLoFcTqQu2aEAqj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.99:9999", + "registeredHeight": 1029392, + "lastPaidHeight": 2126967, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761172, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgmf3XH7vGSTEAVixRQvfZKA2LypjMX6c3", + "votingAddress": "Xgmf3XH7vGSTEAVixRQvfZKA2LypjMX6c3", + "payoutAddress": "XesxuBDHNjq8HtJKa5YrwSRUexxiofHn2V", + "pubKeyOperator": "958a21a0fc82be0c0dfa80b44aebce0025cfce50c4a97d69d7d37dc800501eb93affe736894bd45106b7e5d8ec9ce028" + } + }, + { + "type": "Regular", + "proTxHash": "4876aa185b47d522fd0f5b0bf00f642cdfb0a290037d4d53182ec7612a57f55c", + "collateralHash": "1a5a678eac76ede53fbfecde516501534e7ec2b8c2b83167025083938f07c6e4", + "collateralIndex": 0, + "collateralAddress": "XdW3ajwVZo8aHZLqU7hNK9ZoY8GhYzVNrV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.102:9999", + "registeredHeight": 1029392, + "lastPaidHeight": 2126903, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764896, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnyCsPcXBsJkpxZnuF7VVy19DAzeDvXhMK", + "votingAddress": "XnyCsPcXBsJkpxZnuF7VVy19DAzeDvXhMK", + "payoutAddress": "XrUMAgkSvv7aD7ffbndF9mWbCzRGWsmF4a", + "pubKeyOperator": "8991ab154c52c83e62da2387cdf4b39ff9dfc72890b37be3b498e1daa547411f2b73a459ec58a8e6dc5e37a8b37e131e" + } + }, + { + "type": "Regular", + "proTxHash": "a284dc65db52b3e3f942f9a83b4917170fb8256c9546bd7086649a99b794a7dc", + "collateralHash": "40c918a9785dcdd9f590055f1db6b233c1e86ab7d0a0b3470b27f366104a5ee5", + "collateralIndex": 0, + "collateralAddress": "XgdJo9szJbHSaybFgGMsFNGGnxu7KyrpZW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.25:9999", + "registeredHeight": 1029392, + "lastPaidHeight": 2127663, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986818, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMJhZdewS9esR2MRw5JVXPXqRW1nAZY92", + "votingAddress": "XdMJhZdewS9esR2MRw5JVXPXqRW1nAZY92", + "payoutAddress": "XwKJApsrnKbYXaCGUJ79wwT8pSLtQUpaGZ", + "pubKeyOperator": "96a5b6ed9dd5a50d3bbb1b184368258ed8954c42beeef72c8c52deb5a44faf598a1da8cbf7130906c7b613f030b5d8f0" + } + }, + { + "type": "Regular", + "proTxHash": "b126f9b1a05a6257efee560633263f47755d1ab76486a31c2ef17d7f81f7d845", + "collateralHash": "5a704ec0ecad28933bffa712f8d0d0a30b70b61db58a99bc0349a7a3b873990d", + "collateralIndex": 1, + "collateralAddress": "XrzwpVwcT3tkYtPhkjUYDQVwqNkBfEerTR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.104:9999", + "registeredHeight": 1029398, + "lastPaidHeight": 2126899, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764893, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkTCSEdNZ4e3opoLYeec6JSpHE4y54H8UP", + "votingAddress": "XkTCSEdNZ4e3opoLYeec6JSpHE4y54H8UP", + "payoutAddress": "Xb9hRXoVS5udsGfmZN9tCqQZf25jMxXu2n", + "pubKeyOperator": "085a3b6f1e747579c963a6a02c9877513e0ba7ef31bc522dcaaa413a41216d71dcd47ea163aafc4ac33fd1959c9b5e6c" + } + }, + { + "type": "Regular", + "proTxHash": "f68d416e8237718d9d6042249ef0d658845ab12234e1af554270fd989dfc4708", + "collateralHash": "49d6a7e829ce7e7ca9fdbe22426668b52b91ca5d9b3ed01ee1964d39a8067a3f", + "collateralIndex": 1, + "collateralAddress": "XyLwHBcHeUn7ARxx3s1RMEpNbq6LAkMskH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.28:9999", + "registeredHeight": 1029398, + "lastPaidHeight": 2128575, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004294, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtRpbEQAQCRT77ygiAy8RexaUeFYuZzxUH", + "votingAddress": "XtRpbEQAQCRT77ygiAy8RexaUeFYuZzxUH", + "payoutAddress": "XswbjNproZmpEvak8KinGTuuBmDcBaMQJa", + "pubKeyOperator": "8525b86bd5524720e62ed1c9d3a84b4dda822697925f78df6d0a84f5248b611325d0bfb81fb03c3b2008ea0e7839e1fd" + } + }, + { + "type": "Regular", + "proTxHash": "1dd4ec053e0c6fc74c9ff8f45fb6e2440c01cf94f1f9a67bc55a2b47b5ed3f81", + "collateralHash": "3a43b54a0f29d5c3a4081a6bfee6d48d72797397451c47b519b43cb8ca27f2bb", + "collateralIndex": 1, + "collateralAddress": "Xk4XKXEmctp39GvN3VYsZN7u9HmFT969of", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.30:9999", + "registeredHeight": 1029398, + "lastPaidHeight": 2126143, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948766, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi8NvpEQmDXqHzKT5YdVrY27ZAZVE7PDMq", + "votingAddress": "Xi8NvpEQmDXqHzKT5YdVrY27ZAZVE7PDMq", + "payoutAddress": "Xw6xdMGYPk1fZ5MhwLiYarsgxyANLBXMRL", + "pubKeyOperator": "932d5453579dd2ba979738389cba46a9c4930be8d41266204acbd28bdc01931aaee32cbbe98bdd0976e07fe7a7e33ab5" + } + }, + { + "type": "Regular", + "proTxHash": "5651057fe97b7f8c40512087ee7ea55eed7161e47be8901c6f5c59a7ae189fb4", + "collateralHash": "22ddf9af487333ae9410b96a5a080951f4ba50f636055f83bf3bb2cbd569747d", + "collateralIndex": 1, + "collateralAddress": "XehLXRTur1FryiZT2E3VBY9dQbebUU1N6o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.27:9999", + "registeredHeight": 1029398, + "lastPaidHeight": 2127747, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986847, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxyRevY7ezCiBMPp4RM2CNzmtLHq5ymYUu", + "votingAddress": "XxyRevY7ezCiBMPp4RM2CNzmtLHq5ymYUu", + "payoutAddress": "Xjs3xoTNfLLy7EwUiUkiWSkq11DwxHXFDQ", + "pubKeyOperator": "8b3f00590d0f05443def6a67470e71de676d462d8dfa902505c21d5056e8f3c94eb9d9893130f9bd0ff3f7243c3fb530" + } + }, + { + "type": "Regular", + "proTxHash": "30fac3990292aa3455665a6cae3125c21dfff2edd2c3815bff1d371e0ede39cf", + "collateralHash": "b8cf2076d1d278fb424b79342dc1f562ceca0c0f88670cea62448f36577ce121", + "collateralIndex": 0, + "collateralAddress": "XfwNNTdm6B73UymgSjuVv8wi9ZxrT4ZvrF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.29:9999", + "registeredHeight": 1029398, + "lastPaidHeight": 2126847, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1871822, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhu4LhK9aSpfK8V5ZuNGTXAmUJWvDfEwJm", + "votingAddress": "Xhu4LhK9aSpfK8V5ZuNGTXAmUJWvDfEwJm", + "payoutAddress": "XrrJ8n3BEctBS34KDu4vxqxYtzfXgxVV42", + "pubKeyOperator": "90d533885a7607f41f49095983563db64dd9c0973d2b5b369f527abad7fade38ca923f83146dc3c56fe1c7422d00a2d3" + } + }, + { + "type": "Regular", + "proTxHash": "8c68c93de1153b98f71805439c6236d6d767a44dca161e1c81816923dab242ba", + "collateralHash": "a9fe925c4157079708d9788d29657bf46807aa0e25fa88a2866e40b00c854228", + "collateralIndex": 0, + "collateralAddress": "XxBcvwod3dTb1riTpwHYXbrs4s8KPqfMwQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.47.114.233:9999", + "registeredHeight": 1029420, + "lastPaidHeight": 2116544, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": 1891257, + "PoSeBanHeight": 2117994, + "revocationReason": 0, + "ownerAddress": "XbYQsznqPgRvJSSwRMSpnPZBewsYNP1FpS", + "votingAddress": "XbYQsznqPgRvJSSwRMSpnPZBewsYNP1FpS", + "payoutAddress": "XxBcvwod3dTb1riTpwHYXbrs4s8KPqfMwQ", + "pubKeyOperator": "1767cefd2a49a4bee661234d9298298a125d670f52789ac3ee0f19c08df60f3bf241917a51d10e1157702c107bf31ff2" + } + }, + { + "type": "Regular", + "proTxHash": "94c28ef1b760fd6d14879300ac8900bfc62ff79542ecdda95de3fdbd827c163e", + "collateralHash": "534bb8c628810e1e0b6f0fa433dd40e96d0e4b97728d6a5e914a48c9330e53f4", + "collateralIndex": 0, + "collateralAddress": "XuAnEsXCK27bw86iuTSUqCTyak1kdadVwo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.202.26.174:9999", + "registeredHeight": 1029420, + "lastPaidHeight": 2025103, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": 1891271, + "PoSeBanHeight": 2027562, + "revocationReason": 0, + "ownerAddress": "Xs9asbujUkiBMdw67nXYFVaCNKx9nq8d78", + "votingAddress": "Xs9asbujUkiBMdw67nXYFVaCNKx9nq8d78", + "payoutAddress": "XuAnEsXCK27bw86iuTSUqCTyak1kdadVwo", + "pubKeyOperator": "0d9bfabe954a2b41026519abb9c671acd1b7960337943898a60b84c6c3dec8dca3b80fdf59b80bbbf76db4c3dd84cc16" + } + }, + { + "type": "Regular", + "proTxHash": "86a3602ed3c2affe0e9c2f381ddad5271d4cf6c765e0db4f96e1bff7c3a2fe70", + "collateralHash": "51344dd4401e4181e3729e14c397681196aa6a3429b7227ee2c2601b8340eea8", + "collateralIndex": 1, + "collateralAddress": "Xu3aX8fsBshvQc5xJovSSoP6KhYzNsbTPW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.31:9999", + "registeredHeight": 1029431, + "lastPaidHeight": 2126909, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvaCpB69QixN9QiA5seHxnrhpqJkUa5mnP", + "votingAddress": "XvaCpB69QixN9QiA5seHxnrhpqJkUa5mnP", + "payoutAddress": "XyWyu4bCPsKXg9SfvcvS9EFUTXVApvNx2W", + "pubKeyOperator": "0b18b79f40b3e7fe4b16ef532e7aad60305feca9851141d91e008dd4a6b432c499396dde36b95b82423030009c617927" + } + }, + { + "type": "Regular", + "proTxHash": "e88d13ab3fca65e393dea5706f6c25f20402f5b4254c332d047bc1811f7f9fc1", + "collateralHash": "db5651d234ce8a3ce5d32346f72260b051edf430471317776d4701177294e788", + "collateralIndex": 0, + "collateralAddress": "XnNsMDbqMCXt2w9hXzYXYG9ep4GCdNmEko", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.32:9999", + "registeredHeight": 1029433, + "lastPaidHeight": 2126117, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1963540, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw5RJwbgCNpJYfXgG4wdinom97UyvsjQ1m", + "votingAddress": "Xw5RJwbgCNpJYfXgG4wdinom97UyvsjQ1m", + "payoutAddress": "XoLgDRUtE9KBCajmyFXVLABhz4k58rjXkE", + "pubKeyOperator": "9676aadf1bf29bbb705ddbabfe6813d5def89e8e8d2735c4f95864e942e2b46fbb55885bf5aa2bccca9b7d54ac39c510" + } + }, + { + "type": "Regular", + "proTxHash": "5a7a0b06a982aaf0b2853df0d0e1511464d452d7eb31b5f554aba3d36dfd9bd1", + "collateralHash": "177ed4411d34b8285baf358728393945e9c8a1f05e5fc010e9795fce893b3414", + "collateralIndex": 0, + "collateralAddress": "XvSv1XoBzQoJYC2TArg1gxbLuCivtZams5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.33:9999", + "registeredHeight": 1029434, + "lastPaidHeight": 2126912, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtjADjcxo1WucgXUGcw2kpXswFPc7riAvL", + "votingAddress": "XtjADjcxo1WucgXUGcw2kpXswFPc7riAvL", + "payoutAddress": "XtzLBHFb7Xt2EkWzWepPH6RhoZ3THrWPJF", + "pubKeyOperator": "0a58f58351e62787eed69ce59771859e8988a4f6239bc1b170b38f4e560c1be220f49ab4199f193d58888ae09e521bf8" + } + }, + { + "type": "Regular", + "proTxHash": "22d1fc2c14b2b9a7b92acb02b059b48433fd53233c47cd2c5a2316ef81327f72", + "collateralHash": "527f5b7a920a96735058db32f156cc996c1d392ea3ea8f9ea166c500e497ca52", + "collateralIndex": 0, + "collateralAddress": "Xvo1SThipevVpp3SCpZhmAFE7KFATQoMsW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.108:9999", + "registeredHeight": 1029437, + "lastPaidHeight": 2126025, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948683, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XerznZmrUZ2CpkQzTCCTvT1sdREriA2TXb", + "votingAddress": "XerznZmrUZ2CpkQzTCCTvT1sdREriA2TXb", + "payoutAddress": "XkYZ2WWD14AFidpRXSjNh2R9EPsfmDQwZU", + "pubKeyOperator": "9747b402f2fd5610f37c10ff032d8b51ebd8f6dfda97a5a0c0d09e69f55c22da9a30754e4f727a6e90266cc91efbb807" + } + }, + { + "type": "Regular", + "proTxHash": "613bc1d39b2d5796b5141cdc47293a3806c08c44e6faadd20a72a0bc9e805d3b", + "collateralHash": "79a5171fae17c739e26d7172bee712dbcd4a690e005bd8c9c2cb1bd3481b76ad", + "collateralIndex": 1, + "collateralAddress": "XfwEZhZ7y8usjmoZ55iH85EHTPqjEJQ6G1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.34:9999", + "registeredHeight": 1029437, + "lastPaidHeight": 2126128, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1963557, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvbpvPyBgB7xHoUhFH39q24TdzYohXXTPt", + "votingAddress": "XvbpvPyBgB7xHoUhFH39q24TdzYohXXTPt", + "payoutAddress": "XjBqwUjktZCzcVfd3FeV4a8xkztqFutUSS", + "pubKeyOperator": "8ac93d0666114589f61181016f03b8a795c33482fab5877888e122bd4395073b3ad3156b9ab7b6267bddc2d6f9481efc" + } + }, + { + "type": "Regular", + "proTxHash": "31d42c3f3181f0e78fbcb46ffe32bfdaf20de861af7c530a8828b580c415efe8", + "collateralHash": "9acebbe401acd2b7ff37378c8a7920ed5231a2f0477967dde65d669c07fcf67b", + "collateralIndex": 1, + "collateralAddress": "Xiq1b4R7Niu9rKNJ59GMxA5PfrCFsqGZLZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.65:9999", + "registeredHeight": 1029438, + "lastPaidHeight": 2126917, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyZrJpvt5Bi8KYj7AXkjBTTBrp5o9TjRKq", + "votingAddress": "XyZrJpvt5Bi8KYj7AXkjBTTBrp5o9TjRKq", + "payoutAddress": "XbRezb5TFvG2BVuQCFUW5z8CSbZxA51AXG", + "pubKeyOperator": "1142ecf857558c08f443f2eb25dee6a083f0827d033797ecdf0f4877343896c9be9e23727c9a1acfadc00c0de6268315" + } + }, + { + "type": "Regular", + "proTxHash": "c6254e281fdada3302dcb75763db49673414b2e0f4bac173851a530668e9b81a", + "collateralHash": "3607f761d78885571485df7c677e772a1867951755d172f5ea00b807f561ebee", + "collateralIndex": 1, + "collateralAddress": "XufLFSx8McVGbLMXQu8LgpDt54RE2tUUWx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.19:9999", + "registeredHeight": 1029440, + "lastPaidHeight": 2126918, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhD95LqTAd4K53gsnYeg27MxaveyPpNUFt", + "votingAddress": "XhD95LqTAd4K53gsnYeg27MxaveyPpNUFt", + "payoutAddress": "XmvwREc9cMyQKqMAk6V6swvgsmTAqeVZHu", + "pubKeyOperator": "12ecaf7a3c45c5b9408b5a22043d3c0bacd51b8c8d7f671a888463966a44f54fc3578eb6e91e37bef6532ca05c2cda18" + } + }, + { + "type": "Regular", + "proTxHash": "83860a0f37684c056186659978d9eaa4873fa87c6a178ed84045e74eccc39973", + "collateralHash": "9a15fc6652ba1002cc15584cf22993aaf3622527db359223dcbb55018d75f370", + "collateralIndex": 1, + "collateralAddress": "Xx3EcyMSZwmVUQPi6pQX9pLrrCZGHJqtD9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.12:9999", + "registeredHeight": 1029440, + "lastPaidHeight": 2127586, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1700378, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnnj3XYK25tAYHHh3xyc4AozysDyry2762", + "votingAddress": "Xnnj3XYK25tAYHHh3xyc4AozysDyry2762", + "payoutAddress": "Xb3qmrntETU73RFHLpQ93Fq2PkbcfSaTMx", + "pubKeyOperator": "0d2ae1bf3cec9715c02ae4214bfa051a55466eff01ffa2fa01265989de7e1c671e8fe0efd121377245becbc7f62fddce" + } + }, + { + "type": "Regular", + "proTxHash": "66ee8e4560f013ac8a2f7ddc1c9835ff6330ad8641ad795140a8187f2f4f19da", + "collateralHash": "7c3411deff4f0892827eaf6c3d73ebf6d5e99cc66287d3f452f04566fafa4133", + "collateralIndex": 1, + "collateralAddress": "XxXQkEZCfbGZkyivmx31v3th8yAygxaQvF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.63:9999", + "registeredHeight": 1029442, + "lastPaidHeight": 2126921, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrmjRTfuKFpP5XJcoA37q7N4DNmzmab8m7", + "votingAddress": "XrmjRTfuKFpP5XJcoA37q7N4DNmzmab8m7", + "payoutAddress": "XfHfCwf3tq6cyUbUQ9xGrS54otmcLBZ64w", + "pubKeyOperator": "835340ee087f26f79447f3a7fe297279ef8df88c43cfd659088ae6a1c7bfa9f5788947ad8c2e0cc3ca4a59e5d1b19609" + } + }, + { + "type": "Regular", + "proTxHash": "70dbc59946857410916bfa7bf90f128c463438a2a78ef7a11d8a6cf19e6b2aab", + "collateralHash": "070279eb29ae6c2e2e61b835fc9740524aa8ab8169044edabdbce15a2bbfaabd", + "collateralIndex": 1, + "collateralAddress": "XiTRKiMoKa61TmhwDZQg7awNbe1BVJkjke", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.16:9999", + "registeredHeight": 1029442, + "lastPaidHeight": 2126042, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xew5a2FTEWnpyq6F5d2LaDXTcC776WPbwV", + "votingAddress": "Xew5a2FTEWnpyq6F5d2LaDXTcC776WPbwV", + "payoutAddress": "XxUYNVqV1LNPTHC4PKRRVt3AbE95S9nRyy", + "pubKeyOperator": "02e789569394696be01e4d9deaf1d35a659a48f6d913cd8483854f5a9d581019169ad0636bc283a1974f610136772aa7" + } + }, + { + "type": "Regular", + "proTxHash": "697cb8db5c2f854a3bde4359e30afb6b8ceb4b004445c8db553592bef15d3207", + "collateralHash": "a57bce902b934d2201a81bb539cc439ca9d18f332548aba059c6957c8ecd4637", + "collateralIndex": 0, + "collateralAddress": "XtvqQRDxkyYk3kjUcVHz1dSuqnTFYQ82g5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "130.61.120.252:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2128222, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987338, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsHfZsWfeAxSk74vBZWFhpSPcAKGcyGVXY", + "votingAddress": "XsHfZsWfeAxSk74vBZWFhpSPcAKGcyGVXY", + "payoutAddress": "XjFWkTkE9kXyEqKPcYu1x1ZaVBxGJ5RTzm", + "pubKeyOperator": "069007d36c2dc95d510ec27e74aebca0adcc2d0cb9ed33dadb862a7b5d0dc9bf1a41209a967084022e06cf510610b086" + } + }, + { + "type": "Regular", + "proTxHash": "15bfd8c4f721a7b8e5b2b99b51847fd36f0a8a6696c164eeaa6157b140ac6d0b", + "collateralHash": "367c0c003ae8272503f6b3a0a739b4b70abe5a820fe3b9aba6f87eb2a60d1dfa", + "collateralIndex": 1, + "collateralAddress": "XpzNXvvfBcJtY4HzVdHEQvGaAN1o721uYs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.166:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2125884, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820940, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfidZFvXS24PZUxr6QhL5wWsCMCeB4HsLz", + "votingAddress": "XfidZFvXS24PZUxr6QhL5wWsCMCeB4HsLz", + "payoutAddress": "XorzCAkSg8Xp9bjK48nk4bxEeLswnbNWSz", + "pubKeyOperator": "0bbd97acdd5fe47f71f05b14fa9d885db5095b02f20edf4212eaf69efbd31aaa957c272501dd328293fc892b685fb571" + } + }, + { + "type": "Regular", + "proTxHash": "8c5da7fafb0900bdad9562345f42151615f2b2bdb5cb5a574c071075d93c5212", + "collateralHash": "469de0b06394d54e795ba750ad73200c06c9b1e7d40c9c6f83818feb3ba036a3", + "collateralIndex": 1, + "collateralAddress": "XgBJNf75fGW6WH5wfp82mJgnKX6Z7NczUe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.17:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2127849, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1562787, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs6KcGYaCvLnyNxDsEKn5m1oCLQc6tx1BK", + "votingAddress": "Xs6KcGYaCvLnyNxDsEKn5m1oCLQc6tx1BK", + "payoutAddress": "XgV62CKEWTkyVKTnqwJ7xbNGdXF6CwoiMB", + "pubKeyOperator": "0bc60b15bc8666e9a1b8a5810c175d3e10db057b2a679863221434a7cfd0ac59a80a961457fe080a84fb9c988fd278bb" + } + }, + { + "type": "Regular", + "proTxHash": "44b70685d1f6f38c5f4a71c9feb7b33615e4d94cd88012b7a8f10179a349d134", + "collateralHash": "38594bdb47aa43b8a5ff41da686661f08ed2efeb4a44492479fcc5ebe7ccfca6", + "collateralIndex": 1, + "collateralAddress": "XwhWEbuqW1My3aExahbW9fYTnvMnmozijh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.26:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2126948, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkPHz8rcGGwkxN5afbgXPNwXKgCinTje9n", + "votingAddress": "XkPHz8rcGGwkxN5afbgXPNwXKgCinTje9n", + "payoutAddress": "XfzRfKPEXERnxWdPHNYGUurJrhbs1i9V9b", + "pubKeyOperator": "0ec6ed06e908e1b68891f53748e3327f9e58d49b693e82ae8ba6bd40a699a66a956bf387a7342d3095419030733b43b6" + } + }, + { + "type": "Regular", + "proTxHash": "1ee849dbe7480a9fa1b0490778dc912b449ead638ee564d043f15793a439c503", + "collateralHash": "f0d59559e3136b8498bf937c386c38bd02a9ebb488ed59f70d9d1de9e158896f", + "collateralIndex": 1, + "collateralAddress": "XfE8fhHvyHZDVax94VM2b2uUyN8QKZ17Bs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.103:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2126775, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2036311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyVn2SnHroPtowQyVZr7LEj3PWorWy5TGx", + "votingAddress": "XyVn2SnHroPtowQyVZr7LEj3PWorWy5TGx", + "payoutAddress": "XnuteLRxFWHQpAuns5FuJ6KSeanPJC58W1", + "pubKeyOperator": "8a487057ecf758df9969d847d33536590fdca1a3fdfc7ec14a0f37bde880be5aa51b848602a66b6962ac0575f47a26d7" + } + }, + { + "type": "Regular", + "proTxHash": "09e008fc2cd4c879f1e0da862e99965b001089e3f9aae1d499832348a33c6c27", + "collateralHash": "ca87a89ae1acec730b4e3214c039e87cca8a014851ec2c65de6076f29200a73c", + "collateralIndex": 1, + "collateralAddress": "XcyPA3B5kFM9LhyxMSRh67wJp7jPCmRifH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.64:9999", + "registeredHeight": 1029456, + "lastPaidHeight": 2128679, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1808932, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrFXMWrPPTPTDWrRSs6atFE3Y8ffoysNuz", + "votingAddress": "XrFXMWrPPTPTDWrRSs6atFE3Y8ffoysNuz", + "payoutAddress": "Xq3WSbmQRFnnEVQpgszBmjvtjMcsn9NcZ5", + "pubKeyOperator": "9605492b344aa5c9701db30973af52c67559e4faa6f799e0cf27f812c15ff6bc7024b620dfa0a2d93ee03928d120694b" + } + }, + { + "type": "Regular", + "proTxHash": "add8ed572c5c8b4586b709af2c073fcac33b001b1143b4672943d5ec0effa52a", + "collateralHash": "88659c63ef8a22e20185abb598468d6c82a500313e2de663efe44188bdcc5d5f", + "collateralIndex": 1, + "collateralAddress": "XiayxFaBHMgP76WhPUCtx2L8zratH94ivp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.167:9999", + "registeredHeight": 1029457, + "lastPaidHeight": 2125892, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820956, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk3TQ8rqqDStuKrmtcmWfnMX6he3sWPqpw", + "votingAddress": "Xk3TQ8rqqDStuKrmtcmWfnMX6he3sWPqpw", + "payoutAddress": "XjETse6UHMRJvT3CBhsdWL1Zwm8bddGtCn", + "pubKeyOperator": "93dff5c9562913643ddd819960e2e20014f8cf5fc8a006f2e970e6b884b297de84a6d1b47724a0055a1b92ee406234e3" + } + }, + { + "type": "Regular", + "proTxHash": "4433aa278f35ad23cb3fec5e26e584cbdd061e4e77414e40474c866e7678943f", + "collateralHash": "1ef65a3cee41c7b2d15ba8b2d15b2ddb2ca39c427371d228dab105210fb6c7da", + "collateralIndex": 1, + "collateralAddress": "Xmg3w5XkTUiyABGpLPDMDnZ6UhtPWLzz7c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.168:9999", + "registeredHeight": 1029457, + "lastPaidHeight": 2125893, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820956, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh4kra5L2CKgq5zLcmNicg9dFPH49Tit33", + "votingAddress": "Xh4kra5L2CKgq5zLcmNicg9dFPH49Tit33", + "payoutAddress": "XqCwdtSoUSyEQBef74EJmYU6QV62X6692k", + "pubKeyOperator": "83eb08385008ffadca58d6643209e6a0a46bb5f249ddc07d1a801cf112d69e81d5e9dd1af34ef732fef787d77ff8d42a" + } + }, + { + "type": "Regular", + "proTxHash": "e25afbb32939a62382b8e3f2bc2329c3167e8946bf6b0d3cca1561d84636af66", + "collateralHash": "5bca6445d757e766c087ed00864be0e44f56c868df96f79e4fee078e9a482666", + "collateralIndex": 1, + "collateralAddress": "XuJc5w9gP94ytqRYHnvkFBJq5D9ervU7Us", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.170:9999", + "registeredHeight": 1029457, + "lastPaidHeight": 2126968, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695454, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XugVAkjFk1smhm5JZ2es3CeBY5QmU3mVdb", + "votingAddress": "XugVAkjFk1smhm5JZ2es3CeBY5QmU3mVdb", + "payoutAddress": "Xf1K7PUGXtPaMzKiTGJYuXwAHsXaAhZV32", + "pubKeyOperator": "94a7a29762d8a062b7099a87de24edf6ca7ba3154980f7450c83efea486b909e0605b92e627960846e1153151d0c10d4" + } + }, + { + "type": "Regular", + "proTxHash": "39a282fc99b677d142653a0946542a9407149b9441f1e68e6b28c51c61b0aa99", + "collateralHash": "0d895eb664ebec1958f3cdb795d20d786788d924abfff32ab3b0101a97da996b", + "collateralIndex": 1, + "collateralAddress": "XsPCALUpby8gCpx48eYqAxZiJ9bB1hawJh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.124:9999", + "registeredHeight": 1029457, + "lastPaidHeight": 2125869, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820914, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xawgbbc1i99bUobqqzKvamKR5gTh67C7uH", + "votingAddress": "Xawgbbc1i99bUobqqzKvamKR5gTh67C7uH", + "payoutAddress": "XfJ9xLLRpkgD3iJctYvxL998MSZav6q8WF", + "pubKeyOperator": "83a8e612ccd3c4cf7554ba4c9e5090c9a15a4ff70b9a8cc742745891071e30904b171f59ee473fc1104483229453c659" + } + }, + { + "type": "Regular", + "proTxHash": "fb221628cf6e255eda07cb7fe02fb121ad6e7c732e57c30c37a9fd35ea20d4a4", + "collateralHash": "c741da3e93c4ab7bf64983305610e30854b35a5b4670abb50f8c491e02591666", + "collateralIndex": 0, + "collateralAddress": "XgZuoLV7MiZAHXr3aqY9eSRuJJJ4z52urF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.169:9999", + "registeredHeight": 1029457, + "lastPaidHeight": 2128568, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004289, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsRhvuHM4RUKSHC8i2mGbrLiVKiJtMiSki", + "votingAddress": "XsRhvuHM4RUKSHC8i2mGbrLiVKiJtMiSki", + "payoutAddress": "Xb32LPnZTUkMBKBsN43VFU8VSUvLgAoRwz", + "pubKeyOperator": "85c649e189357b57c9f7d2ef0afb13b3f9ff2c68492553f435d09df5174bea666a0d621b6e7d96c786ca915c71c2d5b2" + } + }, + { + "type": "Regular", + "proTxHash": "feedead37f5efc0f84c5099d81a95a3bd4b165b1752bc37d111ba3fcc49858ca", + "collateralHash": "e57d9f08c571d5740d426087e810e8bacb7c010b4929ce83452f0bf861716a44", + "collateralIndex": 0, + "collateralAddress": "Xp5SUk6MN5jrQMCmDA6b4u9wTfKnjWW2pm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.130:9999", + "registeredHeight": 1029464, + "lastPaidHeight": 2127036, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvsKjzQxd8PJ23KRZ6j7WkyFH29Mhatjmw", + "votingAddress": "XvsKjzQxd8PJ23KRZ6j7WkyFH29Mhatjmw", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "10ce6efcf8b83d3308d8c6ab03dd10bfb20e177fa1953605baf9ba160bbf2361841eec0afd69b41e9e7763c81f651da8" + } + }, + { + "type": "Regular", + "proTxHash": "d5af49f10e748f9752e6f5205a0dbcf2b16c6ec79a5cf4947477042f94e88d7b", + "collateralHash": "0368aeed81bb3c4a3025db7ea25b39bf4c4916502ca1c05f7dabeef2f25a3e6b", + "collateralIndex": 1, + "collateralAddress": "Xz299PRdZQUYau8dsV7XGBYa4pAheEeqPi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.171:9999", + "registeredHeight": 1029464, + "lastPaidHeight": 2125894, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820956, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmbTLzf6TH7XPCR2CiBXcxcAL8BcAx9Her", + "votingAddress": "XmbTLzf6TH7XPCR2CiBXcxcAL8BcAx9Her", + "payoutAddress": "XsMtKJX48a7qKDh9VhBA7BV1FUTJZcww5W", + "pubKeyOperator": "8ac239ac08f991893623917b242d9791dfd78de9b4f5c23c8eaf5b1399c118f38a00cde3c67c3805a200a04e87509b3d" + } + }, + { + "type": "Regular", + "proTxHash": "0ebff194d1768f77a4a4a9eeac07200f7bf14cef7454a2ac156517b3acacb140", + "collateralHash": "905c60624506913ffd0f2c3389badb701afda51f92114da6094e51e7a7689b03", + "collateralIndex": 0, + "collateralAddress": "XwP3JoHmtx1KWF71HFCZUeKyg98kC7X9dX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.131:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127053, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xye6capCP7TrjYFbGHLc7gntpayeV95WSY", + "votingAddress": "Xye6capCP7TrjYFbGHLc7gntpayeV95WSY", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "04bbbe07d8c16a745d07f8e30f341c1994c9fa9c038dab1d32823d5d7c30a386f0f176620d8cb1e5889e2ca5ce018a39" + } + }, + { + "type": "Regular", + "proTxHash": "6a1c7009f6cd08d312e57ca4b47a7a72208b7ac4c6ffa588f27f26f2f214e859", + "collateralHash": "d4fdfd0b63514ff77f722e9cdf22502b055034e2b9c41782e4c4b085a81e5b85", + "collateralIndex": 0, + "collateralAddress": "Xn8coHRhyyHnPCvfhXh3ok9gbFBKY7HkNT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.132:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2126394, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1569823, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnw79auQhH6mX46bzaLQWfhWGf6gz1c3z8", + "votingAddress": "Xnw79auQhH6mX46bzaLQWfhWGf6gz1c3z8", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "9464a73e39e0fc49e40e5de652848b74cad859c21c61311bfc366044fcaa5a4af5884547b9ba2ff80e32995c6443f30c" + } + }, + { + "type": "Regular", + "proTxHash": "6eb4430b557754ea31bd8ca79e37f11db796b25217a1d2ca348d3458b01355cc", + "collateralHash": "b36be4375e791fe96a60f95c3be2578fb56801827266ce3939b896e6453c169c", + "collateralIndex": 0, + "collateralAddress": "Xufr4gpu7Bb2EeYLue29cZcd1KfZWsuBXQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.137:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127001, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761195, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoiL6MbZc4iyEpLnEbCjU49mYoPcPow7bn", + "votingAddress": "XoiL6MbZc4iyEpLnEbCjU49mYoPcPow7bn", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "8249ab30805035c3f8d6cf36bfa1271e20d19145fe594374c4f0d91468759ef56cd06de1acaf8d2d0c5f0cc131dcfe27" + } + }, + { + "type": "Regular", + "proTxHash": "a2e28a5a0a9249c05b2aad1f8872e775c50f382a97578e9f6486b6e2f49fb350", + "collateralHash": "cd40b90e8672394ad80ac7b4720ef476164933fd8b1ce45c234d9a30e7ccc770", + "collateralIndex": 0, + "collateralAddress": "XbU1P1CM5YzZF3xzmHvrthh37hRAs5E1eZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.138:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2125756, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820755, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtDTwmSM45wPykfFxr4MpVuaPtwrAiGPzS", + "votingAddress": "XtDTwmSM45wPykfFxr4MpVuaPtwrAiGPzS", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "83de36664a58d7d4683411e57a62a2929b2914ecf2c1e93216cb7a6d5f59e620f7ed94c5ae5fa6bb1b1c2cddb7a495d7" + } + }, + { + "type": "Regular", + "proTxHash": "04c64c5321d293dfc80026f3f4635db3c31c063d906e6c05fa85b36d896f2259", + "collateralHash": "a6f5743b4f2e009049915263b3cf81b9befe556979c7aa7b7cbfd0ce5857c1c0", + "collateralIndex": 0, + "collateralAddress": "XugU4gYLFTrXfAfDJMrBy1YmEaByktnLLz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.139:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127069, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhMxhTNp4p5q3byeSrTHdyzEEdoatir747", + "votingAddress": "XhMxhTNp4p5q3byeSrTHdyzEEdoatir747", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "840ed2ddbd922234a83ad3df0327f824ca54486edcb6ec5da9c0e3fa53ba20b0c5f4349fc0072ffdfcbe2d40af6fcb8b" + } + }, + { + "type": "Regular", + "proTxHash": "7a6b734a35a8485b2d7dd63cb9b51b64b154242f1b5216b872ab1cbc55e1526d", + "collateralHash": "936d742717c38df62d621419bf3bc66ccb5e5e628968c4e6be82d6d5bd435ab0", + "collateralIndex": 1, + "collateralAddress": "XjQTXu6X1T2DdDwLhqHzh1wZoNGt7uJbps", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.172:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2125916, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820960, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqF1qHTLYBFjQbMStYVNfDhds3UKr5MjqZ", + "votingAddress": "XqF1qHTLYBFjQbMStYVNfDhds3UKr5MjqZ", + "payoutAddress": "Xdhkz5zL4xNKJk8zRfMbr75rjy2tg4yDdz", + "pubKeyOperator": "11ef5edb5e0c995b98590623555b9521a99085f335be167299564957dda5ba5a8cb49d2dc436e4b4ce7effd05677b7d0" + } + }, + { + "type": "Regular", + "proTxHash": "ecda36cdfcdeb8865756e7c9db3708a443731fffd7c4b38f36c3ef5f393228b5", + "collateralHash": "7187092b2b81e25e0645f23395bbeb4bbefeb1afb429a5282e1038d550c9109e", + "collateralIndex": 1, + "collateralAddress": "XvQVMvYDWrZ7WKEwXCQHpyK64Hic3Tm7Qn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.168:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2126747, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1354586, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsEpTFNDNjw11t5dis6E5CxozmU5ahrYmh", + "votingAddress": "XsEpTFNDNjw11t5dis6E5CxozmU5ahrYmh", + "payoutAddress": "XwhjLZGUf1VMUxfT25ZsMqz5nHMBAAWWaU", + "pubKeyOperator": "954b5017998fe8a16d3946ed13ffa255c546a1dbd478e5bb3a2657de4d331a6abda1587ee83a8c6954bcad8ee43bb16c" + } + }, + { + "type": "Regular", + "proTxHash": "3099cb1b4ff3ac7b4de8c8671078f3267633d0c9f5260f81e8b06a783947b205", + "collateralHash": "7ea855a654bca86bbb9c583ef5c218478586ff0cac692a36f8ccf3bc090bd7b5", + "collateralIndex": 1, + "collateralAddress": "XotqCm8mv7Cb3aVgLkf1J6X19zX58zoRXn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.28:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127550, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1700345, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmm3RfWUEUrKSgJzZrVp1YNzdFnriqP7Br", + "votingAddress": "Xmm3RfWUEUrKSgJzZrVp1YNzdFnriqP7Br", + "payoutAddress": "Xb9vP6tBp94YEVUbBprS24un7jXkfWL3DG", + "pubKeyOperator": "9944f7c4990a45f0597812400cd3db875d312d4c4f5c180a276cc6a8e3851f2f32baef0148ad5158375950211c5bdc5c" + } + }, + { + "type": "Regular", + "proTxHash": "bcfa6690eed123657f92dba574c6b2641986b6a30abd96fde2f5e8351e9eba1e", + "collateralHash": "8103094c5a77aadcc841ce6b319c5c0e3284fd431f8714963174d133a0bf3bb8", + "collateralIndex": 0, + "collateralAddress": "XoumV8hQdo1J6nFu5QmLvrGjgwHyAQqWeX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.142:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127051, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtDijX5U35WQQ3h5mLrmDPYYAD2jUmwYL1", + "votingAddress": "XtDijX5U35WQQ3h5mLrmDPYYAD2jUmwYL1", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "8f0343607b479bb9a910909700e0824e4c223fe0dfc4c43a9f9d4ffad4cb2a3e44071f4e22af03003e2aa7a8c99c0cc5" + } + }, + { + "type": "Regular", + "proTxHash": "d66ba16f114b921b3e48c7a0681ba465a68f09029a130999859cb0abb48a0717", + "collateralHash": "f30dfd61b96b306222dfdbd5af3a655d69249da13857683140f2e85128f815ab", + "collateralIndex": 0, + "collateralAddress": "Xuvxr63KMPEE4xxnbSwwbyGJFB5A117FQK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.143:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2126795, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986009, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xftz3bkU88gpa7oKvG9ZqTo1AoPuxe8aFM", + "votingAddress": "Xftz3bkU88gpa7oKvG9ZqTo1AoPuxe8aFM", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "0da94600ae2577f3cebbb9f919d91438831a9d084a4153155955bdb56109c29c12a299e3263f74cbc25c9cde3e4285d4" + } + }, + { + "type": "Regular", + "proTxHash": "611beb9939aed8a0d2086c4512f757d89519e117600ec38d7ed120981fe7ee43", + "collateralHash": "b1b75554b5488ddcb51e14a48dbf8187980478d467ed898e2bfc9467df96a303", + "collateralIndex": 0, + "collateralAddress": "XmYYpc8HtrHiifheRx8fAfuFrhnmh4etLS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.145:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127067, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxf8Zr7QNeUh12acARxbbo7sPCbTSZU4mv", + "votingAddress": "Xxf8Zr7QNeUh12acARxbbo7sPCbTSZU4mv", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "13180f0ca3ba7a83b7079269b06a2ed78e54157cd8fa69a45549f01e0edecd72eb29b27fbbaada27c36b52f110ee4b41" + } + }, + { + "type": "Regular", + "proTxHash": "f2c47b9872b396261388bda3c330a8f07d993ff96207695874df80a96dd17bbe", + "collateralHash": "31811789c0769f535cf3c45f9927c3191ce8d3233344e541ed861438fd1dc32d", + "collateralIndex": 1, + "collateralAddress": "XsYSTr9euqsbZXmEpDQY63dz1TKfSPePtD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.27:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2127070, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf7itnQD2hM5gG63nFZ5Bm1NnnT8E9KVPs", + "votingAddress": "Xf7itnQD2hM5gG63nFZ5Bm1NnnT8E9KVPs", + "payoutAddress": "XhMV8pYnviiqtuX46SuWzEcx6Ps9sNuxYf", + "pubKeyOperator": "85109cff7f828ad34b1e3c44604aa9a639035ddcdc7856d59c22067750fb1843b63d87e1e61355938385046c902a5a07" + } + }, + { + "type": "Regular", + "proTxHash": "e4bbf295a2372e37ee520a295781dea6bc48311b31e8f9618c7b4e9872af25f0", + "collateralHash": "c91a5efce0475f4d14a56ffd763b12137b4e9227bafaa9d677596fa071043007", + "collateralIndex": 1, + "collateralAddress": "XtdzNw4Jz7AaHxAJQ92AgvfNzD3jfrrwcD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.173:9999", + "registeredHeight": 1029465, + "lastPaidHeight": 2125921, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820960, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjdx36grCqbjSSUsUmR8aRr8fnbqBMu6fK", + "votingAddress": "Xjdx36grCqbjSSUsUmR8aRr8fnbqBMu6fK", + "payoutAddress": "Xx443aKHf51WyWmDgtBFGfwgZeNcX1KPRy", + "pubKeyOperator": "01a4d3ca13d2576d7e85c3caaddfcfe77afe2a2248ef1ff87ec04cc58197b53fed435bad566c1e5264a70535412af647" + } + }, + { + "type": "Regular", + "proTxHash": "88d26b93a53f887053f04a8c805ec4f42cefa6fe7fc9cfe526cd6dbffd4dc527", + "collateralHash": "51880fe77e91dbf4d545c6272686dce376c734493abb28cfacf141d227991d09", + "collateralIndex": 0, + "collateralAddress": "XjcNPe8NwB7MAVRzszLqWRopywkHNKu2Ra", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.140:9999", + "registeredHeight": 1029470, + "lastPaidHeight": 2126792, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986008, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdHNZTQmLSyWjDTMvT4cgrxTA7EnpEsfyL", + "votingAddress": "XdHNZTQmLSyWjDTMvT4cgrxTA7EnpEsfyL", + "payoutAddress": "XjcNPe8NwB7MAVRzszLqWRopywkHNKu2Ra", + "pubKeyOperator": "0316c4a4cf715c858d53b3bfec7cdbe285c6cb145545a42554b45784aa8b2763fe3ec0dcf7366773948f190992631799" + } + }, + { + "type": "Regular", + "proTxHash": "891f1e75c339c66cf3bbb4c24fa58b0cddf8944948e7332dca0a8c16123ddc58", + "collateralHash": "b396695d3b1472b323d4ba3e523754e98a7630b7340df50b50468d4b5b2a3f3c", + "collateralIndex": 1, + "collateralAddress": "XkveT48N73eU8L5ZLjegCDVvGQr1Bh7jqm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.7.182.86:9999", + "registeredHeight": 1029492, + "lastPaidHeight": 1985957, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1987159, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "XtuTnGgXbjroPpTX39y3KeZnnhUArxL66L", + "votingAddress": "Xqkaka7NtEVbhLhsYCrED5oPNot8muNqmM", + "payoutAddress": "XnNxLdU8Qmi8z8htoTxop6k7K262Q1Sjc2", + "pubKeyOperator": "956fbe8201592f5885d3013a2a5378c3de7395046b8d61c975c7945c876df71bcb583b8fe7c653dbdfffae671b2e3b72" + } + }, + { + "type": "Regular", + "proTxHash": "d0c0586325d3078daf65c44737ece83f7ea96322856378ee994d9b31e1d23c38", + "collateralHash": "2accbc1b6f8b4d511e51f0d11285c14900e1a91fc5a02c4b5c988fd4270014b9", + "collateralIndex": 1, + "collateralAddress": "XgPSTY8SGSniE5aUbB3erDTg2XWmoWhYXG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.80:9999", + "registeredHeight": 1029492, + "lastPaidHeight": 2125744, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1239421, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XePzwM8s8c4ftBEn88xju3LJBUFeNA42Ha", + "votingAddress": "XePzwM8s8c4ftBEn88xju3LJBUFeNA42Ha", + "payoutAddress": "XgPSTY8SGSniE5aUbB3erDTg2XWmoWhYXG", + "pubKeyOperator": "0ac64b2c70fa1a37615aee3b3d312b7ce79991cc80e16d9d203d5cb041221dc4e9d9af5591ac2e06f07ccf6a6d4079ae" + } + }, + { + "type": "Regular", + "proTxHash": "203c497413026e429fdef12b99370b59648bc2c0facee3604d3c3446a81bdaa7", + "collateralHash": "c93bcf63157ef2c9c12c790806106a6738b50884e9813982457f8c768228c8fc", + "collateralIndex": 1, + "collateralAddress": "XwhQHUJZoLrXd6JFMaESa3ra5zDdYMhhfM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.42.253:9999", + "registeredHeight": 1029517, + "lastPaidHeight": 2126218, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1373500, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx22i9syAnjS8rtbAfzrCNpbpWsCUQ7hdG", + "votingAddress": "XuqpZRNDifZJBV3wezLFTZfM415BSzcVwL", + "payoutAddress": "XuEfkpqeM2UiigFiHZ6kTujgMEdnFyxTfh", + "pubKeyOperator": "95d520e9d616f8b487fbcd5e03eaa5106148065a01c4500489ce117dafb3b964f3068ba158203bc92a4ed1c141d9cfcf" + } + }, + { + "type": "Regular", + "proTxHash": "383590ce824fcf59859d04ed115d7309f8e61ee0e5a21015b8cc07f873eb17b9", + "collateralHash": "9f785997ea8a8aa42f58ae8bf9c935c574627ccefa1dec81b848151936ee87d9", + "collateralIndex": 1, + "collateralAddress": "XcXsjgPsYL3U8Pi9K9PCeTX4AUn7mU4Q8L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.244.78.10:9999", + "registeredHeight": 1029546, + "lastPaidHeight": 2128419, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1901153, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxJowMcRJ1zu3aNKdBBzMBMppf7ptxWaUM", + "votingAddress": "XxJowMcRJ1zu3aNKdBBzMBMppf7ptxWaUM", + "payoutAddress": "Xcha2TaKJUDkkLrC1qBzwF3XMfU8ihP44B", + "pubKeyOperator": "144c069d591281f9c27ebf3dd5395e7287e6c911c8967cd9cf0abf5c3aac945dc295053b0400346d9200141e2cf9db20" + } + }, + { + "type": "Regular", + "proTxHash": "936fe30e8960d0fb5cd61d3b7b16329330f03d7b65b01679e54d41268f23f0d0", + "collateralHash": "ed72ad5647c06dca2af3593df3e2b6e3cf0b7f717b1220813a3b8f79b1c6ba75", + "collateralIndex": 1, + "collateralAddress": "XqLqvF9strUYi7feSrF9XzBV1xQNcSJ4si", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.92.86:9999", + "registeredHeight": 1029557, + "lastPaidHeight": 2128125, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876596, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqBFLjHNWdYKrAmtJcaLm6p1KEBY4pM9sb", + "votingAddress": "XqBFLjHNWdYKrAmtJcaLm6p1KEBY4pM9sb", + "payoutAddress": "XqLqvF9strUYi7feSrF9XzBV1xQNcSJ4si", + "pubKeyOperator": "0abd4263bbb51f5036789f40a93e959a7118858e165ff455207cfaf431063df02cb1ad9997790d19d37c797d4acd0f8e" + } + }, + { + "type": "Regular", + "proTxHash": "d88fb994856e9b949c9ea2a414a8a530961f67a0d3008d1ae92ef1705317e716", + "collateralHash": "cf32d891a3b8122e1bafc65bc841594d2e89d65893b8c27456a97bb83d603bb4", + "collateralIndex": 0, + "collateralAddress": "XsB49J6tsUczp1KT958UFhDqkYE98oPuXq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.252.232.103:9999", + "registeredHeight": 1029567, + "lastPaidHeight": 2127758, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2084423, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XetiYtLgfRztpqZRavdMwa6iWnzxLYb6Ue", + "votingAddress": "XetiYtLgfRztpqZRavdMwa6iWnzxLYb6Ue", + "payoutAddress": "XsB49J6tsUczp1KT958UFhDqkYE98oPuXq", + "pubKeyOperator": "08cb64eae0149046c2bd07922b6351c14fce5f2c1dd3113fde21dbcdb45e38629847257d9f1c22efd6ca0c04a36efd08" + } + }, + { + "type": "Regular", + "proTxHash": "b7ee82c07440783b26738a982f74bcd691a194a93916914d15549b912612f3e2", + "collateralHash": "88cb71cebdbd7435b9edbd9fbb1480ba7fd615bf03550b2fc0b262f8c5ff3bed", + "collateralIndex": 0, + "collateralAddress": "XaqKyJVWi2ddniAeyduWhUjRDyEuFxJJHi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.63:9999", + "registeredHeight": 1029582, + "lastPaidHeight": 2127737, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976287, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmPVn4YnzSU2XAryKNN9HzVxdVoxUzEgte", + "votingAddress": "XmPVn4YnzSU2XAryKNN9HzVxdVoxUzEgte", + "payoutAddress": "XaqKyJVWi2ddniAeyduWhUjRDyEuFxJJHi", + "pubKeyOperator": "87271f6b6c951e8b86f4aa96abe4a7d034fd9931bf8089964083768a1f6c76e03f414f706b968f023b2aca968d152923" + } + }, + { + "type": "Regular", + "proTxHash": "de5700279746d4d1b25ff6d4407b32c322ce5cf7a159873c18b929c1cad67865", + "collateralHash": "56f9475cf2687a382ac613f3d055c37069819fa3899f40ff76a8784735e36af5", + "collateralIndex": 1, + "collateralAddress": "Xdqz5t7qiM6AQwvGZs6dhqJxoDk75dU2dj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.42.44:9999", + "registeredHeight": 1029591, + "lastPaidHeight": 2127478, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1875989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgp3MzBuiV5zRWXDt6VUZo4xX4bA55JXD3", + "votingAddress": "Xgp3MzBuiV5zRWXDt6VUZo4xX4bA55JXD3", + "payoutAddress": "Xdqz5t7qiM6AQwvGZs6dhqJxoDk75dU2dj", + "pubKeyOperator": "03d970dd8d7b6909bd5d6511159fc38576a8d4553e1ad357b3d97b27d06a97e55747e413b93d4d3b1f843ad8a24e9a67" + } + }, + { + "type": "Regular", + "proTxHash": "d3ba040a212ce7ee8fbc2215c03cc7f038bb9a0a0e9d59ff525bd2f51064629a", + "collateralHash": "dce7eb8437cd384419d9c96b9f270a2f8cd4b6a290bddb2c0aabda2d039ecb56", + "collateralIndex": 1, + "collateralAddress": "Xc2UPPZZ4YKxK58S5a55SgNVkoQVci2993", + "operatorReward": 0, + "state": { + "version": 1, + "service": "123.193.64.166:9999", + "registeredHeight": 1029606, + "lastPaidHeight": 2127991, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2084645, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvcy8JxQ162TVpcoCjXQjKLVESCfY6sndY", + "votingAddress": "Xvcy8JxQ162TVpcoCjXQjKLVESCfY6sndY", + "payoutAddress": "Xc2UPPZZ4YKxK58S5a55SgNVkoQVci2993", + "pubKeyOperator": "088dbb700890ba2af40bae1d4e8d174616ca7228bb18dcb969c7bd0ef13e93a18a4dd82bbdeb6251edc6be28c7f4db3f" + } + }, + { + "type": "Regular", + "proTxHash": "9d13faa3500889e2259c3816ec723cee24aa68d988297891d87c7394bea1a488", + "collateralHash": "b509abb1fb75c6e7f879e658b8e8b61fe240f543932f825481bad1771c2980ae", + "collateralIndex": 0, + "collateralAddress": "Xba8puiDBdJApEUYWxDSebG8yQKnUyQ1p8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.167.250:9999", + "registeredHeight": 1029621, + "lastPaidHeight": 2126682, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120628, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrC5pL9JtuREV84WVNMc3WrxNDJvru4gRy", + "votingAddress": "XrC5pL9JtuREV84WVNMc3WrxNDJvru4gRy", + "payoutAddress": "XuF5VcAMhZvTv9GYsa4JsjHWAztoxWjqG8", + "pubKeyOperator": "08b4bb316e712645d9df9b20675d0118cea2e7eb9513f8c04bc1b34f0d23e0378c4bd27274e350af32974f6e063c9287" + } + }, + { + "type": "Regular", + "proTxHash": "acc1b390700a15436a0dc8f895210508b560d0ca0face61d38c97bdf0547c5c1", + "collateralHash": "5148f3359150568b411b389dc9a79120ca44ace893b1b1ae48fb1fad469e76e5", + "collateralIndex": 1, + "collateralAddress": "XfPfx23GzjouiiSDwWroRSCh37RSMCKRQc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1029722, + "lastPaidHeight": 2048136, + "consecutivePayments": 0, + "PoSePenalty": 3802, + "PoSeRevivedHeight": 1962591, + "PoSeBanHeight": 2049149, + "revocationReason": 0, + "ownerAddress": "Xu5LQdnmMegFrjJzgtDHLtFXwCFA8EhmPx", + "votingAddress": "Xu5LQdnmMegFrjJzgtDHLtFXwCFA8EhmPx", + "payoutAddress": "XhJiL74njwo8Yoo8gCGaZV6297wmA1RLoz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9fa181eb6da98d676a5e650621424dad5cc2151fe70795139c2d9556a0eaa379", + "collateralHash": "9ac6cad7af01dec6c4ab80f1345ffaa15a5b22a4f486c4a5dfa53ba9e5dee840", + "collateralIndex": 1, + "collateralAddress": "XwLpk1rDaKgF3eFuFm2tLoFwv8XZpZJpLz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.155.91:9999", + "registeredHeight": 1029729, + "lastPaidHeight": 2127498, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1260497, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsHhJk6iAZJS6NaU6AjBD4xQQCqRRnXLNg", + "votingAddress": "Xcj5Nf4XyGwMgfbmfYA7yqEgFdup3JzDtv", + "payoutAddress": "XvfaRxTwhRJiJjdTab3B1eJixZ61YNBtyv", + "pubKeyOperator": "9525a9a3eac9815d12fbbdb23ba6f73e476873032e928aca5e95130722dbd01e9f12fb2a2538c99048a645cb4ce3473c" + } + }, + { + "type": "Regular", + "proTxHash": "2281de9e9fea3544b0c605db6efbff3e107b6f6e053458a371f5c0d35a648a05", + "collateralHash": "1bb9e0c5f7b200ff9ed963cf922f1f09aeddd1bbedfb77315215ad2bd3febc6b", + "collateralIndex": 1, + "collateralAddress": "XxMpoC6fwpm2TtxVik5357yqDDzw8Zh18e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.229.142:9999", + "registeredHeight": 1029739, + "lastPaidHeight": 2126781, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349808, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xck6FM6K6ZwmYPypRpSEAXuhm5pStk2KcL", + "votingAddress": "XqER9N6He2Zuxbpg4h9cHhi1UvUaFQhtCE", + "payoutAddress": "XgfyuBR5p5dogr91MRvjpf51y1oC65Ebry", + "pubKeyOperator": "87e9c1e89bb1960ddfaae8e26b9ea3ded2ca5aa5790968e2a9b3a08764f9888e7f2e628a88915b3e350d8ebddcd2692c" + } + }, + { + "type": "Regular", + "proTxHash": "404f83c976c6bd6c4523d993c0e715b74b9ffaa4bf306fb61a5d28f7150e854d", + "collateralHash": "1438b98400bb24603d24a7ee37e56d70ab7c631f2008c40d566b118a24523529", + "collateralIndex": 0, + "collateralAddress": "Xcy7WQgGF5T9jFZqwd4oRdAQEjF1wUTKwL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.73.248:9999", + "registeredHeight": 1029742, + "lastPaidHeight": 2126784, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349819, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjjjEHki7jJifeQqdXHsTR8pK63GX1oenC", + "votingAddress": "XdsPfGNvD8s235fXvLqYeoHXFCEWSBcar3", + "payoutAddress": "XaomcDRoUzF5MHYiqfdNQAs4RFZU9u3dw3", + "pubKeyOperator": "863f4a3a7672c63f967facf801f41fe961fcf26423283fa4f85ddb1acafacd776f4c8741d868631d444dc74eaf32d741" + } + }, + { + "type": "Regular", + "proTxHash": "8f7739aea4c7fd64ba25241fcf40bcb52a54fd68a9d48e504e7d9fd2d7087cc9", + "collateralHash": "aa2f41b6591fdb9d7b436b2d036c285e2c6ea946443bb9a8a4718c8c26c5fcad", + "collateralIndex": 0, + "collateralAddress": "XkxVWdDoVGv7nqAGeVprsN2cbsQmwX9qcA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.91.57:9999", + "registeredHeight": 1029746, + "lastPaidHeight": 2126791, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349819, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe9j6MN1dYdMvtr4BL3XTCX9Xoa3HnTY6d", + "votingAddress": "Xu98dHeZsNcj9aNqoVhn1dPeJN9U4yTPFG", + "payoutAddress": "Xq5m4x3c4zcXoKSqVpJh8tbhxtm2G9xUgm", + "pubKeyOperator": "074d5f33853b1385b84bf6fb44d7cef81d593f3c0b640ae53adda1d28eb5770233d7fc5cc2c094c8fe454045e4af234f" + } + }, + { + "type": "Regular", + "proTxHash": "c7c00c511130f5e9687082fbe085b814211c0edd9712f688598477dd7a4d49b5", + "collateralHash": "eba86092e7f250b82ca9c01af31cb9486a7c3a0c524dcd9033d902d17044ba40", + "collateralIndex": 0, + "collateralAddress": "XvMw5d9D1dW2pxPRWatDqCQB5i6ryGh38C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.90.221.233:9999", + "registeredHeight": 1029749, + "lastPaidHeight": 2128523, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1337451, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvegYDbM2tdv64KP8A6qa55A6qS9t8skfS", + "votingAddress": "XqWN5MAaQ6JUG1pcuPG2TJ2U7cJuh6N8EY", + "payoutAddress": "Xb4w5gF7MwRMVpP7fTL466yBnPAPeuxvZF", + "pubKeyOperator": "8a7fed582772bd5b1bd5ce18cd6647103ac7546ecb26788669d59ce1d20d5c23622615181a0267da600b56180afb4a59" + } + }, + { + "type": "Regular", + "proTxHash": "f80ace3f1a5099a4807578388a5bf07c71dd6ef075df03b2763271d467dacf8f", + "collateralHash": "2831bdead88396c6406bd41a524a5f1bf2b76e3e1a411c5381167a74948f8ccf", + "collateralIndex": 0, + "collateralAddress": "XtssPVjT1JAsZPUgyzHYiEzu2vExMqeKew", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.92.68:9999", + "registeredHeight": 1029754, + "lastPaidHeight": 2128524, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1337456, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd1FMnuhHjbNvHpSJi3mEXjBizBP5w83gN", + "votingAddress": "XjY8ue64gqPFDNaBLPMa4kCTL63suAtrHJ", + "payoutAddress": "Xcr7kLEsJaNtz4JZQT91sxUuR7G1vih8nY", + "pubKeyOperator": "952a626f6d528d5cdd45a6e2259af1a8b35521404cc2c1b26c0457fca3df2b4e8b3f4d419bcff424efbc8347c75776ff" + } + }, + { + "type": "Regular", + "proTxHash": "f6ae1017822f6cfd6aed268994bd328dd24384888d66f52e7fe59271e718146f", + "collateralHash": "8218b9ca5bccd7edbbc98362fbc6c7480822eaa816d8193b5f0ff5015f8dbd28", + "collateralIndex": 0, + "collateralAddress": "XqHM3WwXspsLwLjP5xmok2RdpMbFQKGRNM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.94.177:9999", + "registeredHeight": 1029755, + "lastPaidHeight": 2126786, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349819, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi9Htrciz9cpBhd5u1Txo7siPiePTtkjTq", + "votingAddress": "XiKuqRtx5B1Gwxa2AUwLYX5UTnv4DRocUM", + "payoutAddress": "XqwFzvxxx7hmQy64XVwfAKfc2eyY36hF4D", + "pubKeyOperator": "840f19fb021b6691e1a86901cae6e0d90cdb66f4e1ca30d999587cad53fa38711f828271102d6ae479376b9aba081229" + } + }, + { + "type": "Regular", + "proTxHash": "0467d2d224faa3de7bd50874b5f7af1e0764fe52735f535ad576c07f04bb56f8", + "collateralHash": "dcbe24f7cfc0cdbc44987ccdf6430f7291b12055cf46f1baeafe0641901ba1bd", + "collateralIndex": 0, + "collateralAddress": "XkrxH773gQSfENjDfHiwxCttBnWERTRiZD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.80.241:9999", + "registeredHeight": 1029758, + "lastPaidHeight": 2126797, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349820, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyRjY6vM4zNKkvmJQdaanm6HThbEQ42WFm", + "votingAddress": "XfqTAsEEYAGfSD9ytU6jskftRHETDjZk5w", + "payoutAddress": "XqTRAiZpQYo9TumaPYL3tdwXaJzLbxSQ7d", + "pubKeyOperator": "1991f093a3057f008924813c1e1823e5c8631c9f8823594be545bb65b9cb58321fa65990170f32b22c7ebb0e1f95d3e6" + } + }, + { + "type": "Regular", + "proTxHash": "a532a475f021fe80fd4d59ad2f97b248afda9862dce385dfc60666a91d4e93d1", + "collateralHash": "bbaa37cdfe706f147e3179dbf813cc1f0083bed230c984587c068436b99d096b", + "collateralIndex": 0, + "collateralAddress": "XyqTJa46vKVQ36YoLQnL8zPEwg8PPm1JNb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.113.5:9999", + "registeredHeight": 1029764, + "lastPaidHeight": 2127419, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1336019, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgf2PQxP8Nw45XfcRBW7oWjU7VWsChkigV", + "votingAddress": "XynA8VoQCzRdgetaDwkbnZAfGsSSYyTCii", + "payoutAddress": "Xh7te48B836WZuCV8WWQ54V9NaGqYiqG5Y", + "pubKeyOperator": "802bf50260a119a62c7511b95017cf2486423ea8ac8d051cec2725a6b90bacebb10bb17f25d4c8aad3af5bb47daab72d" + } + }, + { + "type": "Regular", + "proTxHash": "b712dd73425a1756d8eed5ea8bb7be4708dd5c49d8ea80d704d9b8717e7c9fc8", + "collateralHash": "181d3ddc20a8dea568dc7de7827d92e58f7390b0f0f237e4cfbdf25bb48b5fcd", + "collateralIndex": 0, + "collateralAddress": "XsAdJkzxHRp5xPBruxuwht5qLmyv3uQ1su", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.227.113:9999", + "registeredHeight": 1029770, + "lastPaidHeight": 2126796, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1349820, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiFwp4MmfseybtUbbU2o12S1UP9gspHr6P", + "votingAddress": "Xm8gCXxZTuDw2NY96h2rx7zniskVvGPgMv", + "payoutAddress": "Xpa2afaR373SjfrbwgJdwDaqxjLB2j6bMP", + "pubKeyOperator": "00f8d070885406a6421f378067ca65a7df5c33835875fe23c756f989af5ca7487d681edfb6d7e13661d46c7affee1aba" + } + }, + { + "type": "Regular", + "proTxHash": "0b64de24afec066dead108f4230d9d0c53f7b1f7926800931cc7e9ad3abc4126", + "collateralHash": "064c5b4887777cd232d6ad628488d2f92f5d1054e301b0a142760ad755a9b636", + "collateralIndex": 0, + "collateralAddress": "XgtzdGsQHMfdwMs67wybqoBaFY3f69m6Zq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "35.172.97.53:9999", + "registeredHeight": 1029841, + "lastPaidHeight": 1265713, + "consecutivePayments": 0, + "PoSePenalty": 5101, + "PoSeRevivedHeight": 1323298, + "PoSeBanHeight": 1324246, + "revocationReason": 0, + "ownerAddress": "XrQsLAUjajCsBKeXAXeSNfpJVG1CeKHsce", + "votingAddress": "XrQsLAUjajCsBKeXAXeSNfpJVG1CeKHsce", + "payoutAddress": "XgtzdGsQHMfdwMs67wybqoBaFY3f69m6Zq", + "pubKeyOperator": "826b65fe631a3d7a8c8efaac2cb5e28a103e26bd1983170541110e07953c681e791e5803ae4c481a0ddb9c90c820b1cc" + } + }, + { + "type": "Regular", + "proTxHash": "5289554760b43b1eb394be3868989dccc6424b787c294eca896abbcb42789368", + "collateralHash": "23767babf2e7131bcd019486bc51de1996bbb9ea3139a1d6ffa12a43aaef1d04", + "collateralIndex": 0, + "collateralAddress": "Xmkpmp9T78iuvbuSBxWGNaZ4mSE8C55SWD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.233.160.177:9999", + "registeredHeight": 1029842, + "lastPaidHeight": 1265716, + "consecutivePayments": 0, + "PoSePenalty": 5107, + "PoSeRevivedHeight": 1323298, + "PoSeBanHeight": 1325867, + "revocationReason": 0, + "ownerAddress": "Xq6qhMNtVzxFBKMKzFsfjnyuL2JwMGbXQx", + "votingAddress": "Xq6qhMNtVzxFBKMKzFsfjnyuL2JwMGbXQx", + "payoutAddress": "Xmkpmp9T78iuvbuSBxWGNaZ4mSE8C55SWD", + "pubKeyOperator": "8fe4460916201f8a2714d16f518085567ca2c2fa6176bb6fb2132f7324cf3e808e558f8af99c34ebb5fe71673f9c6bd3" + } + }, + { + "type": "Regular", + "proTxHash": "65ddf37566f7aaf1cc6a12891529babe0c8b70a6d726366f760c6860eabd65a6", + "collateralHash": "e1a294be2c30524b03512e450bc395f2ef5ea933ca7e1ab6da889313fce9f193", + "collateralIndex": 0, + "collateralAddress": "XgpSAWRFArMWabtFb5e1rTKLoM1RL9Zk1Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.30.149:9999", + "registeredHeight": 1029887, + "lastPaidHeight": 2128409, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoUzKqRoRTUvZBsyWTQ9kvy241bjWwq17L", + "votingAddress": "XoUzKqRoRTUvZBsyWTQ9kvy241bjWwq17L", + "payoutAddress": "XgpSAWRFArMWabtFb5e1rTKLoM1RL9Zk1Q", + "pubKeyOperator": "961294cbb05f3f0083cd1ea5af384bd23d3f323cfa3e70f7e62a26dfdd6a06457827ff4c9531839db23657635966d4e5" + } + }, + { + "type": "Regular", + "proTxHash": "a1f56f291bc5b04e358f2bb83c733fedcdf2c600954b8417bdff9153d06f3d63", + "collateralHash": "4751ac34eff0cfd8ef1f63452990cab68ece292b5d7ca5b2197619205c4a607b", + "collateralIndex": 1, + "collateralAddress": "XnUzN4XaZN9x8pbVjrhoRC7JgjuUhGR5BJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.28.35:9999", + "registeredHeight": 1029916, + "lastPaidHeight": 2128216, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1437723, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwW3KNEWCivt8UH2R6Z5V966ScY4Jaifhy", + "votingAddress": "XwW3KNEWCivt8UH2R6Z5V966ScY4Jaifhy", + "payoutAddress": "XnUzN4XaZN9x8pbVjrhoRC7JgjuUhGR5BJ", + "pubKeyOperator": "95b51537fe3c7a446412ca9ebf8ee287e7b3264ac26648d65a86abf55df8fa314c1c2746f6157c1aca502a4674ddac90" + } + }, + { + "type": "Regular", + "proTxHash": "5894e06041f263fb3af39eaf2623e070ea6e54f4516c9a5ab8275af96d03903d", + "collateralHash": "de23ce6fa9184afe9bcf80431d5056139f398dd5e1ece10d4c83f4e53a639fc0", + "collateralIndex": 1, + "collateralAddress": "XuyDQyQMjWZdyWFoS2ZhS94eKcdRCmwkro", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.206.134:9999", + "registeredHeight": 1029918, + "lastPaidHeight": 1722126, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724459, + "revocationReason": 0, + "ownerAddress": "XpiCpM7BD8cYx5ZvakXBW4RHiyUbYEE6gR", + "votingAddress": "XpiCpM7BD8cYx5ZvakXBW4RHiyUbYEE6gR", + "payoutAddress": "Xsx5CzkKKsr4sLJcHU9UgfBuozxFjvJtqC", + "pubKeyOperator": "9963db90fa12fe05a1363e3aa087b38bf5faffaf8ba348e92571c459cdd478eca1512e2c3005e642d0826e10a46031d4" + } + }, + { + "type": "Regular", + "proTxHash": "f4365c94351b584aed929d817d92d23e9d2e84166ec78d78d8f5a6f14c0e8667", + "collateralHash": "c02ad3217882c642c8d9adb5a2367a2fdada52ff8b22ab48dfd698fb3cc97f5d", + "collateralIndex": 0, + "collateralAddress": "XiCMVQ5WEy99YfDAdYt8o9TAZ7UViRkcmg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "195.181.211.64:9999", + "registeredHeight": 1029958, + "lastPaidHeight": 2128175, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987279, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy69urpdt5BDY7D4bJJYA8r4v4prKrY5jb", + "votingAddress": "Xy69urpdt5BDY7D4bJJYA8r4v4prKrY5jb", + "payoutAddress": "XiCMVQ5WEy99YfDAdYt8o9TAZ7UViRkcmg", + "pubKeyOperator": "078b3cecb3e253a1f6f0a0d3e7f792ad6bcde8d2518e6c518fbdfb18c71e6741b5f3a605620dc992a2bac69b4e47b4ca" + } + }, + { + "type": "Regular", + "proTxHash": "052b9892a3768aeafeb42036f5f00cb80ee8d42c0e8c317f3f41a81fbd38f82c", + "collateralHash": "b7bcd8c333b3b9c545db08bcffb113c75e282a21a9ddd9d2d3fbe2403f1d6796", + "collateralIndex": 0, + "collateralAddress": "XkdF1dKsUXwds6CtBnJxxdXw5qic3x8UAT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.139:9999", + "registeredHeight": 1029985, + "lastPaidHeight": 2128503, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkfdxwf8mhh5xwX7Nk5EDHzcFV2LLFVESb", + "votingAddress": "Xkfdxwf8mhh5xwX7Nk5EDHzcFV2LLFVESb", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "02ce4a6041c4eb9b1bcd4eafc68c37b84b7dd3173e0d8ce76f439754b63c185cac6e8566c1444bc9542b85952265e0eb" + } + }, + { + "type": "Regular", + "proTxHash": "280e8370cf3878abaab02334a8b41f278ffb70d0bbef6a2cba24ca9bc6fdb96e", + "collateralHash": "c12baae3c633a3e90628603b121566cd8fbc44cafe617575b02939f3e9ad3552", + "collateralIndex": 0, + "collateralAddress": "XdVa9SumburVoAxQLMG4CtydM4hPQMjNXy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.42:9999", + "registeredHeight": 1029987, + "lastPaidHeight": 2128504, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhFLHvtHsfd6f6he1h6vkYTzuKHuRaVk79", + "votingAddress": "XhFLHvtHsfd6f6he1h6vkYTzuKHuRaVk79", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "007599fae96fde3ae14a0ba4e94a6fae85e38898e1ca812442ef75749535241ef54c62ba0996186c0f80339593ebffee" + } + }, + { + "type": "Regular", + "proTxHash": "78d5d6e1d6626bd3fb2b457c6ca2c90751a337ee70a1fdcfea1fbc4741d21fe9", + "collateralHash": "afc3825da4edcce68b3febc8fd0524ce27d4e0bf7541c54c5fb411e9a909ce63", + "collateralIndex": 0, + "collateralAddress": "XxDWeDiTbNKP6oPLQErs4gdrfV9nB4JXta", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.229:9999", + "registeredHeight": 1029987, + "lastPaidHeight": 2128505, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvGvvzUqgMEW3oW2Fmw1KSSn26qxEvnqwx", + "votingAddress": "XvGvvzUqgMEW3oW2Fmw1KSSn26qxEvnqwx", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "944cf7a45e0b80f63fc11f27c36dec1761de34f49909eab615bc775c3def78e136c5ebd65dba281c1e786eb05f3efd98" + } + }, + { + "type": "Regular", + "proTxHash": "874fd98a4e4000bea7f3cff6e85ac953dd46f29b1d095262ddb7b05cd0915657", + "collateralHash": "5baf62425814e71577d9d5de541917ae89abf0da1ad3ae959536869c69410b2a", + "collateralIndex": 1, + "collateralAddress": "XeFG6PTFn9NsG97w2gsQ7w8MDmHyV4xLhw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.198.75.79:9999", + "registeredHeight": 1029997, + "lastPaidHeight": 1983519, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1910686, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XcRzxUudnXkjpLk3D3GuML6cdN5EgXAAJK", + "votingAddress": "XcRzxUudnXkjpLk3D3GuML6cdN5EgXAAJK", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "08707e91b2e21dcd1921d0f7750ae8a8a810d02c4699f9fe270b4c95196e7a158589c545037140c0cc9f2ac395a8d8f2" + } + }, + { + "type": "Regular", + "proTxHash": "ba47988e107d105eace663aa7ee8a15d300a29817559b035108cc16338df5740", + "collateralHash": "273d24ea45e7b0652df4e9ec5ef3f9cf4f9581a2cd70ffbdeee3f850c296516f", + "collateralIndex": 1, + "collateralAddress": "XfYngupHmzVJLGq9xVx5etuSuyBWHuSj3e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.31.26.46:9999", + "registeredHeight": 1030000, + "lastPaidHeight": 1983532, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1910687, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "XvBobMetrFtFDjEuku3UF5WE3b741NDGdb", + "votingAddress": "XvBobMetrFtFDjEuku3UF5WE3b741NDGdb", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "988988be5fa339b8c7e4f5bfffbc240967712e97af741bb944214462c244f9e11c3f4a1d9222d91fd0d620cc21bc6e08" + } + }, + { + "type": "Regular", + "proTxHash": "d497c2a7ad29b5fd5e60b31fcdaf7ad2db85c709d83039b9f249a59f1b71a480", + "collateralHash": "74ec4e61406143a8c73c1ff4adcd7325b43e01b8d78b7e75dbd71e8e387a523b", + "collateralIndex": 1, + "collateralAddress": "Xo3GRBWAL4JSBHPPPo6nSdnXQPuP4RRzzU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.83.91:9999", + "registeredHeight": 1030030, + "lastPaidHeight": 2126734, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1768499, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnu6vxLQx5piJa82TWg5JVcjAgHUTEH1bq", + "votingAddress": "XwmfutMZZgneznrxG4JwjnzKRC4U3CT2nw", + "payoutAddress": "XbD2jod4w983K6L5xEgdCMK66rmzYkhmo5", + "pubKeyOperator": "0025af02007de457012315d050188176ca2384e71755c1ca4ae340860c3c4820baf84fd28e3b47b342eab57e7006f5e5" + } + }, + { + "type": "Regular", + "proTxHash": "ee9d50f41dcdec944a73dcd34c0693beee53ecd80fb4eac664bf93e7fa1cba8f", + "collateralHash": "7094abd71a1dd108aa2901db2f95ccab30bddf5bb852c8d9f805ee7eb4b4d1a8", + "collateralIndex": 1, + "collateralAddress": "XgUrrLbYMzxdHW2ubLaiVy268GG8kXt2tH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "209.250.234.85:9999", + "registeredHeight": 1030030, + "lastPaidHeight": 2126735, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1768499, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqdUNAy17uLf7GQ8GSJ5HN3Y2bMGz2vrdj", + "votingAddress": "Xj1w4au3WMMqJax3SHC6aeVZGrCULJpLk6", + "payoutAddress": "XoaJLn5VumnxC5mW8ochykLC1KFsfehifw", + "pubKeyOperator": "93be51339f5d94ee76b02e2bec0d390555836a0c456b1724710107d5910648e960d4462743ac57417d995ade8d8b8be2" + } + }, + { + "type": "Regular", + "proTxHash": "b481c990d08ad36402d104fc288ed65e5db7754fc7122fe0870dff92e40b57b9", + "collateralHash": "997c956890ba7f3151731b9878996acdb86e8e6f7c09771ed14955e6e50f2980", + "collateralIndex": 1, + "collateralAddress": "XmPwfgDbDEdrwcRxQUPkgoH7JRRp2Ch1bp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.207.191:9999", + "registeredHeight": 1030030, + "lastPaidHeight": 2126732, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1768497, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrWcLEpupeq4K9DEMJYdqytf9pFxK32EYz", + "votingAddress": "XhUJruroobm8js1DyVJN3LCfi5SACHzQXt", + "payoutAddress": "Xb4R15ziPVysZS9DNcfHzZq74uLSC2s2Hy", + "pubKeyOperator": "823602f80d5068f5bb47e1211e25769755fe939b2949c928444d7fcc8d6406f32989d471a4e2e70581a75b2f1b392767" + } + }, + { + "type": "Regular", + "proTxHash": "3cd089f374f7d6071ad0db3a4d20ab4597ab6ab89c700d6ac66bb43454e398e3", + "collateralHash": "13cd9b5b21c11da3c6ab6d0171cddcfb175763213c9027e2b933e24b11b1cac0", + "collateralIndex": 1, + "collateralAddress": "XfiNRcR6TzBo2cQHbQDUzgsAC3wmBdFxUd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.198.244:9999", + "registeredHeight": 1030030, + "lastPaidHeight": 2126748, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1768528, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhu2k1vbY735BSkc44hsCjWCCXYBB8fXxx", + "votingAddress": "XhbBmKEiJYeohqeMqWbw5Hk93RgK3mRHu6", + "payoutAddress": "XrJfXd7gFgT4Eg6h91ycVnk4ZUpfeD47F2", + "pubKeyOperator": "8d1fabb183eda9bbde1ae67ebec745c8e87eb05ef53cb823af51b2601aff0c4671691186d9e2ea5f2963ccaf5ecd0c5a" + } + }, + { + "type": "Regular", + "proTxHash": "a33c980453a0b5c61fceb4b306d9cd1b2aed598ac2549733214c6f985cc1de80", + "collateralHash": "1eea347888dcfe566593569ad0c9cfd8c7db1028724f081cc46fe6be43e9cc9c", + "collateralIndex": 1, + "collateralAddress": "Xw73NAF1aUUNBgm313Acs9Gr1bPZAP25Zw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "79.98.31.59:9999", + "registeredHeight": 1030037, + "lastPaidHeight": 2127297, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1699974, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLUY8Sp5qYWBNeGbvYQuUjf8gKHd39CTx", + "votingAddress": "XwLUY8Sp5qYWBNeGbvYQuUjf8gKHd39CTx", + "payoutAddress": "Xw73NAF1aUUNBgm313Acs9Gr1bPZAP25Zw", + "pubKeyOperator": "91e97a5459b1a1e42688a1dd0b81e57a97a45b2b767e447c3054ffc51a14a487f4ce3f041a4838554a2ae139cbcb9049" + } + }, + { + "type": "Regular", + "proTxHash": "cc24b14632c945fdc9670f87f369b80843ab8e4460a14f0eb5ce317fdefe3594", + "collateralHash": "235480c9fb0ea1919b8f993bd6f39521d6d07d11844f91dbf4a9b92331c3d835", + "collateralIndex": 1, + "collateralAddress": "XmkQ5UwpVn3yfU8TEZkEA5HGQoKiZf3AHu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.5.55.94:9999", + "registeredHeight": 1030048, + "lastPaidHeight": 2127803, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976335, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xukok8Yi7tgyGmEMrfFJqgQC3fhkwgvcVJ", + "votingAddress": "Xukok8Yi7tgyGmEMrfFJqgQC3fhkwgvcVJ", + "payoutAddress": "XmkQ5UwpVn3yfU8TEZkEA5HGQoKiZf3AHu", + "pubKeyOperator": "88ae98e67255dc20e1d13e716dc630584d65f675313f5580d4c50afad0fd9342d9a3cb76fc6290cb7a495a6bfeeba9b9" + } + }, + { + "type": "Regular", + "proTxHash": "e7c0121410f17d11a7e9ccabfa36b0560bca1b03366dbc52ce64f1f06f5e4144", + "collateralHash": "6f21334c4a0df10a46e552c884423920d9de65fa24faf0dbb640f290c2218769", + "collateralIndex": 0, + "collateralAddress": "XkNKmTVcS6h8oPk8u5WhYSL9Y3KcBM6Nbe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.11:9999", + "registeredHeight": 1030057, + "lastPaidHeight": 2128770, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1866284, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxVozY7heM1Nd1et4fspR8Uk2jugeLsorn", + "votingAddress": "XxVozY7heM1Nd1et4fspR8Uk2jugeLsorn", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "80de6f6b2b9137fab1fa8dd8d61de04582a42deaf8c6879f62d8d48dfae9c71a2129c23e3de354b21de76b4f77c014e4" + } + }, + { + "type": "Regular", + "proTxHash": "ced8a039e797cdb37debd0bc6ecb7b27bbee67e38b1544577b2070481746a798", + "collateralHash": "ad81e825981464e52dcc37eabeab59944929483c99b0ab21d1760acddb92bb96", + "collateralIndex": 0, + "collateralAddress": "XoBdXf3NTxyWf3YRAFMEzte3QiXdcQXeN4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.186.176:9999", + "registeredHeight": 1030107, + "lastPaidHeight": 1347578, + "consecutivePayments": 0, + "PoSePenalty": 5109, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1352470, + "revocationReason": 0, + "ownerAddress": "XfssMH65M8YzFiAq8mXf9pGmP9AJrcsuzX", + "votingAddress": "XfssMH65M8YzFiAq8mXf9pGmP9AJrcsuzX", + "payoutAddress": "XoBdXf3NTxyWf3YRAFMEzte3QiXdcQXeN4", + "pubKeyOperator": "14b2c4ff9fc14c8f724f5c16755f5cc612ba06bb4a83473eb1de7656adb011b3e373c02bca9cd4c1f990c53992042510" + } + }, + { + "type": "Regular", + "proTxHash": "e2eba302acbb1aa7e2f1689750cd225d163f0a02e51fe3e15bcb514fd2bc087e", + "collateralHash": "e784f4a80067ab5f8736eb7640d7ce2469578604b7e75c13436f075e7c6f76a7", + "collateralIndex": 0, + "collateralAddress": "XfQpZ6vCkQyRCWmQdPKet2t6JVm3Wni34s", + "operatorReward": 0, + "state": { + "version": 1, + "service": "199.247.15.40:9999", + "registeredHeight": 1030111, + "lastPaidHeight": 1332843, + "consecutivePayments": 0, + "PoSePenalty": 5104, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1336053, + "revocationReason": 0, + "ownerAddress": "XdE26hKibaEhwHGZbHF5Un71uHPmCN8XcA", + "votingAddress": "XdE26hKibaEhwHGZbHF5Un71uHPmCN8XcA", + "payoutAddress": "XfQpZ6vCkQyRCWmQdPKet2t6JVm3Wni34s", + "pubKeyOperator": "025ddf52d212941e118f2123ecf2a26eb1c8098a4771b75af86e6a61c1d7d4d93a4bfe9e330647e9363aed979d3b3c3b" + } + }, + { + "type": "Regular", + "proTxHash": "3385a08ea2497d069bee524bd878c57959e1167ae9945f41fca7025f314eeb65", + "collateralHash": "cd2c8c0774f330e264ef1040680bf1e9b2e20e4a88ce513d4023988da056372b", + "collateralIndex": 1, + "collateralAddress": "Xb5DTGLvbrry3nHKzyzbxgpYZinuLRzJfd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.9.60.204:9999", + "registeredHeight": 1030364, + "lastPaidHeight": 1983520, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1910686, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XmRn2TsC8yaXX55EDYPRDBqAfZyCTauVqf", + "votingAddress": "XmRn2TsC8yaXX55EDYPRDBqAfZyCTauVqf", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "8acdf96162269d0f2528631f6a32486180e9d57531995a44b2237800878cd29e473fa31edbe14cb5d9128940727d9c85" + } + }, + { + "type": "Regular", + "proTxHash": "f207a7fe6da636d5970527cdc1f8edf16769a97e57092decee79724ccece3f70", + "collateralHash": "32b6d0da14e9d512d25767fed77f1f9b85c08e9c705b521f86f2d5043f6b79ec", + "collateralIndex": 1, + "collateralAddress": "Xtygd1BHwDm2wu9DCtcS8KBuYErM2QpWRG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.47.148.66:9999", + "registeredHeight": 1030369, + "lastPaidHeight": 1983525, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1910686, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "Xp95AzT7a2RVPAG7YGPfM7KbhnS6YdbJRY", + "votingAddress": "Xp95AzT7a2RVPAG7YGPfM7KbhnS6YdbJRY", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "1484b4e5967238950b1b23f837cc84988fdedde93e4300fc878e63c3f864d347e993ac9b25354d89415509f9a8a6bd21" + } + }, + { + "type": "Regular", + "proTxHash": "9be7be3fe8426adbd28eb56b838dfb053672c09032762cf347133813950bf93c", + "collateralHash": "8e7b631ee2de0c110c5f927da7b1e43266220438b0dabdd2e3fe98afca4739b1", + "collateralIndex": 1, + "collateralAddress": "XwyJ8LAyWCwiVWugzRpnGrEftK86QBry7d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.23.72.176:9999", + "registeredHeight": 1030376, + "lastPaidHeight": 1954470, + "consecutivePayments": 0, + "PoSePenalty": 4158, + "PoSeRevivedHeight": 1692382, + "PoSeBanHeight": 1954698, + "revocationReason": 0, + "ownerAddress": "XyYp7cfDwz2imsre736yB2ThQ6mY7qjeiA", + "votingAddress": "XyYp7cfDwz2imsre736yB2ThQ6mY7qjeiA", + "payoutAddress": "XeKc5r2DSCYbcN24CqQYtzmgm6PjDM8snv", + "pubKeyOperator": "96b450ada07d7b4a100b26c7bd641d34ab3bf8508a9328982dbf6cccebde8b0b790cf7a59f3039b52448b448a291cec0" + } + }, + { + "type": "Regular", + "proTxHash": "3e416aca42041bd871e4853b5f994f9b12bce139cc8ad4c869e17d0a9a924413", + "collateralHash": "0eb111ac0ec2bae7255c5b9d82c5278a158f9c8a0f29cdef12bd76080ff4aed3", + "collateralIndex": 0, + "collateralAddress": "XtZc1WnDMcEPzVKnmuiHEM2ZUbMUpZeZQJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.214.108.255:9999", + "registeredHeight": 1030395, + "lastPaidHeight": 1952262, + "consecutivePayments": 0, + "PoSePenalty": 4163, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1954122, + "revocationReason": 0, + "ownerAddress": "XkrTcuN9RiJpkTC6JzuJXb3N4m8V1SSc8b", + "votingAddress": "XkrTcuN9RiJpkTC6JzuJXb3N4m8V1SSc8b", + "payoutAddress": "XeKc5r2DSCYbcN24CqQYtzmgm6PjDM8snv", + "pubKeyOperator": "084b68d0319dbd22123507936a5c19899ee2efc190bd50b21c012f83d2fa31bc35fce12da8c904191764ed253caceacf" + } + }, + { + "type": "Regular", + "proTxHash": "2f7dbe9d810215f45f4c69f1397e039e91b61f0f5141cf4fbb8cbf8be39a047a", + "collateralHash": "e5dc834d18c65d36dcaf69a6280e167dc6f4a524a08ea7c05fd92a29a921bf59", + "collateralIndex": 1, + "collateralAddress": "XeQPfsHGLJiE6VEMqLEGi6QF2Jz3D2XfLA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "35.170.34.170:9999", + "registeredHeight": 1030395, + "lastPaidHeight": 1950714, + "consecutivePayments": 0, + "PoSePenalty": 4158, + "PoSeRevivedHeight": 1713015, + "PoSeBanHeight": 1954410, + "revocationReason": 0, + "ownerAddress": "Xykj48ZWJyHhDGdteKAgUJ9yyKZUpa2fEu", + "votingAddress": "Xykj48ZWJyHhDGdteKAgUJ9yyKZUpa2fEu", + "payoutAddress": "XeKc5r2DSCYbcN24CqQYtzmgm6PjDM8snv", + "pubKeyOperator": "80dbc6f31d5a321f923573674bd814939a3b626f6caa5f6cecf673e134d34085df0b40500ff71c2ba5c8d7744ebd2085" + } + }, + { + "type": "Regular", + "proTxHash": "3ff3fad66bbf63ebafebf4009fec6449f13750c1d116f9c4f000cd1fd3f2fc0c", + "collateralHash": "757a16df525233e705292dbff038ef0a16f08b391680c3c911d6d231ed6f3acf", + "collateralIndex": 0, + "collateralAddress": "XcU4p2tmQsn3As7tnEUy15ziqy3Ry7w4DV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.20.102.73:9999", + "registeredHeight": 1030395, + "lastPaidHeight": 1953255, + "consecutivePayments": 0, + "PoSePenalty": 4158, + "PoSeRevivedHeight": 1711592, + "PoSeBanHeight": 1954410, + "revocationReason": 0, + "ownerAddress": "Xe7XsVw7UR6hq65c4xLCTqmAGYPnkWqMFu", + "votingAddress": "Xe7XsVw7UR6hq65c4xLCTqmAGYPnkWqMFu", + "payoutAddress": "XeKc5r2DSCYbcN24CqQYtzmgm6PjDM8snv", + "pubKeyOperator": "0f8bb5a7c138b70f69c96fec54ebe8101314434a1c3ede53f61739564bd5cf4accc2ac64f66f33cd1cc77470dc99f16c" + } + }, + { + "type": "Regular", + "proTxHash": "ab448e32e55087803d72399c5d12fb754e7b76e02a961dd0432bc5e7e49a5d54", + "collateralHash": "78cd39995e83fb9ec12236eb433b956fca873a3cebd7b948c7b0cd18e39e75b1", + "collateralIndex": 1, + "collateralAddress": "XmAwQVCZp5E5Jxaci69ANNAQgUs23YxxnG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.45.106.57:9999", + "registeredHeight": 1030493, + "lastPaidHeight": 1983518, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1910686, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "Xmoexi4dKiEZ7ZNPgHKXZxZqRx8CAipaTg", + "votingAddress": "Xmoexi4dKiEZ7ZNPgHKXZxZqRx8CAipaTg", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "82b5a00e64efd19e471421de24ad6e06fbfd3ca7eacf6997f45f9bb5387d8a5130be272e259a82db658fec9bbf353031" + } + }, + { + "type": "Regular", + "proTxHash": "72716d7eb429acf070752b18eb95e7f53e8a6f4a719e5a3e94ab3fa5cd38c769", + "collateralHash": "13275efaca5bc9ca89337e250e6d50f104abb2990dfa900e584cb933cd92e51a", + "collateralIndex": 0, + "collateralAddress": "XmCKSDuZKP2MpiAcaAkQgU7JQYsgKS6wTg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.38:9999", + "registeredHeight": 1030537, + "lastPaidHeight": 2125838, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820869, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd7PUxqibDkKjVDYwPQB4HmFq2MDurfXBY", + "votingAddress": "XgoFvwebSPrFZa87JdvXepfASgBvhV4N5s", + "payoutAddress": "Xtdiq9SLUKbvDjXVyjVjHCyjN94PktPivq", + "pubKeyOperator": "99aa464e4fddfd1174e3048acc5be97251539b4289d6f42582ca85866fd5c71a9292577eb4ee534459dbd147115a4a8d" + } + }, + { + "type": "Regular", + "proTxHash": "500121ee951635638810760653c03392d90d9d832c398f9316a0dd636f4963aa", + "collateralHash": "557e5f7e3a60b00aeb793405fb798541f040486ca0acb522897efc3f54551eb3", + "collateralIndex": 0, + "collateralAddress": "Xw6PBdEQT7f7YfdFSXoqCWAEyPmmgtgLYv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.111:9999", + "registeredHeight": 1030541, + "lastPaidHeight": 2126826, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986027, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhPr9vPvr1Cvny7RFwMhTtu115kckYWgFL", + "votingAddress": "XrfTqqiERw8GE2kqvVyVWvU755HWwgcxGH", + "payoutAddress": "XjKGdQTTj9zyTGp5afBkXsHAEvrnfkYAss", + "pubKeyOperator": "8b5c641ffb86a31d3fb524c60005ded2467b2438ec9aac38752a0c53419cd0951b2ea864d7edaeba7b5b40c54f732e77" + } + }, + { + "type": "Regular", + "proTxHash": "fc477c9de9d9c2ef524f8b23e5fc202cecc7e64e77b76eb254997163f066cd03", + "collateralHash": "0f2094988efb52109b9127ed08be830a632e8facf4aab2bc51b19daf1bca8562", + "collateralIndex": 1, + "collateralAddress": "XaigSkGR1U2SxELaa9QQpms89Cyh4wa8Wk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.115:9999", + "registeredHeight": 1030545, + "lastPaidHeight": 2126377, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrm3hT7YtPggww3Mgq7dWC19q7gfxJjLoA", + "votingAddress": "XixvaCMBUijPN26yDn865uewAPCgFQeL1R", + "payoutAddress": "XvPKJLKZ5sYNGpqwA6JbXv5FnGCHBUF5x5", + "pubKeyOperator": "128d88fb4112df42cfe027cfa0e63185e8d1521e1088ed8e0a93b98b38a2b489fc2563448f80a9a52e09afbff8a66588" + } + }, + { + "type": "Regular", + "proTxHash": "b9010349b072484557416f08a86b6ffddca688993e5186d58f09359dd8ec67be", + "collateralHash": "957a508a17e99715c76348cde0a3f1fbd40911f205d00904ffb89df4821eb2b1", + "collateralIndex": 1, + "collateralAddress": "XbF2w4FtN49aw6gBqkDzMXMrGaKqhb71xJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.21:9999", + "registeredHeight": 1030604, + "lastPaidHeight": 2126440, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvGb8QbLYFXDKU4vK3YGp973jQ3uvn5c6a", + "votingAddress": "XvGb8QbLYFXDKU4vK3YGp973jQ3uvn5c6a", + "payoutAddress": "XbF2w4FtN49aw6gBqkDzMXMrGaKqhb71xJ", + "pubKeyOperator": "0fde2b3a9b76a691066c0d7e17a65d58cef4dc2d2da18525febf4ade1f54e63fad7600e728bae166bb99a50f7bfcd9bc" + } + }, + { + "type": "Regular", + "proTxHash": "3eff034a96b2d2d48c36703b63142735f71dab962ff7701c7193d11f77a6bc5e", + "collateralHash": "855ebf0fda90792b6a980024bb9ae61fc391b44e3f16339b71723b75b96e0306", + "collateralIndex": 1, + "collateralAddress": "XhCDuGFF6xpoWMh1B6wECgHbBccizimRYg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.188.215:9999", + "registeredHeight": 1030621, + "lastPaidHeight": 2127993, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1256639, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk3MXqyX1ncz9eQbWZArDRpN2cZNChPd89", + "votingAddress": "XmSftU8ZDtmWviv4fsf69NCExvCJA9taxe", + "payoutAddress": "XvnrWZPKe8xaa2JgEExJKNqbfktsVtBAru", + "pubKeyOperator": "036883d465c035b86818993a36eebf8b2e7c38207f62387c9eb4a86911dda983a25c21659384f99dea4495dbb56bf021" + } + }, + { + "type": "Regular", + "proTxHash": "da3d567dae4959716e6f3d36dc00b1a6c31b510bf689c510f6837960b12bfad5", + "collateralHash": "db55c07aa023d13cb3de2d9f53f40adaeec46b9bd69dd659ddd9e10b4251fa00", + "collateralIndex": 1, + "collateralAddress": "Xm4DbmSMKZitBigdGp2VHu21bnx4W5eK5o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.238.241:9999", + "registeredHeight": 1030650, + "lastPaidHeight": 2128790, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2116329, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrYpUb4BqocvwPmuaig3LyBdydBAHzSUG5", + "votingAddress": "XrYpUb4BqocvwPmuaig3LyBdydBAHzSUG5", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "15587add8368454379447eb74e2bad91dbecee73430b6dce96eb6487cd37285a8959aa58a6fdf37c17592b4892d84687" + } + }, + { + "type": "Regular", + "proTxHash": "c75b5aaf2a9c127b3f4199d4700abc1eab9fb8ebdf31b4d296951ce395bd52e0", + "collateralHash": "4b82bd56480fa3c3dc594a2fc823ee10d88fe9cb0fd763cfd86cabc56f8da9f8", + "collateralIndex": 1, + "collateralAddress": "XhMth2ibVw6QfdGbXJHJFSPTbhofmX4LjJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.160.119:9999", + "registeredHeight": 1030650, + "lastPaidHeight": 2119388, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128663, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvyMDUobbshGnvybHFsjAvCGVYd3sgdgg3", + "votingAddress": "XvyMDUobbshGnvybHFsjAvCGVYd3sgdgg3", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "0416ef5bc840ee36ee786fa6194edb5ae0c34dd97d024b89e48a55c3438af59d47f560147ee206e71cfbb5db16e1e4e6" + } + }, + { + "type": "Regular", + "proTxHash": "5967a41a80ea778afbbb4363c96250d34b86fd8d01956080583b98911834fe46", + "collateralHash": "29c051159613c99987f879e1a4e1754e66209fb74528c81163e7e7c2b6e23e71", + "collateralIndex": 1, + "collateralAddress": "Xub5dwehDaUCRChzgm8j7Tqro39UwPK9LM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.217.126:9999", + "registeredHeight": 1030653, + "lastPaidHeight": 2128247, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115795, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvkgCGNi5BNh3vYz5Ze7VsHBWdnmB8rm8j", + "votingAddress": "XvkgCGNi5BNh3vYz5Ze7VsHBWdnmB8rm8j", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "13bedacf1de90ea514674decc7c03b582296da44e271673a5a18b06f4d29409188865100ead59b25691a0ce6fa01db4d" + } + }, + { + "type": "Regular", + "proTxHash": "a3a9194e41153fc1d3ce508b8997cfb0636c02c38d20e57933df620bc75c04a9", + "collateralHash": "5f9973a2d000aed15195cfa04e631c3b0abb62a74270f42e08f5c1875d667345", + "collateralIndex": 1, + "collateralAddress": "XtZfDq4K87hobNet8xPhuFJwRkbmh3xUFk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.180.71:9999", + "registeredHeight": 1030657, + "lastPaidHeight": 2127211, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124046, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XinU88CPwwpoVMFWLTGZgt1UyjfVGUdKn6", + "votingAddress": "XinU88CPwwpoVMFWLTGZgt1UyjfVGUdKn6", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "0d5a5bff1379e632a30a1498f0a3ab1e7a349f7ad8abb89199648bcd6edb3318f592b8cd8b4d1ef2f154aa388bd1a347" + } + }, + { + "type": "Regular", + "proTxHash": "444d54ade2f06d72dffcad1108d2e130ef1dd31398baeccd25c9454704e3753a", + "collateralHash": "f0346717d38594048178163de2bf0b26d0d81a4c546fdd59b36ec755f60adcf3", + "collateralIndex": 1, + "collateralAddress": "XcWtEJNBNLB77ggjkk3UeNfoyaGe3mK9yz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.199.119.50:9999", + "registeredHeight": 1030661, + "lastPaidHeight": 2126052, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122898, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfEmFUKMj5QEduXhuUvu9M5T9N7iMQeSXQ", + "votingAddress": "XfEmFUKMj5QEduXhuUvu9M5T9N7iMQeSXQ", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "19ad7e616e60e6c5d21ebcb4aa5e26b265b74fc529d8cbfb58e8e0c2043df3102461c2eab5864a3317c8a7e19778cd35" + } + }, + { + "type": "Regular", + "proTxHash": "543773032a5c7d9af702c18b2fe2f1b9c7b6f020d1c14613ce1cffbcb5d2c122", + "collateralHash": "38dc50f7c1fa201c23cf2bf651acb87db98dc956a6d7b40f1579935a60598734", + "collateralIndex": 1, + "collateralAddress": "XdMckdMiHbLYAk2Xeb6dK7DJe76GrPG7EX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.236.58.131:9999", + "registeredHeight": 1030665, + "lastPaidHeight": 2128680, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2116208, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbk376kRq9AVX1k7eBxwXeZfrmVWhbTQ5z", + "votingAddress": "Xbk376kRq9AVX1k7eBxwXeZfrmVWhbTQ5z", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "85c417521186888df0177c8208d2aa1f61d191eaa178e2e63f959c7ffb4af1a46ce31c5770d539dbb8f159c2c4eb1ea6" + } + }, + { + "type": "Regular", + "proTxHash": "cede760dcf94a8c9b2cbfd4c4ef05df6fd86548fe9d2a13c39beffc0d4cd5f07", + "collateralHash": "b625779cb6b185954d1ce29f4272993e63e7fdfa157c8e44c14de2f889a3cd49", + "collateralIndex": 1, + "collateralAddress": "XiMU9NsNj6bEt2WrR4GkGLDdrjZsndeQ9w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.66:9999", + "registeredHeight": 1030689, + "lastPaidHeight": 2127136, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1315975, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu4e2rF23EMxJDjiL1K8rinMCDHUJh4iyL", + "votingAddress": "Xu4e2rF23EMxJDjiL1K8rinMCDHUJh4iyL", + "payoutAddress": "XiMU9NsNj6bEt2WrR4GkGLDdrjZsndeQ9w", + "pubKeyOperator": "98656ff1ffb118fe64114628aae464cbee7904150aaab906e1538bad8213c88a3f7388a060e0204f19a0bea32b4bd243" + } + }, + { + "type": "Regular", + "proTxHash": "d91710639b2520ea03f82e0d44bc2e4244622eaf81b7f31ef0e9074c5d4df59f", + "collateralHash": "4a42980ab7691e96f4d48ea4f8a254e42afdcc77c5214c9d901e60c0eb051b2f", + "collateralIndex": 0, + "collateralAddress": "XimUc8R1haBBPULmKPq32oKNnfxjA7Xt8b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.33:9999", + "registeredHeight": 1030711, + "lastPaidHeight": 1885422, + "consecutivePayments": 0, + "PoSePenalty": 4396, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1886442, + "revocationReason": 0, + "ownerAddress": "XtzC6S8nEKfZDaWnstbYuQVBSvDpN36xFe", + "votingAddress": "XtzC6S8nEKfZDaWnstbYuQVBSvDpN36xFe", + "payoutAddress": "XbDG2zQ2B7f2MbLENbHg75Kc1b3RJUfou1", + "pubKeyOperator": "0679aae1aee676a210905956c0a230dd1abd38e078bcc7a0b92761bfea4c8da3a046fa906c2dd820493b60aae21929b2" + } + }, + { + "type": "Regular", + "proTxHash": "fb17d9cf525ccd4d24a7c2afebec5486c3b5220b8269d0f3089fdbda2ac6b9db", + "collateralHash": "54081a3dce37f5e1c362b32721d47a58eb130f147d7592a1cdf15f1bdff2e51e", + "collateralIndex": 0, + "collateralAddress": "XeYp4aysCyxz9JybhekpxHLBk4yaUThYBa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "62.171.167.46:9999", + "registeredHeight": 1030765, + "lastPaidHeight": 2114792, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 2029951, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XdWAjfbDuHHWZaJwhbiFs3C1TPHYkF2ccK", + "votingAddress": "XdWAjfbDuHHWZaJwhbiFs3C1TPHYkF2ccK", + "payoutAddress": "XeYp4aysCyxz9JybhekpxHLBk4yaUThYBa", + "pubKeyOperator": "9550b8f6a4f16715237071f1217b573c362a7d204e95a5e261011a364f1b5ac4749317a6063677a0949a5ea2459d335e" + } + }, + { + "type": "Regular", + "proTxHash": "7e7934bc27e03700cc2f34269b42997b82f18d5786b085b8a84fd7fd4ec0b3c9", + "collateralHash": "deeaf7e55cc5b7bb7c692437eeb5d961596f2cfc5a4a0a177e8ac529ed9c6cf9", + "collateralIndex": 1, + "collateralAddress": "Xof4sQJtAoZuBkDk7etPpkUSgrN4Wi2ckT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.141.226.190:9999", + "registeredHeight": 1030888, + "lastPaidHeight": 1690612, + "consecutivePayments": 0, + "PoSePenalty": 4517, + "PoSeRevivedHeight": 1411840, + "PoSeBanHeight": 1694724, + "revocationReason": 0, + "ownerAddress": "XeTn81U3UNs9oaDERZa6emYs3JsEsvgWp8", + "votingAddress": "XeTn81U3UNs9oaDERZa6emYs3JsEsvgWp8", + "payoutAddress": "XdG39C6HbNPJSz5DHRecAMKGUBzBC1VH2L", + "pubKeyOperator": "81f759a8ec7fdc6a7e93a6f7bbcef5c541e41060477a353302d7ac5328ad88a32d79d98c9e3529b93ead302065065a69" + } + }, + { + "type": "Regular", + "proTxHash": "f51907462af18f56fd0b084a14101c7b9e4585df815e3c75eb734c537a9804eb", + "collateralHash": "846ea6c67c9ea5fa44a6261ff4c642bee14d59717770e60815110d83aca3460c", + "collateralIndex": 1, + "collateralAddress": "XnDdtjstHpmw5i5sQnmb4chPMAmXvkCohr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.70.98:9999", + "registeredHeight": 1030989, + "lastPaidHeight": 2127256, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdy2v9cz8fmTX4BwGzsSjJwRZNmfqkBExV", + "votingAddress": "Xdy2v9cz8fmTX4BwGzsSjJwRZNmfqkBExV", + "payoutAddress": "XnDdtjstHpmw5i5sQnmb4chPMAmXvkCohr", + "pubKeyOperator": "07444cb7fab8d36d024c225a0ff7f3aace5b7ea2375d5dfc86ac4b86b38c41ee2f50d42274b9a20f68994687d88faeb0" + } + }, + { + "type": "Regular", + "proTxHash": "b5e9d95c3a1876b3c41c56182ef3e75f68a9387b367610a55e3ca72c5d9b0385", + "collateralHash": "ab196fafbf2ac0c178acf16a30e0924e29f611fafb685af1cb724121aa297b50", + "collateralIndex": 0, + "collateralAddress": "XcjMkACZyPL7JnXhreVojRKk7UgVnhwkdE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.165:9999", + "registeredHeight": 1030993, + "lastPaidHeight": 2126803, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986011, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjtxRTkQZFqxP3EDHkxLDN2MSh2UGZ88J7", + "votingAddress": "XjtxRTkQZFqxP3EDHkxLDN2MSh2UGZ88J7", + "payoutAddress": "XcjMkACZyPL7JnXhreVojRKk7UgVnhwkdE", + "pubKeyOperator": "0881f6f465294de57d35f1e406eddebb51d28b485ce3caee750c775f8cf76009ac8fc0e54030ddd23514a3f3daaa31b6" + } + }, + { + "type": "Regular", + "proTxHash": "91b60e2b5a3a9375e9c57e5ab0ae3a66531557ff0536b756c41acbe25fd1e785", + "collateralHash": "416df41a3533c8276902ecf48d1257459b50aba53c02db5f81de0d9443eca5db", + "collateralIndex": 0, + "collateralAddress": "XexsdRSaCJCHEwjRq2YXURhRGcHmvsdcbn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.97:9999", + "registeredHeight": 1031044, + "lastPaidHeight": 2127295, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMSn2EY1ekuUeJG6P7pN9CtHXJ3oqYaMq", + "votingAddress": "XdMSn2EY1ekuUeJG6P7pN9CtHXJ3oqYaMq", + "payoutAddress": "XexsdRSaCJCHEwjRq2YXURhRGcHmvsdcbn", + "pubKeyOperator": "049dcbe44b8a7193f15011e17eddaa851b102e33cad6713bd10003fa32f218cc0678502de217b57bf8ae70dcfa030a98" + } + }, + { + "type": "Regular", + "proTxHash": "f5e17d96642e82c983cab562e8f81bd50c1aab64ab941562033a5314c150e8de", + "collateralHash": "da5cc1fbc52ee0db7a0a99f62a44254d640136561fa9cbb23c07ef930ed01a5c", + "collateralIndex": 1, + "collateralAddress": "Xe3tZrThRh8LAcD6GzzF44BztSysXvWFBh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.132.147.251:9999", + "registeredHeight": 1031092, + "lastPaidHeight": 1986926, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1910686, + "PoSeBanHeight": 1986954, + "revocationReason": 0, + "ownerAddress": "XrsBA6qBQMRLnfcX5cJ7afZFnkYhpgYEKd", + "votingAddress": "XrsBA6qBQMRLnfcX5cJ7afZFnkYhpgYEKd", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "8a87cfc52774f1968252f5438342a999f5277b0c8e76ca119b71c1055e9c0af36feed23a419c530613aa573ceed441bb" + } + }, + { + "type": "Regular", + "proTxHash": "f1aca79e1c7650b5a9d52fa60330e53d0c51bd88370a884c0e7bc120790098fa", + "collateralHash": "751fc2b4595dc469acaf5677eb8bb1d0f6cb7b235534ce635f4a6a3a0b4945bf", + "collateralIndex": 1, + "collateralAddress": "Xv7vAzP17BNrxo5LJFQMpoo4ZBkuWT6vPx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.51.198:9999", + "registeredHeight": 1031092, + "lastPaidHeight": 1983537, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1910688, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "Xm9GdnHQ6wgQ3RvJvrcxuV2HsMqMjN5FLB", + "votingAddress": "Xm9GdnHQ6wgQ3RvJvrcxuV2HsMqMjN5FLB", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "801105f27dcd746e77fc7c60c20f9cbe715b910899ea8189f0005cd634b7cfe3d9428e2cc67ecbcbe640b5ef61978ba8" + } + }, + { + "type": "Regular", + "proTxHash": "99d73ed1edd5bc08c332f09409c1550fe838a0d704e683d010139194b480da8f", + "collateralHash": "ea1854ec0bdf241e61e559c13fca1657f38eaa2cb71c6169097b45ae2ee8215b", + "collateralIndex": 1, + "collateralAddress": "XmK5SzYLE1zhsZUenatRemyHRfSB2K8rae", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.36.244:9999", + "registeredHeight": 1031097, + "lastPaidHeight": 1983534, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1910687, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "Xj6iYx9uyPbhWh2sN4o5Ana3GqejyAWRxj", + "votingAddress": "Xj6iYx9uyPbhWh2sN4o5Ana3GqejyAWRxj", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "093c2b6d096933f7ff7f4d7e2831a3325d262ac73929e4e39b40e045d5136c93455d0af0fd51b0acc212895299820b24" + } + }, + { + "type": "Regular", + "proTxHash": "3c67272ba7145d51257f5fd80f63d298df844a3cdddb06d0c0b35f21659c39a8", + "collateralHash": "cb1ee78bf94eca1b23b1f3372a21285f9abf85fd8051d323d35d7689dd6efb37", + "collateralIndex": 1, + "collateralAddress": "XbbqAZyZKTQrBdFHSktesbH35Gu5XAU5cy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.198.107.193:9999", + "registeredHeight": 1031097, + "lastPaidHeight": 1983536, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1910688, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "Xg6K9CYuiFpbjG8K4iA8gLYW3DMAfoSbai", + "votingAddress": "Xg6K9CYuiFpbjG8K4iA8gLYW3DMAfoSbai", + "payoutAddress": "XpBrKYWSgB2M7f9bwmXzjVDbvLCrmxmBch", + "pubKeyOperator": "0b635cebe199de35ef85395095161339be276a67322c31ce3928b0ee44be35c84d9ab20fb31d833720905b11bd7101f3" + } + }, + { + "type": "Regular", + "proTxHash": "78be51cae43abf788ea0175a402c20292b308bc4872ba1fd6cb5ce0c1d1eb205", + "collateralHash": "1239f1b6c61efa8e4ef6fbf3f696d2846f2e6235c21d951e66a3acbf39a79a21", + "collateralIndex": 1, + "collateralAddress": "XeawPFGib2FXcsGtYj6QXq3BErdcMoHPDa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.103:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127471, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuZ5anwmcuk8qi4wdga5k24xdGFjzL4YY4", + "votingAddress": "XuZ5anwmcuk8qi4wdga5k24xdGFjzL4YY4", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "1089d208fa0d3ab7ae7a980e07915717ae69c7d59404beefff37ad2b4c90bac6c9df112b3d04272629b1e3480e9334b6" + } + }, + { + "type": "Regular", + "proTxHash": "15752ec004f86d2256177a67f49429d9cb8c8add60f99eabe49dd1e7bf4bee32", + "collateralHash": "60470689bd75b3fbd9579d2acbb8ce4a805ca4ef7750a5c94c87f426aaf90f55", + "collateralIndex": 0, + "collateralAddress": "Xy8TUc8JJVbnVYDok1V8uFBnp2gm4Z2XiY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.72:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127487, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqgiQBeSyHdL6gD7rQunCtUT5r9ggByoTe", + "votingAddress": "XqgiQBeSyHdL6gD7rQunCtUT5r9ggByoTe", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "0e31f54a719835d7ffe767908b6da7be762fec82d92f6abb61d477e81b9d1f62e7beae24aa889e091993ecba0062cb7e" + } + }, + { + "type": "Regular", + "proTxHash": "ca4f1b75614cfa27924610511ebae428f267b2a25cfb497a464baee8f6a16c85", + "collateralHash": "13476042b50251487707eeb83702e0ed51371645c638d53441d4601bfbe0bf2c", + "collateralIndex": 1, + "collateralAddress": "XjnX4bkf6vPdKWXNUD2NSx9Uf7qZykSuvo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.228:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127501, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvBGzrZWjQeBhC1uPbMr1GH91DNEnQA7zn", + "votingAddress": "XvBGzrZWjQeBhC1uPbMr1GH91DNEnQA7zn", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "04e4796ed2ce6c2a19f013e4cfcd6551278410da94970b001112913a4a270a3e83ff17a78ec4519fa180f0b74f3dd656" + } + }, + { + "type": "Regular", + "proTxHash": "a4d127e4690bc72c7eb240592e4bb61320a602ba2d7053265c00b5b9554a4e5f", + "collateralHash": "cfe10e28f0693829c0af135e691b86417a3191a89e656a90713c05a77672627c", + "collateralIndex": 1, + "collateralAddress": "XsCoCmvDevGyReRrdFYonzEJUKyxcrjQNL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.97:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127494, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbMQ3NjFQnr4SSytyyxHPhsFN5uuCpVeri", + "votingAddress": "XbMQ3NjFQnr4SSytyyxHPhsFN5uuCpVeri", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "0697b4c9d141bd48173f029cdec979c03f96e38916918cb147f0d219fba6d9c2d347940076fa359b19044d9b93c50298" + } + }, + { + "type": "Regular", + "proTxHash": "0783bde786ef7c212fc9efb7faaef595dc7c67f2404ba3cc9b7b2b5f8a666102", + "collateralHash": "0fd9a82196199d009225658dea069098d9f2edc99362f1c688eea417062ad12a", + "collateralIndex": 1, + "collateralAddress": "XkkEFeucnW6D4Q327ArAPAMCiUBuGFPCKz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.40:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127446, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmcbux9izdtYWrYTC4zvvMWf75H3h8hBJm", + "votingAddress": "Xmcbux9izdtYWrYTC4zvvMWf75H3h8hBJm", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "81d1b510f69385082b942bb502109de9d3cd6cacc6f5b1802f1e7f3254234fa0ce2cd98f23a47e82eca11b05a2dc662b" + } + }, + { + "type": "Regular", + "proTxHash": "866e728a75a035e4c68d21f809ba3957461124cce96dac85b9144410b31a612a", + "collateralHash": "fd660a4d4afa46d38d48c430dc5e22861a22f1f96cf1cb6c60b01b5e62e23fff", + "collateralIndex": 0, + "collateralAddress": "Xiwis5KE1YU2XqdKRFkEihFBv7iwT2Qn8Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.232:9999", + "registeredHeight": 1031118, + "lastPaidHeight": 2127484, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnC561TKgwdtGFq5jXchVSNr3WY3EyCkhn", + "votingAddress": "XnC561TKgwdtGFq5jXchVSNr3WY3EyCkhn", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "10ea71b10574820a89a5b4b2eec685a82be18aa0ebeeaa49e2077cac013ee3e3bb955f2c7323b880c568368a579d98f0" + } + }, + { + "type": "Regular", + "proTxHash": "10a8d2cb9261228f9845d5f7029219e257f1a1bd8f82027be671a2029ad41cbe", + "collateralHash": "fa913c9ac4953e979ea97aec0d51b6bb99d7a6d1c6504ecc2a269d4f5b4283a5", + "collateralIndex": 1, + "collateralAddress": "XrwmdZPtGaw63wqHepu5gwHcKSx7iX4vne", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.238.85.93:9999", + "registeredHeight": 1031154, + "lastPaidHeight": 2128188, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1980335, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy3LuBXSrMTonH5YhawaAK7aidGNockSta", + "votingAddress": "Xy3LuBXSrMTonH5YhawaAK7aidGNockSta", + "payoutAddress": "Xeg8pgJqfZHsx9GQRoSFpnjwsdzzAtj5z2", + "pubKeyOperator": "985a629d10599e6c0a383d3c81be3e78d863b84d6ccf362a94f1dcc1574317ce93d33347fb70ee5c550083a1e757f7b3" + } + }, + { + "type": "Regular", + "proTxHash": "ad34caf5c5136842ecc36d57b687d048a2642f4b9b0471c4d4aef7397f7f52cb", + "collateralHash": "09f951391c956284a463395570ffccdbbd568f1cdad3e1dbd8cc8b127c2ecef7", + "collateralIndex": 1, + "collateralAddress": "XrqctqUwxq2kRQQE2CJmKvHjVYsGtcynhJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.153:9999", + "registeredHeight": 1031248, + "lastPaidHeight": 2126894, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1909783, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaokqsHGKCr9VkiYmdU1gCxYS6WDHmxMhu", + "votingAddress": "XaokqsHGKCr9VkiYmdU1gCxYS6WDHmxMhu", + "payoutAddress": "Xss57fHNUN8XRvMNn3cdc9suzDp4zD6JQR", + "pubKeyOperator": "97507b1eb0fe5044aae8f3c038301009add693a5245999ed2c0a459a62dc98c4e7fa4303aec475a83b60c2cf3a62d573" + } + }, + { + "type": "Regular", + "proTxHash": "758808b7bf471639fdddde85763805a49b1268ab2c1b417ca54da22a40722eb3", + "collateralHash": "95151cf758274006d4892195cc592be079ffce42950dfa2b5c61ea697a738575", + "collateralIndex": 1, + "collateralAddress": "XvU2peS2sevjkGJPuyucCZtLfE3tGMdg1T", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.155:9999", + "registeredHeight": 1031267, + "lastPaidHeight": 2127807, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtPRp5CpRkrnpWMRAn7i8ydtLwBriGDK7j", + "votingAddress": "XtPRp5CpRkrnpWMRAn7i8ydtLwBriGDK7j", + "payoutAddress": "XeFbfiwwE2EHtAAhcodio48VRRCqJt3oS7", + "pubKeyOperator": "0c806f4177024555fe4e9c63c3eb74f9bdd42c4e4359ee3209b6c72d91f6e14e4121c5c004ffe2595132cbff65dc66ac" + } + }, + { + "type": "Regular", + "proTxHash": "cb698b6ff3190bd57c3ce4f382d5f490a9d5c882b52e59f82247c35ef974a439", + "collateralHash": "f94eea981f82eb4d18796b3c528596a1e8d5c143916bf23b83bf0fd92ad77457", + "collateralIndex": 0, + "collateralAddress": "XwtfJ2ZdrfpgxeT4o5KDCD3feJfjBe6btw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.27:9999", + "registeredHeight": 1031273, + "lastPaidHeight": 2127818, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdZF4hvFZvEg5oTXd9Scy7YUjQ1yzM3rPi", + "votingAddress": "XdZF4hvFZvEg5oTXd9Scy7YUjQ1yzM3rPi", + "payoutAddress": "XkAWg8LtP3ZYXTj7FTcohodCXzRsMbxHWB", + "pubKeyOperator": "19fa0b04474cee29e8e845a8a83db65afac0b7d0de97a2efe0dc910b5f9c0fdd6ed483eda1a4b72ce6c92c9a89d8d849" + } + }, + { + "type": "Regular", + "proTxHash": "03a9e80f3293d96ffda9ca44ab80efd8dd342672d2a8d646194cca62cc95db68", + "collateralHash": "37b2e0287a06fd369aae8d4b9a2e338d72c57c05386c4c4e492e46dbac8a1700", + "collateralIndex": 1, + "collateralAddress": "XrWcksd1bqqiRNpBmrH5Rh4c8ooBtwmYyg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.94.156:9999", + "registeredHeight": 1031430, + "lastPaidHeight": 1873061, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1769959, + "PoSeBanHeight": 1874346, + "revocationReason": 0, + "ownerAddress": "XxujhJB7qKqjHWkXKWJdCX5hu9DScN4JBZ", + "votingAddress": "XxujhJB7qKqjHWkXKWJdCX5hu9DScN4JBZ", + "payoutAddress": "Xv9cDvunac7hKVDkujtCk94qLSHCRwS56D", + "pubKeyOperator": "07ccd40d342520f61e88fa75fbf2dcdfc522117c79ff174e903e81ef68bc712b137ee8613415bb7ee4ebfc55b2b3552d" + } + }, + { + "type": "Regular", + "proTxHash": "08df46272431f1eb19e325a2ce9acd8f1b3ffcf30aa134812cd5d8473c4df3ca", + "collateralHash": "a17afabc51f163f12d5589fe3b2b2a8d6184700ad644c8c73c81f0e758971c4d", + "collateralIndex": 1, + "collateralAddress": "Xi88ZGxhbFZX36jozT3x6R6nEmPzrQJiwc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.217:9999", + "registeredHeight": 1031624, + "lastPaidHeight": 1793384, + "consecutivePayments": 0, + "PoSePenalty": 4441, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1797162, + "revocationReason": 0, + "ownerAddress": "XdDmhJnXy9pQoJqa6tQVvcPqfJP5EM84z5", + "votingAddress": "XdDmhJnXy9pQoJqa6tQVvcPqfJP5EM84z5", + "payoutAddress": "Xi88ZGxhbFZX36jozT3x6R6nEmPzrQJiwc", + "pubKeyOperator": "0030e6a5a104c5c4521e150d761c1d99a1034eb9587fee3d4796e7fbf015a95cac8c8c6fcccb9c500d1f65271423e3df" + } + }, + { + "type": "Regular", + "proTxHash": "50bee87660a4a564338ba21a78c8990f5a431cb1e6d4f03f3c0b3998a787bf3c", + "collateralHash": "00f90b7e45229a0bccc64309c9f70e15aae58d065d9959e0fd72ecc7501376d0", + "collateralIndex": 1, + "collateralAddress": "XfDyA3FYV73fqwaHoierf4YBeBuWCTvSyu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.214:9999", + "registeredHeight": 1031626, + "lastPaidHeight": 1797225, + "consecutivePayments": 0, + "PoSePenalty": 4440, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1799147, + "revocationReason": 0, + "ownerAddress": "XjkdHBacVsYuzkcbZDbBVYbtyeFBaoCDtt", + "votingAddress": "XjkdHBacVsYuzkcbZDbBVYbtyeFBaoCDtt", + "payoutAddress": "XfDyA3FYV73fqwaHoierf4YBeBuWCTvSyu", + "pubKeyOperator": "0384ef8f71933b9656ad2b3af67d4d71afa66c970b82606276dc8dbe20c03d505bba627aa29965d84153bd2ff9370e18" + } + }, + { + "type": "Regular", + "proTxHash": "23ab40023dcf32cd9ade0c7a2724ffd099b3d17c0b73152be012f248e6c8c34e", + "collateralHash": "e32650ff3927d7340aaee37996d076b52cdc46e3ecd48fa2cfc59cc3c6680eac", + "collateralIndex": 2, + "collateralAddress": "XbRm4yvbc2U3agfiYgdJtLRe4jiQocNi3h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.242:9999", + "registeredHeight": 1031626, + "lastPaidHeight": 1797229, + "consecutivePayments": 0, + "PoSePenalty": 4438, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1797900, + "revocationReason": 0, + "ownerAddress": "XsQsYk9mq3fpFvSq4izWv3YfC716jyDmGU", + "votingAddress": "XsQsYk9mq3fpFvSq4izWv3YfC716jyDmGU", + "payoutAddress": "XbRm4yvbc2U3agfiYgdJtLRe4jiQocNi3h", + "pubKeyOperator": "9241d87621c137b8f81433c78cf60423a6d370279fc80650de04d87f0010512fbc29143697b749924fe0c71ce8294a79" + } + }, + { + "type": "Regular", + "proTxHash": "56421f23d721f9549b346d6bc7369ca5af5d990ba13e40c40ac9d54ebe8757e3", + "collateralHash": "e79b2c9c666f7d99e377d1c12f3411f6bfa5caf0a23a4bc486c21f3a2df51ff4", + "collateralIndex": 1, + "collateralAddress": "XdcLVDSVeLH4SSZee4irbkunpE6xrczbq1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.56.88:9999", + "registeredHeight": 1031626, + "lastPaidHeight": 1793392, + "consecutivePayments": 0, + "PoSePenalty": 4441, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1797142, + "revocationReason": 0, + "ownerAddress": "XeDPxKdjPV9f7CoqtXMJCZh7wzfJN8TWGs", + "votingAddress": "XeDPxKdjPV9f7CoqtXMJCZh7wzfJN8TWGs", + "payoutAddress": "XdcLVDSVeLH4SSZee4irbkunpE6xrczbq1", + "pubKeyOperator": "01b4867eee9ed04800e70c252db0939d527e292bf50f9fd19df74aad13e28407f4766e5eb7a24f5b99c2e2c34cec087e" + } + }, + { + "type": "Regular", + "proTxHash": "6420a1ac270f8a1ec8404442cff3794eb80388da4169232cf3cf90d99dc7f332", + "collateralHash": "975fe03d0cd43ca7cb0089fc8cf52e8ef23d624ebdd9aebd018d332474aeacd6", + "collateralIndex": 1, + "collateralAddress": "XrYAsDENGVEsJ5EiUz35NoGV7hShDGzzX8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.125.71.9:9999", + "registeredHeight": 1031645, + "lastPaidHeight": 2127035, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986227, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxeAPsW8c2huAQ38EBfouuRBAySkN6JaM7", + "votingAddress": "XxeAPsW8c2huAQ38EBfouuRBAySkN6JaM7", + "payoutAddress": "XrYAsDENGVEsJ5EiUz35NoGV7hShDGzzX8", + "pubKeyOperator": "84c7528a05c1ab8cc22f29c17adaea5c61f80cd649353e6c388bf0af438fbf7565a0cfcdbf1f87b187d08ffd5cc05e24" + } + }, + { + "type": "Regular", + "proTxHash": "81bdf6460a9f3775b5ac11615268608baf659e19066618642d538caee0ee2957", + "collateralHash": "96d3f0be7031d595b12f5faad24c0152d0d0f0db8a246e38ddacb49e9b3aa31a", + "collateralIndex": 0, + "collateralAddress": "XsDHAqVSyy5otDqNQTrGeZmZrrYJUane19", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.32:9999", + "registeredHeight": 1031706, + "lastPaidHeight": 2126987, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761181, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkhXeSwEGYYVHm2QWkh7dL787cktswMVJi", + "votingAddress": "XkhXeSwEGYYVHm2QWkh7dL787cktswMVJi", + "payoutAddress": "XowXJHQbXpQhCgSzypb5ssK4y8SgNBCZ9N", + "pubKeyOperator": "97be43a4bc7759b59b4c1f59e0b132d1222cf4e2370a48ad0a3a4d58672706baa5e5f49630203ae5aff521258532643c" + } + }, + { + "type": "Regular", + "proTxHash": "52170b0ad10e8c3760bb39b676c0cb835ee6ee9270971b6fcfdbc195cdd64358", + "collateralHash": "c7380cfe3f0e1f056d4996100848e67d3676986cc485364439a9275b2b65dca4", + "collateralIndex": 1, + "collateralAddress": "XvbPrymTAbrL6LAmkzyPfbaWeMMwy49m3p", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.234.78:9999", + "registeredHeight": 1031721, + "lastPaidHeight": 1195708, + "consecutivePayments": 0, + "PoSePenalty": 4765, + "PoSeRevivedHeight": 1098610, + "PoSeBanHeight": 1197813, + "revocationReason": 0, + "ownerAddress": "XxvWKNYKtZ8a3nBkb7Pv3wfbvZmrK6xp8y", + "votingAddress": "XxvWKNYKtZ8a3nBkb7Pv3wfbvZmrK6xp8y", + "payoutAddress": "XvbPrymTAbrL6LAmkzyPfbaWeMMwy49m3p", + "pubKeyOperator": "924b1b4aaab3f45ca10b31e5df6b85c38a64c239db3d9970a4a226a99fb10829fc2e30f98e12b74ba25983b579de43a5" + } + }, + { + "type": "Regular", + "proTxHash": "939b5de485a2012968b6f57de4e599b7bf7ff8eef638d63fc8718f9430d34793", + "collateralHash": "3903aa65e661932a7052b7eaf7efc3fe6c454a9ea3fe2d4f6cc46ef5a5678b2d", + "collateralIndex": 1, + "collateralAddress": "XwXh4f4kuhJ2pfVUt7kXhY6wsUmQp73gT4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "148.251.136.6:9999", + "registeredHeight": 1031723, + "lastPaidHeight": 1486631, + "consecutivePayments": 0, + "PoSePenalty": 4657, + "PoSeRevivedHeight": 1370361, + "PoSeBanHeight": 1488693, + "revocationReason": 0, + "ownerAddress": "Xqqhoo3ivPXTUAGw8stJJw1SjiAxcod8Mi", + "votingAddress": "Xqqhoo3ivPXTUAGw8stJJw1SjiAxcod8Mi", + "payoutAddress": "XwXh4f4kuhJ2pfVUt7kXhY6wsUmQp73gT4", + "pubKeyOperator": "9143c6bb031f65b46933a9a050352746857f5c8bb921f1e73cbd7afb816c61d898ef2f72a65a8118ebfa2ec9f42828ab" + } + }, + { + "type": "Regular", + "proTxHash": "e3c5e91dc2c8abc2256bdd9de8387959fa1d0f5aeae7b33305f358e238abbdf8", + "collateralHash": "ef04e5399d24e8e920438a052d6524f700718bb56dc34199f722bc0f0f3a686b", + "collateralIndex": 1, + "collateralAddress": "Xk6VdyKyu2UEjdArFWKJaGuwZfwUfQV9Sf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.88.15.97:9999", + "registeredHeight": 1031891, + "lastPaidHeight": 1320816, + "consecutivePayments": 0, + "PoSePenalty": 5100, + "PoSeRevivedHeight": 1287355, + "PoSeBanHeight": 1323227, + "revocationReason": 0, + "ownerAddress": "XhheyTETGeuEweoxGaeEVF27rcD7StWPZw", + "votingAddress": "XhheyTETGeuEweoxGaeEVF27rcD7StWPZw", + "payoutAddress": "Xhosp4Z1Fdjb3NBGGFkto4fvSYWcj7AA3c", + "pubKeyOperator": "821b3d3efbbdca25dd80aa992d765881edf9a3e3f151b8edd483c2cd87683bd8eabc35b9aec11df821fe5e9751c5be8e" + } + }, + { + "type": "Regular", + "proTxHash": "04cefd74dbf70bf138b361cb816abc21e1965f3633510426094358e63e61db3c", + "collateralHash": "fee570f8c2bed4590bd77d360ba0778b4c98f64397222622fcd5269e5d60dd29", + "collateralIndex": 1, + "collateralAddress": "XsdPuhdH5H3xQLFPP9S1SebjCQdt39w4q9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "34.234.120.36:9999", + "registeredHeight": 1031963, + "lastPaidHeight": 1983359, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1692171, + "PoSeBanHeight": 1985493, + "revocationReason": 0, + "ownerAddress": "XgBeGtVUwY1dRGzLnWoGoyzk2KtC8wFeku", + "votingAddress": "XgBeGtVUwY1dRGzLnWoGoyzk2KtC8wFeku", + "payoutAddress": "XsdPuhdH5H3xQLFPP9S1SebjCQdt39w4q9", + "pubKeyOperator": "079a442c2ff2eb6f1266eb758ca27ff588c5d66f21c7f1d16cf89bd5e0c9da50b680b47c1fe723adc44525bb3b3d9750" + } + }, + { + "type": "Regular", + "proTxHash": "2228747b00f351e5b34deec3aadba63628d32bd650712f21f7b38f9c2bb37589", + "collateralHash": "69b57120048cb2c50d91762c9bb0f29e0843ee977531650fceaff567b27362b1", + "collateralIndex": 1, + "collateralAddress": "XdqbSuDPQDy9NpB2qMLSWbPKvBTUrvsvqg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.225:9999", + "registeredHeight": 1032053, + "lastPaidHeight": 2127354, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121203, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvmAcScvtApsik17Qs3ik7aZkkAqayttYX", + "votingAddress": "XvmAcScvtApsik17Qs3ik7aZkkAqayttYX", + "payoutAddress": "XewxH5ExqKfnxAR9AUQ1EspNyYs3a4nZhX", + "pubKeyOperator": "9860dd6725d8888d317c3e0d905fd60fa4dd10b5edef93c942853713c4991614aff4d4cf776d2d33a93d57cb11d581db" + } + }, + { + "type": "Regular", + "proTxHash": "2a9320c6379233cbfcc861170fcc76e32a7b6154460772472159fd79b699abc9", + "collateralHash": "5fc1c3ce154078da125e8219359656aa97ab89d4c8133fafcfd5954c2c3c98ce", + "collateralIndex": 1, + "collateralAddress": "XrQJqagaTSUyKyK1CAUz8oPsqpsWP6PhyV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.7:9999", + "registeredHeight": 1032107, + "lastPaidHeight": 2125772, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoz5UKa1DgMZLzQK89MJNAGtFkBfDHxtPg", + "votingAddress": "Xoz5UKa1DgMZLzQK89MJNAGtFkBfDHxtPg", + "payoutAddress": "Xs2zQdoQ3tSBJ8K19eCSs4GkVb3qDUBaJf", + "pubKeyOperator": "877c8c09bdcd9d216f4a56dc3eff1cd1e9d8b912ca41147e1005022c8256e1dacba830312cefa5e25d74c5ba8ba1e8cd" + } + }, + { + "type": "Regular", + "proTxHash": "34b45d8461b5b0753f6f09877b9a23862c96c96ea0dca55a791d7f37d0520e1a", + "collateralHash": "fcd89b66f80b37e4fb921d02891b8ffbc915ebef5e8874eb320bdc16d3376c65", + "collateralIndex": 0, + "collateralAddress": "XuQ5N7omDDs217mNfSFb34FmmtdcmZYTdM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.230:9999", + "registeredHeight": 1032134, + "lastPaidHeight": 2126702, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1175677, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoo3JNXwCFVKAmpMRgq1pD6DAAzywsX4sN", + "votingAddress": "Xoo3JNXwCFVKAmpMRgq1pD6DAAzywsX4sN", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "0bd6a63f121ed0de1eecfb76f637056eb9cc438140f31c87a36cb510fce475f9b0d2fd9da6e2b99ba267a146ec67eb4e" + } + }, + { + "type": "Regular", + "proTxHash": "20e1a7d032b199c6cd7172784aa133a73b86fa13779a5407504a1c9d45cadada", + "collateralHash": "06421fe7a3a4934ef8d0a8dea7ae88f45f690c4ce2fc528254c6ef484bd31892", + "collateralIndex": 0, + "collateralAddress": "XrYKsjNDURUmrUrgcbWXtmo124AJorKmac", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.78:9999", + "registeredHeight": 1032137, + "lastPaidHeight": 2127085, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1166510, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeweznmerpaUZUapcNU1X2bJwijvz9FSGt", + "votingAddress": "XeweznmerpaUZUapcNU1X2bJwijvz9FSGt", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "96475713ea0ff74395eaf02db9f9f3a4c53c28d6013b1301af9b469b476352f576699ddbeac55d4383399f3b8f16cb61" + } + }, + { + "type": "Regular", + "proTxHash": "33dc3ac6d20255f4d1a19401cdde719b0a59572e6a702e0b2b4618c7c60e8f57", + "collateralHash": "517567036a971a738e8683324e4d0f6dc3ce3b845b862858bc9a79e050ad9463", + "collateralIndex": 0, + "collateralAddress": "XjwUFu87V9Gc2ipud2faDAKZ5adp6dxcaF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.80:9999", + "registeredHeight": 1032139, + "lastPaidHeight": 2127003, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1084091, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjGZjkMbzCKBBqpmeHMgT7BGDeexSc77cm", + "votingAddress": "XjGZjkMbzCKBBqpmeHMgT7BGDeexSc77cm", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "1719314556e198ba1e55e2b345c048cd6599019a494d3f5add734ba75f9788edacb5bccac2ac6d3443366d7f958fafbb" + } + }, + { + "type": "Regular", + "proTxHash": "e7e545e399aa2478b00bbf0363df709bdc4ee908718c8e1764c1bf1fc53cb501", + "collateralHash": "614b703c38b574d2dd097f43b6e890af57152d88f24a3a8773279ccad0355516", + "collateralIndex": 0, + "collateralAddress": "Xpg5x9kNGfpkTpa4cyoSmfBhe4Kk3dB8vE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.202.141.60:9999", + "registeredHeight": 1032217, + "lastPaidHeight": 1972174, + "consecutivePayments": 0, + "PoSePenalty": 4066, + "PoSeRevivedHeight": 1623835, + "PoSeBanHeight": 1974858, + "revocationReason": 0, + "ownerAddress": "Xnjk5YeEg5pcXJyqzE1L7o4e5u55nV3raa", + "votingAddress": "Xnjk5YeEg5pcXJyqzE1L7o4e5u55nV3raa", + "payoutAddress": "Xpg5x9kNGfpkTpa4cyoSmfBhe4Kk3dB8vE", + "pubKeyOperator": "04fcdb4c68b6822949058a6f9395dc7fb31709ed72c96a6122cb77baa011afa5e29f60561a7ac0b8185adc686ebe4e46" + } + }, + { + "type": "Regular", + "proTxHash": "19e048c6c30173c9bc564cd55788a86cce9e12a7a8677f35862e3d6efe170adc", + "collateralHash": "b1a71ac9df32082c5d45cd8d3ab8dd9c05204d19eac635911e394056bb0bb367", + "collateralIndex": 0, + "collateralAddress": "Xv3sAU5uV3sQeSFqeBJcQf4G48mmypM8fx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.43:9999", + "registeredHeight": 1032317, + "lastPaidHeight": 2126829, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764845, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnVFtVUjQgZvTqHDuzmsmeRSciD24KA9YE", + "votingAddress": "XnVFtVUjQgZvTqHDuzmsmeRSciD24KA9YE", + "payoutAddress": "Xv3sAU5uV3sQeSFqeBJcQf4G48mmypM8fx", + "pubKeyOperator": "125b2d35d0ba451e02eff49192e7955fc43ccdc36ab19f6c1d9c05519eff83967d174d2b901888d558e469d27d4fb7ff" + } + }, + { + "type": "Regular", + "proTxHash": "649e2d8e0550a6493b9e9e254039b05ec9787e1b38982fa731958ab4dcfc3bbc", + "collateralHash": "c0516d5da3921f94cd8aa5905da00daa49af8abcf2fa92b7c21d5e1ca4c3490f", + "collateralIndex": 1, + "collateralAddress": "XpnhPT4NiuHuUNNrowSsYaWgkhdMyHRrc7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.207.17:9999", + "registeredHeight": 1032467, + "lastPaidHeight": 2114418, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 1691087, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XpwtjRfUJVVR9mjgkFZ9DVMnapvJNEReUX", + "votingAddress": "XpwtjRfUJVVR9mjgkFZ9DVMnapvJNEReUX", + "payoutAddress": "XrDkde5bkA8ZDvmLGBtzJGi81AwScLVjZq", + "pubKeyOperator": "148981c5441e28f46de2b869ccf3fda025ac917595b32662cc7d4977f839a6486e3689110d34fff4f1f54b75d55fb3cc" + } + }, + { + "type": "Regular", + "proTxHash": "803c9126ae8d84909b8f56c6ba483f0f1c54675b7691514cbee89ad8e2a7925a", + "collateralHash": "10a8c8002574c445e22bb5446fd4ff25fc12137ffdbbdc7d312d97016ab77d1c", + "collateralIndex": 1, + "collateralAddress": "XmmZmi2eQeYwnr5J1oXxZKJM9fyLJC2BYR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.248.181.223:9999", + "registeredHeight": 1032533, + "lastPaidHeight": 1868990, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1733013, + "PoSeBanHeight": 1872330, + "revocationReason": 0, + "ownerAddress": "Xxe5cNtZmQYEkqiThmgJrQJmyK3T5BeHdo", + "votingAddress": "Xxe5cNtZmQYEkqiThmgJrQJmyK3T5BeHdo", + "payoutAddress": "XkyaNbiv16b3CkR2gSbLMiUDyNBsh4wMJm", + "pubKeyOperator": "0c6fe1fc008af58db22b868d2b0302aa1f46b5833439fb53ca7a54ececfce437ee806418f636172fcdb2ed80864650a4" + } + }, + { + "type": "Regular", + "proTxHash": "64594ac7eac0f9cb7688b08aaabd22e6a66ae3f14a65ac3a45e5f4541f89879b", + "collateralHash": "148758e0b6c3b9a6dc5a142efedab7425731ca586f04b74db654d363d0a8b373", + "collateralIndex": 1, + "collateralAddress": "Xx1TCPZzXoC4rsgTsVCuxh1xUNvEPocyWM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.190.157:9999", + "registeredHeight": 1032578, + "lastPaidHeight": 2117130, + "consecutivePayments": 0, + "PoSePenalty": 3838, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119434, + "revocationReason": 0, + "ownerAddress": "XnKN9JfLuiGBkqppH9yPLGx9uk3AHo19x3", + "votingAddress": "XnKN9JfLuiGBkqppH9yPLGx9uk3AHo19x3", + "payoutAddress": "XnceyaAjQJ2P5LHsXosYGEZMCNK8EdwPX4", + "pubKeyOperator": "11e2e0a92c3e8c9a700efe73c60f567ed26781875836a858f1a24998c676604b63e634cf8fcc535538635565e6b52a81" + } + }, + { + "type": "Regular", + "proTxHash": "a3a711633b36a2af81959bca8a153ceb91e075dad1769129d359f4f42c5517b9", + "collateralHash": "9bee2eab3315953d057d653e772088f02ce7280891fa7a1ad6df7429e2eb8cc0", + "collateralIndex": 0, + "collateralAddress": "XiJt8yjxsk6cGwzG2rT2mqZz4KbxEDm5mY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.217.236.63:9999", + "registeredHeight": 1032592, + "lastPaidHeight": 1731844, + "consecutivePayments": 0, + "PoSePenalty": 4462, + "PoSeRevivedHeight": 1490287, + "PoSeBanHeight": 1733411, + "revocationReason": 0, + "ownerAddress": "XfPnGbwqvYa1ehcdMH41iyNPZ8LEy9mW6R", + "votingAddress": "XfPnGbwqvYa1ehcdMH41iyNPZ8LEy9mW6R", + "payoutAddress": "XiJt8yjxsk6cGwzG2rT2mqZz4KbxEDm5mY", + "pubKeyOperator": "8c2f35ee7299492d71386e452ca4079fe5f13b3937afe1ffa4263e52432dfe852ec60a3863cd475b52fc19fdc48656d2" + } + }, + { + "type": "Regular", + "proTxHash": "5598bc3fcd40bc3ae263027a5aaf3b8515e30ab20696e01fb06b3b83c4284fd4", + "collateralHash": "96d1158c62152e182cb0aad2568c80c9591bdb9993d22053d90a4b66d237a7bd", + "collateralIndex": 0, + "collateralAddress": "Xhny6pKbvLnueDE7wm8JTcK7Ho2EYiXhhi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.244.99.70:9999", + "registeredHeight": 1032676, + "lastPaidHeight": 1195749, + "consecutivePayments": 0, + "PoSePenalty": 4773, + "PoSeRevivedHeight": 1098654, + "PoSeBanHeight": 1198101, + "revocationReason": 0, + "ownerAddress": "XfFsz1cJMyB2ncvNmaBmPg8qKmFMB6VJjq", + "votingAddress": "XfFsz1cJMyB2ncvNmaBmPg8qKmFMB6VJjq", + "payoutAddress": "Xhny6pKbvLnueDE7wm8JTcK7Ho2EYiXhhi", + "pubKeyOperator": "18c187875a78f71e3435943e135a75fd792bc8fed19cb121f18b9b1423ec00bf2ea65dcc6dda1a6ad9c9a90cc1ef796c" + } + }, + { + "type": "Regular", + "proTxHash": "26095ca9ffe15ee7fd772de85f080fb1cbaf3d38fe61a6c342544fe39a81327d", + "collateralHash": "779b56250227baf690438960105a8bdedb308a6d49ea4d823ccd0a20d3045902", + "collateralIndex": 1, + "collateralAddress": "XqgxCPPC1AwvELNdtbhjJ7hsGhxStSQfKv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.171.158:9999", + "registeredHeight": 1032698, + "lastPaidHeight": 1195704, + "consecutivePayments": 0, + "PoSePenalty": 4771, + "PoSeRevivedHeight": 1098605, + "PoSeBanHeight": 1198678, + "revocationReason": 0, + "ownerAddress": "XmUQKwdB8q3ygywZg2NopSJZXufnScdY94", + "votingAddress": "XmUQKwdB8q3ygywZg2NopSJZXufnScdY94", + "payoutAddress": "XqgxCPPC1AwvELNdtbhjJ7hsGhxStSQfKv", + "pubKeyOperator": "172f16ef1c9f219a8e55c5cbbd47545dc3d771232ff69e17c627ac80948517c7d1677e918b5bce752550ab4cea9c9bf0" + } + }, + { + "type": "Regular", + "proTxHash": "68391dade9e175bb5a66c3c80bccdaa3c9fbd0514d74063856d534f629096bb1", + "collateralHash": "1d7e047b2cbe358bb66707fb0801fc579a56c2573d96e1a88a7e5225e8b92173", + "collateralIndex": 0, + "collateralAddress": "XjVj72QeYPNya9LmLGYmBkEcM2tPnF7ZUL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.104:9999", + "registeredHeight": 1032704, + "lastPaidHeight": 2126331, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1140634, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xyp6jFfaWLPieHWomTLFfuHSdinV4ix6oY", + "votingAddress": "Xyp6jFfaWLPieHWomTLFfuHSdinV4ix6oY", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "08915a5164a39c40a66491b04b44c89d5ac0122b3e733f1c7310f5b5df71b3b46e2e73475e80a67f37d52113c325ce4d" + } + }, + { + "type": "Regular", + "proTxHash": "8685d53248b2b494fcb4e01f102518b550442bd73fddccf7d037f2329f85a5f6", + "collateralHash": "8dbd967fa0b3d26cc7474aafd757b6b76a9cf4b03b096071f8bea5f802f010a4", + "collateralIndex": 0, + "collateralAddress": "Xg8zyqLGwyi24fR5iPJRaDGqGV7FTJHZNk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.68:9999", + "registeredHeight": 1032704, + "lastPaidHeight": 2126426, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm2Rkeg8GRcyuUetKkonLnDpVTQpPj4kHQ", + "votingAddress": "Xm2Rkeg8GRcyuUetKkonLnDpVTQpPj4kHQ", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "104eed39725245d4cced9a79f28058b99b051568481e55c55b018a089521e3e615d79765de42bc9128ae75e5f58299cc" + } + }, + { + "type": "Regular", + "proTxHash": "4a0348788789b85c9a0112c099ef1f8276e501ce2eaa33ed8661437ad6f54ac0", + "collateralHash": "75cd1442a1216eedf95fdd346e8374025ea033dc69d21d2004afc4ee9cac8361", + "collateralIndex": 0, + "collateralAddress": "Xx5QQ7iWcVdYk2qQfFVwfwvsFtVqZ4My3D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.46:9999", + "registeredHeight": 1032704, + "lastPaidHeight": 2126424, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv9q3y3UBxsnnBeTfmHC4ZWguvCQk4qCCj", + "votingAddress": "Xv9q3y3UBxsnnBeTfmHC4ZWguvCQk4qCCj", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "89b8787b9d9c057522ce517cff5e6909ce8cda77d0de446896d0e27909e41c5b494c2e764b2936c673ec8e2a3f0dfb94" + } + }, + { + "type": "Regular", + "proTxHash": "47b1a5d557796aab26d71cb2c2f7d8d962dc4c75cc22b7284cb31efc6c780f36", + "collateralHash": "2da3debe31217871548496d4743f2de5f129a9e58d89444bbaf8233bab36fee5", + "collateralIndex": 0, + "collateralAddress": "XnLjzvGnYL52dyMQPkcnap3wTmwAh9irxh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.16:9999", + "registeredHeight": 1032704, + "lastPaidHeight": 2126633, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1102286, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqcp8jMCff3pHd8GeLtMpsaoDiztMe59ws", + "votingAddress": "Xqcp8jMCff3pHd8GeLtMpsaoDiztMe59ws", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "81bbb0dde6cd5e6ae53960f754459538ea430be443f10ceca831d8170f0813a41e53b672b53b4308e8013fed9939f7d8" + } + }, + { + "type": "Regular", + "proTxHash": "14ac3c1c75e80dbc088e345716b285d20fd784ffd2de51e5146fdd611866b702", + "collateralHash": "dbbc6284d1f9eca72c140e5c289e98669decbe9cd033611d045acc98730b2c5f", + "collateralIndex": 1, + "collateralAddress": "XjXEHS3D16QwQJ6RcXs2fycwZ9VAdiHCEa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.66:9999", + "registeredHeight": 1032704, + "lastPaidHeight": 2128653, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1144009, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoP7Z1gTPujW3mDYSoJgE5a19qb5FdLh2N", + "votingAddress": "XoP7Z1gTPujW3mDYSoJgE5a19qb5FdLh2N", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "8896af29cd715936bc3810902ac87341e966a22793bd566be50e6ecb6a29d116a82399d03c85607d2f8e0fae4f97fab0" + } + }, + { + "type": "Regular", + "proTxHash": "e8ce80ea903a5f4af70dfed189fbcf6926374743202c4cedafe58c21eafdc51b", + "collateralHash": "c04a3a19dd767e5f1c34f86c62fe62c46584d82083e9585e608b1ffb00bbf643", + "collateralIndex": 0, + "collateralAddress": "XyXwQaR22ujjsfaFMLZ3bAbh8cswVjkyxS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.36:9999", + "registeredHeight": 1032708, + "lastPaidHeight": 2126435, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo4M8iVwqHSCD6pDww5mffStpgFwqqXLQU", + "votingAddress": "Xo4M8iVwqHSCD6pDww5mffStpgFwqqXLQU", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "0ec1cb67584a867884f0ed7e6e0885b021f3f56e3ebae4258603010884d495964243669841a20db2fc071ce479047774" + } + }, + { + "type": "Regular", + "proTxHash": "e20eb3aa1f62c438eb89aea58adef794b4fc8725394e923476a51458136ddb7a", + "collateralHash": "41b55ffcc40a3075728793a9c28822a9766249567d57e17a78b14deb2edd4053", + "collateralIndex": 0, + "collateralAddress": "XbkjXGZDUfwAf6gvN9meq3TXvJdCMjKWeu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.143:9999", + "registeredHeight": 1032708, + "lastPaidHeight": 2126436, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv2bF25PBh4KF2KjYZ8wBf5B5arq7tvMaE", + "votingAddress": "Xv2bF25PBh4KF2KjYZ8wBf5B5arq7tvMaE", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "01b3a8a2639257027a59be8d5290e20233e36ec6dd0f5fac51d75eca9f58a60954651c041341273e4d3cdd5b0fc785ea" + } + }, + { + "type": "Regular", + "proTxHash": "7fd0a504278a1e6a0cc1188c98178c279667450502a87e8e841dfaab7896657b", + "collateralHash": "49eae220e329f6bc154a9eac4640842ec6ed0fc7fe638ae432bfcf4294c61c27", + "collateralIndex": 0, + "collateralAddress": "Xo8EHLJxxs6SrFteZLhwvUpgpn4wKdCfzF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.17:9999", + "registeredHeight": 1032709, + "lastPaidHeight": 2126998, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1136815, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfhrCMMsRiBdT3Xkjspm7ARpRcHvtr3UD5", + "votingAddress": "XfhrCMMsRiBdT3Xkjspm7ARpRcHvtr3UD5", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "0140c6cce1152085456b44c005042fa5b19048e23e7ae498b831dbcffd8fcd9360d26ac8c95db2c6f41b419791915e74" + } + }, + { + "type": "Regular", + "proTxHash": "98728e3d097e979286968dbb9cbba002f265948eb4fc9a14d0fbe5e0258de6e6", + "collateralHash": "29d88933c9174076017a286a7e2bdc1164a9aad26f628e208cc10d7480b6b0e3", + "collateralIndex": 0, + "collateralAddress": "XkNHLnh4nXmpcbauAv8Cvh4Nor4jA5rwgk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.226:9999", + "registeredHeight": 1032709, + "lastPaidHeight": 2126441, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtpiN6pnTiqJNQRJ3tvgTpGGSAAMq3FyRj", + "votingAddress": "XtpiN6pnTiqJNQRJ3tvgTpGGSAAMq3FyRj", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "142272c0e15731b92bd5a25c66fe9a571f8f5fbe4f249559f2dcc25daf042f79f4d0395c173b504f9732f3a9e7fb4d05" + } + }, + { + "type": "Regular", + "proTxHash": "9432f922d4a07631be9d31fcf610425f26c677ee57bb76719e47a2b1d80d8ef6", + "collateralHash": "b54bf3b9393cbab7cfe322e65d576b4ab580d2b24e01f5cb9f7b13c0f94aa19d", + "collateralIndex": 1, + "collateralAddress": "Xe5yK7XsywCLNfa32QbhSwaReBpAEbyvTf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.158.221:9999", + "registeredHeight": 1032711, + "lastPaidHeight": 1195709, + "consecutivePayments": 0, + "PoSePenalty": 4772, + "PoSeRevivedHeight": 1098610, + "PoSeBanHeight": 1199254, + "revocationReason": 0, + "ownerAddress": "Xri8hjvwBBa8p2ST61jDaenkpWPGw1eRmr", + "votingAddress": "Xri8hjvwBBa8p2ST61jDaenkpWPGw1eRmr", + "payoutAddress": "Xe5yK7XsywCLNfa32QbhSwaReBpAEbyvTf", + "pubKeyOperator": "0dcc4b041abf281886ada11f2c6e14a5834175a8dd0ec6ba56414c872474b296f5317fd0bd2589ebd11deed920e1a1dd" + } + }, + { + "type": "Regular", + "proTxHash": "f35b04711186532df06902c4d6e59521dde9578b55fa6790bf9cf8c90499b0d4", + "collateralHash": "f865d0f1ef9b1385864487874caf397f8c7c4f8880a0ab667fe9a6db8e667709", + "collateralIndex": 0, + "collateralAddress": "XamM7rqfKfL8utPSdK6p4U3MHBb5vAN7eH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.184.29:9999", + "registeredHeight": 1032724, + "lastPaidHeight": 1195644, + "consecutivePayments": 0, + "PoSePenalty": 4773, + "PoSeRevivedHeight": 1098552, + "PoSeBanHeight": 1198139, + "revocationReason": 0, + "ownerAddress": "XfvJukhU2UZAhZCewsDZxzX9ZCgTT8Cr3Z", + "votingAddress": "XfvJukhU2UZAhZCewsDZxzX9ZCgTT8Cr3Z", + "payoutAddress": "XamM7rqfKfL8utPSdK6p4U3MHBb5vAN7eH", + "pubKeyOperator": "904effe5d2e320f8f2143295c973ed4c384d71e07c428c50f5f0ac6f1b7fbb94c906d349713423c210325fa312a9494f" + } + }, + { + "type": "Regular", + "proTxHash": "f08491211ae85729aed495f8666676607088e82405b7889cd85972930e9a934c", + "collateralHash": "39958d01b6b36903dcac0ae461210b6be1a5224bbae49210030bbb3cb988a8e8", + "collateralIndex": 0, + "collateralAddress": "XpScuvMLpjpN7d9fjYeU7yGhPcVZia7cMZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.38:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126764, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1165959, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5WgzX1RJXXtCFhajycNWcoQEyA5HQeUQ", + "votingAddress": "Xg5WgzX1RJXXtCFhajycNWcoQEyA5HQeUQ", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "8d800a2878621ce612ef2fa906713c1f20a023379d720b0cb0a2c7007747096b59ba1b69e160c6b9e5568f58b982c6c9" + } + }, + { + "type": "Regular", + "proTxHash": "0034527c826c4ecf05abd6aa139e3f46ed983a46b8868166a1d03c4f798e3f8d", + "collateralHash": "6173db2124a47cda1c1e3956f6cc14e4c19da05a9b507f1d1e6a236973374911", + "collateralIndex": 0, + "collateralAddress": "Xfr1oSnWss4gr36HcupeY3bJ9gb61DSCa3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.81:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126465, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo4S7aJdaUSMpLpZ1aH9KhgP1z6G2bKW18", + "votingAddress": "Xo4S7aJdaUSMpLpZ1aH9KhgP1z6G2bKW18", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "98cbf2ee947fa712d81cd50582b8f3fd4cbc4024caa78d3bb2c763f0848afac2ca663fb045e7341b127fee38e702cdcb" + } + }, + { + "type": "Regular", + "proTxHash": "ce4d55d48c153f7baec45886ccb84f7c56209fb2e2f8912ea6617b96d047a2fc", + "collateralHash": "2180f29ae7e33e2fc14636f06f9064382b8ae65392a1cbf157faa6efc11b84b0", + "collateralIndex": 0, + "collateralAddress": "XcTmWwPUNaE8GtycpFC6H9UWkpbRigj4sp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.39:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126470, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb6fSefywHK4p8yxXCkb7KumuFQe8CjN5p", + "votingAddress": "Xb6fSefywHK4p8yxXCkb7KumuFQe8CjN5p", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "94dd833b270e582e2feac2516a364db26a6e8582fcd0a0c3779c709a1355f770ac1ed03e812fe767746d98f53ab468aa" + } + }, + { + "type": "Regular", + "proTxHash": "f8ad2a1ab4cb45c49964df0a00c9a89c04df13e3a2668c768bdf03b5e91a388a", + "collateralHash": "f3b8d993056eb5f5b01fd136590a7988c6a23d82e2fcdd7106642697876d6243", + "collateralIndex": 0, + "collateralAddress": "XbdeWg5rRpC9XEK8gMV9rNUJzEq3UGyyPB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.79:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126462, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtJ2zMGUQQeZJYw5JSsFTEhpFC8iTUSL6Z", + "votingAddress": "XtJ2zMGUQQeZJYw5JSsFTEhpFC8iTUSL6Z", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "16a2aa386afbc4ab3db010008d07b5a2bac350774d5e434bfd43a55e80e9653a15e0ef5b4a9a2fed1ec62ae7587c9e32" + } + }, + { + "type": "Regular", + "proTxHash": "c878233511e6b4cc0daa120ca5b3468d65e3539000cb1a0ec084d5e7de49099b", + "collateralHash": "1a21fefe4ee89b9b25f8418b58ac44b2f7e64483c9b574537c2ecccd112809d6", + "collateralIndex": 0, + "collateralAddress": "XoHLnSKouxWmXzpHdEoSkGSZcpzAXaC1iT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.10:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126468, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcNGGBqP8MPHQGKj6udSfHSy5unJneLXpe", + "votingAddress": "XcNGGBqP8MPHQGKj6udSfHSy5unJneLXpe", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "119a646d120b5a5131f9beceb30ddb22ea126ccbc2c97b3d3e654a442b25de51cbf50039e82031d0ea6cc2e570b6bbb6" + } + }, + { + "type": "Regular", + "proTxHash": "d6be92c2866bbe72aafb1d3a823f04a751c3ef318223ec1163a432920b9b61aa", + "collateralHash": "c200b545bec1c6f7566b03cb2cda223156e9cd56a39da080d9e134d1e9f50fef", + "collateralIndex": 0, + "collateralAddress": "XvqsJRksZ33wmp4EceAJCExDFVasDSD4kC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.146:9999", + "registeredHeight": 1032734, + "lastPaidHeight": 2126469, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhd8sycXcYL5bCNmAtEjgZpGgVstrMdxRL", + "votingAddress": "Xhd8sycXcYL5bCNmAtEjgZpGgVstrMdxRL", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "878a04280103f8fd7c0e5795a5642dc4bbb64ded64440d87c81f2e10d1dd0db696c99b228ca80860ed9aab6d13fdb224" + } + }, + { + "type": "Regular", + "proTxHash": "288aa361ef8c806ce740a250257f2291a71912776ed46fafc468f8396db21ba8", + "collateralHash": "6836147903d93aaad5ec44482ff3ba2f371475b93a4b70944c15ba9e21067041", + "collateralIndex": 0, + "collateralAddress": "Xu6asKiP64aLstqJMBpXey3M7qi1pJmoNK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.7:9999", + "registeredHeight": 1032740, + "lastPaidHeight": 2126476, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdNtfhi5e1wxNTNKipX2frsfLPs1w19YcH", + "votingAddress": "XdNtfhi5e1wxNTNKipX2frsfLPs1w19YcH", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "04e1a7f7560a9422ab86988b8feb56d3b81e3e4d7fc2877c0611ca624ade53e239b9a7176542333375c6edf7ca9ce044" + } + }, + { + "type": "Regular", + "proTxHash": "bf0f38bedfac5070fd44f13c11b5092b3838d654deb7c754206cb8dc4e3745da", + "collateralHash": "5bae85e8404ccf766b7e35020f0ed3f8e31931dd6b3e16c479fff9539792a3c5", + "collateralIndex": 0, + "collateralAddress": "Xi3pKXv1NBG6Mo33JvqhbJ22F9jr39NgcN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.32:9999", + "registeredHeight": 1032740, + "lastPaidHeight": 2126477, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdxiCkou6H7GfC6sBkNvKLzKJdzx5g1pwb", + "votingAddress": "XdxiCkou6H7GfC6sBkNvKLzKJdzx5g1pwb", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "08cad8053d78706d2e21efacd78401c1184316106e44e2b2011737eefe4c232f2e5c5efd929da2dcd103fa989a0ce786" + } + }, + { + "type": "Regular", + "proTxHash": "39a55c72a69e271abcc07b8180fff7df18a076787333f1994d6c2d3f54b31638", + "collateralHash": "42a4c1e7d2b9743b2b6cad1cfca53cf9d605988ac91fed076027da8771a0ab7c", + "collateralIndex": 0, + "collateralAddress": "XpPPa64TJAYspg7zS2hwqESG6qszneKg8P", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.143:9999", + "registeredHeight": 1032746, + "lastPaidHeight": 2126483, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcwdfQoJpQGkHa1xCMY8hXqcNo6jA3oN3p", + "votingAddress": "XcwdfQoJpQGkHa1xCMY8hXqcNo6jA3oN3p", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "83be8c255835d66ec58fadfac3a6cabd4c400973650e46d0d0c4434788b63f4c1ef74db64605699191e440c76001c1e1" + } + }, + { + "type": "Regular", + "proTxHash": "544a497c4bf88b40ebe344edde89ebd05e20e31be17050ea45e59b419228ab38", + "collateralHash": "dd43430e5c9919e34774fbe9d6474fee391525f15567001b6a88ba0c8d8c8d89", + "collateralIndex": 0, + "collateralAddress": "Xk3XxdkwSQDUEi3KkpVVVg9ceFrFqCqaHu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.43:9999", + "registeredHeight": 1032746, + "lastPaidHeight": 2126484, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhEPeHbZgnygefKmAQtc7gqyp8GR7uCZtA", + "votingAddress": "XhEPeHbZgnygefKmAQtc7gqyp8GR7uCZtA", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "8903dabc4479bb21338a1911214830ac243924bc36768408e904b271c1edb9c09b610dee78f611672ed4c29043870d92" + } + }, + { + "type": "Regular", + "proTxHash": "bab66332c071051f2afa4ea1dc7215da2e7e93f45e29be49fd6db585657f6d65", + "collateralHash": "21e753aa562f305c432c5580df91b2132de92a4b1cf9f728e5e5ef7b61bf1224", + "collateralIndex": 0, + "collateralAddress": "Xe32eUbGtL84WqmNZb9HjbewRV35UWPRBv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.74:9999", + "registeredHeight": 1032747, + "lastPaidHeight": 2126488, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XooHENsTimSX7TLadqGtAvhULVF4YchMup", + "votingAddress": "XooHENsTimSX7TLadqGtAvhULVF4YchMup", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "81246626f435dd8aa0e74acc82b7b98c9e7a525cc84e93f2c9d563627b40684621722800a54b0ba20f71bb252401a37c" + } + }, + { + "type": "Regular", + "proTxHash": "771bc99c662b0ba011ae0fc50b83cd9ecd2a4ad19fba1e6938fc990180a1a56f", + "collateralHash": "8f6de1eec25ac023e8d9f744ed8b28b5e9e5f69f4a7ad8ac7a6af7cce1ec496a", + "collateralIndex": 0, + "collateralAddress": "XhiAw3NDc5X9TPUtpu85rQmdURaAJz91KL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.138:9999", + "registeredHeight": 1032747, + "lastPaidHeight": 2126492, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbk1LscQSiLiCcdWAw7gkGH7VMvrLZomVW", + "votingAddress": "Xbk1LscQSiLiCcdWAw7gkGH7VMvrLZomVW", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "150e2ae109c979bdbd1380a22bf9866a7e816d991b1d2cbe1fdcf43abc702389a35ec7af4152a4ded2bbf13a294f0c8d" + } + }, + { + "type": "Regular", + "proTxHash": "f77abb28d0d441ce109f6ba9454178dbf5689b6e71b4a2e847ede6b5ffd00014", + "collateralHash": "ee245a29fac792226aac6e429b9056ec63b9b134bcfc67e691964b2a5f4bde8b", + "collateralIndex": 0, + "collateralAddress": "XwSu5ypxZq8b6EkHzW61vpYJzWQbDfjZ5C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.135:9999", + "registeredHeight": 1032747, + "lastPaidHeight": 2126617, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1083528, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmdrac3dir7XcmcNPbXtipUMEqEDmVRuBi", + "votingAddress": "Xmdrac3dir7XcmcNPbXtipUMEqEDmVRuBi", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "12a20dd3e82fa9774007bd84c9ca78c69e07416359e9e0d6bec9e3fff415d7676dad61344f7159fac27e62a6e801d5fc" + } + }, + { + "type": "Regular", + "proTxHash": "65f0314c58681731a88754abf3169eb8017dd9d4cca0e1a9a8ae947387d62d4f", + "collateralHash": "1f696338b394a13219fb28f105ca5ad2b200edd214a595285d671caed1545694", + "collateralIndex": 0, + "collateralAddress": "XqfdCisS49tieZmkeyXoMn1QEfMFiRuB4G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.145:9999", + "registeredHeight": 1032747, + "lastPaidHeight": 2126487, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi9ArrHXWtmLoLowcztVMSJepTg62Ykv3Q", + "votingAddress": "Xi9ArrHXWtmLoLowcztVMSJepTg62Ykv3Q", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "864cc66573cfdf5599f83c78bfc0d7358f0c4e92d130a300363c9b0ef59ab59101e83a77941ccaadf2f8d1ecf8e777e7" + } + }, + { + "type": "Regular", + "proTxHash": "4030316b3a1aaa4aa174e94e7c82fd847e116a50cc280bf37a44a94215ebd747", + "collateralHash": "b70023e143c4d2cf6e887baf4f9e3e0f2c515763b71cfdae0440f5a53ca05da6", + "collateralIndex": 0, + "collateralAddress": "XawCQDA5CGv3JE3PEV85CwT1iE68yswRur", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.19:9999", + "registeredHeight": 1032747, + "lastPaidHeight": 2127479, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1983197, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvv9YCBvg6fgahPVbhujJWybWm2RucueN7", + "votingAddress": "Xvv9YCBvg6fgahPVbhujJWybWm2RucueN7", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "104761b17c066b81f49cd1bbe38916574a196e65024e18e1bab47c647b11b5a56987d538f6b7b26caa49512dd4c373cb" + } + }, + { + "type": "Regular", + "proTxHash": "8f3b081366c54e826c1437fa43f467557a614729e250a84be3f4fab7e9db7850", + "collateralHash": "701921e7f7178482c939508097d9b99d2a275af382febe8ca18b06715b3aac25", + "collateralIndex": 0, + "collateralAddress": "XmBtCypbuWpxT2rQiQVzGgZxYN1oAbCgWi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.6:9999", + "registeredHeight": 1032749, + "lastPaidHeight": 2126493, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmMtUFGAXkFDvGhiDCx85ASV3DAwRa5djg", + "votingAddress": "XmMtUFGAXkFDvGhiDCx85ASV3DAwRa5djg", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "8a67462d25875ef375c5a87431308d82903a4081daaebd16983563a1884c858d8c8669ba9f85bc95162e9173c4eeb3a0" + } + }, + { + "type": "Regular", + "proTxHash": "9b5ea17f4e11abd1f3b61e72da796c9853ae9a84315455790dd6f22db35b7273", + "collateralHash": "570637623b1290fe9c072db4f05f38567e41509dbbba3940549adc603db62d1e", + "collateralIndex": 0, + "collateralAddress": "Xm64cUtFqb57ePheAHQV47MMLtfweEzE9M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.130:9999", + "registeredHeight": 1032749, + "lastPaidHeight": 2126499, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvdoU6N6Np3quexN22vZ9o2yyuJEq4E4zC", + "votingAddress": "XvdoU6N6Np3quexN22vZ9o2yyuJEq4E4zC", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "944be5269df80a87677dd9c7f6202c58d7b8eeeff712b2581b96956e823f02b7095a0fa27d12f8e10a426fa666abe7d2" + } + }, + { + "type": "Regular", + "proTxHash": "dcde9bdd7f4de7498d7db448aa942c86938ee52273ebdd3eb1a5d11d4e975bdd", + "collateralHash": "05b5d48546677bfde499e1f33dd364391b49faddd039a3473af744ae34fa4270", + "collateralIndex": 0, + "collateralAddress": "XibFVGvJPSBwzt3jMKZApWTSzJrBpUkfXo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.37:9999", + "registeredHeight": 1032749, + "lastPaidHeight": 2126500, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw98mtePBWYC3UHBfC3GmCskZamptS9pp4", + "votingAddress": "Xw98mtePBWYC3UHBfC3GmCskZamptS9pp4", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "0581aa4fa0b84c39aa920f538b92d7e0680d88776cfec9d41f6f599d32cdc4d53d7976e92fcfdb8e0a3a1ea5a9650582" + } + }, + { + "type": "Regular", + "proTxHash": "e7a8a869722d45d9d562b514dde2489f550606a0dd0a648c00eaa90066de83d8", + "collateralHash": "f919a4f2298da307273b4fcf2a08226dffd286b43dc3e3719b26d6e407afd978", + "collateralIndex": 0, + "collateralAddress": "Xj23a8zh7h6PJ3cD2EZyUMooSGCo2C1ze9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.135:9999", + "registeredHeight": 1032751, + "lastPaidHeight": 2126506, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm9ADCJK6MpVWjLjSYYCDTaL2TWNXadpfH", + "votingAddress": "Xm9ADCJK6MpVWjLjSYYCDTaL2TWNXadpfH", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "8720cbc63e2137dab1807375a574b383220194a317b52f74e2460dbab4b2884d2a1bfab0474ba629232d5fde52c3132d" + } + }, + { + "type": "Regular", + "proTxHash": "bdf094725d041a0657e0a0c6750c35695fcdd5825c63f792d227fae1a348a97f", + "collateralHash": "2868e8b43e4a6afaef5e7239fd93a53a93d5e86d4f88ecd594b6d1db3c0be6ff", + "collateralIndex": 0, + "collateralAddress": "Xiy5ZzvCTreJttkF7Aw5sL2UWev6KVFGji", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.43:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126520, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv3YE4CNtCVYWWzZxiZcEvzkRBSxvGmqgd", + "votingAddress": "Xv3YE4CNtCVYWWzZxiZcEvzkRBSxvGmqgd", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "93d761efc4656d60dd3fa6d7632ef67c13211afae37508e3a89b4e5ab487b680a94624b915dce1a407c372cb317cf69a" + } + }, + { + "type": "Regular", + "proTxHash": "e6735108a73ad2dbab7a263046224143b62f2ade1eab9b9ec7dfd4ce796f87db", + "collateralHash": "9868ba5ee9d2aea88636dc5437835bf44fd8eddb50b89ecb255c84c30d477659", + "collateralIndex": 0, + "collateralAddress": "Xo4jCPMQWhey1is1HPVCLQ3MPhzbSrLbeg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.142:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126523, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmmcb7STD2yRr4HgNUQDajTeFc6kXtjvLk", + "votingAddress": "Xmmcb7STD2yRr4HgNUQDajTeFc6kXtjvLk", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "1732371c6ccbfe8629ae3538e037a533e34195570cc6869637a3b746a8397d6ebad17a127121ffdd9b3fe3220183ce4a" + } + }, + { + "type": "Regular", + "proTxHash": "a0b79296670312d0207a3df30a871e4c4c377b5ebd82e07204ef673b5a4a1c84", + "collateralHash": "69594366cab17f9ed82e34a53f8303821b625280f24010fdd1e0070296b4b2c2", + "collateralIndex": 1, + "collateralAddress": "Xm1kvkf49WN3j4Jk6mnKsMksLJsgFHVePk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.13:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126521, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdYuzoqCtqfPLL2f59kCwcCuno1kvxRFRj", + "votingAddress": "XdYuzoqCtqfPLL2f59kCwcCuno1kvxRFRj", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "8ae998064c71231e031d1d63e8a9fdbd3dbea69993f5f54c885bce0b8c70a4711a55926b04aece8ab994e445a95deb55" + } + }, + { + "type": "Regular", + "proTxHash": "cd711163789916e709d039f1af0401b9cef592f3f48c70258fe2aaab8da65128", + "collateralHash": "4a5c66d2aeca555f1b4e41a576ba4fea64c4ffc9595cda8eb23e0b08bf867dc0", + "collateralIndex": 0, + "collateralAddress": "Xb81CNHFJZftaxaZk27MXenYehgrnkXE2u", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.17:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126514, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfrG2rrHBS7NDHJdrGJ7Q3GC8UFesJKV8z", + "votingAddress": "XfrG2rrHBS7NDHJdrGJ7Q3GC8UFesJKV8z", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "800169d58d0084a18067e77cdfa23fb38f6231c1c961608e66d8c3523560a2b1951c1e89a836dbe9c5ed9ef6a3d550da" + } + }, + { + "type": "Regular", + "proTxHash": "bbc6140b3be36b4fff27f01cb801639598290a168841914c4a89a4b6551030a9", + "collateralHash": "a4e6b813985a42a18d0522eb766ef196082c463286bdd17c3a27460792deba12", + "collateralIndex": 0, + "collateralAddress": "XdduHE4SboWgzYCxYBTBgbh2U15uu1a1tu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.6:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126246, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1101709, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm4vsMwkV7kUSJdaxAhnBTFuVRehBk42kx", + "votingAddress": "Xm4vsMwkV7kUSJdaxAhnBTFuVRehBk42kx", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "08d6e9001222cabdee144454b5b4d5df2d5686bb6b3f44ffb684fcfd8e05b113f157b7256f024fd9031137d467ed2803" + } + }, + { + "type": "Regular", + "proTxHash": "81686ab61a732ac706d9611afdaa81a57bac02ce384340bdb8d01dbf6d635220", + "collateralHash": "6ce31017706dd5992a84c3acce4321f30f6b9255a72f1da3badf5695526530e1", + "collateralIndex": 0, + "collateralAddress": "XdDfVrR15sW784xiYinHvBX4N4FYEs32ty", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.145:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126512, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwDa49vpXoYivcE77cYX29hk7dkCAuu7Kx", + "votingAddress": "XwDa49vpXoYivcE77cYX29hk7dkCAuu7Kx", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "1562afa1f0192f7d8bdc216dee8fa3aa46ba25394aba7406ddb3707779b29ce7fac4f2502dd301da732086951a6004c1" + } + }, + { + "type": "Regular", + "proTxHash": "ff93af84ac3f7cd70dc522696e9d012662e00fff403ff78f122e6dbd7a6a4b54", + "collateralHash": "1475f536f8d578d52495667f521e1a89100ff8390cf7c5535aec9ff882146782", + "collateralIndex": 0, + "collateralAddress": "Xs1SQeBFPwWfYqgPESQrKtmwToU7AqhKyf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.13:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2126517, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgsqekCX8UZmrAVvebDwaoCNjWcHXhLHok", + "votingAddress": "XgsqekCX8UZmrAVvebDwaoCNjWcHXhLHok", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "0ce19d67ad90e118ae51b46c7ae6e75d4e0d0bfb647436b7d4109694eed32a895678bc6e6ecbe82f49b05ce687955cc0" + } + }, + { + "type": "Regular", + "proTxHash": "672d1d5e38b407e8f9ddc6abaccee4cc6d5774ead0ccb351e3e61c1e00fe4db8", + "collateralHash": "7da7c5a22d886d25f9adbcd36a73f5cc6d22e37dd5a9a032807d93ff18af1c05", + "collateralIndex": 0, + "collateralAddress": "XebrNmKoSKVjm4fydFX54wrhhCwem9Yvjg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.142:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2128859, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1100596, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnwK2aUknDi2owrVW1ZwxTMjiVTq3S77rz", + "votingAddress": "XnwK2aUknDi2owrVW1ZwxTMjiVTq3S77rz", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "10d8faa490c6dc9eab971c7fb6dc5d3bb24e9cb9957fd09526504840813ebe5464cce1b28d72397986919b627df8f48e" + } + }, + { + "type": "Regular", + "proTxHash": "df15f31e20eafe051205b399c826a1da327185f6b90da026111b7eeadc4da4e3", + "collateralHash": "c98067517b44521ab0d59356fd7b59f675ea5728ecebd1791f5559cceab8f2ad", + "collateralIndex": 1, + "collateralAddress": "Xs3LM6kxK31EdD7gdqvCNzPuDuJNw83Kw7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.142:9999", + "registeredHeight": 1032757, + "lastPaidHeight": 2127108, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1166510, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XghJLZ5HgDLFV62T9LQts7mGuEWDKmwiJw", + "votingAddress": "XghJLZ5HgDLFV62T9LQts7mGuEWDKmwiJw", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "97fa308b2dc7974c408a78cbd7cba0f6bf6410718ea19e60b7e826391324184cc4878598707773639ebcea330ede8137" + } + }, + { + "type": "Regular", + "proTxHash": "a520cd9f5fd4b72f143db9e188985f1944cfdfa217e295bc20a078cbea35e049", + "collateralHash": "cc954e4703490c3786e0a01512aed8bd31cd4b7ca1130f1dbeb72cd5ef6f1b8b", + "collateralIndex": 0, + "collateralAddress": "XwFzknayjqyFR2uVqsZ64e4pQ1jUTeMcMa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.11:9999", + "registeredHeight": 1032762, + "lastPaidHeight": 2126525, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjVfHtfq3u1aQUwtkPAVBPuM6XxnEDv8SS", + "votingAddress": "XjVfHtfq3u1aQUwtkPAVBPuM6XxnEDv8SS", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "04222bb30a1c9927711979ffeae540ff872cfcdd520e156f6e7307965abdff230d37ffa9cd6bd0e6d5252bb2eb8bb307" + } + }, + { + "type": "Regular", + "proTxHash": "0e9b6f4856b31db84b1e10d8378adcca99ab571dddb602b5f7176d3ea8ba76b7", + "collateralHash": "d061c6fee38e35237e36e02afdccaeb90d638bfb336c5d43f3098b129577475d", + "collateralIndex": 0, + "collateralAddress": "XdoRJuANAZR88BfdJXtuC4ZdrCFZP23Mtm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.32:9999", + "registeredHeight": 1032762, + "lastPaidHeight": 2126625, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1102266, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcoDG8epwpSTs6zLJNRLGJ34c7BQU8YrXM", + "votingAddress": "XcoDG8epwpSTs6zLJNRLGJ34c7BQU8YrXM", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "09b9e4417ac9fc8361be0c5bd30485b4a2c0f5e52cd6c685dbdff7a3e6a0e77a508d4772abe8d9ddca6eac5d5a18625c" + } + }, + { + "type": "Regular", + "proTxHash": "5d7339e09e9b69900b5749df2c178364afd3a0d8b513d8191ef2bed185a98eb2", + "collateralHash": "ef6f711d10718600a9f2700e8d8af92ac1e6028f40986170a415525857dc8f28", + "collateralIndex": 0, + "collateralAddress": "XpmJC3os94PCsDmUeJNZef4qY24tiVUJuG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.137:9999", + "registeredHeight": 1032764, + "lastPaidHeight": 2126533, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSj3ndfHeKipmN6PMJAFT3x53vq3g1wrQ", + "votingAddress": "XrSj3ndfHeKipmN6PMJAFT3x53vq3g1wrQ", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "021a1d0c02cd64b524865611ebe1a64f574e010a059d52bc4dd1ea3a533c83920a03361dc7613ca1e77f5bc528c143b9" + } + }, + { + "type": "Regular", + "proTxHash": "583a55a9ab5857352e142cbb149a33dda3c2da2350d7b22b0d83d4b808ce4184", + "collateralHash": "5388cca7866044cc56e804076d434c2294d3c9c2aca92ad9aed31b75b0d6d3e8", + "collateralIndex": 0, + "collateralAddress": "XchKTQzujQQ7Z8VPJgAjbyYQAMegFiqDzL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.142:9999", + "registeredHeight": 1032764, + "lastPaidHeight": 2125943, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1082520, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfppbena8NtUqbH484sniEiv35seEEuo4g", + "votingAddress": "Xfppbena8NtUqbH484sniEiv35seEEuo4g", + "payoutAddress": "Xg6JoUJ8qMqC6hTDvf1UYt9H69ifPoqaD2", + "pubKeyOperator": "896534a7f0035c819d1dd226fbe769f24ef62d15cebe9cc1a28a7509d4a8c9970ab3aa8a383f18a7c48d056b54dc6b63" + } + }, + { + "type": "Regular", + "proTxHash": "63294dd7f642289f77491933153afec00ccffaa16f089457400560da0c71e113", + "collateralHash": "fc85fdc178074a2dba303d62236a60b61b6d21fca86ab2c607fce5fcf54e939c", + "collateralIndex": 0, + "collateralAddress": "XgGeKdxL6oAXYQ5oZ61KQsik9G66mRZcFb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.140:9999", + "registeredHeight": 1032768, + "lastPaidHeight": 2126538, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd7F7WzxKCbhcmHGkYad11ePFpy4fUosfb", + "votingAddress": "Xd7F7WzxKCbhcmHGkYad11ePFpy4fUosfb", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "03bb5c3564a9b5504b00433df5a89f0fa75d11a19e38197243b7e2afd7708405d0df79db0932c7fe6ba0a85421cea746" + } + }, + { + "type": "Regular", + "proTxHash": "bed8c26162aa68149e75e037f65252ebc3d188942245191a151ba1f9c8171869", + "collateralHash": "9601ded34e41840f421c20f499949cec2b57ef3bf1ddb829a9fac5d80cc7964b", + "collateralIndex": 0, + "collateralAddress": "XihRn9JWfiWnT36ES7D3QHUqhy8NM7CfCB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.44:9999", + "registeredHeight": 1032769, + "lastPaidHeight": 2127922, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1162850, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp8GV8ey2xWEHGYF76DC9xt5V5cDzfDkMG", + "votingAddress": "Xp8GV8ey2xWEHGYF76DC9xt5V5cDzfDkMG", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "1939ccb4f0796aa234a1f41422fd1fb1b5686628e00bce0fccb15cf643d050babe1761c2151b663b0ab1e4db9bf08cdb" + } + }, + { + "type": "Regular", + "proTxHash": "5d90bbdf2e6798dea49e371eaafece9bda5e4c2900cca269e15af54ed5c7eeda", + "collateralHash": "734734e0242944b5a330b342cd1dd0d2189a5e7a1d76a0315f430fa8e77a6b98", + "collateralIndex": 0, + "collateralAddress": "XmSPgX4Rh1KkeUYjnKyVQBwbdY2GrJepy7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.129:9999", + "registeredHeight": 1032769, + "lastPaidHeight": 2126573, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbSnqTopThBM4JzimQTNogfhP5stmoPnu9", + "votingAddress": "XbSnqTopThBM4JzimQTNogfhP5stmoPnu9", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "16e810f1e6f3ee8617572ad61d4bbc70da8f7a4a8fdc9eabc8fa7d917ec19cba563160aac270a1256911caeb5963967e" + } + }, + { + "type": "Regular", + "proTxHash": "7fb37becb7f574f51daae998c61b5237225988b92faf9b912342cf37305eca27", + "collateralHash": "327b22500fff7fab5d99f9c50c63ff0f68a735fec15eea148b79c2905b4c2062", + "collateralIndex": 0, + "collateralAddress": "XsVsoZYAdhuwsVwY247XM8znTcTZDKzdK1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.12:9999", + "registeredHeight": 1032769, + "lastPaidHeight": 2126546, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmLunq4JZKHj5ZCt8W7uwcMk1aMVkDhe2m", + "votingAddress": "XmLunq4JZKHj5ZCt8W7uwcMk1aMVkDhe2m", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "0e389807328355fc40c7a9c8e1e8736068a8095057137d2a5afbd44f0d4c75e818354403259863ea234f6d8a0796e3fe" + } + }, + { + "type": "Regular", + "proTxHash": "3d75c31891f916162d6a8acf25c67d19cf2c6e37f39fb716adf578d0c70322a5", + "collateralHash": "cba66f783511e2d0d5535a863a0fdbbbeea65e2fcfef2cbc5bcb41bdf82adfda", + "collateralIndex": 0, + "collateralAddress": "XtNDu8MYYqfTeYYXZKou8h8rgUpHDeLKzD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.139:9999", + "registeredHeight": 1032769, + "lastPaidHeight": 2126560, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcwLjxNRhdrjrSXfr2YNtA6mB8nEmW2V8W", + "votingAddress": "XcwLjxNRhdrjrSXfr2YNtA6mB8nEmW2V8W", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "105972c7be3c93d66cb0c6932d85c4aa0761b5c653996761ddafa3732a9ab15cf0edc1441a3248a62ce1ae53832bbfe1" + } + }, + { + "type": "Regular", + "proTxHash": "5c5674300be3205b093a9851b4a43456f3f141ae9b45480e3c52ffc94e204d0a", + "collateralHash": "1704ff520bd80942942f7ba721d77c8f035c2925c31453ceaec7afd72ce4a19e", + "collateralIndex": 0, + "collateralAddress": "XqGDmq1ZuUzXjQr8JTz9CUDXxqfcNRCvb7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.10:9999", + "registeredHeight": 1032771, + "lastPaidHeight": 2126574, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgpjdLLNWgcsZM1Wav4TY4KLQ2ppwSXmpX", + "votingAddress": "XgpjdLLNWgcsZM1Wav4TY4KLQ2ppwSXmpX", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "848407f696713c7e4ed6453ab04eeec7c00a34fae01a6cdd76444acd3a3039698aa9a282cf2879a9aea0018599afd44d" + } + }, + { + "type": "Regular", + "proTxHash": "4fc4408e5725ade7b409e847cbe6007e24cb7d0ae03884f688209f6e8b639fd7", + "collateralHash": "453fa3455913b71e6ee2bfa561cde3c04c8f5324c5e5e3e3bd2223a117bc8c3b", + "collateralIndex": 0, + "collateralAddress": "XsyB8rgp7hrk19PXAUQ9KFtDmw826vdHZH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.16:9999", + "registeredHeight": 1032771, + "lastPaidHeight": 2126582, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkSjGJ6Jx64qYF5Do2dHsHzZmbuAVpRopt", + "votingAddress": "XkSjGJ6Jx64qYF5Do2dHsHzZmbuAVpRopt", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "995f45b6dda000c9b83a92cfd8101a54eeb57b54bb71bb2ab5c990ecc21c5759aa2cbf185116de81d0aba9bf03bfc0b0" + } + }, + { + "type": "Regular", + "proTxHash": "19e470b220624ad044597f824bdb1ed7cf3793142afb08406eea47ff9b555751", + "collateralHash": "10991cfb6404e53c9f9f914166d839f208842b1f2951ce55ad5b66a9ad8533dc", + "collateralIndex": 0, + "collateralAddress": "Xe8iojDSp2DMJrt5ScN6P1h611Y95FdC3m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.14:9999", + "registeredHeight": 1032771, + "lastPaidHeight": 2126577, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdAviM2XEbGKMRKPE3DQ4ixt39R6FrtmTb", + "votingAddress": "XdAviM2XEbGKMRKPE3DQ4ixt39R6FrtmTb", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "92166ea48c5ec892de338e306c11613126d0eae570c1b08827b91634972cce655774c40799234d3d5b8b580a2364d609" + } + }, + { + "type": "Regular", + "proTxHash": "53f5c40acbf3acffca748f1daea0090706dca5ac2abe47b59c4a0cafe5e69035", + "collateralHash": "5697d94a9713d33fdd4898d77945276cd5d81a2def729d8c784daaa03271ab01", + "collateralIndex": 0, + "collateralAddress": "Xu42qErKfivWnG2fJzo76MaBT3jMc9jzNb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.145:9999", + "registeredHeight": 1032773, + "lastPaidHeight": 2126068, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120012, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPwKkuFdGYv1rzdU1G44JreiQ45BdMZfN", + "votingAddress": "XcPwKkuFdGYv1rzdU1G44JreiQ45BdMZfN", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "077c46c2b0aef32126a586f21c1340f5fd336adcd2b3a60ffb87dc3c4882c35c189135bddc620e6cb5743a6fd9588930" + } + }, + { + "type": "Regular", + "proTxHash": "fe57323d5591fde771c13d9baa258ee9ee5cff6de47e486d7e0587633728d8b3", + "collateralHash": "22e9e29529cdc4aaf26bd495c3aa9038f7b928fb6793eb36b39eeb76a47ae723", + "collateralIndex": 0, + "collateralAddress": "XskCDsQjD2fXvd4y6B4FVVQ2wLp4UtwJG1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.42:9999", + "registeredHeight": 1032774, + "lastPaidHeight": 2126597, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdvEqYDwMnrkp533nGjSZfkRYsRhBnASZw", + "votingAddress": "XdvEqYDwMnrkp533nGjSZfkRYsRhBnASZw", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "03f5baab255f987e274ea19b1b51c9dd06ae739477b6c4ad3a2f207967e469cacaf66ada2a59bfd90acad1bb0d9d117d" + } + }, + { + "type": "Regular", + "proTxHash": "8dd88eaca9515cadf04b4a351c600a1a1bea3cb8ff41335bd732af47a387cab8", + "collateralHash": "665e6dfcda4b7ed37247f7df25396af81f9c6c0dabc72140371076fe9af2fab5", + "collateralIndex": 0, + "collateralAddress": "XeE69Wu9jfnJhcmrYkmQCHHzkkZtNpAgmq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.10:9999", + "registeredHeight": 1032774, + "lastPaidHeight": 2126599, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbC7qxzj6vnwDwDbhjFJCpvhFrTjBg5xcG", + "votingAddress": "XbC7qxzj6vnwDwDbhjFJCpvhFrTjBg5xcG", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "806e4d40fb802c6494e6bdc4e5b157bad3ec20937d5aa28a81744ddaf85b71f5c58f26f8969775ea6a86ec34dfa8cd5a" + } + }, + { + "type": "Regular", + "proTxHash": "12204244b05de61baa97a1a8bbd9e64f802831c31d711792fa6c90c2888638aa", + "collateralHash": "947efe65a528e80b3391f7cfe40532e9b9ec5fd0536f03a3e8a8d8ab6eac84c4", + "collateralIndex": 0, + "collateralAddress": "Xho7PMWE6Nig5PCpBd6CksCv1S5thjKPsr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.35:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2126607, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdxFaQr4dwisEULk4auG2PqaWnoY6NS53h", + "votingAddress": "XdxFaQr4dwisEULk4auG2PqaWnoY6NS53h", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "98d478849bb1cc57b40c6dcea5a7f2bcbc2f821a78880a214aade78d68a5caad66a4c0ea1f4576c55d2f17e27673c4da" + } + }, + { + "type": "Regular", + "proTxHash": "ff58cc0157e12eb2d20890a2f19b39960611329e7da1994098ad38bf6c1929a3", + "collateralHash": "24e07ca77aa4f8cbcaa7c4b32c19236ebf7b10e25643dc475e6ee26f9ad3bf5c", + "collateralIndex": 0, + "collateralAddress": "XnZUaz4Vn6SeS8oGF4bAXxvZdf2XFFrAG4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.72:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2127121, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1899980, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbDjiVBNNbfs5WN7ekmohHuS2YsQKcVcZw", + "votingAddress": "XbDjiVBNNbfs5WN7ekmohHuS2YsQKcVcZw", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "80113626b7a736c08fcd2d78a280757c38974ddbf907943113c5613fb78a0bafd31aed2399b8743e2e11ebb6380db33a" + } + }, + { + "type": "Regular", + "proTxHash": "62d5e2f02b79889699bb8d5f23eb94b1d657fe7d95cbf5d559923f683f8f3a3b", + "collateralHash": "bd5196dc7034af0888f46fab040fb334e02033e0214b4e1b917ad8a47139e916", + "collateralIndex": 0, + "collateralAddress": "Xp8MdjUDQEF6qXM9V4d1ctrU8SYdCGebQi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.44:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2126652, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1141188, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjvzTriSS1A8JhhsujvWTC5f4uWqzfw3aH", + "votingAddress": "XjvzTriSS1A8JhhsujvWTC5f4uWqzfw3aH", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "0a6e3ccb6390c37c13a291a0be6e98a83e464673e403d9fee0033eb427c7686c56156e9a6298f597037dcdf450b51a0e" + } + }, + { + "type": "Regular", + "proTxHash": "b5154772e13aa9665e947f58534c23475b3ac17ccb7436b49c9b305307ac32ea", + "collateralHash": "8dfecb629d1dee3d27fc869aa4944960224e5ce8df35ebd3ab0286fda4f61591", + "collateralIndex": 0, + "collateralAddress": "XtF8xP9a39Q43jLBQibH191G1VroKGXXVn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.42:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2126615, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxNCEb7WEoWApgagFPngQukqqBqPYM4dDe", + "votingAddress": "XxNCEb7WEoWApgagFPngQukqqBqPYM4dDe", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "8e55894085ae8353096780a38bb32b6e6494e63ec6f339f64b3c7f55ae942293af103ac3f2e78d78dcdaae3a589ff60f" + } + }, + { + "type": "Regular", + "proTxHash": "060ee8a0c01682e7bd3fc8ee2a8312888a5559838ffa00a9be734d4a90b5b6de", + "collateralHash": "8817ab036ddac931df63d569f7219cfe04c672fc774d6c9d83b95373534bb26a", + "collateralIndex": 0, + "collateralAddress": "XsMcFUra4V8hFyAS3Ca4GxUeivuLuGzgBL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.74:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2126608, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrwWVn7sggzfkzvaWEJLgBorAvMnzoWtd2", + "votingAddress": "XrwWVn7sggzfkzvaWEJLgBorAvMnzoWtd2", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "185449a148e6f53635ce8852adf978df942acdfd95b0f0deb0cea86ac5cd728c319e1557629e8257af425583ef99f5da" + } + }, + { + "type": "Regular", + "proTxHash": "ab250b45017ed7ba5381911fe9995359bf559783ac3c4f72a70397d6858930a9", + "collateralHash": "cc84a0def545152a0e943d55f558f9ab22f875a3dae6f47a66da1b0279571db2", + "collateralIndex": 0, + "collateralAddress": "XieTH1jcfYNv9o6mSbqHGiATKeiQdw4oU1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.77:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2126605, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxUMHf1mMBpg2Z8zWV6EnAJpdgLRx1U7Ri", + "votingAddress": "XxUMHf1mMBpg2Z8zWV6EnAJpdgLRx1U7Ri", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "05b5ee76547484ffdf8228943b16114a933b0494e3fc797dd98216fe3832c004e4ab79aa67b7da21b3f7af81ecb93315" + } + }, + { + "type": "Regular", + "proTxHash": "5d39edb9bd3a86a454e5a83ed683b3a387265086ee0823ecf88494f6ce5093b3", + "collateralHash": "fcace7c43198b2617f47019b65f658cff62dac03ee3c7293a79eda76a1633cd5", + "collateralIndex": 0, + "collateralAddress": "XtAS7b3htYMS2baYsoesfYfRF3vzmfm4b8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.96:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2127000, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1136815, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbdezFwfo9f92BZ9J5GLMvKSBZbDLgUbNa", + "votingAddress": "XbdezFwfo9f92BZ9J5GLMvKSBZbDLgUbNa", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "069ed54549336e189918cc87f3c0de838953414926ebe87899c5d88dd9786d4c7745ca80cdbea51f294ead89e383b570" + } + }, + { + "type": "Regular", + "proTxHash": "fb304b4b04fc039c7de928f6fbf9ab8486e53a3ba392b56b746d6ddbc74d19f4", + "collateralHash": "7fccd2d88b09e70e1f25f5ec482bc32e9b49e6c1d4ef5c86b6f510ea1f3ed129", + "collateralIndex": 0, + "collateralAddress": "Xsa3qXewqPaWVukpvGuz5iMQKJGWEdyqE1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.141:9999", + "registeredHeight": 1032780, + "lastPaidHeight": 2125944, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1082520, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsd172u8cCHdkzDHv971NYc62q6xVsv9Yw", + "votingAddress": "Xsd172u8cCHdkzDHv971NYc62q6xVsv9Yw", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "854cba983fe6f307b7e0ff3bf53a6af7482c5bf0dc2f0f0ede920c35b70bd08a956718e9affbab2ea4e9afd2ee0e51b0" + } + }, + { + "type": "Regular", + "proTxHash": "f4d3f933b70c42b371c605af2b61dfdc761fcdd6eebaa91c8ec39b0b476e9b2f", + "collateralHash": "0ccee884d5879d00bf2300238b441f854adb87053f231e7d9ddc5f3a70736abb", + "collateralIndex": 0, + "collateralAddress": "XhBBH81sBk7KKgzxxS27WZFMJheDWvtFfh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.15:9999", + "registeredHeight": 1032781, + "lastPaidHeight": 2126620, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvXfM6njUYJrVzGUUM8a8iZ7wta3cpbqfo", + "votingAddress": "XvXfM6njUYJrVzGUUM8a8iZ7wta3cpbqfo", + "payoutAddress": "Xd24w6yyazF6AFJmUew8UbNcSYxRBDnDLS", + "pubKeyOperator": "0a58c16b128340a67e3b7c880e72920bd1f46a49360ec513bbbec35bfc1e12ebd68f18e67d0dcdbab6a024f8a38b6d73" + } + }, + { + "type": "Regular", + "proTxHash": "3fab2e8d418a4846433a32db6b960368995ae69006e7c15bc7c180cb702ac288", + "collateralHash": "b4a86a53c03f671ceabe5304658431f01c21a9396e006c0ca4607da626601417", + "collateralIndex": 1, + "collateralAddress": "Xst4G12yY8AxMWiAgePfJijRDgMLt4Xe4W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.190.236.195:9999", + "registeredHeight": 1032841, + "lastPaidHeight": 2127320, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1875820, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqNyLw8qPPjDkFHAtqzpsKxJi7CF5ZXzrr", + "votingAddress": "XqNyLw8qPPjDkFHAtqzpsKxJi7CF5ZXzrr", + "payoutAddress": "Xgr83yWWmCW5wJZqSk1MXQjewNR672CatG", + "pubKeyOperator": "1411d7286bb4da9f96e4f8a8b5fa04c602df92f7176f4c2491e6b0d52c24ed9fafc41ec8dbc5cb8ceefea5208bcd4fab" + } + }, + { + "type": "Regular", + "proTxHash": "6809b0ea4a39bdb585f4eab9dedb7a03d6e3b32894f23891ab613d86fec1258b", + "collateralHash": "4abe576544ba4717540ecc051a93dcd339ede68c9e06a145f558aa8e165decd1", + "collateralIndex": 0, + "collateralAddress": "XptQiWXMtc9CMZqnnNPHTjmHRbk5YVqTTL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.199.124.71:9999", + "registeredHeight": 1032841, + "lastPaidHeight": 2128418, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115965, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfiDoWzwnLhirCjxhYSu43NZwkDGnvp4rp", + "votingAddress": "XfiDoWzwnLhirCjxhYSu43NZwkDGnvp4rp", + "payoutAddress": "Xgr83yWWmCW5wJZqSk1MXQjewNR672CatG", + "pubKeyOperator": "97c24f32399689a22323cb3ae63bd90ac35a9fb3f083f430040004711c9e55575a61f3bce809e7e3d8db0fc7b0b9f0f2" + } + }, + { + "type": "Regular", + "proTxHash": "2ee8c08b5a572ac43be3494220a131da6b8836ea77251dceeb9cd40d6b78edf5", + "collateralHash": "57498db5ee8071b970fc28a1f7d947acd2edb73f22a83d3b8d9331332551bc6e", + "collateralIndex": 1, + "collateralAddress": "XdZ8UPydmHHFKZyzUQaxtAtfe6eRLNznGY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.132.227:9999", + "registeredHeight": 1032912, + "lastPaidHeight": 1595306, + "consecutivePayments": 0, + "PoSePenalty": 4606, + "PoSeRevivedHeight": 1518714, + "PoSeBanHeight": 1597845, + "revocationReason": 0, + "ownerAddress": "XhGqumk3SWYqy8NFEuZes5gTb5thX2cbhL", + "votingAddress": "XhGqumk3SWYqy8NFEuZes5gTb5thX2cbhL", + "payoutAddress": "Xmoh7Swq9hAc72DQbfj28ytcWVHTiLsa2X", + "pubKeyOperator": "19989351bc2b76c112f4fda16dc4f7884693df7be88a5ad8d659404ba71fdbbf4f1716e3bf4cdbe8d7a35c1f79f0de3f" + } + }, + { + "type": "Regular", + "proTxHash": "1cd70c43e622095e5375ccb6720997c31c34c6f8b89a13a5eac0c132f5fda3af", + "collateralHash": "f06931b7043d7f5b996cc28ab4ce8ff25763a0ff8e7e1689756d36fafafda509", + "collateralIndex": 1, + "collateralAddress": "XyRyvKR1JPH9GnbXLZ8gjfaR5Tu9YTzFXP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "147.182.146.51:9999", + "registeredHeight": 1033062, + "lastPaidHeight": 2126213, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1855545, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgnckCQn9ShVDMKiM4w6MtqjZqfyAsUGux", + "votingAddress": "XgnckCQn9ShVDMKiM4w6MtqjZqfyAsUGux", + "payoutAddress": "XyRyvKR1JPH9GnbXLZ8gjfaR5Tu9YTzFXP", + "pubKeyOperator": "9475f1d8d73159c6e2dfff3c10d4d3a5a0c6963845dc8c6ab80deb7ee44183608304b4d4bdc7385dfb5ee48609bd4f1f" + } + }, + { + "type": "Regular", + "proTxHash": "9b255da43c2f0b9f73b449b91765600c8d4e6d05d22f82675fc48abf7596a581", + "collateralHash": "87ad2c221e54fbf8efde522411f5bb8dbac2744e71d5ad2e7c68dd89c9662b23", + "collateralIndex": 1, + "collateralAddress": "XkxNbtTmsaqVndjv7h5E3JPUnerdDMwdfa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.207.85:9999", + "registeredHeight": 1033267, + "lastPaidHeight": 2125878, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1258023, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtEPkE5JHU5gdFaa6YS1Mrtpkx33GoPt3X", + "votingAddress": "Xe3HtyX9EskJ6LQw2z13q28uGEC53Dgu76", + "payoutAddress": "XmoUZCTyMMJAomPaBS3PVL7T5HLksBDgfq", + "pubKeyOperator": "1008b5cc5ca907c6aaa246fcebe7a4634e675ce8f618d24ba120ff5dcd92777808eeef3c977241564cf21e992eb670c7" + } + }, + { + "type": "Regular", + "proTxHash": "25a386e611273364a41426699cce0afc77181d102220149e436a7887fd0a2169", + "collateralHash": "cc5860b4b1456adc1468b1811709177aba592d4454dfb5e4f6847ecce3561eb8", + "collateralIndex": 1, + "collateralAddress": "XmUSA7XH7iY5Nbh7XnjiA3M82mm7DuBGvt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.3.93:9999", + "registeredHeight": 1033301, + "lastPaidHeight": 2126471, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1613925, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xku9owWLodRnPi3XeoDLGXkBH8v9GMMU1R", + "votingAddress": "Xku9owWLodRnPi3XeoDLGXkBH8v9GMMU1R", + "payoutAddress": "XmUSA7XH7iY5Nbh7XnjiA3M82mm7DuBGvt", + "pubKeyOperator": "0d613c7614addad529c356c2da4284bc5214b944571ac1019c0aacd5a62c25b63f65b25797376d83d8a4c63c783f626a" + } + }, + { + "type": "Regular", + "proTxHash": "1562c5201b0e01d652c7f400b11f028086bd5fd64a80c68361ecda9b6038a346", + "collateralHash": "a6315b945f03bf2be588ba24a3ca14a9f529b96b33cc3336ca9104776c6dc4b7", + "collateralIndex": 1, + "collateralAddress": "XyYhpf7c3cccMySJooKfjpfZeCFEH3Hmoq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.245.125:9999", + "registeredHeight": 1033779, + "lastPaidHeight": 1875002, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": 1694799, + "PoSeBanHeight": 1876918, + "revocationReason": 0, + "ownerAddress": "Xs8ZuVTFuPdAGdvBXn3gvKToN2ojB1CfMh", + "votingAddress": "Xs8ZuVTFuPdAGdvBXn3gvKToN2ojB1CfMh", + "payoutAddress": "XcTQCdqyf4N7rPg6fwAJuySTDbAtho21M1", + "pubKeyOperator": "13f341029d4b7d868749e77f8acf5962e1c3efe6994eb4d4999f92fc54a2eef2fd3d21bfc27460d7ffa7033b3506bdbb" + } + }, + { + "type": "Regular", + "proTxHash": "adb282e29e9ff076ad64d0ab0f771a9a72043491eb325f58cf4316ab9056b497", + "collateralHash": "0920fc65617e26791ae25f6e5be3b74442f687ef10c881f3d6ab8d3aa6de84a5", + "collateralIndex": 0, + "collateralAddress": "XdvibkTb9mxG7rwktzud1Q9p5gyzj6fMYN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.6:9999", + "registeredHeight": 1033896, + "lastPaidHeight": 2127926, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1376073, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkJSjLATDMft7z7fPXXS3TFsWpXa8p1mbp", + "votingAddress": "XkJSjLATDMft7z7fPXXS3TFsWpXa8p1mbp", + "payoutAddress": "XyjSuiNpap39RxTsqWGaWewXgiUbnStuNR", + "pubKeyOperator": "10e4d6931b757e4363852dfed588374c4436df06a5c6f91bdafa3ac805adf8ca0ccb1b53ed24ae652273562b9f48911d" + } + }, + { + "type": "Regular", + "proTxHash": "0b281dc2cd8e488b651e80ea6e2db8d2a42e09519c59d36d53e0de75cb57f177", + "collateralHash": "e0c8bdcf31f609e652b9de9d7007237bd050e7c56b7d220a20756e53702e1c42", + "collateralIndex": 1, + "collateralAddress": "XrWPjS32THnfoJsUekm6dAXCvVE6zyXXWd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.134.235:9999", + "registeredHeight": 1033902, + "lastPaidHeight": 2128024, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxyUHcWdh4V8NMbFk8GktPVqmBi3yEJiRy", + "votingAddress": "XxyUHcWdh4V8NMbFk8GktPVqmBi3yEJiRy", + "payoutAddress": "XrWPjS32THnfoJsUekm6dAXCvVE6zyXXWd", + "pubKeyOperator": "93007b4957419ce32723d1d515ded2e9783e845d4e579baee001f503dd4b6e031122ace43ccfc6890cad6170423d57d4" + } + }, + { + "type": "Regular", + "proTxHash": "89eeb928053abab8d69a68ac0483a05678a2548f95a03f75f7ca26170f26e0dd", + "collateralHash": "01cf60421f6d75424efe3cab90a3ea2df5fedb36b40885fd77ea6bcedf2a45a9", + "collateralIndex": 1, + "collateralAddress": "XrQrSfEZ7DoXpN9exrFRuQK9hFeDcmbpZG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.27:9999", + "registeredHeight": 1033902, + "lastPaidHeight": 2126011, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1378058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdPbEVdD2g58zBnexSpm5p1EhfscCfRFZT", + "votingAddress": "XdPbEVdD2g58zBnexSpm5p1EhfscCfRFZT", + "payoutAddress": "Xf52BiosBPjoqVhrcGXrVYarprhZN1qqtN", + "pubKeyOperator": "85ecfdb728604eccb835cdab7773910025d1a9234f8fc0e6d8d7811a2a84136c6370bd92db4c07a6e77aebeed54f7ac5" + } + }, + { + "type": "Regular", + "proTxHash": "579c8bd3368d3e840bd84deee88bea45690f786c83d5e0fd3c2a6bf9b402dc42", + "collateralHash": "78576d685dbe08a93a56ecaf236d48b1818e7d57ade33a514e8dfcf8aec4693b", + "collateralIndex": 1, + "collateralAddress": "Xd7fTPEMfr1Wbvi4E4hsn4aL94m8wqvDRz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.137.10:9999", + "registeredHeight": 1033936, + "lastPaidHeight": 2128042, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbnzf7wGgWCyaEimffdk9KQAcsp1m1jh8i", + "votingAddress": "Xbnzf7wGgWCyaEimffdk9KQAcsp1m1jh8i", + "payoutAddress": "Xd7fTPEMfr1Wbvi4E4hsn4aL94m8wqvDRz", + "pubKeyOperator": "8e63f2eb4a5f457bfa462456e7bd0929e3adaa2c567dd8814a597b4c38e654ea8ced746c78cc1b4782f081f0b3bcb8d1" + } + }, + { + "type": "Regular", + "proTxHash": "a524b4bcd75cb884988feda4231f8d905ba82d6dd474b783eb2d9e379e032cfa", + "collateralHash": "97ecbaa322acb3ce604947822a7ab6296fdfc7505cf4b2622dc5b966243e9bd2", + "collateralIndex": 1, + "collateralAddress": "Xej1yRfh2qC7zKSjXcUGXKsLyq69xa7nHz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "154.16.63.112:9999", + "registeredHeight": 1034075, + "lastPaidHeight": 2126631, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123464, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTYetp4c7DtuD47JQxhsjSqLA8cA9Tiez", + "votingAddress": "XrTYetp4c7DtuD47JQxhsjSqLA8cA9Tiez", + "payoutAddress": "XscuriNMGe3iAnEBHR1ePca2WM3eSNMHHH", + "pubKeyOperator": "11a087c5a1f58d3b8a44fe9c0356d079653fc7fbd27665582810cb3d775bb86f74d08075749090cc7a2916bfc7babfbc" + } + }, + { + "type": "Regular", + "proTxHash": "27844d5fae71957aed890ac1620bd9b0d80bc8c1a78d8272b85246eaea16a98e", + "collateralHash": "cda10eb65d033f8f254a39b40fa13e44506a5b79e0044e08e3e402369daf1218", + "collateralIndex": 1, + "collateralAddress": "XnerXjDTGE9HmzkVhRTnPjYhfFmZ4nwMdw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "154.127.57.63:9999", + "registeredHeight": 1034100, + "lastPaidHeight": 2126629, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123463, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuVMaJ2nkDzJ6vYtThfnTrqdGzf7viQmbk", + "votingAddress": "XuVMaJ2nkDzJ6vYtThfnTrqdGzf7viQmbk", + "payoutAddress": "XscuriNMGe3iAnEBHR1ePca2WM3eSNMHHH", + "pubKeyOperator": "8c3f897ffe8cdf46adcf24e0d839232a83b45909256785002aee9390dfb4520e21e66e73755dabb9a9dcb38da83d550e" + } + }, + { + "type": "Regular", + "proTxHash": "65c4123f4d724d5c606adcf94db5eda06970995f677a6b2dc691a8826cbc3461", + "collateralHash": "48dcec0a94649ea0001410a2f07baf1efc447afba3fd63cc36468abd72cc310c", + "collateralIndex": 0, + "collateralAddress": "XcLJ5TyRuXfjuuybNfKD2fUXnQwe3ZKSyx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.223.154.100:9999", + "registeredHeight": 1034393, + "lastPaidHeight": 1270746, + "consecutivePayments": 0, + "PoSePenalty": 4723, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1274997, + "revocationReason": 0, + "ownerAddress": "Xuvrr2qk1xodHLg4ZNRWcVKQ1pPSp7E1rd", + "votingAddress": "Xuvrr2qk1xodHLg4ZNRWcVKQ1pPSp7E1rd", + "payoutAddress": "XcLJ5TyRuXfjuuybNfKD2fUXnQwe3ZKSyx", + "pubKeyOperator": "8b3982fefc2e7d389eebd968d85f8ff558152a84653519ccd35fa85eccb5b4c97149d6801dd7c9cea998827bbdcc9497" + } + }, + { + "type": "Regular", + "proTxHash": "783504e434997093854a0cbc71f685c44ce77d00b5ed91ee17d15b90c224c092", + "collateralHash": "85ab72b7edca4cd9eac5d50bcfa0df077513187d22438b5bb1c4bb55e73deb2c", + "collateralIndex": 0, + "collateralAddress": "XsssUDJDFhpBuzU7ZQhkEEBVMAJeE8Sbwz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.71.133.190:9999", + "registeredHeight": 1034393, + "lastPaidHeight": 1266216, + "consecutivePayments": 0, + "PoSePenalty": 4711, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1267811, + "revocationReason": 0, + "ownerAddress": "XsukKH9sVh6pJWDLSAfXYkm2sHhME2xdzq", + "votingAddress": "XsukKH9sVh6pJWDLSAfXYkm2sHhME2xdzq", + "payoutAddress": "XsssUDJDFhpBuzU7ZQhkEEBVMAJeE8Sbwz", + "pubKeyOperator": "0797cbc34a47ebf45c6328651de835db1e5cb58721b6f27b752228210227be6d305de7915ccffde924c540c3529950a1" + } + }, + { + "type": "Regular", + "proTxHash": "7017218c756cb3f2d382382eeb9da4ba3d5edd7da7f1e2a8a7c6bc8eab350ce7", + "collateralHash": "c040b936ab9f9aa5c18ae5e4d1fc096a77a1afc59971de3fbf20274629812010", + "collateralIndex": 1, + "collateralAddress": "XgM1cEGffAM6iGwtWmWHZE7MJPzpV6NQ9S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "152.228.173.29:9999", + "registeredHeight": 1034532, + "lastPaidHeight": 2128459, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1762842, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc179D39rfAWwGmTVNq3k3T7nL4jGawmqp", + "votingAddress": "Xc179D39rfAWwGmTVNq3k3T7nL4jGawmqp", + "payoutAddress": "XvWARb9qEnG8QwpSng7zW3AkHf7zHkMPbb", + "pubKeyOperator": "1314ae82003c9e3b94f7b60c94befb7444d1fd9b2a52865d8fef14b5fad27440904d3f9f281240b0d2fdd979353f07d1" + } + }, + { + "type": "Regular", + "proTxHash": "54cf07f00b43a2573d7774dde265b178239cc67de068da003cdfe6facc2f013c", + "collateralHash": "64bf9a14c2bbf0a881a75340459f7e74909fdc1e8d0b7a5dc89907c6f89053dd", + "collateralIndex": 1, + "collateralAddress": "XajJfUomNxhReBfxzcAtDWhS11Hp7db9NX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.36.87:9999", + "registeredHeight": 1034535, + "lastPaidHeight": 2128845, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgQ3dyd3k2ehBQECoZJ6XzpUmwdTW7FHdS", + "votingAddress": "XgQ3dyd3k2ehBQECoZJ6XzpUmwdTW7FHdS", + "payoutAddress": "XajJfUomNxhReBfxzcAtDWhS11Hp7db9NX", + "pubKeyOperator": "995dc0aed6a30b13e5c0e5c238ab7e28759bf1666a8754c50f13286600b8ad872ee5a7f5daebccaea9f81b8e7ee18d7f" + } + }, + { + "type": "Regular", + "proTxHash": "dedc3589dfcece98b6461677c1c3ce4658cc8d370d839ee22484e5c5224b6e5e", + "collateralHash": "62cbd7c2e3b50d8a3af10b2b2350797cc3b7b2b19e571b42a03574bc49c39bdf", + "collateralIndex": 1, + "collateralAddress": "XkSQma7a9dLMQ3FR9ztfazSLARqcyUKjbk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "145.239.90.214:9999", + "registeredHeight": 1034546, + "lastPaidHeight": 2127546, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1765652, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkcsLsje2AsTyBxDW8dB2XmrcVMKWLJz9G", + "votingAddress": "XkcsLsje2AsTyBxDW8dB2XmrcVMKWLJz9G", + "payoutAddress": "XvWARb9qEnG8QwpSng7zW3AkHf7zHkMPbb", + "pubKeyOperator": "0c696645d03d31edf1184227b023e1df7b699bd2206b2f23df6222cff6ec8d454770ba7f518310b5d342618ffb83204c" + } + }, + { + "type": "Regular", + "proTxHash": "118b4d140743448fbc6164734bb2831bd75e1c315ea8bdea379e90844cda2a12", + "collateralHash": "d78be59df71ebbce94f07d593c1f4a9107f9e16d709177693d89d77496d8dfb9", + "collateralIndex": 1, + "collateralAddress": "XkWLgRhWs1npykHb8VnG8satc9a1N8m8LZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.223.139.88:9999", + "registeredHeight": 1034999, + "lastPaidHeight": 2126535, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665674, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoHE6muTLM5VfQvVGkpuzhdYxyhS13vqi7", + "votingAddress": "XoHE6muTLM5VfQvVGkpuzhdYxyhS13vqi7", + "payoutAddress": "XnBYeDGTJZVPoVSs9WxzppUJcxS7BuBLxv", + "pubKeyOperator": "88ccde570a9ea7e025b050f5286aa8291279f0f4b2e2c9e0b1f3d6529ad5e26f18ff1e2a56c6a621fb0fd272f1359d8d" + } + }, + { + "type": "Regular", + "proTxHash": "54d3fc8846edd4f3db916eb4ac2cc7f58e2f0067c9b7befa2fc856cbf2234349", + "collateralHash": "3392de62f84da92c704d7ec4c7081da40106d1ef0b7caea3efcf4bba0a992cb2", + "collateralIndex": 1, + "collateralAddress": "Xvj2kDuw53ZWiSfe6zAAFXKfFDXLskoEkr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.36:9999", + "registeredHeight": 1035165, + "lastPaidHeight": 2126124, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgdTSducJkGyXGft82m1LV8TfUq4v3kp37", + "votingAddress": "XgdTSducJkGyXGft82m1LV8TfUq4v3kp37", + "payoutAddress": "XaiNUnbuKhWPP2nt4rhpXZocKXE41rKr2W", + "pubKeyOperator": "917236f9c9872745f732b2dfc6a9f665774d8b58458a199d9eb7c198aee6bec92f4009a7510267533d6104cb29b7acf4" + } + }, + { + "type": "Regular", + "proTxHash": "113ff81c88decba3dddbec1e5fcb33501fdb2aaec807a8cadc0ea021d5a98a53", + "collateralHash": "912af78f4232c7f80f582a27ab098bd2af4c7bd82bfcebf36f2c5bcfcfdb3d0c", + "collateralIndex": 0, + "collateralAddress": "XuzLAQ5GDuwEAwkBU1AqnYzr4qhLNMeHzj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.221.170:9999", + "registeredHeight": 1035330, + "lastPaidHeight": 2126306, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiRw294EjGkshm5Sm7r4XxjqdJVNN5UsNN", + "votingAddress": "XiRw294EjGkshm5Sm7r4XxjqdJVNN5UsNN", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "10617472da90bc1c3a2792c26740a54c135c4ae12543d6a834f7f1fc1ea02bba5344eeaba1129910081d544fa90195a1" + } + }, + { + "type": "Regular", + "proTxHash": "fd7bb2dbe74b2a35ea783e846e53a848df25fc586c67b2366f17cdfc719dd023", + "collateralHash": "1fc2c851485764766c6b452ee1fa1a5f60d1f7d4a892ec0c68f05713fee9300d", + "collateralIndex": 1, + "collateralAddress": "XsGrfuN1n1WhyxtdaFMWa6Z6LvPu2fPfcf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.98.39:9999", + "registeredHeight": 1036018, + "lastPaidHeight": 2126805, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2100637, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiSbv4bQ2hhHP54wzvKqmFkwHnNkUh5pY6", + "votingAddress": "XiSbv4bQ2hhHP54wzvKqmFkwHnNkUh5pY6", + "payoutAddress": "Xnodok6S9JtzmR8RtQrfQF56tfqgb9vMtZ", + "pubKeyOperator": "0d53038109f4396134dfd5a3a0f0b458d2330ee1068e0a5d46f73e61757ded3534910c29edeb08550f7eb87f09bc02e7" + } + }, + { + "type": "Regular", + "proTxHash": "5c1884fb7b2b01a2fcb4a198f122b93817413bd2d783e56eec6c4e4b246d0bf8", + "collateralHash": "ba93182c74759865a1082c4d34814ce0954fd6ca28e16d0cf52a62ff5be2c155", + "collateralIndex": 1, + "collateralAddress": "Xb8gFQ1ngiDqLiyFFQGGKDCtiRRrmKZ1LB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.59:9999", + "registeredHeight": 1036756, + "lastPaidHeight": 2128241, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976861, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqgFs2vTc4nsPCoZfYy5EcyMwmx7uweBWR", + "votingAddress": "XqgFs2vTc4nsPCoZfYy5EcyMwmx7uweBWR", + "payoutAddress": "Xb8gFQ1ngiDqLiyFFQGGKDCtiRRrmKZ1LB", + "pubKeyOperator": "014c7a2be61cd173fed07b97a75835580cf6f90ac27caa334ab8719ac7a87fd0e0aee6b2a8491a880e68a9c1c562fc20" + } + }, + { + "type": "Regular", + "proTxHash": "a0d852b247159ea6d07805fa5375376d01eed193c88d311c7badbcf6203164d0", + "collateralHash": "5273f016fee9841c6cc4ab039f98ef03b764e5317d8ef7f802a6d7c0dff7091b", + "collateralIndex": 1, + "collateralAddress": "Xfaz2YANj8MqMUJndL2Aj8E8ct4J5nRX8P", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.93.223:9999", + "registeredHeight": 1036756, + "lastPaidHeight": 2128809, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977462, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwnsLzeLJjr5ri81qns2RnjpvRq1b65P89", + "votingAddress": "XwnsLzeLJjr5ri81qns2RnjpvRq1b65P89", + "payoutAddress": "Xfaz2YANj8MqMUJndL2Aj8E8ct4J5nRX8P", + "pubKeyOperator": "0df3ca85bd5ee978c261f0f338ed0e51011ed25ef0f649ed7b6d186df29284251420f8251b97b397245a76adbb9b3aaa" + } + }, + { + "type": "Regular", + "proTxHash": "43081ae8229218ac7b72655f6838cdcc68b8713794eff6f3aadf4603de9aa465", + "collateralHash": "00e72eca98aab035ee316dadedb74ac5f1b8f35daeb3c31ba24d73a1650ae34e", + "collateralIndex": 1, + "collateralAddress": "XwVECnQ1FWBD9WQWXeA1qLR62c4L8whg2D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.102.136:9999", + "registeredHeight": 1036766, + "lastPaidHeight": 2127882, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxQ72AtqKzRmaHF8rNnoqVibSi4iw9xG4G", + "votingAddress": "XxQ72AtqKzRmaHF8rNnoqVibSi4iw9xG4G", + "payoutAddress": "XwVECnQ1FWBD9WQWXeA1qLR62c4L8whg2D", + "pubKeyOperator": "0bc5441807edcdfcd7cb6ce590d25d07cf10b72ff92c3a31e134b852b01afb32d597d667a58e76af7a47febb9c099b7b" + } + }, + { + "type": "Regular", + "proTxHash": "87d2e7cdc63c05833b8ceebd1bc6fdaf3a18f064e6a01c9f2464c5b69a792c1f", + "collateralHash": "b74082b241a2d8f68958ab88d5eb7440bee582c90cd52b8d43cd2e7d68815aeb", + "collateralIndex": 1, + "collateralAddress": "XiSZBREXb21ytK2zPLCPt7pw7Xnyn97fnD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "31.10.97.36:9999", + "registeredHeight": 1037110, + "lastPaidHeight": 2127226, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121082, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgWGRNFu9n27xarpKB5DiTK6F4dAQHh8R5", + "votingAddress": "XgWGRNFu9n27xarpKB5DiTK6F4dAQHh8R5", + "payoutAddress": "XnCijjPKQauy7FvQxLSiNwnF9aQdM7gwXk", + "pubKeyOperator": "027e0ca0abb2cf196ed67893d2f17a1f46e819db294726fe982d99aafd9fe61ee6227fe8786bdab808355164a4f42bf9" + } + }, + { + "type": "Regular", + "proTxHash": "9406164da4a7efea93f6822c67be37f091d36b939c2a2d449a2cb39caea268e4", + "collateralHash": "b65d78784f2f8c29e07eceea746752378ca846be7784a9502a36da818c41fdc0", + "collateralIndex": 0, + "collateralAddress": "XkQSDXPX9wUXNdUi3snEMNPArwUGtNWbdm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.20:9999", + "registeredHeight": 1037672, + "lastPaidHeight": 2126891, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1909782, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfSNJ8cnNkqwnBjbmxbvbqbqiXDXQwamHJ", + "votingAddress": "XfSNJ8cnNkqwnBjbmxbvbqbqiXDXQwamHJ", + "payoutAddress": "XpzzenpuLdGdKy5RLcJUJcvtW3F9STxTTE", + "pubKeyOperator": "917d4210f07d8849807e4f8479e52c02d27cf251807a32fdd806892493dd6b7f6d08131f32632a1ff141ef605d09ed8a" + } + }, + { + "type": "Regular", + "proTxHash": "ceebc16ffe64010034f245ab95f555e059b188ae404d9112865830400e9aaabb", + "collateralHash": "b55de21bb580c1445150a4e9c9ea963ae05c99704d5327c886df567d4487f185", + "collateralIndex": 0, + "collateralAddress": "XxhXFhNq5DDX4xwRu7jB5LHyaciECPkA3t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.213:9999", + "registeredHeight": 1037696, + "lastPaidHeight": 2128793, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxrDzZCDFMukbgyeav5pTfVWgsanWri7eK", + "votingAddress": "XxrDzZCDFMukbgyeav5pTfVWgsanWri7eK", + "payoutAddress": "Xi9x7W13CPTPwpibXPVivi9xorkEwsnxFB", + "pubKeyOperator": "8bc2eeaee64447c4ab172dcbbab711f34db98f8e9b4fc55a7ad4bb5c8521d7ff671d70196392f9192cca96ea7f47f88f" + } + }, + { + "type": "Regular", + "proTxHash": "b6c70cced4618c5541a1f2567e6193fdac24e500e6e86b90e8532f5d34aae3d6", + "collateralHash": "e8786b42ebc0016d111747ea7569ff896919fd3585f79139da821c6ce609eab4", + "collateralIndex": 1, + "collateralAddress": "Xm4B9twh1UAAkFqTRZvQCuLpaLd9puZ8jU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.77:9999", + "registeredHeight": 1037696, + "lastPaidHeight": 2128834, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt1oirCiW7aCcsvHRtmBUtfCVvxWyVX452", + "votingAddress": "Xt1oirCiW7aCcsvHRtmBUtfCVvxWyVX452", + "payoutAddress": "Xi9x7W13CPTPwpibXPVivi9xorkEwsnxFB", + "pubKeyOperator": "8e3dd52a79e74d851ec4a5c3bb602bccbfe0f5030eed89b8407f9b8950bc7b92be3ac506e5ee811ac2b34b26580ecb1b" + } + }, + { + "type": "Regular", + "proTxHash": "0b2b64480db7c23f166a4ee7d2a3badd86b82368ad4f92ef03d5f025e13716f3", + "collateralHash": "28ffa6e9d5e0605620dcda5214728715a366f36b8d75233a0f9c10c4110450d8", + "collateralIndex": 0, + "collateralAddress": "XmisLwDFHQPLAPhAy8mQtDaZiU9Cu5tHyU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.13:9999", + "registeredHeight": 1037696, + "lastPaidHeight": 2128838, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XciaQFb68GiHWfHuDStcAkqSs7j6737oMC", + "votingAddress": "XciaQFb68GiHWfHuDStcAkqSs7j6737oMC", + "payoutAddress": "Xi9x7W13CPTPwpibXPVivi9xorkEwsnxFB", + "pubKeyOperator": "941b04a0e8b19e5994b9414917c176d8f4818dc3169d33c6a6ee6adba091aefed7fbba096012206511f7dd8b38b50a92" + } + }, + { + "type": "Regular", + "proTxHash": "2114709a1e09ed7f3811530569d61bd4a6cb9afdb923dba20097495acb61560b", + "collateralHash": "521becf446818e560e4e0cd94083a4bca78c7b2a4e686cef658873d838b5e357", + "collateralIndex": 0, + "collateralAddress": "XtWoCP1uzHAHLELvdUdiBPSLsC9RLhQ4NP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.216:9999", + "registeredHeight": 1037703, + "lastPaidHeight": 2128839, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnAwLTcJZ1Y11ihiJvYdMHJQypjtnAmu9x", + "votingAddress": "XnAwLTcJZ1Y11ihiJvYdMHJQypjtnAmu9x", + "payoutAddress": "Xi9x7W13CPTPwpibXPVivi9xorkEwsnxFB", + "pubKeyOperator": "966b6fe2cc2bc7d497150c85376d6df0077bc789c692c4bf4cb82f6c92d4a148ff263713eeba0e8a78fb6cbd5f54b85e" + } + }, + { + "type": "Regular", + "proTxHash": "6ce3d52d730f36d98b2489074c7db798eec0da995b04e74d5601d6ab72b51fa8", + "collateralHash": "7fdc7e4144b8f9e73eb366fbbed6e6abe866ee4a37b9333c459b29405d8ca3d8", + "collateralIndex": 1, + "collateralAddress": "Xhv6rraNP7VWv9btHfmUqWb4PzbdbgXGMH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.109:9999", + "registeredHeight": 1037717, + "lastPaidHeight": 2127030, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695538, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvRmZbHtB6LsNk1Am3W8jbpdVDkPN7Gbz5", + "votingAddress": "XvRmZbHtB6LsNk1Am3W8jbpdVDkPN7Gbz5", + "payoutAddress": "Xhv6rraNP7VWv9btHfmUqWb4PzbdbgXGMH", + "pubKeyOperator": "16d199953d53feea6b685455f0d9d6981a78f166ba2fbb4b693f512d54d970c095b44f9a5a04130dd880e48e00b99a9a" + } + }, + { + "type": "Regular", + "proTxHash": "155c88972a99386f50ff6097b7132a76dc34296897c9036f51db361875442d48", + "collateralHash": "ff07d14cfc5cfbe7e499f37f88a8f39e8a248c11eedfca5897965deaeb458a8d", + "collateralIndex": 0, + "collateralAddress": "Xy2VNk5NGNq4U9LzEUqp2qVyvEN6VCf5pi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.223.74:9999", + "registeredHeight": 1037744, + "lastPaidHeight": 1984173, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126827, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqFxzZmeB5cn1nqSw6Qu1V7HceGMxr62TN", + "votingAddress": "XqFxzZmeB5cn1nqSw6Qu1V7HceGMxr62TN", + "payoutAddress": "Xy2VNk5NGNq4U9LzEUqp2qVyvEN6VCf5pi", + "pubKeyOperator": "116555e6c331eaaa8433063e72a156db6abc745a89b366af0ae6e1a737a69127d5e18967d3fba4a72349dd04a0e754bd" + } + }, + { + "type": "Regular", + "proTxHash": "613d41444638879e522735dd60784c365d2adc8ab0104ea99bd13af1e8e78e68", + "collateralHash": "a91872c56bbe3822613783a9cc6168e67933d51d3bbd513b436f4ce52035540a", + "collateralIndex": 0, + "collateralAddress": "XcRHAyJAVTV8Co3svhrW65EJAq3Bq6BWrq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.172.188:9999", + "registeredHeight": 1037750, + "lastPaidHeight": 1985075, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127137, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnhLGBwVZtYDEqEkMykBsbbPJZHgm6DsCT", + "votingAddress": "XnhLGBwVZtYDEqEkMykBsbbPJZHgm6DsCT", + "payoutAddress": "XcRHAyJAVTV8Co3svhrW65EJAq3Bq6BWrq", + "pubKeyOperator": "8ea809bc1e9e662056c8ba667ed50b87c6e5760edb3961673a2a20830c536a79e8ba6ac29484086db49086ec583e11fc" + } + }, + { + "type": "Regular", + "proTxHash": "905ad314f849786ca00f866b5a9db2b88e17e64d1175e7c729e0b83664b5ec45", + "collateralHash": "1c28a4f448238dd331b0352aa10b157f25a83c5c09c24635535f8a0a87eba02d", + "collateralIndex": 0, + "collateralAddress": "XnkcDmcNspZFyJxfTgpyTXMPU5WEFQq6RV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.134.41:9999", + "registeredHeight": 1037755, + "lastPaidHeight": 1981387, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126773, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvc7Py3yFNKGCDbQpDdVNubThCYDesjCpm", + "votingAddress": "Xvc7Py3yFNKGCDbQpDdVNubThCYDesjCpm", + "payoutAddress": "XnkcDmcNspZFyJxfTgpyTXMPU5WEFQq6RV", + "pubKeyOperator": "8f119742ce6c0ee1f7f7b40a9dec2db6ffa42ec0eabfc0adaa2fff298d5284f05abc79ed716697007b1382b78fea1936" + } + }, + { + "type": "Regular", + "proTxHash": "0df1bbe80e534d132b8a1dca6d83889c1f61de4456c336194941e069dab73317", + "collateralHash": "1a2ea01d3db5767e8f537c14f36449f256ebd82874d0619f7b4267c30b2f8ecb", + "collateralIndex": 1, + "collateralAddress": "XiQ1ek1UHaDsaXWyg71uDvP6KgGZWUAEj7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.230.209:9999", + "registeredHeight": 1037765, + "lastPaidHeight": 1966423, + "consecutivePayments": 0, + "PoSePenalty": 4110, + "PoSeRevivedHeight": 1873779, + "PoSeBanHeight": 1968810, + "revocationReason": 0, + "ownerAddress": "XumiCQMah2pv2eaaVYUP59yV9woRmz8gqd", + "votingAddress": "XumiCQMah2pv2eaaVYUP59yV9woRmz8gqd", + "payoutAddress": "XiQ1ek1UHaDsaXWyg71uDvP6KgGZWUAEj7", + "pubKeyOperator": "01f9689156159a0589ee46b12549b81b6d95aa67265d2c6d17f8f08c6ddb1eced316c3762f519bc1caa7007d63a5f619" + } + }, + { + "type": "Regular", + "proTxHash": "42d1794725f9e0656c7c6b4431548d526b9f93e295ae602f703711abf42b06d1", + "collateralHash": "5c6aefe4ad5c228967a05518b3a9328140815f9f259f934cc245065223ff66bf", + "collateralIndex": 0, + "collateralAddress": "Xidi9zByVyY1uvmDJW71B1Y6stxHMCNVWn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.172.195:9999", + "registeredHeight": 1037786, + "lastPaidHeight": 1983714, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127163, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsP7PB7hqtUZfaySyJ6xhS3dFUDT6o856T", + "votingAddress": "XsP7PB7hqtUZfaySyJ6xhS3dFUDT6o856T", + "payoutAddress": "Xidi9zByVyY1uvmDJW71B1Y6stxHMCNVWn", + "pubKeyOperator": "14763d91c47f39661197318786be4ff5cd763617389a1ee7d48f1da197d41f56e85b70dda052ffe43c73e9d469eb721e" + } + }, + { + "type": "Regular", + "proTxHash": "74ab69ef7e1b6b3e81e2be9709b3609b0a70e7b1a9e7804a6c2f9e825b7b2f96", + "collateralHash": "aaf0fda0506da0e73a7c90acf0d3121318446a68785410c67b356322b7096e4f", + "collateralIndex": 0, + "collateralAddress": "XkxX38U5vzgn2SuBk7NmzSx2sZyrXsCxS4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.242.110:9999", + "registeredHeight": 1037789, + "lastPaidHeight": 1984402, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126630, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmUA8TMNxcq7QMpJysbnn2JP2ut1SByAQE", + "votingAddress": "XmUA8TMNxcq7QMpJysbnn2JP2ut1SByAQE", + "payoutAddress": "XkxX38U5vzgn2SuBk7NmzSx2sZyrXsCxS4", + "pubKeyOperator": "01385fe2e2c58eb01c318fef83aacf8b4f7cdbf8df7642ebb24388a54c31b18159ed75aefbf1494334d22491e45f3aec" + } + }, + { + "type": "Regular", + "proTxHash": "646a9c8092fafb881a9bd3097926fdffd0463b464df4b66480082c681947f284", + "collateralHash": "ad7fc5b3b67fc0d8f8fa4cdc2d17be8de5ef4dad6cf5d6321cb5631bd976dc65", + "collateralIndex": 0, + "collateralAddress": "XrXDvQRXAHz8wErHiveWHijLvLqktEqbT3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.211.119.126:9999", + "registeredHeight": 1037794, + "lastPaidHeight": 1980953, + "consecutivePayments": 0, + "PoSePenalty": 4019, + "PoSeRevivedHeight": 1873841, + "PoSeBanHeight": 1982614, + "revocationReason": 0, + "ownerAddress": "XqAysr1cpDmDewTFYr5yM9bJ3kgfh7Wiig", + "votingAddress": "XqAysr1cpDmDewTFYr5yM9bJ3kgfh7Wiig", + "payoutAddress": "XrXDvQRXAHz8wErHiveWHijLvLqktEqbT3", + "pubKeyOperator": "1491de9f4e77a225d735a0d479b7d76c58c3e5f08a33f0fc0565f7823c9d548d1cebffea5139272f70c49f8f8bc1ce2c" + } + }, + { + "type": "Regular", + "proTxHash": "4516a9d4d0d929e780b851c7b5187fccba87f62fda168b2a48ef5259b1bad4fa", + "collateralHash": "d8f55212d4371f00a535e44fd1677caf6a3dee88456c6eb3622d6af51c0abedb", + "collateralIndex": 0, + "collateralAddress": "XrpmW8dgf38YVwDNzx2DVQu7KB5cfcuAza", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.160.29:9999", + "registeredHeight": 1037796, + "lastPaidHeight": 1980045, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127730, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuyQjbXaSpsnQ56KJgHhiWSrEQSqSotLwq", + "votingAddress": "XuyQjbXaSpsnQ56KJgHhiWSrEQSqSotLwq", + "payoutAddress": "XrpmW8dgf38YVwDNzx2DVQu7KB5cfcuAza", + "pubKeyOperator": "8bec6df1f7e038fa64ce2f5f231f31a39710657a0b7e735bffe8c4a56350a8abe5dc019675bdb86af11880bd61641e82" + } + }, + { + "type": "Regular", + "proTxHash": "790c8360bf9bce3ad15d9ed42b424d842d76241f513344d9f7d7108ecc014447", + "collateralHash": "89ebdc5478411b620b85c211d8cf539f8b39bc150c4f191a873a4e8d36cee7b1", + "collateralIndex": 0, + "collateralAddress": "Xw5FPEuCWc9iP2N6e2EBrN6TuiArzEe9S8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.240.135.83:9999", + "registeredHeight": 1037802, + "lastPaidHeight": 2128114, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118839, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbttJAaaAYcJTSqY9fx512agczHDqKehrG", + "votingAddress": "XbttJAaaAYcJTSqY9fx512agczHDqKehrG", + "payoutAddress": "Xw5FPEuCWc9iP2N6e2EBrN6TuiArzEe9S8", + "pubKeyOperator": "033ac9737b62b0bf5f1b424cbca290ab153cf91a1cc1ec62b62c3bef715c71e6ef1d65e3ffb9152d233a40fde1513c3a" + } + }, + { + "type": "Regular", + "proTxHash": "802567c9dce4bd7c710a55cbdf88ee4ed0a3ff3999f665d28a378eca175e8605", + "collateralHash": "16c1b12ea9a11c8eb3d455b87c4fcccf82e7a81842d22db10d6dd16b6222543a", + "collateralIndex": 0, + "collateralAddress": "Xq8xhkaj5ztrEh9Uavj1CX6r9wb7JPCRaE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.219.25:9999", + "registeredHeight": 1037808, + "lastPaidHeight": 2127116, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117954, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbczCFPLohqn1zhnmUX4UYZZQEwdXL4WT5", + "votingAddress": "XbczCFPLohqn1zhnmUX4UYZZQEwdXL4WT5", + "payoutAddress": "Xq8xhkaj5ztrEh9Uavj1CX6r9wb7JPCRaE", + "pubKeyOperator": "885dfb06a6b7021e54f8ceee0c8d903b232f9113857b762e9ea846be256767203abe809463dff90116b7c397f81e1fa3" + } + }, + { + "type": "Regular", + "proTxHash": "4dbb3aeb27e306076516944680a9f7f38e7c889d71deb212be5e0ce79442bd17", + "collateralHash": "7a4fb4113cfd40de019f2165948a52a6aadf9d121587f8fca6fc444ed5c13a90", + "collateralIndex": 0, + "collateralAddress": "XeqVdwzDzgXnUD3ZfZj7ynfGXuJRxrW8TL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.48.49:9999", + "registeredHeight": 1037815, + "lastPaidHeight": 1982146, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126538, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmFbJzsFyLDBfz2nAgvUw6JcmvhTNUKjDJ", + "votingAddress": "XmFbJzsFyLDBfz2nAgvUw6JcmvhTNUKjDJ", + "payoutAddress": "XeqVdwzDzgXnUD3ZfZj7ynfGXuJRxrW8TL", + "pubKeyOperator": "96a3da1d9fbc05293e475a5195d263b13666374ddd42eaf69627cf31a50d20dd418faaeeb3fe2d16fe1a985318ad6697" + } + }, + { + "type": "Regular", + "proTxHash": "f567f207b0ce27c57ef85315e9c7151d4d1181a2f6332ebfaf2024db9ebe5639", + "collateralHash": "1c95f5a29f2f61c814a313a88c3b78e54be2ad2a53f4dadbddf5af28447ec09c", + "collateralIndex": 0, + "collateralAddress": "XhNBhm9XZ89GysYeHnYXXB3GRDVk6V55FW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.85:9999", + "registeredHeight": 1037815, + "lastPaidHeight": 2127254, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyD8DNCeudNyugtskLpBSJN9zz2kKVBksU", + "votingAddress": "XyD8DNCeudNyugtskLpBSJN9zz2kKVBksU", + "payoutAddress": "XrxYXj6P1C4PH1KDUYSKTPqLkzg7gJ4iLV", + "pubKeyOperator": "116eebf165e1ec36c828437bea04152c1875deca27f0af2e81cce25d178b7d523f29545875cfaadbf768853385d07639" + } + }, + { + "type": "Regular", + "proTxHash": "60a4739609beff65cb713ad222ac6b117801b3616c858cba40d3b44d124c314a", + "collateralHash": "c8acbdc72e3d8b59423639470b482339f4a15ae78562e36c0e8f39321f05ea5a", + "collateralIndex": 0, + "collateralAddress": "XaxQXAqesqQQ5N6tyzmqwiZB3EdEG4Z8P8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.47:9999", + "registeredHeight": 1037817, + "lastPaidHeight": 2128880, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiLvsU4BYunga1inKeawaLQMoUdXcCjyxw", + "votingAddress": "XiLvsU4BYunga1inKeawaLQMoUdXcCjyxw", + "payoutAddress": "XmDiYF563DuLjuEX2o53a3vX4gijenYSPn", + "pubKeyOperator": "9848f22fe0a090f83683ff6983dca9d10a73e27223d5d5f9964e5118f6ad0230af889508198d7bd65e3cbd1597e2a88b" + } + }, + { + "type": "Regular", + "proTxHash": "193603f5b2fedf340883110202514b8f4434194806802c8a151a188af46da9c0", + "collateralHash": "6252425c2ce9a6063942543d155603dc7ca6c124dbfc866905ebdf379b489833", + "collateralIndex": 0, + "collateralAddress": "XyU67JNARY9DT2B34WDKSFn2ChHYS753TY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.254.160:9999", + "registeredHeight": 1037821, + "lastPaidHeight": 1980844, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126783, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsFJQCq1u59pEYAK8Fa6LDbKBAZbwawQCQ", + "votingAddress": "XsFJQCq1u59pEYAK8Fa6LDbKBAZbwawQCQ", + "payoutAddress": "XyU67JNARY9DT2B34WDKSFn2ChHYS753TY", + "pubKeyOperator": "16ba343e2e3e9f7eff03451252d669fb8022c32011d7825509a8bcbfc15246e75a12fc41d36be143008c6be2ec3689c0" + } + }, + { + "type": "Regular", + "proTxHash": "29a647921e1be4ef93794e977e46022bdcc4fcf039076b1230725df6af10dd1f", + "collateralHash": "948daf77ba3c5ce2ed6fd3c460c8db9f6f9e4a049fe5de9f68bd447b9f65fd04", + "collateralIndex": 0, + "collateralAddress": "XfjFv1q5VFZwzDQNY4BgFnbmtxU4JgbymN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.120.125:9999", + "registeredHeight": 1037827, + "lastPaidHeight": 2127490, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118300, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmZFBHqscseyAsiH9P7bWNbei7niB3MH9e", + "votingAddress": "XmZFBHqscseyAsiH9P7bWNbei7niB3MH9e", + "payoutAddress": "XfjFv1q5VFZwzDQNY4BgFnbmtxU4JgbymN", + "pubKeyOperator": "04ce9678f43158ec2b2a033cef694f6fd952e945b87ab9b456348c50f479ef8f6517f3ebe200064bb45975249f5d80d3" + } + }, + { + "type": "Regular", + "proTxHash": "db34356f10d01c81dca0cefa9a580cb2aee454ac3d1e38da99ecaa8999cf131c", + "collateralHash": "4ebafba48732042cadcddb2a2b3daaebadbdd4bbde8f96332b8b287242df8692", + "collateralIndex": 0, + "collateralAddress": "Xjvh5hH9T2VZuByuA3qMV2CFp8Swbx5T5f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.136.66:9999", + "registeredHeight": 1037855, + "lastPaidHeight": 1973324, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126631, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbWjNqFCeET9tP4VFyKeQLow5rvEFT3rii", + "votingAddress": "XbWjNqFCeET9tP4VFyKeQLow5rvEFT3rii", + "payoutAddress": "Xjvh5hH9T2VZuByuA3qMV2CFp8Swbx5T5f", + "pubKeyOperator": "0f60df6e188e15f35fee974f8c24fba8ccb743738d3c948e6a9b45dae4fb15e6ec3d9864ba80b9ee54be10bc749e43ec" + } + }, + { + "type": "Regular", + "proTxHash": "adfc4f530097b9e641618416a9d7b2cb84b8d058c0624960d1fb6bea3e3394df", + "collateralHash": "c9fe746055107db3959d3000f01526f54ac027707d4073e78b3e9c0d822e23cd", + "collateralIndex": 0, + "collateralAddress": "Xtr1N6coqTXTKRTpxALjixNpCVvxvdjs8g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.228.88:9999", + "registeredHeight": 1037866, + "lastPaidHeight": 2127548, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118364, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgBGiPDC6a7rvMACkT2iQrVFwd8VhXLDBq", + "votingAddress": "XgBGiPDC6a7rvMACkT2iQrVFwd8VhXLDBq", + "payoutAddress": "Xtr1N6coqTXTKRTpxALjixNpCVvxvdjs8g", + "pubKeyOperator": "9019df7c4b31fbe3f1d898cb92cc7685b666987de8593a8469936934cddcc71e5af5d89f499d26cd221052631bed803c" + } + }, + { + "type": "Regular", + "proTxHash": "569e774b04a47e5eef895359692d9a59d8765fe4425c3f2aa58c9bdb36e0c7eb", + "collateralHash": "2edd853a2a02f2dd68c4e49407bac8bce97c7cf8376eae9c6c1013f49e0db964", + "collateralIndex": 0, + "collateralAddress": "XcwhSPP2Zn5TeF6WKM3JhxtjaJpn3iq8qp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.205.212:9999", + "registeredHeight": 1037878, + "lastPaidHeight": 1978596, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126884, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcShPvMGiiySkkWgXAaStrfPLrq2rZUejk", + "votingAddress": "XcShPvMGiiySkkWgXAaStrfPLrq2rZUejk", + "payoutAddress": "XcwhSPP2Zn5TeF6WKM3JhxtjaJpn3iq8qp", + "pubKeyOperator": "8e808d14dda46be0f918e58e1785d935dd03b0273b0bb9dcb4ca21b9b9e76f0ddde2110f45863873a48e8fddba9fe5c4" + } + }, + { + "type": "Regular", + "proTxHash": "5d2f8a542829fd7a77fdbfcf13fdd642b4c92ce7e0cf2fa99b4b42f9e1d80fdd", + "collateralHash": "379bd6ad03a8951383e192ce39004ea1554bba7097ca7e9b6d1dc8c3ed575d03", + "collateralIndex": 0, + "collateralAddress": "Xhz6UGmvdgTZnXYMNt2vD9GcesCDXPsycs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.196.182:9999", + "registeredHeight": 1037893, + "lastPaidHeight": 1965627, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126617, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr1TzmfYcRZ8GewnxkaNYbYZtB39ZAYYym", + "votingAddress": "Xr1TzmfYcRZ8GewnxkaNYbYZtB39ZAYYym", + "payoutAddress": "Xhz6UGmvdgTZnXYMNt2vD9GcesCDXPsycs", + "pubKeyOperator": "07f43a2b4a42a476de6173552247f14813a8f1a040f9565fd305d7e1329af6a7e4147d188cacac518025cda1d683c176" + } + }, + { + "type": "Regular", + "proTxHash": "df7e24b96123ad9213e290eddea3b7c8496fdd3473150c730b2e60ecee72724f", + "collateralHash": "95792d25fb9e3a6daf9aff27fddb297f19d59bf0e6a19c18885b6ddd9d213102", + "collateralIndex": 0, + "collateralAddress": "Xd7m6J1PAqw4X9PAeGHz69hKpYHuT7cdtt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.13.222:9999", + "registeredHeight": 1037926, + "lastPaidHeight": 1984763, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126848, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyWYbBtyixKJWMDutYxzQNY9D6VGxa6Joa", + "votingAddress": "XyWYbBtyixKJWMDutYxzQNY9D6VGxa6Joa", + "payoutAddress": "Xd7m6J1PAqw4X9PAeGHz69hKpYHuT7cdtt", + "pubKeyOperator": "83d28d667a3c25b02c85002103d1ea4b414722fecc8ba0c7096a032c2b2b967b8a364a93edf2ac987a00c816b735d469" + } + }, + { + "type": "Regular", + "proTxHash": "a872f1c32573dadb931e579c3c6d94edca7df819277ca162db3a7e7814255b21", + "collateralHash": "1d75d596f054e59edce4f3f4fff30adc174d98ff3b9e32a6c2272400790f6528", + "collateralIndex": 1, + "collateralAddress": "XiEF9Wh7AEFmBFSSBjmhax6owrQAbXD5ns", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.131.124:9999", + "registeredHeight": 1037933, + "lastPaidHeight": 1979620, + "consecutivePayments": 0, + "PoSePenalty": 4006, + "PoSeRevivedHeight": 1879258, + "PoSeBanHeight": 1983210, + "revocationReason": 0, + "ownerAddress": "XtpXMhFqTEJCyuUHVV2mqw987ugyTrLWRs", + "votingAddress": "XtpXMhFqTEJCyuUHVV2mqw987ugyTrLWRs", + "payoutAddress": "XiEF9Wh7AEFmBFSSBjmhax6owrQAbXD5ns", + "pubKeyOperator": "0f088e81ec98c75ca12f89b0ed55b3c864a16766624e3d2881771bd1874a6bf53d6b5c62612f9897fa7df4768b5e3e59" + } + }, + { + "type": "Regular", + "proTxHash": "43fdb5f9bfde7117b9f0ebf568fb915c22189d7704d3e0a2dbdab661efa58480", + "collateralHash": "ad4c20765fc5d0ae32fc4c55d435a2523fce9c15ea28faafc610d930362c5ac9", + "collateralIndex": 0, + "collateralAddress": "XsL6WyjdNfCycdV7rtKiL46Qi344h1ZnuA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.240.132.231:9999", + "registeredHeight": 1037955, + "lastPaidHeight": 1980464, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127114, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiwaNAkNeJExPs7fgzXx56uch5rVAXJ1iP", + "votingAddress": "XiwaNAkNeJExPs7fgzXx56uch5rVAXJ1iP", + "payoutAddress": "XsL6WyjdNfCycdV7rtKiL46Qi344h1ZnuA", + "pubKeyOperator": "0dcbe6d96872279cc7b4b186eb39b9dc5c2dbf948eacb5a8c9aaf40d2365e5e4bc280b3b8b66624b8fd0ee4b4d7f930a" + } + }, + { + "type": "Regular", + "proTxHash": "55cd6d8398523775c03187f47baaee5d84567844ec1f5a9ceeacac01a420f959", + "collateralHash": "61e5bdeb34e1cb060b94ba1e4c3fa04a07eaf099bb09ddbff8a014cffa488cc7", + "collateralIndex": 0, + "collateralAddress": "XbCWFTaHAthaaFCeVC2g6oLxRBpurhoyTQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.210.144:9999", + "registeredHeight": 1037961, + "lastPaidHeight": 1980066, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128193, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvMqHFyXk6iaafQ1oCv9CB7VN81nXo8z3o", + "votingAddress": "XvMqHFyXk6iaafQ1oCv9CB7VN81nXo8z3o", + "payoutAddress": "XbCWFTaHAthaaFCeVC2g6oLxRBpurhoyTQ", + "pubKeyOperator": "92d74457102672384dfddc8917d80af492ac5de5e61faab182921113e61f1b84cdc88d311c522dd3ea631b3d4ca66fd2" + } + }, + { + "type": "Regular", + "proTxHash": "59e7eabfed48907490b7568a5849833e9c79e2886f0aeaf660aa76bda93aa3a9", + "collateralHash": "d421c8b597b671bf836f5b6cddcce732779f187d4fddc48cd783982591f01351", + "collateralIndex": 0, + "collateralAddress": "XpwJKn9k7QRHPPBfXY42UCnRzAHgSkcW7a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.172.197:9999", + "registeredHeight": 1037967, + "lastPaidHeight": 1984883, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127187, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcvYdSRn5ZFwMtCKwiygc2LBnUFH5h2L27", + "votingAddress": "XcvYdSRn5ZFwMtCKwiygc2LBnUFH5h2L27", + "payoutAddress": "XpwJKn9k7QRHPPBfXY42UCnRzAHgSkcW7a", + "pubKeyOperator": "86c83c6f3f2295e4e323ff6898e79cc25e9879dced23fe8cb17d94b3ff79c8cbe814dcaa111e7158122db5aa0b8a094b" + } + }, + { + "type": "Regular", + "proTxHash": "ab282009325a06c60b2230fe929d5135f0db7d875d0a910cc52531b6e37b43ee", + "collateralHash": "581e94ad25daeb3ab810180af4b885459d21989c56ce502d709aa75ca0d9e736", + "collateralIndex": 0, + "collateralAddress": "XswuVZWNVKiWrpQ2tS5j6eGLJY7JhCvUgD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.107.192.166:9999", + "registeredHeight": 1037972, + "lastPaidHeight": 1984494, + "consecutivePayments": 0, + "PoSePenalty": 3816, + "PoSeRevivedHeight": 2053448, + "PoSeBanHeight": 2054634, + "revocationReason": 0, + "ownerAddress": "XnXj7oRGfSzRRacgoze3zrJHsH79rUmSSf", + "votingAddress": "XnXj7oRGfSzRRacgoze3zrJHsH79rUmSSf", + "payoutAddress": "XswuVZWNVKiWrpQ2tS5j6eGLJY7JhCvUgD", + "pubKeyOperator": "968c94c346b0f3d9a09ffb6638d0e0dc13ece73e909a442454f513686912ef6dc818e87383e70db190bd67949481eff9" + } + }, + { + "type": "Regular", + "proTxHash": "3dc80e8703813b9cd7b9a138b15c528bf8c972b9751cdbc65dec0d0d2231e253", + "collateralHash": "c4c1ac2389ad8ab911fd25c95608fb95f5567dad82cead39cc3a4ddf805635f5", + "collateralIndex": 0, + "collateralAddress": "Xhoh45s52HQK8mRzM8xqtwATou1yzmbufR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.58:9999", + "registeredHeight": 1037984, + "lastPaidHeight": 1980573, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127371, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSYi8D9hVXFnaGfzFrdtVyrpBTCpowBmT", + "votingAddress": "XrSYi8D9hVXFnaGfzFrdtVyrpBTCpowBmT", + "payoutAddress": "Xhoh45s52HQK8mRzM8xqtwATou1yzmbufR", + "pubKeyOperator": "05ec321a51ebee928fbdb79f4b79ecff9b5a492f397bfe4daacb4ac60461013865d1009f8fcd1aeab49adc93c49516cf" + } + }, + { + "type": "Regular", + "proTxHash": "5c1dc0cf442156e8f8ee01a826fa6eb082a167c9efe94735ab3a22d8ffa581ce", + "collateralHash": "133c6c848081817d92c493e41de8e186a45b5211f3cd15d5c69b7073099bac9f", + "collateralIndex": 0, + "collateralAddress": "Xu8avjMLNosVjHs15gmkises9JpAz1VsxE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.76.23:9999", + "registeredHeight": 1038004, + "lastPaidHeight": 2126956, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117807, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxuizofNKjSvGs7viZmWM1WvfnCT6hmD9f", + "votingAddress": "XxuizofNKjSvGs7viZmWM1WvfnCT6hmD9f", + "payoutAddress": "Xu8avjMLNosVjHs15gmkises9JpAz1VsxE", + "pubKeyOperator": "99d92edca932191dd3cdb966d3b9a78c8ade5b7e5a50dc3cdf9ecb57d2a5941a749c7ff25f8bd6d3d69a5bbc2e9d357f" + } + }, + { + "type": "Regular", + "proTxHash": "5ea2495cfd60c240aebe8645a7e8ccee5fa79611590917c820f3b9851e3e883d", + "collateralHash": "4817859796d786201ab77bbf4b8c993c86402c2c82c64efc0ada1ef2b41fd2b6", + "collateralIndex": 0, + "collateralAddress": "XbLQ2WUzo1rZ2cM9gQ76GzXFb9tPRUj4qZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.21.42:9999", + "registeredHeight": 1038020, + "lastPaidHeight": 1982818, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126884, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpqTZgGvG5sqPBw55thFapgsTg1u4vySe5", + "votingAddress": "XpqTZgGvG5sqPBw55thFapgsTg1u4vySe5", + "payoutAddress": "XbLQ2WUzo1rZ2cM9gQ76GzXFb9tPRUj4qZ", + "pubKeyOperator": "97ffacf1baf25eddaa9266957870f5109753272f6b34a5e768de869af76f21fb158920eb70fab0514e684ae19123b856" + } + }, + { + "type": "Regular", + "proTxHash": "256e97575cb77fc5be4f1d9c862a6fb4607ca12a8a94c8a5d83f175f4d9b20dd", + "collateralHash": "ba306ab4cdf33e3bb37116233f5a73315a7ca518c1331faef34fa264cac5ad13", + "collateralIndex": 0, + "collateralAddress": "XbSN9jnap9e2rBwrDmbNTtQnqZwCMs2p4M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.196.35:9999", + "registeredHeight": 1038027, + "lastPaidHeight": 1987509, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126657, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhWdbPoSauF62tCmoSqVWSncPhmNAgLSMa", + "votingAddress": "XhWdbPoSauF62tCmoSqVWSncPhmNAgLSMa", + "payoutAddress": "XbSN9jnap9e2rBwrDmbNTtQnqZwCMs2p4M", + "pubKeyOperator": "922d0d3d98e321f23e726f219da0e1f401c899a87434d068822134e0dedbff40146bb7320f313d8fe2a2158304d41479" + } + }, + { + "type": "Regular", + "proTxHash": "c7f1c2fd8bca7eaca03f4f0e295d5f45bc0d592b0311d89df878802cbece4a23", + "collateralHash": "5444ac6d79da82c60473e714cf9b7a2552046651b0730180af0bd1326997dcd2", + "collateralIndex": 0, + "collateralAddress": "XsWomG7RdyuJxyQZSSu2LSmUNWaw644dp6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.165.78:9999", + "registeredHeight": 1038050, + "lastPaidHeight": 2127495, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118306, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgbg6snfr3MAHxEmFPZs5P5sP5uRQqQcRM", + "votingAddress": "Xgbg6snfr3MAHxEmFPZs5P5sP5uRQqQcRM", + "payoutAddress": "XsWomG7RdyuJxyQZSSu2LSmUNWaw644dp6", + "pubKeyOperator": "95c0145b9ed64de16520be36e899de2d5451e308a63fccd1bef0f92deb93109dff6681fb5733da1c82dcc0d640faac84" + } + }, + { + "type": "Regular", + "proTxHash": "4de8f90b8fb0d6d90685a6c1402134962c559c75c91361c6cb53cfb7e4ed12e0", + "collateralHash": "f7729766eae9b8bc020f52acb5c75d111ed1b7de336cd5702b10a7c28edc64d4", + "collateralIndex": 0, + "collateralAddress": "XhvCfmzj7hgm6cRhRncKt2o8wMTwUyD4ys", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.60.137:9999", + "registeredHeight": 1038056, + "lastPaidHeight": 1980702, + "consecutivePayments": 0, + "PoSePenalty": 4018, + "PoSeRevivedHeight": 1386139, + "PoSeBanHeight": 1981770, + "revocationReason": 0, + "ownerAddress": "XedGTY2tNN6XTip3gfVcaPnxhPVWba5HTG", + "votingAddress": "XedGTY2tNN6XTip3gfVcaPnxhPVWba5HTG", + "payoutAddress": "XhvCfmzj7hgm6cRhRncKt2o8wMTwUyD4ys", + "pubKeyOperator": "90213c1d2da13cdd6ae6c0366cec94897091e50d951720ba21ecc6a07e021171326186ccf8d12c7621c0e7c8e56ddd25" + } + }, + { + "type": "Regular", + "proTxHash": "f3c79412fddf10a9e6fe3b9471098ee24b8ffcf3bd2bed336e58ed833fa82378", + "collateralHash": "bc9bb98d5d8ca6c5a2ceab528cf6bca93037b8b41b58629ab8ddbfdc38149a61", + "collateralIndex": 0, + "collateralAddress": "XuQFX4kuNkPhn2ztMbQy4usgpY7nDNWemf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.7.146:9999", + "registeredHeight": 1038067, + "lastPaidHeight": 2127488, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118298, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvpJ6GicXoPZesq8mBTyGhsfrWkX5SUZx8", + "votingAddress": "XvpJ6GicXoPZesq8mBTyGhsfrWkX5SUZx8", + "payoutAddress": "XuQFX4kuNkPhn2ztMbQy4usgpY7nDNWemf", + "pubKeyOperator": "949176a302960e4b71cdc8e661b9f1c5336fc8c9e9937cc8a1b1a10a55056408f6cfa346ba88a11a26ec9ecbdca592e5" + } + }, + { + "type": "Regular", + "proTxHash": "2f2883e916ce4ec52f1e04c7d103659a923bb7774b4c77145c541a9b02b6850b", + "collateralHash": "5ad21895bb7afc84fa5cf6d10c4606f1a27e032eac546a9f8e18b56a9444b55b", + "collateralIndex": 0, + "collateralAddress": "XpAoi5kpgyWhSJWb1Jc5Jo1j1CxycsPhDG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.59.230:9999", + "registeredHeight": 1038077, + "lastPaidHeight": 2126139, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120076, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcRCuGRAYqn1dL1vHCNpid4i15fZqVvQzs", + "votingAddress": "XcRCuGRAYqn1dL1vHCNpid4i15fZqVvQzs", + "payoutAddress": "XpAoi5kpgyWhSJWb1Jc5Jo1j1CxycsPhDG", + "pubKeyOperator": "8320ea89f6698d5b6bd988cc8d36d36622bd1b697f412f21dc41d2d319115aa2f56ff1f6c1f1a052b5935664511bd0e4" + } + }, + { + "type": "Regular", + "proTxHash": "ef6e4b43501deef6dc60451d42439795721bbdf7341543514a12c8ed1177e765", + "collateralHash": "e9e70a040c754af24694cd1882a3a32a4519e3953abdc3ccc6277384efacaae4", + "collateralIndex": 0, + "collateralAddress": "XeEQEkAZ2XDzd2Ny2cj6iejAAPerad3CZd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.194.154:9999", + "registeredHeight": 1038092, + "lastPaidHeight": 1971342, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126841, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnh7TKKjBpC8Y2kbw2Q3HtyuajiY2rgnxA", + "votingAddress": "Xnh7TKKjBpC8Y2kbw2Q3HtyuajiY2rgnxA", + "payoutAddress": "XeEQEkAZ2XDzd2Ny2cj6iejAAPerad3CZd", + "pubKeyOperator": "90bceff9d9fb7a1bba76750a97c02a3ceaf54626252d95ed172023c5810b6a4c1817c0341d6787ebba1957f1ac2225ea" + } + }, + { + "type": "Regular", + "proTxHash": "85981fbc23be98b871d9baba36433de0960314d0a6c8701863ea98a1a6a3ab4d", + "collateralHash": "6348bdf845daad446a532ed21b7d15539e4023de87bdbb14bc540f3f6f371fc3", + "collateralIndex": 0, + "collateralAddress": "Xv8vf7eSrjv6gtfQchpL4kvqNgJyuAWVvG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.5.202:9999", + "registeredHeight": 1038099, + "lastPaidHeight": 1966375, + "consecutivePayments": 0, + "PoSePenalty": 4105, + "PoSeRevivedHeight": 1734001, + "PoSeBanHeight": 1969386, + "revocationReason": 0, + "ownerAddress": "XxmdVgLtRwxWafpmPJdZLxwEgQBWF15nQQ", + "votingAddress": "XxmdVgLtRwxWafpmPJdZLxwEgQBWF15nQQ", + "payoutAddress": "Xv8vf7eSrjv6gtfQchpL4kvqNgJyuAWVvG", + "pubKeyOperator": "0948346a4e6f6bd810ba461a820546234eca6ff321026d100549da1d83cdb323ad11f657d7cead22259d92d8d5221088" + } + }, + { + "type": "Regular", + "proTxHash": "6ceccf35f53a368e2f2b251554b489856d90911030f9b956c08fa3a4490306fe", + "collateralHash": "645fabe12fd095ec5d196eaad5df15ac661cdc8daae075d6e45e2fdead13b3d2", + "collateralIndex": 0, + "collateralAddress": "XjEvrQPzituGoPwVxdy8vc33ZTFqhSrYgF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.143.9:9999", + "registeredHeight": 1038123, + "lastPaidHeight": 1984962, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126672, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdtQozY6Z3VYXYRgFoUDDmGftEy2gzaV7L", + "votingAddress": "XdtQozY6Z3VYXYRgFoUDDmGftEy2gzaV7L", + "payoutAddress": "XjEvrQPzituGoPwVxdy8vc33ZTFqhSrYgF", + "pubKeyOperator": "126e7b3b2ab146ef271e53faaaedccdcbc84ef145e8e35b39d8c1f32db6833e1734df89604bd99bdec5825ab5bf10dbe" + } + }, + { + "type": "Regular", + "proTxHash": "e4ed22c489272d28714ad3551f10be2ed26930ea032480825ec11f844e66a37e", + "collateralHash": "54a057c8592c2d0e31e96007526a2e64d3120df912e948694caa4076769f36e1", + "collateralIndex": 0, + "collateralAddress": "Xb7wK3Sg3hJ9oCrKVABd4gtqCTNudXYUja", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.161.128:9999", + "registeredHeight": 1038132, + "lastPaidHeight": 2127515, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118332, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xszcm5rXoqw6ozcEu1ZVUoEiHdQF9qiFE1", + "votingAddress": "Xszcm5rXoqw6ozcEu1ZVUoEiHdQF9qiFE1", + "payoutAddress": "Xb7wK3Sg3hJ9oCrKVABd4gtqCTNudXYUja", + "pubKeyOperator": "119086d0021daac6851edd6276eea8ceeac0ddaf6b11a284908f644879449de906ee2cf37d50757047b67919f8f95ab7" + } + }, + { + "type": "Regular", + "proTxHash": "f138cb8db63a293817b3242ed797d4dcfe10229ab8054f4a386ad8a7f8d74a8b", + "collateralHash": "35191e0591a2aa89b8d42469cd2f3ceb1741e3f3a4b69ebaf0bed3c10f95d0ce", + "collateralIndex": 0, + "collateralAddress": "XqWYb9yiM53pdYXp449bYwoHkQTHMCqNkQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.201.140:9999", + "registeredHeight": 1038155, + "lastPaidHeight": 1984038, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126628, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbVQLfoLU3EW8uLbnJjw6HXtqoBdrPMMa8", + "votingAddress": "XbVQLfoLU3EW8uLbnJjw6HXtqoBdrPMMa8", + "payoutAddress": "XqWYb9yiM53pdYXp449bYwoHkQTHMCqNkQ", + "pubKeyOperator": "96996dfcd70b7d48bea5a0a0bb0278b1a2854a9bb7b987e729ec76d7efdb120698701be2d9c16e9a961fbdf4ff42bc84" + } + }, + { + "type": "Regular", + "proTxHash": "801aca37b65aee7bcdfd9fb7f06da6d57a8aa72e8c2cf7b5eaecd3bc1234b428", + "collateralHash": "4a9c2a7d50b3b4594924e8fe53067c9d3a16651077ec9180c31e24b0d23e2496", + "collateralIndex": 0, + "collateralAddress": "XnDaqD8Afq6kAbFyjrsBsPc5g21gvbdNJd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.236.114:9999", + "registeredHeight": 1038165, + "lastPaidHeight": 1978529, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126858, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo5nwCiYMwCejN7Ucg7bx1KePDrh5D1P5D", + "votingAddress": "Xo5nwCiYMwCejN7Ucg7bx1KePDrh5D1P5D", + "payoutAddress": "XnDaqD8Afq6kAbFyjrsBsPc5g21gvbdNJd", + "pubKeyOperator": "9872e8bb61bba997d32cfa81934d442f2de0e9645fbc6d4d90f0632cd33c719901ec6e6d64d7109d3b3491c3b0689199" + } + }, + { + "type": "Regular", + "proTxHash": "43bd79e698d0784d42dd657fa9f8946abb220732fd3489ec678aa952db63e8a3", + "collateralHash": "de4b5058932f19f2027157281942590db15dc84532ed1b5a670d5081c89c859c", + "collateralIndex": 0, + "collateralAddress": "XnRts9gGqhArdG7xW86YvyLAGgpWDyceYN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.128.168:9999", + "registeredHeight": 1038182, + "lastPaidHeight": 1966176, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128027, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XewhUa3mw6yF959sKM61qo435uFFwPVvD2", + "votingAddress": "XewhUa3mw6yF959sKM61qo435uFFwPVvD2", + "payoutAddress": "XnRts9gGqhArdG7xW86YvyLAGgpWDyceYN", + "pubKeyOperator": "8d11a9f2bf786af55a9b47739df97293cf9a17fa7de2810b2aacf75a07241f9136e6eef9c21af52892fb7bffb35eada5" + } + }, + { + "type": "Regular", + "proTxHash": "7bb6b567236e0aae061431c28883de777752876a9ab9af02b4a8632df734c726", + "collateralHash": "72c936a60e0c3f8441cc104d8064934344adafaaebdcd4113e01df4e7f3a641c", + "collateralIndex": 0, + "collateralAddress": "XysrKjgnVXtrbgZfLsLYqSxQMXF6TXEGz2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.157.166:9999", + "registeredHeight": 1038187, + "lastPaidHeight": 1984157, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126508, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgRsks3ZMd4kUuQwRXkA6W5SKxM9JG39hS", + "votingAddress": "XgRsks3ZMd4kUuQwRXkA6W5SKxM9JG39hS", + "payoutAddress": "XysrKjgnVXtrbgZfLsLYqSxQMXF6TXEGz2", + "pubKeyOperator": "93b5cf532924f0a4693b4552770ca20e73fd8eac1e6ca1e410297dbb298920b297a3ba24adfd0370258b4598affbe7bf" + } + }, + { + "type": "Regular", + "proTxHash": "9cf7d6b1d314c6fb05ee09e0e23f64ce753ea079d16c57d0ccd462cd6a3fd347", + "collateralHash": "4df79d9ee27c7c4346c9ef3f1aaa53873de549d0dd15fafcbb04cfa6468d1b73", + "collateralIndex": 0, + "collateralAddress": "XwE18vtxj8N8B38Zq7vEyi1yBJyoGhtk1d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.134.62:9999", + "registeredHeight": 1038188, + "lastPaidHeight": 1984455, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126783, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhMtYFLbGZVXKJWgbF6PfPXpmjgDoEs96f", + "votingAddress": "XhMtYFLbGZVXKJWgbF6PfPXpmjgDoEs96f", + "payoutAddress": "XwE18vtxj8N8B38Zq7vEyi1yBJyoGhtk1d", + "pubKeyOperator": "88d1143861eefb3c6edabe2933e1af5356fe6f8cb63e9f92b42b676a72652d4c6e889079b8a7a3b83bd54afb5967779c" + } + }, + { + "type": "Regular", + "proTxHash": "8adb9ad3f4e32c60ebf97f0755fbaf46514d47b061307853c8df80a480097b72", + "collateralHash": "a49ffd0f1bb9bfc16005b0c68d79898ee824906602b1254f2ddac710c73873b0", + "collateralIndex": 1, + "collateralAddress": "XfUUTR4vtAJCKnoAponZ4dAn7w8zhV3KUb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.196.1.10:9999", + "registeredHeight": 1038229, + "lastPaidHeight": 1984415, + "consecutivePayments": 0, + "PoSePenalty": 3981, + "PoSeRevivedHeight": 1734009, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "XdnHnEYbbwHBrYE2ub7zgZZBztwkaBovaB", + "votingAddress": "XdnHnEYbbwHBrYE2ub7zgZZBztwkaBovaB", + "payoutAddress": "XfUUTR4vtAJCKnoAponZ4dAn7w8zhV3KUb", + "pubKeyOperator": "0ef3cf908081295bbb09e6d46459cb8297a820e1e00eb6ec5da3a97d33e87abc858d9f28224ae3c72302b2bbd1d704e9" + } + }, + { + "type": "Regular", + "proTxHash": "1d4583610c16be6af564ed9994311063270b5060bebaac74066d557d57d53e44", + "collateralHash": "e99bae11718efd44c266e3fbb248f2961733e4d0f233a48bf7ca7749cb56a6e4", + "collateralIndex": 0, + "collateralAddress": "XbRh8HX1txRTphKcDCgDtK3iLWVKPEBrcs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.1.197:9999", + "registeredHeight": 1038241, + "lastPaidHeight": 1985733, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126505, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyB5Cs5gxyLXXEunCu4EKNMsR7K8oKiJFu", + "votingAddress": "XyB5Cs5gxyLXXEunCu4EKNMsR7K8oKiJFu", + "payoutAddress": "XbRh8HX1txRTphKcDCgDtK3iLWVKPEBrcs", + "pubKeyOperator": "0bc736e83a785770158e9639f91f4c4a4ca71795ba9205bcf3b6ce4b2ca4a69971b214586c0fbf1c57897f515b90f641" + } + }, + { + "type": "Regular", + "proTxHash": "71298c005030f1566ee4d3f4ac0938775985a545d084ec6c2d3f52f83cd957ca", + "collateralHash": "2af8daebe5b355fc85e13fad8d5d0be03902010eb7e939ea276ed09eea37eecb", + "collateralIndex": 0, + "collateralAddress": "XmtuEvFPirq7J1EXnNxatZFVDu9ZdSpDZe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.180.119:9999", + "registeredHeight": 1038268, + "lastPaidHeight": 2127532, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118350, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu9XkBNLcLyWpWczBqwPvD9gkuR3W43Y26", + "votingAddress": "Xu9XkBNLcLyWpWczBqwPvD9gkuR3W43Y26", + "payoutAddress": "XmtuEvFPirq7J1EXnNxatZFVDu9ZdSpDZe", + "pubKeyOperator": "11035ba8560e243c2a9226753be62675450b1ce4b1daa784b455b795dcd747b38802b573a661cb987057e5d3d08505af" + } + }, + { + "type": "Regular", + "proTxHash": "7f855fedd2a0046f0f5ca5c6739d8efabde279613de0657e70307ded3766f725", + "collateralHash": "e6073babde37045e7bdc54e4560853311745951eaf9abc2614e2d4de9c7fcd83", + "collateralIndex": 0, + "collateralAddress": "Xs7iYVXKnzUMqzNtBhvPBzuFJn1yVjwgnk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.140.22:9999", + "registeredHeight": 1038290, + "lastPaidHeight": 1983682, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1385375, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "Xe8mYaBfNFm3btdu2cqPUDFjqWqbTPcjSp", + "votingAddress": "Xe8mYaBfNFm3btdu2cqPUDFjqWqbTPcjSp", + "payoutAddress": "Xs7iYVXKnzUMqzNtBhvPBzuFJn1yVjwgnk", + "pubKeyOperator": "806dbe23ac86a9079a805bc3199f0371938f072bd7303b59869e2493e5c6d1794ee806fdbbed5f548f1b5609a7b50e56" + } + }, + { + "type": "Regular", + "proTxHash": "f1ecfda9ce2a3a32a77eea194bc7b3a1d508b97e145082fad9001ae5a888e04f", + "collateralHash": "41fbb1dda9177f2a2649a64d21ae52c864ede29b7dbd3b2e4f47ad29cbc52a96", + "collateralIndex": 0, + "collateralAddress": "XbM8Le6NmoEyCgZjqHmK8eFd6LR3DzbZhQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.0.242:9999", + "registeredHeight": 1038388, + "lastPaidHeight": 1980878, + "consecutivePayments": 0, + "PoSePenalty": 4000, + "PoSeRevivedHeight": 1873791, + "PoSeBanHeight": 1983498, + "revocationReason": 0, + "ownerAddress": "XpfRN1hkEEbH5sDkSyCd3yDEfrtvaJp3L6", + "votingAddress": "XpfRN1hkEEbH5sDkSyCd3yDEfrtvaJp3L6", + "payoutAddress": "XbM8Le6NmoEyCgZjqHmK8eFd6LR3DzbZhQ", + "pubKeyOperator": "8c325d92cfcac55587a0c610f24ed0c0fba7c6ed4ecd9f49f787b1c50cff4cfcd7d88c44a2a3efb12608799046248e84" + } + }, + { + "type": "Regular", + "proTxHash": "158371d0abe83efc37774d87a8f9683c7822f40a66185a0a5a200fa4e46f4fd2", + "collateralHash": "4797c1ab4493f03984dd0ac34627c1a39bdf03d344fed8d71a68764ac751d37f", + "collateralIndex": 0, + "collateralAddress": "Xc5DupmqHXfN3Lgm6UWCw6mL6ymshnJj8p", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.69:9999", + "registeredHeight": 1038453, + "lastPaidHeight": 1983249, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128436, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSDg1rxFqXbyXaoSGEUT2G3nrTaS7gMED", + "votingAddress": "XrSDg1rxFqXbyXaoSGEUT2G3nrTaS7gMED", + "payoutAddress": "Xc5DupmqHXfN3Lgm6UWCw6mL6ymshnJj8p", + "pubKeyOperator": "8321e91b3a474049237d9b6238c7476618fe9e5c352b140e3f399341bc8954151da5738f7fdecd6cdaebc044ff8223e4" + } + }, + { + "type": "Regular", + "proTxHash": "559fefb4987bb459ae765487838bb00861d121ade1ad637f68cd2cf12dded4de", + "collateralHash": "625c5636c1190e2f35bfe87adaa1ba699d38e3650c223c62c0f3f6d5635f0c9b", + "collateralIndex": 0, + "collateralAddress": "XjXYVVSgZSKF8R1JTqvmNMta6SPz8Lx3o7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.149.161:9999", + "registeredHeight": 1038506, + "lastPaidHeight": 1985098, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128529, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XetpmiFcrXo6cHHSNYyzh2gZKVLEwHjAmm", + "votingAddress": "XetpmiFcrXo6cHHSNYyzh2gZKVLEwHjAmm", + "payoutAddress": "XjXYVVSgZSKF8R1JTqvmNMta6SPz8Lx3o7", + "pubKeyOperator": "098c388a5f354f52eac658dd37d3acbf8246d1bb91830036b8184bb843817d2c8eec62146d37f007e8e2d947a5aafbc4" + } + }, + { + "type": "Regular", + "proTxHash": "29fee065df4ac82b9c5587804f01aa13dbabc3e4f3f9b6027a19ba663bb58ec0", + "collateralHash": "c3fbdee14964bb4b4203d44a0b84e16fb6a7541c56a8144a24d56aa5e5c70039", + "collateralIndex": 0, + "collateralAddress": "Xm3WuGCndadk9UzjK4DqVFv9wcTiqGTLcH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.16:9999", + "registeredHeight": 1038669, + "lastPaidHeight": 1980593, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxwDoGq7AkECMTcXP3gy1d9dpLBYbFCmqC", + "votingAddress": "XxwDoGq7AkECMTcXP3gy1d9dpLBYbFCmqC", + "payoutAddress": "Xm3WuGCndadk9UzjK4DqVFv9wcTiqGTLcH", + "pubKeyOperator": "17265cc742e4d32af05ce85072eb16bdbc8a7041d3699c8af0074e7b67d69f1eb50bad9461e6a87d37aa42a4ef2dffcc" + } + }, + { + "type": "Regular", + "proTxHash": "9adca4c612c40547047ac9da0ff50bf4d10dbb22a9bf124ee767136d5eabc308", + "collateralHash": "82ab8096e26729164039e1203f1ad38e66d8750fa32bb1ba972a2c59919ec3ea", + "collateralIndex": 0, + "collateralAddress": "XibggEQutxiT6imWqWdEvEmxosizg2k1zB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.55.115:9999", + "registeredHeight": 1038679, + "lastPaidHeight": 1979804, + "consecutivePayments": 0, + "PoSePenalty": 4009, + "PoSeRevivedHeight": 1384976, + "PoSeBanHeight": 1983190, + "revocationReason": 0, + "ownerAddress": "XuMva3D7s1wDormJTh6nAuL9HraSDrVxQg", + "votingAddress": "XuMva3D7s1wDormJTh6nAuL9HraSDrVxQg", + "payoutAddress": "XibggEQutxiT6imWqWdEvEmxosizg2k1zB", + "pubKeyOperator": "85125394fde796f328550d89404783f072126322392d42e2e37357ad6046bdf65b384017b440d23a0380adc537bd95dd" + } + }, + { + "type": "Regular", + "proTxHash": "7436f2c83297cf0e02aed17b1a0605901e3cf0a4ef4ec5e0654c96f475ab879a", + "collateralHash": "37a7fb69eaae0a0b2cdfd059f28e15b98d2022fb8db975deab95a55640387fb7", + "collateralIndex": 0, + "collateralAddress": "XxCgwmUcZz4uZpNxR5PHa6zd6vbVZXGyGk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.129.7:9999", + "registeredHeight": 1038739, + "lastPaidHeight": 1984967, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127977, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo2kSaqGVtj5JPDxeEgvtLYKGRPsaMjCkQ", + "votingAddress": "Xo2kSaqGVtj5JPDxeEgvtLYKGRPsaMjCkQ", + "payoutAddress": "XxCgwmUcZz4uZpNxR5PHa6zd6vbVZXGyGk", + "pubKeyOperator": "1723a4af1180517b7b2a96a182ed3d1f19e1426ea84cfc1b42ddf4565312b5c597e5abe6910eb1723072329a091a0fab" + } + }, + { + "type": "Regular", + "proTxHash": "b38a9b716c88384971c67b4ad27994293deebcf2f284fe28b2051519e0247253", + "collateralHash": "f9428fb59838dde53725c38ffd150b19407dea9489c3deb7d0d96c3db86e80b8", + "collateralIndex": 0, + "collateralAddress": "XkjQUVPM4gLhvch7iWEBcbSf9PLywUh6gs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.159.196:9999", + "registeredHeight": 1038791, + "lastPaidHeight": 1985108, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127761, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XseeqJszq1Zmcy3VdeS5UGT12Wxz5wsrPS", + "votingAddress": "XseeqJszq1Zmcy3VdeS5UGT12Wxz5wsrPS", + "payoutAddress": "XkjQUVPM4gLhvch7iWEBcbSf9PLywUh6gs", + "pubKeyOperator": "814cc55c662b55d7f6801ecc16a93ca2ed2bdffa85fd3561a9d6506afca72ba9af9ab4962916e38852c6c8f9ad52b137" + } + }, + { + "type": "Regular", + "proTxHash": "48f8e135e0ce4e72ee1a6cbac4fd1a062d1c0e34383a3e2159e810b212a1646d", + "collateralHash": "a32064c69a270732ecbdda32e725675458dc9aaa8fe04049033e90ac3d538a30", + "collateralIndex": 0, + "collateralAddress": "XsvvsZCLkRskpxADny225wpxEMiBX1YVcX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.186.23:9999", + "registeredHeight": 1038812, + "lastPaidHeight": 1985080, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128493, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyNtDhdZDV2XJa3SiWskGwm8dQuwWV5RrD", + "votingAddress": "XyNtDhdZDV2XJa3SiWskGwm8dQuwWV5RrD", + "payoutAddress": "XsvvsZCLkRskpxADny225wpxEMiBX1YVcX", + "pubKeyOperator": "0dfee4b7d411b998155923ea5eedbace2c85d2d4a7088b6b2ddcd722a2d9eddc11133c2ec87ff89d46d3607a27dc9a88" + } + }, + { + "type": "Regular", + "proTxHash": "3fda0681cabe2f2e18acfba53e242dde8d3d4ad0ecda6464998dacc50f903952", + "collateralHash": "ac7176d96ebbf5884db36c1c4407e7c91657712e37d7da254f4b0a56415c02a2", + "collateralIndex": 0, + "collateralAddress": "XpsCTAJRrREiJC7jnQmgyPwicbFQxkNaVg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.159.218:9999", + "registeredHeight": 1038826, + "lastPaidHeight": 1979986, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127788, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwQuhKpvib9G3XsCYxbDsyn7Z8JtowHW1Q", + "votingAddress": "XwQuhKpvib9G3XsCYxbDsyn7Z8JtowHW1Q", + "payoutAddress": "XpsCTAJRrREiJC7jnQmgyPwicbFQxkNaVg", + "pubKeyOperator": "1707aba1961543fed6a722a33301360e0f6ee5276b5990914919f251ba168b71c2cc20edf7e78fc223820850ac03740c" + } + }, + { + "type": "Regular", + "proTxHash": "7cfe6fa4be29b63a75227668772b5259d6fe7adadec02bf870a8b7fec43b910b", + "collateralHash": "e8593c0d1cc65127ec9e53188be901011b1f6fa98f3cb2c8f4516afccfaaa11c", + "collateralIndex": 1, + "collateralAddress": "Xcz3tyRrq9tWB4BrgxFCjaynV4fB2NMVJN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.180.40:9999", + "registeredHeight": 1038871, + "lastPaidHeight": 1983917, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1590092, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XnnEc9RzbZRwaLVhZik8TEEMbbho9WTCBq", + "votingAddress": "XnnEc9RzbZRwaLVhZik8TEEMbbho9WTCBq", + "payoutAddress": "Xcz3tyRrq9tWB4BrgxFCjaynV4fB2NMVJN", + "pubKeyOperator": "8fae5c02eb0c39c4c401608b3986d0c10e82ec7aa9eec319f50dad9c2a3826b90e71da7983838c13e3d35d24f774e5be" + } + }, + { + "type": "Regular", + "proTxHash": "0b479cb3338ee8032a18698954c657dfeec1b62a11cd0d6db818650642d28778", + "collateralHash": "8e0c7a6cabf0b2b0a72b8a4cee50045a3c0d78fdac4a306586a7890da43f1fb6", + "collateralIndex": 1, + "collateralAddress": "XnYcNSGEubLx5LEGTTJgZf9KU62GuFF24a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.17:9999", + "registeredHeight": 1038902, + "lastPaidHeight": 2126895, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764890, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfyN9zixLsA57cm3LxHMbpYpfjDCvRh4R2", + "votingAddress": "XfyN9zixLsA57cm3LxHMbpYpfjDCvRh4R2", + "payoutAddress": "XwujGytpomYdQvn82cWQjkKxY6eRXnxnkv", + "pubKeyOperator": "8b6b3df1c2bf61a0f4b160154afbd15826f1e6fedc2eb2d53fb998597de44a096f427b7aaffa2564b0d2ddbd9ba774b8" + } + }, + { + "type": "Regular", + "proTxHash": "a20eba99d076056a8c905e43cadc24d46d89412bdb38b4c1d1e37064ccce58fb", + "collateralHash": "cf994a12dd774f1f81fb34796c0aad0b86a302d16570955f505786c7bc93e00c", + "collateralIndex": 1, + "collateralAddress": "XrLq3GApgzuVwW1n8d1HW9ERVY8HGbesxx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.37:9999", + "registeredHeight": 1038903, + "lastPaidHeight": 2126958, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695450, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr8XrBRB3NZ42uPzDdv6JVRo8HDDhNJ2ba", + "votingAddress": "Xr8XrBRB3NZ42uPzDdv6JVRo8HDDhNJ2ba", + "payoutAddress": "XfbAjYuNnFmFdw5gN34gPDMSMn11DYD1cB", + "pubKeyOperator": "8cf37ed30345238ec307a3d9730da91632350cd4ef1bb7436e697a0dd64f4e6ebe6e3a74e5c127ff4bd5953f1f67603e" + } + }, + { + "type": "Regular", + "proTxHash": "c1b1762516632ed664fe857869e064a5abef80079f4ec8a27450d5d7a5564424", + "collateralHash": "558026a18774283896beba582fa890f6023bce570dda5807188ff54e2c5ddd81", + "collateralIndex": 1, + "collateralAddress": "XjWxfeuV3nmHgWxojnUqxVEqNYQ5AB1aa6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.50:9999", + "registeredHeight": 1038906, + "lastPaidHeight": 2127585, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1700376, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnaY7x2Pb1bgoYAGze4WBRBtc19kPUjgeC", + "votingAddress": "XnaY7x2Pb1bgoYAGze4WBRBtc19kPUjgeC", + "payoutAddress": "XeUxuiD1WHc7kDm37iWx1wJ9wfViY4dbQp", + "pubKeyOperator": "9142db81a7ecb73137a6546b5cf6747168a79afc527ff86de020e9a20a65f957cb0da2587028a21cc7498d4db60ad9b2" + } + }, + { + "type": "Regular", + "proTxHash": "ceb453ca85ef06edbfffe4bc636896485a7294d7a8b0d6d60342eb9af0ef3c2f", + "collateralHash": "4034c038b06c0643277c065a1cd53921b07377551cee70beecddf8807d0907a6", + "collateralIndex": 1, + "collateralAddress": "XhdCFgNvpMDQFJbnfBPccRJjjgoff7eKPK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.39:9999", + "registeredHeight": 1038906, + "lastPaidHeight": 2126949, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695450, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfLE4HdAnYvBsuEyYoX6W7CN7nDRvg74ne", + "votingAddress": "XfLE4HdAnYvBsuEyYoX6W7CN7nDRvg74ne", + "payoutAddress": "XdwTNMibuzr4z1euptThuY2UiG5vQvCfo6", + "pubKeyOperator": "8d28d4167f5853852d34d61f331e6730e34b8633433282e47f973b3b5bbb1e08f68868dd97e5d21f4c712628414331da" + } + }, + { + "type": "Regular", + "proTxHash": "d10fcc2c21b83f4590bb1b5ec90e1a132e8ae8299b039bdd708ecba34303ac0b", + "collateralHash": "876abbef0f9240c0c8be020f1e316c9bfba22c0d02c2b564147bffa45a7970f6", + "collateralIndex": 1, + "collateralAddress": "XyyuzhTaiMARJS8Z49Vtfs2L8Ane31t5AF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.69:9999", + "registeredHeight": 1038909, + "lastPaidHeight": 2126905, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764899, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsz7yDRP15X5NizYMuzDhZ9qRVqJAGDPfE", + "votingAddress": "Xsz7yDRP15X5NizYMuzDhZ9qRVqJAGDPfE", + "payoutAddress": "XkYbUtRrgHgfzHkve7Raz7BoJcmhoM2Yjf", + "pubKeyOperator": "921958278157241233fe7e816d06c4bba25583a108507c691d3ee45e3a7231a5606c31161c1c32614f74deff608690d9" + } + }, + { + "type": "Regular", + "proTxHash": "148394a30f05c5e9b765ed2dc97a40ad7aac22c356e678585bb0c36d7450b46f", + "collateralHash": "16c04cd82c21ad44cf990ed06625e0ac47ab4350fd5cf2e51a239496ac2dab4d", + "collateralIndex": 1, + "collateralAddress": "Xj5H8j15x8hA4fiqurz4dShvHbbMHr2zcW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.62:9999", + "registeredHeight": 1038909, + "lastPaidHeight": 2127891, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987004, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfs75VLjhyiQ2BdrheThENm7S5KX31N6po", + "votingAddress": "Xfs75VLjhyiQ2BdrheThENm7S5KX31N6po", + "payoutAddress": "XneCBV3tyrraHjxpCWuXd134JXLQmanv72", + "pubKeyOperator": "832ecdb7db558ed15faf7c3559a8ef8e8c5592c458a607dc469a48a732ea245790613f48e8c2cc0adaad8ee88037005a" + } + }, + { + "type": "Regular", + "proTxHash": "23234232ff0ebe006ca826bcb7b2abd6fa3a1c1b2bcfa2591ad94b08fadcd18f", + "collateralHash": "e42179f8b42a47bf761f2ba28b4057d1c64c06f60f95ce95dbd58a8b1a99682a", + "collateralIndex": 1, + "collateralAddress": "Xrgo4HpRHryu5AbQy4zDTAf9py6AjKN3Y3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.55:9999", + "registeredHeight": 1038909, + "lastPaidHeight": 2127892, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987004, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh9wuwvD6ZKV7d9GZX1qx745tovAYXDh6i", + "votingAddress": "Xh9wuwvD6ZKV7d9GZX1qx745tovAYXDh6i", + "payoutAddress": "XcFmMhqiDFwrtKuoqAJcbdBuJVj9KXMKik", + "pubKeyOperator": "0455f9526d443b2e8ec751ac98ccd06ea4c19bc908c56a3f11ce9fe4288e67eccc1016419c9ea08dbc5fa1201c79076a" + } + }, + { + "type": "Regular", + "proTxHash": "56d86d05eb95672667a7f7a5fa8908617e4f7624a1d2897e49469e2a591b65d3", + "collateralHash": "5d70293c858cf4708754421c7e781822be4189c14442493e6c02e57b11c2b129", + "collateralIndex": 0, + "collateralAddress": "XsZx67Rumf9s2m3DHHbLTrT1UsHnkCvDEB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.6.204:9999", + "registeredHeight": 1038919, + "lastPaidHeight": 1986595, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": 1879204, + "PoSeBanHeight": 1987797, + "revocationReason": 0, + "ownerAddress": "Xyshs9RxXon8hvUJBaWhEUAMBBXP8q87i2", + "votingAddress": "Xyshs9RxXon8hvUJBaWhEUAMBBXP8q87i2", + "payoutAddress": "XsZx67Rumf9s2m3DHHbLTrT1UsHnkCvDEB", + "pubKeyOperator": "87368e0755b9b145d13cfab35e967f59eecf665da014f3025fd4247dde1ee749a1fbb0912e32668fc1c410cc2760d1ee" + } + }, + { + "type": "Regular", + "proTxHash": "4e551ede4405f0d1fd12612cc087c9ed867153dec69c8dada9a0b620b972e3a6", + "collateralHash": "3e0f7ef50060664c290511942a8f1946582f75b8fe528dfffba02d3ad3d1d8c3", + "collateralIndex": 0, + "collateralAddress": "XoXeaPWQiio7BVGqqemeEPbPHdbKAsYYgG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.37.225:9999", + "registeredHeight": 1038950, + "lastPaidHeight": 1982044, + "consecutivePayments": 0, + "PoSePenalty": 4009, + "PoSeRevivedHeight": 1387815, + "PoSeBanHeight": 1982922, + "revocationReason": 0, + "ownerAddress": "XxstdvAo9LaCmL7j8oZ89Qu4gL5uCjrXcZ", + "votingAddress": "XxstdvAo9LaCmL7j8oZ89Qu4gL5uCjrXcZ", + "payoutAddress": "XoXeaPWQiio7BVGqqemeEPbPHdbKAsYYgG", + "pubKeyOperator": "929735a2089ea090d847ba6a337a8a87942462d4081931c8ce98348b6020c3fbf7a3fda2d373e2371752c4f22fc6191a" + } + }, + { + "type": "Regular", + "proTxHash": "55677b9610be38f7e4efd53d896883e5acf889c3a7b3452d401883543820f663", + "collateralHash": "c2358bc2124b535be7d8edafc23e7e858a8c63cf85670c5537b6062c245986c2", + "collateralIndex": 0, + "collateralAddress": "XrLy1n2yq1QE2osp814eaTqXvXykw7nwfB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.77.93:9999", + "registeredHeight": 1038956, + "lastPaidHeight": 1984516, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1873823, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "XheanQjVEkswmj16r1y6t9DRS6WWS8yiKt", + "votingAddress": "XheanQjVEkswmj16r1y6t9DRS6WWS8yiKt", + "payoutAddress": "XrLy1n2yq1QE2osp814eaTqXvXykw7nwfB", + "pubKeyOperator": "805580aea9d30815985c2e99e78c117999f5e8dd747d76dfe91cd3544ee0026f617596686bfaff1c2c0f6810e74aa498" + } + }, + { + "type": "Regular", + "proTxHash": "5029d0dcb6ae9fbbd86065059aa0ee6dbb5d34f737805299bd7feebbe6dbfc95", + "collateralHash": "543d90892831a5c634c7add275e77556215f0e837455379be9b70fb64e130315", + "collateralIndex": 0, + "collateralAddress": "XnLh2ZNEwMfaf9X3KSwWKZ81a3i1N8PQi2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.71.159.104:9999", + "registeredHeight": 1039083, + "lastPaidHeight": 2127973, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124799, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwwhMA3y7PKucwxVwYBG8rUyLVRz3uCKvj", + "votingAddress": "XwwhMA3y7PKucwxVwYBG8rUyLVRz3uCKvj", + "payoutAddress": "Xej6VB1mb2mHTbCdTW2cSuFHVURCKinRLc", + "pubKeyOperator": "82382fb5079153b39e1b629247f1c5888a74604ec1127be575d988fe623af0e7894967e71db131c8a274661777f82f8c" + } + }, + { + "type": "Regular", + "proTxHash": "db85835927f1c0bd75bc48a671116448bce93edf60c6092b786937a0981356a5", + "collateralHash": "4bc275388c883773b9e0be998e86822b4024acfbc2b1d1ebaab40dbbf1f431c3", + "collateralIndex": 0, + "collateralAddress": "XxuLFaqCLYudgF9kZyQyA9yHJ7tbcpTLTc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.163.205:9999", + "registeredHeight": 1039107, + "lastPaidHeight": 1982377, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127649, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrCjxupTwjZNJZhQtSB7SPaAEU2aCGAP2M", + "votingAddress": "XrCjxupTwjZNJZhQtSB7SPaAEU2aCGAP2M", + "payoutAddress": "XxuLFaqCLYudgF9kZyQyA9yHJ7tbcpTLTc", + "pubKeyOperator": "96b8cb78267ab6d966f514aab91fe25110b1c5b8bcac6542a1f622152d289c9ba347dd75581b2ce6bebca24c30cb8990" + } + }, + { + "type": "Regular", + "proTxHash": "7b86b4e6c680949c2c04163304d79f7f7a9354511a09f8861a8e8245003e2a60", + "collateralHash": "7cf726878f65c1c435c303c526a0ea7a88c52e15d5b70c69a66dfbb2862ecdd7", + "collateralIndex": 1, + "collateralAddress": "Xyt5zzT9i92VKwm9y2THo8zbL7L8AufJs3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "34.209.237.242:9999", + "registeredHeight": 1039150, + "lastPaidHeight": 1726368, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1689289, + "PoSeBanHeight": 1727628, + "revocationReason": 0, + "ownerAddress": "Xcp9WvPDQTjdkFGRxbuPHkDv4sFjdxRmwC", + "votingAddress": "Xcp9WvPDQTjdkFGRxbuPHkDv4sFjdxRmwC", + "payoutAddress": "Xyt5zzT9i92VKwm9y2THo8zbL7L8AufJs3", + "pubKeyOperator": "033a892de5639d0ec877e6b1e734efab29cc48bdafc81e197552ef843ddd1e335a0d538cef6acd04a1e51025e2e33124" + } + }, + { + "type": "Regular", + "proTxHash": "e19c0fa2774c6f37692cf3ca1de3ae2117665dbf1626bf812104d2a632dd86f4", + "collateralHash": "32c3e86cdf0c82056e84e627c97e2caa8dd150cf8aa8fa1342547646c3b5966d", + "collateralIndex": 0, + "collateralAddress": "XrizhUfYdqcdyjeyYgXWU9J57jE7g2i4go", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.180.8:9999", + "registeredHeight": 1039175, + "lastPaidHeight": 2114941, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128805, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw9XJT6LJxTondQ3i6KcXQ4N4Rbgrhw3Nb", + "votingAddress": "Xw9XJT6LJxTondQ3i6KcXQ4N4Rbgrhw3Nb", + "payoutAddress": "XrizhUfYdqcdyjeyYgXWU9J57jE7g2i4go", + "pubKeyOperator": "8b67f5adea7d9dcfe965d8e3d82409f7f28bf9c1b3c258eceb04a29ccc28660f2c72d0e61e970f3594e4699aa8a3f317" + } + }, + { + "type": "Regular", + "proTxHash": "ea05c8a3ed015c83eb327e156159e6b36a7f18166458c78cd403ed33c6238088", + "collateralHash": "ba896f704f5daf4aa87a37dfa30f18a488b6d81f9c9ad4953237238cb9da7d59", + "collateralIndex": 0, + "collateralAddress": "XrN7yi499Kg3Da6inu4UeARcb6zhoLWLDz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.161.176:9999", + "registeredHeight": 1039185, + "lastPaidHeight": 1980488, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127693, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfZym2x4k5DgJgLyhpVzdAMuL1refhQ2LZ", + "votingAddress": "XfZym2x4k5DgJgLyhpVzdAMuL1refhQ2LZ", + "payoutAddress": "XrN7yi499Kg3Da6inu4UeARcb6zhoLWLDz", + "pubKeyOperator": "129c33054216010cec4f2e48d3e102587ec7a6ecd87f90c18c85cf0f935bf294a7d0af5a4f93ea06b1191802c2d9cb66" + } + }, + { + "type": "Regular", + "proTxHash": "d838b2c399bd725fc9b13a20fb732e5d4f069a26fb36383125838ddad0ea02a6", + "collateralHash": "c359f0e22f63ee87a1381a8c287fd8f571d6196113d91b6a52f0b8e8b76670bc", + "collateralIndex": 0, + "collateralAddress": "XakPXLjh9XNaFAoj7EoZh1VUuTZ7cNdu8Y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.192.42:9999", + "registeredHeight": 1039330, + "lastPaidHeight": 1967127, + "consecutivePayments": 0, + "PoSePenalty": 4110, + "PoSeRevivedHeight": 1881054, + "PoSeBanHeight": 1968214, + "revocationReason": 0, + "ownerAddress": "XwaKU9YABYTVccWeZXisoiMrpfCK6Cioyg", + "votingAddress": "XwaKU9YABYTVccWeZXisoiMrpfCK6Cioyg", + "payoutAddress": "XakPXLjh9XNaFAoj7EoZh1VUuTZ7cNdu8Y", + "pubKeyOperator": "0842fbb05f2e52b17698e02c8c84fede045cf92ef6b9ec3cac3d83224820051e292fbaf23c029ecbbc46d9cb414f2ada" + } + }, + { + "type": "Regular", + "proTxHash": "76749c3ca125cd6284fee4895183c6d2204db963b8ada062c280d8064e463381", + "collateralHash": "53a968b0f79d6262851138b0455fd40e3e0452691f5fdbe403028995330354e5", + "collateralIndex": 1, + "collateralAddress": "XdrTgozh9SpL1F4v4i4bL9WGo1HW7B72H1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.169.7.12:9999", + "registeredHeight": 1039344, + "lastPaidHeight": 2127640, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoL6m7rjUbgK7kG6vJ32s1k8kfPfG4FEHa", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xtqd7w2sssBRziubh2ZWcQCnuA9uqkgzcw", + "pubKeyOperator": "1663364df7db9bebbab82c4ca285e70195f8c1e4e6200b5d6e389569880ac24f7ddbfdf2c0902d57778bc61ab802d944" + } + }, + { + "type": "Regular", + "proTxHash": "20ede6c4805c2b053637b2235d00968dbcec9941602209f033857dbc57e8098c", + "collateralHash": "1b30ae3435be0e286f13c674815c355cc94369d493192f8a1873a38494d8137f", + "collateralIndex": 0, + "collateralAddress": "Xqrfe7isjA6k25QCX1HJR2J6TxYZG5d8ue", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.253:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127641, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxd1N36vdnZDTksbzhNi7wYqMDVdufEcxi", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xtqd7w2sssBRziubh2ZWcQCnuA9uqkgzcw", + "pubKeyOperator": "0da4291303a580de7499d81e72fcbdd923a724c3d7c3d4c7d86362ca5acd8785101c282b40ef663c343d8e764726641a" + } + }, + { + "type": "Regular", + "proTxHash": "8a31fc12c7b4e4bb62a915c07b1207e4d4a734b31f7024734df91484f84b95a8", + "collateralHash": "52fdd00218ad3c229184e7b8528d870b240d716114ed8e491ce7de448a35fd67", + "collateralIndex": 1, + "collateralAddress": "Xaxb8MzfVzvoVUVLnQSGdY9hkUWU9ZBWfF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.252:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127652, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121480, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfazFWapzcuya5cFAh6ZJA1zfTCK8AXmon", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xtqd7w2sssBRziubh2ZWcQCnuA9uqkgzcw", + "pubKeyOperator": "03bfbe677c2446ebdd4d86e1dce20852d882c2ed0ad04870a40e4a5042abfb244c20570aec3e8553fa66002ad8cb4731" + } + }, + { + "type": "Regular", + "proTxHash": "c9dcdcabe68450c6e24b5e6098807c5bc03f3e91316eacc5a81a320592443265", + "collateralHash": "5bdbefcb9655ebd2b731ff49ab39750aff233deb9c3ce7d79d783d295c42b596", + "collateralIndex": 0, + "collateralAddress": "XrX4yNugrr1YiB1H2Q4Bm6FmKYTkyWAh3K", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.251:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127649, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121480, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmNJYDh8vPvvTC8z8HoN8dRQe2L2KXm2vb", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xixk4EWXVsjz8L5FtYnWycHMhyXKfDVdXq", + "pubKeyOperator": "89faf73c85baa460d8301ec0fd96eb880bd78fe416a38a99519e1c9e354c70db7cbfb809d418a213810098e8c33fd69f" + } + }, + { + "type": "Regular", + "proTxHash": "387338d0d7617d530f33bf2ef8e013a3236b28aad0129bfb5fe371f42962d082", + "collateralHash": "d5c215769256734e5f25fb90e5f16b8fd53406cf958e988aefee5f5dc426b452", + "collateralIndex": 1, + "collateralAddress": "XheSgJsTNpfcNtjgVU43v99ivVrdcRP1ae", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.163.0.176:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127658, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgqPFegZryjVoqAjRWESAxfUvC6nibhj4r", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xixk4EWXVsjz8L5FtYnWycHMhyXKfDVdXq", + "pubKeyOperator": "8162cb75478d2328c6af409b3ba0f4f720cd30c340d0b608e62bfb7ed72015a35f1ff5225acbd97af2a33320fe3ede48" + } + }, + { + "type": "Regular", + "proTxHash": "0cc3a17dc9e832a415ef08fb3673bda84a5e6a3265b9777682da22fc89c17476", + "collateralHash": "c4e1bcb005e23658a042ee7b9160425d49f87bd6d3918cce8b998ee695dec74b", + "collateralIndex": 0, + "collateralAddress": "XbDJ6U5znafFxPpP9RiedYYwLPsnUe5NJt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.249:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2125748, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877326, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg3kk3kfYRd3MXjQXgQGwXCP8eTQM2kQZ7", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xixk4EWXVsjz8L5FtYnWycHMhyXKfDVdXq", + "pubKeyOperator": "18ea2d3b6f64ea54e10f24dbf56df0615e4264d870afd4aaed6579e48ab53b00a3419e4dda48decee8ce04fc9628f72f" + } + }, + { + "type": "Regular", + "proTxHash": "0a618db7f50e9a4a707d3a22f4662de25a3f048303c1cac5d71ee27fff5eb4a5", + "collateralHash": "679b2bf5547d89eff24cc3984c572ef17330b205ac90b5bb7b0164a48c0698dd", + "collateralIndex": 1, + "collateralAddress": "XboVKFCXDdqQ19rdnHFojXULimKjqM4RTJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.150:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127661, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrN82tGtnNPYWazrNvYsXRN5hjQatUsyqm", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xixk4EWXVsjz8L5FtYnWycHMhyXKfDVdXq", + "pubKeyOperator": "8123766ae4752999080d6bc838989d86dace876d1b8aa084e5d35d24716ead96fdf2e2826c651e1b8c17080d875f93c7" + } + }, + { + "type": "Regular", + "proTxHash": "26b9dee1642a6c66238e5770f22d993e21de8e4530134525cd6042b6ebbd2af9", + "collateralHash": "5cecbe4ec2f478b7ee73d3b320b33fc1946b51ff07892acc5bc87faec104d0b7", + "collateralIndex": 0, + "collateralAddress": "XhvgfTwdnXrKNQLoc8feSzdsk4d3EyPafx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.3:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127666, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbJNda7AdurHLKpjBwf61cdCE49LP4RnMS", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xixk4EWXVsjz8L5FtYnWycHMhyXKfDVdXq", + "pubKeyOperator": "8d6f7f97193db95fb1b6f7bc3f4a142ea8ba4802bd4028dd45254467f38ab6bfbf31881cf0651420401311530035cf29" + } + }, + { + "type": "Regular", + "proTxHash": "0bd3e8b009811531957c24d37f04ffaa38e80677b31a996463e2e047c23b5a6f", + "collateralHash": "a7d66760a3f95227212a4c7c59aff5a2ba5852f85619d11128edb3a62e7e861f", + "collateralIndex": 1, + "collateralAddress": "XdNqPZmadkfZrAu2xVk9LQM3jwYWE3SfCj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.220:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127636, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvqxJ3mCwsXDVMtcE98V1Wn9gztnGg8ehb", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xtqd7w2sssBRziubh2ZWcQCnuA9uqkgzcw", + "pubKeyOperator": "862f5f544f7716c79f1400996b984c391e0e250f2ee15836c70ff8f11f61bcc69b5453370a8a86c2495f65260a897ff1" + } + }, + { + "type": "Regular", + "proTxHash": "51132bb87793fee975d2723a654203b7ce02ad2a3af0a23d0d5395ac3e0b1ee3", + "collateralHash": "5e80c5ddc5f404503b36fe14bb5645b4dd35ded07e33fe39a1db7f3b1bb2038d", + "collateralIndex": 0, + "collateralAddress": "XpjNitbgMorZGAe5s2YbsyFZBGSUGMbmYD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.169.7.89:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127648, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XptzrL5toCcxY2rersjPz7BZbBexjTkRrq", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "Xtqd7w2sssBRziubh2ZWcQCnuA9uqkgzcw", + "pubKeyOperator": "1040cb11541ba3ce31f18ebcb87478297d1c45110b9a5cd82a229283527e58797592705fc1364c0ad4ad83dbaccc4674" + } + }, + { + "type": "Regular", + "proTxHash": "ad03e4865f03c7a9a28dc0bd4c0af622d0a7f54996c24c791c8e248c0f7947eb", + "collateralHash": "14c600a37510e1f9c177a69445dced63bba93fbafe068ffe7f3c194e2844ea04", + "collateralIndex": 1, + "collateralAddress": "XeT8uaLbk4dEcNHhVjd8XboE3HmXaGXCBy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.213:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127664, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcFaPuV3ePiAML4gP8TbaDsnUrDCcGU1UA", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XsVsWBgdXTrdGXsaHRxa2GJiLm4uRW2eQk", + "pubKeyOperator": "08693aaa528e5d7fd07da8356a2fcf95b233d193663596437ea730c147eee40a52af4571064a3a3ad3b337be5d33ace1" + } + }, + { + "type": "Regular", + "proTxHash": "45fb31b87d6e409238270f5917c351cc109bae245f83daf8c803d6be79dc9137", + "collateralHash": "53db04b1b453bc2a4acab4fdf11c85904b51d88e52f0ca9892160fea1ce71bfd", + "collateralIndex": 1, + "collateralAddress": "XjaXTxQT2d9Qm5hLRXS11uAb3Kv3tcZMfr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.212:9999", + "registeredHeight": 1039426, + "lastPaidHeight": 2127654, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxeWgUFSG9BayvFJF44zWKBk8mcnnsCs5J", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XsVsWBgdXTrdGXsaHRxa2GJiLm4uRW2eQk", + "pubKeyOperator": "044865e19ca6e71089f1801e4605eb509581bcd6f051d03ee03872826652c2c803693d27399bf84f1e16ffb3aee09d94" + } + }, + { + "type": "Regular", + "proTxHash": "642d26637caf677094a7e1a253a7554859a93f8cdebecc6e3950c652412cae3c", + "collateralHash": "64ea5bebf2089629e7e6672ce8bc2c483c202c32557b2dcddec32bda78a5890e", + "collateralIndex": 0, + "collateralAddress": "XodMfCvq1q37FfE1ZH4P954MCYHSo5DS92", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.211:9999", + "registeredHeight": 1039427, + "lastPaidHeight": 2128745, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877134, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmmCzirfqxrJPEBxGAZATEon2KpsFkqEbL", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XsVsWBgdXTrdGXsaHRxa2GJiLm4uRW2eQk", + "pubKeyOperator": "8d9c49c673b8a295e668af0d77e9f9b95231a1732d784869fdb02602eb210fed53e7061d4ae909493a3e9b3b8c41c01e" + } + }, + { + "type": "Regular", + "proTxHash": "9e7e29d71cc6d324982f6029054f0f51c6d364c9929e03a576c02669b3b96572", + "collateralHash": "55cf720dc65ecd767d07b36b476354c26dc5aecbeaf130ad9591593406c2f26e", + "collateralIndex": 0, + "collateralAddress": "XwKWeSLHfwyqxHvyFZPw1Bj9CMf1uizYcS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.35.57:9999", + "registeredHeight": 1039428, + "lastPaidHeight": 2127657, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv58oZ25yHimsBfqnMP8CQ3DnFVvEr6Kco", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XsVsWBgdXTrdGXsaHRxa2GJiLm4uRW2eQk", + "pubKeyOperator": "893dad324bbb343664727294a820cfdd33b5051209bb3e73e10054bd3eb2d20b28c39ad77c19a3a90a2b2ee3fbaea067" + } + }, + { + "type": "Regular", + "proTxHash": "09bae4a35c8cb70efdd80ae89ed724eeb486db82e230e1409d6b01d8cf1a8b63", + "collateralHash": "1e59d0da8b02ec693ccb97e163bf0faa976df0b902bbfb0a409aac00093bac86", + "collateralIndex": 0, + "collateralAddress": "XhmBJmRErH7hgdfDxQfPskZEV9EwKpkkn1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.52.166.66:9999", + "registeredHeight": 1039430, + "lastPaidHeight": 2127656, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuNU9nsEuzUhcsJ6r7d6RYVXJmFBsp9ebP", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XsVsWBgdXTrdGXsaHRxa2GJiLm4uRW2eQk", + "pubKeyOperator": "947f00161f9cf1c48ffb31fac106d3ad05c294291e053786f9699bf475f534a0d3494f508b9ef5aa30cd2f1f26c96a82" + } + }, + { + "type": "Regular", + "proTxHash": "ee7db0604af1947f6d91ec799d8d0e760eec4314048a1c3b3c664787908a0997", + "collateralHash": "082c202a32bd9b00d718380a566feb9b32f3f916afe16d92f2791423904ffc62", + "collateralIndex": 1, + "collateralAddress": "Xh7twugteFigBxtD3s7DDn2oRqXe5TNkwU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.160:9999", + "registeredHeight": 1039430, + "lastPaidHeight": 2127659, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm6t5iQGyzL9NnuTpQQUtVMpZvpLVrDsDb", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XwccyfrUiE2gUB7aXRyxFdxzUxTjv6V3tM", + "pubKeyOperator": "029ea6507a40269fc508a126749236718d11cbf7b5436df67d7335b643f9f6a962d72ff3a7477b27b134639148ed6307" + } + }, + { + "type": "Regular", + "proTxHash": "90a9eb66521a08506a3eda253fb231872bcd6406376eae59f099d7550e743de7", + "collateralHash": "8bd15becfc91cc0ed6f93c8ee1694bb10ea7eccdd921fb878b1066a1dc72eead", + "collateralIndex": 1, + "collateralAddress": "XuuQRj7Dagp2GAgkufd5H7YiVA4kyQTHnZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.52.166.69:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127672, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfjyW7mpScZ9N6XLBvFQzZDNPbrGsaEmpU", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8f22732d2660bb55ef7787c78352295829c47f8fc90fc0985c6f342a7d38a8364345c631581a6e66ef9661595c485758" + } + }, + { + "type": "Regular", + "proTxHash": "801e436e08a0f1f6bb8d236b5f8909a0a89b17444e34bba7d0ed92c3714a53ad", + "collateralHash": "bcff27752af859b921fa5c3739cbab17308ea2953e07ad237c439d5d869fdea6", + "collateralIndex": 0, + "collateralAddress": "XiYHEpXhhF9rnfhtSaUs41knocsuSTGzBi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.159:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127662, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwzg4CK45xiiRmrGYUxd3dCcAJn6vQAGo1", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XwccyfrUiE2gUB7aXRyxFdxzUxTjv6V3tM", + "pubKeyOperator": "05a6d65c3b220b06e553331728fc43a277ac1b07762d4be76916e898fadf76563d9a9a34a8d93d43962d6e7a879d8af0" + } + }, + { + "type": "Regular", + "proTxHash": "4c58e115ce55e32e18994f2f804ba8e4a6c8e404a35d1a48b9b1b6d06bf49452", + "collateralHash": "6992f0e639f60c666a9be4e2e7a2a015ff6d69df4987f5f9a01b04777580cc41", + "collateralIndex": 1, + "collateralAddress": "Xv1s6jNYjA1A859e11Lrj1DEbEyS7wydBV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.253:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127655, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqXQusEKGPBGCM31c2tbbhkqnrBhdKpzSJ", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XwccyfrUiE2gUB7aXRyxFdxzUxTjv6V3tM", + "pubKeyOperator": "0c5340af17ca7054208ec335e7758c62804fe96534209da0fa8823ae80046e6e58719312a73085cdc65be737ad8ada65" + } + }, + { + "type": "Regular", + "proTxHash": "bbebe22c677861c3239dc93032d21806a8bad57514cfd0a7f2ef543d6bbdd998", + "collateralHash": "59d0e408732d6cebc31423ca658be7fdfcecea255540ebeafed214e8bb80fe79", + "collateralIndex": 1, + "collateralAddress": "XnunuHjgjQLXUyBbgN27WQs8mmnM7mmPuw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.52.166.72:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127660, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwpsne8Ei31BkUZxRyj3Yucn5bjcRLuMrf", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XwccyfrUiE2gUB7aXRyxFdxzUxTjv6V3tM", + "pubKeyOperator": "0092d65510e47eaf0103b7f110c43fc2f39c53228269e2b4418be107be39edaaeb6c47fe2416b8a10a5683b657296e94" + } + }, + { + "type": "Regular", + "proTxHash": "b5368bf8ad61f860ba62a0bebffa0a1d1e97e5fb9d075a782f22c62f56f1b81d", + "collateralHash": "411d685502e978dfa8998d0054b41a0dc80d57d45b47676d17dbed4b5bc2d3cc", + "collateralIndex": 1, + "collateralAddress": "XwbB8se14uAGRx3fG5tacesLAQ2bWrS8eh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.47:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127653, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121481, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh5euQJb2A534f8k8cpscDByc3GSAgPSE9", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "03b87f62f3951c32002bc926f2367d2251df0fa61a6189c72f0e1368187a953de35b0416682e0901144f1f8014ad0a46" + } + }, + { + "type": "Regular", + "proTxHash": "195207b7b8c2b8f001f89c75a4b846cef2e7b0caefb132227d346a6e606bfcb0", + "collateralHash": "3f20805f9cc16b72c5303bb1297df1c3de21b9736a002943a743867f066d3304", + "collateralIndex": 1, + "collateralAddress": "XwVVN1LEgoLKCtCSYEqEZGhuvEgNcnXDUi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.237:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127670, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XubUa4Amjpff93ZDSM1K5Eptq7fCB7bj69", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "101969411b48fd4df4bcb349e7b285453e7bf4eeda1977571be2fc4bcea98c5f1e65196ddbf11b4bdfdd5f979a637dda" + } + }, + { + "type": "Regular", + "proTxHash": "d9f6d28c9f6d69dedbaca8dc501fc8560caae68d87fc36e3e095917cc532a367", + "collateralHash": "c5168ff197a003a41b9b273014df1e214c7fa8e20a1ca298ab0a93cff92d1ae2", + "collateralIndex": 1, + "collateralAddress": "XfMtcY56mJsUj7vkMphAQ5juJLwKoKcn51", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.232:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127669, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhKqrzpzsLBraYytLZr8rvohvDWBWvUvxZ", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8a27109ac57caf6b510ae5d29e4052fd55cbdb02685d0334dbea3bbb0017d06cc4e6852874d0bffaf1a2262b3c44134d" + } + }, + { + "type": "Regular", + "proTxHash": "f42acba47a0c08a359c87d1422868c1bc6847773bc728f477ed06e09a26a68b6", + "collateralHash": "9c57faaa9c235ebe6b1c2408b2f264bec3a6550e1bc64e77079ee591e4852e87", + "collateralIndex": 1, + "collateralAddress": "XtGaYxUnCaqcMuGQqbLCyEJQCZa7BzwDTT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.169.7.146:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127671, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqXnb1BaRBFguSGpMBwmj9LDMUtc7iCQTf", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "082e86f00cece842aac187aadd48a7d4b87480e81221a39d900cce863b83f1eedd614171c77c068e45c53131cfc307bc" + } + }, + { + "type": "Regular", + "proTxHash": "c07b17f48176958f075c457fea2058b013ea174ed446ce75a92ef168d8b0feff", + "collateralHash": "8de107600f1c7f4f69d8884b32b45f7f2d3fc761708b209b7ee2f686ffeff93b", + "collateralIndex": 1, + "collateralAddress": "XuWie4kTj5exctTT4otTDkzQ3tQgpDyJ3a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.254.235.62:9999", + "registeredHeight": 1039434, + "lastPaidHeight": 2127673, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XndtC9cChnaCn2DLqkMAD5FTu6xrS7Ks7M", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "059aa61878c313f95e696f8919bb5809fc5fe41dcf64d7ac7e569ef13a5420378846dad9a7ad24f64079d139005eca49" + } + }, + { + "type": "Regular", + "proTxHash": "6aa911489d2b5eda775b0c6b3947db53a7d1a824f63164c27d40c8f5ab68fbe8", + "collateralHash": "563d16a492648e34c7bc77fdb83170dbbe5035fb4650e561817a179e2777da41", + "collateralIndex": 0, + "collateralAddress": "Xf4gDnhZAybEuxW6VLfwArwsQ8UyVAjHSY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.230:9999", + "registeredHeight": 1039436, + "lastPaidHeight": 2127032, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkzgWgyWBRKXo3NXq1Zazo9ko9KN5zDfvV", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8ae8efac9275b325bacb3817ced923e332d7d219bdfd2a2cade7f59b807103ac07d974f879eb337b16f4e12605e2c3c1" + } + }, + { + "type": "Regular", + "proTxHash": "48dcd48582cff290a555c8e59ef51a9d2e459a41f6257718dedfe6efeb02b449", + "collateralHash": "0d419f0595a385575eb327add43a565e101deb46629cdad2e5cf6d44effee472", + "collateralIndex": 0, + "collateralAddress": "XnpLMSkKLyrm7tAGVBoxbNBjuJi5rHVUuN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.229:9999", + "registeredHeight": 1039438, + "lastPaidHeight": 2127668, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkTjYt3b2EUoTBjCRfvRn749PkeWeRUeDP", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "10437a7914b8bfebfe8df83274d6c43e369ba7c47d6f004a353748059498d83acb98f21238f022f3daf1017469459b42" + } + }, + { + "type": "Regular", + "proTxHash": "d195a68986590b6b032bb733313f70df82018a6253c9fa1be9cb1f51bc94df3c", + "collateralHash": "02e9a2918c0a679b2495e01d35e47013938801d89f05dd9e5f6f10319bbf0c12", + "collateralIndex": 0, + "collateralAddress": "XqJa8BxRVj8VorG22JKZsLZhaYHeB5ffzg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.78:9999", + "registeredHeight": 1039438, + "lastPaidHeight": 2127667, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121482, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk4sR3buzENbM4aGaiFeNgGJ3nt5pSUigy", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "93532b6391c75c94ac83ec94e18327e1d88548f8c62066a1cb6f82161c26790a84c97e5ed02f845d4967ff1ef34e4dcd" + } + }, + { + "type": "Regular", + "proTxHash": "d9c2bf7ef9d7a327266faa6bf04181f222b640c6e9b14472d16014ec3122623b", + "collateralHash": "56755a3e5ac9a584d487e3e4e69cc8035ba96e7a42f226e81c22cc8a7db5d6cf", + "collateralIndex": 0, + "collateralAddress": "XkSN1KopPyHY8B4kHyRgHd46fuGSB6bZJD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.129.5:9999", + "registeredHeight": 1039440, + "lastPaidHeight": 1980628, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127939, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XavBYnCntoDsZxf5tw1Mo7MoFshsW5p8Rw", + "votingAddress": "XavBYnCntoDsZxf5tw1Mo7MoFshsW5p8Rw", + "payoutAddress": "XkSN1KopPyHY8B4kHyRgHd46fuGSB6bZJD", + "pubKeyOperator": "965a7414e82f6f5603c0def8fc07eee3012e35a325398a0e238f16dfd98ab57301133135def3bcb68d2c2b2499c34674" + } + }, + { + "type": "Regular", + "proTxHash": "fc1328045fa9d3052b6f96288b5b3ceb3b6651b1dcb0a76b1b1a6ece0711477f", + "collateralHash": "d03442a845efe5a7ca4728ccde8d4d97f2122cc08e06b50a1d6167c49fd54aa1", + "collateralIndex": 0, + "collateralAddress": "Xnr9QBBq7kyaA9z5H4fw1W9VFa4n73LY4a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.227:9999", + "registeredHeight": 1039447, + "lastPaidHeight": 2127050, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgdBAWrb8t5yqRFHbmVnJiZGU1MrmumPAi", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0ca6c70e9ba66c9f4c88b624bf8ef23813c74dc2f2a18c8614ad1f06dc8ef02b6895e0e98e6415b6c05d23b1ca8c3314" + } + }, + { + "type": "Regular", + "proTxHash": "a4bf129005ce5155995f471b5265916648b79417706fd9e605ba7d9f715f6847", + "collateralHash": "e4a23649aa3e5413e7b569152c33a9d47446436f912bad353a956aec94e6946f", + "collateralIndex": 0, + "collateralAddress": "XsEt6XNg1zbt9jezmCnn7UVW2naw4134cP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.226:9999", + "registeredHeight": 1039447, + "lastPaidHeight": 2127678, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxRxTthERQgxYeneDBpnhSnnvnZc1mNRrf", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0aef134dce55e0add9cfbdd78801a88825f209a43afa576287ae0f2159d397c05b6f48d5898b497af3f4cc3528f39093" + } + }, + { + "type": "Regular", + "proTxHash": "6e8d52daa195d09bdbee2153ee4b6dac3e9fc0b13a006e4f7a57df93d94f119d", + "collateralHash": "145cadf290c04330270ab9bdc1fd2567d0ab2e7251a54da437c8328eaadabbc8", + "collateralIndex": 0, + "collateralAddress": "Xg4fMHcRLRgieMJP4Bm9PzBA1jyQYeLQan", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.234:9999", + "registeredHeight": 1039450, + "lastPaidHeight": 2127682, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmqW5QPzNXabhuARkyLtwwNji5zu4haD4c", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8fee49fc8503b54fc58b02ccfaf4bef0f801098cc565a21ada920a2c1a4cb6c9ccfe7f1f9f6989834c4d7874ba3bab6e" + } + }, + { + "type": "Regular", + "proTxHash": "83ccb614fcc17fa905d1f81401723d58894f6427a257c78cdbc2e493b46b90ad", + "collateralHash": "8f446a8bb8422b0e4b8b4c04e7ad16f21d7dba6f966b7da51c9068863a84afdc", + "collateralIndex": 0, + "collateralAddress": "XiNocfSC2QfaHRTnqkwS1FVQMaPwMcsBu7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.86.163.160:9999", + "registeredHeight": 1039450, + "lastPaidHeight": 2127683, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjN7zo3tJaC98VopWRyuLquPfJnXTBHT4L", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8dd573605637b46e02e13d28188ed6bae3e34bce03951db830bbf1bf550dd5caaec34706bdfcb4274155edc222528cb8" + } + }, + { + "type": "Regular", + "proTxHash": "fac4265c8c8213b069b75bb3c565309accb214631bff9cfb41a4ec1b6feda7fc", + "collateralHash": "490b51af2e60fb00924f5aebba75d8247eb5b1fa2ee0d1703426f2379f0164dc", + "collateralIndex": 1, + "collateralAddress": "Xugap6eeo3jWixexuHpFBFFhNWiBJ6YyMQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.233:9999", + "registeredHeight": 1039450, + "lastPaidHeight": 2127686, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfsUeqAzhCtrEGXNhLeRd23G2sjt9ouTFF", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "09453eaac3282a0c76638f66b0a5da648fdb0fe5f2a313097817703a9737f129af76632dd0749ac4cdce1f9b4c19e4d8" + } + }, + { + "type": "Regular", + "proTxHash": "aebb4d74c20efc13e37078118a39c6f1f29f1e3e5d65133631956fb67a21e64d", + "collateralHash": "a7a3611fe10a464f243c11c0e477e7f4622694cbde8bb060aaafdf689bdc6293", + "collateralIndex": 1, + "collateralAddress": "XvscVYNDrkAryMiB4MaRuGYF3PQWbj84Pc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.225:9999", + "registeredHeight": 1039450, + "lastPaidHeight": 2127679, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdNfKt6nx3T1i6nrN7kFj4ouWanFjJXkuM", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "82c44b0e655780ae0b1d4e96eeb49e6a7c48d5d5c00d112cb8822e2fcde9d9cbc82a64f8c5f4de6223c775295e446543" + } + }, + { + "type": "Regular", + "proTxHash": "6144173f3c0217de8666cacbd954da12f8f3e19599cefbc2c725c11ce708e8c3", + "collateralHash": "c9019b7a7b8432c964f9111ecb6707f6ca8037ab2617caf34c0b8596a06d8828", + "collateralIndex": 1, + "collateralAddress": "XgFKLbbdbNih8a6c1Xt4dipDzmn7vhFuYp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.224:9999", + "registeredHeight": 1039451, + "lastPaidHeight": 2127685, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxTxaUGARvMh7Qthf6tseWo6eB3QXzCN6u", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "93c119570fb8f6217336c1baaff0cc3c1042843bae6057399359774f17cd4ac966a7bd6d75191e5d80c50bf8dca0f925" + } + }, + { + "type": "Regular", + "proTxHash": "2ef7cc83b6986ad8b2e09b94ab93cc11d336085eb13d14b8777b718049480574", + "collateralHash": "1d6a48783bec054d8b6b951b0255b5ac4482e22f6aafe8f6275804fb430e9a1a", + "collateralIndex": 1, + "collateralAddress": "XsirKTRYeDSvV7M47ikqtUb3AQNrfBYqtd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.80:9999", + "registeredHeight": 1039452, + "lastPaidHeight": 2127680, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt8odrxv4omQbXESyfBJRrnv4g6KD8yBkQ", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "963a5684158950188d214b4597a9a960b233eb7735a4d8876d6731f3c169bcc22ca5921c5178ec4e3fd68fd12c0e8395" + } + }, + { + "type": "Regular", + "proTxHash": "6e65d662f69dd6d24ef3967ca527245f43b080e13394f6d911ca86db63e8c0df", + "collateralHash": "1542a18cfd97401a67bc289b298a05d8a47a2bd44de846ba2cc998188581767f", + "collateralIndex": 0, + "collateralAddress": "Xw7JCLTVyAzdTZr4ew5bXxHnBQKQ4rGvWa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.30.248:9999", + "registeredHeight": 1039496, + "lastPaidHeight": 1984476, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1873813, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "XrEUBp34Uui4FuowMcNviDsWxxsEYmT3Mq", + "votingAddress": "XrEUBp34Uui4FuowMcNviDsWxxsEYmT3Mq", + "payoutAddress": "Xw7JCLTVyAzdTZr4ew5bXxHnBQKQ4rGvWa", + "pubKeyOperator": "17e8231646f0b4706100e6394434a9a1d6a53478ac7ba31fbda9d4c2e3bb0b43fe0670b581b1506194a03e8cbdf1b706" + } + }, + { + "type": "Regular", + "proTxHash": "8c898f3a32ad84cfec01b78ac5dbdcbebdee5abf5655843d1fae26143fdf741d", + "collateralHash": "35661e81b23a5af0ad05b46c4d215813aef49d207a7b845d463a88860a927d69", + "collateralIndex": 0, + "collateralAddress": "XxKJtpskLahWW9sN7eTwrdwDM33i3AWhHW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.227:9999", + "registeredHeight": 1039526, + "lastPaidHeight": 1981794, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128407, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkAH4Q2EhHREK4oQ4dg4ASrLm8f1Dr2cCk", + "votingAddress": "XkAH4Q2EhHREK4oQ4dg4ASrLm8f1Dr2cCk", + "payoutAddress": "XxKJtpskLahWW9sN7eTwrdwDM33i3AWhHW", + "pubKeyOperator": "0849e224037779c2c0972462899be8973a0bb64d81e7f9d499d3d75e77391baef6469ccffcbbaeec012888a2cfd3b278" + } + }, + { + "type": "Regular", + "proTxHash": "9eb168da804b2e373a5b9e3db7ed808202159eb143a7a1800da7c3f8961f83cd", + "collateralHash": "db4e457539032b1dfc624616e76e64413e303aa2812e01eb3d5ad80f86bce5f4", + "collateralIndex": 0, + "collateralAddress": "XbEX7FhSTJcHvRhtxydFMJa31zYAts2TwD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.1.179:9999", + "registeredHeight": 1039609, + "lastPaidHeight": 1984723, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1386614, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "XrGXDYmjwj2aqtmxM84WjBJCT1nv6aNmVa", + "votingAddress": "XrGXDYmjwj2aqtmxM84WjBJCT1nv6aNmVa", + "payoutAddress": "XbEX7FhSTJcHvRhtxydFMJa31zYAts2TwD", + "pubKeyOperator": "083bfa973db6699f59855abff4570d74a4b9b192f80735723e3a0fc0121fef488d63195629eec3d98a1f4c9c3804d649" + } + }, + { + "type": "Regular", + "proTxHash": "31a8d40f82846fe5b636a2bec1aa9af5373b1c4b78b8bd669c9756864636c50b", + "collateralHash": "0303f33daa93c216d08567e75f2db40108f87465ecb7feba9d531828687adfe0", + "collateralIndex": 1, + "collateralAddress": "Xghe6ERCLxuxExhXXz3dU2A9eUTYNVMGM8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.200:9999", + "registeredHeight": 1039669, + "lastPaidHeight": 2127675, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpQy3bvq1uXLsakezy6sw5C8f6bpm4qjAs", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0a57e187de4e7193a111e3b69c6d972ea882e9c3517b47fc06637d5af9be0ee10fae7b62e2eac9553dafd82b3aee011d" + } + }, + { + "type": "Regular", + "proTxHash": "f3f9b88c40eda82e0a6ea5122efb3c984ef7458922a2ff1e76106ba9ef8b5505", + "collateralHash": "f00c4643bce50d9a16c860dd9e17ebcfc27d52ee5c9eab0bc0f3ea08bba7347b", + "collateralIndex": 1, + "collateralAddress": "XgJS7yy6eWPEojuUgpu5uxVteUqJSA5vaT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.86.163.152:9999", + "registeredHeight": 1039669, + "lastPaidHeight": 2127674, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XikBFCHm3dGd2uVMnTERG6XtcohrPC3HhC", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "10f5fd3cbec286dd3197288ef7f8c3c071315cf8bc8ee44f7bc63aef16e2e462a53dd4944e1d6a014c499386e5fbd2c2" + } + }, + { + "type": "Regular", + "proTxHash": "831010246ca2df1e860cdd04ac181c4f5f37277e6b34bf0afe7e2ca161c54b85", + "collateralHash": "1b249a6e9a37171b0fa827fb8c137c524c3a9a6dfd1fc682b2416d632080fc96", + "collateralIndex": 0, + "collateralAddress": "Xb82Bk59o9R3TK9w1UWR4Gxhrh2m2XkWXK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.190.43:9999", + "registeredHeight": 1039669, + "lastPaidHeight": 2127681, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqeb5kAdpC6oAA6xVQ2MT2thbLkz93uSJw", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "08235417c86abd28912797aebf48b75daa5a925da3fbfdf7cc8bb25d963a894d49ef55abdb17a175fc6ad9880d7019fd" + } + }, + { + "type": "Regular", + "proTxHash": "d3d786481019cfeb4d84d33fbba97b9cf380a6523a3fd6f01b04f794b8bd037f", + "collateralHash": "fff4fb44e8c97e887b261133ab303406bf6531ca4576f7a98eccfb358541dd75", + "collateralIndex": 1, + "collateralAddress": "XmeMZGpGYBrVwapZiKw1wRsUaCfV61yt4e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.243.114.43:9999", + "registeredHeight": 1039669, + "lastPaidHeight": 2127288, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121146, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeECEXKMkMMdFSA9Buxb4hx9C9RBqApSAw", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "83f644db7244d5caf82c381dbdbeb968646dc1b36d24155c7b53591e4dd53a1cdbca5c9f890f54687e95ca289317d2cb" + } + }, + { + "type": "Regular", + "proTxHash": "dd35da3651e4c28471efb71eff98ba64dd798deab6a51bcfc48764c74a5a4241", + "collateralHash": "fb4d1697f703a32d4c1606218af836cde886959d83bda9993ac3a9ea7ae6cede", + "collateralIndex": 1, + "collateralAddress": "Xcrab1wYWJW4JjC2G4b5ykYckXZtLDxAXy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.86.163.149:9999", + "registeredHeight": 1039670, + "lastPaidHeight": 2128731, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877132, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw2Qx5okjkKoVvmYhNGQxpLrNoWAt7ZxRg", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "03e387352258339b3f9a5c3f5353ef3dc234af947fa649bb359694b6daa43ab4d5d907e711f5de2e9ca7f6130f0ad69b" + } + }, + { + "type": "Regular", + "proTxHash": "91f0bde1e452915ed101c2f4a79fcfecc8064fbbd6f0abd2017653813e59683a", + "collateralHash": "bede0cbb3b52a73bfa150aee8f53231e2afa123f5b9f225a879e9b71bfd2f111", + "collateralIndex": 1, + "collateralAddress": "Xdube5oqaSKBFby1UKni2sKA6SGebZgFNm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.64:9999", + "registeredHeight": 1039670, + "lastPaidHeight": 2127677, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsqZTHuJryhuRaVMhWCpXQbrBRa5MuKvLY", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "05e2e0ff4488026ff18e1700c8378f50e4b84b9222ee46d0898ba7debe7da7121f98edca635bd167345e7904ee08330c" + } + }, + { + "type": "Regular", + "proTxHash": "83e24c6c90befc8c5e7299b9ce27f9f172ba7494a8c07b91e75d7d391c900d49", + "collateralHash": "4244a3d47fa8cd0b299cc0af65dfbe0046791ad7b2aebd0f5cbe62b0f50dc6fc", + "collateralIndex": 0, + "collateralAddress": "XrKUsgRUNgt79YbPNLKLT4AvAJ1bGMyHKG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.60:9999", + "registeredHeight": 1039672, + "lastPaidHeight": 1984139, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127456, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtNhrnhfGSEvaFfDAJ5bhYoJ3WeV24h9zF", + "votingAddress": "XtNhrnhfGSEvaFfDAJ5bhYoJ3WeV24h9zF", + "payoutAddress": "XrKUsgRUNgt79YbPNLKLT4AvAJ1bGMyHKG", + "pubKeyOperator": "81a4c0e55e7257e9bb761829dcf4e727e1a440d63dc84977754a52f685651c270c5060c609200c1c09a4c9c673609bc1" + } + }, + { + "type": "Regular", + "proTxHash": "1bc144f5de86f1d631a146d0cb38670506fb17f67b2f620bafb83f4b611c63e2", + "collateralHash": "ba8441b403e71b0e5520af8feb583e03fa3fcdceb3983bcd1de974a3b8554814", + "collateralIndex": 0, + "collateralAddress": "Xo9gJe5ocqNmE8qebbEbLK5euU3VBsGP8H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.63:9999", + "registeredHeight": 1039833, + "lastPaidHeight": 2127470, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnAbFZWVDAdUvjPYFMgSnyS353TChwaPDF", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "94b94fa1e24a9dd749fce36ad738a8c6c8caae91f2e45636f21b11bdad75bb26c08e2ab9434f1109af87b3626f35cc26" + } + }, + { + "type": "Regular", + "proTxHash": "d3ddea9366c7deb606d1ba58e2911a3958d81f887dc8c1af69e6f90a0b0ec8df", + "collateralHash": "86511fe42c0fccce5d4eeeba47185ef5560924836f0bf0e38e810584c0180c40", + "collateralIndex": 0, + "collateralAddress": "XdXgvs8NQX9KuqfGz4xx8GhyP2BfSfutkm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.27:9999", + "registeredHeight": 1039833, + "lastPaidHeight": 2128442, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1904480, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcd2XLWuRWMYUnWJp7RJ2DXXGQ3MVcTGs8", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "132d5a7abd61180cdd71f092e32b84b3ba70fde01618aaacabe9633904e6959249e240e51a26de2aed0e5d07c2bfb75b" + } + }, + { + "type": "Regular", + "proTxHash": "0ff94b156645ad9a69d5736dd359b9a18ae9e5937f96cf4d1a89d3d6f42b8cb5", + "collateralHash": "6a1945ba80beee430d9f6b21e7a49c1fb64eff18621a4afb8cbcda68e7e0e969", + "collateralIndex": 0, + "collateralAddress": "XoiWhVMeL3VJKyfdhYfhEW8jteipYecPAr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.190.40:9999", + "registeredHeight": 1039838, + "lastPaidHeight": 2127684, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwj8svfKCDPvw9yPgoy47gVkoFi6Hf2Hmd", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "969aeb43c54f644029906795b5ba9113edf0eecd696a263bf94c45588097c92b93fa3147ce52c0ab662fe8dcc4075797" + } + }, + { + "type": "Regular", + "proTxHash": "b8b912783dda56e0a7c970d59c27a32f9f05103c3e51a966f7fc705eea9b9f50", + "collateralHash": "dde50fd3bad73767bc9b51cb6f34b4d8efba61e29653546b8cf13db0ae0559dd", + "collateralIndex": 0, + "collateralAddress": "Xd6iD5PeFNarzjmMCni1vyv66EoVWsA6Rz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.219:9999", + "registeredHeight": 1039838, + "lastPaidHeight": 2127688, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqkquaExukt1kqjhGnc5oBkdTLDPsjqLk9", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "97d53778858de64cff480f1e681e8791d1ff03321272ccf2ea91798073cd3c94d8593b803080d70b9242dc33f6bcbbad" + } + }, + { + "type": "Regular", + "proTxHash": "03d8a74b91a769dda32e2d57d108671bba2f9e759a5a60d99f53af2d019a96ae", + "collateralHash": "7061a8a281b6aebc6194621b6bbd54d5e5027ab738560366f9aaf5cfe0d3ae25", + "collateralIndex": 0, + "collateralAddress": "Xxqrma4BKafyAxauwfhvNXPRGj6zKyEBfE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.244:9999", + "registeredHeight": 1039842, + "lastPaidHeight": 2127692, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxBSgMEThL1E9VmrMo4nqffqF3SBz9VGSh", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "9520c21e08d7889f7ce539b1eb3b1ed06dbabcf3772bfb2ac0a093376e803e31afbc18422b02de47aa5437567f8885d7" + } + }, + { + "type": "Regular", + "proTxHash": "ad35702e6c9dacb45c21bf0ebea062b43d5a8e26280f6a9591dd6959aa017c48", + "collateralHash": "eb1b7db0b7704f25845ddcbaefe287da221918ef787e9ec1ea70d54e0b294a15", + "collateralIndex": 0, + "collateralAddress": "XyrFZb61CtMXxPie7788bPSmyrYSU8tE3r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.54.64:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 1980848, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128363, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XskyrEEC7v6gsPaGfdAe8ZBzfJeAsNHDUt", + "votingAddress": "XskyrEEC7v6gsPaGfdAe8ZBzfJeAsNHDUt", + "payoutAddress": "XyrFZb61CtMXxPie7788bPSmyrYSU8tE3r", + "pubKeyOperator": "0b28584f67853b6d542189a6ce71697fd41eafd04e548712897c3dda2b34ee734f97a5476f54037af81bbd05bc2176d7" + } + }, + { + "type": "Regular", + "proTxHash": "ad02e2e0a2f7fbe5dd8f66b7f3de574dffff5a7bd283795791ffacdaa9be2ca7", + "collateralHash": "fb38429fc0ea72fb87006b2ed68bc308d0d7cb137272db7d643e3d21ee2d7577", + "collateralIndex": 0, + "collateralAddress": "Xv7AhwVDhgAWFsw3ruSVw5XvSLCqMPfWqZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.243:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127691, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqh2EShKAwPwthpUnz32Hu3gZs7sa6C4To", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "822d261eb1db4422e0ea1cc33c6d8b12afcac3eacaf3da4edb8f293c19872ab011075b6823487d8df7ab787339218ac2" + } + }, + { + "type": "Regular", + "proTxHash": "7fc302d87dce2d611d1ad02a2d9af7c39b33323b57a72f7d79083271c5b445db", + "collateralHash": "9ef20313f3ff52e0e5f465d65fced9f19d139a23efcb3193f5633d0f3c23be52", + "collateralIndex": 0, + "collateralAddress": "Xu3ZZFjhLDn6X7TuS5sviHZ8cQJWeFhAXs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.140:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127693, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjFMCj2wSj5oBiJ4oBcRSPne9DkDsSRBj1", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0d8902d7a992bd1241e6a71c82b1c32cdfbf666fe2706e0028d3b8f082223e02776ec76b8cde689f70afb84618ab2d00" + } + }, + { + "type": "Regular", + "proTxHash": "2b934fef8fb93d8a66eb3f828d607b26f54da389290d0d8744578b90afdda233", + "collateralHash": "1ed70614ed8e71b7d04fb55e7ca2133bf8a7e4be12d259d462f904216b0e39c2", + "collateralIndex": 0, + "collateralAddress": "XozMKxYGazBnrnqFuJ8yFtyq6myc5deKLU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.138:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127505, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf9uyuuRf6T6CXtWFdpqwmf8MLWYqaFYdm", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "935bd0031efd4505f93c96831ab577ee7f4379bc4319a4bc0aa47452ae2b42c96911f3147c4a8728c8b3d04bd2b5e119" + } + }, + { + "type": "Regular", + "proTxHash": "3c73a6c8e74e64c1e0ef0fbb1658e3678bd729b6153c57ef7b5cdff252e7bb65", + "collateralHash": "ef978e7747e171db3694b3806bdacee1c4bd924b12359b7bb4c095a2a3152113", + "collateralIndex": 0, + "collateralAddress": "XpqNrJjQqsffPNF3sPyh3tEL4qatTpDSgV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.137:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127690, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjFA7GFYjDEAGRabfUrGuR5wupsB58w3vN", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "045f64dd776b01114ec874eb3966b1f3e4d94ae53340b1d832e4a9e88727f059caa53dd75d917ab4f01d91323370f305" + } + }, + { + "type": "Regular", + "proTxHash": "4d48dff2fbb97e77e554b524363426f0aca0cdfc2cb5af3526b4c3352c0aa951", + "collateralHash": "e728f741ba2eeb47c6b7ba7ce318a1b77f8c6afc8070a300ecbda0a025ea4ebc", + "collateralIndex": 1, + "collateralAddress": "Xr2jqRZo63zNixnMnagN8pkXPwoEYBFxHo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.136:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127689, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc336k44cYcyt4yHE34pUXbosAp8kY4rEn", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0585c3ac3e1b907acea9220f43f03c318db14186a2c2177c96b8e356ab8ec97fdbdab7b2e9410c5f64c37679a0c3b169" + } + }, + { + "type": "Regular", + "proTxHash": "c611d560beeec1e39d76c9279b6c97801c852b51a7fc7c1500c8dd06c2263050", + "collateralHash": "f1dfd7b4dea58b8c41677d384e6f0dfc6cd350d8b6180b588bc6bfd24ac4523e", + "collateralIndex": 1, + "collateralAddress": "XeXZAHtwW3KKgurSyyLui6WazcXrzPabhc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.134:9999", + "registeredHeight": 1039849, + "lastPaidHeight": 2127687, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121484, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxHCPHCvdVCpFYDoVbzf2TzS6e4VBmR7ho", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8a645ce4308da24e5aac11967873935e1369c16425c8bcede5ec6c135ac4379062aecd24e07d4d7b2ce4df1259548738" + } + }, + { + "type": "Regular", + "proTxHash": "bfe7622b8a4d85a272a333de7e2e9d666aa06c6f7af1ca89df795f88da00597c", + "collateralHash": "f9fcdc564e4baeb70ae6cfb7cd0cfe05abf8857ae13aca339ef3bbe18dfba26d", + "collateralIndex": 0, + "collateralAddress": "XvJtjaGmtc1zHwbHoVD92QbXzEnnzECjkk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.241:9999", + "registeredHeight": 1039866, + "lastPaidHeight": 2127698, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiRq5PeK9yDQaHo4NNAsM2WtUda2LwUWoA", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "15e792aa936209e1cef81f57261e005e11c0c9758eca86f2e93cca13a3227ade8ebcbf52011830837cb5a0ad50ac48f3" + } + }, + { + "type": "Regular", + "proTxHash": "616d923dce7f05d3909f323c494dc80141849ffb26af7ec59eb32a6590883628", + "collateralHash": "8373d03e238646abd3646066c57eac06fb73e41fe8d08e83dc213ab02b83d9ca", + "collateralIndex": 0, + "collateralAddress": "XsC4niDYuhNSMektjAXifjXDNsMWEyr6ep", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.132:9999", + "registeredHeight": 1039866, + "lastPaidHeight": 2127695, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh8cBcCShJX5mXmUMVjw6mP1tBfiSb13pp", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0d1631266a1dda98c7ecead10d4fb3cefde865eefa1c11fdd6a820a3e2f5b52cb634ac91a1a9ffab35275f0a74d9c95b" + } + }, + { + "type": "Regular", + "proTxHash": "ee2d98b33bf531c9a5e23dc2cbff757eeb8c2a5f325777857224843a0f7f5c5a", + "collateralHash": "a0a75a2a4f349380656f9179bee214bccf07b5418fa500afac12b715f6792ed0", + "collateralIndex": 0, + "collateralAddress": "XnaTwyXPUux49ZLGRRGFkEnLr1omxFwZsP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.130:9999", + "registeredHeight": 1039867, + "lastPaidHeight": 2127696, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv2J1e2MWQCJMkGrqKW7ExsfViBFNVasnk", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "996ec2dacb64ea4ca23ad01d53d08fa418cf32f7765e14bb0af87b92263d7afd690efc3a2586601c98683068016be2ab" + } + }, + { + "type": "Regular", + "proTxHash": "11f9f00be4344714274c55f5cbef32daa88db524d80cfbb32e438bcf3ca0f124", + "collateralHash": "6533053eb5e666c414b7bc0d23bf6f2e8a8fef623cb7fe1e8449952b98ee6dce", + "collateralIndex": 0, + "collateralAddress": "Xe1t5R9cXtxjbLWjeXkPeRv1rZVZ1zjhv9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.66:9999", + "registeredHeight": 1039867, + "lastPaidHeight": 2127694, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsbvoRK3a1HhJEp85RH4nE2Z1G9VyUkuZQ", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0c80c198d0d1cb628f08af4f229bd9846ff351159a911ce37ee145db6372c8975ca4d34577d549a2e8019599107f784b" + } + }, + { + "type": "Regular", + "proTxHash": "b44edbdffa9b7dbb21c8a84775fd3cc80ae1234099bf2e20458e93e1d5f9a4a7", + "collateralHash": "c947f059098225dc792d8fc1cac9fc55067bec7079bff2cd1df747902ad2d460", + "collateralIndex": 0, + "collateralAddress": "XdGGiXwzPgLquEByWNkDhMfmhrb91iWpbp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.23:9999", + "registeredHeight": 1039867, + "lastPaidHeight": 2127700, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyfnVJyVibtTDgzR2d9TNfJZ4xmGiKV9u9", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "983660eb7ea5caabbf2423e39d06d1b3099519e8cff8d515dc6799e32799a3e64afd9a60486e856f4265087021ce0265" + } + }, + { + "type": "Regular", + "proTxHash": "53ee6c66f32d26d9a1b7c59c9250f38da94e03d7d8c075259bd654981b46c487", + "collateralHash": "9741eee868642f640958786e27c9f098e200dfa291acc0215a3dd1bb8bf5684f", + "collateralIndex": 1, + "collateralAddress": "XmmA9xqq6Gp1KTbbiBuKL3MdszRcxo7VhA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.21:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127699, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnsaSJLG8ypGNTJocP4ZFRBj5usmSHRxqr", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "962a9e9ea0437968f1514f8267d6185062b0de15009fe812f70d38f8f24bd6e3e23ae4f8f215bf4c8a4ee1ef951f5997" + } + }, + { + "type": "Regular", + "proTxHash": "4546242b596c24cdbd854af012f473a6bee991442da127f928b6bd4682f59a66", + "collateralHash": "9218a2f30907b16e027d79a305a525b3ddd5d8bc732e484cf21284f7c5eb08d6", + "collateralIndex": 1, + "collateralAddress": "Xu4AwNafBg9groyZKHduTkgVjitBBR1KQm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.123:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127697, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121485, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xinrdfs5UQ73eno2B3Y6vi5CNSZeJ8mmAt", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "05b998954c2682f4d1e7aa164e053f965eb20567565466d124691f16b9d7ca438195558fbf48ecdd2c53246a84fac79f" + } + }, + { + "type": "Regular", + "proTxHash": "42c105a76a51c7638e5d4b94d7fcba256d460c2af05923826a62ddbff7ea89d6", + "collateralHash": "11f42a4fc0ae47618685c0e8c86b28f3498356c7e5079034b3c6366e032655c5", + "collateralIndex": 0, + "collateralAddress": "XrN4M62KVesqe8tmZuUBcmEe83WgiePMch", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.228.83.84:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127706, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYf2LAd94RSNUXFLtwD4tTE7PFZ9U9euv", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0e89e74ab7ca34eaacb9d0170111ded16a5ca19afc47624aa1b4b3841d77cfa012ef094a032ecf8a016988bc30e45f87" + } + }, + { + "type": "Regular", + "proTxHash": "c519aab6118ca20a71b212484dc72173e0c724b03bd0b0fb15d4fa0efacad7e7", + "collateralHash": "b09c9351807b200956fde199a5f40da46f804951a31263efaeda9d3771ec1ab4", + "collateralIndex": 0, + "collateralAddress": "XnWv9Rs7nqY2GskMu2tUe5ZFxmSUoZ3RrC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.243.112.9:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127708, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvcWQRic9WijGYsAADxB79hz8asLeCB2yr", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8517ec69eed245311b92d8373ca234feef7ab1195a86fb9fe080026c9a6178e47535f8b169f579f1b4229a678816d486" + } + }, + { + "type": "Regular", + "proTxHash": "1aed5d6ab5397e1409623199ee7359d8606522c2318287750ab67e43ec6c71d5", + "collateralHash": "8aaf67d3e0e726e6458ff98ff87297cc47e85d8b07cc1158facb8e92e2cf64c9", + "collateralIndex": 0, + "collateralAddress": "Xu7pU2QV7sX33xs1Y7prLPxw7BwqQV8Ufm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.163.0.174:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127705, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xij3bdiHku92rRRbs9BKouYHacsZDwiBpS", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8a8c4e4c4bec3ab0088ad7206a4144ba40ff51b47b16152298ee708a312150efec7f10527d74373b2a6d8cadc0967c2e" + } + }, + { + "type": "Regular", + "proTxHash": "c242d1e7a6a4c671ed28ea1204bed222d05163ca6a364714f5d7e9281e3c9cda", + "collateralHash": "b26eed0551af0b9f96fcaf93d7538b72c7dd44494fd8f5af966222c85541e8d2", + "collateralIndex": 0, + "collateralAddress": "XhYx1MDMSfQgQDS8u8kuMetqCf81JBRqaZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.133:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127707, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhCdYfjrUYsM8zaTcQe42oZmrD9XBz6y4q", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "877b82bce5884749ac054a52466302b5b854835615c1d0b6c6d818f7b64eb207b8098768a03fc2738f80ff9bedcef061" + } + }, + { + "type": "Regular", + "proTxHash": "bbcf99e4d0e27628fe6cfc9809f81d3a2856193e9e5a5a6c117901044cb822b3", + "collateralHash": "a142c1b0f31c47751b70cb34555d7502d19876433be4765b2fabf7652d51ed9e", + "collateralIndex": 0, + "collateralAddress": "XoZFp59KsFvPGAXeqLUGK3fWvcyezCSJ1o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.125:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2127283, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121144, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XifSAzGvyYf6Ls8edL1HDGN1QzuwWBV9pG", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "06f68ffa7fe87db7cc2279a43ed1b156e3f9654b910cdea162407d738ac23d6292ecdacd9fdd0b2df52add3c8e615359" + } + }, + { + "type": "Regular", + "proTxHash": "b290c827c973307d2cc35e21f6407d7909b72202916f8ab13b2612a8c3a6ef8c", + "collateralHash": "9d3d88bea98bad6ba81994d048f617fdb5ef208803c55daf2eb4210926430219", + "collateralIndex": 1, + "collateralAddress": "XgrjLQgSWTVF1heANUxD5DmEx8qWKMzG9W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.128.156.30:9999", + "registeredHeight": 1039873, + "lastPaidHeight": 2128808, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119536, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTDM1zhnVUGsmhBe6ofzZgaWk6wi5kitP", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0efd93b586af7f7e5770085ffb7acbfbb1e405bb1a20f76e8dce797316d17e6b161d0e84c1743c9ea50bf7852b171aea" + } + }, + { + "type": "Regular", + "proTxHash": "0f7bc171ba4ccad22ed4496aa2c68ea948e21453b6067f865c62131e54f4ae7f", + "collateralHash": "3fe122faf95a1f64497fbfa37274f3071f5e9766bdb1b9cd0de119aac46da98f", + "collateralIndex": 1, + "collateralAddress": "XcVdJPUrEwnMNvEKqA6THWoBD1jX1qgfwX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.117:9999", + "registeredHeight": 1039875, + "lastPaidHeight": 2127714, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwBFTdMpBU9BjMAK3t8Ekwu7GwAjkdExo3", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "829c943f21b5bda506a141161e9737408975e8ac23c89353995df42aedc0d5137b92ebbd9e413dc7dee318ce9351c19f" + } + }, + { + "type": "Regular", + "proTxHash": "018f4eb9bf31743baf91aa22640e26ef687ad266774d9529e258a06e024646e8", + "collateralHash": "8516432b3e8b3139d01abb3edaf8a2a5c09e4f22946f8d8de642605f07b1d8cb", + "collateralIndex": 0, + "collateralAddress": "XjszbhD26ESxYR6aS7e8os4CVRtSJVJ7F8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.25:9999", + "registeredHeight": 1039876, + "lastPaidHeight": 2127717, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtycG5Jmon5VKaAkA5gH9TEeu8hbBrWwVA", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "90908933bd97769966d74a7a85fad9ce894ec6dd943b71678a2ec87a155a9a0a390707e64d384a6452fe478771262504" + } + }, + { + "type": "Regular", + "proTxHash": "30a3d4d6defc8d2aa0d2a1b92d1124091b472d1f198616c870c0314f43f75d43", + "collateralHash": "db701e6eb00387292e1f75dcb7a141aae14fdfabd4663c2f0287d0abae90ef3e", + "collateralIndex": 0, + "collateralAddress": "XkuHTQ4jVctWj1kxafKLnLxQvKGsQJF1cK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.57.108:9999", + "registeredHeight": 1039878, + "lastPaidHeight": 2127712, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfV8r4ogFiiAGBHSX7dSrWSfNRqGy9dfqt", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0abc9b9ee35465c024cf4c72ed60dcb600c8657e6deff6f4ad69400b5f3a9d5140bb7c09c5262cd1265c093a7cb6c184" + } + }, + { + "type": "Regular", + "proTxHash": "c8c0705b11a8bc3e001b00e5eb74a381a66d420f301772082f606902aa47e880", + "collateralHash": "a98206992b4d44709ce169b22c8a1865d3ea4850427fafd799d4d0a73bab6cf5", + "collateralIndex": 0, + "collateralAddress": "XqzUCXf1WWxPsqq11VuoJAaxGTkaqKxZ71", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.243.114.238:9999", + "registeredHeight": 1039879, + "lastPaidHeight": 2127715, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhW6PPVDg5AdyeoADzz7c3eFEDCUZKYWyR", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8d11628045ed7318932dcda1e7ddd8fcacc87a602f918b51422594cf2597ac9de9144a16904b8a6708f8e3ab453fd3cc" + } + }, + { + "type": "Regular", + "proTxHash": "c942c25954b98141ced38965cdf43c204bbfae19f315483edb61103902125625", + "collateralHash": "d7526432e38ef3079893c13bfdf811a88c88500e551f3a1387103aa61a483700", + "collateralIndex": 1, + "collateralAddress": "XvVHLDMKaW75T8giq24FD53mobeiZo84YS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.20:9999", + "registeredHeight": 1039879, + "lastPaidHeight": 2127711, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfFVrRbL8rpK7D2Q5MpY1eVN7DiMUZuAsj", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "83560c4e3eb95a0ed4c549bd59b1f6a2f01b13f61adafaf75a442e57825852d330dc4a4163c02da408bdfbd8896a7c43" + } + }, + { + "type": "Regular", + "proTxHash": "1387032748c2a7b1f37c99dbddc81a916e8335b854d565e5ad965dc75469a6c4", + "collateralHash": "5a594007321830fd4b5c739664835179d4aa0e55c0630357aa9ce13bca74078f", + "collateralIndex": 1, + "collateralAddress": "Xwq4DeiFxfew4S4Z7ad3zimJWVCFTsZvbz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.56.108:9999", + "registeredHeight": 1039881, + "lastPaidHeight": 2127716, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121488, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiNLCJsGAUXn14P23DamVMxZ7ihxgDFqGq", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "16095b1a2e9cd1a9d1d459251977e90533d7ef11766880279b57651718026d7428d6961d2cb2b669da89a8bfb24e74db" + } + }, + { + "type": "Regular", + "proTxHash": "f8829d300f661724a4a68aabcca16039f0d0cc8d07e2c06360f9df0f6c585c3a", + "collateralHash": "51781b7ce21d1eb4ed0f3769fb80852dfc442692bc8e11f13fd34bd7cf63449c", + "collateralIndex": 1, + "collateralAddress": "XcbEt9PJvFpMDtC6gKKdep3JZzJ9jcZzTR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.231:9999", + "registeredHeight": 1039883, + "lastPaidHeight": 2127719, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121489, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjezuYH3rcyMboxDu1BrdeLc1z68bJFZeo", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "08fcd86f63506de6087315e04d685d32cd2ec79e79fc4194702dadbb9cf3efa1d8069b3e10ed44280355443f02ac7fb4" + } + }, + { + "type": "Regular", + "proTxHash": "9c2e6a26785e52b88baa9dd00aa263a47283d9ce5221aa76acf0024389150a67", + "collateralHash": "64ae398db2f7e131a39adca738ad7e8ad6511cdff7ded5c76a401f8d1281e6b0", + "collateralIndex": 1, + "collateralAddress": "XchhKyMFAYrWHmTvNey9Mk1K5WGE2C11mE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.246:9999", + "registeredHeight": 1039883, + "lastPaidHeight": 2127723, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfLyyvmREj8Le64RSE5ieAjCwFBaHVDwGT", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "88eddd803b13ee7c00ca3b791e10d8423009a1655b562d59fb5a45c3c2cbb133c0e18047049718b1a6703c89b7e09364" + } + }, + { + "type": "Regular", + "proTxHash": "53560e11ffbdde3dde390e6267d1285bace0e601f7e2e5ee16c2e0c171b551c2", + "collateralHash": "a8942ef7cf5de9ef43112dee050755e675719a8409c3f4cce31431bb7ebb23b8", + "collateralIndex": 1, + "collateralAddress": "XiBQhQ4QL9VaP2MPUvUE4x5iT3oRujo1rg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.187:9999", + "registeredHeight": 1039883, + "lastPaidHeight": 2127727, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnELxGxEnVnLoNmgZwkBVnrVSa85domMPH", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0c82d19581261559e55dcc6008249fea598abf602e0ff9246c08a6564c35ecbccb736f655997152c1b1dd500ffadb14d" + } + }, + { + "type": "Regular", + "proTxHash": "69588fabf5068768eaaa447334e6efa4feda451b9f5474040ddac122d81d426f", + "collateralHash": "2dcd8fd136765fb033efd190a9c1f2bafb7749801b678b894301ac79e8fe8758", + "collateralIndex": 0, + "collateralAddress": "XfKJtgPkzTt2Y8jBMD2gC3VqjGFhpn1rww", + "operatorReward": 0, + "state": { + "version": 1, + "service": "96.44.156.197:9999", + "registeredHeight": 1039884, + "lastPaidHeight": 2127724, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhwbFsRLuhnkvxfjdZH3SAdQChJrzSVzTm", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "939274fa4bab538fbcacaea351c698e04d4322af5b47cf70266348c2bf5879dc03f2061b9ca0a003efbe279ff896172b" + } + }, + { + "type": "Regular", + "proTxHash": "5955f23d69a3f98bd6d70bcabeb80b79ae3125c341fa910abd604be6e23dae90", + "collateralHash": "9fa476f02cb7b6db42ac111f75213ab2fb48638c74fed8fc8eb69bc577039d1d", + "collateralIndex": 1, + "collateralAddress": "XjdBdyGCSzVArJXQExL2ajk1fa47BJatpJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.86.163.147:9999", + "registeredHeight": 1039885, + "lastPaidHeight": 2128710, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877115, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrxMg8xxmzCoy8Si4YVdchoXk3qFkTE9CJ", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0adfc5961dd6b09d937c355fd0fcaaf689f80bed76e5a2e78ab2439edf146941686e36b791dcc53be90ab7a87bba7b07" + } + }, + { + "type": "Regular", + "proTxHash": "11cbc637f8f51bf0be8d40323fe45efd2ee061e05d81f2605418b41eea46a29c", + "collateralHash": "a71f304b4f1fe71faf0129eb8e5c4caf7bdd1f4f33bdcde31ccaed5a54938029", + "collateralIndex": 1, + "collateralAddress": "XpdozQyf5ksTZzYydcHv57QbBTsZzmuJVi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.29.56.109:9999", + "registeredHeight": 1039885, + "lastPaidHeight": 2127725, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc9bvDzWdDjGW3S4aTUbKZBAwqtWX7UEL1", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "8d823bdc8565b89bd28e0ed991436863eae499850899d4c9f06a7d5bc7f2af5a0f26503814fcb3923e06049647405da5" + } + }, + { + "type": "Regular", + "proTxHash": "d485c18173b851f3761fa3f717e00b104b6c564ae6c91b36dd302be8a12a6ca5", + "collateralHash": "51d1721351698226becf26c723f662a1bfbbd68053b3a33917884f779519ea30", + "collateralIndex": 1, + "collateralAddress": "Xu6Jf3rRR4KwVsyoWbht6yVgqsPeJXiKYt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.152.0.214:9999", + "registeredHeight": 1039885, + "lastPaidHeight": 2127726, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsRCo22c3uB2UKsgEfHsAQoHDC6dU8J93a", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "0114955296802340f9f67e4dde4a6cf1b5d6f518fe09fdf61600aba3b27cc1dc36dcac48c638389f1a63f4f53171cd35" + } + }, + { + "type": "Regular", + "proTxHash": "7bbba6d20097c5754d1f2b74254be9befc6e3ade4a049afe293e3c11593dcf18", + "collateralHash": "014fb8ab3baf443834a6301d4d9e954aa6710a4fdbab801be8226902d1855b43", + "collateralIndex": 1, + "collateralAddress": "XtwifGxRAxqoYpmfky5E4bmD2Xyypkxcgo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.61.107.222:9999", + "registeredHeight": 1039885, + "lastPaidHeight": 2127676, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121483, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxa9JV7vF2BLsDA54n42w4gTJMwFa4Ni3h", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "13e63365465ef3c4fab41da760892f8164f767d27a3df4e44d1470704b43ef2586c32ef36de555638df0f09f890d0d62" + } + }, + { + "type": "Regular", + "proTxHash": "c57aff0505e7a1ffbed7e60d089236d396e36ab4c64c473926f56b2867a8332d", + "collateralHash": "66c2ccf2c35ff473a0ba9a2e896bed28cc76ff580bfa04d4d2d27e8717e3ed82", + "collateralIndex": 0, + "collateralAddress": "XmMfB8fL7TKuG8Aymkfszh6hBNLMxxnPjn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.56:9999", + "registeredHeight": 1039953, + "lastPaidHeight": 1978461, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127275, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvrAbXbaqG6n1RDzdAnnKnJNfSTy2iSHhy", + "votingAddress": "XvrAbXbaqG6n1RDzdAnnKnJNfSTy2iSHhy", + "payoutAddress": "XmMfB8fL7TKuG8Aymkfszh6hBNLMxxnPjn", + "pubKeyOperator": "8001e702fcff4389148ede7c9515b5dba5cffa05160c1d17055e6f3386dec52105e0d88b3d21c86d5dd34f2c6475bccd" + } + }, + { + "type": "Regular", + "proTxHash": "51a4fb382b4469c9a2fb14676a24774a61f539103ceed79f18d2dd3ede6e671f", + "collateralHash": "d6b1f23519f591ad259d305b015e2a61adddcf594b28aa56d64056ef21ff4a2b", + "collateralIndex": 1, + "collateralAddress": "XnXecFHdEeTor3GuN28GzmVo7s1aiXNDdV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.59.62:9999", + "registeredHeight": 1040046, + "lastPaidHeight": 2070964, + "consecutivePayments": 0, + "PoSePenalty": 3799, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2071317, + "revocationReason": 0, + "ownerAddress": "XkCz8bmEDu5jwLvDWkmuThtWmSSiLu69T1", + "votingAddress": "XkCz8bmEDu5jwLvDWkmuThtWmSSiLu69T1", + "payoutAddress": "XnXecFHdEeTor3GuN28GzmVo7s1aiXNDdV", + "pubKeyOperator": "00223eb86a92c58d7d528bbe7c5ad99e77b51ff5ed81425a8a460916d068bb42fd7d8e26f0ea475150de79cf20ca8ee7" + } + }, + { + "type": "Regular", + "proTxHash": "70e1c049e9d35dbd7655516318896b9712cecee307dd6d1b316254acbea14896", + "collateralHash": "2a286f5844fd40235e268fe01ad49b914fafb448f8dc748445629c5b8b5b1afb", + "collateralIndex": 1, + "collateralAddress": "Xf9kmRoFdQU2WXMRxgU7cqhWTjp8e73jt7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.33.74:9999", + "registeredHeight": 1040050, + "lastPaidHeight": 2067593, + "consecutivePayments": 0, + "PoSePenalty": 3802, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2070762, + "revocationReason": 0, + "ownerAddress": "Xm1nf12Aeo3XHxD94X35mC2DAvXdgHmF1P", + "votingAddress": "Xm1nf12Aeo3XHxD94X35mC2DAvXdgHmF1P", + "payoutAddress": "Xf9kmRoFdQU2WXMRxgU7cqhWTjp8e73jt7", + "pubKeyOperator": "99650c6f0b401e1ffd2f63b9489bec67cff47d0c8da20276116f02a98de5dfb000be84054d3fc82b032d1c92378ce7b7" + } + }, + { + "type": "Regular", + "proTxHash": "5cf844a788d706abe786178182551b8712c0718c7f1944804d1611ef37a5ad3d", + "collateralHash": "f39e7a69479b7191915370321e6ee3dbc1ece118dff9340b7f00528257849aac", + "collateralIndex": 0, + "collateralAddress": "XbcuwK7tJikAbdYhWB3ySuicLadDRpZJaH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.186.39:9999", + "registeredHeight": 1040062, + "lastPaidHeight": 1983379, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128323, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqAMH1VuWP9iQXdr9QMa9xrUkfQ6oMFheB", + "votingAddress": "XqAMH1VuWP9iQXdr9QMa9xrUkfQ6oMFheB", + "payoutAddress": "XbcuwK7tJikAbdYhWB3ySuicLadDRpZJaH", + "pubKeyOperator": "8451624e5fbcdcf1703e9c1e80cef6e07e648ce343952f3e30c82c17c64a934870b54f30249398532e4a3e74a1e07df4" + } + }, + { + "type": "Regular", + "proTxHash": "df722b745603ebaca279e83d5c9f04ded5abb961b2901c863b4bee167385e6a3", + "collateralHash": "3ccca43d34f6400b1e7d09a4008a04d040597adab6b1938cc0470a309d4491b0", + "collateralIndex": 0, + "collateralAddress": "Xq4UyqYwdhDgp9ztLS4uVUcTza8pVh86Dt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.152.222:9999", + "registeredHeight": 1040121, + "lastPaidHeight": 1984838, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127896, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfwjsVDttRXsofhDPtLdLb6ZstWQmdtGVR", + "votingAddress": "XfwjsVDttRXsofhDPtLdLb6ZstWQmdtGVR", + "payoutAddress": "Xq4UyqYwdhDgp9ztLS4uVUcTza8pVh86Dt", + "pubKeyOperator": "858b723abd9fcd44f34c78196d6800baa4ce6122b2df0c870877e30838fa8507fd2a60b1f714b801a07f4d42b62c3797" + } + }, + { + "type": "Regular", + "proTxHash": "c4f10ed9ebb9cc9dc01f28925728b5d4f438dbff52217ca95374884a859e72c4", + "collateralHash": "caf186f4f0b18a5c49edcc8c18f774381105c3940b6a947cc082e8f5faf64db3", + "collateralIndex": 1, + "collateralAddress": "XmRhKirgtG57nq2ChcdA23Wt6FivFF6EnS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.5.179:9999", + "registeredHeight": 1040139, + "lastPaidHeight": 1985122, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1881032, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XqCte6iF33U1PoZ9qVBWu7FG7TwgAcH1ep", + "votingAddress": "XqCte6iF33U1PoZ9qVBWu7FG7TwgAcH1ep", + "payoutAddress": "XmRhKirgtG57nq2ChcdA23Wt6FivFF6EnS", + "pubKeyOperator": "0b11359c950e99239880598b0c68843085ac409ddbc7699244412c4e7d29a2d5e793ea1182943c5d2740b75b3098d662" + } + }, + { + "type": "Regular", + "proTxHash": "1737a5ecfceff261c4c528c5f71ecc489c30808e8b5301e8f7ec348a079fdb0d", + "collateralHash": "6c0e3250f09e1e435a05f386e940ddd7e6fc40bce567acaabddfdb2f126ec330", + "collateralIndex": 1, + "collateralAddress": "Xoik58Awn93wNK6utACtBJqZfoB7RznxQs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.163.0.45:9999", + "registeredHeight": 1040209, + "lastPaidHeight": 2127721, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121490, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgk9Dr4tMhgdxUBqxVbnTF9Bh33BQ9L9Gj", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "81e54db3f12baf6018ed8252548bf6e775ef0cc5ad5ab937969fb5191e80aec2cc4bc5fcc965f8a20e5084f89bb37471" + } + }, + { + "type": "Regular", + "proTxHash": "567361737007642a1044e43544aa94030604d477b1675493b0001fb38a2570e7", + "collateralHash": "8bd13f7ae8df0029abc8542beb0865c8e030a1370206217ba677ccf32c7d0436", + "collateralIndex": 1, + "collateralAddress": "XiDan1kkEoCQST1FCLNFbUMPFN8rF2VuR9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "2.56.213.218:9999", + "registeredHeight": 1040218, + "lastPaidHeight": 2127738, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2087808, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmkouyEBzByANyRKwfjVeRepsZaLDsQMBE", + "votingAddress": "XmkouyEBzByANyRKwfjVeRepsZaLDsQMBE", + "payoutAddress": "Xig1STVJhBTbWYvqbwkSFYixay9DpffSGh", + "pubKeyOperator": "91474741cc90422121d9fa752066ed77142881a532919e12673cf5ce78155b1a56f18431bca33733409b8b5f87f2177e" + } + }, + { + "type": "Regular", + "proTxHash": "11d8588fd7555f7276a37a1dd91e24f3d1e7b8e05018a69a878b3b415f7ef21a", + "collateralHash": "b4bc8e63e2d703ba86b74f9df2d13089e07eef45afbd31614eb6ad29d4f9acdb", + "collateralIndex": 0, + "collateralAddress": "XrTev562qrPYuGHH5GcpktGCfo6Ua9qFJt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.12.33:9999", + "registeredHeight": 1040323, + "lastPaidHeight": 1985357, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128581, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvHfGGNZX2NEfGw8Cwzye1ebi7SYhBrHpw", + "votingAddress": "XvHfGGNZX2NEfGw8Cwzye1ebi7SYhBrHpw", + "payoutAddress": "XrTev562qrPYuGHH5GcpktGCfo6Ua9qFJt", + "pubKeyOperator": "8c77c140c1376380b9457b542eef5d0bf8407497d5ee298332ea35136d314e7664e86f1391b868a79052bbd29939e642" + } + }, + { + "type": "Regular", + "proTxHash": "ff6eef134c820048043b923fdd68d73d0010f167bf63c7fcec80ad28b8d9e74c", + "collateralHash": "78e6a2072a2ffa81f41bbfe89421949488f18f2f96b4abfdb7265b8d0b42b843", + "collateralIndex": 0, + "collateralAddress": "XbPonST1mXRSYBxuwAptwHdrfPgF8w4bwv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.11.82:9999", + "registeredHeight": 1040423, + "lastPaidHeight": 1987042, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1385287, + "PoSeBanHeight": 1988661, + "revocationReason": 0, + "ownerAddress": "Xs9WmcCse81e4BkwqkLecrHxSj7THpcffT", + "votingAddress": "Xs9WmcCse81e4BkwqkLecrHxSj7THpcffT", + "payoutAddress": "XbPonST1mXRSYBxuwAptwHdrfPgF8w4bwv", + "pubKeyOperator": "9034d1c46b1e7b171eaaf2826d1ff8a4c4d925a5e3013ec7d8d741ee06a33ac682b010e425d07bb15fe7d9d951e3e5cb" + } + }, + { + "type": "Regular", + "proTxHash": "30d4ebcd100f039329f2a597e3e1e22e07e852b931b54c3e16279ba1200d8f5e", + "collateralHash": "b4fc941ab961b955c59e2f12a66116192132e9205ac645a866b62fc72644876c", + "collateralIndex": 0, + "collateralAddress": "Xo4WWk3bSJjg6BBb3sMoLVnqVQEruzEBTs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.61.118:9999", + "registeredHeight": 1040430, + "lastPaidHeight": 1981674, + "consecutivePayments": 0, + "PoSePenalty": 4016, + "PoSeRevivedHeight": 1881075, + "PoSeBanHeight": 1982922, + "revocationReason": 0, + "ownerAddress": "XmTrHvjhmPiZW9UjFMwrsuU5vbDh1VBRaG", + "votingAddress": "XmTrHvjhmPiZW9UjFMwrsuU5vbDh1VBRaG", + "payoutAddress": "Xo4WWk3bSJjg6BBb3sMoLVnqVQEruzEBTs", + "pubKeyOperator": "075aca7e96c83fef55d198e8ee837e20ec0ea8652a3f5ebff65de8c9a215f1f9203e8d4a9cd41935b6b14557ada4b256" + } + }, + { + "type": "Regular", + "proTxHash": "17e2310fb28bd4b5fb09a17d171ce48539e04725e79a5b33da3ebb5219357fc6", + "collateralHash": "0f1e2356ecc11e7f7a07a889d38484e34dd3f6057a75697849647cd1b04eb657", + "collateralIndex": 0, + "collateralAddress": "XgMMszurpJgHuNEynpdjL1ByV46Z2iuqPH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.128.50:9999", + "registeredHeight": 1040504, + "lastPaidHeight": 1978497, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128088, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrHe3RM3Wux7joXcesY8xjjJVjNx9HGrxm", + "votingAddress": "XrHe3RM3Wux7joXcesY8xjjJVjNx9HGrxm", + "payoutAddress": "XgMMszurpJgHuNEynpdjL1ByV46Z2iuqPH", + "pubKeyOperator": "1948d392912320b0636748999a2c2e64615e0587711553123a013089d369501ca9353d0c05732ba18dfa2952043ffa1a" + } + }, + { + "type": "Regular", + "proTxHash": "11458559445f58a76496b3da896d5e2661a93b0750bd4a1cb6bc7ccaed8ebcdb", + "collateralHash": "ac82bc29b38f1feedb2197e6852b4220bb47949b156e2d9042fb0d3f63e0b95f", + "collateralIndex": 0, + "collateralAddress": "XqBywujYnE2XSQZBPTWNfFadedySM7Ax7g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.82:9999", + "registeredHeight": 1040575, + "lastPaidHeight": 2128522, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1158527, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XccffPUUX9QsnpCVDDY3agKPEBdoUquqU9", + "votingAddress": "XccffPUUX9QsnpCVDDY3agKPEBdoUquqU9", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "93ce6b5cec263f0cdf19e817398ab4f7a142e1346b1641d20e251d5095086acb701d48fafca05cadd6873c5b60099bf5" + } + }, + { + "type": "Regular", + "proTxHash": "7ec1b79eb53ac708a95c2eaddd71b7e793a1905edfe23186f3b146827affcc01", + "collateralHash": "9a298301faac44eb85dcf42ed23aa792c6e9fe50c58f659bc5892a654f4e5608", + "collateralIndex": 0, + "collateralAddress": "Xj1xqorjWqyDYFKwNsQbREpRUMJE9CMd9w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.149.233:9999", + "registeredHeight": 1040615, + "lastPaidHeight": 1985347, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128659, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu6y69vwQWp6ptTmSoAYHsGCve6YpDiRHk", + "votingAddress": "Xu6y69vwQWp6ptTmSoAYHsGCve6YpDiRHk", + "payoutAddress": "Xj1xqorjWqyDYFKwNsQbREpRUMJE9CMd9w", + "pubKeyOperator": "976b2c46d25170251ab4c372ff5b8c2f64078201c150e3dc9f4134cec69bf23221fc168876348844afb245e733cd8d4a" + } + }, + { + "type": "Regular", + "proTxHash": "cd41c7d470d77cefec5c3929faaba082f18d6fcee4e7140ef325d41050eb501e", + "collateralHash": "4d1f3e28333edeb582b1f36195be4e18ab33bc50ab4121618d021a15eb1e83a2", + "collateralIndex": 0, + "collateralAddress": "Xxheyu3WUiCEbVY7J6LgPwgAJKfW8c4zK7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.156.220:9999", + "registeredHeight": 1040659, + "lastPaidHeight": 1985353, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128708, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxykZufmsRp8d9YYUzhsxL7EjsHbjXWZQF", + "votingAddress": "XxykZufmsRp8d9YYUzhsxL7EjsHbjXWZQF", + "payoutAddress": "Xxheyu3WUiCEbVY7J6LgPwgAJKfW8c4zK7", + "pubKeyOperator": "95e7c2398e85daf544e2d10bc05b42918d3499526ac9bb93a1a2733a1eca5f08ed654a6236b0f6e44ed7771959222a45" + } + }, + { + "type": "Regular", + "proTxHash": "fb2d8f5be43b3b96c9c9350787e39233afda9c312e851189f80500ddf21b8fdd", + "collateralHash": "86bf03902ee4f9d8c79b7e95806ae5cde741cb8ebecc9ed0839d02ede6bcb848", + "collateralIndex": 1, + "collateralAddress": "XivguYF5f847fvcMJtWYhXeA87nj8pJg4b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.182.189:9999", + "registeredHeight": 1040692, + "lastPaidHeight": 1979648, + "consecutivePayments": 0, + "PoSePenalty": 4016, + "PoSeRevivedHeight": 1879281, + "PoSeBanHeight": 1982058, + "revocationReason": 0, + "ownerAddress": "XgcB3W6B9kti7W8HWUmtEPt6pY7UModTRZ", + "votingAddress": "XgcB3W6B9kti7W8HWUmtEPt6pY7UModTRZ", + "payoutAddress": "XivguYF5f847fvcMJtWYhXeA87nj8pJg4b", + "pubKeyOperator": "14d41586a98cc8aab22557126a655be437946455dccbafd215dcc1ccc9dce6d2444ea6ae94dd1685d44e00199bbafb3c" + } + }, + { + "type": "Regular", + "proTxHash": "3abe89c3c0153e225931c032efab644731157635e67c80f23c8c20e7a20d837b", + "collateralHash": "a5598870ced772a726b885830cee316cb2de7daeb2697df060828409f4e1e20f", + "collateralIndex": 0, + "collateralAddress": "XqCqEk81TShuzugqQNCsLZT9BEJtQUXeP2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.139.109:9999", + "registeredHeight": 1040717, + "lastPaidHeight": 1985494, + "consecutivePayments": 0, + "PoSePenalty": 3993, + "PoSeRevivedHeight": 1387736, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XobPCqM6xJkdukvUf14q5UYEd4HCHqqxxj", + "votingAddress": "XobPCqM6xJkdukvUf14q5UYEd4HCHqqxxj", + "payoutAddress": "XqCqEk81TShuzugqQNCsLZT9BEJtQUXeP2", + "pubKeyOperator": "97fa07e5b67c33de9eb8fa01b2e06e849c9f73da4840c8f037c15e3eba29791bbd47e2be5f67abd566b13223ed9e4e51" + } + }, + { + "type": "Regular", + "proTxHash": "3a21b44617555e59998b5c0421a24bbb7cb9cd923abf7fcf68eb8148548a198c", + "collateralHash": "3d810eef8549b0481e7437b307d2b2340f5e248c84bb983f852650df2867ce52", + "collateralIndex": 1, + "collateralAddress": "XinnPCJsEqyvHiusgikA1bs7aVDBq42f9K", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.5.159:9999", + "registeredHeight": 1040755, + "lastPaidHeight": 1983676, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1385324, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XbL3krnB2giGAFShY7zdtKCv69csVwrYiK", + "votingAddress": "XbL3krnB2giGAFShY7zdtKCv69csVwrYiK", + "payoutAddress": "XinnPCJsEqyvHiusgikA1bs7aVDBq42f9K", + "pubKeyOperator": "8218f9bc0e0b0ec8a7e41b23d6589df6cac287d2ae80bfe1b975483fbbcd42bab5b1a3e48943b09cf449c3db27594e88" + } + }, + { + "type": "Regular", + "proTxHash": "4ed230fee3311079c53b0415c81abdddef33ff1ef23a3fff736d0dfd1319e6a1", + "collateralHash": "aa8ca1e78aae9c5562bbbbd71fab27787c9c22bcf8167ee55a12d6d3790c6c11", + "collateralIndex": 1, + "collateralAddress": "XotfgSKUBNovwnNJmgnqqgKQMnkQSy2fdN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "2.56.213.221:9999", + "registeredHeight": 1040802, + "lastPaidHeight": 2126389, + "consecutivePayments": 0, + "PoSePenalty": 2144, + "PoSeRevivedHeight": 2120329, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbPSKSjvCRDYFpUmtaaDbe5QiTT2aArbRw", + "votingAddress": "XbPSKSjvCRDYFpUmtaaDbe5QiTT2aArbRw", + "payoutAddress": "XieRrmW1wVXMMCLdc75VBo6EppTvUNfm5z", + "pubKeyOperator": "0a55feeb95069c67139787e86c6ad236dfbc9160ff2d42dcf9da99be146e5618b709b26ad6b451a5d2c0d9ca81b3ee21" + } + }, + { + "type": "Regular", + "proTxHash": "703f82ab1e60a9b882451cf6b0f8bfce00fecf1c97d5b475b6564e49155e289d", + "collateralHash": "d4dd5677bd74cce8881df16cd32aec0943bbf3fbe4c5da468d311b3952190f8e", + "collateralIndex": 1, + "collateralAddress": "XqozRdC3XL1gSiNH7FXJym4RY8Lx4dvzwe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "2.56.213.223:9999", + "registeredHeight": 1040803, + "lastPaidHeight": 2125629, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126755, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdh11Duy5xR5A4TeCKwEj6ZfFhcMXnZHUR", + "votingAddress": "Xdh11Duy5xR5A4TeCKwEj6ZfFhcMXnZHUR", + "payoutAddress": "XgVt2ta9jSkDimzHgndTqgRJwfa3cvfoMV", + "pubKeyOperator": "19131fc7e22c69c2b2194c7ad3f22f931d5cd61c277fcb901b236e4a1eadc5a7154e4330789632b9bfa3bd4d6af0c61f" + } + }, + { + "type": "Regular", + "proTxHash": "82b61b0a6ea7cca44c25f6db70c514daf85c02db1ffc4b7383549a10cc97d249", + "collateralHash": "0aaf42cb1d79fa36786b415c95fb935ef5fb0ca940e6a91bd4bf41ee9033ac59", + "collateralIndex": 0, + "collateralAddress": "XqkALAexoLNrhYaPqYz6wjwUYndxVHUvCr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.1.147:9999", + "registeredHeight": 1040806, + "lastPaidHeight": 1983724, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1385499, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "Xrsgm82AjYG6PfUDTCFhXftpNsPX6HmrX3", + "votingAddress": "Xrsgm82AjYG6PfUDTCFhXftpNsPX6HmrX3", + "payoutAddress": "XqkALAexoLNrhYaPqYz6wjwUYndxVHUvCr", + "pubKeyOperator": "08af7220d9c42f6b7da6e2d301f084b915bf526d1c340a848303d92b3b57e7894d2717be6dd94a16cf4b8f94c03ad222" + } + }, + { + "type": "Regular", + "proTxHash": "c069d697fca794bb5b48d9cbfca7b51d2c5473e7c277f75aa6c3239a4e674c08", + "collateralHash": "54909c85635fb2b6413e02aced44b711bc84d82d05b5f192f3b2867e6834d1eb", + "collateralIndex": 0, + "collateralAddress": "XrUz5xZR8QExjmZyg3DeTCEE2Ab3SMBK6N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.199.124.50:9999", + "registeredHeight": 1040811, + "lastPaidHeight": 1966371, + "consecutivePayments": 0, + "PoSePenalty": 4108, + "PoSeRevivedHeight": 1733997, + "PoSeBanHeight": 1968522, + "revocationReason": 0, + "ownerAddress": "Xhky5wcxUGH8XfZ8PuUuDXSnUr1F6CuvMu", + "votingAddress": "Xhky5wcxUGH8XfZ8PuUuDXSnUr1F6CuvMu", + "payoutAddress": "XrUz5xZR8QExjmZyg3DeTCEE2Ab3SMBK6N", + "pubKeyOperator": "9845f051390bfd3e39f1051ccbb8997d569ebdb1265d304c688e18731c3d072d60596e91be1d9e4aa210b075ad63c30f" + } + }, + { + "type": "Regular", + "proTxHash": "bc1ed7836d2233bbd8c0827abd4846c1455793fadb19a99e97f584446186523f", + "collateralHash": "8256cf17d953dcf4233c6205991b84ba852a7b90b5cffff1e4303cc6cfa42c3f", + "collateralIndex": 0, + "collateralAddress": "Xim8DCs8jQosMxEaQGPxhXHMNFTHMjDDBa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.159.73:9999", + "registeredHeight": 1040835, + "lastPaidHeight": 1980616, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127866, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh5YPcn97Wxtb2iQNv7XDhpKKSJBBotgdC", + "votingAddress": "Xh5YPcn97Wxtb2iQNv7XDhpKKSJBBotgdC", + "payoutAddress": "Xim8DCs8jQosMxEaQGPxhXHMNFTHMjDDBa", + "pubKeyOperator": "80a0b3f21a61f1834c593a21ef1b87d09f3bd961fd7b86a65362c9494bcc189e5eeb590acde2dfe0f2d79b74e040766e" + } + }, + { + "type": "Regular", + "proTxHash": "53fa62033273eb2d5a178a9019dd43c45d8c4c7e3697648c4263ad6d3d69389d", + "collateralHash": "bc06f09ffb16c07588355a446bbe2b7935abfaa9de185cd973ca251e6cc3278f", + "collateralIndex": 1, + "collateralAddress": "Xmp7ucSmiSqXN9tqWyJzzGNyUy7RLFjg4m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.157.91.177:9999", + "registeredHeight": 1040837, + "lastPaidHeight": 2128684, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1730275, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmR2DRMN4nA2ipdQG1vYLA8uRqaR9nhBDS", + "votingAddress": "XmR2DRMN4nA2ipdQG1vYLA8uRqaR9nhBDS", + "payoutAddress": "XqdKWiyrcvwBXTC3QnfURYJ9JSozoqGSwE", + "pubKeyOperator": "134057c09733f406ba830414a436c1473f7382dd76d4a5c5fd73ff9a569af3b61e59feff1f5a17eef9f7cde976853f6e" + } + }, + { + "type": "Regular", + "proTxHash": "f701c2255e188b411534235a78082ea3eb28c7e43612a69ffd78f6c2a72cca91", + "collateralHash": "777ecb153f525c2a8afc53e2f252a91db5fcc19edf025b9fe0eee56344de1fcf", + "collateralIndex": 0, + "collateralAddress": "XrLy4UU9dLJLfafttWEVfUJKtLhxrFW5Eu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.69.31.130:9999", + "registeredHeight": 1040890, + "lastPaidHeight": 2061697, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2063253, + "revocationReason": 0, + "ownerAddress": "XyXoLm1Wrq3Ft8aKEdH7N1rCp3yyH3GSXe", + "votingAddress": "XyXoLm1Wrq3Ft8aKEdH7N1rCp3yyH3GSXe", + "payoutAddress": "XrLy4UU9dLJLfafttWEVfUJKtLhxrFW5Eu", + "pubKeyOperator": "85354254d1148542dba06798a36d4f6e3a1bfc5318ac9e00d819a51088a9e97873179f4a46ea877b8ae21837dfd879aa" + } + }, + { + "type": "Regular", + "proTxHash": "d200ee773f0f93fbe9eea6188eec8a05ba07780cb275a2061b527c0503ef8f6e", + "collateralHash": "cf63605da8c99f250ea3969bab0f4d044eece08b210391846acd09843f53ac66", + "collateralIndex": 1, + "collateralAddress": "XfSogsGts5WrEePkv2SgiJMed6iSnoA2L3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.140.151:9999", + "registeredHeight": 1040890, + "lastPaidHeight": 2062309, + "consecutivePayments": 0, + "PoSePenalty": 3813, + "PoSeRevivedHeight": 1895037, + "PoSeBanHeight": 2063253, + "revocationReason": 0, + "ownerAddress": "XoKshuHLXJSUpGPryrpTc7t9J3rrpUnxyM", + "votingAddress": "XoKshuHLXJSUpGPryrpTc7t9J3rrpUnxyM", + "payoutAddress": "XfSogsGts5WrEePkv2SgiJMed6iSnoA2L3", + "pubKeyOperator": "1678a03234ac2192d1f4a39fd151aee1d41b214664acad63d1a36c2f319654eb5e43c31d8e09985ca5314446c85f3e73" + } + }, + { + "type": "Regular", + "proTxHash": "c0d3669e770aa84e8da49d2432039574179e9a595e588ff7fe2614092431e6d8", + "collateralHash": "ea487fa008d226f7d6453dd634127789c9b2c517855cd91cd7340b6b07366982", + "collateralIndex": 0, + "collateralAddress": "XsBLjqw7yxZinwEDPGYmuZAHND2QXbCGRk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.29.66:9999", + "registeredHeight": 1040906, + "lastPaidHeight": 1983152, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1879204, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "XfznzCkvKc4r1Ct6tkTRB6WD2y9BRj12m2", + "votingAddress": "XfznzCkvKc4r1Ct6tkTRB6WD2y9BRj12m2", + "payoutAddress": "XsBLjqw7yxZinwEDPGYmuZAHND2QXbCGRk", + "pubKeyOperator": "802cdeaa259db76ec4d23aebc6e012a65c7d53cb00a35686228ea4d170fd590d2dec213c841857655c2aeff0b5bd5fd5" + } + }, + { + "type": "Regular", + "proTxHash": "5b0b41e3756c6861d44b344d0f14dc8bc2300ec679c901027f195b426d03ac96", + "collateralHash": "c8abd9ce030fe39af3b232d20d638c5fd57a28c5ea60a318748cb97d6287c8c5", + "collateralIndex": 0, + "collateralAddress": "Xv2EPi4PNmN7CJ3nQuHLuccLeLmqRUXVW8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.172.196:9999", + "registeredHeight": 1040996, + "lastPaidHeight": 1985113, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127242, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwxjsfvDofrgN3Z2yqrmhdPXTGdhyMiSoy", + "votingAddress": "XwxjsfvDofrgN3Z2yqrmhdPXTGdhyMiSoy", + "payoutAddress": "Xv2EPi4PNmN7CJ3nQuHLuccLeLmqRUXVW8", + "pubKeyOperator": "86edc104d6c17fd2a739c272e3251d6bea449bf24937a78914e0b254e22dff4fb11d5cd4d18e2df1ac4957369e05822d" + } + }, + { + "type": "Regular", + "proTxHash": "023447f20a556399b13d98ee106f0fda6862d180344029a02c51f605e0909831", + "collateralHash": "577e010448e643d0a400412a4ca9bc5b6a8dcc65eb3a54e5d3d575242e0d2328", + "collateralIndex": 0, + "collateralAddress": "XvPhgQrqjLKbB4Xn88He2ajSbCQSgKjLyZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.224.233:9999", + "registeredHeight": 1041005, + "lastPaidHeight": 1988328, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128616, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvsPHDKc53G2tVZw6kYVxAbYxg16HefdQS", + "votingAddress": "XvsPHDKc53G2tVZw6kYVxAbYxg16HefdQS", + "payoutAddress": "XvPhgQrqjLKbB4Xn88He2ajSbCQSgKjLyZ", + "pubKeyOperator": "00779888692fbaec343f42b0e9b552956f705f690318fa3f5a6d5451b893281575c7f8051e1d4db7703d5856b782e0a6" + } + }, + { + "type": "Regular", + "proTxHash": "cf74f1fa6049b13d88b60df207382e380d5586c801f8aac41262f9e9abc509c8", + "collateralHash": "b0314762d367e85cccf111d1b4b53b449b50239d5c2de925105aabe7df873edd", + "collateralIndex": 0, + "collateralAddress": "Xu4ndNtZreRZAA87GH6mNikUJ2CoPMiDBt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.166.18:9999", + "registeredHeight": 1041083, + "lastPaidHeight": 1980451, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127551, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp9R9uThKKp3hH9dxLZBjs2XoCSQnPKSXq", + "votingAddress": "Xp9R9uThKKp3hH9dxLZBjs2XoCSQnPKSXq", + "payoutAddress": "Xu4ndNtZreRZAA87GH6mNikUJ2CoPMiDBt", + "pubKeyOperator": "054447bea5723e76328040f50b74897e6b34a2b28fe547675a3b068553f3536771f0af89069455d69d1850192a7b193a" + } + }, + { + "type": "Regular", + "proTxHash": "29d2e282c6afc066ad77b37871255ba300da72c298a9230e6ad808558dcdceb1", + "collateralHash": "fdae8db22fbbbfc16da69141350b43baa7c634a8ee5306ce16d2b0e67c083e48", + "collateralIndex": 0, + "collateralAddress": "XpGm4mgYiF6LJ3bHUuBbnzL1zh1DXmy8yV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.159.219:9999", + "registeredHeight": 1041101, + "lastPaidHeight": 1965683, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127829, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxhje5iqEQVZ8eTuT9LzQpY4GMrHuCm5Sw", + "votingAddress": "Xxhje5iqEQVZ8eTuT9LzQpY4GMrHuCm5Sw", + "payoutAddress": "XpGm4mgYiF6LJ3bHUuBbnzL1zh1DXmy8yV", + "pubKeyOperator": "948fea6aae9145c85265710dfd17006871059c3c94c899785a53fcc0915918bdf09781a2309414355d26cbc8f067615a" + } + }, + { + "type": "Regular", + "proTxHash": "6d662103ba5d838386d3a26c446c99ac5743881968ac34d3ce55789a94f00f68", + "collateralHash": "b0145b98a41b59cea83ea909e73be0f4a73fa5ca91d3ee483ab8d62a78ec23dd", + "collateralIndex": 1, + "collateralAddress": "XwmHQfrKTjHzkeZtnNpthGeW1eg9B29b2m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.219.237.108:9999", + "registeredHeight": 1041125, + "lastPaidHeight": 1669911, + "consecutivePayments": 0, + "PoSePenalty": 4456, + "PoSeRevivedHeight": 1640102, + "PoSeBanHeight": 1673771, + "revocationReason": 0, + "ownerAddress": "XmKoTeT152zRhmK5zt5H3E4QTJtyBdiysz", + "votingAddress": "XmKoTeT152zRhmK5zt5H3E4QTJtyBdiysz", + "payoutAddress": "XvjTqQazRn1d7XA2bEQWsLPgoSg5g7vaW1", + "pubKeyOperator": "0774b68ca6b96a5a7cfc310e2a55fce5e5f7861d4964d3cd09649bb0701e55e9cbed651e4c8212e6a78475b071cc74ef" + } + }, + { + "type": "Regular", + "proTxHash": "17b861154235f320b5bc6b43c7ae4e48efeacde699cf34681c08a821091bea86", + "collateralHash": "f2d85b2eb43ffc83a6a3d14691ed5d956c3da713c28cb16a53a52f743c6e404f", + "collateralIndex": 1, + "collateralAddress": "Xst1f3HDf5fThNJXWzu8UDaw4nCxBfL1dN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.219.237.111:9999", + "registeredHeight": 1041127, + "lastPaidHeight": 1672522, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1634163, + "PoSeBanHeight": 1674923, + "revocationReason": 0, + "ownerAddress": "Xr4PgXBtX1cXkX3hJ6PDHfr1q4gsffTb3p", + "votingAddress": "Xr4PgXBtX1cXkX3hJ6PDHfr1q4gsffTb3p", + "payoutAddress": "XyFgMugZdSDC3TbhcEi2tvuGTbM7uA13qB", + "pubKeyOperator": "80f5d6a72d57b10d8773280b553583f69c183c33985a7aedeff63ed7d3d2124ec1551c6b9fb11a45c09351769107e7c0" + } + }, + { + "type": "Regular", + "proTxHash": "47ee1618f510156ca8b658e8b4ca1cd0e64d0fd3d57a2b639fd10abb4978285e", + "collateralHash": "26adc4bbc2fb0650574a9df8a4eba79cae3a06cce6ed940669c6f35dd2413894", + "collateralIndex": 1, + "collateralAddress": "XjMjyKx5zyBYbxgQ76mWnmd2riBwXWW42Y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.219.239.82:9999", + "registeredHeight": 1041132, + "lastPaidHeight": 1584810, + "consecutivePayments": 0, + "PoSePenalty": 4561, + "PoSeRevivedHeight": 1634163, + "PoSeBanHeight": 1635285, + "revocationReason": 0, + "ownerAddress": "Xy22zL4Eo4q9DH4jDcXnfS89J7Z5dnSK6T", + "votingAddress": "Xy22zL4Eo4q9DH4jDcXnfS89J7Z5dnSK6T", + "payoutAddress": "Xrc2MgzU89CmL8je5StSu1TDDN1S83qV9R", + "pubKeyOperator": "1203d660407aa2e3a1226759cfffaed6c126172ad97fb4305ee88a897c1a229b32b0d12808de21a1d049fa15be2a3b8e" + } + }, + { + "type": "Regular", + "proTxHash": "c3a403ea6a0d1db6eaa0a0449de6b48a676c507400e0bf931f5defa612a6a9b7", + "collateralHash": "19b41f885ebe247141acf99fbc02826f813cddbd0050bdbd81775e99facbfb31", + "collateralIndex": 1, + "collateralAddress": "XnE374ibiE94N9rybVpHe91PU1Ke688YBW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.64.104.221:9999", + "registeredHeight": 1041135, + "lastPaidHeight": 1682301, + "consecutivePayments": 0, + "PoSePenalty": 4470, + "PoSeRevivedHeight": 1494095, + "PoSeBanHeight": 1683670, + "revocationReason": 0, + "ownerAddress": "Xb9zJrug5nHmgx1rcdV2WjbHHTu4mxFPuV", + "votingAddress": "Xb9zJrug5nHmgx1rcdV2WjbHHTu4mxFPuV", + "payoutAddress": "XoS5dKxQiftxLjD5BPNEnevSaDDZnmjQac", + "pubKeyOperator": "030ab5f00c2c79f5b3c6b5c81f9b6fcc787e4efe34b9bcfe9cedb6b996fa0c132cb0323eecb5ea161d0e01fec8786ab9" + } + }, + { + "type": "Regular", + "proTxHash": "c0f14f9861c9825452638be0398b3b190a294c2e4d6555a5bf6099556f4b65fc", + "collateralHash": "5c2aafc47af0af89c2638af70d9c20067b800e837c9098d798a748d23a716331", + "collateralIndex": 1, + "collateralAddress": "Xda2jY4kxaUuD4Em927vUDhbnuWpLWE6wd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.244.17:9999", + "registeredHeight": 1041137, + "lastPaidHeight": 1984451, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1873784, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "XteFExJSK8QJGt87TQPjEqmGHX5km1giR8", + "votingAddress": "XteFExJSK8QJGt87TQPjEqmGHX5km1giR8", + "payoutAddress": "Xda2jY4kxaUuD4Em927vUDhbnuWpLWE6wd", + "pubKeyOperator": "08f2df3680e05aaf7b66fe3990860a43550523cf93647cff5b0123e51608a4d2a2d209311672acc00edd6737e29cbd3a" + } + }, + { + "type": "Regular", + "proTxHash": "d0c8e82fa2bb3b21e9dd3fe57337031aef6855d3249d7ca19d0089fe9dfd288d", + "collateralHash": "0a4c933e828ffd515d98d21405eab23c9843737469958afcbc563a4b07c92cef", + "collateralIndex": 1, + "collateralAddress": "XsWtKJWQELZScfpmNMGuEmb4tJkdNZjoPJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.64.104.222:9999", + "registeredHeight": 1041138, + "lastPaidHeight": 1735176, + "consecutivePayments": 0, + "PoSePenalty": 4469, + "PoSeRevivedHeight": 1494131, + "PoSeBanHeight": 1737180, + "revocationReason": 0, + "ownerAddress": "Xu1CTHTuvLQdKY7U4xg4Y5xJcPGet6rJwo", + "votingAddress": "Xu1CTHTuvLQdKY7U4xg4Y5xJcPGet6rJwo", + "payoutAddress": "XkmGg6srq82FNL4otoAEmbiTM7DpmY6rF2", + "pubKeyOperator": "0c8695a5c73ad1e6aace39970c16064275460631879833fe5a39f9ba23f17c6c79277cb304b9b56325568c6e628ee7e5" + } + }, + { + "type": "Regular", + "proTxHash": "150662a1f3635235e4db9688774333744e5b78acc119282830720b4b33364f91", + "collateralHash": "8768505b4ec30b811ec6c94805036516046b7429e9484473f3c09c7ec34f134f", + "collateralIndex": 1, + "collateralAddress": "XnZwgJmHRv1UTo13Hmo9BTAkmv2BeLBxD6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.64.104.223:9999", + "registeredHeight": 1041140, + "lastPaidHeight": 1731467, + "consecutivePayments": 0, + "PoSePenalty": 4462, + "PoSeRevivedHeight": 1494131, + "PoSeBanHeight": 1733579, + "revocationReason": 0, + "ownerAddress": "Xr2rUmCzdxeVAKxebZKCoHdHCPPRET7xwW", + "votingAddress": "Xr2rUmCzdxeVAKxebZKCoHdHCPPRET7xwW", + "payoutAddress": "XqkTZyo32ngLND77Sc4mTB8pbemJZZMXyH", + "pubKeyOperator": "95a5e2f352479fc32553b07b20f0a8861867ae6fa86b1ce74aca455c7c03397fba30e9c958cd71fc986b0beddd1a7442" + } + }, + { + "type": "Regular", + "proTxHash": "98124811f0fc6c8c546884694d4a016c4b98a3b6442a1335dccefc8ee88970fc", + "collateralHash": "4b17b948b3148250ebeae887e9f10526b04dac36f641bf08efaf8bfeba9620f5", + "collateralIndex": 1, + "collateralAddress": "Xo76gmntukzXVSfNdsjxtzmdCtCe5Rbnxz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.64.104.219:9999", + "registeredHeight": 1041143, + "lastPaidHeight": 1732228, + "consecutivePayments": 0, + "PoSePenalty": 4466, + "PoSeRevivedHeight": 1516350, + "PoSeBanHeight": 1735019, + "revocationReason": 0, + "ownerAddress": "XpmdwC32vAMdpdHj6rmQUbB7PpctVu26jw", + "votingAddress": "XpmdwC32vAMdpdHj6rmQUbB7PpctVu26jw", + "payoutAddress": "XjYhMecEkE1os9fN5hgqfZkLLcAfdNUjdb", + "pubKeyOperator": "8b9edb13b82e54c5b284b14869c55f21e83b44fd64932c2089f6aca8fdfbbde9145cef47b3e0d42c7bb53882ffab6639" + } + }, + { + "type": "Regular", + "proTxHash": "c6a1ae326c75d29125f9e52d3e1785799b7c7f5e83fe6dc2abe250fd0aabbb21", + "collateralHash": "e276404514394c725b7e9f661fbd48eb7c06f316c4975c36acf20c7b058c9ab3", + "collateralIndex": 1, + "collateralAddress": "Xe6GerfWRWcGFUJJAFqf7SkVriGnFZhdtZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.206.165.89:9999", + "registeredHeight": 1041147, + "lastPaidHeight": 1732772, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1495528, + "PoSeBanHeight": 1734467, + "revocationReason": 0, + "ownerAddress": "XbcWFXyEiDJhDwqBtXB5YZ8r5SK89aVgPq", + "votingAddress": "XbcWFXyEiDJhDwqBtXB5YZ8r5SK89aVgPq", + "payoutAddress": "XdxvFiGDSXVKqe8iHtmyji2WrE2wt22YfX", + "pubKeyOperator": "96427db7ac84ee40c82e4680baa4185518ded1891f38282745f070fff577c006cfbc5db3d7d76d20bed3ec0e1e696d6a" + } + }, + { + "type": "Regular", + "proTxHash": "2ecfdcb9ea0cc70da8d722ba7755fd83cf180cff5d9d408e0b2e4e53c61f0734", + "collateralHash": "f1c59745c036f9def51ff6df354b2093212c6df0d8664157455076c390f51b6f", + "collateralIndex": 1, + "collateralAddress": "Xmcxe25V4pX943VKovfUYnvQ8va9uScnVu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.206.165.90:9999", + "registeredHeight": 1041150, + "lastPaidHeight": 1736416, + "consecutivePayments": 0, + "PoSePenalty": 4468, + "PoSeRevivedHeight": 1495529, + "PoSeBanHeight": 1738102, + "revocationReason": 0, + "ownerAddress": "XomuKFvMLxBMUddKgjhJP7FHUE1GiKqChf", + "votingAddress": "XomuKFvMLxBMUddKgjhJP7FHUE1GiKqChf", + "payoutAddress": "XpeoLY9Fx1T6bpfarAzhrRPZzQ6tZhxEef", + "pubKeyOperator": "889b874dfaf663c9304f38d94739969ebeb928c2168ec3a3a5da198805bd8bf39762c88267b4092f2395a3897eefec95" + } + }, + { + "type": "Regular", + "proTxHash": "0842eec6a5110ab6ed75490ff53be8d77d6c03249bb2b42c24f5e7695783c64d", + "collateralHash": "330879433e6c9dbbb086e59eae4547312dee74a8acf202bf267ce483f4aea1bd", + "collateralIndex": 1, + "collateralAddress": "XqfTotjdGpQ1wx2pKQkLg4Fr5nzbsEkRXy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.67:9999", + "registeredHeight": 1041289, + "lastPaidHeight": 2127237, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975742, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqzxjXNr9dkKuDkd8KqkKfeyYK7yg8R7Zy", + "votingAddress": "XqzxjXNr9dkKuDkd8KqkKfeyYK7yg8R7Zy", + "payoutAddress": "XoD5XgcovrVNPpyZDoq5hoeoPfmS3qqdfG", + "pubKeyOperator": "0ad5a3f7a1fa7b6de79958bd97449f7d1f4de19b7c3e122349c3bb79b3609b4779954cad8b5b5092a96db59702063fd5" + } + }, + { + "type": "Regular", + "proTxHash": "1985bf5a1e2c3caf9aedd5e345008bf198cb486c96c653bb13286f6447d12b11", + "collateralHash": "c7c7fba25c4ae353bb04c44a329243bd89e4fa99bd0e774db1defa3bdd5d8cb5", + "collateralIndex": 0, + "collateralAddress": "XwP21dopTKhSaAx2hocgVvpi2uZzAz23uA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.30:9999", + "registeredHeight": 1041292, + "lastPaidHeight": 2128278, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976882, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtFNkrS9PPxheGjy3Pfif2ow3dVsajm1er", + "votingAddress": "XtFNkrS9PPxheGjy3Pfif2ow3dVsajm1er", + "payoutAddress": "XoD5XgcovrVNPpyZDoq5hoeoPfmS3qqdfG", + "pubKeyOperator": "8114d8bfc924bfcf87843755439127ba70a199662ffccf03ceaa019e1a2f9801aed7ac5c318fe2e4a2ca54c07db79ab0" + } + }, + { + "type": "Regular", + "proTxHash": "9ef71a1e00b9605f5523c6557cde0b5a3d280b0101f419bf3f8029a3022c04de", + "collateralHash": "8d0a16de10f19f3aa4cc0fcb4419eba0333aa93d18c1bd272fafb7c55b695b82", + "collateralIndex": 1, + "collateralAddress": "XrktnHX1qEGN2mJaEiv9D5VDnukmfY79Kq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.157.91.189:9999", + "registeredHeight": 1041343, + "lastPaidHeight": 2127579, + "consecutivePayments": 0, + "PoSePenalty": 3727, + "PoSeRevivedHeight": 2087726, + "PoSeBanHeight": 2128650, + "revocationReason": 0, + "ownerAddress": "Xk8swBRCDTZ1C2pxAhE26hAJjyNR5xwB4r", + "votingAddress": "Xk8swBRCDTZ1C2pxAhE26hAJjyNR5xwB4r", + "payoutAddress": "XmcGSe1HM979n9JrViP9sBoRZrTQ2AbQyb", + "pubKeyOperator": "939a849f1241a1e8967b649928a19a117b681a50a66a1964bbc9aaa0cf497ad6106b953b20f083f4a930bdb88082ce11" + } + }, + { + "type": "Regular", + "proTxHash": "70a8389e923d046c914507a57fe3596efc331c630176d36c96c1d04f0a5daa37", + "collateralHash": "1a1eba21a77bf3aaa48636fac213508362edc761662c9bd9b0982c0c50643260", + "collateralIndex": 1, + "collateralAddress": "XhUZNksd8n9amVfDBifVnQR8L9njjPBZab", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.42.99:9999", + "registeredHeight": 1041361, + "lastPaidHeight": 1981140, + "consecutivePayments": 0, + "PoSePenalty": 4009, + "PoSeRevivedHeight": 1386531, + "PoSeBanHeight": 1983498, + "revocationReason": 0, + "ownerAddress": "XanzaiRQxsRdFbnoWgBGsKutZu9wFy8v65", + "votingAddress": "XanzaiRQxsRdFbnoWgBGsKutZu9wFy8v65", + "payoutAddress": "XhUZNksd8n9amVfDBifVnQR8L9njjPBZab", + "pubKeyOperator": "9433046a63f602c228e38397782875c2ff342b0ee9eab23f0b93fe794463191518fae65cbc9cb1330f043e0004ca16ab" + } + }, + { + "type": "Regular", + "proTxHash": "e425459884ef8c0a7a0ffa3f656cf97e3dec0cebe737bbf513053fc5d6ed349e", + "collateralHash": "a8b2a88c97682f213d3f71ffa2d0ae2e13220745c7fa7e2b93c2aff0824db4ff", + "collateralIndex": 0, + "collateralAddress": "XsQHt66HDH6xnTkayzF3qE6GMvWWJsnCSq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.150.204:9999", + "registeredHeight": 1041383, + "lastPaidHeight": 1984413, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1873719, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xv31NCNHYfkvNLnVutMGvAsfQQqimxiZ3x", + "votingAddress": "Xv31NCNHYfkvNLnVutMGvAsfQQqimxiZ3x", + "payoutAddress": "XsQHt66HDH6xnTkayzF3qE6GMvWWJsnCSq", + "pubKeyOperator": "85bdb5dc93193e721d3ce515cf543240782a4338b4cc865df10d8517e88d01c3bb7ea00344a37a29d343870e90446dd3" + } + }, + { + "type": "Regular", + "proTxHash": "2fbdb48261be9bf350aefd47ca562f1b0b598c5ec0320cc2fc20b5d6f4517242", + "collateralHash": "4ff0e6927593441619da14aeef18c7700eb34d59f89e074989d296cca9109037", + "collateralIndex": 0, + "collateralAddress": "XuWfvDbNsr4mQdQjHs5tujtLLrVj1mSyZG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041540, + "lastPaidHeight": 1722893, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XeSNoGiQDBWxTtJFZrePR8PQ4QniUHtWQU", + "votingAddress": "XeSNoGiQDBWxTtJFZrePR8PQ4QniUHtWQU", + "payoutAddress": "Xqej5ojDmWbCXvKGm85ZquaeEWTEJ49zf6", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c5ed79b52723d5507848129a20acd9d18d1a62ac9e7a0e1d622db10fdb9d423e", + "collateralHash": "9a6cd9d9894cd9c7c28f56debd794a44870722ca751c212c8b4790081902f344", + "collateralIndex": 0, + "collateralAddress": "XqRYFoBQ3AKkJiN8dqt1dYUAdAZDmVBxpY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041541, + "lastPaidHeight": 1726933, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727340, + "revocationReason": 0, + "ownerAddress": "XtojshTGaehfihCMuyrfm7cqqRW5rD7k4t", + "votingAddress": "XtojshTGaehfihCMuyrfm7cqqRW5rD7k4t", + "payoutAddress": "Xqy5KJSQc97tyLBeuX6j8JQycpCetWyoKN", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7418e63e3740c3681da4148447439e98c883f0da28944c1fba833c3af5400dab", + "collateralHash": "9bdba9e56952109eecb1f56780f03c9f7ff6c9ebc68692b02b08592640afd9d1", + "collateralIndex": 0, + "collateralAddress": "XywfmpP4zP577fXwJqSby11HhNipTdBc9F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041543, + "lastPaidHeight": 1722899, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725803, + "revocationReason": 0, + "ownerAddress": "XrBSdpGKzm45CiFkb3qr8se6agtRKjUME8", + "votingAddress": "XrBSdpGKzm45CiFkb3qr8se6agtRKjUME8", + "payoutAddress": "XmHB8qU31MWKBwPNXn1FCVW9aRErBxq4YW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "84d819a598a3f54e42a5271189113bfe75cb543444e52ba3808b08cede90e55f", + "collateralHash": "e91456716c5cb45c320d801505dee38885c1317827a18896fa76b5aecf9f2340", + "collateralIndex": 0, + "collateralAddress": "XnmoD2BLxwMRsaGs5Wb9sUJiGUL3zAvh6m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041543, + "lastPaidHeight": 1726937, + "consecutivePayments": 0, + "PoSePenalty": 2437, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727408, + "revocationReason": 0, + "ownerAddress": "XfT6erVxuBc15jcWFKcvgZbKWRLeu7jf62", + "votingAddress": "XfT6erVxuBc15jcWFKcvgZbKWRLeu7jf62", + "payoutAddress": "XmtaGdxeAWmdWSBDpbAMCP4etaoPUrZnAq", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "182ea91d5a111e8903052f794ff369b163ce89da90220640b9a0fc5b6a6bb139", + "collateralHash": "a1393a9ac77f479c58bb4d0573728e86e02425262b875c47daa302d658c33539", + "collateralIndex": 1, + "collateralAddress": "Xm7WzNCGQBSTnPDMbChaMAqCELWTM32iZx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041544, + "lastPaidHeight": 1722900, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XrzvSQtQJUjii9JQvZPQsSgAPKdFUeMMcw", + "votingAddress": "XrzvSQtQJUjii9JQvZPQsSgAPKdFUeMMcw", + "payoutAddress": "Xpg9WeC2vNFNKqnbom3WX2kpBut9U1eYDf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1fb3066c8175dd3ba481389bece4d3392bc5ab24a7dace0eb02efd0510977780", + "collateralHash": "3e5f613d94b8203e201a5845faafc5d587a20105b78c82ed00c3ca4328258a34", + "collateralIndex": 0, + "collateralAddress": "Xeg9v8ZUCaQTSeMykymCAYYmzcaYwPomAH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1041544, + "lastPaidHeight": 1722903, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726284, + "revocationReason": 0, + "ownerAddress": "XvHon5VBmwu1XmeTVBZDCkTg8SjLdh9p1g", + "votingAddress": "XvHon5VBmwu1XmeTVBZDCkTg8SjLdh9p1g", + "payoutAddress": "XiQsmWju2tbcN4PR3iNkjcGSAaBkerciUc", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "40ac47d68313057ea84325110af06a6ab605e4c4df18a3a01d7ffa737d85ccea", + "collateralHash": "dc99981fbaa2ddb55b725f34ab79d061b76c96d832c21f827849b549d9fba895", + "collateralIndex": 0, + "collateralAddress": "XrLwis8g5KCq3CjC16Njers2j5SzwbVRr4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.85.205:9999", + "registeredHeight": 1041591, + "lastPaidHeight": 1980941, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1873827, + "PoSeBanHeight": 1984362, + "revocationReason": 0, + "ownerAddress": "XnLnX7w379JFceSLFobBsfiCMcKUiTaEPS", + "votingAddress": "XnLnX7w379JFceSLFobBsfiCMcKUiTaEPS", + "payoutAddress": "XrLwis8g5KCq3CjC16Njers2j5SzwbVRr4", + "pubKeyOperator": "9863f0912e32557ec8b6a0b5eff622be87f2b6c2706e16afa0a55ef7f33f712b851ba989f5fe469cdb2b3fda96e75559" + } + }, + { + "type": "Regular", + "proTxHash": "8ef71d8296c6e5166adf6dd8893ffc02f9194a1e572dcc1bd9e3528b2e2081ba", + "collateralHash": "9cb5b79045fdecc57a70029aa856f3a65ccdbcd711608401a337ea69149f2a76", + "collateralIndex": 1, + "collateralAddress": "XtWZUfHyVakBmazbxU49suK9RgEWnrjCmx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.157.91.19:9999", + "registeredHeight": 1041622, + "lastPaidHeight": 2125038, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126805, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxRmQqVXutDmWEuQNwhr3hidqG8SogLQMV", + "votingAddress": "XxRmQqVXutDmWEuQNwhr3hidqG8SogLQMV", + "payoutAddress": "Xp3c4deAfc3iuWhJJPW4P7H4aibmT9taz1", + "pubKeyOperator": "11a093411fd6679cd68186cf697d059cc408c76ea227055cf166813fb51bab52c259643945c0d0f8f905636c35896d45" + } + }, + { + "type": "Regular", + "proTxHash": "da490287ad389dd05e6faeb8a685fe1c65840cf3c1438a38f04483d3adefc78b", + "collateralHash": "fa4cb6bfced9ed479a18024b2df718b236115c0fa1b71e2728d1fbc28cc0d28e", + "collateralIndex": 0, + "collateralAddress": "Xvk2BhYBkrej2bgSnXFxJnW2AZrsW4wKKa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.128.51:9999", + "registeredHeight": 1041640, + "lastPaidHeight": 1981105, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128121, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfAMGkz5zzUrSbCSW9RXGJqkuHhTafMrQP", + "votingAddress": "XfAMGkz5zzUrSbCSW9RXGJqkuHhTafMrQP", + "payoutAddress": "Xvk2BhYBkrej2bgSnXFxJnW2AZrsW4wKKa", + "pubKeyOperator": "89647f7632aa1d2c39469658ef7fb9046a2dc64dc2002a4d0b282b59ccb2547aa42a0a3b68b19dbbb1a994e41d9b424a" + } + }, + { + "type": "Regular", + "proTxHash": "5dbd24d1f1c1807fdf626543c29b21316da94b6a21ab86d88527f57cb11727ec", + "collateralHash": "ecc57ac03f9d8b0b5d92c0b918b65411a210fcd9a279aaf95e958451a8759cc7", + "collateralIndex": 0, + "collateralAddress": "XgStuSVCYBL736Nks1WiFFzVKo57BkaYyB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.56.220:9999", + "registeredHeight": 1041758, + "lastPaidHeight": 1985085, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1987797, + "revocationReason": 0, + "ownerAddress": "XgmqUczzcwHrUZeLgy1MJPsbAH7Lqif7HK", + "votingAddress": "XgmqUczzcwHrUZeLgy1MJPsbAH7Lqif7HK", + "payoutAddress": "XgStuSVCYBL736Nks1WiFFzVKo57BkaYyB", + "pubKeyOperator": "8b0e1fea4cba93bd50c49ff110baded1c90d8e4e3c52115e1a23678f133fbbedbebbde20c6ebb964b88c1b5238b9ef71" + } + }, + { + "type": "Regular", + "proTxHash": "c52b252703a7c07359a9b4c9d057c9b317ff08af1d963b304120fe0051f850ee", + "collateralHash": "3a99401ffaabab499810fe14b781661df4ea0410d8f18a8c065b523e32b0541d", + "collateralIndex": 1, + "collateralAddress": "Xt94faxmyZkXth2hi5wkqwoPwtHKNi1HuJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.178.169:9999", + "registeredHeight": 1041936, + "lastPaidHeight": 2126202, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcHN2v4wP58wsjKFiHvmTj3hY4bJGXv2KQ", + "votingAddress": "XcHN2v4wP58wsjKFiHvmTj3hY4bJGXv2KQ", + "payoutAddress": "Xt94faxmyZkXth2hi5wkqwoPwtHKNi1HuJ", + "pubKeyOperator": "861327a26cd0b6fabb50faafbe6b80bef353f4d8ed05cff74e1ee8f47db490ff766729a5564c71408fb8a2be14831c8a" + } + }, + { + "type": "Regular", + "proTxHash": "bb678c98b6a4085360f3f54594a8475231be4bbc81e218532e9a20a950ce2199", + "collateralHash": "c398da20d809db24400ac9c4183fa6c0cb0b8a4a577b0dda94186c080a0a3404", + "collateralIndex": 1, + "collateralAddress": "XiwxcKxyWxhGPSseVV1WebCtdJ6NMJESgZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.2.7:9999", + "registeredHeight": 1041938, + "lastPaidHeight": 2118893, + "consecutivePayments": 0, + "PoSePenalty": 3837, + "PoSeRevivedHeight": 2007235, + "PoSeBanHeight": 2119722, + "revocationReason": 0, + "ownerAddress": "Xr6mzm8A5YXKfhiZMHQiTSREPcNiZ9Qmxg", + "votingAddress": "Xr6mzm8A5YXKfhiZMHQiTSREPcNiZ9Qmxg", + "payoutAddress": "Xv35BeERJ3pXoQfSZwZKRrWSy3KwYn84A5", + "pubKeyOperator": "944eaf6d0e477f99e6c02149bd980859e6384f662272dd371018c5a46c7b9aa8f5956ffafe3461b9adac4b917c949b19" + } + }, + { + "type": "Regular", + "proTxHash": "88e59196dc4d54066f7f63e708cf6f380fcd282f28d33baa0fcc8149ef5b2972", + "collateralHash": "fb380ab1fbc14352fdee5f6a23b922b2ba82af52ee519544a4ff8f633c672dbb", + "collateralIndex": 0, + "collateralAddress": "XqrwovYTm98buYBKtJFXrvf7GAi6Avo3Zo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.10.249:9999", + "registeredHeight": 1041983, + "lastPaidHeight": 1981811, + "consecutivePayments": 0, + "PoSePenalty": 4008, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1982922, + "revocationReason": 0, + "ownerAddress": "XoBS2MYegcpawxLCtrYm2SEZATrhSfknvH", + "votingAddress": "XoBS2MYegcpawxLCtrYm2SEZATrhSfknvH", + "payoutAddress": "XqrwovYTm98buYBKtJFXrvf7GAi6Avo3Zo", + "pubKeyOperator": "01c4544e585b744e2bbfad6997f5063db2df8cbfe97c9652ef7e973079efec86f83fdc06755d91d4db50f4e72cd6e694" + } + }, + { + "type": "Regular", + "proTxHash": "12777044a7367311f4dd0ae1ee583006c757580b5d7212d6443b20ce8e62e92f", + "collateralHash": "c28a31cda8713c1a5eb47821614311efa1640a655edf332a933c2218c7c9ad01", + "collateralIndex": 0, + "collateralAddress": "XiXrNx9sZ19NwWsUsg5mfGWWQHLsvUo7Zh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.59:9999", + "registeredHeight": 1042281, + "lastPaidHeight": 1981498, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127409, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx9DUiDSmC8F3oK2MVSrSy5ueb924WaSCM", + "votingAddress": "Xx9DUiDSmC8F3oK2MVSrSy5ueb924WaSCM", + "payoutAddress": "XiXrNx9sZ19NwWsUsg5mfGWWQHLsvUo7Zh", + "pubKeyOperator": "0d1ab7438c6aa71a0639fb14c14304eb9936f682651a67fa5acc3fe14fd5693b13b137554a9d23b44956aa3ed82f6060" + } + }, + { + "type": "Regular", + "proTxHash": "de88e9d922c63ff98a2d34bbb391496820227e51a10c7b19099e9e9876d35c69", + "collateralHash": "7ab5a2ad6dc3226aa4c852715b356137a34da9c554a963e7d38c79fa32053c51", + "collateralIndex": 0, + "collateralAddress": "XqkbtGpuTmny8BVrjD22MkSaNbLeyEP56A", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.171.57:9999", + "registeredHeight": 1042320, + "lastPaidHeight": 1981772, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127307, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyTtMJv7pH8FLL8qmDPH2xFLdm3QxjNzCY", + "votingAddress": "XyTtMJv7pH8FLL8qmDPH2xFLdm3QxjNzCY", + "payoutAddress": "XqkbtGpuTmny8BVrjD22MkSaNbLeyEP56A", + "pubKeyOperator": "16154ece2ef98c16a49cbfda2071ac663ec2cd9989505a4530dda0c2b338d2c02cbfb2200b72afbf1838baa2d6c0d582" + } + }, + { + "type": "Regular", + "proTxHash": "5480f489c2e7d4e9992349a0eb85b4a81796979c66a5f2c67f5df05866e01df1", + "collateralHash": "b085dfe1a8b217370dddeabdfcafe4c1cb486758ef67dd0981e2b8c7522e48f2", + "collateralIndex": 0, + "collateralAddress": "Xfdkeuz2SdqgFDHxgjjCBPEGTc9Kctq4u5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.153.111:9999", + "registeredHeight": 1042368, + "lastPaidHeight": 1983560, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": 1385106, + "PoSeBanHeight": 1986954, + "revocationReason": 0, + "ownerAddress": "XbeVRRJAgx6JEDiciRKcKWMrqkffw3rw8X", + "votingAddress": "XbeVRRJAgx6JEDiciRKcKWMrqkffw3rw8X", + "payoutAddress": "Xfdkeuz2SdqgFDHxgjjCBPEGTc9Kctq4u5", + "pubKeyOperator": "155fae7865fda947df9153b306f23913ff242b0f067b5a4d6ec37b5ef2ab54061d0661a86be38065e96fbf992ba88916" + } + }, + { + "type": "Regular", + "proTxHash": "e57cd2b222410fe9045b26aa9246feb3b2f7c60b2b1129951ea95ca3057989f7", + "collateralHash": "a84fd82a496c6c4b2ce688d34d8a2f888e04d04640293e6e1ad4fae938500ca3", + "collateralIndex": 1, + "collateralAddress": "XeERYTuRYfptbmAi1yLXgA7DGeSq7CEYs9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.158.188:9999", + "registeredHeight": 1042405, + "lastPaidHeight": 1984148, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1880136, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XfkK6C2whNZpCVmuVEoGZiaviELcUzcC8d", + "votingAddress": "XfkK6C2whNZpCVmuVEoGZiaviELcUzcC8d", + "payoutAddress": "XeERYTuRYfptbmAi1yLXgA7DGeSq7CEYs9", + "pubKeyOperator": "141d89e211c93bee9f4cb26e4bd1fa530798dc1cc27e545c0e096aec9d913ba2cae572b339aaab612a0bb2f60dd71ceb" + } + }, + { + "type": "Regular", + "proTxHash": "01c1241272fec89bbe3048676692d691c1e2149ebba1a55bb06392290a81a901", + "collateralHash": "f8769ac7a2d125294a0a4b874034173dcd9a4d812c7403a7b25e58a830f707a5", + "collateralIndex": 0, + "collateralAddress": "XjmiEwqPnNuYuWRUwy8Vdnu19w4boJeGuW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.236.233:9999", + "registeredHeight": 1042521, + "lastPaidHeight": 1983367, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1879382, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "Xc36aQ9mzU288P3FjQeaRivPy5NmY417gk", + "votingAddress": "Xc36aQ9mzU288P3FjQeaRivPy5NmY417gk", + "payoutAddress": "XjmiEwqPnNuYuWRUwy8Vdnu19w4boJeGuW", + "pubKeyOperator": "059d940595f7e275f2a2c64b55b4e29c99b9db41c6cb949bb57d86a6890c598f9cccdca3f3e8bb4bd482d3621322ea9e" + } + }, + { + "type": "Regular", + "proTxHash": "4ff640fbe1244bc0007066f90776622d3a2efb9fd8a8c5c27f5e89f358fc08da", + "collateralHash": "4faa884b00368f65a690dff41df8e2febdb272784ea90e538b6991f217c5451b", + "collateralIndex": 0, + "collateralAddress": "XhdEQr5ybkGiGvWVg6CJckeRB4eUHsC3Dq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.232.187.22:9999", + "registeredHeight": 1042689, + "lastPaidHeight": 2128466, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1827692, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwzckuwQkfvdPHCif31ejWz5PPVc4dfTHN", + "votingAddress": "XwzckuwQkfvdPHCif31ejWz5PPVc4dfTHN", + "payoutAddress": "XhdEQr5ybkGiGvWVg6CJckeRB4eUHsC3Dq", + "pubKeyOperator": "0dcc882f15743749ae6ddbef9e1be822cfd51a10a353e9184182d02628ea251d0f0d52f545b80271f83edd3113da0144" + } + }, + { + "type": "Regular", + "proTxHash": "1b87a352204dcab9b28082d358a81b1e614b03dce2ba2a423368b7386d8cda07", + "collateralHash": "569cf6ff57b7967c966cd31430276a0f7852cb4057c08b05fe9f5e5390730834", + "collateralIndex": 1, + "collateralAddress": "XjdvynSqsjSK2BEEKWic9S4TKwE8mmXqLG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.56.94.188:9999", + "registeredHeight": 1042730, + "lastPaidHeight": 1533792, + "consecutivePayments": 0, + "PoSePenalty": 4870, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1537653, + "revocationReason": 0, + "ownerAddress": "XrAG2J36om5tXdrG8fTR5ZQ21ej9jxkB7W", + "votingAddress": "XrAG2J36om5tXdrG8fTR5ZQ21ej9jxkB7W", + "payoutAddress": "Xkuk1z4XHbGEhMXr8sxubdWMi66DfFpris", + "pubKeyOperator": "095df90102e6f63dc58f4a8910e8ab145899f53c7a532c8fcb28eb24724a4cdd7b7fdcd15d3539e4fac36690a020a409" + } + }, + { + "type": "Regular", + "proTxHash": "7a16c86c3ba2b7ec19e13064505195f700e8cb7729e5ccb6c8aa0657cdfa9d82", + "collateralHash": "3843e2e16e88d5f14d81970c214e9299f304f01d0f88792ab3f51bcaba6fdf4d", + "collateralIndex": 0, + "collateralAddress": "Xuizi1a6DhjzAsmcUE8mzba9mZLHGqWQNH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.165.80:9999", + "registeredHeight": 1042754, + "lastPaidHeight": 1978550, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127620, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xur7C9bSTE2229P8g1gBpLtwoAoUzj6Kmv", + "votingAddress": "Xur7C9bSTE2229P8g1gBpLtwoAoUzj6Kmv", + "payoutAddress": "Xuizi1a6DhjzAsmcUE8mzba9mZLHGqWQNH", + "pubKeyOperator": "813da9abd4f93fd325b582f872b9551edcc2d3069672624f363641d87fff41f53d70bd0fd6ac0956813578eabfe9ffd4" + } + }, + { + "type": "Regular", + "proTxHash": "64d0dd5470811e34b9ce07b7b111de9aa3c3b386651894e116dbe6d1b969543d", + "collateralHash": "554a40b8c0d738e2e35f3f413a1bb7707d843b0c54af2debb32c2a211af82da1", + "collateralIndex": 1, + "collateralAddress": "XbWqVm7SC8g5F78t634vNECj9K6q4ZMSBB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "180.68.191.77:9999", + "registeredHeight": 1042809, + "lastPaidHeight": 1870501, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1745280, + "PoSeBanHeight": 1872618, + "revocationReason": 0, + "ownerAddress": "XrKQvfVxUSQK91LdAMTWqovSAUNLF7xUeM", + "votingAddress": "XrKQvfVxUSQK91LdAMTWqovSAUNLF7xUeM", + "payoutAddress": "XbWqVm7SC8g5F78t634vNECj9K6q4ZMSBB", + "pubKeyOperator": "16b95507213d3a58b351b89c50481a167485009b2be7c329d9f9efb4399695e0ebbcb084943df079b258001e077f55a7" + } + }, + { + "type": "Regular", + "proTxHash": "1eb05da8e76ed4c9e70f0400762e8136d82d90484d803842f113f2b824252ae1", + "collateralHash": "60ef07b310d74143d81e145f97d426f737ba9ee55b72ee0a3f5f2e84ba3a155d", + "collateralIndex": 0, + "collateralAddress": "XkUTcAac2ctCMjyW3tHvXKzdv9FH7krdrz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.183.183:9999", + "registeredHeight": 1042927, + "lastPaidHeight": 1985105, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128253, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc9JnKihonh36wKUpiZPVAo87p7aQsj2Xz", + "votingAddress": "Xc9JnKihonh36wKUpiZPVAo87p7aQsj2Xz", + "payoutAddress": "XkUTcAac2ctCMjyW3tHvXKzdv9FH7krdrz", + "pubKeyOperator": "8c4dc56ad1bd61e55b7006548a8a7762e6228069c70e1f35c560854be2b6724c9fb29f0d0416af18c3e7a99a761aede0" + } + }, + { + "type": "Regular", + "proTxHash": "c4a15fde0759164e7de20c8afdf60cf0ff0f885ce63b6810e35240501a098997", + "collateralHash": "71de63862c7ca6d627876a7197d44d26882489d0cdb61871d2b9767f660e8ee9", + "collateralIndex": 0, + "collateralAddress": "XgvFut8CmQMQP9TFdvXDrubd9UZXHVaMC2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.202.37:9999", + "registeredHeight": 1043162, + "lastPaidHeight": 2127114, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmq4QhtfBxvznxFrwtwZYuTj4MQk94kfK8", + "votingAddress": "Xmq4QhtfBxvznxFrwtwZYuTj4MQk94kfK8", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "99845ba07218cb70ad5779f7c70fd6bb5d1f807df3b772c4551b9a79c4b1ac39e3e46379fe2209cbc940f8e798314712" + } + }, + { + "type": "Regular", + "proTxHash": "857b424eb29ad076da2cb80e0accfba2b1f2d879290dd96f855d4cdfc485116d", + "collateralHash": "5933147d6dcf91e0f0507c55d03bbee6054b3984b9cf5f591da0983a4cde3787", + "collateralIndex": 0, + "collateralAddress": "XxPVVDgCtQ2gU7UmHhUh6pNhZoCx6uFAw9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.32.155:9999", + "registeredHeight": 1043322, + "lastPaidHeight": 1983211, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsjFK5UBzXtyFBq8r51zhY1FCRUgSf6a2E", + "votingAddress": "XsjFK5UBzXtyFBq8r51zhY1FCRUgSf6a2E", + "payoutAddress": "XxPVVDgCtQ2gU7UmHhUh6pNhZoCx6uFAw9", + "pubKeyOperator": "8c981426a2daea29fc4fedb5923b58180a6cd323fce27661a8cccc943fc72e508cbcf36a9361ef59b8fe9afd49a68259" + } + }, + { + "type": "Regular", + "proTxHash": "460ecc6c1ab6fce1ba4fd88384cae19b988bff82dfae90777ef17aad7c61fe23", + "collateralHash": "bb13e72236d8bb57d4c7fde7b458f1e0cac8bc932f0618d971d790b04c910e0d", + "collateralIndex": 1, + "collateralAddress": "XxgbcT6WSho47toMTcbBtFFTxr3Gom2jW7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "81.227.250.51:9999", + "registeredHeight": 1043979, + "lastPaidHeight": 2126073, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2116856, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpgQu4G5CAR3WbgYM85QB2JLthU98YGSa8", + "votingAddress": "XpgQu4G5CAR3WbgYM85QB2JLthU98YGSa8", + "payoutAddress": "XpnRPDeBgUBkAZn7LrEdyFf6EK15D1fe83", + "pubKeyOperator": "889c18828eb661ee9e3a967e2e05864d39de3666f57065ac1c6ccc14cb1bf22633117197bb18df78516f4c2b16f8070e" + } + }, + { + "type": "Regular", + "proTxHash": "f4cb0938dd2d5843ed0bcd92d7609b5d4324cc986eba5bf4b8afb643bd31ac8a", + "collateralHash": "9d66e4d6ebd66a2deaba35da74d8ead5234e2f2d88e1206c4fbc8b74767374f5", + "collateralIndex": 1, + "collateralAddress": "XrKiMnDhGZg6NUSrgHcSD3dgoG5isg54uq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.59.178.83:9999", + "registeredHeight": 1044554, + "lastPaidHeight": 2126474, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120418, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe5AkvEeqpPQAquuUqa9eeGsWW1dM6haXn", + "votingAddress": "Xe5AkvEeqpPQAquuUqa9eeGsWW1dM6haXn", + "payoutAddress": "Xnr3fBZHW9yZZ4YYyWPnFvbjcaddXWkpFJ", + "pubKeyOperator": "016844c9d0bc3058e75dd52fc52486943a07ab3a19ca91ec2e4aa0eafdfb8aa8de83d94ceeddb30fc7320ad37cb27fda" + } + }, + { + "type": "Regular", + "proTxHash": "00a6aa2d8bc371d4577c887a5c68003b75dba238eebc9c6d76941b1e7b7a4304", + "collateralHash": "f5976a61132e0c1c81933e3b3be06c0c73bc5cde1ef855ff79c936a8dafcaf8e", + "collateralIndex": 1, + "collateralAddress": "XbfRewDMvtzhqptEEgk3AAkUTaN5ZfiSg9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.148:9999", + "registeredHeight": 1045755, + "lastPaidHeight": 2126217, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvX2JFjdECnk4pucJAMgqiLLPuw2fScAHo", + "votingAddress": "XvX2JFjdECnk4pucJAMgqiLLPuw2fScAHo", + "payoutAddress": "XbfRewDMvtzhqptEEgk3AAkUTaN5ZfiSg9", + "pubKeyOperator": "0511a3fd6483e847ec3743388a0b27d6e06ec4fc5aaddbef55be1dc0ed8b18dae49d3090157bdee6e0ee14ae100deb46" + } + }, + { + "type": "Regular", + "proTxHash": "b4b0d5fcdd169c7ae466231d0bbefda1e3f707d07891212cbd164e224ac9e599", + "collateralHash": "af7c45dc5e9a508be930b0b3c498f4113fa6d6c950119b6f672ae7d6293d8739", + "collateralIndex": 1, + "collateralAddress": "XdnWRi9u9H569Gue1NAtv3ApFieqxuXzPN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.127:9999", + "registeredHeight": 1046037, + "lastPaidHeight": 2126415, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoovJSXwTTf8dDfV9mtpwozxdwtKNmwocz", + "votingAddress": "XoovJSXwTTf8dDfV9mtpwozxdwtKNmwocz", + "payoutAddress": "XnUkowgszUMy87BBX87yLe9DrnEZVbFvgJ", + "pubKeyOperator": "919d5511a6bdf776dc7d6345f5259f167a44e53564f53552789062fb04125ffb606334b9e6cd4ee59a3b9f71756e72ac" + } + }, + { + "type": "Regular", + "proTxHash": "95cf85c7817de7b91fb6505a79fe231d73e6d2dacf959006cbd1146386371ffb", + "collateralHash": "f07555de6aa78dbf3ab7fcc33912cc3121ac641cfc12dc5127a1e02de3e58011", + "collateralIndex": 1, + "collateralAddress": "Xu9AcH6kWG64nckhQS2VZBC5QdtnexVeaY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.167:9999", + "registeredHeight": 1046525, + "lastPaidHeight": 2126740, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpN8pxSn9FBCgZh3NqZ9YziqdM5RzEMEYY", + "votingAddress": "XpN8pxSn9FBCgZh3NqZ9YziqdM5RzEMEYY", + "payoutAddress": "Xs2x3je255Tz4XDjGLSDfHBLtn7XmhnKaR", + "pubKeyOperator": "836187d7b4f467a7a4cdbcc621bced9777c22fddd17015a8226cfdb1ecd4f89bba333bf4076a70d9b6de550bdf425b0c" + } + }, + { + "type": "Regular", + "proTxHash": "d500dc4e33c9174becd2600d6b61f70e2411f65854db194a68de67fd3c5e3ee8", + "collateralHash": "5c28d223e2b6a2de3c6834f4b613aec67c6289c2417171ce18973a4487bb6eed", + "collateralIndex": 0, + "collateralAddress": "XtQCRSH4v7pj9U87mhKqKGEjuFDmWZaebL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1046567, + "lastPaidHeight": 2097501, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1557313, + "PoSeBanHeight": 2100219, + "revocationReason": 0, + "ownerAddress": "Xm3wsQ39i2ihfcbFCbvhxEL3yU2B2MXf9g", + "votingAddress": "Xm3wsQ39i2ihfcbFCbvhxEL3yU2B2MXf9g", + "payoutAddress": "XtQCRSH4v7pj9U87mhKqKGEjuFDmWZaebL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "53b891c2b7589ecc60915f726f875ffbc925f9f930da0ac5a0d401e7d3cc1a72", + "collateralHash": "22e9986aec09655a4cdce033fca31da20cd9412261c8b22fa2f8613dfc4bed29", + "collateralIndex": 1, + "collateralAddress": "Xrdo7VEWW9hQoWyoneuLw29Hg35QCtKrQy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.152.112:9999", + "registeredHeight": 1046704, + "lastPaidHeight": 2128133, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1857932, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkDQrUPKhWhvQLMsHcfynJ6RqzJ9LWnnpW", + "votingAddress": "XkDQrUPKhWhvQLMsHcfynJ6RqzJ9LWnnpW", + "payoutAddress": "Xq3sjsvMyyXHZSPsRaBeb9aNj8YWdj9v7N", + "pubKeyOperator": "8c10b4020c630351db359d1e6fca75e81aa2db7931bc5d0bb7dfa0983627a4c4c762af250e8ac28f238bc8da40deabee" + } + }, + { + "type": "Regular", + "proTxHash": "f0adc9a04556423c8fb94cefca91dc6cc44bf5c047a63bf325b10f8a64b11180", + "collateralHash": "d1c7a770f16d6315f00559bbd0f897226ca696a937a377b909f53e965cb09b12", + "collateralIndex": 1, + "collateralAddress": "XhkqfVukLqveT5nW63y6apWrUaxn1bLXSw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.253.11:9999", + "registeredHeight": 1046788, + "lastPaidHeight": 2124442, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2128056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XifRSoG2zc1UK8NEe6BfteH8mn46N4FWw2", + "votingAddress": "XifRSoG2zc1UK8NEe6BfteH8mn46N4FWw2", + "payoutAddress": "XmXcDEZo1hUUNMLmXNypfdiHpwLuq8Ez8c", + "pubKeyOperator": "0c3bbdbbe64a575bdf57efca0e4cf20afea2926e1367c30b1ddbefc68c3269d835f1a4c21dd6e397270a66f20a973ee3" + } + }, + { + "type": "Regular", + "proTxHash": "cc9ca2e84afcc0d806704c0faad834598d5d8edb82d214617c45d7faca0bc0fe", + "collateralHash": "c990c6158ad7005a320ae4aaedc132d8017ef0b648f9a0c02a4b47f18b9f0a4b", + "collateralIndex": 1, + "collateralAddress": "XrABJhyN3dPUT1nYhKcvDY6piXerBweKUC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.233.92:9999", + "registeredHeight": 1046793, + "lastPaidHeight": 1605888, + "consecutivePayments": 0, + "PoSePenalty": 4588, + "PoSeRevivedHeight": 1533975, + "PoSeBanHeight": 1607638, + "revocationReason": 0, + "ownerAddress": "XbsCPV95QB6UckpBxg7HQJsV5qezEvZpQR", + "votingAddress": "XbsCPV95QB6UckpBxg7HQJsV5qezEvZpQR", + "payoutAddress": "XkzKbLQAFiDgfihYo3EqjsZSDJaFUi8ykr", + "pubKeyOperator": "14c66f75ffa61ab89a05d1a481cd38aee3b7b0a0586b23f81b7ee7c77f0dc6399c477f9631fcd5937bbcdf5309ec408b" + } + }, + { + "type": "Regular", + "proTxHash": "093915cf03ffa4fc0621e04da393109bb9751a0a4a9ea8facdb47e5432741932", + "collateralHash": "3b79f7c2af5f9667f344ab8db3af4224a8b147f17a6dccd8d57331511b603428", + "collateralIndex": 1, + "collateralAddress": "Xhv57c5sxWNzwRUrd1WEqMXRJSnag5rXK1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.155:9999", + "registeredHeight": 1047144, + "lastPaidHeight": 2127246, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyjKLEq8HcP9cjLHnc66HM3S1Qxie5RHML", + "votingAddress": "XyjKLEq8HcP9cjLHnc66HM3S1Qxie5RHML", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "98cd4ae45074ac70c832f588ebfb28961ee690fceb0be47a9be962eb8566a04406179bace0254e3ba605a3b03288ab8e" + } + }, + { + "type": "Regular", + "proTxHash": "5cedca64d83b6e11d34314639d62c7f355be1f27d9c20f5dd17add9d4dd0f33c", + "collateralHash": "49d9234b544066b25fc89dd8c3724604862dffee9bb022191c7d0bc4306b991a", + "collateralIndex": 1, + "collateralAddress": "Xo46dfLHrza5qinUyhke5GQyZU5wZ3A1a5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.182:9999", + "registeredHeight": 1047148, + "lastPaidHeight": 2126108, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948739, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkVNtigjKobSkLgDSGt79m7gtYCdqvC5uV", + "votingAddress": "XkVNtigjKobSkLgDSGt79m7gtYCdqvC5uV", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "967740ef7542035d097822a80648998181edc5f86b7a85a10febc5b52cfb2e86c94fd1851892ebca4c0b3b071323e051" + } + }, + { + "type": "Regular", + "proTxHash": "bdb0deb1f5446b782ebd5b62b7b213f460826889da58ffe09a5886a9c885f3cf", + "collateralHash": "73661937acd90b4bd4972097e6032af0d7aa9ea782b36c4c61d240069534f62e", + "collateralIndex": 1, + "collateralAddress": "XqAYZrNYS3stTBRANSwUoQLnpEaqwbZish", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.51:9999", + "registeredHeight": 1047152, + "lastPaidHeight": 2127274, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb1CcX41ZMK4k5JQmsGyuCuCZGFkRjrCJW", + "votingAddress": "Xb1CcX41ZMK4k5JQmsGyuCuCZGFkRjrCJW", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "961ffce055ca01cfadc65ea4fb98411c75c001d5f0261440be6732bd56bbab216d74b8b014c0375914cc7b04eadc4f1d" + } + }, + { + "type": "Regular", + "proTxHash": "d41b219d51b2666f9bd720b40eca75ab293c70814a4e666554878716fadbbd42", + "collateralHash": "69e6e0988bc1da8c5591ffcc410ecaa57b292f66f22d6a8433fd6c5d02791b40", + "collateralIndex": 1, + "collateralAddress": "XsV4ogiAWvm9uCd4iXC6Y89zp1hTTBZp3V", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.187:9999", + "registeredHeight": 1047154, + "lastPaidHeight": 2127343, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1441196, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcknatsLSs6uVWXisiEpBZRki9nNMPLmBp", + "votingAddress": "XcknatsLSs6uVWXisiEpBZRki9nNMPLmBp", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "14a49eadd093b3b508ff43fd7e0950a6d151acaf8e188ca84b1d981ec0be689afbfcfad8a66740fa49c4934457e08ea6" + } + }, + { + "type": "Regular", + "proTxHash": "5df6de8c92cac8738228e25589922bf6a35a3a8c2c1f7d15d75f01fd46764830", + "collateralHash": "f14b689c23236af773419464a28d6cb40d5abbc615ae1045b7fd3ef9cade3a46", + "collateralIndex": 1, + "collateralAddress": "XiL7snoMr2N6y72RgHFKsNrqcUTEmjeaa8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.89:9999", + "registeredHeight": 1047160, + "lastPaidHeight": 2127872, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986994, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkcAwDp4mBjxbW5QHnkVDMJn5UoY9vp13v", + "votingAddress": "XkcAwDp4mBjxbW5QHnkVDMJn5UoY9vp13v", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "1812622fc6dbdf5993bef522c5f4444c066a423f1bd51e17d5099b2745513ae6fd31de968640aa719167a117eddc705d" + } + }, + { + "type": "Regular", + "proTxHash": "147050185386a7ee7704e7604a21da9de92cba117d8363f5b42b92ec39ab52df", + "collateralHash": "0f230aa6598a72250eebbe9dacbe295c681f842254b42cd18670486e4c881bfa", + "collateralIndex": 1, + "collateralAddress": "Xxcv9BQUX84aVFuo6bsgvSeDCgeUtaBdDF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.44:9999", + "registeredHeight": 1047171, + "lastPaidHeight": 2125815, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820814, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnoTveTdXgc1r6SEaSG999xuLKtpnoo7i2", + "votingAddress": "XnoTveTdXgc1r6SEaSG999xuLKtpnoo7i2", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "02775b810f03b9e1a1031abbd1e152ffecf8da7ff48e1fbb7664c219cfb1222ddefc6e2c5c89b45e03bc9e4ea6fcdb3d" + } + }, + { + "type": "Regular", + "proTxHash": "b835a13e3ee5080c473bae6f7d7af4a42866a173c880c3bf73f0190a6e42164f", + "collateralHash": "cc8d78058946223d8819912790010deb4ee01a2d086a5b8a04c4abbcd652b4ab", + "collateralIndex": 1, + "collateralAddress": "Xvemk6jt5wtZsyjBWDBzgRM9spGdYmbZsS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.221.100:9999", + "registeredHeight": 1047195, + "lastPaidHeight": 1371019, + "consecutivePayments": 0, + "PoSePenalty": 5120, + "PoSeRevivedHeight": 1085328, + "PoSeBanHeight": 1374707, + "revocationReason": 0, + "ownerAddress": "Xo2UpB4WhLsgsMwc9VU9cCzPMpYZokad8M", + "votingAddress": "Xo2UpB4WhLsgsMwc9VU9cCzPMpYZokad8M", + "payoutAddress": "Xvemk6jt5wtZsyjBWDBzgRM9spGdYmbZsS", + "pubKeyOperator": "86cc8e4ab543de3ab9dc1bed4a4491d9440ab73b1680c4dca3c663a66eb13462c076abd1a0f2ed4a5caa6b1fd1649774" + } + }, + { + "type": "Regular", + "proTxHash": "108448bfd2babed6b9c25622760e60c6b2c5cfd17f590658b86ff7c919def378", + "collateralHash": "c60820064708527b5af8e85fb468404689ab3621df25bf4c64c8e2a96bea1c5f", + "collateralIndex": 1, + "collateralAddress": "Xo9rti4XyZkra53ZmFYxvdjdZvj2mNRc9w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.183:9999", + "registeredHeight": 1047244, + "lastPaidHeight": 2126110, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948739, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnK5ABYd1Fo9zB4WB5ZuZKPiHFiJqJQzGY", + "votingAddress": "XnK5ABYd1Fo9zB4WB5ZuZKPiHFiJqJQzGY", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0756859f4ea8be341328f411b2e16926cbdf96648fa7cab5eb8ba662d6d58d917fc7688c1d9147e2390d5349b9604ace" + } + }, + { + "type": "Regular", + "proTxHash": "a9cc0baca3c02e746ccf5052088b3a58a79a1a157e69f7423cf33330b43b5782", + "collateralHash": "8834b219f0f41b2b939bbcdef02cd137322318f2153fd6ea55ac995a34578553", + "collateralIndex": 1, + "collateralAddress": "XrqYUzxt1FiyXZgQpKWRactWUCbqTB8VMQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.61:9999", + "registeredHeight": 1047244, + "lastPaidHeight": 2127369, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjTHTyzYYV7T4syHkvKoYmoMSszify1qC8", + "votingAddress": "XjTHTyzYYV7T4syHkvKoYmoMSszify1qC8", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "10ee7ad7f595691af1a77bf6bf27ddc8478581c0bb035cd24b743dd0415b336a214c0d079e75454f7624c7e58df11f42" + } + }, + { + "type": "Regular", + "proTxHash": "6400c08370692c4bea2d8b3d51f808746e63b39c678412671514afcf22609de5", + "collateralHash": "399cdc04439a146aaa48028c22d0d203a4b8abe809f07a8d746efd54aec4a900", + "collateralIndex": 1, + "collateralAddress": "XwiJBw2mE9APmLrJt27NrrE4bkYkfcfAzz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.6:9999", + "registeredHeight": 1047248, + "lastPaidHeight": 2128574, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004293, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcbfjhCKyTYoU1GyCVY6KaTZQcg2DHELTL", + "votingAddress": "XcbfjhCKyTYoU1GyCVY6KaTZQcg2DHELTL", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0ccb7f4c1de8c75d8bc761fbb46d0d625fb416a416b22dcabdbd47becc821b80437f351abd48bb334531c92966ed3e61" + } + }, + { + "type": "Regular", + "proTxHash": "a26ee19ced74fc55aefb7fae64d6b0e49e1a7a3f6598dbb584bcbe43eb5c6e8c", + "collateralHash": "4b5fb58de9ed78a4ff4d8402f790ed11ae8f547c9a4f843634debaae1fa90e8a", + "collateralIndex": 1, + "collateralAddress": "XimCrNxvppnfeLvWS4yeJijLnAiyXKJDPd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.79:9999", + "registeredHeight": 1047248, + "lastPaidHeight": 2127376, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1191123, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk2qf7J9nYWW8Dm8LhxT3wCnikv3QHBEF6", + "votingAddress": "Xk2qf7J9nYWW8Dm8LhxT3wCnikv3QHBEF6", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8f4fad4d3a38c662b27390ef799c39de12533575e5267dd34d81b97b3916832fe6d0eda5aea8b6f4db9e43b820908813" + } + }, + { + "type": "Regular", + "proTxHash": "a4b56cc337ffe101e0a5651bdb942043612ef10bd176b8c86db032c1ba8d1344", + "collateralHash": "07ba9262a85622f3b9a41130b96cc1aab54cdd43b0fc2c06d0cf7b1e266b3201", + "collateralIndex": 1, + "collateralAddress": "XsRe7fPtTLgH1kkbMaHBDuNpbtujcYnttw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.46:9999", + "registeredHeight": 1047250, + "lastPaidHeight": 2128572, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2004292, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfXQ1F2koUuZphJDz8ztTfnbaTWSUBNzLS", + "votingAddress": "XfXQ1F2koUuZphJDz8ztTfnbaTWSUBNzLS", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "09c0ee0fa20fe6355e2cf84ca77799f3a39ca5794bcfc7dc4c78b747f7cad5d18dc54fa7963462bafc8565e92a8a0472" + } + }, + { + "type": "Regular", + "proTxHash": "91d3787634e52541680d1853d051450587e0f025d691460926df5194350023f2", + "collateralHash": "e4727bde347de4a820b4bbb724de7db76a0eb9a7725a4ec80e788c348258fda9", + "collateralIndex": 1, + "collateralAddress": "Xg2WfR3w72PeUHhNqDagvfx8PCNcoTpEEu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.70:9999", + "registeredHeight": 1047260, + "lastPaidHeight": 2126565, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665706, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdddQ9T71G7X7uydjwumcejQhvvP6yBGot", + "votingAddress": "XdddQ9T71G7X7uydjwumcejQhvvP6yBGot", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8f8532a66eccf1575186b8378c2e4bc40f5a4bcf0f41bc625697f0bdd2ef3137883c3250c7b0dc4edcc92d0bdc99de9d" + } + }, + { + "type": "Regular", + "proTxHash": "fdb28cd79093c2a6be18f7b168f50008125a2416984ac4126dab6c8646657dd6", + "collateralHash": "655f5de07c7acdfe1c4fffff69651b98d2fa34db54b639f55cf675df6b1ff9bc", + "collateralIndex": 1, + "collateralAddress": "XuxRQuRYQ1TBenaktDocf8pEN5e9y6BFch", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.35:9999", + "registeredHeight": 1047281, + "lastPaidHeight": 2127409, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhuXDkqHfM9ndrB31wRihSGj5Ld68MMcZ7", + "votingAddress": "Xwqp92vXjeFbyJGxx2SUXLCHsNqbX4PAUy", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8a2c376ae40d217b5c7afecfd18493ef29ee32716d66c7901cf6d70c978ae62f6ce37dc0b30f603fb6c097dc9e7dca20" + } + }, + { + "type": "Regular", + "proTxHash": "974da38bce2e72fc3855cdd9dba91bcd91875054f90fa602b899828172e571cb", + "collateralHash": "b267c4e4c46ed6b59853eb2c4841ed35aaa9ef98e29923fa4605e06b3f84beae", + "collateralIndex": 1, + "collateralAddress": "XfsrTNSFWTYYqDm28ydsvxQVdvCtpEJ2Mp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.36:9999", + "registeredHeight": 1047281, + "lastPaidHeight": 2127406, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmSaEfHc7DnEPgVZvYiVLHpfu7gWnTosfH", + "votingAddress": "Xibg2m2kz4QLECPQ7mBET3wsLD37DXbi4w", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0d1f1de62607e61bb5b16cb0dd0ffc3e389224eee37d87fccb74781676bb92ec9c641b361c22c5094a11a04d31c83e3e" + } + }, + { + "type": "Regular", + "proTxHash": "93464074b530dbf07aeac00023e742815b91b3ed43bb8c71802ef79f5604c2f9", + "collateralHash": "cfd6604931c82ca30d3d4cabf6481f4c3c4fcdb2d432d0f7ccf59bb0253b4ee7", + "collateralIndex": 1, + "collateralAddress": "Xg7kVJapATQ4Vf2QmjiHorYekZciQxgz5P", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.68:9999", + "registeredHeight": 1047282, + "lastPaidHeight": 2128092, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1939835, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuqZvx9hrJdGcFYPYq4n5dWf8PLQUkMGmh", + "votingAddress": "Xp9yr1c1a2B71f7dz15n2LSn7834n26Nca", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0c2817934ed1f6b00c7eeb4cd58603d7745e7f5d4d53a2116b424ac839b48a8ba4633b75729fbb8c1e200faed41c27b1" + } + }, + { + "type": "Regular", + "proTxHash": "86df403ad70ff51cf65d5d0376d2d906fbe6d1a7875c360a4fbdaaed558ce1cb", + "collateralHash": "356dc464eeba3a159087d78037778c27d588fac6a97782098c2397485e89bf18", + "collateralIndex": 1, + "collateralAddress": "XifoSJUMntvHDWwmppic3tCx6fUNibyy8V", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.162:9999", + "registeredHeight": 1047283, + "lastPaidHeight": 2127029, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695535, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvFReewu9aC8mpNnC2cusu8M4hK9kvUiYs", + "votingAddress": "XnsQFyzefPmmoAZRPL2ryQjLwtDp7UG86D", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "93715aa9fdd42f796ce3b726d01254fec10647479db0fa7775304d540ec608a3040f6a5aa1326164ac70bf7c5634303b" + } + }, + { + "type": "Regular", + "proTxHash": "2d925832565fcf67fa292fac1a6e8053d579b04f95d558787d0da4bcc03daae1", + "collateralHash": "74e75a2ea36ae43c54003083b48787ed88100d50b494fc5937c26fa0a1c7ea1f", + "collateralIndex": 1, + "collateralAddress": "XyETrTySJfEHddBdHTMn6N6b6q5QUex8j1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.4:9999", + "registeredHeight": 1047283, + "lastPaidHeight": 2127905, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987015, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoSh82By6utPKehFZ4jVk1oNK1kuqa53dZ", + "votingAddress": "Xytnpi2hT7hdNyJBVmpqNvKgkNxXbrRQpB", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "96c1d00f49b8a17dd7704a99bfdc3cc55561be2542a495007dcab3c0287bcb32dcfd4fea2e1c0c4e64b25bbdf690cf31" + } + }, + { + "type": "Regular", + "proTxHash": "8cd8e70dde38a2110a12df3860da528d9af5e66656d6efe2e1794796cd31eef0", + "collateralHash": "047fc3763178b1fc35cbfb28911078e7ffa4b82e61bb4129d15ba3c7af356d3a", + "collateralIndex": 1, + "collateralAddress": "Xr1iAErSYTYZLUW2UzkiyqysNjiiXeun5t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.36:9999", + "registeredHeight": 1047283, + "lastPaidHeight": 2127619, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1624284, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbm3ZSjLy6UsXs48H31BvC9GL6DeYWdiVw", + "votingAddress": "XgxWAH4MAXxEzvTo2VQpqhuEYGQnT3fqVK", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "11cd5837b5c4654d177b351f0ee4e0be2a5eef0bff037a544c2f95eaf662c2c23d9ec59b366322ce59bccc8b3eb33104" + } + }, + { + "type": "Regular", + "proTxHash": "e4e5b6b129207bc07a768ee9d50fd2defb8a1ac3710d73656ccc38613628db3b", + "collateralHash": "bc17613eebbc3fc1dfcf1b5a9743dcdea5d92d21072817d7bd864e28718e418c", + "collateralIndex": 1, + "collateralAddress": "XpxEMQR3vU9u7Xx6nC9tNt646mfygV5fSL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.58:9999", + "registeredHeight": 1047283, + "lastPaidHeight": 2126111, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948741, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdSoKwmKsb5rLdUWdGviQSWgtaJspekjhW", + "votingAddress": "XpSkpjCpv2rUBatn39bMvg9hBSsRm2kyiG", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "86630fbbd90156acc362aedc9fa48f95c461ece5139f69c4e612cc0efa2568a2a8685e13c42c18ab177b4faeedc55532" + } + }, + { + "type": "Regular", + "proTxHash": "d20e157f7f043f2dc1359fca206bfa2eeb8ad076437465cfd45618ecbe429ea9", + "collateralHash": "f8172fcab8f928ffbc2e2b697741542f120e07571f764f009a99665195f6d50c", + "collateralIndex": 1, + "collateralAddress": "XayKhRxMKFdESW4Lz1F9xrKmm2UQqwZSbq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.47:9999", + "registeredHeight": 1047287, + "lastPaidHeight": 2127410, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdQ8k4jLM6D5VEib9dQVps9iCyCTgwCMpq", + "votingAddress": "XmTGqLN9LmsL7epuGhFZXrPKbYP1tmJE1f", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "80150be0739c08ecee54c83825cc1ba076095245d6b9c28aef0e7c7473f124ea97ca8a48fb1a07a010aeafe5232232cb" + } + }, + { + "type": "Regular", + "proTxHash": "f0141bd0a8515081b1165a7cc89bbcf346b102df5812243284f74f5c1193c53a", + "collateralHash": "02e7515b4b569a9c141f1abb26019d5df53a9066eb86bb6207d8a232d279cbeb", + "collateralIndex": 1, + "collateralAddress": "Xk1w6pNKAGmjkmWMnuHSbJJcSXVESH5qFH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.88:9999", + "registeredHeight": 1047291, + "lastPaidHeight": 2127411, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XenvzXYMTGKBMrjx2T8gPJqjuWLopYmeVu", + "votingAddress": "Xc2WSjx5S24nK511iquV76Aw4a8os4og1n", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0c08500f384056485306bc8ff98a26ede2d20248ea1f7ccbd3ddc8b29a0e46a8fcda6a02d7a12b6ae94207a441411477" + } + }, + { + "type": "Regular", + "proTxHash": "8f9567b522676b2123cedac8e9b9b64b8257812dfa6a75ea1354e6452f1fab6b", + "collateralHash": "eb20dffd681584e2b46eafdfc74616d6da83cab91f996c7fe29a0f9a75b810d2", + "collateralIndex": 1, + "collateralAddress": "XsNzNUeZc8HLY6rPCBqE1RJcjQvcCRtCei", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.56:9999", + "registeredHeight": 1047291, + "lastPaidHeight": 2128261, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1351923, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvArjvsoHWvSGG2W3q3kjRyDaqYpjvuVrr", + "votingAddress": "XuBBkuwfcD3JuRFUv5uwm36fMu3o7KoDLM", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "0f00f5c4d7e6e37256ae539b189d0dc8f5c2954267a97a2a86b0c45df9971e2e1daed83b3081874e4a505c67773c2816" + } + }, + { + "type": "Regular", + "proTxHash": "9bea5652c06faa2a0e599d06fab3705b419415c6727937c7356e0cdb25284f91", + "collateralHash": "5977dfb3dd62a24f0dcf742a7094172a8818e00e826454a882d0f3b9481080b4", + "collateralIndex": 1, + "collateralAddress": "XkbjvjQikWkE52MyZ681Yu7xGT9M5iRmp5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.67:9999", + "registeredHeight": 1047292, + "lastPaidHeight": 2126843, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764856, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi8XQdf2fLgKvnuUqK8TFEhZzNjymSB5W1", + "votingAddress": "XvMjLBtHfYoKA6WQqEcF5E6jWVkEXSG6sk", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "9923ff9ed880d9f6dea24b461c07d99bbe24f9cc9fa51c0832ecc4b6364c05edf719b45c0cf382ac7f5cdb629506015d" + } + }, + { + "type": "Regular", + "proTxHash": "9fc2e53375969bde4190f2a5e49dae3c0016ab7d50b95e9e63963b31c0077393", + "collateralHash": "57b6c95a9a5f73a8ede09c6dea69a53d4f66adb625736ccc717d5ddb7fa77933", + "collateralIndex": 1, + "collateralAddress": "XyGc1soAtwhvGSUk5qGV8VBAtJo6BB3rMi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.33:9999", + "registeredHeight": 1047300, + "lastPaidHeight": 2126806, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1871796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgm2zVQNcNbeupRZiLbyvXRGGD3dUXuNp4", + "votingAddress": "Xx5skMMyez8mSZPMY3qKJAn7tzEDub6Mgd", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "898a2d37e7816ae89b5e333999cebf87855d1b423ccb66c0f530eeacfea7d56b1e37bffb8f506a35243e2b2269c95fe9" + } + }, + { + "type": "Regular", + "proTxHash": "c6aaf7de8773277cf33477aa43c5d2fd2482526e8204921c873612ed5746f8d8", + "collateralHash": "ccd2952e7698339aac6f9308b3ee5d0d082ed24379443ffe7ff0dba7823a8cb3", + "collateralIndex": 1, + "collateralAddress": "XepgsZCiq9YLcjtHxVKPDDGBXYVeUjntse", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.185:9999", + "registeredHeight": 1047303, + "lastPaidHeight": 2126833, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764847, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkNGtQEbqtDJHaX7VCRV4BHEfK6coZe5ZK", + "votingAddress": "XiwB6XLhvzkHGi7x9bynyDAAYTeCB9cUYr", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "029537994896c7b0a0d904c430744795a5f26e1b3884ed5ec3fab75303c2e711bbfdc6dd95e3cad265176ec01d81e8ab" + } + }, + { + "type": "Regular", + "proTxHash": "a3296ab32830651a0b17883c05bcc5950fafd28e9290815ace1ce6dd26ce4b45", + "collateralHash": "6e537b719bc5ef0f9e858bfb95d69818e9420d00006b9d52429a7754c3e7e05d", + "collateralIndex": 1, + "collateralAddress": "XfB6ahxHHopDYwfnGxpcBvjdn4N3kyrUsd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "79.98.30.55:9999", + "registeredHeight": 1047304, + "lastPaidHeight": 2127713, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1380425, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu4pnNRVmSeXXtWSHNiukPUxVNSopog7L8", + "votingAddress": "Xu4pnNRVmSeXXtWSHNiukPUxVNSopog7L8", + "payoutAddress": "Xk6RjwRuBPZ6JnNezygrTiX55RPyyFKswW", + "pubKeyOperator": "04c4952bba25bc5f87212d46254c5988194252157d921bbf0c771c6afa1e45219f20fa5c7de1f62edf43e232d3d4971a" + } + }, + { + "type": "Regular", + "proTxHash": "db9d5d935d35ce16cc35d33f5261bd5f383edb09fab165a4d14c83263571a2c3", + "collateralHash": "66e38a42885b741988415f0fbad2b40a6d716910059459e8940cac3a649f1a7b", + "collateralIndex": 1, + "collateralAddress": "XfRwstmWHTD1CE3DMD74H8mc5sa6xLyJf8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.184:9999", + "registeredHeight": 1047304, + "lastPaidHeight": 2126814, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1871798, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyUYKcCWXa8aqkmPkpXoTLu5SsX75PXyz2", + "votingAddress": "Xp8NYraLJWirusuncZT6Bj9C8rL3dshTu7", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "00a225768b92fa5bbe0a29dc4f4eac8b1ca7fc157c8c398d7ff9358e35ab71fea5dc7be34f8bd971ca33272295bcc0ec" + } + }, + { + "type": "Regular", + "proTxHash": "70c88f398c2e10b7c026db5389431548fccfe77593d81fce7108c0bf6d8ab7e8", + "collateralHash": "bc2ce2a9072214e17c2b63df9027302eb77fdb2be7e3c540586c980ab290956d", + "collateralIndex": 1, + "collateralAddress": "XpU2njCsdN3Zz89Gh6Je9LCx1vaHSRk73E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.63:9999", + "registeredHeight": 1047306, + "lastPaidHeight": 2125803, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820807, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XasH8F8MAfbF417D7fVmvSHGT9hD7NKXCq", + "votingAddress": "XujdkSufrVdyg92g3kghAMu4kv8ALaRcMS", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "129510c201cb53de1e3f629db58533af792e46a4dd8e9fbd8b43592ea19d30037561a9132b06d0eb820b74b7eadfc67a" + } + }, + { + "type": "Regular", + "proTxHash": "812e3da46a31730be697626722efce62d3af9614341913e1d2da94853bf30523", + "collateralHash": "176471f99bbaf0248c026a45b8162a5d06e410e73038a19aed46c9d2190a6095", + "collateralIndex": 1, + "collateralAddress": "XxYGwneLFxguHoxeQtuLUTRZKWaPFAPGd4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.71:9999", + "registeredHeight": 1047306, + "lastPaidHeight": 2127424, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkK7Vy25iaDkVb7osGQRLhPQg5Q8ajSBVP", + "votingAddress": "Xd5qtS5361JZMJbMEZGSVTkyy1mAhwzc8A", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "09fa1d68dac314ba471385f2e9c7dd22632b1699098ea21cf1478caff4dea93786ac1884de7794ad8974416da56335f1" + } + }, + { + "type": "Regular", + "proTxHash": "f179b3d802db2093ee6651a00c0abec6e5ed69e3515aab1e929ae0c5a7d7c5b1", + "collateralHash": "c6f64115e37c588042e748bf3e02c49fa9e1267068fa957ea4cc70bf3e16f35b", + "collateralIndex": 1, + "collateralAddress": "Xu8wKyFNCyMjgkZ6kYv5mWKRcBxB6ZzNDn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.87:9999", + "registeredHeight": 1047306, + "lastPaidHeight": 2127870, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986991, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xahnv5DpMtXha6UvZ52cBSZSygNpqE9NqV", + "votingAddress": "XerwZLPCbx6bTrCDTXU4okdY58L1uNuxfp", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "184e80194b518478d570fcd661f331d79d2a21e742064301d8148b52be40f00088f02c17acab4816cf40063115eb9202" + } + }, + { + "type": "Regular", + "proTxHash": "6d59dfc1f5764d16d74f3896e2bd234e66f60db8806b79eade85ada560a6a917", + "collateralHash": "59ac225adf0e4b867c8025c4f56917d091aa4f2d6f444a5ca0d10bcf55c51ec8", + "collateralIndex": 1, + "collateralAddress": "XwfX7EWzSq2c6uTky9SLsyWUW4bvB7JFq4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.81:9999", + "registeredHeight": 1047306, + "lastPaidHeight": 2126593, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665741, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq8wfoTBA9VTf8KizZYuXExaq1xefAw3gP", + "votingAddress": "XfuRSFBLAFMzyHZub4feyunbkW3k6JjiYc", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "85fd317689c64e445d19d4382b4726e36b113459afe198aaf4d88aeeb5b4c6b255300364f127a3fdb90bb93b6d79393d" + } + }, + { + "type": "Regular", + "proTxHash": "63086ea2d7211078c0b17c91392bf1fad1e535a135087e2530bcbeef98034256", + "collateralHash": "ab5ac18aa13acfb0feacc47c2fbf0f3bad55e738857619b2de7ec74d4d60a61d", + "collateralIndex": 1, + "collateralAddress": "XxYqjyZozB5Hp8uCaRp64FcZHB7csfRiTi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.35:9999", + "registeredHeight": 1047308, + "lastPaidHeight": 2126609, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665755, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsyMYYW8JPjjUeX3TAzs1jq8p4YfNgWBN2", + "votingAddress": "XuA7S46eEmahqBjJ1zQbb1RNuKZoHqm8QS", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "052126c34be6750b3a87a0a7241fdaa9d638c6ce4067573b8b5313bb24bd4c5b9bae39f046b682d4b3525490d7e01ee2" + } + }, + { + "type": "Regular", + "proTxHash": "6c8f8b3c569496daf521964f304200ec990ca73c0662a17b365c35e8c1cdc714", + "collateralHash": "cbb37e1601d1710dbbb66592cfed94073738be71f049617276335d2e0689b955", + "collateralIndex": 1, + "collateralAddress": "XhTA6aZCaRcStePdjhRnkswTgZpVGrP1wm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.65:9999", + "registeredHeight": 1047308, + "lastPaidHeight": 2127270, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986411, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XygtAQpwhX1fDb49j58VfRY3ttWhSw4Bqn", + "votingAddress": "XsHkBxyUEPoB9MLwNj7VthqYEh9CeYPZNg", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "88e0b78eb3fb3407deeba0aa867d5adca36fee9ebb15bcefd7098e691f489e2df95eddcbb9f1c8d52f63573e5802c74c" + } + }, + { + "type": "Regular", + "proTxHash": "206c1ba4e21033dbe925c94fb77d151a437c3841134e90a694f4a5200779cf2b", + "collateralHash": "ef65d57afccd8158ffdbaa9d6ac34212b6764711787668c0c7053ed7b5cca0be", + "collateralIndex": 1, + "collateralAddress": "Xk3qQjoPxpsLJoYEtU1vvGxUKJ39WGXsmv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.49:9999", + "registeredHeight": 1047308, + "lastPaidHeight": 2126184, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1271934, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpBDvcypB4UQEUNkmxDQWNPWmoY4W88KjV", + "votingAddress": "Xi1E89qZj7vAoVix5pX5WSnCkrsGvfu1ab", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8fd97561bdccd9900317a20f83d600d119abafafefb3d04ac5365911a57664c729cec9076f75c4a0abc24b997c719b5a" + } + }, + { + "type": "Regular", + "proTxHash": "ebaf7f9f9de23015855c7dc6656cea9a1f972330132531fc6afb6781beb15902", + "collateralHash": "66afde55226b6708ea56c3a7c6eef0d2e4ab976d98dd903c3e28548550318a35", + "collateralIndex": 0, + "collateralAddress": "Xd3aSpcWhXvchxTkDNtJSEysmS9ELUmCBm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.143.3:9999", + "registeredHeight": 1047309, + "lastPaidHeight": 2127908, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1201185, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwXTj4TmwUV8Giu1m1mcj3BPaUp1Szs6L5", + "votingAddress": "XbZutX6JWhQvwkfQcRE19dFDvR9J3QT9Yb", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "8f9b67b255037449f13ef5b1ef930932db75c7abd6f55e23c3b1125bebe56ce632c013774c2c2583dfe786bdc998e02a" + } + }, + { + "type": "Regular", + "proTxHash": "c5c4d509babaf397ba618cc975ae4afc47deb37fa6a589070151d23ee58385b2", + "collateralHash": "38745f6f005e820675d517e0edfd6da6c3b9cadc83545f7613ab4d9e4e19650b", + "collateralIndex": 1, + "collateralAddress": "Xpv64gazsu13XDnbrj2h3bTLnuNv728G3y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.40:9999", + "registeredHeight": 1047309, + "lastPaidHeight": 2126807, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2016159, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw7aJBmFnWBRrz9dcECRekGW8Zw5WRchhX", + "votingAddress": "XpMKRMAWfzYMEgzy9g3qUG24qU56aTmpSY", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "10d2aa07a52ff502940e4fdc7570d91edc5c31b031ebb505b7e63147d1d1910c92ad597cdc8df63ec1b36bd8de8ecd90" + } + }, + { + "type": "Regular", + "proTxHash": "f87449ab816f7c69a8d664897127488f41309385f95496132bae6380dfedca52", + "collateralHash": "c7b4bdc59bfebab6990ba7c22f72108017921a1aeae1a1dfbd22e8542495f253", + "collateralIndex": 1, + "collateralAddress": "XfmYX7iCB7KLfaWB5VFchg6KQLBJRkBGSF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.8:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2126832, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764847, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjXDpVydYeaTihQtN6xksPyAqHX83LbQxV", + "votingAddress": "XsM93s9u3eetj7oommJqFfjn9t1XYgd4nd", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "95f907ffa24d7af57142fe3bcb144dd8d21ecdfbe9f67842a3308d32c18bd9bc11f2c8b259dc1fa659193ce78cbe9ce4" + } + }, + { + "type": "Regular", + "proTxHash": "a7b27265e3239895e3b0dfde63560b4f209547aff5265b636989427784f0eec1", + "collateralHash": "49e52c4dd7b347b6354c4abbf197a958c4cdd0c95c0a6d04a518ff0d2bf7f1ee", + "collateralIndex": 1, + "collateralAddress": "XeJLVB6WEeZG5J9WpyCTV5oaGU6cEA1S7k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.158:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2127857, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1562797, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrBwzjm7QhtnwHs9Mn9qMRLrocVpe6q4y2", + "votingAddress": "Xr3LTGrV71vBYMQuR65xPtxRjWwG6bsD99", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "15542155f42275fe73def38cb1f946b8f2fcf8758ae1c1683004663fd0055251eab006fe5edfbd28c1d83ae9a47ec7a0" + } + }, + { + "type": "Regular", + "proTxHash": "d1042d345d562ebd3857efa2906518896ed30fccd1ead3d783ba2a8fb9cbee13", + "collateralHash": "62f27bd5a0c081bfb8834fa285084de49c09490f2dcd421c28f7add2e13ffb25", + "collateralIndex": 1, + "collateralAddress": "Xqa2FJuG87oib8bJwb3fgQmJJKNLDT3EK8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.83:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2125864, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820901, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XonqJYVXK41got9fNBZmS1uYYNgRv1KPwK", + "votingAddress": "XeJYMJBfgSfitMy17KobQ8EBXWauwLxnTa", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "990250f8722ccb412757c3072d8343c1fa0007c239bed107881bd30f1117623bb6c5f9520fc8dac794563d87c5286d35" + } + }, + { + "type": "Regular", + "proTxHash": "433b6b2c5f88e8e51f9aef45f2fc22fc4012fc9b12aaba52016db1e39084e168", + "collateralHash": "d62d0c96b316c6d5c41e4e0e66d46d0ce8cfcac61d7ab1cf903ce298441874d3", + "collateralIndex": 1, + "collateralAddress": "XxhWqF3nHrAq1h7tuCvnivK96eXsPGLMG7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.76:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2127428, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnuCbETQxcj22ACsiLEygcfjnoiMXXBtnm", + "votingAddress": "XsKGT994rdzzhDLrgJsSDrEbxMuBLRp57M", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "16568919752dc933c2d29f91e6ac476d2c2f5c7b48891f32ef2c2f5746dfb3393b5394c24ab4f4cde44c5b388509d849" + } + }, + { + "type": "Regular", + "proTxHash": "6cfdbaaede02ab2ef820f51d7657210c035c80ede422f9951ff6a5844e0a0e31", + "collateralHash": "cac896e729e61118b2db529e6fcb8d608b0ca63d72748c2b26fb74eccbd8f81a", + "collateralIndex": 1, + "collateralAddress": "Xfe2PgiRT7Mkzox3jDc7hycGpRj7sui3b4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.41:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2127425, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiLyifJJDUwcg1EciG7jnKGngJJ4aSTbWm", + "votingAddress": "XqzThRRrnaA8iVNEkog2VpvJ8RxyXKJGnR", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8d2c65e0f5ebb43978706a51a6fe37248a6fa866bf4bb8c848393ff722157724746cff578847273f9c2d658692088695" + } + }, + { + "type": "Regular", + "proTxHash": "81eb1bdccc7a660b1cd01ed63ee954071344fdb2aea5003b3a7a6e287c6693c8", + "collateralHash": "86c966209c66eb2e80fc9dc14e947c4d4465f605f91186b43d040cd613826bdf", + "collateralIndex": 1, + "collateralAddress": "XnUhVzG4c1AQBiJZy4NSonkgp8v9cULyUX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.10:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2127028, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695533, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr7pQf5zKAr9gUndSS1Pe57swvNZaJ8od3", + "votingAddress": "XxZCLeKTJUriHvENGZFuQFH5xFJPQFamzj", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "8ca7e57072ab96602fc7d15f735320d375a6d7979645be2e9f9a0332ef3dd2cfd1d95c88490106b5550b0a2017833b4f" + } + }, + { + "type": "Regular", + "proTxHash": "6d2de38c1f12b3d5ecf291c745614d1c9b9d50eccb33b7a21b5cb7e9829e31e2", + "collateralHash": "e908b33d724800ff273babd8f58987e3c83ea138374a71a3ff416dd1520622d4", + "collateralIndex": 1, + "collateralAddress": "XjP1zaMGtpHnPDgg4HJ2nGJZSwyj6q1RwM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.159:9999", + "registeredHeight": 1047312, + "lastPaidHeight": 2126922, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1666252, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv4wTnAhVJp6KpBEUkEeF4y7KMYkw7aX17", + "votingAddress": "Xvt4xfSS9XFPVezwASxt6UKypnJnPzCmf7", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "190dc556fbd56e3d80e25b78306955c26ffe93e49eb3739a14001dc703b0a52b6d2223bf984ab4cf8557fcdd08d46d89" + } + }, + { + "type": "Regular", + "proTxHash": "0fb4333041be1620ce1319a58180c2b12600a3e5a6b61475683c102246e0bc94", + "collateralHash": "3843755ed95c58fbcba96a67ac64a7d44c9031f14056d4f8b79ad86da0262b2b", + "collateralIndex": 1, + "collateralAddress": "XmT6H4aicdT7kEJM6sRdm2E4do6nQvkccN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.73:9999", + "registeredHeight": 1047315, + "lastPaidHeight": 2127429, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjsB5rYMEqwt7rKtnZtg8XZrnSdZ61Eu6z", + "votingAddress": "Xb69ZUJ6j52X1gsZBLsnrSecQTgSatwYA2", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "94269ccd4003ddc0ef768ff023da06457c60b6adf7cbdb1d38a27fcb90ed59e890505bba255390170ea76d49683cef70" + } + }, + { + "type": "Regular", + "proTxHash": "e24356683d558366e713a43f1138cd3d19480a0a96638b52a7a1c081f20ddad2", + "collateralHash": "2f0bdba631f25cc2d2ada84d8b8efd876bf486ab1f7f4a108cf84f98b5d6d595", + "collateralIndex": 1, + "collateralAddress": "XhVTAFgxU6G81UwQHsox44tKpmeEMauJFg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.120:9999", + "registeredHeight": 1047316, + "lastPaidHeight": 2125870, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820914, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkdJdggnHmXTiaZRX3bQSWqEWW34bNttcL", + "votingAddress": "Xy4gyX51mx2QFwsqFPCNU2czM84oSgPXy5", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "1077c446ac94daf3be46af0d8bb666335542ff732e9e24ac9c3c3940ff45394d67c60c5adc24830651b7ddbc0dae82c1" + } + }, + { + "type": "Regular", + "proTxHash": "5f99d7b3a5a6d7267044afa6aca2acce051cd93233fb4f467ad22bb0278ead76", + "collateralHash": "365ff454a3a0f1eafad96bf03dd5181710d5b1c077885fdb2b6afcfef0ec5f60", + "collateralIndex": 1, + "collateralAddress": "Xgwtav7z3N6GgA78KQALuChws5cUAmxQE7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.160:9999", + "registeredHeight": 1047316, + "lastPaidHeight": 2127196, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1875712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhAnhJu39fSQjUHJ8zfbFCQfuEA3yMeKcq", + "votingAddress": "XyXKjHveDtjbyyN6zeg183F5DUpATNRNrk", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "12cd79728758a002a521a13d0542e9f1231dc0d92252814831741fcfb0773f96a10f066d5359675964ed60ade22e8eec" + } + }, + { + "type": "Regular", + "proTxHash": "09c37e3110ccefc0cdb8fa349f0c401ad2e687e4ec0eeffe07c39b5e087dc075", + "collateralHash": "8db9b85c0d7e5d06337a5f13e45f2e42dbc681f6c2d5a1981250b616e369c919", + "collateralIndex": 1, + "collateralAddress": "XqHbSNn51FsiQ6kyBu72t5z488bnUnAwap", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.37:9999", + "registeredHeight": 1047316, + "lastPaidHeight": 2126048, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948721, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XevEF7VdCP8EnS1kUY2rYNVqJUoT2q86Ft", + "votingAddress": "Xogo73zhm7zUvsCZPdYXWei232QEiNKAsV", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "9526af7d5e2f38025ea28720b3f515456d8f7a6e60adc1ebaa3fd96e5f7a8b6a6cabfa8fbe08e41b52caf57ed3d2084c" + } + }, + { + "type": "Regular", + "proTxHash": "c88fde361025b69bb22a2ed94f675832fa2f18b2d2b94cf52f8e4906fb841b3f", + "collateralHash": "44f05c2fa76581ed295b20066722c504ea5ba41122916bd45813d56b4caa01ea", + "collateralIndex": 1, + "collateralAddress": "XoRCt8PmQwh3d1wRSSbukBv5pGFYJafQ5L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.53:9999", + "registeredHeight": 1047317, + "lastPaidHeight": 2126691, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1354497, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtwtGqYvZaqi67SEZpxNefuJitYjScbUeD", + "votingAddress": "XfFndQQrnokiiwziAaaSYCYtvEJygyk62t", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "94215ef8ad5e1eab8de0314688897b772c3b4fcdb9115c1c3702fad8be017e8fff174944352edfa1a177b3f5a8e0692d" + } + }, + { + "type": "Regular", + "proTxHash": "29d9c0f9cc304305eeca4a95ee3f22f6b8a52b9301c333ce48b1257942fa3fd8", + "collateralHash": "5bfac10172adeaa41685f872c205fe3b39a30e9832e4e9bfd4b2e50ef4c401cc", + "collateralIndex": 1, + "collateralAddress": "Xdg3c4dJ89AK2TZ5P2t7UL962nzu63eQZ2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.156:9999", + "registeredHeight": 1047317, + "lastPaidHeight": 2125879, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820927, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqetM55Lhzbd9FHwBgjufc8faf8oaqiBH5", + "votingAddress": "XmuT8fE7P9nQkgfctzS4ArKA2aApdFjjE5", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "9786545fe4a83b3faf64f742f4b7756a20b27f1fbd08463a49721018b5e16a312c263ba8e13e6824d4ea92824deb4817" + } + }, + { + "type": "Regular", + "proTxHash": "bfb20edc24fd9d5243c6182651f7ac8a5c19f21013f50e159bf30b9074ea297c", + "collateralHash": "d3929c6da93e69f9e092a6166be2d72b86f5f088c204985a7b18d9b98b0f6576", + "collateralIndex": 1, + "collateralAddress": "XgURNwAZLT73eWsqk2E1jqheRny6ujByKk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.119:9999", + "registeredHeight": 1047317, + "lastPaidHeight": 2125868, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820912, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XssKpZbVi6xTraeXaorsWpSGBN8m5P5iFW", + "votingAddress": "XoL2HVst1hq7r2zdiEQVoAwRcG4jXJXYLr", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "19d82bc06233508f85ce52152a7af304fe4661ae48f69315c8bda08c5b652914cc19b7efb138e3d96ed0553fe6b84e38" + } + }, + { + "type": "Regular", + "proTxHash": "a5ba71df261c61843f846f2eff15d9b6d8eba50bce64dde7983ed11eea89d545", + "collateralHash": "c9b2c8a23292135652c013867e892045e737134d613602fc39316d8575ea8167", + "collateralIndex": 0, + "collateralAddress": "XgjpZptMnHUbrytJMYr1R9ud6Y9mhV47z4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.226.218:9999", + "registeredHeight": 1047331, + "lastPaidHeight": 2127920, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1201224, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe7e9urUaXcbivG4E7LGoc5AB3A92zfWie", + "votingAddress": "XoevryTMErdcYTWyLf95PD6DwuQWyQ9ub7", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "8a153b20bd3fe16489aa947822dc1785aba42da5d40e5429d092d36ea01cf2cf0e6ef10cae7cb7137664cb845da4c4f9" + } + }, + { + "type": "Regular", + "proTxHash": "c2224689a3f245b6f7113a4b5fb0d4dc8ff988fb159c377504fffd3ba5d4f261", + "collateralHash": "76424c0c7d01e51f9f3ca1263275849128ae741869c48ae2bdfe44112595d3e9", + "collateralIndex": 1, + "collateralAddress": "XsBWaVz6oPYRoxf9SNSkkQoCdwrtXhG2a8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.218:9999", + "registeredHeight": 1047361, + "lastPaidHeight": 2127530, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrE1SysiPNzfJGeK2GFrLC2gP6md8ysN8f", + "votingAddress": "XrE1SysiPNzfJGeK2GFrLC2gP6md8ysN8f", + "payoutAddress": "XsBWaVz6oPYRoxf9SNSkkQoCdwrtXhG2a8", + "pubKeyOperator": "10611c18a4ed0a8d81adb5dce519c73cca3dcc6755989cd33e86a5b9a895ef8af2363fec1e8ac1e3b23825ed5840fcf9" + } + }, + { + "type": "Regular", + "proTxHash": "82acd2f7457476e66d1aff716259164ae916cc1545af34fd508980d38e1e3d4c", + "collateralHash": "79a70099ec86f28da72c180e866c6943935171f84996a6110faee9cad367a658", + "collateralIndex": 1, + "collateralAddress": "Xu3ZaZJmvMQ7YSPDeXDtLrSMDHMPC2yZeR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.151:9999", + "registeredHeight": 1047365, + "lastPaidHeight": 2127533, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbgL6U7heomfkHpU5kqtQ79XNqmheSL2FC", + "votingAddress": "XbgL6U7heomfkHpU5kqtQ79XNqmheSL2FC", + "payoutAddress": "Xu3ZaZJmvMQ7YSPDeXDtLrSMDHMPC2yZeR", + "pubKeyOperator": "8cb92c0f072035b86268154918f87aca3cb74e00c44a51340818191560831e076a79c631de9ff4bca502be78ddf7bf67" + } + }, + { + "type": "Regular", + "proTxHash": "4aa5502fff51d0a11f892e1b262d6372c21564801f7a2ca4817664a38ce038e8", + "collateralHash": "939813f86158c2a5bbc81ad27fab3334ef0a0d93bc9e51908ea9ca7973916ca4", + "collateralIndex": 0, + "collateralAddress": "Xyxv1dcoPMLV1awNNmeS2YPgN3SG7f6qSC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.12:9999", + "registeredHeight": 1047402, + "lastPaidHeight": 2128709, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1261839, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqSmUcLxDgxT8Tg7n2eYvGQ9TuHXz5CPXt", + "votingAddress": "XbMNmnL9x9LxyskHnYaKXm2KC2Wy4pMakh", + "payoutAddress": "Xasq9KiLvMenAqzS1tNqHUk3HBeTdhYeVq", + "pubKeyOperator": "07c5ee75d827ebadb592c1f65410b62352e6a38d2be75ade0b387175e1621320074b3941d24cb0c2e9e9a10eb25c3621" + } + }, + { + "type": "Regular", + "proTxHash": "ddb6ccc21dedc0b36aebd22aaac1fcd5a1d70a9af4873d1637446c898a05d7b1", + "collateralHash": "efdfb8e088c1d08b5953ba5d4f4d35e8d37c3afc0161af70561e707b82813177", + "collateralIndex": 0, + "collateralAddress": "Xsze4B4BqpZjBRxGDU1LoAAaYYgCdLq3Fw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.2:9999", + "registeredHeight": 1047521, + "lastPaidHeight": 2126934, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986135, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoP7FTCBTzh5QHpLTLLvNKTf1x5bDiBbAR", + "votingAddress": "Xgg243pQzAT5i679ew6gwrWroF2HCNqsY4", + "payoutAddress": "XshfZjCw2Ar1vT7uSpHWCmtF1pE7pvJt4c", + "pubKeyOperator": "94af9bb09fb8915a31d5177afa031ab50e67a9a3027e8a298797d9e5c39a4c3586c7b2204d506b042de3455d19130453" + } + }, + { + "type": "Regular", + "proTxHash": "ca317d659382e172c3a45220f4cf5b3640236447f7ae7663cc8df3f2f5e97cd7", + "collateralHash": "d1e6829cb0df1370bf901dd0950cae357f93512b71d0bf9359483000d39ab877", + "collateralIndex": 1, + "collateralAddress": "XcSkYZMDZWRqZVFwYSe32pjiC9iGgmRUDA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.207.71:9999", + "registeredHeight": 1047523, + "lastPaidHeight": 2127630, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq1AfUAeqcKzjWNrsKFB6wa8SN4CDhgpw9", + "votingAddress": "Xq1AfUAeqcKzjWNrsKFB6wa8SN4CDhgpw9", + "payoutAddress": "XmJFzj8XWNfZui6S8ZaiqJjNEQAQkM7czR", + "pubKeyOperator": "84c0119e582c6d545c78b1e8289f4333dffcb104164efc490baeb490f63535ee3b1e6e6621298f2befd92911f2e423e3" + } + }, + { + "type": "Regular", + "proTxHash": "d17b2f2d0ede9aed26a4c86f7e3d0a33133cea10e552a1262530f981d804f14e", + "collateralHash": "ecb22826b5e9433bc5e97c02de6204f1b32d9a697f6e33c424be6ac413c6a53a", + "collateralIndex": 1, + "collateralAddress": "XqNJD9DftB9yNEPcWbxY38JsrGo19Jqe4k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.216:9999", + "registeredHeight": 1047537, + "lastPaidHeight": 2126799, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986011, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgJcL8ApJ2HN4PTxKJMb2cheZAN2ZnRgaq", + "votingAddress": "XgJcL8ApJ2HN4PTxKJMb2cheZAN2ZnRgaq", + "payoutAddress": "XqNJD9DftB9yNEPcWbxY38JsrGo19Jqe4k", + "pubKeyOperator": "8a76dc8591f8a8cb7cf3b50452b1c1da9b650703524b335add719e543a6caf4bcbd8cdd37413c2028f74775672fab928" + } + }, + { + "type": "Regular", + "proTxHash": "07e9eab9358f102776dc069ffc19e78c6dd6da23326d728a0cc660c59acec0bf", + "collateralHash": "09d049c056b13958c84ef5f736a723b902365e2c59cb3bbae20092be960056eb", + "collateralIndex": 1, + "collateralAddress": "Xtjy1KxFqwDh1UvraoVtLhSu5KsPCSEjCb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.44:9999", + "registeredHeight": 1047568, + "lastPaidHeight": 2127776, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcKhNhLziW6PCpdjzd1atF3z2AjTmteeAa", + "votingAddress": "XcKhNhLziW6PCpdjzd1atF3z2AjTmteeAa", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "12802a897140b80f643a4d54a9e3b5029d88d07ed55112de660d1d47bd82f58d86551780932244422daf30a63bd22df5" + } + }, + { + "type": "Regular", + "proTxHash": "8787fb54f9e6281764228a4cb9f060f22714023ae49f964b4874da1e9916e849", + "collateralHash": "ec06f8cd9ae3fbde2dfa014d6c24eb8907813e5e8e589af4e151cfcafcb1dbde", + "collateralIndex": 1, + "collateralAddress": "Xji8m92mqxSMkFHXPrYAmbpRQV6zFN3FVv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.239:9999", + "registeredHeight": 1047590, + "lastPaidHeight": 2127796, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeMcZ6PsSHsYrJQX2CeDavuELcjuGdxgEc", + "votingAddress": "XeMcZ6PsSHsYrJQX2CeDavuELcjuGdxgEc", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "827e73dae855d342fd302721310a9979d58d92e5f1817fbe2cd817892c383d72076499a3ecf6db5321b77e0ca9125c18" + } + }, + { + "type": "Regular", + "proTxHash": "8e483b9308737fe836d71967ddb634559a5c63c8cb8d495275952e0f6cb5a717", + "collateralHash": "b79e55a7170b8330f93a64694e2073505a80a11a8a79fd16778dc1b21a249a7e", + "collateralIndex": 1, + "collateralAddress": "XpGNRYuJhduYPCPdtQKPgi6zSLjXREspaH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.34:9999", + "registeredHeight": 1047590, + "lastPaidHeight": 2127786, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkNMLaGeBsuPyXa7oFtnrQ66Hf9ZPKXsun", + "votingAddress": "XkNMLaGeBsuPyXa7oFtnrQ66Hf9ZPKXsun", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "1113e6dada64581e5e358d28e3c8c20269ec5a6d0b01bded30bc988ebfc816cc04ca2cec66b120306209ce738f0f10a5" + } + }, + { + "type": "Regular", + "proTxHash": "3e991c57ff5f5385b20b6bc70ebc3e8dfef1c53cda08038dc15a6d84d16f4777", + "collateralHash": "32a9352e455c23cdffa59b8124aadf9b194da63717a6ab6b995dc7aa05fdebdb", + "collateralIndex": 0, + "collateralAddress": "XsXnYZgJgsWToWjUHn6vHUQJFyjVWQfpaV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.247:9999", + "registeredHeight": 1047614, + "lastPaidHeight": 2127816, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbjk5E52mkymkN3HTtCsTtNWoSRZ93QhpD", + "votingAddress": "Xbjk5E52mkymkN3HTtCsTtNWoSRZ93QhpD", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "838f0d9d3c3ed05b49a19ba5141ddf1e67d8188f3b63101c97d413dfb8675268c41561a04a15c3e9e7834769e68626e3" + } + }, + { + "type": "Regular", + "proTxHash": "aae2b5e444b8a9905077787d639d20a0d93d9caaa9399417a210761a8242ba30", + "collateralHash": "9f789951ff987b97783a1b37ceea720afc88655dcdababdb9e285006a1759be5", + "collateralIndex": 1, + "collateralAddress": "Xum5jZVzpsVinU9GokMwjS19Kr9x8UpmXU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.42:9999", + "registeredHeight": 1047614, + "lastPaidHeight": 2127813, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xewn2LijYxCTjMkxZmENkPbH97do2Zrmnk", + "votingAddress": "Xewn2LijYxCTjMkxZmENkPbH97do2Zrmnk", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "18b87dab75ef68961ca33873103cdff771aac88da53bdf8940f5872bf9d17dc0923f31d8991b7167ac5ea12078589645" + } + }, + { + "type": "Regular", + "proTxHash": "895ec3a67ca98a2bb86ddd22532a31936acde4a2482c7e8fb162595061950854", + "collateralHash": "8c22d9393e8e36c45596149ad7306ea3e3ce1d5ea892a04024e6741eee8b4f7c", + "collateralIndex": 1, + "collateralAddress": "XnnLLo1A3TDfBa8pTMq1Rbx8ciZLejdq8Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.137.155:9999", + "registeredHeight": 1047645, + "lastPaidHeight": 2128889, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1211625, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxEjs8BeAVKSjx3ojo6bHD3r2LYx6mkM1o", + "votingAddress": "XvXABL7uLFU3ju9syg8C2YzF5exPBwMAFp", + "payoutAddress": "XasHYpzjkTLRjHFDe9kjTj63ZcEPw9eBJT", + "pubKeyOperator": "0a9ebc4d2c51be3ffc133a6e678980e13390e680d24dee1a4cd764489bf0f002f641d5eddcc6b45ff47da505e9d9e971" + } + }, + { + "type": "Regular", + "proTxHash": "6705e0ff4be76083042441229903a06a31ce6be068b5436937ac84603aa3f110", + "collateralHash": "744f1f27084099e5f5308eba00a36f82ee044c7423f29ccbed0074d8f649fe9f", + "collateralIndex": 1, + "collateralAddress": "XsMvMzr3eJyuaYogVDzMp3z8oCa5ue8sH7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.245.34.149:9999", + "registeredHeight": 1047646, + "lastPaidHeight": 2128887, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1211621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjeE48gxox4HPzLEgstDmEoMRk2G9uK7fz", + "votingAddress": "Xepx12XW88CYig2C6iqoWsM9NQE2XRb1Vw", + "payoutAddress": "XasHYpzjkTLRjHFDe9kjTj63ZcEPw9eBJT", + "pubKeyOperator": "17c8942de54ad5f8184bafe0c159c7a0868d94cd384392ed56f3f60beaada261cbfca5bba336d53655f2c9c11949601f" + } + }, + { + "type": "Regular", + "proTxHash": "0910964e3735c8d062499ab386b295420cc0d1033fe204fa121ff5b6d54de817", + "collateralHash": "bee563b3ccf50b9095086f227464159c3dcc24899f5e83a17701f68ec4755a7f", + "collateralIndex": 1, + "collateralAddress": "XoSMS611X8HBmMFJEYP77pZZG6RXXDcnRc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.79.18.106:9999", + "registeredHeight": 1047659, + "lastPaidHeight": 2128663, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119371, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XryDfoLcM1U2yEErMo3oeBev46VGXy7uWF", + "votingAddress": "XryDfoLcM1U2yEErMo3oeBev46VGXy7uWF", + "payoutAddress": "Xm7ztpxhpGhDn8s24NbBTGXqmtuvTmiibK", + "pubKeyOperator": "0efcc95a818dc29c962c1ac31348272ebf6726db06545b7e057c822431906cb7161218c42bbb4aa382d1b21af7c2d6f2" + } + }, + { + "type": "Regular", + "proTxHash": "aaca8ff4d392dd119ae61b5a92eeded973e29b1294af947d70f7c99e20c76954", + "collateralHash": "f51db0b98f09fe694bb8d54b3aa33d9a8dbbcf0e9608cb346af7483eb6eaa43c", + "collateralIndex": 0, + "collateralAddress": "XppGfeHpJXWTcCdex4QQwUpgN9tm19URkd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "34.224.134.199:9999", + "registeredHeight": 1047667, + "lastPaidHeight": 1985936, + "consecutivePayments": 0, + "PoSePenalty": 3981, + "PoSeRevivedHeight": 1735490, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "XozP3zGDcyxo8mhPgribwyJmbm9sw61dic", + "votingAddress": "Xk5tzp27N5hEZMDQGBDqygYywuV3RsPxWx", + "payoutAddress": "XppGfeHpJXWTcCdex4QQwUpgN9tm19URkd", + "pubKeyOperator": "13d5d0bc417a6de61c54447d7fae9419749cb7c5615ef0521b5a2928d1a62f713bb59eff0e572274f5aed5358f89f191" + } + }, + { + "type": "Regular", + "proTxHash": "d6da31f573e45c4580cd07d5ad7de38db18d1f96c4e98f77b45e7694eaa9d53d", + "collateralHash": "c075516c7eb9c43d359565eb994b4047e902ccbfc51307a2bd1614a980d9061b", + "collateralIndex": 1, + "collateralAddress": "Xi6kZgM2yTUDrypou5aBzHsurTCUbJGV8w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.44:9999", + "registeredHeight": 1047670, + "lastPaidHeight": 2126824, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986027, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XspbdzuWg2ahzCxuSng1398m9X5C2E2L3o", + "votingAddress": "XjqQjCFy8vpVEpymwn2W9b6GYnpyktC822", + "payoutAddress": "XjR8Lo9fV5537D6mfKNsqHDevF1FKrc4Rq", + "pubKeyOperator": "99b3ac59ac16b5b40da703406b29bd7fa072bc3f77c5f1c93ddc34b3af93a715697c9d1001cd2e22806871059fb28eeb" + } + }, + { + "type": "Regular", + "proTxHash": "6bfe315dbdd671cd15eb8536e48a06c7fb01d44e3c38a53cc1d1d793f9ebe8af", + "collateralHash": "cad5f80ee831a4e3e60a7c2a5784e6c9d244e61a2348eee7dddb12bcafea1be5", + "collateralIndex": 0, + "collateralAddress": "XbqhcB2kDwGbMT97AqpXErxbUsSVTYkeor", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.224:9999", + "registeredHeight": 1047670, + "lastPaidHeight": 2127031, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695538, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj7rEC3XUrdemeG8zvZ8qpJBLYhVUksD5A", + "votingAddress": "XocSZGK2jJF1HENGdf9ZnhM55Hv4UwaarK", + "payoutAddress": "XahdeCLmdJqrKrQAG7nnx9VtpNt6UUp2PH", + "pubKeyOperator": "001c576e670ade910cf3e69e4eeac8404daeaabfccb702d3ae53efa2d851e55dc734061a9d9cbb3f19d1dfc52f8ca095" + } + }, + { + "type": "Regular", + "proTxHash": "0d192a736ca81e5b4e1000280f41bb557a7b5f4c758e240f6ea1c1496324f8f8", + "collateralHash": "4f8b0e7e56632d908aad9d040000bc654869b3dddbba7cf6013e1933da13fb25", + "collateralIndex": 0, + "collateralAddress": "Xb2JLjFUsiMWgNGqocveFH7SX4jbzyQrNt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.28.203:9999", + "registeredHeight": 1047743, + "lastPaidHeight": 2127583, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1478039, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo1EmdfyjxXyomb4SwhXkFcn44g7Vmq3bL", + "votingAddress": "Xo1EmdfyjxXyomb4SwhXkFcn44g7Vmq3bL", + "payoutAddress": "Xajyf6Vdm991D2bQNPbv84xVNhnKRaMkyQ", + "pubKeyOperator": "8426736e5bd2a26634790bba15415d880163b9c28b7cf4473f204d108d350525cb8ff0c99f2fc074e16c6ffd2299b809" + } + }, + { + "type": "Regular", + "proTxHash": "29cdf603f1c59f7a5636f1a01bbfe4121c6cd337650b891f7d033a25c563bc97", + "collateralHash": "0efafa5845ed15987bc688d0d54805aae41ac9fc481241dedf9dee47274a6baf", + "collateralIndex": 1, + "collateralAddress": "XnpjiZzCGtDzrqQDTcTiMAMpAQKpRS7dfr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.55.181.80:9999", + "registeredHeight": 1047744, + "lastPaidHeight": 2113022, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": 1977501, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XqSHdJW5XTxSBwR5r7wGupV2WkxZnPq3Mr", + "votingAddress": "XqSHdJW5XTxSBwR5r7wGupV2WkxZnPq3Mr", + "payoutAddress": "XfrZtKPDjUHsHQ7rAX2Th8imV3aLAbqdGZ", + "pubKeyOperator": "8ded9b3f13536dff84151aa775762b893f74c6105094725493b9b668dce2e6f2bff3344578755f8e4685292d9378c312" + } + }, + { + "type": "Regular", + "proTxHash": "4cad8728bb473c80fa9862c8d87ff8be7096c29d9eee1f43dd714b53ce5f948f", + "collateralHash": "ffc530f76a2ee2ac6428106f6dbbac2eb7ed61eca6a83730a5251c8761229ebf", + "collateralIndex": 1, + "collateralAddress": "XdPAMWh2Aay5k8vUbbyG3QvnZ1Ui53QYuc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.157.131:9999", + "registeredHeight": 1047763, + "lastPaidHeight": 2127452, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxEXiRw3MUKFwD1xQsHPAxu3WyKmsmU5XM", + "votingAddress": "XxEXiRw3MUKFwD1xQsHPAxu3WyKmsmU5XM", + "payoutAddress": "Xd4EAEE4DGhw3JPLV5miWs6QEyxbB7FMYP", + "pubKeyOperator": "91e6be78a4ac75dfbbd4e02a5e1e75b67c6a00c6757522fa30563606698295fec402c9031424f5d1fae829aaec77d139" + } + }, + { + "type": "Regular", + "proTxHash": "4ba60e485e74a1d63e5c0e7929a96b00f7b6eb2579ddff2191c3430e301823db", + "collateralHash": "9147e221e8f8d152748651eb8eb8b2762f8e24c197dafada320d37dd2e0546d4", + "collateralIndex": 0, + "collateralAddress": "Xpq7KodXSTh3jw4rVevHmZ12cLyZLQa3je", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.102.95:9999", + "registeredHeight": 1047763, + "lastPaidHeight": 2127565, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1773241, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmJGx36wroys3dibTJgVFPx2tqsVYW7Wbh", + "votingAddress": "XmJGx36wroys3dibTJgVFPx2tqsVYW7Wbh", + "payoutAddress": "XbANdHfEcAEMY3LDGR4p98k8utsio7mkdB", + "pubKeyOperator": "8a234562311fbff8b06f529329c630b568c34cb4c572b3e2a851febf593c8a8a1e5514dbf9d3d1db33dd56522a5e3063" + } + }, + { + "type": "Regular", + "proTxHash": "7afbd798bda1e97548af7600c8aa63fbcf424285911a89d73fceb8cea869355f", + "collateralHash": "8be29bc7caebda218b6f0afee3f2120c0d6bf5f000ff35328a6d6c6064e6ec2d", + "collateralIndex": 1, + "collateralAddress": "XoDrdHmKDHMqLSnBbR83wVdZjc6YZ3BUA2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.98.19:9999", + "registeredHeight": 1047763, + "lastPaidHeight": 2126089, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2082695, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiRmFdsQVm2xEVqZwBoxFmqPxxy39Rnfpd", + "votingAddress": "XiRmFdsQVm2xEVqZwBoxFmqPxxy39Rnfpd", + "payoutAddress": "Xod7jBYgNygf9Sspift6prXqYgsMcJf6Xw", + "pubKeyOperator": "80f476c5fdfbe9fa41c814baab634281ef7aeafb2d0c66e07760de09a2865aa8d06fb221bcfe1b8bd19b548a1c3f31b9" + } + }, + { + "type": "Regular", + "proTxHash": "ba77edb708ffda34215d77bc5bb7785e82fa13bd15b0e539a73c56fde0287927", + "collateralHash": "8ba75b561cb92cb79471a5ad91605e8206353a0f01bfdcd1b3abe6bde9fdf66f", + "collateralIndex": 1, + "collateralAddress": "XyL9wHUsucMQPcFoyJkbgY5mCY2Ldyrh6E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.46.240.32:9999", + "registeredHeight": 1047789, + "lastPaidHeight": 2113337, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": 1977827, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xh52RsnLJ8HcX2xwTKPie9E8bFieR9t35a", + "votingAddress": "XqY53eDdsoZtdjBeRZ9cG4QNjoXojmiu2W", + "payoutAddress": "XgKBM1ZTuE2tAZGo9r8nNMsakQk1CV5BgD", + "pubKeyOperator": "0aceb6394d7af002d15a436ac9ae94e6e438e114c2ce30fd2858130ed6951b7304d30a6f0ccd86377d9193e2bbad2a9a" + } + }, + { + "type": "Regular", + "proTxHash": "55030c16aa62288ff32f7627b6e43d3664fd6d4326985b11a52c4175ca78ff3c", + "collateralHash": "9681ed0d48aff4a47b3cc55c3a0d4203cf628131585b4980948cbaf56ab23bf9", + "collateralIndex": 1, + "collateralAddress": "XxTLxfCfsMVXbniacxwYfmobJsSChMn2Nq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.147:9999", + "registeredHeight": 1047981, + "lastPaidHeight": 2127735, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1375797, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmDVj5fR6cJ8MFnp7uPBFcze35DcnP1DR6", + "votingAddress": "XsAR1jd3zi1XXQZM5aTWr9u9y9yVn2jpuV", + "payoutAddress": "Xx79ju2ngxM4n4qBHbFeeEGXZqgK7GzoS5", + "pubKeyOperator": "138cb0a07838ea7c5332ef532d81985076fc6200ac5a87175298661766facb850f7aaadd32fd7363dec2fd1b6f828d30" + } + }, + { + "type": "Regular", + "proTxHash": "e6251b30726e5241749e6dbc313a34dab5c49e710a403aa3146ccbda5d16f29b", + "collateralHash": "f65107276b1c5602cef82c76eeed8c75a7e72e4d31be2d1d826305a48eccff2f", + "collateralIndex": 1, + "collateralAddress": "XavqFrzLTDcAxACJH9nMogQAqkhchy8gKL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.110:9999", + "registeredHeight": 1048005, + "lastPaidHeight": 2127763, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1849711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoDLWHDt15U12jCTeqHvzdKJ4EG5YR9peX", + "votingAddress": "XoDLWHDt15U12jCTeqHvzdKJ4EG5YR9peX", + "payoutAddress": "Xn757SZsKRprKqQhv6up51DuXcYoFtp47R", + "pubKeyOperator": "01a8b787cf3ab2b23131a3db682eee7b1ba81439b1e2e26dc009b61d6026eacdaf9a640b4c59ea93a9398eb64f3cabe9" + } + }, + { + "type": "Regular", + "proTxHash": "3ee28aca3474ddabe5fdeb9381f351b277274ebebcf5d19270adbaf736ac724f", + "collateralHash": "1b5ba1863086a47bea4427b00f81669e24c9a7a52573c4fcbe49fac1d5031823", + "collateralIndex": 1, + "collateralAddress": "Xpu7fGhg4AF7Xtq7YkSHWgMxLSAA1ksVQf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.144:9999", + "registeredHeight": 1048006, + "lastPaidHeight": 2126809, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986019, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfue66oN7u9t8aZtwiqJ4Sucd5SZhs8xQa", + "votingAddress": "Xfue66oN7u9t8aZtwiqJ4Sucd5SZhs8xQa", + "payoutAddress": "Xn757SZsKRprKqQhv6up51DuXcYoFtp47R", + "pubKeyOperator": "862494f2ceb4836e7854b3f52db016e3df370df31836d2607e592fbb47ef46b9f6b54919f15347355063694a9b94bcc6" + } + }, + { + "type": "Regular", + "proTxHash": "ca55f40df5dfda162d7055663ab76f206e29b3546100a926f7ea47a0c1328ee3", + "collateralHash": "48116d87dc16fe0ea89c920138389914b828640c2aff62686903e7abc3558aa8", + "collateralIndex": 1, + "collateralAddress": "XfXfjy4Cgy7DVUxpiojXemdULjSMGyk6va", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.102:9999", + "registeredHeight": 1048009, + "lastPaidHeight": 2126009, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948662, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvBaeZ5Uj35D8SgccGVmAkDChRzmukLYVT", + "votingAddress": "XvBaeZ5Uj35D8SgccGVmAkDChRzmukLYVT", + "payoutAddress": "Xn757SZsKRprKqQhv6up51DuXcYoFtp47R", + "pubKeyOperator": "8eb7610c0453b7f3e0bd17097b69fed91df6047ad54c320d14810720a9496943c251894f4f5cd8e4e657d052876bd09a" + } + }, + { + "type": "Regular", + "proTxHash": "0b7cd58e8d630ee2f42ca1208891f136841aa8aad9ce7331c45d0545305f4e9b", + "collateralHash": "59582e5170faad9ab2496a407380919cd50cba274db42921467dc8d2a4b76ec2", + "collateralIndex": 1, + "collateralAddress": "XnF6V2MCqoEDjQstvTuUREKmC8a63icQFr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.74.253.213:9999", + "registeredHeight": 1048020, + "lastPaidHeight": 2126663, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120612, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbTtVy5VvBxgdmxVShpd8vpZfFzeEbG1ka", + "votingAddress": "XbTtVy5VvBxgdmxVShpd8vpZfFzeEbG1ka", + "payoutAddress": "XnF6V2MCqoEDjQstvTuUREKmC8a63icQFr", + "pubKeyOperator": "87d729dc929df0a8b67db31ed01108c0be9b3f8371ebe1f742f54af0065802b55fc52b4e3e2c0e4d447cee0c205b6d94" + } + }, + { + "type": "Regular", + "proTxHash": "aef80a4712eba6cfd145d7eaafd13fe80e047bc65ccd4f35f79f55bb7eba3eda", + "collateralHash": "1a6a442e322233ed154b3a045de6690f64ebe77526baef3097412e93e43e9fb8", + "collateralIndex": 1, + "collateralAddress": "Xecv8bgVNuzd6EoygXZjPS97EFjHcYkQhU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "155.138.253.78:9999", + "registeredHeight": 1048116, + "lastPaidHeight": 1732880, + "consecutivePayments": 0, + "PoSePenalty": 4464, + "PoSeRevivedHeight": 1580554, + "PoSeBanHeight": 1732907, + "revocationReason": 0, + "ownerAddress": "XoEAZnhZYvfxXchH64vQYr8Wk2doLfM73L", + "votingAddress": "XoEAZnhZYvfxXchH64vQYr8Wk2doLfM73L", + "payoutAddress": "Xk6Q7hWebiWcu9eqc3gkGv1XhBgptM7FV2", + "pubKeyOperator": "93bdee88449d333acf4f27ead5c68af1a6bbd577eac41087c277fdf2e3a9a93e1a77a1c62e67e2e6a3282a3d3da73266" + } + }, + { + "type": "Regular", + "proTxHash": "f7fa98b97ba1c0a75c13142c16e055c406b94ffccaa97918f2bb171f0ecc4340", + "collateralHash": "ef9f884f5f85f56382605830e65611f1dbdb22b04ceb95d688768d0f7d8ef35e", + "collateralIndex": 1, + "collateralAddress": "XhNZZotzLAaoGZyXUCTYnQcG8yykYULnEk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.202.79.138:9999", + "registeredHeight": 1048117, + "lastPaidHeight": 1737399, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1738389, + "revocationReason": 0, + "ownerAddress": "XcGLi2b4KiA1JJL4dGYdBhRZBmsWZ87UYu", + "votingAddress": "XcGLi2b4KiA1JJL4dGYdBhRZBmsWZ87UYu", + "payoutAddress": "Xpm2PrbrSTqUxFfCbG7oEqey2x1E3fvmj8", + "pubKeyOperator": "9594083950d65f3b520f05abf973a0c4c78fd6df4586cf01b307dc81e671fc72ed541f3f93f295c742d770b0fe76d09a" + } + }, + { + "type": "Regular", + "proTxHash": "3824f53813b8dda94d918fd449c8e64f763652e708cff6742934d7182dbccb65", + "collateralHash": "c8fd4ef054fe2da30f378d2b140fd9130bdb6898b5c702b7e72411c0dd433959", + "collateralIndex": 1, + "collateralAddress": "XoEhmDcDyJgEFebiooRzwtVNie7b2t9Frv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.95.180:9999", + "registeredHeight": 1048117, + "lastPaidHeight": 1684479, + "consecutivePayments": 0, + "PoSePenalty": 4505, + "PoSeRevivedHeight": 1390235, + "PoSeBanHeight": 1688147, + "revocationReason": 0, + "ownerAddress": "XsYrjZFgMxTrmKYaVrv5bSUmEEknSfp35u", + "votingAddress": "XsYrjZFgMxTrmKYaVrv5bSUmEEknSfp35u", + "payoutAddress": "Xm3YnNwVNxmeDkkogoqs6NR8E5TXiBXrw3", + "pubKeyOperator": "957e9b7190a6161337c0a7d91edac17a1e6ccbe3406ea695bb5f4adcb34c1dc3e5b4ee04692a38b8f37463885a6f63b0" + } + }, + { + "type": "Regular", + "proTxHash": "d152029ea6feb6501bed5fdbaa1af5344cc3d7ff455ae915f5d88faf1fdd2e81", + "collateralHash": "a64d62cc1d4f907e4af3708d400e4133b06a2561331cbd7ac8fb0cd10c07a933", + "collateralIndex": 1, + "collateralAddress": "XiUxXeg6DMFC91ZXjuzSHHCFLUQzgS7bWi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.156.254.41:9999", + "registeredHeight": 1048117, + "lastPaidHeight": 1684470, + "consecutivePayments": 0, + "PoSePenalty": 4504, + "PoSeRevivedHeight": 1491911, + "PoSeBanHeight": 1688387, + "revocationReason": 0, + "ownerAddress": "Xjd3q1jkXdgdnZsCMNfxDQ8cnqbKpxxKkp", + "votingAddress": "Xjd3q1jkXdgdnZsCMNfxDQ8cnqbKpxxKkp", + "payoutAddress": "Xrf4d2W1yZ5ZEPmSwPgXwyrvjfeveNmorF", + "pubKeyOperator": "03be1094aaee9f8f423b6ed39fa4205777a3799327c27fed7d15f2e036e6f62efd336d87e0fbd9d2456b651da8e27e81" + } + }, + { + "type": "Regular", + "proTxHash": "9557bb0f1b00c6798a3fe1987eb0850b6a1a25ac370761e3f5ce9b61b5c6365f", + "collateralHash": "2731f6234eb95b685a78ce3416c7cfcc5116de935e8fd073221216b5f0ac3463", + "collateralIndex": 0, + "collateralAddress": "XdPy1wq2eEF5y1ETH5tcDnhnRXeAA9oa6x", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.34.53:9999", + "registeredHeight": 1048477, + "lastPaidHeight": 1869982, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1872330, + "revocationReason": 0, + "ownerAddress": "XeE9V9ZQ4rQcmQcRF41Xy4TJ6kyWaPETNL", + "votingAddress": "XdCXKdVz8zuDVf23DvTWw7kc6NNziV7xpm", + "payoutAddress": "XmreVJ1Y9uCfdkh6Em7x6L6K7oGryzKTn2", + "pubKeyOperator": "8c876ecc080ee3ad79fb7e2e06d04927eaa1911e7ad366264781f949274680cc83cbf16d64fdecefd852b6d9d5fa719d" + } + }, + { + "type": "Regular", + "proTxHash": "4ff085ab5889ccc2c38e1bb36da2dabbc4ec2281aef2da33965e020b051c458b", + "collateralHash": "d04826266e60cf7265a03f86f593bf18c1e5bc27addb6e205d4661fd3ef64e23", + "collateralIndex": 1, + "collateralAddress": "Xo8kQ3smHaqTQ5mDqmm8XeBqwN9WpeAgiC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.211.229:9999", + "registeredHeight": 1048646, + "lastPaidHeight": 2127245, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1204927, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiN367yJH2144p7Ggnxq2haZvTD3CsqGmp", + "votingAddress": "XmjU9FNpZDy8Mk1osH25m4C8GR2BnTznZc", + "payoutAddress": "Xo8kQ3smHaqTQ5mDqmm8XeBqwN9WpeAgiC", + "pubKeyOperator": "0243e154d13fe89267457567948ff51629a22b236f4a66679b38467a46aa0bb4b10d1ddce61e4607401bf9aa7830c112" + } + }, + { + "type": "Regular", + "proTxHash": "2bdb3934bc56ef0c27b881c479e7d5e97ffbdcaa53af18359dd863c0144b81b6", + "collateralHash": "34c4d83a0f8f5028e761461f3157aa50a217576a252256603749ed42c040f54a", + "collateralIndex": 1, + "collateralAddress": "Xk2EfUnBervUhFJpQsi7qtFerSf4stFKBQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.101:9999", + "registeredHeight": 1048989, + "lastPaidHeight": 2126654, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1268197, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmQT3YUJKGoNomrxru3v6o1rRELWLHtEeh", + "votingAddress": "XqgpLtcNqj3g1gqPWtriKZ3qLum5hdmEkh", + "payoutAddress": "XpGi1ipJdJUSMvNUH8B3TMT2P3PLCDDqMV", + "pubKeyOperator": "94c3c84106bdd231aa8810cae2e8f3b8c011af1243af838c43b835fb075d3336226ed8e6983cfa314e92b33b9507ed3b" + } + }, + { + "type": "Regular", + "proTxHash": "c626c00656f86d62ffa9931b1dca321e6b58753f1f644ab22a7f0a90b8bacb09", + "collateralHash": "80767da8ebcfeb4e1a1184b46b0cdf8578c27b562cd9cb615ac8c4385d132ab0", + "collateralIndex": 1, + "collateralAddress": "XhBkggYahCYsw9uevJXhp4pcy7T8QexbYy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "62.77.157.12:9999", + "registeredHeight": 1049053, + "lastPaidHeight": 2125831, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeaugfihgmgUEchL4Jk44vf3z2qYYLtSAF", + "votingAddress": "Xs37ThrVnsV2NN1yS5nq4PeV9kqfkQ1SdP", + "payoutAddress": "XhBkggYahCYsw9uevJXhp4pcy7T8QexbYy", + "pubKeyOperator": "877b82c0a8ebe03131f9e45c84d7cd5d21972cef7ad87265a4b94bbf2a68e13ca03f39d0edacd594334ab51f1587f27a" + } + }, + { + "type": "Regular", + "proTxHash": "399150351393ed9929249a2f742e8b4546a57beaa2aa72f5beeb1c43b7bb952e", + "collateralHash": "f059c912c34764733cfb28a97cd22138a0562ce6fcf23e0e88f3449853cec0c7", + "collateralIndex": 1, + "collateralAddress": "XkGZdoL9Vj3EpaYt78CfRGrrebPFNvfC1F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.141:9999", + "registeredHeight": 1049179, + "lastPaidHeight": 2127566, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1394319, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeznaHi5piZPaFVPWg6V8RMWG3uXu2vMib", + "votingAddress": "XeznaHi5piZPaFVPWg6V8RMWG3uXu2vMib", + "payoutAddress": "Xrndmqubf3tag3z1EHKNeLu4BsEhFtKau9", + "pubKeyOperator": "8dd61094bd587ce5c5ba9fe253321d2f9e49ff71afadd4cd7d17ba1db0596314a3be53da2b9562608d9ee00d334bdfc1" + } + }, + { + "type": "Regular", + "proTxHash": "aaabbd7d944efa7f532c75635419916ac6ec3db2a944b8366a4a1b15bdc0e921", + "collateralHash": "300c282ea08d270413ac15e214a505b7c81dcc020a0cc4d5e9ae9df345ad409f", + "collateralIndex": 1, + "collateralAddress": "XjfZhHTT9FAEugnB12UTnM3JZYGJMRU2Zg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.17:9999", + "registeredHeight": 1049182, + "lastPaidHeight": 2128264, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1414358, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyzWbetp3iSwr5t1qoV18BQwp7FXQnL1AV", + "votingAddress": "XyzWbetp3iSwr5t1qoV18BQwp7FXQnL1AV", + "payoutAddress": "Xefyiv1TmqnpZofgTbNWUkma1nmCHaA7Hh", + "pubKeyOperator": "98fad613b8a7d0f8fb178c52d63b80b0439f495d62a2b095431f101505bd8e624ca5e053f8c70ec59a0ae4ad2066d5e2" + } + }, + { + "type": "Regular", + "proTxHash": "2a50a72c40e67677924f130a52fdbcc3561412394b4e99f00525edea215985ea", + "collateralHash": "86883ed167698b2b81d62d110e60ace5b6ec353193b02893bef70391ed0e9077", + "collateralIndex": 1, + "collateralAddress": "Xi7BBkrgcJA818Bwa4bQFUb3csto4DMCDQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.74.32:9999", + "registeredHeight": 1049206, + "lastPaidHeight": 2127874, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1219574, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsxLJyT1xg9MehsVU8yuKJPU3X8mWac639", + "votingAddress": "XsxLJyT1xg9MehsVU8yuKJPU3X8mWac639", + "payoutAddress": "Xi7BBkrgcJA818Bwa4bQFUb3csto4DMCDQ", + "pubKeyOperator": "1186049198a34d1044c4b4454e5533bf4304a75be48400b21d5ffd353bc9e4f08b71a8ed6fc41edfdabd3672ffa66772" + } + }, + { + "type": "Regular", + "proTxHash": "adcc454391d9f53e6fa523e047db5f335e38d9ead70dc8e4e648118c285d1d77", + "collateralHash": "60d54a018393fa189614e9dcd73db0faf8587c81b460553c9ff79535e48acce5", + "collateralIndex": 0, + "collateralAddress": "XhZ8CNVLTTycaRGtqVdeCh1awmGn3RtGSD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.43.54:9999", + "registeredHeight": 1049229, + "lastPaidHeight": 2126495, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1863692, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XttsS19wXf77pbwuyLfsmbcnftcKJpZeJq", + "votingAddress": "XttsS19wXf77pbwuyLfsmbcnftcKJpZeJq", + "payoutAddress": "Xr3rvgHq1fMmcTBAKETKAqT59JgKqZ7ViN", + "pubKeyOperator": "11e0564192270ffc88307f66eb53b1ec2ce48a71844dfa73d955f021bf3c0d357781f74c1a45d28d50965ef1eb0a2d5d" + } + }, + { + "type": "Regular", + "proTxHash": "09086e05d5debe5aaeafceeaa531ae249eebdb600483573e63ee6305e7f4a826", + "collateralHash": "b05c1a3cfadc1412953246521ba28c08b4f890a41a1c7a1cc60ebd8253159057", + "collateralIndex": 1, + "collateralAddress": "Xf2Hcj5SmeERjGph872hwAAnWizDi6LHvD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1049244, + "lastPaidHeight": 1746904, + "consecutivePayments": 0, + "PoSePenalty": 4472, + "PoSeRevivedHeight": 1246499, + "PoSeBanHeight": 1748868, + "revocationReason": 0, + "ownerAddress": "XqgfTimg197V72jJtGfrtUudKaLYHKvFbD", + "votingAddress": "XqgfTimg197V72jJtGfrtUudKaLYHKvFbD", + "payoutAddress": "Xf2Hcj5SmeERjGph872hwAAnWizDi6LHvD", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bfb61dd4433734074981c9eb44c6a59910d60891cafd9c4eb4939e44aa15e0f8", + "collateralHash": "90ce6be69fffeecfc780b3b1ad27e2e661d6ef7ff9d64f5eb29b66a2c17d1603", + "collateralIndex": 0, + "collateralAddress": "XdyqvDqkqcc59ZAnf4mwWKRyBKnXNQJ93x", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.159.169:9999", + "registeredHeight": 1049244, + "lastPaidHeight": 2125895, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvrCkRyzhWdSVcuL95xL8ZqWbnwJAiXb41", + "votingAddress": "XvrCkRyzhWdSVcuL95xL8ZqWbnwJAiXb41", + "payoutAddress": "Xr3rvgHq1fMmcTBAKETKAqT59JgKqZ7ViN", + "pubKeyOperator": "83ce55d1170f9ecaaa7a7a4bc5aa676c2b3fffeafbc814f927a2ed3c98e1362f0e9bcfee591415638c386c0278fc94aa" + } + }, + { + "type": "Regular", + "proTxHash": "12ad39cebf01b3a1bf8b74d9b4d0d2cf1f0c6e764a52ed80d9f66a73c8acda53", + "collateralHash": "98083dacae9d727773be50e5363971ea8711efcdcec1071ec9b1d0834bfee622", + "collateralIndex": 0, + "collateralAddress": "Xn5EBUcqyGHozXZvLwCwqMwvp9EZAhddTz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.73.247:9999", + "registeredHeight": 1049245, + "lastPaidHeight": 2125896, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvdj4z3iD5Z587KxGNLBzBwJCfpa88H2fB", + "votingAddress": "Xvdj4z3iD5Z587KxGNLBzBwJCfpa88H2fB", + "payoutAddress": "Xr3rvgHq1fMmcTBAKETKAqT59JgKqZ7ViN", + "pubKeyOperator": "8cb67d8b46258c91f6a8da1dccc5b491ae21b8dd7fb755d509d6eb4781c41f41c4fe2ab7a0784bbaec1f0f0c99df0a16" + } + }, + { + "type": "Regular", + "proTxHash": "3b1273a1ecce8e9c08e18dee81ff133ecce69e506aefd8c0cbe8d5e59f449a7c", + "collateralHash": "7e68523b658d48d76376ae75c10f57acb6d78daff8953dc83adefe98b71faed7", + "collateralIndex": 0, + "collateralAddress": "Xs5V81BGexqYahBusfdvWo3MGRZ9CPYjBh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.198.4:9999", + "registeredHeight": 1049303, + "lastPaidHeight": 2063175, + "consecutivePayments": 0, + "PoSePenalty": 3813, + "PoSeRevivedHeight": 1942028, + "PoSeBanHeight": 2063850, + "revocationReason": 0, + "ownerAddress": "XdwR6Qe6jTjyWgZHfNUWAwgqjKqgn5xWPz", + "votingAddress": "Xp1xoZ42cWZwT8zY7i8oFQ91wFi6y8RcF7", + "payoutAddress": "XixKAMDtX5Ts1mU1eukrgVesWZEZVf6wiL", + "pubKeyOperator": "1543fcd8129a1d7d84707aeaad034d0653c23829cb130ad51abb305cbb6438cefe2d9068cbe1d3fec0d6d5742d8e8961" + } + }, + { + "type": "Regular", + "proTxHash": "1838348a19ce0315edfec8cd96e84844d7d1ec5220445e2ed876c5870b102af1", + "collateralHash": "a6866d2fe723277e7ebb90fb0e81a49df17809cc2c236cec85bba3ffaf77e7c4", + "collateralIndex": 1, + "collateralAddress": "XjLiwgHJeDTw96wW6ThVMpZpxc9mMpUG1a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.143.120:9999", + "registeredHeight": 1049303, + "lastPaidHeight": 1207761, + "consecutivePayments": 0, + "PoSePenalty": 4700, + "PoSeRevivedHeight": 1116022, + "PoSeBanHeight": 1209564, + "revocationReason": 0, + "ownerAddress": "XpPta8VQBV4vaLDSwUzsZJS2hv3DsXKXMC", + "votingAddress": "XpPta8VQBV4vaLDSwUzsZJS2hv3DsXKXMC", + "payoutAddress": "XyxYfWaU8c8A3LNXWz7H7tcCR6uLauw9if", + "pubKeyOperator": "0d51ee16a4cd6a1ef4dd706f2d6e77241e6ce311d287283e023c35de186b5b5b53fc48c80f25bbc8dbc78853acca9783" + } + }, + { + "type": "Regular", + "proTxHash": "7a706bf63a69002e1c2220bc3ffefd8c6c45d8e89cc47be45e13cbc243389253", + "collateralHash": "aa1522901f2f609fe088797abec36700ff90f32cc3e62eaa787a2a49ee26e85d", + "collateralIndex": 1, + "collateralAddress": "Xf9goaLhAay6XbqgYqs2w4D1b7c8fqNwwv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.68.160:9999", + "registeredHeight": 1049356, + "lastPaidHeight": 2125980, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpwDNpZEyUCtQEEjKXWicdajYA8V8V4NHB", + "votingAddress": "XpwDNpZEyUCtQEEjKXWicdajYA8V8V4NHB", + "payoutAddress": "Xf9goaLhAay6XbqgYqs2w4D1b7c8fqNwwv", + "pubKeyOperator": "9395648eebad762dc7ad728eec415737c9ab0a6b0b229ce354466c6398dc9301bdf8a09c33af48d50fd7e405cb23ad77" + } + }, + { + "type": "Regular", + "proTxHash": "52d6bf22d13713d65a524fb6250b30ea3bb1f55c0c475c694b566689d0506c8a", + "collateralHash": "f7753642247213541c564d69c71ed976c6dd56a431bc021a7a363b32c32db64c", + "collateralIndex": 1, + "collateralAddress": "XqYQBvAAjv3WmK6h3y7tQ6Uaex5FpzrayS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.223.175:9999", + "registeredHeight": 1049359, + "lastPaidHeight": 2125991, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgqLdAZHhF6x5JaA8GYbrqT8844rrAnkgR", + "votingAddress": "XgqLdAZHhF6x5JaA8GYbrqT8844rrAnkgR", + "payoutAddress": "XqYQBvAAjv3WmK6h3y7tQ6Uaex5FpzrayS", + "pubKeyOperator": "14783f28f2abc7cdc97988f403b71a065b1ca12c627ac35cbd2183d7a38bf47f7986393f3cb6b7b998100ef639ffce65" + } + }, + { + "type": "Regular", + "proTxHash": "b100a91cb9500ac9eeeaf95e7b63ff8af34cfe7023cded447a4417ebdcc31b9c", + "collateralHash": "409e86e5e98341859a01ba097b1c71a061c1c303b6b88bbdcafa526cb3271527", + "collateralIndex": 0, + "collateralAddress": "XxL61sipDCykbTh5WKrf6xmUkXVR6teYAj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.137.183:9999", + "registeredHeight": 1049360, + "lastPaidHeight": 2126000, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnJbX7YWEeqR6jwaN8uQquz8RVgKu8qsG6", + "votingAddress": "XnJbX7YWEeqR6jwaN8uQquz8RVgKu8qsG6", + "payoutAddress": "XxL61sipDCykbTh5WKrf6xmUkXVR6teYAj", + "pubKeyOperator": "84c091f7f87b0b4e336582648ce4ccdba6ea496c566275fabe064fcc9ec632ad0d75b68ab34d19a359c25662dca37ba5" + } + }, + { + "type": "Regular", + "proTxHash": "e9979f06fec963cc22ca977087d650b3f7aef76cc32a50fb8e44f532d2411c03", + "collateralHash": "76aff5bfe52233151d898dcdc0a8096ca6efdcd19e4b6af9356d93ed2a9d409f", + "collateralIndex": 0, + "collateralAddress": "XuZZPYcP7nKHs2uj8xuEiecBrHQMUcdJGw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.4.172:9999", + "registeredHeight": 1049360, + "lastPaidHeight": 2125993, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdcUZP3Fhp6jAuuo1gfhXWQt2QjuENZTXa", + "votingAddress": "XdcUZP3Fhp6jAuuo1gfhXWQt2QjuENZTXa", + "payoutAddress": "XuZZPYcP7nKHs2uj8xuEiecBrHQMUcdJGw", + "pubKeyOperator": "0cb72d4dd0ee253474f0d9435850ffe3fd7b94b2fdfa6a91072d0d5aa859d831b3e429244023c618ab82bc6b5cd154ad" + } + }, + { + "type": "Regular", + "proTxHash": "e6d5aaa16614a17e71dbb692df04b8b5c1ff13e22c7630acdf9d385e2eea0f2f", + "collateralHash": "eb7312cfe660fd6163d27420bd755e2b7d269cc4a7c7c46ddfe3a21cd00f5b2b", + "collateralIndex": 1, + "collateralAddress": "Xbw7wE71z9pDZ2kq8wjU9hdbPmABYdnSFg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.80.187:9999", + "registeredHeight": 1049360, + "lastPaidHeight": 2125994, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkXrAgxRvtDtdpKXSHLoZUa86s1H6zyJPy", + "votingAddress": "XkXrAgxRvtDtdpKXSHLoZUa86s1H6zyJPy", + "payoutAddress": "Xbw7wE71z9pDZ2kq8wjU9hdbPmABYdnSFg", + "pubKeyOperator": "94bc6c08afd8d1ec5bb8f346dd695b06c04e53075e307b36c66c93da0013fda60a13c978f98cfd771b82ee5b7b03e6f1" + } + }, + { + "type": "Regular", + "proTxHash": "b9dc34a12a52549ac9f95114ec93ccefa331fe992ef9e919c013ba7891ff616b", + "collateralHash": "bcf72c64b1311f99432517a6696918b1d35d836463d7fe9bb688268b032a5b41", + "collateralIndex": 1, + "collateralAddress": "XapuVxa1gqjHDBVQxMCdPG6Z5p6De6TZXK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.52.247:9999", + "registeredHeight": 1049690, + "lastPaidHeight": 2128767, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078716, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr148baP512RZoHN2SeGNfTMw3sw73J5Di", + "votingAddress": "Xr148baP512RZoHN2SeGNfTMw3sw73J5Di", + "payoutAddress": "Xi83thytDFNT2zCEADRRZBy92JN6sRMaFe", + "pubKeyOperator": "857158644d4a92e5fa66ecefd68172759060d7ded97352469a85bc9e7f3ad1870ef26653eac8303d25dfd6e6d9c6d41e" + } + }, + { + "type": "Regular", + "proTxHash": "c7f1cca19dc1af017dd6a07c6881601a1171c31ea0e0fa139ac9aa5178b8c27a", + "collateralHash": "77119cabd1c87383f1907a146f8322986ff7a1e0b98fc7454ee08880b6067141", + "collateralIndex": 1, + "collateralAddress": "XtCgFdCGMVajHCmnDB1zySGAqWVeQS8FL2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.128.239.50:9999", + "registeredHeight": 1049690, + "lastPaidHeight": 2128768, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078716, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwx11M7qbJDLhQF1FoTpfLBx69ecnAb2Jr", + "votingAddress": "Xwx11M7qbJDLhQF1FoTpfLBx69ecnAb2Jr", + "payoutAddress": "XhVD3cWJqL8xFA9H7M1EtnE4Avu8j6DsqY", + "pubKeyOperator": "0485f93cb1c4a7780d9154b6e850e6a29294e6315c2985200720a4c96a4d75a592ae4e5047ee5efb16f619495aec1ad8" + } + }, + { + "type": "Regular", + "proTxHash": "2d461ee1e601f40f93368219ad81f7d7a5702566fca2f6dc4093371876567ff9", + "collateralHash": "d45f1dda72f9de72d0d277c8d9ef97ac30861f625b3c72f583d11625a1201b4e", + "collateralIndex": 1, + "collateralAddress": "XdpBve9ZF1HiGyZoVjLHs1cnYU2iAtjEb5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.128.239.123:9999", + "registeredHeight": 1049690, + "lastPaidHeight": 2126327, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1767915, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb9BJ9dz7KauZHhrknYcEFG5iKnyRJJ5JM", + "votingAddress": "Xb9BJ9dz7KauZHhrknYcEFG5iKnyRJJ5JM", + "payoutAddress": "XhTg9Xw4tQ1zJqPr8pvzHBbHtGbqQLmxJC", + "pubKeyOperator": "928b150960cb3dcf82caad93511aaa7f7df2e7f6395acaeb56ce1fbf1fb48ba6b699454333e31d6f66dc25b11d5126f4" + } + }, + { + "type": "Regular", + "proTxHash": "2c32560070d7599d1faf110b67529fa9e78205c3164b41976ac4dc00fb794ea5", + "collateralHash": "99b008b50d98031a8fc6023d0e6285357b46332893ea0cac4f3132d81df5b054", + "collateralIndex": 1, + "collateralAddress": "Xx62S36LSFrin8PXgqVhwtWzNJJhfamzR5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.185.40.104:9999", + "registeredHeight": 1049691, + "lastPaidHeight": 2127562, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2037045, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvHwWP5Vwfe6wwr3G3Roy4NQbeUoKFcHka", + "votingAddress": "XvHwWP5Vwfe6wwr3G3Roy4NQbeUoKFcHka", + "payoutAddress": "XweafKTu3T9otSr4Xx7gUDbf9q6HYv9PeH", + "pubKeyOperator": "07ed79266f09323a5bbb05fbdb145224d2b1395cb3a12b4141d92e721199cfa52c2f2f5f2af72df436896dbd86d52fb9" + } + }, + { + "type": "Regular", + "proTxHash": "8ef3fc82dfa76ecca6e7c809e91cfbfe40f499c1cf58f0f52b39e2a7e06f3ad9", + "collateralHash": "e06c7af412c245297873fcca6ced3208750f1436b5927e8753b9055b703cd75b", + "collateralIndex": 1, + "collateralAddress": "XfpSfRp81YrU9RrbQVZyHgFi4DEjC1yGyS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.102.86:9999", + "registeredHeight": 1049693, + "lastPaidHeight": 2126118, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1995048, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxxxPP9zM81kYZhzL6H9kd1URUAw8sXDAY", + "votingAddress": "XxxxPP9zM81kYZhzL6H9kd1URUAw8sXDAY", + "payoutAddress": "Xe6R5AAYcGhxKRrBhofqqffc8uwxztPN7X", + "pubKeyOperator": "99dd7e1273a1f3aa77c5e513182187e0b4e7754858b1ac5087eb3170211cac368ce7f3955220b527a1125593b9655ddb" + } + }, + { + "type": "Regular", + "proTxHash": "e8626fcd57f6394db6669ad6db6fd44c3906e702e51b9fcae5e58300d83cfd8a", + "collateralHash": "50d133ce6e0f2b588120c9ad38c1fbc17d221a5f985501d99153045696b0bb68", + "collateralIndex": 1, + "collateralAddress": "Xmgc9MMiWDrtxbM1g1AAU3bk8Jm2wPG6mo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.185.40.14:9999", + "registeredHeight": 1049694, + "lastPaidHeight": 2127373, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2006474, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvvWM6uPQT1RY9EDDMUNw3Q1vTSxQA8cam", + "votingAddress": "XvvWM6uPQT1RY9EDDMUNw3Q1vTSxQA8cam", + "payoutAddress": "XsZTx6yNN5QMtSqEtJEP95GwzrUzt37F5w", + "pubKeyOperator": "8745ac28c712e3253e23fbcd54ba6c69f0c9ff88add838cff601d22f22ee986aaab2347a6e1862a031212274523dd758" + } + }, + { + "type": "Regular", + "proTxHash": "e568ac38c173e6f9628cf7c7d831b46e98d9968561eb6426cc51c0ba4e237afa", + "collateralHash": "73ef53bac688e064870af08345c4adf7c86664c6c0d0166a22451df4ee91e565", + "collateralIndex": 1, + "collateralAddress": "Xd4acZ2q1VBmpdH3VLsm6D7x7kvxtwn9Mn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.154.74:9999", + "registeredHeight": 1049694, + "lastPaidHeight": 2127455, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnrYjBoMcNRS6Rx3pqCAL7NrkcMCXL5WWp", + "votingAddress": "XnrYjBoMcNRS6Rx3pqCAL7NrkcMCXL5WWp", + "payoutAddress": "XtiJZZZ9PyY7ULM6U17sT82QAGftHpgWEc", + "pubKeyOperator": "120fd7e57ac55c7bc1cf816355aca7c641537e102e126017228d2c9e79b9ad898c127782af9a95e472a7d6ac521136c8" + } + }, + { + "type": "Regular", + "proTxHash": "417bdb23fd07cdf96e178da8c85260fac3f233511601d10edac72b96d4086c55", + "collateralHash": "f8f515a0dcf61c012b94c2363529dea135e405155434967f317cbbb3b9656369", + "collateralIndex": 1, + "collateralAddress": "Xc9Q2ADQTrdR6nj6o2yF5XCKKRGDosocNT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.52.179:9999", + "registeredHeight": 1049695, + "lastPaidHeight": 2127133, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1913588, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfiG4WEvz5FaGwJDjgSGQSg5LHiMg4W225", + "votingAddress": "XfiG4WEvz5FaGwJDjgSGQSg5LHiMg4W225", + "payoutAddress": "XrpFJUxJcS3C9CnsUBAQcCeGgeaQyTgar2", + "pubKeyOperator": "18c2fdebabcd8c5880cc06a4d422f28b945de5ec64a8e25de81074c2fb44cad52eab55926d1a18b073e6a064a01e0435" + } + }, + { + "type": "Regular", + "proTxHash": "b63234d5dfc8616ac9c9667b8bbc1366e5908501f1086127b5c4351ca4443fa2", + "collateralHash": "3a5f5fd09c881df568b74ba4aa81d2918d32443127c297167d7ada798ad40e6f", + "collateralIndex": 1, + "collateralAddress": "XniuofJH587tSicNZKUKuP5DSsid2EawPc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.56.79:9999", + "registeredHeight": 1049698, + "lastPaidHeight": 2126008, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1988311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsea4BV9Q1oKz6kvQWN5j2YoAtVZUyftHh", + "votingAddress": "Xsea4BV9Q1oKz6kvQWN5j2YoAtVZUyftHh", + "payoutAddress": "Xq4E6MKmxdVMVAKL7PpKTyh6VKdcoLuhvH", + "pubKeyOperator": "03ffabb0588844a60d5449a29fdabf8b99be18b25ccadfa0518d44280874993ca6458a3c939631af59fba7d0c2d52063" + } + }, + { + "type": "Regular", + "proTxHash": "b168031295f69d8a9813918a517362549e9743698d72e7b115e59177fb358a13", + "collateralHash": "8f58309e06926d678f777b5a66e073f8e24449ca66d9fda516902b4da5edc491", + "collateralIndex": 1, + "collateralAddress": "XrG9v1BWWMBor1dVYfVXPXU7ZokYNhmRhL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.56.87:9999", + "registeredHeight": 1049700, + "lastPaidHeight": 2127010, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975555, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtRUVd2DvRD29ZFVnn7Bs5ezbBZhEMFqPQ", + "votingAddress": "XtRUVd2DvRD29ZFVnn7Bs5ezbBZhEMFqPQ", + "payoutAddress": "Xe3SWBJMfFSkoxyTGWThGHPg9eBy1DM7hG", + "pubKeyOperator": "18fe50e7237d2a46cc23222ef757f42a356659c0797c804523e6b1fdc420eee2f643a112bd8db9674362c64be7c52c89" + } + }, + { + "type": "Regular", + "proTxHash": "2b87e50306b31a729151a607215272f4227913d4fb195f06fb02f0f50993af58", + "collateralHash": "84f1fef86fb72a83182a4c31b3b518b9a93c48578cfd74ed009b0f2f87b8d3a8", + "collateralIndex": 0, + "collateralAddress": "XgbBHH6gDarvi1HBs8eihgVfuVriKSEuiu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.154.59:9999", + "registeredHeight": 1049701, + "lastPaidHeight": 2127450, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsLCq6ZYDDERqALFtzYQPh2S7PsPnzP1J5", + "votingAddress": "XsLCq6ZYDDERqALFtzYQPh2S7PsPnzP1J5", + "payoutAddress": "XdrKr7njAz2M4rn7Pu6Gso1CtBtzC9oYAk", + "pubKeyOperator": "0bb0dea2d65f9a8a1d635584dd2f7ca3a16231ff9d0573400ec4f273406e85cef2b16e6c405a3e9d770bb98ec2e9cccc" + } + }, + { + "type": "Regular", + "proTxHash": "2420971711a8f496e950713115ca9c2fe2c2379ad6e97a3cc7ed513fc86506dc", + "collateralHash": "fcf31c1e4cca97b1d4583fd2ec662e34670419c06d526721e974bdfd5d442bc1", + "collateralIndex": 1, + "collateralAddress": "XkKB6qT254n1tnX532jYye9DUQPhLbSYYz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.154.44:9999", + "registeredHeight": 1049701, + "lastPaidHeight": 2127454, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeYgEmQt9AQMKRmE7ovSndZ8no2h4SWnne", + "votingAddress": "XeYgEmQt9AQMKRmE7ovSndZ8no2h4SWnne", + "payoutAddress": "Xmp6PUchf4rPQYem6sVPej3YfGm6jri7Zv", + "pubKeyOperator": "8bc2ae680da0fc2b7721e907b093eb951221bfd614ccc6759750874ca867aabf8e98cbecdc0e0f25a292f93591fd505f" + } + }, + { + "type": "Regular", + "proTxHash": "23f72319ff77338f1a69b28b9e8531e4e2d3db267bd962c91b47e6097368f8cd", + "collateralHash": "e67e3320402110a807dce2dec43e22751d7ffb87516048c0a9b515d5562a31c8", + "collateralIndex": 1, + "collateralAddress": "XgqAACa7LJ1btVQRAZZRkfSJYprNTSXT1B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.157.22:9999", + "registeredHeight": 1049704, + "lastPaidHeight": 2126876, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1989296, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxHisHtEg6du9YmvNhZ4yYWBRbxXVYntby", + "votingAddress": "XxHisHtEg6du9YmvNhZ4yYWBRbxXVYntby", + "payoutAddress": "XeEfyyKH2zQePNXfMroMkLEFfLU4ozWK2A", + "pubKeyOperator": "14cc707e20d4ea6ec5b1de796a53e5d6dc7b8047a6a253c74430c61dc8a34d6f880a91a4be10ea4989e6accf50443eb7" + } + }, + { + "type": "Regular", + "proTxHash": "727f3638c7c63d11558df2b46c475205afacaf3f503cd9a5991ee4c2c302027a", + "collateralHash": "a20cd56c41b015ca239219405b97a1ca3e427f8daa6b146837f792d8b23072da", + "collateralIndex": 1, + "collateralAddress": "XqUCaHbZo6rWGammTWYYZmDVcLwhTV1vri", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.154.76:9999", + "registeredHeight": 1049704, + "lastPaidHeight": 2127451, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyVsBbw9j9qSn9jm1PSAz1TyAE12WEjXk7", + "votingAddress": "XwGnhmMHXLJ4wcThqes4hky9VeGZxDNciW", + "payoutAddress": "XdPAMWh2Aay5k8vUbbyG3QvnZ1Ui53QYuc", + "pubKeyOperator": "8443841e14569b06c45b024ea99979951ef498e4a072d29b8b9f5c6f75b279043087b5ceb03f03e66eaff62e05dec805" + } + }, + { + "type": "Regular", + "proTxHash": "8d4ae79af1d24f70be0a0c9dc77475ca8f4ae16f2717022619d3b386fcf5f3d0", + "collateralHash": "5449192092b40532aa3a5f62193a05a79716226b2aa4477bf5f70997480810e8", + "collateralIndex": 1, + "collateralAddress": "XcvR8EwqFkvstcvhyAUJXrAcUFHSPg3nc5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.52.232:9999", + "registeredHeight": 1049706, + "lastPaidHeight": 2126877, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1989296, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfegpeeYUBFxwsmZPUiCraYrXZ2AKBcgUb", + "votingAddress": "XfegpeeYUBFxwsmZPUiCraYrXZ2AKBcgUb", + "payoutAddress": "XyeH9SZkr5aUHvzQy9zCzyKMmxdhd8ALM7", + "pubKeyOperator": "8a941a65f890b179824f4d9fdebeb598e57d79adbd2faf1ae48dd536d1ce8e274c68ca5d27850bfbf36eddb03b25aa55" + } + }, + { + "type": "Regular", + "proTxHash": "f036de4b47798af2944500db77d26c24ffae34fc7f49cd3a9e4156391386854d", + "collateralHash": "f48990b5e1bd1d7f586757b42f7b30f0b537497672aad0bfcfa22c1db7b64eeb", + "collateralIndex": 1, + "collateralAddress": "XqQkxLUt2UcSNtruxa4GeHbH2VhuGApzFv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.102.89:9999", + "registeredHeight": 1049718, + "lastPaidHeight": 2126385, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1878090, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeWvzNd9VK7CfmrYFaQ1geqNZd3SkJQqYL", + "votingAddress": "XeWvzNd9VK7CfmrYFaQ1geqNZd3SkJQqYL", + "payoutAddress": "Xt83GtWF7fNKEsgmMJpZXGAzcVPPxszcae", + "pubKeyOperator": "0911947ac6412374c3822b0261c89dd591aa6af13e147639c2bc25578ed03c544e44eae9df0eb5ee1f274033a97088bb" + } + }, + { + "type": "Regular", + "proTxHash": "1ef8e1b6867f0a7ec6631aee0f0757443006c522f19746e94a9dd8ac464239a1", + "collateralHash": "09d2bb3ed727abc175632efa0f723870330b831e12d9be52c1e9b70ffde0d7e8", + "collateralIndex": 1, + "collateralAddress": "Xcq85AZ4hA7ppkEnUG95PVAHWebZTRLnBq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "202.5.16.33:9999", + "registeredHeight": 1049721, + "lastPaidHeight": 2126879, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1989297, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv1LUfeG32gAZTdDikeHDXzpUc4N8Z7UFf", + "votingAddress": "Xv1LUfeG32gAZTdDikeHDXzpUc4N8Z7UFf", + "payoutAddress": "XpUaEoKRquJUMfko7QwQxirCGBhKQLVAPz", + "pubKeyOperator": "090bc093f584554e5a834d228c540d781d82de9fb0bacd296dbfc213d6e84feebdf69ac73e2a5bdbc85d90a38a517c4c" + } + }, + { + "type": "Regular", + "proTxHash": "65650b10d273b74db238649477bc24222b4171cc1bbb8e0bd414d0eedee76f4f", + "collateralHash": "66fa0c008add5b4dc7aa531e6127f00a0551850e8b42f3f02307b7463f363d27", + "collateralIndex": 1, + "collateralAddress": "Xb8E5r4tJocTzEJio95FeUG17hekY3h4En", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.163.0.49:9999", + "registeredHeight": 1049860, + "lastPaidHeight": 2127720, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121489, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoyeaAkycrTbQRQ64dUbEPGkJvDHq62g8q", + "votingAddress": "XeoA6QH8YNvcKhgUwm4QUXz2Q5T1cArz49", + "payoutAddress": "XiLG83Jj8reHt7YH4H4JQ16q7c2q78KCSz", + "pubKeyOperator": "122faaabfdb1d5922b496e95419b8a13007a05a7c3396ddccfe6be729808a669ca6d525e5b6171ae8e9dc4d561bf377b" + } + }, + { + "type": "Regular", + "proTxHash": "e8c60afb6396c621ca7efef704f75d193cb6b2606458efda18f60579f9e605d7", + "collateralHash": "97cb4934ef95843153e48917f27aa4d33533f951b4777ec194b171433276fde2", + "collateralIndex": 1, + "collateralAddress": "XixHXA9aXkYpKnNMXxFvTrSTEiHdeeEK27", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.97.140.168:9999", + "registeredHeight": 1049865, + "lastPaidHeight": 2128330, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078193, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxgr683WUesspfc3cuvrCtEjmLSpe24qo9", + "votingAddress": "Xxgr683WUesspfc3cuvrCtEjmLSpe24qo9", + "payoutAddress": "XixHXA9aXkYpKnNMXxFvTrSTEiHdeeEK27", + "pubKeyOperator": "8fcb43f8ae9f9535ab38b62cc78a266f70f90fb6dc0cf59e6b3c07796ed0829555f935ac62650409493eec4ec7981a2b" + } + }, + { + "type": "Regular", + "proTxHash": "ac8d70898dfe492cc9e8920c193687277dc4ffeaed15943898d19ec091eec645", + "collateralHash": "6927c09f592e73ac8cb4be6d24a0ee89c9a2cf06d769c7b9826c6e09ebbe2923", + "collateralIndex": 1, + "collateralAddress": "Xhfra1wVuYHP7P9bBZN3ehXVBnYe1RJC1z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.212.227.186:9999", + "registeredHeight": 1049870, + "lastPaidHeight": 2126249, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1546814, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo1fFPqVfN3JFWJoudsCSJQ74kLWboZ4Py", + "votingAddress": "Xo1fFPqVfN3JFWJoudsCSJQ74kLWboZ4Py", + "payoutAddress": "Xhfra1wVuYHP7P9bBZN3ehXVBnYe1RJC1z", + "pubKeyOperator": "0bfe7d128087e9dae0e26ba08b77eca84f9ca53b530b3bac19251161946bc164dbc33c810e7d6d539ef5981864aa8e62" + } + }, + { + "type": "Regular", + "proTxHash": "cb9d7a813dfa15f8faf67b1f6f6c9f32cbddd5ff813529457eb8c7b6117673c4", + "collateralHash": "e03b51906bdd7f591104e15cbcc011afeaac7178b06d8cef04662d8b9009426c", + "collateralIndex": 1, + "collateralAddress": "XkJsoDC8nk5pPugMejPutcEDbJkXwULHYF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.92:9999", + "registeredHeight": 1050318, + "lastPaidHeight": 1463202, + "consecutivePayments": 0, + "PoSePenalty": 4733, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1464789, + "revocationReason": 0, + "ownerAddress": "XqugFvLHfhdXZZkasqtZ7nr5izyKj3JpK1", + "votingAddress": "XqugFvLHfhdXZZkasqtZ7nr5izyKj3JpK1", + "payoutAddress": "XkJsoDC8nk5pPugMejPutcEDbJkXwULHYF", + "pubKeyOperator": "135a40bdd844419f6ae4947a19a3a16e0fea3ef0e25eced627c25b93616e1a28d5ff2c67a9f1bc8290c54c962df9e976" + } + }, + { + "type": "Regular", + "proTxHash": "45f4ff0091cd109ad9e9db374c5b4c0006955b50ffdde074fb383af095bd4c2a", + "collateralHash": "eb6814a09e151b5ea479112d9fa7b015c0a80e2683d2c3b7582da3ea9654058e", + "collateralIndex": 1, + "collateralAddress": "Xk44XMPUfJJfVZAPAgc6AiqcoR3NKNpQds", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.215:9999", + "registeredHeight": 1050394, + "lastPaidHeight": 2126709, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgKN5YhPziGbetDxR3AVqUTF8LUU4PibgX", + "votingAddress": "XiF9SEnL8ozWWaTYSs7GLyekmzSWRTgz4E", + "payoutAddress": "Xk44XMPUfJJfVZAPAgc6AiqcoR3NKNpQds", + "pubKeyOperator": "861c1efe8e2f4348c2708926ba9d5ec7eecc9803c2fe380aedee31843df5739c3011cc20b9f46bb0b4a001599d75a745" + } + }, + { + "type": "Regular", + "proTxHash": "7445c254447af2b20bd3cf40d24b610de962deed0eb7a0c1cdc24ef797124425", + "collateralHash": "13269dda46f9bc4aee2dbd04bc85cda0fd8b46758f8243fead9ac96cce5c95c3", + "collateralIndex": 0, + "collateralAddress": "Xku5wQbJJkhpTQB5tfJK7cAp33CkdnPHp4", + "operatorReward": 13.37, + "state": { + "version": 1, + "service": "66.244.243.69:9999", + "registeredHeight": 1050503, + "lastPaidHeight": 2127432, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1875954, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwfYtkzWvue3odKema3oK9B33WEfdbbFi3", + "votingAddress": "XbHUkXM3zgX8PnLgQGgAYF9sLRQCcH75eF", + "payoutAddress": "Xku5wQbJJkhpTQB5tfJK7cAp33CkdnPHp4", + "pubKeyOperator": "9048f5ce2d0235802d727ddd800114d817f6cef225a9ebb2f5cd0eaf6cf3f2ebeb65c3bce5239a156acea6bb5edad3be", + "operatorPayoutAddress": "XkQc9SBaU4LVEDTzR6LdkLhb9NeUJTf2Ty" + } + }, + { + "type": "Regular", + "proTxHash": "a07313deaf12b1471e600ebaf7bae1e8becab8c8647eb26f7d2c15457a6684d0", + "collateralHash": "6d71d00f47e1ad43dc2545f1658b8ebdfdc52532d904db2a5da8ecc6fce4e4ce", + "collateralIndex": 0, + "collateralAddress": "XtAnHutj8kL9s93dWcQNAf5FUKbyawnFxL", + "operatorReward": 13.37, + "state": { + "version": 1, + "service": "66.244.243.70:9999", + "registeredHeight": 1050518, + "lastPaidHeight": 2127443, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1875957, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgJJmmQ2xtm8TBv3KPPWRZaA6zeUkqtXfk", + "votingAddress": "XbHUkXM3zgX8PnLgQGgAYF9sLRQCcH75eF", + "payoutAddress": "XtAnHutj8kL9s93dWcQNAf5FUKbyawnFxL", + "pubKeyOperator": "85401739d4f6644f012ba9b1ae410ea6975146b63ef7e412d0a615bef5c4eaa913ee9f717be317c8e9dde6c206472c2e", + "operatorPayoutAddress": "XkQc9SBaU4LVEDTzR6LdkLhb9NeUJTf2Ty" + } + }, + { + "type": "Regular", + "proTxHash": "f919debb3a5ab255975687baf163e7dbbc8ee4c85157ceaf6511ff085a52c22e", + "collateralHash": "4be5242cc6408cddb4be8811a3206cbef1903529f361a8aec673d29158778b1e", + "collateralIndex": 0, + "collateralAddress": "Xr6QiwDaJnzVutcQgF7hMrihoV1Q1mBDnG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.82.72:9999", + "registeredHeight": 1050972, + "lastPaidHeight": 2127120, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv3sd8mhR2XU9wf7qCVM4mVHDnz2BL2TCp", + "votingAddress": "XwhRFc7AYirEC2dB1JXJtKispZ3AkoJ9JC", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "8a0c1329063ad724e5db06dd336dc9de43835048d3aca1440127fb655bbb9caa1baef555a854a7acc2d35d3493f6c6b7" + } + }, + { + "type": "Regular", + "proTxHash": "80a80e40c69238b322626001f03a0c8ca4845ad2469b010d4f46779aaea847f8", + "collateralHash": "4ae1e51a08cce5ee3c5c526ffcb1f7540756ebad5cace218bcfdfd01b4128ce2", + "collateralIndex": 0, + "collateralAddress": "Xk1NJafHsg588aZdp3UYHXoXztt8FTg9Dp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.200:9999", + "registeredHeight": 1050974, + "lastPaidHeight": 2127122, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd8AeZPVDFsr76kdeV41ikGZAUUmN4BetG", + "votingAddress": "XxR7etkWDPnL2UL3hF9RZzXPKdXWryYMzi", + "payoutAddress": "XbpqkLFWuNGakGLZFVkmeRfCwu6gpC7oip", + "pubKeyOperator": "0299e8c2d20fd211b62458335591986797b3b1a6422d86feab5ddc05eac0da86a312edc4b53287e86f3f320cf96188cb" + } + }, + { + "type": "Regular", + "proTxHash": "d78fbb4efa3e7d58159ab3d5bb975a707ad59f0d0444ccfed13c3f88c1c0faeb", + "collateralHash": "ff9de7d19896147d40e46c8b86729f0a71c903cd1728a2b1d684581ec79ada93", + "collateralIndex": 1, + "collateralAddress": "XebcDgX2G2miNp1NEiPRreByfjiusrsk8X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.18.146:9999", + "registeredHeight": 1052187, + "lastPaidHeight": 2087511, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2003134, + "PoSeBanHeight": 2089461, + "revocationReason": 0, + "ownerAddress": "XtuHeYvqMnjK75KTcjamUf2WiYhtDxm5nv", + "votingAddress": "XtuHeYvqMnjK75KTcjamUf2WiYhtDxm5nv", + "payoutAddress": "XebcDgX2G2miNp1NEiPRreByfjiusrsk8X", + "pubKeyOperator": "8fe224de3de77625a9b2d257d07ae0b048f55029b0a1e1addd634b6fbb5ad7cb1a97bc967927293875427371e8860978" + } + }, + { + "type": "Regular", + "proTxHash": "3b79a6250d676a83d6cfc2d5c288aec10ed47f149c25f844c3bc0c7aa32882e8", + "collateralHash": "a1c9bf2d047dd5e74ad4cc227caa884af5ab4285af4849b0ec36848523758ec9", + "collateralIndex": 1, + "collateralAddress": "XcL8yhKD72jaKDjg1QQQxK6LCRFsJ9qZbx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.20.131:9999", + "registeredHeight": 1052194, + "lastPaidHeight": 2086831, + "consecutivePayments": 0, + "PoSePenalty": 3810, + "PoSeRevivedHeight": 2002487, + "PoSeBanHeight": 2088618, + "revocationReason": 0, + "ownerAddress": "Xn3joVdzzwequBa6UQ5KCdvVnddt5vHEdJ", + "votingAddress": "Xn3joVdzzwequBa6UQ5KCdvVnddt5vHEdJ", + "payoutAddress": "XcL8yhKD72jaKDjg1QQQxK6LCRFsJ9qZbx", + "pubKeyOperator": "897e34f490c59673f0f845139b80859a21e12a4a1f1aec6dc2c1d7757244a7b0fdf6ef61575dbf3920a6557801452423" + } + }, + { + "type": "Regular", + "proTxHash": "76eb56d3596db1e04c63d93e35da506bc5b977c6c69ac234ac37e2a92394edff", + "collateralHash": "e52906182418a5a688df3e2a556185629d55f57be1c43fb2f49c9da5efba2576", + "collateralIndex": 1, + "collateralAddress": "Xep19ZAx6gwqzZyjk2fxcDm1yD1K6zzEZp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.84.39:9999", + "registeredHeight": 1052201, + "lastPaidHeight": 2088140, + "consecutivePayments": 0, + "PoSePenalty": 3817, + "PoSeRevivedHeight": 2003793, + "PoSeBanHeight": 2088906, + "revocationReason": 0, + "ownerAddress": "Xe4thCLHLPCdbx2fv89e3pooTVDRVstxgP", + "votingAddress": "Xe4thCLHLPCdbx2fv89e3pooTVDRVstxgP", + "payoutAddress": "Xep19ZAx6gwqzZyjk2fxcDm1yD1K6zzEZp", + "pubKeyOperator": "8c1c732ca137bdf31932dafd19efe56e7155d256db9544ae27f590fb62017f0f32536c7de15cd830704b07f9f52fc9f6" + } + }, + { + "type": "Regular", + "proTxHash": "b1a4dba671b6c0b5c20c9212f1ad7858d4baf5dbbe48c5c52b4fae8689d592b0", + "collateralHash": "efcfc9c401e3ed5cd4f0ed5a00d6fe764f91dbe96284b3a9f27ba3d112164454", + "collateralIndex": 1, + "collateralAddress": "XxyFyu25BTpyge2qB9VAuM4WeiN7Ytp4Sq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.18.185:9999", + "registeredHeight": 1052210, + "lastPaidHeight": 2035038, + "consecutivePayments": 0, + "PoSePenalty": 3826, + "PoSeRevivedHeight": 2024986, + "PoSeBanHeight": 2038218, + "revocationReason": 0, + "ownerAddress": "XrQFMFdJhqc2GMfym3KWomPCTWLXEaHNsd", + "votingAddress": "XrQFMFdJhqc2GMfym3KWomPCTWLXEaHNsd", + "payoutAddress": "XemawbFgD3PkyuNS8zzSAjRd517ibTUfur", + "pubKeyOperator": "1347434b853f1eb87263d8ff036a946bdc0e38f81242c3533c3bd2752df5da957e37b3fcf5c7a380446960847da5bfd0" + } + }, + { + "type": "Regular", + "proTxHash": "26924289c0329544b5fcc2cb41c5d699ac7995a7ed8b760e5299dfb2f03379ab", + "collateralHash": "46f8121efedc720b3f96125d983560fd4821c2e8d385c928318a25d756fa506e", + "collateralIndex": 1, + "collateralAddress": "XbumP7aY3UmEiwqPmrJJoZ2HMFY2XVBBWH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.162.136:9999", + "registeredHeight": 1052215, + "lastPaidHeight": 2062194, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2028578, + "PoSeBanHeight": 2062965, + "revocationReason": 0, + "ownerAddress": "XkErc83KSuM6NzRj9AJrSGZWE1ZZq7aCXd", + "votingAddress": "XkErc83KSuM6NzRj9AJrSGZWE1ZZq7aCXd", + "payoutAddress": "XbumP7aY3UmEiwqPmrJJoZ2HMFY2XVBBWH", + "pubKeyOperator": "8fbd32ecbd54db00865c3ef6a784f12c0d070d0d69a162bea0aca0936b7706ca572de8c54e019c983b15d5b1a2429fa8" + } + }, + { + "type": "Regular", + "proTxHash": "944bce0e7fbf4040b63c4dae169cc595626cdf7758b9a88830995c3e6a66f40a", + "collateralHash": "a3ad50523975df26cb618178a1f35efbb9230f9599ad0731308ee67045b1e3bf", + "collateralIndex": 1, + "collateralAddress": "Xp3Cnnww8w7C4Ge3SXbv3wnCsRBM12RLng", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.32:9999", + "registeredHeight": 1052547, + "lastPaidHeight": 2125835, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820862, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk47WSHNspfWKvqyf97c6HsbrNyW9No6M1", + "votingAddress": "XieY6wNK9WmSMjk7zmCV7cRsjLvQBqxL94", + "payoutAddress": "XsyHTNQLYmyHnQ47TrKD1mR96Q1NRSzJhY", + "pubKeyOperator": "831c6466f7e0ad472bd63e53f93319e3adffa4b532616cad710a3f0d2ae887de19eb9ba79660de3b2127452640a6e8ea" + } + }, + { + "type": "Regular", + "proTxHash": "34b77eed71cdc35f020086d26989f89bd63db182640bce91ced7dd106f94bb30", + "collateralHash": "34ea051aba28699cb1acb2f94ea23300757ab44530c4fe127b19104285e6a0e2", + "collateralIndex": 0, + "collateralAddress": "XrLc6k1ef3HAQ7RW4zePLp8rjnvQggpEd7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.37.155:9999", + "registeredHeight": 1052626, + "lastPaidHeight": 1252494, + "consecutivePayments": 0, + "PoSePenalty": 4689, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1253531, + "revocationReason": 0, + "ownerAddress": "Xn8eZPmFCDaghVeJ4CjDx7rdTEbrYkejy4", + "votingAddress": "Xn8eZPmFCDaghVeJ4CjDx7rdTEbrYkejy4", + "payoutAddress": "XrLc6k1ef3HAQ7RW4zePLp8rjnvQggpEd7", + "pubKeyOperator": "143947c7996e131a8b3bb0c969b0c9951a3e6eb97d18a75e2c76eaad04ab3598f5609f6d50ce83002c47e1716a036d6c" + } + }, + { + "type": "Regular", + "proTxHash": "57713ec2ea5975ab7fcf5ee940a07872c6818b176f308ea3b59c8dfd32417d80", + "collateralHash": "767d795fe8d5f8eee0f975d227a2ac32f5561b377c5005edce7de300ef72ee01", + "collateralIndex": 1, + "collateralAddress": "XscjbJqZ48GvpZ2gfEQhYW34xu3uefrRwH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.125.247:9999", + "registeredHeight": 1052633, + "lastPaidHeight": 1252511, + "consecutivePayments": 0, + "PoSePenalty": 4682, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1256853, + "revocationReason": 0, + "ownerAddress": "Xii9ZdsMYVa6hScYge2y7U4xWBbAdeuN8q", + "votingAddress": "Xii9ZdsMYVa6hScYge2y7U4xWBbAdeuN8q", + "payoutAddress": "XscjbJqZ48GvpZ2gfEQhYW34xu3uefrRwH", + "pubKeyOperator": "185d36f99b9287a2d152ea2d5ae5a9fa9686107004a50625569fc3ebd5f3bb487ef8fefe97d2fb317e507c79b332f12e" + } + }, + { + "type": "Regular", + "proTxHash": "b78662a8ed4823a26f4843cd9a335e3fa533bef8fb3d44ded5042c146cca3133", + "collateralHash": "a0f0fd50f158e916ffd901c9836704aba2710b6b6563fcb332d594bf0ed605ab", + "collateralIndex": 1, + "collateralAddress": "XbfKWBprTsr8ALQMb67mvp1qQMi62pW5M3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.67.246:9999", + "registeredHeight": 1053070, + "lastPaidHeight": 2126131, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2008567, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyGDF9oESDMzMwnEy7QqXZV4eM1ESf2oiQ", + "votingAddress": "XipufmJTqPEKc4pRCm4YHGXFRQhjeHTvyo", + "payoutAddress": "Xo4CxCu6SuwdxRXrpGA9zBffyfdqm8hyeW", + "pubKeyOperator": "08713b27318898be84732dd431be9f4c906d2c282e555ec73fe83fe748d5dca5200fca28b3e5f676681f8bf858e6c7d0" + } + }, + { + "type": "Regular", + "proTxHash": "a8f3cf91e12b9f056f7f07eeee73add15c02aa8c05b9e30ba2897cc9dbefa57b", + "collateralHash": "0bf5ec7058faca3cf5113d4138a5fe2f088de048cecd27fcb095e0cd82e4a1a6", + "collateralIndex": 1, + "collateralAddress": "XiNv286pqrBw6BnJe7xW2q5rpRozuhiUVo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.197.157:9999", + "registeredHeight": 1053651, + "lastPaidHeight": 1735328, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1524441, + "PoSeBanHeight": 1738644, + "revocationReason": 0, + "ownerAddress": "Xj1zWEsvJ9pobD1ivQ8RDZZu1Rwo6Sc3Un", + "votingAddress": "Xj1zWEsvJ9pobD1ivQ8RDZZu1Rwo6Sc3Un", + "payoutAddress": "XoEPH6r6LVAKKMFFXdEbTD6GnqczvNTyTG", + "pubKeyOperator": "8c57fa3fe905512259e1ac2af0121fe554966f95c3cd22e1c79b1f3dacf81c722873885ec7f2589cb90142c5bab21bf1" + } + }, + { + "type": "Regular", + "proTxHash": "e49564c34cf44839f104ed6f3b52a04d070c99e7256c405039d194d0dfd0b0c2", + "collateralHash": "c9c959f76f982a4c0b19ec64b0b7c25b6c4fad497e26ab06518f9b7907c08d57", + "collateralIndex": 1, + "collateralAddress": "XmmdDv7B1WcjbFCzfe9kJPoy3MeSXLF7ie", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.205.92:9999", + "registeredHeight": 1054016, + "lastPaidHeight": 1253949, + "consecutivePayments": 0, + "PoSePenalty": 4690, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1254299, + "revocationReason": 0, + "ownerAddress": "XbgAHmNEpQK4NHZncX4qVrmq4qZS6cWzCs", + "votingAddress": "XbgAHmNEpQK4NHZncX4qVrmq4qZS6cWzCs", + "payoutAddress": "Xyaut9hWBJHb9oRWiAuNH2rAhQW9cZN9fC", + "pubKeyOperator": "10b3e2935ae876ea27a3f40efc90097dcc06dd7b50b62609c068aef28b97e6bd94f59ba4ea418690547ed1e6261143f9" + } + }, + { + "type": "Regular", + "proTxHash": "a780b4d2e293ae7064d2c8e69714d105327cf2bc8dde7a7d2af1e185a3e8e8ef", + "collateralHash": "30b838347cc0fad2f3bb8a6cfce159068922da42205bd8e8aeaa930625209e4f", + "collateralIndex": 1, + "collateralAddress": "XuduAKcF9roHBCwui4NeRXHiMAhoWuiZFC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.3:9999", + "registeredHeight": 1054829, + "lastPaidHeight": 2126703, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiwYHkUPeERQ5GK3MWNErSRKr7cRFvLxak", + "votingAddress": "XiwYHkUPeERQ5GK3MWNErSRKr7cRFvLxak", + "payoutAddress": "XyGRHUua9tDyhqituwkPBmDaboXJum3t74", + "pubKeyOperator": "07061624325afae759b764c97f2a37b657c4e9cc0c372beaeb6ef76afa6fd1101eb9264c3607b39329bcb43a86172134" + } + }, + { + "type": "Regular", + "proTxHash": "f96976a490f3dfbfd856e6d8d19b26654764aa32de419b96e71020c7f5e14629", + "collateralHash": "8317c39cfef16e7e69e9a564149d5054502c2f5fcabd389ce95f5be0060eb742", + "collateralIndex": 1, + "collateralAddress": "XyviiMeXdoRFadbZHhBvuWXzjAuAeSXchd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "39.98.201.249:9999", + "registeredHeight": 1055612, + "lastPaidHeight": 1079663, + "consecutivePayments": 0, + "PoSePenalty": 4942, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1082901, + "revocationReason": 0, + "ownerAddress": "XjWvFaLZ3k2mXP5eq68bnXiM75C7RohPSw", + "votingAddress": "XrrVMJtthHWL2GMYhM8Gqz7FyT4kjb2CqF", + "payoutAddress": "XyviiMeXdoRFadbZHhBvuWXzjAuAeSXchd", + "pubKeyOperator": "0be2b60d45505fe64fad7cb9991394d3ea29a7383e8952e40343db0cc6873735f22b21eb0e210d89bd981a82d9a07742" + } + }, + { + "type": "Regular", + "proTxHash": "d0340f069a12191dbd63e3a2d42f5e87f6ca30ad45208f6de35d666c57c63903", + "collateralHash": "e4c4b6911e7b67ab9c7c18317a8a6d58a42a1408eab165fb888352a550f87017", + "collateralIndex": 1, + "collateralAddress": "Xdc9JEAhLHKz5ved6isG8EumT2suzwtWxc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.145.119.15:9999", + "registeredHeight": 1055617, + "lastPaidHeight": 1732991, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1688245, + "PoSeBanHeight": 1734371, + "revocationReason": 0, + "ownerAddress": "Xth693FHZUvQXoCjuaSciyb9XB4iRYxAKC", + "votingAddress": "Xth693FHZUvQXoCjuaSciyb9XB4iRYxAKC", + "payoutAddress": "XgJxhctvM94vtwxqEM88KFiantmvxaJVXs", + "pubKeyOperator": "0341c7a10085db0e1c48821aee03cd96aa2b3fbc3fa05a62cb533e30c7d51147426811d6b988d19922546427048f9eb5" + } + }, + { + "type": "Regular", + "proTxHash": "984254c773d08aec4e046e47346f317722942fe08413d54aa8caef00ffdb5663", + "collateralHash": "82adeab6df79ed74dcd339262d64b1e41e6f7f464646c22bdfcc09f4895dbf52", + "collateralIndex": 1, + "collateralAddress": "XetKLY1uQaQ2ohodFvmxrxJdtAzs63suok", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.145.121.90:9999", + "registeredHeight": 1055617, + "lastPaidHeight": 1732993, + "consecutivePayments": 0, + "PoSePenalty": 4468, + "PoSeRevivedHeight": 1688245, + "PoSeBanHeight": 1736148, + "revocationReason": 0, + "ownerAddress": "XuNM822uTKGgG7yD6Z2nZZ6GkpxFctVjTk", + "votingAddress": "XuNM822uTKGgG7yD6Z2nZZ6GkpxFctVjTk", + "payoutAddress": "Xq4owDP8ifcKtyH5BLSC9faMUYpuSMNdnU", + "pubKeyOperator": "0390dc81232410e0cc707e966e42e8fe48c46e8218cf65867ed64594129398b84e738fb6fbe5398a80dcbd69bc57aa26" + } + }, + { + "type": "Regular", + "proTxHash": "b4c48bc72dcec182cf478f4e34d827ebd4e46ad6e551f6d3a13b44234b478167", + "collateralHash": "4bea55a6e4593e1af6356d5e7e88b7cc04f0748a88078189448f6ebbecf84ff9", + "collateralIndex": 1, + "collateralAddress": "XcHzBarwgCRjrb4f5MyUdHRTz24NwqNw45", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.114:9999", + "registeredHeight": 1055880, + "lastPaidHeight": 2125867, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820905, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcvANjhcCFcSArw46k9cNohAcDy29tHzZf", + "votingAddress": "XcvANjhcCFcSArw46k9cNohAcDy29tHzZf", + "payoutAddress": "XcHzBarwgCRjrb4f5MyUdHRTz24NwqNw45", + "pubKeyOperator": "93bfb50497fcf03e8e1c308e68a0e3315850c410ba0e2ce3e3afbd7b16503e1cc9842e20e82774cea017c01aad21f526" + } + }, + { + "type": "Regular", + "proTxHash": "1a6653fc218b4d84aa37cec26324ad19677257fd899bee35b237cd22fa7a523d", + "collateralHash": "4cf8f17fef74c44cb4ba4730043713ccc461ef77658e86253d3ab91dedb8171f", + "collateralIndex": 1, + "collateralAddress": "Xof2PwQVwDrRUhiMBFPwNv7GHyebCGNvbD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.11:9999", + "registeredHeight": 1055880, + "lastPaidHeight": 2126187, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1353564, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoayXL7A3GWaQbAmymBjwgxoiY2YdcDFhH", + "votingAddress": "XoayXL7A3GWaQbAmymBjwgxoiY2YdcDFhH", + "payoutAddress": "Xof2PwQVwDrRUhiMBFPwNv7GHyebCGNvbD", + "pubKeyOperator": "165bbde7aecebab8daa93458a43d8c9335e0991e29449b6121b43ff842fc3575e9cc7227950e451ec57cce8d5379090f" + } + }, + { + "type": "Regular", + "proTxHash": "9432ca44bc86747141413c9391fe29c2ea47c3eacab21ace9dd33da167c34c19", + "collateralHash": "b56134fdbd3fc8f77c26ad70ec3cec11dfec3954c4d0cb1de896524f9e741893", + "collateralIndex": 1, + "collateralAddress": "XrVNyr3Zpw27bJNF3SonregPH6onFpVfAH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.225.121:9999", + "registeredHeight": 1055908, + "lastPaidHeight": 2127413, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtBHH5o96YKGLKJiqEpmxdFmcxGwJaTjHN", + "votingAddress": "XtBHH5o96YKGLKJiqEpmxdFmcxGwJaTjHN", + "payoutAddress": "XmPayW3w9vnuZ4baHZgP8amKv9TAPUqAc7", + "pubKeyOperator": "8534b5341c28f91f160b67c7f7deb077fe8303c4abb426f44428df5a9b9add8ba3fa29ba0d1a004976df3808b7304fc7" + } + }, + { + "type": "Regular", + "proTxHash": "a500473301d562096a40120b3f56a50fc21e19b61312641ba7d3ac4afea8883a", + "collateralHash": "67058c1d8413739553f3291cf456184ce130d2c2a9d44814e56e0417b61fa985", + "collateralIndex": 1, + "collateralAddress": "Xw3eYYjjUJyzD1do6Ha84jYpEXCieVtFrv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "69.129.80.108:9999", + "registeredHeight": 1057423, + "lastPaidHeight": 1114804, + "consecutivePayments": 0, + "PoSePenalty": 5013, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1115733, + "revocationReason": 0, + "ownerAddress": "XbkSr3SQxR5ozkj59DDDoHKo1yjjUNRgAw", + "votingAddress": "XcFkPzJyRb1TkW6h4FbjBtC4daVjyAkxQg", + "payoutAddress": "Xw3eYYjjUJyzD1do6Ha84jYpEXCieVtFrv", + "pubKeyOperator": "8a34b76006315608331e5c163acba719f916776a79a097d04766ad53f0e90792745c4032463102ed619b9eb5e3bf8d98" + } + }, + { + "type": "Regular", + "proTxHash": "6d34f608a6cc6b4b41819b859eaa127fc416b88dac1f0144e7aeac98ea8be019", + "collateralHash": "dbfb139af611f6f547c35770d66f19f1ca6bd57ad9e2ad2f2e264331bcb52469", + "collateralIndex": 1, + "collateralAddress": "XayiL726N1iW3TnaB9xTKSKXbMLKnVAP13", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.71.157:9999", + "registeredHeight": 1059001, + "lastPaidHeight": 1719196, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": 1217172, + "PoSeBanHeight": 1722396, + "revocationReason": 0, + "ownerAddress": "XmtwhAvjWJtDW8QN5RJYBUC9K835FhP4kH", + "votingAddress": "XuoxJ3aFze7wMKN8wTUtXZ6ccjdYNhDLnT", + "payoutAddress": "XkZ6P935ocnYBbCL2r9RT2urR5v9Fzk56X", + "pubKeyOperator": "91181aa31939e9a0017e09d6a9774b69f61cbafabfb0bb0bb0d039f91d6132213d70e94e411c13eb1d35eae206bce33e" + } + }, + { + "type": "Regular", + "proTxHash": "72748112269647ce039fe5259a64d877605e205f050b99e28345874a5f168df2", + "collateralHash": "30d0acc1d777398585b50da2feef25ea82698821ad64916be4d22470c6e7c8d2", + "collateralIndex": 0, + "collateralAddress": "XoD4WhKRQP5q1CmvHWgG3nUJ8jw8HQStQP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.38.246:9999", + "registeredHeight": 1059078, + "lastPaidHeight": 1983627, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1947051, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "Xj1kLTpshPVKXd9Zd1RrFo7yj2ApPHwvUo", + "votingAddress": "Xj1kLTpshPVKXd9Zd1RrFo7yj2ApPHwvUo", + "payoutAddress": "XoD4WhKRQP5q1CmvHWgG3nUJ8jw8HQStQP", + "pubKeyOperator": "1651dbc60c9b1a39e45d946624233898d0a458f9f18d322846e522c0066c92b03d7b5c8d73f8e21930e41a4b011e88ac" + } + }, + { + "type": "Regular", + "proTxHash": "8779d3379488c924edcbd7be04bfe6e57b3c7135747135b4644db3983364b922", + "collateralHash": "efb32c4d5b25f489942fe8204983e18eccef46871fb141e26b574e6c104f41e3", + "collateralIndex": 0, + "collateralAddress": "XdcSL6gLcyWvTUgE5WKifVp8iK8xo3tdUw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.131.193.7:9999", + "registeredHeight": 1059170, + "lastPaidHeight": 1984536, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128895, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr9btD1mpiZXMYMWqWiSCvqatP47qxYaAR", + "votingAddress": "Xr9btD1mpiZXMYMWqWiSCvqatP47qxYaAR", + "payoutAddress": "XdcSL6gLcyWvTUgE5WKifVp8iK8xo3tdUw", + "pubKeyOperator": "8869aa575ce3388fb20974530695b2bc83421386ccf36946af0d3e5ddf16cac886c1c60452fe74943760620f03265dba" + } + }, + { + "type": "Regular", + "proTxHash": "fae2b409766af857225489eb97e179ba1faddab7bd60474771f1b9cda274ece2", + "collateralHash": "b53ff2b8e7c67ebd43f7277e9a2b03c8898e0b8f647d9c103dfc799bd674ce08", + "collateralIndex": 1, + "collateralAddress": "XkksMK6UgqZCxdboLgLg5Y86wzzMhVUt4J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.143.107:9999", + "registeredHeight": 1059641, + "lastPaidHeight": 2126765, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgs14Yt9QUwNBaydbdBhpRDtBDg1qiakS9", + "votingAddress": "Xgs14Yt9QUwNBaydbdBhpRDtBDg1qiakS9", + "payoutAddress": "XkksMK6UgqZCxdboLgLg5Y86wzzMhVUt4J", + "pubKeyOperator": "15929f046b419e3392ad5af212173010b35e32e588a3bbd1dd68496eba77817b6cafdf55d41792cfef3040abae42b50d" + } + }, + { + "type": "Regular", + "proTxHash": "89c51cbc0147431ddf9d9ba12cdc7f3a9ede89f5129bbf2c391ce9ad7471efae", + "collateralHash": "f3ef5fb785c3361cc7646eb446b9e96dac43dfcb46c079db0b1ab653288b1329", + "collateralIndex": 0, + "collateralAddress": "Xw1hWg96FUWjYQMvwEjCCWxyyA3Rkuhwdf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.237.173:9999", + "registeredHeight": 1060184, + "lastPaidHeight": 2128100, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1879835, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkwjkiRyDxX8QQXRyNKJPCPFcDPtAyLamA", + "votingAddress": "XqnjAdVFWLCR6oD9sV2mJuqpYZyQY4ZFZd", + "payoutAddress": "XrjAmosceW3ZvkQMmyQwgQmjmHidvPPvaz", + "pubKeyOperator": "8fd15a143dcf5c58545e81388b94605dd408da1b6431c6e54e229c6b259112ebf5d99fa6376d96f9f125456b3a6e6722" + } + }, + { + "type": "Regular", + "proTxHash": "b0ccf1a400efbb17103e5f2c1db7195844716454ae5db549ea2ddaa3c25d8d36", + "collateralHash": "cf097927875a56d6bf2edb13721141554891f0ddd26973aa370b530be0b626ed", + "collateralIndex": 1, + "collateralAddress": "XrSJtkGq3NsyW1h183hkC9XsHKCUr5Kby3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.28:9999", + "registeredHeight": 1060722, + "lastPaidHeight": 2128105, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1492075, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeyudYNL7jzebvv74h1pgZwt19eqRxftjZ", + "votingAddress": "XvzqguZv4R4GUtHR4m4J7JSRFBJBG37vy6", + "payoutAddress": "XkskabmsReUyXpGJY8ThX3jR6csEA9Y3x1", + "pubKeyOperator": "09e10743a71fa17c1607bd84474d4ce2bed9a949fdec5f0e2cc99af82e12519282c969ec102328b04178308c5a435e68" + } + }, + { + "type": "Regular", + "proTxHash": "dfeee522a4a3ef887470969a617b60fc2ba31fd9dd46fc5858fd3f5b408a86ac", + "collateralHash": "84b1e29b8f1d2d98469f91f3ee1bb674e70850884d5a97e0d25cc8588cacfbbb", + "collateralIndex": 1, + "collateralAddress": "XfbtazpHBSYHcrEN5QepBhpD8pgBypa7rj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.37:9999", + "registeredHeight": 1061191, + "lastPaidHeight": 2127570, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830552, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfvZfwbKmn4WvWGuXE2mVGj5d6GbCa5Ddw", + "votingAddress": "Xd1NuuMz6ZFLUvnw1eZA5UJ9LkpHLsMZC2", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "03bee7131abba3abd8af6ff80002bda74732ef3b1bedd3459f8fb8f2ece4fa78a5553f089b7ced1db231963066d3d387" + } + }, + { + "type": "Regular", + "proTxHash": "e1da0c844541976b010d42eeb6cdb16b47112dc5458abd15e46d1d03e05d563d", + "collateralHash": "45d92aa07b1cb174ab53fb30b910a370b804ee8d17359081d97be24547c2a329", + "collateralIndex": 1, + "collateralAddress": "XvhTYEE1h1iQtYXLqL658qtZDqtmwekDc2", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.76.252.195:9999", + "registeredHeight": 1061534, + "lastPaidHeight": 1492647, + "consecutivePayments": 0, + "PoSePenalty": 4660, + "PoSeRevivedHeight": 1357352, + "PoSeBanHeight": 1494875, + "revocationReason": 0, + "ownerAddress": "XcpWWjV4k4ab8w3nkxT6UaPdCH6qC6M2FQ", + "votingAddress": "XcpWWjV4k4ab8w3nkxT6UaPdCH6qC6M2FQ", + "payoutAddress": "XvhTYEE1h1iQtYXLqL658qtZDqtmwekDc2", + "pubKeyOperator": "856c272f34f4017db0cc20f3bae6cedee8446fb4bf2447c9a77a3cf487494ffef7b42454de18fbc703d9a1f26d5fae32", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "3257ccd80dcc8e22a977c53a51e519663cead9e867774411709920638b067c65", + "collateralHash": "246f92ed8cccad8d5621045a22a38b96ef8186a053179b312c79632a5213c82c", + "collateralIndex": 0, + "collateralAddress": "XhikzEnkNrViF5e23LnfVH1zYz98oVGxsF", + "operatorReward": 2, + "state": { + "version": 1, + "service": "209.250.232.44:9999", + "registeredHeight": 1061535, + "lastPaidHeight": 1410118, + "consecutivePayments": 0, + "PoSePenalty": 5024, + "PoSeRevivedHeight": 1357369, + "PoSeBanHeight": 1412661, + "revocationReason": 0, + "ownerAddress": "XbRfmz6VBp4gijBoaUPJmV5METKKHevdiM", + "votingAddress": "XbRfmz6VBp4gijBoaUPJmV5METKKHevdiM", + "payoutAddress": "XhikzEnkNrViF5e23LnfVH1zYz98oVGxsF", + "pubKeyOperator": "04b9e636cab6d25b43889f80d9b4c81699574b3670ea336be7642497fd3eba1e297ee05d2b0083fb594586a1cdff515f", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "09d6600097bb80f9ea557919069facc3e2e45fd83c13ac16ab887461e92d2ee7", + "collateralHash": "53704b276ee40f823cfbb56bab4523c52ebbd6707ba85c99c53db08dcc712542", + "collateralIndex": 0, + "collateralAddress": "XgBM67xH89e2dSBpsSibGZrnWCBSzNP4Tr", + "operatorReward": 2, + "state": { + "version": 1, + "service": "66.42.69.33:9999", + "registeredHeight": 1061540, + "lastPaidHeight": 1553997, + "consecutivePayments": 0, + "PoSePenalty": 4817, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1558427, + "revocationReason": 0, + "ownerAddress": "Xwt23yd5JpLDiHVHjE6bXhXumW4J8PQCbB", + "votingAddress": "Xwt23yd5JpLDiHVHjE6bXhXumW4J8PQCbB", + "payoutAddress": "XgBM67xH89e2dSBpsSibGZrnWCBSzNP4Tr", + "pubKeyOperator": "987cecf74e2205d632e5ef28afe874888cad11e7b0c8b58ff7b9f865a14fc41dfb48a11b2b5ca92a793aa4796fc5f3ad", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "c67b4769934f5606170bb2e06999d86cd06dade9dfe173eeb08580c27a2a2adc", + "collateralHash": "4fec20e577a1e5afaf8075d0503e1078c5355b52af9a1b4743512ba3477a1e5c", + "collateralIndex": 0, + "collateralAddress": "XmMCdTQA8Rk5SqFuvBUwzXwFAWM1jDJzvh", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.76.98.169:9999", + "registeredHeight": 1061545, + "lastPaidHeight": 1492650, + "consecutivePayments": 0, + "PoSePenalty": 4663, + "PoSeRevivedHeight": 1357352, + "PoSeBanHeight": 1495499, + "revocationReason": 0, + "ownerAddress": "XhiDpsTGrrHnTarfL7dhqLXH22CDZHQe4K", + "votingAddress": "XhiDpsTGrrHnTarfL7dhqLXH22CDZHQe4K", + "payoutAddress": "XmMCdTQA8Rk5SqFuvBUwzXwFAWM1jDJzvh", + "pubKeyOperator": "190728b902d62d361f2f274baa3a1a11426a6499df61aad6abf33b4dc5c241e8aeacbf75c9a2af8891840c40a2fb5796", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "e421ce6e1cffc63ada55ba3bb95288ae0583ad63053669dbe8ecd6aa77d41bd8", + "collateralHash": "80690cca481ee9abd2d8aae243d7ab81d47c22940ac35852e263949896923479", + "collateralIndex": 1, + "collateralAddress": "XcjucJAeEXoHY4yRBEiGa48tWENwcBqDUE", + "operatorReward": 2, + "state": { + "version": 1, + "service": "199.247.3.106:9999", + "registeredHeight": 1061550, + "lastPaidHeight": 1488311, + "consecutivePayments": 0, + "PoSePenalty": 4653, + "PoSeRevivedHeight": 1357366, + "PoSeBanHeight": 1490028, + "revocationReason": 0, + "ownerAddress": "Xi5bHvxYFZsPxEDFVMS4GHm7AmcGEZPDrb", + "votingAddress": "Xi5bHvxYFZsPxEDFVMS4GHm7AmcGEZPDrb", + "payoutAddress": "XcjucJAeEXoHY4yRBEiGa48tWENwcBqDUE", + "pubKeyOperator": "83e6e1774ce004b57fa3e76bbcae76768a77456f73249eb4eca4f9ace3abd5c7432a399772815624bc00c303ebd76a61", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "c299c434dd3d8fec352d77d0f1066e5fdd348a03a5c72c268fdd94cb72ba9049", + "collateralHash": "dc0a518fadd1ecbf6e54dff7191d9c3cc0f784e26f6e8fb6fba34a1d6d652a96", + "collateralIndex": 0, + "collateralAddress": "XhMhM8pSEiJQmRJ27xaHFoQR6uV5yn2dqg", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.77.185.62:9999", + "registeredHeight": 1061552, + "lastPaidHeight": 1537773, + "consecutivePayments": 0, + "PoSePenalty": 4866, + "PoSeRevivedHeight": 1212812, + "PoSeBanHeight": 1541243, + "revocationReason": 0, + "ownerAddress": "XisQwzHVh5pd6oQSehdMCYG464XSzJ3Jvc", + "votingAddress": "XisQwzHVh5pd6oQSehdMCYG464XSzJ3Jvc", + "payoutAddress": "XhMhM8pSEiJQmRJ27xaHFoQR6uV5yn2dqg", + "pubKeyOperator": "10d7c7ec4784397f375b856d12d19de6d0295fd251f29657531b905998bf9b796b09ee9e78120e107dabc8f16af25e53", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "b628b2b5ef2cf736b615d7a420f5cad8ca5be672aaacf624587f1231d65b5091", + "collateralHash": "3fd79e65f5ecf76c244076d5b83ee2a8d1a2ed25cf7fb5f26a1a428a185456a8", + "collateralIndex": 0, + "collateralAddress": "XeznereW8maJ68HD1dAGzt9ex9cdiQTEtN", + "operatorReward": 2, + "state": { + "version": 1, + "service": "209.250.224.88:9999", + "registeredHeight": 1061553, + "lastPaidHeight": 1402144, + "consecutivePayments": 0, + "PoSePenalty": 5032, + "PoSeRevivedHeight": 1212812, + "PoSeBanHeight": 1406531, + "revocationReason": 0, + "ownerAddress": "Xw8cACGknELbsXL97oJhPA4Nk4fm4MaXMw", + "votingAddress": "Xw8cACGknELbsXL97oJhPA4Nk4fm4MaXMw", + "payoutAddress": "XeznereW8maJ68HD1dAGzt9ex9cdiQTEtN", + "pubKeyOperator": "91aa8d82cec81be207aacc128947994cd3e625062b4fba5e8ec560683ab4436856e825e5a2021f9d6831489051b09649", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "a344b642aa3830ec52be3894681eb42163b37a617497649fce9ba03026ccfc36", + "collateralHash": "02dca6ae4fef9563912567520d21bff65fad09183cc78f21de1fd140dc682de2", + "collateralIndex": 1, + "collateralAddress": "XgYDKTQKPKMvYdJzVuXeRuqWCDCx7JBgd3", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.76.237.119:9999", + "registeredHeight": 1061554, + "lastPaidHeight": 1492662, + "consecutivePayments": 0, + "PoSePenalty": 4664, + "PoSeRevivedHeight": 1357366, + "PoSeBanHeight": 1495067, + "revocationReason": 0, + "ownerAddress": "XhNeSeiwF9kDLpswzqhRcWydaBbk4ExJ9n", + "votingAddress": "XhNeSeiwF9kDLpswzqhRcWydaBbk4ExJ9n", + "payoutAddress": "XgYDKTQKPKMvYdJzVuXeRuqWCDCx7JBgd3", + "pubKeyOperator": "8bd2e7d42a1db3aea9dae339352051d9f174d5e5b6863eb1b2c3e32153ce09f1b12ba4136d733d1ff2410558cb1d330d", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "d083dc3c0879388d718c97618840ce93f9729afdb79ad3cf6b79ddd35f015db4", + "collateralHash": "8d09ba0e33501a40b3481a59525b51797ac988f6056837d1aee32157c794fce2", + "collateralIndex": 0, + "collateralAddress": "XiyUkdqxDC1nmW2cohGbPBpeHWCwo8Bb5u", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.32.127.103:9999", + "registeredHeight": 1061557, + "lastPaidHeight": 1488314, + "consecutivePayments": 0, + "PoSePenalty": 4654, + "PoSeRevivedHeight": 1357367, + "PoSeBanHeight": 1490387, + "revocationReason": 0, + "ownerAddress": "Xt4rCnnF5AxrArCD68PPQoN4t2HyzUfTFB", + "votingAddress": "Xt4rCnnF5AxrArCD68PPQoN4t2HyzUfTFB", + "payoutAddress": "XiyUkdqxDC1nmW2cohGbPBpeHWCwo8Bb5u", + "pubKeyOperator": "15ae4e4f9205dd27e6f162356df01d50117c0b53af43495af739251d532272eeb9ad6dd58ed235bdafcc823d5565a948", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "882e12910531d9a548165661da18bfecb78fcde626515f1a6e8acb864faa2fed", + "collateralHash": "1045f1e232b71259c6a61b447eb9e3cdbec78c26fee943135561b502cff70ce3", + "collateralIndex": 1, + "collateralAddress": "XnmKhCDutkAyPvRPvNLQChpgXiUnP9XAgU", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.76.231.132:9999", + "registeredHeight": 1061558, + "lastPaidHeight": 1491938, + "consecutivePayments": 0, + "PoSePenalty": 4644, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1491972, + "revocationReason": 0, + "ownerAddress": "XcMueUPAvrUTVRreEgMS37Phvta1jCEFh6", + "votingAddress": "XcMueUPAvrUTVRreEgMS37Phvta1jCEFh6", + "payoutAddress": "XnmKhCDutkAyPvRPvNLQChpgXiUnP9XAgU", + "pubKeyOperator": "80ce1e869c9eb7a3e42b056b50e515a977baab96e6ad21ce7f75157ffd284483b30ed6ae6f2f3034d6eccd417d6365dd", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "73243bbf50caadf6c531f64b7689949dc2a76d6012931481e482be3d985804ed", + "collateralHash": "ad225c9e0ea654872e64527faa32bf757f3861f3e44fda96a75093e861af4fe6", + "collateralIndex": 0, + "collateralAddress": "XoeAF4HXy9iGv3JWBeGGEaUN1E1yRnC3hD", + "operatorReward": 2, + "state": { + "version": 1, + "service": "209.250.242.57:9999", + "registeredHeight": 1061558, + "lastPaidHeight": 1540589, + "consecutivePayments": 0, + "PoSePenalty": 4866, + "PoSeRevivedHeight": 1361792, + "PoSeBanHeight": 1541109, + "revocationReason": 0, + "ownerAddress": "XhV8sxs8dehje8BuMcecYMdPayF1D2ZE7E", + "votingAddress": "XhV8sxs8dehje8BuMcecYMdPayF1D2ZE7E", + "payoutAddress": "XoeAF4HXy9iGv3JWBeGGEaUN1E1yRnC3hD", + "pubKeyOperator": "090475e3bc3464514e6df3ea579fea5b69c825c4b43af35efcea1e81b8ede2695a487b0186300ec9648f06eefabafcbb", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "80443995c2dc56bd5627c47a072232567f038276032968e7f79aa9a5c3bf8474", + "collateralHash": "b8bcd9d21db68dd9ca7ae4c4d3e7e2b21ab139d3e461c4f9a443edeb7fc4a4f3", + "collateralIndex": 1, + "collateralAddress": "XpGuWHoTVE9gxVaLHQ6uKHP3afNCKGutHo", + "operatorReward": 2, + "state": { + "version": 1, + "service": "8.3.29.190:9999", + "registeredHeight": 1061560, + "lastPaidHeight": 1428977, + "consecutivePayments": 0, + "PoSePenalty": 4857, + "PoSeRevivedHeight": 1357367, + "PoSeBanHeight": 1433459, + "revocationReason": 0, + "ownerAddress": "XcZ1xB9hD3g6k62QEp7YrgGVCFyiTRBQYy", + "votingAddress": "XcZ1xB9hD3g6k62QEp7YrgGVCFyiTRBQYy", + "payoutAddress": "XpGuWHoTVE9gxVaLHQ6uKHP3afNCKGutHo", + "pubKeyOperator": "96666cf3386555bd9fd6001f09b4ff6d40e5e4d0388e0bda8af6c264901993d3ffb8580fc366f4729d15fbb04df7b10e", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "18353af453ff72627fb7c3e9d6e89df0152b30f625fb007e47cb220475e55d3e", + "collateralHash": "0b62300a14a43a8362ae1b0a02ca47e111c164c5e859c65b9378abddc2af40f6", + "collateralIndex": 1, + "collateralAddress": "Xg2Ns6cWkCBx25JAp6JmFARSTo5R1cPywp", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.77.160.122:9999", + "registeredHeight": 1061563, + "lastPaidHeight": 1529720, + "consecutivePayments": 0, + "PoSePenalty": 4873, + "PoSeRevivedHeight": 1250718, + "PoSeBanHeight": 1530131, + "revocationReason": 0, + "ownerAddress": "XwZ7oBDHbNysW8tKNbNwGMfRzsuMMjDukf", + "votingAddress": "XwZ7oBDHbNysW8tKNbNwGMfRzsuMMjDukf", + "payoutAddress": "Xg2Ns6cWkCBx25JAp6JmFARSTo5R1cPywp", + "pubKeyOperator": "01c1a1887ff5366dd7615786db7047d610e1c62c0f50b3ffcbbbc2e165a9aae2cc71fb81d4d7109e490625cd6fec71a2", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "5117e2a842e9b43792dcc2b16c995a1d8a0dd91ff89759f65770e579938b88f3", + "collateralHash": "bfec1b474f83e459ce3d9bc6c5b46a70bb1cb1b0f7dff65221e6d2925d78e7f6", + "collateralIndex": 0, + "collateralAddress": "XsQMcAXrDZkTggoaVLas7BwaBNqFw1ev4Z", + "operatorReward": 2, + "state": { + "version": 1, + "service": "45.77.127.242:9999", + "registeredHeight": 1061565, + "lastPaidHeight": 1488555, + "consecutivePayments": 0, + "PoSePenalty": 4655, + "PoSeRevivedHeight": 1357612, + "PoSeBanHeight": 1489523, + "revocationReason": 0, + "ownerAddress": "Xi874kVcfeDciHSSaSkgLszoZAo4N5oNHM", + "votingAddress": "Xi874kVcfeDciHSSaSkgLszoZAo4N5oNHM", + "payoutAddress": "XsQMcAXrDZkTggoaVLas7BwaBNqFw1ev4Z", + "pubKeyOperator": "16fb877c4362f4b04965e8f6938f561544b3d2798567767fb23f12edf26c25cc94914aa25c9f9a86b6231acc33e06302", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "0cb7c3b7eb90ae9469e3746949069d37615ab539d48ca1580ddca8f6bb127862", + "collateralHash": "c8dffadf477782d0c37ae9b51536c948c03cecd28b36ecc3d4ec460d5c4dd68b", + "collateralIndex": 1, + "collateralAddress": "XtFLkmq9QVdDsVzdHmDxMsktMpJSmgMaAk", + "operatorReward": 2, + "state": { + "version": 1, + "service": "66.42.94.196:9999", + "registeredHeight": 1061650, + "lastPaidHeight": 1554810, + "consecutivePayments": 0, + "PoSePenalty": 4827, + "PoSeRevivedHeight": 1357370, + "PoSeBanHeight": 1555955, + "revocationReason": 0, + "ownerAddress": "XxUUmU6mYCz1A6jbjGqtjA1aF1CBJMyR5D", + "votingAddress": "XxUUmU6mYCz1A6jbjGqtjA1aF1CBJMyR5D", + "payoutAddress": "Xg1FtHohdQdk1Fn72Rz3SuyqcAzyT9cUN5", + "pubKeyOperator": "9034dd53f7353a528e2b7c1a59122309f384222543cafaf89041fe92885a770564f5e414543f1b324b0ae0389b8a3b95", + "operatorPayoutAddress": "XsPHCwjCAx3tyPaPEiaZv4o6pjQ2Pih6dn" + } + }, + { + "type": "Regular", + "proTxHash": "530f3fdcd058307a0995921c1da33ef272c9ef0a4d04d18f6283ecc6a14d0696", + "collateralHash": "84794dfad8bc29f8475652fbb433ee5cd249bbb6ce47eb78d8f072c9638e01dc", + "collateralIndex": 1, + "collateralAddress": "Xp1pJa5vDnGWSsmKSFkMu19EmvT4CCsHPw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.194:9999", + "registeredHeight": 1061842, + "lastPaidHeight": 2128469, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdjCVcs4Bk5TWpkmLnAMM1uX4K6eWs3UEe", + "votingAddress": "XdjCVcs4Bk5TWpkmLnAMM1uX4K6eWs3UEe", + "payoutAddress": "Xp1pJa5vDnGWSsmKSFkMu19EmvT4CCsHPw", + "pubKeyOperator": "18dfc021b2606889e42aa018082f8f79fbe0e71b69ac16e6af64b84ae05547586b91c0d7296ed9a82b64af13873df4c7" + } + }, + { + "type": "Regular", + "proTxHash": "f7767a8c2efaa4ae52108abd811f05f562801edc6738d92a37cd4bdb70d39f16", + "collateralHash": "e294af4fb69ab439b228d66c6a9e36eece9105bd6ef5a2ee28adab4e96168fcf", + "collateralIndex": 0, + "collateralAddress": "XkvT8s7jJH9pygFwvsEKxerJycvFBYcB16", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.156.250.69:9999", + "registeredHeight": 1063078, + "lastPaidHeight": 1972083, + "consecutivePayments": 0, + "PoSePenalty": 4076, + "PoSeRevivedHeight": 1712305, + "PoSeBanHeight": 1973706, + "revocationReason": 0, + "ownerAddress": "Xok2P2gS3t1bDoxjPn3YSygg8fwXGv2GWz", + "votingAddress": "XjA6z1mzYUVq4EWgy94e5RHX5UC66Gz3Md", + "payoutAddress": "XkvT8s7jJH9pygFwvsEKxerJycvFBYcB16", + "pubKeyOperator": "058c5759c9b90611b496c9faa71a528267226781ab9c27b0ec1ec0996da72cad745dff8f80dbce636461eb44cfa31706" + } + }, + { + "type": "Regular", + "proTxHash": "04b8f3d920019be17e0c22e731e3d0e07c7d3df77f21506444f8ca68991a9948", + "collateralHash": "a9312255672e6fa7ad79bfb2cbaccb77568a6512520325d7a99fd7c5dd9f5694", + "collateralIndex": 1, + "collateralAddress": "XxLBaC7KrEXmxKwTgnYKP5DMpTC7yFGh1r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.105:9999", + "registeredHeight": 1063488, + "lastPaidHeight": 2126206, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnvnc3vUvGvSWqCVZSiShXpizLV38nVvmo", + "votingAddress": "Xnvnc3vUvGvSWqCVZSiShXpizLV38nVvmo", + "payoutAddress": "XxLBaC7KrEXmxKwTgnYKP5DMpTC7yFGh1r", + "pubKeyOperator": "11d3f729e18d03589e5795565318007ec11675fbcd970ff72c6d8534f0a9e582f00d6254d897e5563e90286a5ab2197f" + } + }, + { + "type": "Regular", + "proTxHash": "56e201ff1a040d01547955a1bbda2979e46eea1b71888579e8af6a2bc82e7686", + "collateralHash": "c7b4fe391f6c5497a3dbea15ec093eedb6083cb89e2ef98b5971a8cfd0861a01", + "collateralIndex": 1, + "collateralAddress": "XhS1cjMT1KkY7E4Qx3dm91zkofHHbg15M4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.231:9999", + "registeredHeight": 1064523, + "lastPaidHeight": 2126849, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfvNE6Rr5rwVS84yJPKWWjgDfUXRWYZwtM", + "votingAddress": "XfvNE6Rr5rwVS84yJPKWWjgDfUXRWYZwtM", + "payoutAddress": "XhS1cjMT1KkY7E4Qx3dm91zkofHHbg15M4", + "pubKeyOperator": "17f381a36eef472d9baffffaae68977d127dca2d41a604bd86bf7e53028eae808b759a229df776da7143f06e41c28222" + } + }, + { + "type": "Regular", + "proTxHash": "dcef150ed9245f8aef2aa2141ad4cc4958b0b5485d2512aca252aa11cf32ece3", + "collateralHash": "c08ec5e46d5c760da5b8d8782303b43bf7d28bd7bef2ad3a6f7c064121877d19", + "collateralIndex": 0, + "collateralAddress": "Xe5S78mumG8Qtp7a6s9C8g8HWTviE5RMNC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.140:9999", + "registeredHeight": 1065200, + "lastPaidHeight": 2127241, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1724730, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmic16QN3h9bkeTeUgN4LfLmRw8Q7iZoz3", + "votingAddress": "XurNhaxPQh1Yv5Ww5Tk51zckkV4zvNbkzn", + "payoutAddress": "Xyx8heRDRUf8VsmGcNjaCt35Z1Hh1NnCwV", + "pubKeyOperator": "02ce2d141c450d4cdb9c25885ec856129c25c7ceb9d29ed9a6c74a6cda74b18d65c55f7effaacfaa1222855dd3c3ef83" + } + }, + { + "type": "Regular", + "proTxHash": "46e151ab9d34a16b210e6b3a5fba091ada315ef9d64486abdd33c97faa1493e8", + "collateralHash": "7e2a9b0f4377d66acc3dfb319b778e3996791d76842fda27072958b4d14d72fb", + "collateralIndex": 1, + "collateralAddress": "XsvG8KuGesSKGF6BV22oPHnsLfo6n9oK41", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.33.180:9999", + "registeredHeight": 1065920, + "lastPaidHeight": 2127795, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsjbMFaNZeVLtjL6zuh46Z8f88ruoCMs5e", + "votingAddress": "XsjbMFaNZeVLtjL6zuh46Z8f88ruoCMs5e", + "payoutAddress": "XnheU9xwECA8qPPZF3JcbnQ6ZodB9QfT9x", + "pubKeyOperator": "81b4ec0edc8d50490f363560d59d3a79b3631a3c67c8e8f42190347465d62caed3db532ca42d2ad9a0e3915a7f06bab0" + } + }, + { + "type": "Regular", + "proTxHash": "727edd3a1fcc7b06e85aaef57b7fea262e490c291abcf128b689b63bffeb5186", + "collateralHash": "2b0aabfc23f81c76ca20457df4227be333e0bbb41bfc3ec6256119d563a5ce20", + "collateralIndex": 1, + "collateralAddress": "XjkSNQLwocaPgWaPovXecadESBxZWAqv7e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.42.204:9999", + "registeredHeight": 1066849, + "lastPaidHeight": 1347282, + "consecutivePayments": 0, + "PoSePenalty": 5109, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1350587, + "revocationReason": 0, + "ownerAddress": "XstqpePUo5xZT9DFruJ5C8py8nR69ayQ6j", + "votingAddress": "XstqpePUo5xZT9DFruJ5C8py8nR69ayQ6j", + "payoutAddress": "XjkSNQLwocaPgWaPovXecadESBxZWAqv7e", + "pubKeyOperator": "95a6e2d1fb30575ecab28005e666ddd5c206c28fb9fd89add9b519e4715b258d98b701985369f6af517cbc83e1363ba9" + } + }, + { + "type": "Regular", + "proTxHash": "907421b4242d7e53f49a7f560ca705ec9a9b9d6bab530b20543e6bbf5e8885b6", + "collateralHash": "2f46ed3311ad71fc56a22e102d1b59f22c842f14f95f4d3177c86a2fe8f6872a", + "collateralIndex": 1, + "collateralAddress": "XbMASFGoqwWNEGQFnUmwuMkwcVuvkbQw2Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.14.85:9999", + "registeredHeight": 1066860, + "lastPaidHeight": 1376812, + "consecutivePayments": 0, + "PoSePenalty": 5085, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1378259, + "revocationReason": 0, + "ownerAddress": "Xg7km2gM3rZDV9crBK94i58gYUdGDMJ5cs", + "votingAddress": "Xg7km2gM3rZDV9crBK94i58gYUdGDMJ5cs", + "payoutAddress": "XbMASFGoqwWNEGQFnUmwuMkwcVuvkbQw2Z", + "pubKeyOperator": "0b28d3592a0fbea905453b7873ea25645ef57b28430c06377a63e5ffe59000648e600fd55bf09eae25b319274cf83ae0" + } + }, + { + "type": "Regular", + "proTxHash": "15fa451c698b192ea291ead7352f7fee1021b0c58e185949366e6abc33304ecc", + "collateralHash": "8263176fa3dca909cb0bff58e775920e48cca42b284eda93882b08181ac263c2", + "collateralIndex": 1, + "collateralAddress": "Xx3zFkhjVfbqWZFFwk4h7ycuNbzdggGSpn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.137:9999", + "registeredHeight": 1067913, + "lastPaidHeight": 2128644, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2098989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkKh6TDXggD8oUp88iwRRNV7uHvXWuqPfw", + "votingAddress": "XkKh6TDXggD8oUp88iwRRNV7uHvXWuqPfw", + "payoutAddress": "Xx3zFkhjVfbqWZFFwk4h7ycuNbzdggGSpn", + "pubKeyOperator": "01dceee5bf0b6d7801f5217d704a287b22985f3a933897d94ea390a6b426459160019ea9dd9e0d989bdda4422d32ce4a" + } + }, + { + "type": "Regular", + "proTxHash": "219b32d75a7560ed4c92e39673466fbe216f212b8d8e2bca9944f1f34e48b638", + "collateralHash": "50c234c0dd55bd3b5235e60fe5838812885fe5068c07e86980ab8ef660b386bc", + "collateralIndex": 0, + "collateralAddress": "XhgbHShb8vD4K6VukbD7yGyJbRtbJeuJFY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.140.26:9999", + "registeredHeight": 1069124, + "lastPaidHeight": 2062487, + "consecutivePayments": 0, + "PoSePenalty": 3810, + "PoSeRevivedHeight": 1258327, + "PoSeBanHeight": 2063850, + "revocationReason": 0, + "ownerAddress": "XfoAEHBQcc717Ak92CMiDfgo1g177xkCFZ", + "votingAddress": "Xz1Zn5o4kb7zSPWhH9Si8XPswUyT3gteVc", + "payoutAddress": "Xm91p2fPdHoJMDn4FBtW4j4DfQvQoyAiiQ", + "pubKeyOperator": "158ba09f8c28c1cde3122a82ad0262cf3e6855b7258a4a032a18fa3ad5dc64095badd801f8b5c1d4c044b45de05791ee" + } + }, + { + "type": "Regular", + "proTxHash": "fef139ff6fc509529dad0540a48d5b305dc3eb319c7de3afb3ff63f52d838d95", + "collateralHash": "66510076a007066d9340b89af9b00eb24d5bb16bc4c662e52e157115ebd8e140", + "collateralIndex": 1, + "collateralAddress": "Xk8NVVEzQEybz3uEF6ZJPK1dSApAPQyVar", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.113:9999", + "registeredHeight": 1071823, + "lastPaidHeight": 2128637, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhHrW4LbrXJxJr83wQbk23LDxQET27x9R5", + "votingAddress": "XhHrW4LbrXJxJr83wQbk23LDxQET27x9R5", + "payoutAddress": "Xjv3PnnbdSWhFkCP9TURdhaaKf6hRv6Aja", + "pubKeyOperator": "88d77d2bd90c952551fc88443f637b3ed3fa49dc1da446fae6a3cee7dff16152d4e141f492d4edc967f357f97efd4dcd" + } + }, + { + "type": "Regular", + "proTxHash": "e6357aac5646bb4993155e6c77e2275ab80a3645547c8d101d9c6f37aedf3156", + "collateralHash": "e910e9936da2549bf61635bf00a4eef6fd7de4471e70365c6ecbe9e198ea14f2", + "collateralIndex": 1, + "collateralAddress": "XwA7KUdAYTh1YRN9YCW21G8j4KhkPgr2Td", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.38:9999", + "registeredHeight": 1072706, + "lastPaidHeight": 2126443, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1097271, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvoPEa6Q3EM5nwT2FxhTpGkVKq1p2PF5pL", + "votingAddress": "XvoPEa6Q3EM5nwT2FxhTpGkVKq1p2PF5pL", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "9288eb223e2f32d7e4e381841d9b6628a830d2f19e54c79c18e163ce4a4d0d2e40160c291b8d8316a8c651a42f70a07b" + } + }, + { + "type": "Regular", + "proTxHash": "99beef03e2692bca95c463a143ab32fe9c1117bd973366f1a7ada23a9388249f", + "collateralHash": "88a7e254244877b0abeaa1d5fd5ba81f14373f52925ba6ef199bc4215a9e0428", + "collateralIndex": 1, + "collateralAddress": "XwbWhb1uejN2TFSGJHPRqieSDNgnhj1Jrb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.214:9999", + "registeredHeight": 1073561, + "lastPaidHeight": 2126442, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrzVxuYKWxRcTVFn1wa2whbPaGYjBdXLtg", + "votingAddress": "Xgqo2q2EXC7pjEJMew79yGfxgPzmWGsazs", + "payoutAddress": "XazDfJ3TFRPBVXFdmsTYg7dH3tvoYeWKrX", + "pubKeyOperator": "063ad45b1dab6bb712caeeda4aea34ebe7a48d2516818f46109956700819671967ea7938e5002842ccb01c877769c1e2" + } + }, + { + "type": "Regular", + "proTxHash": "1b4ea57c6c9fcb76cc64d55022aaea5d90955af674cdd75eb90811c71f248ae9", + "collateralHash": "2b09b0c51b50efed3973cfeb8dc5e61bd5a8afca2cbf2351a684798666a4107e", + "collateralIndex": 1, + "collateralAddress": "XayqyiLFXYRHV1pqsg7oaxpoCXBB8sBAq8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.23:9999", + "registeredHeight": 1073573, + "lastPaidHeight": 2126459, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcMUgAeMLGQNko4Dcs2CyQbTFxfP4pyVu4", + "votingAddress": "XizPvojL9Zwmg5r3Lf5Hvy7h7jKZ1geQMr", + "payoutAddress": "XyWLjSSbfpimL3v1ecKKhVJbEdWZYgb1KR", + "pubKeyOperator": "8b8a1e964dc9f995974a63201c007954d73bc896c4599b249f67640bc0b19bcf2601a20ed9761cf8d3aeb86d4c418c64" + } + }, + { + "type": "Regular", + "proTxHash": "b87a661f45e53598fedf6057b086259aa0094e002fc708b5ce981e5720ac50fe", + "collateralHash": "dcbd2eb6780511ff9b27ca90af77be8373639f8616e0d4e036060a58354043df", + "collateralIndex": 1, + "collateralAddress": "XuyNVSSkA2FoJLZjw5ukDkYAS8rMbgNuaN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.41.220:9999", + "registeredHeight": 1075497, + "lastPaidHeight": 2127740, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkKU6X598bKv5ntiYP5BnGiafqXckDJ99c", + "votingAddress": "XkKU6X598bKv5ntiYP5BnGiafqXckDJ99c", + "payoutAddress": "XuyNVSSkA2FoJLZjw5ukDkYAS8rMbgNuaN", + "pubKeyOperator": "01ac46a75e307602f69e6d1575519bfa8c58ba87971e74af10a15c75fcab40a28609436131f1efbeda37a004a64c29b8" + } + }, + { + "type": "Regular", + "proTxHash": "1f6a56c309394defa9eb589a8b5efce2f41f39240bc63cb2f68ff5e0fe896bac", + "collateralHash": "c3f53ef176640ed4fe656d88c28180b882895d891a494cd428a4faab20b280b9", + "collateralIndex": 1, + "collateralAddress": "Xyxq2zHXgN7hEDMJnZUsW663HMwgVfj4fB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.240.172:9999", + "registeredHeight": 1077284, + "lastPaidHeight": 1257766, + "consecutivePayments": 0, + "PoSePenalty": 4671, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1258006, + "revocationReason": 0, + "ownerAddress": "Xq46kuhV9cFU8tfUZ9eMtgBqkktMhSQxo9", + "votingAddress": "Xf7sivaFs1i6rWp7WsZL1y4hYwFeV11iN3", + "payoutAddress": "XvupQ8nX82TUrFYmmkjVg6EpupJzGzaMv5", + "pubKeyOperator": "816d2fc2829e3242c49d0b143116650110a2d10fd230f3e5e4ef5a9ca11f350d75727603a3f5b8d88ea90c6c795f5e26" + } + }, + { + "type": "Regular", + "proTxHash": "d818a9a3ec60d12e51e6f910c48b7a4177a096bb41baa3d5d5c70acf24178cb1", + "collateralHash": "968a05816dc9cbfa057c052558860051a433c13f67e737d6b86cac616da2a62d", + "collateralIndex": 1, + "collateralAddress": "XdWyDUJthnkthdMzdobJSJta7bByhMk5AS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.227:9999", + "registeredHeight": 1077320, + "lastPaidHeight": 2125775, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcDjGP8z2qL8pZaFLDaRo68FeGv1S4f1zA", + "votingAddress": "XcDjGP8z2qL8pZaFLDaRo68FeGv1S4f1zA", + "payoutAddress": "Xud7Lpe7mnsoacrX5UzWDP7QzjiLQ5E4UD", + "pubKeyOperator": "0bfedc15ab70e2cd12e556670e83e44c4b6a6c03b48165b59d002eb5e4052ef5b3b0b16660a67dd6c8a58804cd9cb008" + } + }, + { + "type": "Regular", + "proTxHash": "5886ed11ba8e1d273288a8c86cd68effc49d30ad0fdb22305d34c81b31303826", + "collateralHash": "d2018e32211b0a29db2f4c4a61cd8964e99ca96ead0b9f6267c0bd48224f6376", + "collateralIndex": 1, + "collateralAddress": "XjssaZQmc2dZ7GWJDw11ZbcwVa1cUGPeWC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.45:9999", + "registeredHeight": 1077366, + "lastPaidHeight": 2126760, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1648957, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XerVo7qv3dbyQSNavLXmJwuxZMN5MAs1Wz", + "votingAddress": "XvWuSF6ddMofTaNdANvGSW17nhFc1AvwFr", + "payoutAddress": "XhmxFrzfdtuJJdkk1CdeptpMvroRj1QjKq", + "pubKeyOperator": "1584fdcf2f9f60f65f6b3313f3e2b7bcba9b6744f52b464c1460ddfec710d1b3b5719827cfec6c1040f2e53895d9c796" + } + }, + { + "type": "Regular", + "proTxHash": "51fb0711d3b699baf3aa6603742ecac69ca7ffa66b3783a2451e27372c73a0e6", + "collateralHash": "5b5a5497d5c9aa5764560ca61fb9bd445250f6d5992c3f95290fcc4a04a99b43", + "collateralIndex": 1, + "collateralAddress": "Xk4kuhf2cAYB3FXzKVSu9fzqD9jEsu5Bvp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.8:9999", + "registeredHeight": 1077829, + "lastPaidHeight": 2126032, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjcHx7m4ZPSpoF4rPtF9nzYot1pMcCeyBo", + "votingAddress": "XjcHx7m4ZPSpoF4rPtF9nzYot1pMcCeyBo", + "payoutAddress": "Xk4kuhf2cAYB3FXzKVSu9fzqD9jEsu5Bvp", + "pubKeyOperator": "8f56421336a81d1ee94331cbf02d1608fce384dd805f4523d8ee195f7c1ffb501e8686efbc7b2e0835194168688d8563" + } + }, + { + "type": "Regular", + "proTxHash": "15e9b286ff76a27491ef3533da8f8a63571fd5e997c5ffcb651545bedf6fa437", + "collateralHash": "7578af62527023532eb9c1da19ffd44885848dfdeb94e3afa7bdcdc72940d4d8", + "collateralIndex": 1, + "collateralAddress": "Xo9k62KFixzFfVgX8Uzn53oeaqCdgAmtHV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.134:9999", + "registeredHeight": 1077829, + "lastPaidHeight": 2126030, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyGZsTNrZhNDetyRVQk9sHQhzsa52Hu56d", + "votingAddress": "XyGZsTNrZhNDetyRVQk9sHQhzsa52Hu56d", + "payoutAddress": "Xo9k62KFixzFfVgX8Uzn53oeaqCdgAmtHV", + "pubKeyOperator": "05610de73f6b4ade43ba892997acf90950063e40e3aef7d0c0ea7b5d325a830e3273a88071190b1e325b1af47bdd8f57" + } + }, + { + "type": "Regular", + "proTxHash": "e8e503185b89ee6cbcf432cf5e91d91db047b789ca14cf0c14b1e5f87c8e25c6", + "collateralHash": "ed160a47ca092ed0889ae440ed7a94f2a37279f3c29014d01fc424aac1651db5", + "collateralIndex": 1, + "collateralAddress": "Xq7G4F97ya8ky87tVzH7a8kFiw5FxSUPBB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.7:9999", + "registeredHeight": 1077830, + "lastPaidHeight": 2126036, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeVL2hgPxH2jWivpzKrgNtWR3SiTF2sYvw", + "votingAddress": "XeVL2hgPxH2jWivpzKrgNtWR3SiTF2sYvw", + "payoutAddress": "Xq7G4F97ya8ky87tVzH7a8kFiw5FxSUPBB", + "pubKeyOperator": "82e13971c6b3d19b0fb7e204689e2689d5f793c15e0e29b8b9447c1ef7a9b194bb7cebdb1e2b7c3e9372cd710f6a7158" + } + }, + { + "type": "Regular", + "proTxHash": "571e3eefc4be8d0442e29ae6229d3d9e5e3077daa0753a98ed96c4fd1491819b", + "collateralHash": "4cfb96fa162325e289d12a43f5e710333430c8efdcc7660141c0abf8d823d49a", + "collateralIndex": 1, + "collateralAddress": "XbVrT3nnWQbgmjvQvETYbfDzBCcGWi1P4C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.9:9999", + "registeredHeight": 1077841, + "lastPaidHeight": 2126053, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeW8c4YkpBp1cXNoxj1UhpknL8rQbAK7Gc", + "votingAddress": "XeW8c4YkpBp1cXNoxj1UhpknL8rQbAK7Gc", + "payoutAddress": "XbVrT3nnWQbgmjvQvETYbfDzBCcGWi1P4C", + "pubKeyOperator": "97e803ec1bdb4a8e9d6212ee41cb3c940afd5f9c89b3c6605a16318605dc73069f159f623535bda75c38e024fa582013" + } + }, + { + "type": "Regular", + "proTxHash": "de469f542fd0bad77d0da44e61e09668bb7784e6cde1772d3b5e81f6e16637a1", + "collateralHash": "196bdde696b188cf219299dd428013b58f4621d2bdcf66be9e58da28622b9cae", + "collateralIndex": 1, + "collateralAddress": "Xavm1pVFUnUU1vHjGMdHM6LBAFEKLYwBiX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.5:9999", + "registeredHeight": 1077841, + "lastPaidHeight": 2126077, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtZziZreZFRbirZtYnp1My8WP3sCYxMWB4", + "votingAddress": "XtZziZreZFRbirZtYnp1My8WP3sCYxMWB4", + "payoutAddress": "Xavm1pVFUnUU1vHjGMdHM6LBAFEKLYwBiX", + "pubKeyOperator": "15c8c598528fba3c0f91f0ee236994bb313139742b00353f426a1454a57f5d225454e4f405af421470fdea93bca64728" + } + }, + { + "type": "Regular", + "proTxHash": "600c8240fa9b2d7809df2efbb020952c07dc235f280ebd9525dc8b96e38780db", + "collateralHash": "b6f3a3eeb90d015923cafb20e72bad677dcd80eeb9d97d05be0e0760913678e0", + "collateralIndex": 1, + "collateralAddress": "XxX8umUJmX8UNJRzhBmWZ9TWncn5pvG7Ae", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.128:9999", + "registeredHeight": 1077843, + "lastPaidHeight": 2126115, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtkdyQygLrk1CGx99DVFE78mgC3UrJHzD1", + "votingAddress": "XtkdyQygLrk1CGx99DVFE78mgC3UrJHzD1", + "payoutAddress": "XxX8umUJmX8UNJRzhBmWZ9TWncn5pvG7Ae", + "pubKeyOperator": "84134dedbd138f7cf498f664dabf26db61fdf6cba819a802d9e071ba194bda24df4ef33d754a2c812cfd47428b89225e" + } + }, + { + "type": "Regular", + "proTxHash": "a9b23ca7bbf841d2bda9ab7b89f3c353572c865866f93c6da59bc8b659dd9455", + "collateralHash": "4779cb7e7392ed5f1c8983a290f54e462e11b6ecc074e7e8c918c4a50e9ec1bc", + "collateralIndex": 1, + "collateralAddress": "XyGXUrGXLh5z4N9rkMAzjUNrb6vciHukMH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.18:9999", + "registeredHeight": 1078957, + "lastPaidHeight": 2126778, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdTaCe2siWuLwi8et65VSwK5hhheEnpUud", + "votingAddress": "XpWkKZc76WhDS2mAcWKRobjcDPprd1uMPt", + "payoutAddress": "Xu6QZFqNy9PpvkhWLvtv4ovkcLxNrYo23S", + "pubKeyOperator": "18e47e316ca8c33fcc1dd8e0d6be94b8a3144440d4b702c3d0102cfbbe2ea54380904bf31b29042fd8964bb3fcd3ae94" + } + }, + { + "type": "Regular", + "proTxHash": "94f6ab53429e3e8ab0ddef61ecfbbdf1cb1a7c3088e5df25920c69d887e08803", + "collateralHash": "9f0a9222cea500aeae6e8202e28f7a22c60b2b7df9c8eacbeb1a57bd4672ad96", + "collateralIndex": 1, + "collateralAddress": "XsvKV6Hy9dghhF4xgrxNcUNwBfEWENj4Pi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.204:9999", + "registeredHeight": 1078980, + "lastPaidHeight": 2126779, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcKFZDEtA9HKY9wX5kQiHYJATHpcmpHcVu", + "votingAddress": "Xx6RyrweKdWzdzm33YNqner17YtVaZWuus", + "payoutAddress": "XiP3ztYWUGEVyv7tAEmXTPxpVNx3xej3LH", + "pubKeyOperator": "929bac089e6ae093ed726ed8dea16ce4b9428b119cdbedbccbfe7b6b6072460e804b07470ee60fa2cbd8c9140a310489" + } + }, + { + "type": "Regular", + "proTxHash": "11bbd0b5da3aa1219b9559e86b17fa55ec37fd2fae2e98f77c0329d6e7b6f66b", + "collateralHash": "ec10ae739b8914937285acdf0f052f80f0d751cd5ce2eb452b5bd89bce6bf1f1", + "collateralIndex": 1, + "collateralAddress": "XyvLR3xDdoa3wp8g81NymfQKDutnF14pqz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.29:9999", + "registeredHeight": 1078984, + "lastPaidHeight": 2126801, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfwMC8bZjGsqbaP3oYSHAvf8CQYA7ccSJW", + "votingAddress": "XtRZ3V7JS9zpV2pCr116zAxPzwMTRdmaSR", + "payoutAddress": "XszkBKhQ1GQLAxh5eZfaHuf8HAmXh9gEZy", + "pubKeyOperator": "087f31a9ce68a9de738e3025828c35a137473c209c163c46c40d0188e6a9e1a243ee343ece9a9f1bce18d586266f662d" + } + }, + { + "type": "Regular", + "proTxHash": "6773e69de6e1cf3d8126b3d26a81d7a51c870ae06f5abf1f337dd0afa9d75fde", + "collateralHash": "d52cca776045f96eaa3b7bd14b158f769cd411cc6b15554397e34243a5841942", + "collateralIndex": 1, + "collateralAddress": "XsiVyLXs6GF1nxBc63XAsud3A2FjkeYBET", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.148:9999", + "registeredHeight": 1078986, + "lastPaidHeight": 2128791, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031587, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuNExLLuZksZSPXGV1qt8Wke6skTmfuAyV", + "votingAddress": "Xt362Xu33MvimgYKRdJNUZktEgdYf4jwU1", + "payoutAddress": "XjMDMS3WRSLPBTVX9qcwZW5XUQDCwuZwRi", + "pubKeyOperator": "1250b4c913900f8e3f9d8d662fdf4c54fedd466927d4e109dbfdae7106c5b923e9ddfd031b290e3943de4f2e36935a74" + } + }, + { + "type": "Regular", + "proTxHash": "67e7e49104d4cfa466e794d86fdbfb911af08e0fbe6f3a19144cb1d58a1f8ee0", + "collateralHash": "e72a09f30644b68b28b7e98c365d82a1018af0fbed94b8a726b626f54135fbc2", + "collateralIndex": 1, + "collateralAddress": "Xx7hRhRsGgNpD4PB1CbKfDeVu3kR3Yn3GL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.188:9999", + "registeredHeight": 1078988, + "lastPaidHeight": 2126804, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwsnMF9QhUzgPbmzm8eymrRz5R9u45kuXe", + "votingAddress": "XcXanZuoMs5Ux7gnXeY2qCJhecDaym6qSQ", + "payoutAddress": "XbYEsgtQVCPA5XhYNUz8RpBn8WWzr8UGNX", + "pubKeyOperator": "00bcc2d4e727073b91aea52b786c220ed86aad729d74f64d4cff23eaf6db5867a1adbea869c72a1dcf32d889c7a5677d" + } + }, + { + "type": "Regular", + "proTxHash": "b5e5d0a4398a940267b4830c294da09f46a2ff1b8ce72985c7a4d9df2f342149", + "collateralHash": "370501e0c1452d079be4b92df4551e73b549220713d46b9db0340f4633b2cdda", + "collateralIndex": 1, + "collateralAddress": "XqQzCATeYwy4APNWyLYsyqjZsEpwCAJFzB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.160:9999", + "registeredHeight": 1078990, + "lastPaidHeight": 2126818, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XemBFiR1EjWbCx8qwAacoz2SUXpFo89LYd", + "votingAddress": "Xo6onoRQhmtJ7qQ7dCtp5hA4A5jYPkjgjq", + "payoutAddress": "XfL4ctm85vBpSaszfLhJfsYT7TTKxzcuPv", + "pubKeyOperator": "04d3b228e3c7d4e9b4630fa48418bc7eadcd112849860351c5bde9c2f2ccda789fc519eab5690e3ba6e70e97aabd4021" + } + }, + { + "type": "Regular", + "proTxHash": "2181ba13d685c02a2d679f0df902ad859a26a0d645b3462888f645708c95a08c", + "collateralHash": "d8ae6e438a8831428db6bdebcb71a587aea7925a1718a10a8215b33134b6bf3d", + "collateralIndex": 1, + "collateralAddress": "XuA4v3zDFoBqy6sMxyEa6GPcno6XPqBNTr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.163:9999", + "registeredHeight": 1079016, + "lastPaidHeight": 2126861, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo91ntikQH5r2PD6d6paNUKYLgQ9JQ3wDR", + "votingAddress": "Xm68rDSnFLiXtPa2XBG7wKkA9kCfFKHBjB", + "payoutAddress": "XrjD81gz5ziYvmN1bJBDX9hf3P5wXLmyZH", + "pubKeyOperator": "936f163e37740943c0f01f7a14745610198b954c0cb51d6e460e0c05cd5a9fd5b5b0217d08e9567606a5ada2f419be08" + } + }, + { + "type": "Regular", + "proTxHash": "dcf1ed0d362bb83ceff41c4fe403bb4c6cac012c6c4bb7c2f106a5234ca9b598", + "collateralHash": "8cbea1c6b32c3a8b213ea8c658d6276d3e53df43a483391b1f5d9041db6e1e6f", + "collateralIndex": 0, + "collateralAddress": "XnKXC2T6j1GAmPbxLykWdH4PiSxj7M18pL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.30.197:9999", + "registeredHeight": 1079423, + "lastPaidHeight": 2127311, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1641139, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc2iG8gCzFCWAntEW762Ghin9qKExkBdpP", + "votingAddress": "XhPC1wp7eJa8RsdGUBRfE9pfWJoBKPbjj7", + "payoutAddress": "XtVgH9M1VMtR4AoToX2R2wL5vWtrbc1Wam", + "pubKeyOperator": "859d3eefb432a6dde5855501752d778981a92de08b6a0882581251eec62111dbf950594404bd873b6c53ba7377af87c9" + } + }, + { + "type": "Regular", + "proTxHash": "72d455aa4085694a9514257640c45a06162ac2740ecc360e1b29de0752921d0e", + "collateralHash": "25c1a4074a48479641088ecc319b2af107fa447ab2a09cd0a0ed2998067021ca", + "collateralIndex": 1, + "collateralAddress": "XnrjW2D7YLC4z1YZ4HSTghxiSKMxM61EDJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.39.171:9999", + "registeredHeight": 1081168, + "lastPaidHeight": 2125935, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1847565, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsYbG3yXz22k7f5AUr8JWUJxAz8WRWgn9R", + "votingAddress": "XsYbG3yXz22k7f5AUr8JWUJxAz8WRWgn9R", + "payoutAddress": "XahQwUP46NcxkxbFS8JKkLkkhSgLGVUs9v", + "pubKeyOperator": "846ae84d53cb3b7b7cd73b2c7bc2f198669e6c075bdd4955c310eeb7148fe93ad953a8f15c1bbad65281142db1387aa3" + } + }, + { + "type": "Regular", + "proTxHash": "9021d7ff104e1ba375b5681b85ee4adc49b7b1e1ac1ccf66f889935ac3c88ab8", + "collateralHash": "c2c59f805a81b7ef99fc208ad73292a8dd36be66ff1e382cee6c637b257332cf", + "collateralIndex": 1, + "collateralAddress": "Xynavs3KypVQ2HuSrrdEXHbJmjohpgJdHx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.49:9999", + "registeredHeight": 1082675, + "lastPaidHeight": 2125839, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820870, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc2XCfBBA8Q51tBTRUz6MP9sfHLePit7G5", + "votingAddress": "Xx4e2pVfwVXqztLr15A1J7hBvDx7E3nh15", + "payoutAddress": "Xynavs3KypVQ2HuSrrdEXHbJmjohpgJdHx", + "pubKeyOperator": "0b5c5550eb44e27331639842a8c328aab9f285ac8814364a044ddd3a8e24deebba42af12b1893f41d35cae54bad16c28" + } + }, + { + "type": "Regular", + "proTxHash": "4a8ada452321b804b5954c99f4fd480d38e78f51650d349ca213eaffdb4abf3d", + "collateralHash": "1fdb31b7c3cf5d08e48c990412d4d4f9fcc1f06d554762be687503e32944588a", + "collateralIndex": 1, + "collateralAddress": "Xw6gXp26pKbZKP22xHp4PwomEmexDwVgES", + "operatorReward": 0, + "state": { + "version": 1, + "service": "35.172.65.184:9999", + "registeredHeight": 1083100, + "lastPaidHeight": 1502437, + "consecutivePayments": 0, + "PoSePenalty": 4659, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1506155, + "revocationReason": 0, + "ownerAddress": "XpLewyfizJauG94jdSnjDQi8SGaovTyavg", + "votingAddress": "XfEwnz6Gkhq62B3eCZHDdgHXWmE2CbiRHh", + "payoutAddress": "XdV9U1cDJVihYr32zWb8vGgTvPhkTpRfWm", + "pubKeyOperator": "81784ba13545043e708f8107dd859d370d31aea5a6a7fd567237d0642c38ee2a0ff304983d9446c1b1ae7b0e45c45543" + } + }, + { + "type": "Regular", + "proTxHash": "05570aca9865dad51b8b94787fa5997964270c81f423e57d30b92e62107e04cf", + "collateralHash": "78c6e7283d5afa1f88ce8ec13a7201a22d111ddfed62401d4037bc2c0768e01a", + "collateralIndex": 1, + "collateralAddress": "XsRPhzFELv1pVWmLpb5zfJhBEcyWdwe8Ee", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.143.53:9999", + "registeredHeight": 1083189, + "lastPaidHeight": 2126401, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeSsRXgjghm4RWvuEeNysAiShZq2EWXB9N", + "votingAddress": "Xup7eFFuMWDVd86c6bjvhjfyaAe9nKktfh", + "payoutAddress": "XvNPBxG3w6PL93pYM9AYwNcjEBfQNrfVrC", + "pubKeyOperator": "19d45ade931917dffa5b26023c07140ce733e5e340dec434ef7ccc9522dbbc533677972c6236686fad153a00e38643fb" + } + }, + { + "type": "Regular", + "proTxHash": "58a7a0ae25b69fe70b2a639f752e996ff4a3549417558806c9d01070ca2e3b0e", + "collateralHash": "4d43656b8165fda50b8108512078bf43a5022d1e18b4cbfa913003e7a1076f9d", + "collateralIndex": 1, + "collateralAddress": "XgrE7V3ozTQpKyYs9DQtfDYCtc9EbL6orY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.223.128.207:9999", + "registeredHeight": 1083422, + "lastPaidHeight": 2126522, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpgDZYGFpWm1qApp9QV49Qp8bUXHppH7zc", + "votingAddress": "XeK2hE5UEkySEYZG1pQMZU2tKW5XsT9vzz", + "payoutAddress": "XcN6XqpuY9SoVkHo8cURacFCrKmxPmjFDi", + "pubKeyOperator": "09aabe15385a514de9545d5427baa08b311f2280ff0cc008e3edda19a0283c508efb6e7cbf56f92dfc09690375356667" + } + }, + { + "type": "Regular", + "proTxHash": "df081e143a8a18d97c6024d51589e7155ec4ae05432fa47e466d250bc2743cfd", + "collateralHash": "a7b7104d8928394ffd987ec3a0c6b9043b35f6ade0b7c564ecb6b0afcaed478e", + "collateralIndex": 1, + "collateralAddress": "XwZzfYtMNufKpPBm52SMrt4SrkCoKVvcK5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.64:9999", + "registeredHeight": 1083432, + "lastPaidHeight": 2126527, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwL3nc6nTwgsNFtGJptZsF2FR2QKqCyLuz", + "votingAddress": "XxfWXoFQp9BjskeWY95zZUTFaiCFtsyu5U", + "payoutAddress": "XfgykHENYwnM2RdjGSKZdbRHUaw7PckEM2", + "pubKeyOperator": "173d4634a262da6ac07bbcffcb14e64459a21be680b43afc787ddd0c2410ef136ae9bc2a4bf03aa0a9c3795f33ecd044" + } + }, + { + "type": "Regular", + "proTxHash": "d092de644b2432ce2673eb5b97f3a52e726fbcd4eca1c1e8c66564240faa5a3c", + "collateralHash": "edc498bfb73035451ee72b800aba46a8c4080dc3120ddf4abef06a086b2063d1", + "collateralIndex": 1, + "collateralAddress": "XchPGjgwhdCz9sW9QUzMbZUDHkBG72gcNG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.138:9999", + "registeredHeight": 1084227, + "lastPaidHeight": 2127073, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp1d3CKUK7tnjMM3Aewf9wkh46w89B6stF", + "votingAddress": "Xp1d3CKUK7tnjMM3Aewf9wkh46w89B6stF", + "payoutAddress": "Xd97GHduNQNcuVmshuBASx3SD8guoWtuQk", + "pubKeyOperator": "874d06b9b71272e5173298474e72e4811a6fe7624b595837af224c022ffd80193346cd03c03d0bdb637c2bee683baece" + } + }, + { + "type": "Regular", + "proTxHash": "da09e24b6d12d9d2cfdbe84032149b1f10886d371cb88fdaf25c19a140e7d60e", + "collateralHash": "2ddacbd531ce6311e7d0cc9425264fbdf758107b8a0ba44f879859f42b02a3fd", + "collateralIndex": 1, + "collateralAddress": "XeNtxF39eGxV7bJqVD8fzSbsayZBjNNPpa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.254:9999", + "registeredHeight": 1084278, + "lastPaidHeight": 2127082, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeB3pXTEywtTbDQanswHdyUpeydG1yw61R", + "votingAddress": "XeB3pXTEywtTbDQanswHdyUpeydG1yw61R", + "payoutAddress": "XmnVEmQL9WxkRMRrJGcyCehXN4FYDPRK3j", + "pubKeyOperator": "81e5be7fe18fdc06e177cc33b8cf84f1a2edb2e7facb70c46527761598b46c5cd611ce9bb1fef7faae46d4b939bffd74" + } + }, + { + "type": "Regular", + "proTxHash": "3eb87b4ee9274759846cc7f7bd147d8533a3922cc2ce45047ad27987ed72b888", + "collateralHash": "8177faa824dde51695bc47e0d9f86d8f0c702bad8bcf926a3954de8b73d54fb5", + "collateralIndex": 0, + "collateralAddress": "Xm4fJdEetQtDxkVhSUfZCLv7rnApR3uf3t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.18:9999", + "registeredHeight": 1084511, + "lastPaidHeight": 2126003, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1378031, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs33znPDUJazP3LGSTSEFpEgq2ZkgVu1Yd", + "votingAddress": "XiNa41E3tBrEFowiRsVW5JMKCVSAhcBK4i", + "payoutAddress": "Xx79ju2ngxM4n4qBHbFeeEGXZqgK7GzoS5", + "pubKeyOperator": "0d869948bb27b0f119d27f45f3de6f7c13d29f366c3dcc73938be5fd35d90ca72e68b0c58fbe42927bd65818b292be72" + } + }, + { + "type": "Regular", + "proTxHash": "7ef1d0d40b30111cd71cd0697c71121d36dcee723c368f8f07c9974b0dbcf6fd", + "collateralHash": "2ee565a4eed5b0dc8d6bbfe2e1b3106dc33024545eb71f80b77c308e734242b7", + "collateralIndex": 0, + "collateralAddress": "XbTZUw2iDUpApZkNzpJod9YrVtbFuvytgr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.136:9999", + "registeredHeight": 1084512, + "lastPaidHeight": 2126010, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1378037, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmcy8dU4QqgXVuJE74NjiET3h4RJxBrt4T", + "votingAddress": "XjMC639u4A6kmNffY7MCKYGUZKmxrMsfXo", + "payoutAddress": "Xx79ju2ngxM4n4qBHbFeeEGXZqgK7GzoS5", + "pubKeyOperator": "06dc2b594de7772241ecf4b9e2f7252a45e7e76f5004b4016ed524224f1019f0364010d06645ca55dc26fa880565466a" + } + }, + { + "type": "Regular", + "proTxHash": "9bb851615de383c366e39b5b88dcf5f60c213e778b3fc7f884b3786ebb390dd1", + "collateralHash": "e70ee4febf78c2ece39fd17c9e1cbc779b20aaa4035ced51b7c780fa82002c59", + "collateralIndex": 1, + "collateralAddress": "XiZ1NHcWFXxR2xyZf8eF2y4HnvtcZgZxZo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.152.144.198:9999", + "registeredHeight": 1085250, + "lastPaidHeight": 1821946, + "consecutivePayments": 0, + "PoSePenalty": 4437, + "PoSeRevivedHeight": 1715751, + "PoSeBanHeight": 1825098, + "revocationReason": 0, + "ownerAddress": "XcFxyPMq1g64rbQRkABFgnXhfzB93a3EgW", + "votingAddress": "XbtWJxrZ8yD8N394YTchTtBKpFPpo2Why6", + "payoutAddress": "Xc5NCNeAHkufo7urzzWKrgx9kFGYMnTsN8", + "pubKeyOperator": "179052b822871dc0e88598f889ce5e6210b8202713c551801d9b425c67307306d5eac44911e8d58c695f8798e58b9d75" + } + }, + { + "type": "Regular", + "proTxHash": "9d292421e7803216d6be5972e3630e5df8009ff993d55dccec1e7fadc1a44eeb", + "collateralHash": "ccbb15728508256c7120a85cc78fa614388940787875b1418c5001ad9c3ca522", + "collateralIndex": 1, + "collateralAddress": "XxNAmyKiN2SzbYjd5Ux91hKCA5Bk86xDhL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.193:9999", + "registeredHeight": 1085383, + "lastPaidHeight": 2127545, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1688056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiSLF8jbL76hBMThN3yypkG8tUVTsYbZBD", + "votingAddress": "XiSLF8jbL76hBMThN3yypkG8tUVTsYbZBD", + "payoutAddress": "Xb7BiHdMhgrc8AnMp5X45H5o4jyjkV96eu", + "pubKeyOperator": "8e201a62fb35dd6f068562aa31b44bcd94887457eba17618fe1dff366c8414acd7b8342a37d850a52b77c08697d93c93" + } + }, + { + "type": "Regular", + "proTxHash": "d8fb01e344e3c4a3019ea43f5db0509918b568a660926ba5e66b7d1a48e0ab9b", + "collateralHash": "7bd88488b319a766040561d8138c169e3ea7762bf0e2ee7a18a349b054dfa1e1", + "collateralIndex": 0, + "collateralAddress": "Xw8k9C3eg5X6prD2SKsDER4HoLPVHHoZmB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.89.17:9999", + "registeredHeight": 1088864, + "lastPaidHeight": 2127080, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsbUzU3GNy8V9isnibr8Eq4gQMukPzvTL2", + "votingAddress": "XnMFJK9d4LJEBkpxtHd4YoULkuexmi3we1", + "payoutAddress": "Xw8k9C3eg5X6prD2SKsDER4HoLPVHHoZmB", + "pubKeyOperator": "96356f33205c9162f29d2e57f1de1edd13962f3558a105b97fc805774299d4e3f2a1ee65ed0cc351d99dff524770a75b" + } + }, + { + "type": "Regular", + "proTxHash": "8a891e51e1c4a21de4dd1a6ce36299ba1da83e31d2432934a2cda8adfd76fa3e", + "collateralHash": "1c62b7e2b0d0736973c5a176f84827da1951215335899872b1c9fdd9ae3facc3", + "collateralIndex": 1, + "collateralAddress": "XsT4khwJkjA4dKxzsjCiyN8wu9BHzWwvPY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.107:9999", + "registeredHeight": 1092095, + "lastPaidHeight": 2127522, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1725122, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XakaiQDmq8BofNwRrJTNdEryS99dSTJjuY", + "votingAddress": "XakaiQDmq8BofNwRrJTNdEryS99dSTJjuY", + "payoutAddress": "XsT4khwJkjA4dKxzsjCiyN8wu9BHzWwvPY", + "pubKeyOperator": "93c551deb4feceae6e390fec0d1b729bfe7aee6c6df6102de8ac3624b2b7d002c795f67c836a629cf5cf6886be53a7a4" + } + }, + { + "type": "Regular", + "proTxHash": "47da9c1fadfe23827e23a8d6196b003b7953274d4939fc0e489377f50bf7f3d4", + "collateralHash": "1c29b7525f44c2cfc08c01232490fa6eea2377e4e391dd9a646c9f2e6b3b9675", + "collateralIndex": 0, + "collateralAddress": "Xp7Pagh69k9Gw3CM7VdM9yAr5gHtyKS7r4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.185.132.201:9999", + "registeredHeight": 1093817, + "lastPaidHeight": 1370216, + "consecutivePayments": 0, + "PoSePenalty": 5120, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1374683, + "revocationReason": 0, + "ownerAddress": "XsUyxy97Trt4RoYHVuF759v5fSQ28tPr53", + "votingAddress": "XsarGiS4vQCpD5QYRn8yKK3gXmsvSAMHZ5", + "payoutAddress": "XpcmBezanFzotTkHcz8oz1DAvECSywy37c", + "pubKeyOperator": "134b5935bc85f101fc59e98885a2d62e907bf1735b1aad9c7056630a8e1804f5ff8f133790898d4f0c0b11f0fa78fea9" + } + }, + { + "type": "Regular", + "proTxHash": "61d6f455c6695a00b4e479d4d3f95011efe79bbe69e42539535992c05be4beb0", + "collateralHash": "ee0284b62fab54675759cf914a154b4b0e5d4b3ac42b7a2d027827e9e31822c3", + "collateralIndex": 0, + "collateralAddress": "XcR4mjtd2F7W3xhCZHZKDawthxqN7NaJZG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.31.8:9999", + "registeredHeight": 1094174, + "lastPaidHeight": 1872541, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1875786, + "revocationReason": 0, + "ownerAddress": "XbxZJzxfP2owgFa6paUq9Kfb4pJJwVrVSD", + "votingAddress": "XxizE8Z8Ub35Zdz9xxeRYhZf11ZnZfqqZ3", + "payoutAddress": "XvupQ8nX82TUrFYmmkjVg6EpupJzGzaMv5", + "pubKeyOperator": "10f1db75fb5ff7344feee8301f92ace8a4083cd31ae65d873f759986a0b3c60552d98de733804ac79ed5613a56bbd936" + } + }, + { + "type": "Regular", + "proTxHash": "7055e66f895af6729c5bde35891e4c030a80b18cc31fadbd19093db32cd57932", + "collateralHash": "33a838414ace58ab1bbe0be6a1c22f16344881f27c9ff0e9c0d25530b992e02e", + "collateralIndex": 1, + "collateralAddress": "XnjzuaoxBbE1s9gUADCnzKdgxFwREC5Tgq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.184.28:9999", + "registeredHeight": 1094174, + "lastPaidHeight": 1336131, + "consecutivePayments": 0, + "PoSePenalty": 5090, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1340374, + "revocationReason": 0, + "ownerAddress": "XrKyeaM9jPPrWTjE2SFaaV9dcUd5ypwswb", + "votingAddress": "Xku24kFhoJKDBRHUQmdqk1CjW4c8uQCuHB", + "payoutAddress": "XvupQ8nX82TUrFYmmkjVg6EpupJzGzaMv5", + "pubKeyOperator": "89ecbcfa0c70392cb31ac77c74f1607f93cddc2a014ea6555b5e4e64d2f6b8f6e0786a4944036631d9acf437d3118a6f" + } + }, + { + "type": "Regular", + "proTxHash": "e9aa3e868d01afb7b8051ca40d3941c46b076f6dda9bf3560a2af6657bbd65dc", + "collateralHash": "fb2d9d4ded2dc8a94d116138e16776f822f0b0a18c8800eeb072fd3c199c62a6", + "collateralIndex": 0, + "collateralAddress": "XiJNLkWcWnyoGeNbWBsWsDxvEX1RXzpJ2F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.33:9999", + "registeredHeight": 1094276, + "lastPaidHeight": 2125841, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1501679, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxGodNyZhqjcwWWQy7Xj1bXREzaNx8m87f", + "votingAddress": "Xv5eSKwAy8oYFEmy7pSXtHRRDGAYgP4PMB", + "payoutAddress": "XsEdaqfTgD3PfKMgUSkE7Mvkg6QjmkPfqa", + "pubKeyOperator": "9536f24afd13901ce410a7905e0a29cb19b249247c8a78205a2b1c7abc096c292d617e6ee826c3782a4758655d49f49e" + } + }, + { + "type": "Regular", + "proTxHash": "1375ce3e596e7d5532c6e68816607a4b116bb7eb8a158354fc6003934c5a474a", + "collateralHash": "adc5f384e2f1c5362c91b7c89b2a91d8d351639e91ea910e80b791297c3aac58", + "collateralIndex": 0, + "collateralAddress": "XsPdtpCWt3XUPXbmnXjgk4Bu5QzLXzKBq1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.73:9999", + "registeredHeight": 1096209, + "lastPaidHeight": 2126991, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1136815, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyEkrruyCAhE6c87KkiWmafnggHQZefbaF", + "votingAddress": "XgbZjhSRLKhK2xWqt5Y5xujqHwrY1AawGb", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "8d9549a74a5dfc34f1849175d785f3c0a40d49d8f82f275ac41c49937aeaf7da77e9e28e99645763abfb9461036766bf" + } + }, + { + "type": "Regular", + "proTxHash": "1b68fdbec4d58065ba1b344b23e2172eea8db890016d68a361c3c301536d1597", + "collateralHash": "bd69aeb01723f7ca062c2d98dba398b9268eb7098396b77c1c33a0b45466a60c", + "collateralIndex": 1, + "collateralAddress": "XhXVXv1ySc2EvxSZdsAMMWWgLJb5yKFgvA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.14:9999", + "registeredHeight": 1096214, + "lastPaidHeight": 2126897, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1097950, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgwhWRuVpvKS5RLDPUyzbNDb4aRHfRbEM5", + "votingAddress": "XkU8og5RbqJ5gjMBRSvN3BfwoBesbNNmfQ", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "8b8953ea2ffcd2e552047e2f4470b52a163017f278fd24e8d79e6c80f98dfa4461b0bcb6b1614afa3cae601f55dd0377" + } + }, + { + "type": "Regular", + "proTxHash": "619ed4c9a428d0dbc99c64aba5bba2786bb92feeb1396831114f6383f706ed4d", + "collateralHash": "d7e0bfd02b1c981d518e8059f7d38ff5ae9ad635c3090601a745951b02c98ac0", + "collateralIndex": 1, + "collateralAddress": "XhNdKWAkeusNapAYhN2vquEaqGGuWR6N4b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.139.11.87:9999", + "registeredHeight": 1098225, + "lastPaidHeight": 2128545, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007643, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnAKFpZ5t87CJC72fHHpBfsBZyeUTW6N5h", + "votingAddress": "XnAKFpZ5t87CJC72fHHpBfsBZyeUTW6N5h", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "944b04e280eca3170d5b62253df16ee2cbd90dffc3ebb581fff7ca765663f619989dff2188fbebdc804da7a93eb31e48" + } + }, + { + "type": "Regular", + "proTxHash": "4d640249330140308b811a4ad27770ce8ac018116780dce14093e2cc99125bbd", + "collateralHash": "07b9516031c7fec6c6564a9f35081b152b4524e0c1c9acfc08dbb399015eaf64", + "collateralIndex": 1, + "collateralAddress": "Xm6ytCA9UhaX1kk42WTtPf7zAvpVdwJQkz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.114.55:9999", + "registeredHeight": 1098253, + "lastPaidHeight": 2128547, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007645, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvdmEWnC44P6ukXk6R5Zqi1b38Aw6jznHY", + "votingAddress": "XvdmEWnC44P6ukXk6R5Zqi1b38Aw6jznHY", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "976420a5027143213de79e620093b01e5188d27fded352a472a97c653048d67ca6fbd649ca3b52eee37fb11525a9004f" + } + }, + { + "type": "Regular", + "proTxHash": "7e864e36db68539b5b8000240a41ecce699987182697b616da47a7091c07283d", + "collateralHash": "34ffeb5593a410b3f71156d1f37a0f8d4012a86ce730ecae6ecda4b0b7f3145a", + "collateralIndex": 1, + "collateralAddress": "XjYgh7stbcTzcE7otB2WRYqmbQK2AwMi3C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.91.199:9999", + "registeredHeight": 1098447, + "lastPaidHeight": 2127130, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyuX4dfUmphY8JkmPQDosxzmtuqjGgcv28", + "votingAddress": "Xi9Yq8xsi1uuykdBda71nLhGbW51n29Tu3", + "payoutAddress": "XdjgbaavGvNv2EUxdfJsKEvpyvqncWW4tA", + "pubKeyOperator": "88a5e1926ec1998c3d408bf1db126f5a6b649f434870a20b50e4e7a19451ac7819477e0295affd95eafa813c9d244c0c" + } + }, + { + "type": "Regular", + "proTxHash": "32e0ec5d008edb341d5c6c50075e4a9f9afbb8511ea0cf2b23fde0d90ac25478", + "collateralHash": "1c298222743e8868cc2784ee48b5a6951c4ccffa530a1429c10f2220fab9cac2", + "collateralIndex": 1, + "collateralAddress": "XfDVog73qLteMECZfvzRcUeVC6hADqgN3z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.22.171:9999", + "registeredHeight": 1100226, + "lastPaidHeight": 1105021, + "consecutivePayments": 0, + "PoSePenalty": 5008, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1107670, + "revocationReason": 0, + "ownerAddress": "Xxd9yfbTyTtPHtnjavByHgGx1uV8tF9LGK", + "votingAddress": "XqKtuCP6bbzgkf7t1tXrigFuBwvpeKH4wN", + "payoutAddress": "XvupQ8nX82TUrFYmmkjVg6EpupJzGzaMv5", + "pubKeyOperator": "905196683e604bb26950da6f634780221130b58708db48b373e5e8356b2e316166277d0fc1d6a60c1402626fb6c75117" + } + }, + { + "type": "Regular", + "proTxHash": "071d1ca48c393818289269b01369c6be6a163dd3c0eee02debdf2356c5d5435a", + "collateralHash": "e9f62baf65098ea74cdfc1e7ab0605ebdd0adebec31dd39f4b3e4c2ab9b7225d", + "collateralIndex": 0, + "collateralAddress": "XfXER8qWpPd9wjHHqyuLgSEKmPM98uEiAt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.143.169:9999", + "registeredHeight": 1101495, + "lastPaidHeight": 2128549, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007647, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhcYf5MafofKh34mwSRc5JiP33XF9NYeW8", + "votingAddress": "XhcYf5MafofKh34mwSRc5JiP33XF9NYeW8", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "97c749ffcd49142ad760c4ca6309b27ad5b86421fcc14d8c5a63f3c08b789450dbd2d86106f64dd5e6e84c96f10914a7" + } + }, + { + "type": "Regular", + "proTxHash": "42db8a61c1877ff70fa6b9328db26b02fecb0a2dffa05b05e92f960dd4c5e17f", + "collateralHash": "2ac96ab20eeb98320981b5323df3010765d87d6c5768373ca63a63b3e48c26be", + "collateralIndex": 1, + "collateralAddress": "XumhtoadJbE8DExVhyL7TUPD32TPM3m3gR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.77.150:9999", + "registeredHeight": 1101527, + "lastPaidHeight": 2128550, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007647, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xyy7kDDtrwU9SDbz1smQPf2ehcnVnHJ52z", + "votingAddress": "Xyy7kDDtrwU9SDbz1smQPf2ehcnVnHJ52z", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "0c8860aa3c05a9bfb80e26b49dae338eccd1e846523bc7e37cbbd270c2324b28ccff19f5a2db31b9d48e7d9cb6ff9e02" + } + }, + { + "type": "Regular", + "proTxHash": "809b5c31d70c813b46cfc2556b1ae612d21686927ba9a04467492e1d07cb3942", + "collateralHash": "6c33d7003b48c226561494bfe574895d5d69dbf29bc5d240caadc135b314c820", + "collateralIndex": 1, + "collateralAddress": "XncXJwn3De8kAxRYzjNn1fBWKa4jrQb7bB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.76.238.2:9999", + "registeredHeight": 1102842, + "lastPaidHeight": 1870548, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1734531, + "PoSeBanHeight": 1872618, + "revocationReason": 0, + "ownerAddress": "XojGaivXGUg5Up3KPVG3F4dZw5dv83LxTV", + "votingAddress": "XcSo84BsrfzHThepNoDVSFkRQKd33CTxEu", + "payoutAddress": "XncXJwn3De8kAxRYzjNn1fBWKa4jrQb7bB", + "pubKeyOperator": "01d0ce1659fbb69190408b8985939db957a317f1bba85632f7aaa3d234edd83d3fefe4ae2ce8a75d0e378ff23bcf4cad" + } + }, + { + "type": "Regular", + "proTxHash": "cbc9dd1b3c28213c0a0fedc1735d1d3e721ecc9640ae63e1f5ccda90f5e64e51", + "collateralHash": "e3e9067cd0854c028707bc49cd5709216591f7315c51fd969097bc9a113e45fa", + "collateralIndex": 0, + "collateralAddress": "XaicT18sSZQ2Yv8BJEVgjXsXF98gBXWXCp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.218:9999", + "registeredHeight": 1104199, + "lastPaidHeight": 2127910, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs5TKE2J8b1XdfEQVQkmbGU47QNj8U6Mbz", + "votingAddress": "XiLCHngtegnXwpVEU4T65Xb67CGtma3u5E", + "payoutAddress": "Xf1CyVSKzKoJoSCxYbeyYJ2QRsQ79QAakT", + "pubKeyOperator": "888b5b28cb723a2260f523eca3fbbc30b85658e73d607094ea49aaa5f8be24476d1a57d7d0bba4ca6e0d18ed1e7588b3" + } + }, + { + "type": "Regular", + "proTxHash": "ee9bfba2984b2d950ad468304c8acb6cd4b5ba329c53b5968dba6d4af4c2f680", + "collateralHash": "084fbf67547f5d99194c5c25d111574da58a56609de7bd13da58f1c702425f42", + "collateralIndex": 1, + "collateralAddress": "XmKnfw2jtbnD6DzerWt2Q6PDTAjfL3cB8q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.122.128:9999", + "registeredHeight": 1104920, + "lastPaidHeight": 2128515, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs14acwJAduAsWejZtdyfwRrgzHtqCr9LS", + "votingAddress": "XhenjQ1ZNMTQ7rKaEYDLBtMim41be8JdTt", + "payoutAddress": "Xy6GQTvgx1sRpC6Hr31eegtaYUXq9KdM34", + "pubKeyOperator": "16eef97df9e7c18e15533b0beca29a08fe41bb8e796a5594fed2d8f9f436e6809c66ca9c55362830804756ff478db166" + } + }, + { + "type": "Regular", + "proTxHash": "98ab90be8d7aa795707e35d8f3267cd3d014b23e4a4781467e629458a23ac205", + "collateralHash": "1c92f2c245ac06aa7c12e963a77beeaba7d92d2ad5afd426690240f9962a8a39", + "collateralIndex": 0, + "collateralAddress": "XrsLMg1U21f2uJgKs8MmxAGEzy3WyKXz5v", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.53.16:9999", + "registeredHeight": 1104950, + "lastPaidHeight": 2128527, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq4hm8CSEhTEiRocag6PsKy7WENSsZtmvo", + "votingAddress": "XkWs7fC3wWjyte6rE698P9qcuhSxbjXpK8", + "payoutAddress": "Xpvqbif1VkEAQQxt8mjwnK4NFNVSRu7CDi", + "pubKeyOperator": "178b023e26b90e620f993d1923acd84bcbe82afd5a6f4a65db073883a9d091e4573071aad5d0721cae04705531f6dac3" + } + }, + { + "type": "Regular", + "proTxHash": "71b56d0155d17769932d65f1070d27847f43fbc2e5c30acae07fa9a96d37173c", + "collateralHash": "11481d65dad7336b55eecea7441e7267c1d87baa433e01b6ee4cfe768ddbd62f", + "collateralIndex": 0, + "collateralAddress": "XvqVYxWBqdX8rkoHnzipcg6vs5JYU6zmuL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.126.196.79:9999", + "registeredHeight": 1108204, + "lastPaidHeight": 2055403, + "consecutivePayments": 0, + "PoSePenalty": 3810, + "PoSeRevivedHeight": 1843629, + "PoSeBanHeight": 2058090, + "revocationReason": 0, + "ownerAddress": "XkCTJPtcmCHhQKNET8pKW98noAcUR6MDny", + "votingAddress": "XkBC8xdH5D9D6cGcHaC4Sbt4GT79SJRyxM", + "payoutAddress": "XvqVYxWBqdX8rkoHnzipcg6vs5JYU6zmuL", + "pubKeyOperator": "909c25cf25362aa298fded3f80ecc874526fae7438a681db092dd020aa83ffe3a929298247ec881a8adfadf790b0bbf5" + } + }, + { + "type": "Regular", + "proTxHash": "e1229da10883a0b32c0181b66f6a8122aa445d26bc116586573328cc3d8fdd50", + "collateralHash": "fa42595cacea8fe8a6b43f8827b1cf33b3d3b4c83e7a5cf4964852ca5de3c9e1", + "collateralIndex": 1, + "collateralAddress": "XxXQ33HndheSnbMErWbm9enwYERRc9BTfn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.58.56.82:9999", + "registeredHeight": 1108488, + "lastPaidHeight": 2128584, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876999, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxGWhUgoRvvDjhiwWZ75TyVhG59orfngHK", + "votingAddress": "XxGWhUgoRvvDjhiwWZ75TyVhG59orfngHK", + "payoutAddress": "Xyu6ikqxCpCZSU7nHDKBADZNtpfsT7mD6i", + "pubKeyOperator": "85c5393238d7c21a3276040813bb801f76a0c9918653fca4f80b8095cbbf1e0559ab82cb02ebdc4952cfc694e6b45abc" + } + }, + { + "type": "Regular", + "proTxHash": "6eff957955f2d4f9e1df10c8e42d4a68aaa759d112fcca484d013512d98b8123", + "collateralHash": "c7a4f1578409039f14ee744270384b5e9a31f7f281f314ef1c4b816aad9f10fb", + "collateralIndex": 0, + "collateralAddress": "XmNqvchdUwrooeLUNw45mWBina7DaLFu9H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.237.45:9999", + "registeredHeight": 1108786, + "lastPaidHeight": 2127718, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfkaaNVRnKtsR1DX3ejxMY9R6cZFDw4UTY", + "votingAddress": "XsSrBCpXrEJZu8sjsvWhgwvU7yNdVWfD9T", + "payoutAddress": "Xpvqbif1VkEAQQxt8mjwnK4NFNVSRu7CDi", + "pubKeyOperator": "155ca5407e534ef30487c93f9efdf3a73bb79682bbddbbb611529aa3264402780a18475d2e976b552a83dc5b3bc1cd69" + } + }, + { + "type": "Regular", + "proTxHash": "d59e0a0701987661dd7466b63cd06d8cd8b6a880e437c069d0cd39de20e06782", + "collateralHash": "1e188a55e28318080c2566c4bb005c7001c730b20ccb86c74375f3ad104b24f0", + "collateralIndex": 1, + "collateralAddress": "XfWyMTFAeKbhMpLV98ufBbAaeuwDLpkgKZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.93.99:9999", + "registeredHeight": 1110715, + "lastPaidHeight": 2125842, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqtQ1vX8WQMRFY5wxCPeprkwfxAF3kcvCN", + "votingAddress": "XatveKfhVD7ch8mjjKfUeYxbPcyEFurLCN", + "payoutAddress": "XfWyMTFAeKbhMpLV98ufBbAaeuwDLpkgKZ", + "pubKeyOperator": "93bedb9b8377f3838284d0441e34676e5f2a1b0b179bd0ec55580af31b35b692eef328e74613abfd41ae710167f4ee85" + } + }, + { + "type": "Regular", + "proTxHash": "23d78948e6f790c2a2747bd51cbf9503f5cefd5e5f800b5a3e8628ca43492580", + "collateralHash": "121d192ebef8b4d415f23838911a3311e3122164223ee24527db9ac0b893f6e3", + "collateralIndex": 1, + "collateralAddress": "XfzboWJbjUjbusTV2RKsoka4UNDMDrAYGS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "47.243.56.197:9999", + "registeredHeight": 1112701, + "lastPaidHeight": 2114034, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 1874881, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "XrmUjSG537yG4Xnpc9WwxamRyHi6kXV3Z5", + "votingAddress": "Xfq4rJgtJ8UEsx5UXc71XSEZCQtrfgSt1D", + "payoutAddress": "XpBipVqujKwBnWi3chKvi3xRwcUSEBY1XX", + "pubKeyOperator": "8b0175b7fb77e9f03f8c7bd8e757409455be08bef16212f2ce265a7be2dac3f11222ef880fb52bb73f2a4923514b1243" + } + }, + { + "type": "Regular", + "proTxHash": "1c7c3b94e57100e63c3307867acb7465b9c0627a14d0ae28979136e817e79466", + "collateralHash": "eac49c7ad1536e5ecd036977b3287630ef2bd2179e14a47da5994d7b9e803747", + "collateralIndex": 1, + "collateralAddress": "XsincBXXEGbDvTRHkVuCxqhp3Lm9j2f6NK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.179:9999", + "registeredHeight": 1115289, + "lastPaidHeight": 2128804, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031602, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmJCzT518o8ZHGdrNzDpaZgb8ETpxHmmcq", + "votingAddress": "XxnWYoVe7njGDHDeGWmF35dEQxvTqmo9vM", + "payoutAddress": "XsincBXXEGbDvTRHkVuCxqhp3Lm9j2f6NK", + "pubKeyOperator": "1806a42e229d86e223a26bccc700667c8df250bfcc69d01359afe6839dd6e933efc328b2879837fd9eb456e221324426" + } + }, + { + "type": "Regular", + "proTxHash": "4dfc4621ec8022a6a7dc3ca7e7d3c800fe6673b6f15fbab31c0370a03a647e61", + "collateralHash": "26c43d33a372a156d995b2c1bae24cd2edea781b958c3d1b25affcb3c35e120e", + "collateralIndex": 1, + "collateralAddress": "XcA2xwwRSCELw9TTu1VEHe6kje1heQQJxX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.198:9999", + "registeredHeight": 1115291, + "lastPaidHeight": 2127060, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1632309, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvftUu5rJkjKqQaw4PZWvzi1HjSPBip6jC", + "votingAddress": "Xecr7WcshWYT7LPwyHSPzcedLCCQP1jjPj", + "payoutAddress": "XcA2xwwRSCELw9TTu1VEHe6kje1heQQJxX", + "pubKeyOperator": "02a30458526be178e80dd1c8693764a9c38b0c4f796ba6a81f5a55add8c601b701ce5f19f48fadffb91a0604f672a8ec" + } + }, + { + "type": "Regular", + "proTxHash": "0d91aed9eeeedb6040ece9ba9d15aaf543272919e02f1e4c0f371c967bef4492", + "collateralHash": "c8253c539df370963a25de8bae4d5853b302c16bc394e205f1cfdbbd784ef24f", + "collateralIndex": 1, + "collateralAddress": "XhyQxxGXnZns6oqgrmh6wq7apDVYStqdpa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.38:9999", + "registeredHeight": 1115291, + "lastPaidHeight": 2128890, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrcuJvU4ZaYmoDV8d96CMw489jVAt3FgCK", + "votingAddress": "XhaJwb6JqPaWxotg7hkDQzCS8fdiU2vg8t", + "payoutAddress": "XhyQxxGXnZns6oqgrmh6wq7apDVYStqdpa", + "pubKeyOperator": "82cf5bfe103ac8af531dc1d2875197420b841241d038e2536a5bdad0437b02d62391c767d159c5dbde9dffba68432d9d" + } + }, + { + "type": "Regular", + "proTxHash": "476cc3d56d8b9d0656a2f2e2893bf410ddc7c616283f4a9b18dd062ccfd371dc", + "collateralHash": "849ec9041e813dcff89ae8127b53b78fa5b3eddcb873585495ff5bbcb39bf945", + "collateralIndex": 1, + "collateralAddress": "XmnQBf4r9XHcvHnBpJ2vjhYAUmGuJDK74q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.45:9999", + "registeredHeight": 1115291, + "lastPaidHeight": 2125840, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1639041, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtuuzpx6sCPvPqEHqcLPqbqP6DA5xQaD9v", + "votingAddress": "Xb6rKLav2gX8UootiPJtznxaJiYHKG3zTM", + "payoutAddress": "XmnQBf4r9XHcvHnBpJ2vjhYAUmGuJDK74q", + "pubKeyOperator": "8127f7d4e1f05981f37255219ef9bdce0b1d90218777e1e0ac336f57436ba83a47d9af9a16747871c46b2b8a8ef40715" + } + }, + { + "type": "Regular", + "proTxHash": "e2350ba9f842afadfa8364592acaa2f5e32556e4aa91144f3d6723ad7d34b948", + "collateralHash": "77da7ffbacf7ab954cd55669d503a3b22ae7f0d01605273937241aaf072b711a", + "collateralIndex": 1, + "collateralAddress": "XnYTpfX52g4cHGf5SnipodeuQCt9iPjbVU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.187:9999", + "registeredHeight": 1115291, + "lastPaidHeight": 2128888, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkhgn1mJmBeG6inzCuCvqSXHCmg2XWPAvG", + "votingAddress": "XdtEGFsAgqfjWdxTe3D1VpcSe48apbcUtT", + "payoutAddress": "XnYTpfX52g4cHGf5SnipodeuQCt9iPjbVU", + "pubKeyOperator": "08ba60669c3b23142dd0fa6b5668ef336bad9844e6f776b99fb9ebb9880428dccc2dae8eb7f13c20179a1ce2bd0e280b" + } + }, + { + "type": "Regular", + "proTxHash": "b21e86254535fe27447c2cda27b62c75d947a1b5c739127e3c738d04353cc73b", + "collateralHash": "e21dbe646e2a838a84e0c2293f9e1b7ee16400a8407efa21e85126f2fae64122", + "collateralIndex": 1, + "collateralAddress": "XgyWZidbYsEWRkS8t928akp1S1pt9v1ZuB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.78:9999", + "registeredHeight": 1115292, + "lastPaidHeight": 2128891, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XttK4wQ5UwE7Nknxvmibwj6bhYouCNDy6F", + "votingAddress": "XrUFX1BGv8NGqFg7pTNV9gnR6zffzZRgg3", + "payoutAddress": "XgyWZidbYsEWRkS8t928akp1S1pt9v1ZuB", + "pubKeyOperator": "1113329c269d0048394dec8b649939e3993de488e3a5b89363b2262b6aa34a9871f085a0c7e480d2104163c0e069a445" + } + }, + { + "type": "Regular", + "proTxHash": "4cfbaeda6deb0f05dc1cd8e5ba796cde4cc4b0ff1edf304509fe1bbe853ebc7d", + "collateralHash": "8081d41ef4a2722f8d79e4f54a23049093a69c9cae2770f04bb1f652f47e1659", + "collateralIndex": 1, + "collateralAddress": "Xhh9y1hhmmUpQEtnr63si8SbeFc9Na4PUr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.24:9999", + "registeredHeight": 1115292, + "lastPaidHeight": 2126883, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1623309, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgnFq5z91gDckFT9mQWExjnDjzGy3Hv3Zu", + "votingAddress": "XsuKKZu6d96bqmbkeKhZfnFuyPX2DvhQid", + "payoutAddress": "Xhh9y1hhmmUpQEtnr63si8SbeFc9Na4PUr", + "pubKeyOperator": "15481386bd16a61ebbeed4234901867750626f49b520c4448b9e050a81e7a370ef3e33788c40bd8431ad457477093b64" + } + }, + { + "type": "Regular", + "proTxHash": "a1d56b38df0a1e163d580e24fd8503f5c2f063c9458e35be7b846589f1880dae", + "collateralHash": "2a546eac1b1136ac635cd6265c9cc409e1e7ec0ec481906abab1eedfb2bc2a6f", + "collateralIndex": 1, + "collateralAddress": "XmJpxSs6GCxomYGswe1t8c3pTuF8D6458h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.79:9999", + "registeredHeight": 1115293, + "lastPaidHeight": 2128894, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh64HxcQDHpDg13CVkGqpEH6jCEUwMU1aP", + "votingAddress": "XmmFzWs3s1NE6oMDPgVHq2B95BYHV9HC6U", + "payoutAddress": "XmJpxSs6GCxomYGswe1t8c3pTuF8D6458h", + "pubKeyOperator": "0f5029dde490c93271d30b303a21fb8bbf35d66508265803783626e182397aaee7edc2fb77fce6e76a6a9c710b5fb89d" + } + }, + { + "type": "Regular", + "proTxHash": "53d7054f6b4845803464d2b699f329c43fea53a11da53e4d8660648651e54b23", + "collateralHash": "849cb18c66c188c4e19bd8d86cd3f3334a364195c0ba0484b409a28bf0843054", + "collateralIndex": 1, + "collateralAddress": "XhdXyucDjwdx1ojREJDMWh6ckH4XMm9ewp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.156:9999", + "registeredHeight": 1115296, + "lastPaidHeight": 2128896, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkbXguQTrX4kCes25xcJ1kEjMMpfzhvZGv", + "votingAddress": "XvjwcbQQ9peKyEknYA9fDTU4MZEDtVcwhY", + "payoutAddress": "XhdXyucDjwdx1ojREJDMWh6ckH4XMm9ewp", + "pubKeyOperator": "954c04a289aa412f6b7d3a8781a50d48f2934cf8760d790467ff7b6ecc3eef00cec715e0103624a2eae2df251f5ff668" + } + }, + { + "type": "Regular", + "proTxHash": "935f07abdfb8038282bc4a0485387ba6676a5e49199b0c23fba35334d53d5ab8", + "collateralHash": "f7a32df18a54c103c20320de45d1c614df3276c62429d4324f91a197d9ba9913", + "collateralIndex": 0, + "collateralAddress": "XmPSjg42NrYjyrE39u4D3fsY8QNnzVgYBv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.244.116.110:9999", + "registeredHeight": 1115590, + "lastPaidHeight": 2127919, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1958202, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XppSRoG6P3VRa6TEkThpk2a1ruqK2qqBCa", + "votingAddress": "XgxAqWNhUgmwTFcq6HXyjoSCw2vbTBFSSw", + "payoutAddress": "XrjAmosceW3ZvkQMmyQwgQmjmHidvPPvaz", + "pubKeyOperator": "89f214868176a6719445f91395542a2669b6625d6d16082e7917492b39c638637129efaac9c9d6f73e7368a2794f9b65" + } + }, + { + "type": "Regular", + "proTxHash": "3abf36f38c98bc8c5a6c7b849ca53b7a84fd1720132ea582f28cfe9a8093a8ba", + "collateralHash": "695688a1aa562426e75c0881e7ed7bd8e4a988caad65ae4397b4d8b6250736d4", + "collateralIndex": 1, + "collateralAddress": "XtN2xCrxW2zUm3JMZKbuVenYxJeRMiPpLx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.231.214:9999", + "registeredHeight": 1115690, + "lastPaidHeight": 2125880, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdAU9fiYmnKAR5B9Lfuzu1WT1kutkeyT8g", + "votingAddress": "XkUjgTwzsLg1ZUYxMZyR5dfJzkU3Nbt769", + "payoutAddress": "Xi82Z55qQbc5GSj3q6vrTtFrEzRq22WGGi", + "pubKeyOperator": "1070a8587e86e512e56d191453a4a4a6f46b49c437d8ebeecdc635c419733e9fd6dac549d98f0201183ff1dc368dc612" + } + }, + { + "type": "Regular", + "proTxHash": "03e1998fbb531bc064d2b65fac261c8b4df62e52daa26933ee2ad0d69d1a27c4", + "collateralHash": "99eef08ade74917e4722c569484ffa1038a46409e2f02228d19fb63363e6ab2b", + "collateralIndex": 1, + "collateralAddress": "XcbJeAtewEAwvZTjMMhHsZCz6EpxsZekXR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.226.245:9999", + "registeredHeight": 1115692, + "lastPaidHeight": 2125882, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkkkvyn9UDoncGdEz88QFprS7Y9vknbgaT", + "votingAddress": "XpziihaMsHQpjDiVVpMg37vbbMKC22g18g", + "payoutAddress": "Xi4e5vaMqHusbZSmfacDgnPaXSFUV5TSrm", + "pubKeyOperator": "0ff24b5b8e1f178f0845466eef113cea89682e0cc3472590437043d6bf00d8f72b06977daa9437d681ef536391c2add1" + } + }, + { + "type": "Regular", + "proTxHash": "f735ed1bf904e41d7cac7295052fa2e040a8f861aa9cc6df603ef0c5219af746", + "collateralHash": "17e9e7823682b112a70d746090608304f0076afa5218bb417b85adb1b533b85a", + "collateralIndex": 1, + "collateralAddress": "Xezq5j3zDr6D6USJQF1nknTNC51wkdqyCz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.75:9999", + "registeredHeight": 1118672, + "lastPaidHeight": 2126216, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1120919, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xax6hR1W9iTpmFqcaeWtEZbBKTrorSESmP", + "votingAddress": "XchJtCYauQQfQmdvsqmzSAz9qGa94w7Buo", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "07cad522fbcfd0cd25f00f42c1ebdb53cf586e5b4e06318759c73e2b2b4d9f9db0ea237504f876563bfc059b3156e104" + } + }, + { + "type": "Regular", + "proTxHash": "887cb1467004f290ffc1d2875587679e3f95c4d7b8931ea569171b657c3d21c3", + "collateralHash": "4cc5cbbbc16ce0dcba7c94e3044d1ac05f82638742776961e45d9ff776782dc8", + "collateralIndex": 1, + "collateralAddress": "XnPiuNsN9d3bxLrAoHzX38qZsGXSBZJ6n2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.193.19:9999", + "registeredHeight": 1118694, + "lastPaidHeight": 1870556, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1734531, + "PoSeBanHeight": 1873194, + "revocationReason": 0, + "ownerAddress": "XfnXykPVFsBLQySyztckn2KhHMsMAsNVEH", + "votingAddress": "Xo5bvoHVAo3Pi4gwaCMJ5vjZZ6DxSxBXAC", + "payoutAddress": "XnPiuNsN9d3bxLrAoHzX38qZsGXSBZJ6n2", + "pubKeyOperator": "0c999de70d3024ac5b0b5ad53c5d7a5a74c4cfbf476122a017de8e74514ddce4eb2db32c011968410554ab556d474f81" + } + }, + { + "type": "Regular", + "proTxHash": "58dbac03784a2e063851e570d52c4e1a453bd8713ea552201c139eddfd155808", + "collateralHash": "84031324da615a1dc7464c205f2a8bd0da6bd9b45f71a58fe4ff7a1e04fa7b0b", + "collateralIndex": 1, + "collateralAddress": "XyVHvDneZfGgs55se2gKTAiMYmpyGnALrh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.193.17:9999", + "registeredHeight": 1118847, + "lastPaidHeight": 1874212, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": 1734531, + "PoSeBanHeight": 1876362, + "revocationReason": 0, + "ownerAddress": "XpTtNM1drjAD7pXTGm2AZNwuhLV82BH6qy", + "votingAddress": "XiUbGB8cQh7WeGZP9HQxGyQv5LHeycNdNX", + "payoutAddress": "XyVHvDneZfGgs55se2gKTAiMYmpyGnALrh", + "pubKeyOperator": "134e8547014bc334ac7ab1ee65b9aa106f041c556182ca5833b526ce2d722740c1eb4f93944fe9ecb3ec342da9744d7c" + } + }, + { + "type": "Regular", + "proTxHash": "8ef5f57933286019531241bd2c5ca33c4aaefa20bef02b11404e8bd136001274", + "collateralHash": "4c4df78327b0e6e1911a56cbe9684db7f88475a6b3aa9622a42e130e062eefa4", + "collateralIndex": 1, + "collateralAddress": "Xh4Tuu8zJF4ux5nH188hL841gkbuoHwcia", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.12:9999", + "registeredHeight": 1121575, + "lastPaidHeight": 2126606, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqVBc3J15taHZhkwm6AMbsKpoTzijW1ipS", + "votingAddress": "XqVBc3J15taHZhkwm6AMbsKpoTzijW1ipS", + "payoutAddress": "XprdmU9WDLmtHKXe1ojqPFFoARmTBnZrnW", + "pubKeyOperator": "9888d8e257e399507946de1fc73e45ca9b3cba7909a31fdf47c9097c9af9a2d99e0d3bdf98c675d9b1f0ff963cf59b71" + } + }, + { + "type": "Regular", + "proTxHash": "f50b9274993108ec65daa83df511019ce7d30d88f69c28874124508b0c99d7cb", + "collateralHash": "48c130384fda0d0c85c0c2f30fe349b85535d786e3278cd4951b8ea915633139", + "collateralIndex": 1, + "collateralAddress": "XpG4gKzGQGzNHSo1fH12dsKdnF5Ya3QCVR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.13:9999", + "registeredHeight": 1121575, + "lastPaidHeight": 2128847, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1981083, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtnkTdCRo2nmnk8kRSuk1QbG1WmoYJHomN", + "votingAddress": "XtnkTdCRo2nmnk8kRSuk1QbG1WmoYJHomN", + "payoutAddress": "XbYZ8gJ8UePoQJrk17Xv611o2x6HhHayFH", + "pubKeyOperator": "832ea16f666430d354cc9009d6cd9257aa213066de55f757b29dc14b90d4b8b8bc195b060b7b7e25bc6d0e033deaf19a" + } + }, + { + "type": "Regular", + "proTxHash": "2e13cbbcbe0095ac1b0c38f636f78e0e09be48be0ec1df30abad4e807d9dacfe", + "collateralHash": "2f6ff0b62d180723f61f400ca9277ee44d7c625cac856269f3e16dc4928958f6", + "collateralIndex": 0, + "collateralAddress": "XjQcGRahfncKUwVmrR27RSkYMayhHDkurr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.85.28.10:9999", + "registeredHeight": 1122209, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 5008, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1124507, + "revocationReason": 0, + "ownerAddress": "XqYj3KrDbTTRrB6vM1f9F59X6isZfZAbZf", + "votingAddress": "XqYj3KrDbTTRrB6vM1f9F59X6isZfZAbZf", + "payoutAddress": "XjQcGRahfncKUwVmrR27RSkYMayhHDkurr", + "pubKeyOperator": "98eacba4f1f6fc5c85cf51fe6afd92d9d414874f608eba623f7f557a1b06491d52d2cfb2b72944d294ccfb8ac8e71147" + } + }, + { + "type": "Regular", + "proTxHash": "489ab60e91a568f6b00ec17e2211168abdc9826aed56c6da1687411a54504fb3", + "collateralHash": "0fe2679bacd363516fb97f9f67b9dcc8231503c23ea1f70580339b704cca4cd9", + "collateralIndex": 1, + "collateralAddress": "XhF7JuJ88xpYcvPDNaPUprMLo3sKoBjQE9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.236.183.29:9999", + "registeredHeight": 1122705, + "lastPaidHeight": 2127445, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1780686, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XatgeXZyg13nrpEN9bhArb34b7fo6rBkxp", + "votingAddress": "XatgeXZyg13nrpEN9bhArb34b7fo6rBkxp", + "payoutAddress": "Xz1efgQkaP2w2bmg24RbakUtF7zQbCLQ7m", + "pubKeyOperator": "09621d91610823d2676d9e19f8230406a27bceaf2f576cbff13fe46aa33b8d3d651ec39ac3e83206c4f8aefd4d340bdb" + } + }, + { + "type": "Regular", + "proTxHash": "d22d2d0778ac82adc1cf6f180784c9862be735fe17fd5bd2673a8267ce1074b7", + "collateralHash": "90feb5e981d4d1ee73d61978305c82d1a3601d396b81c1ced248b3d46286cfc4", + "collateralIndex": 1, + "collateralAddress": "Xvy8niVKbvfe9k9t1Y32RCC6sHFcYEtNUF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.203:9999", + "registeredHeight": 1123025, + "lastPaidHeight": 2127534, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeR7taiizqEjLpem6KSiXzEQecsvTMBpvh", + "votingAddress": "XeR7taiizqEjLpem6KSiXzEQecsvTMBpvh", + "payoutAddress": "XjKpwTPYfJr9UTpwnikTVuNfsR6ettUt7z", + "pubKeyOperator": "0b6abf17b6d3e19533a2d248bf6ae924e30996eb1e015808914772eea21ce3585977331b22631edf553712b774aea011" + } + }, + { + "type": "Regular", + "proTxHash": "b1c3644094c1bfc2f8e50a7f642af7714c58e89fe5a741d740e87545934da756", + "collateralHash": "83c786a17e3858e9594358f89c63f6708ac6dede4761161ee2940fd5b786e0e8", + "collateralIndex": 1, + "collateralAddress": "Xoiw5WS7ibR3o7UKsSErcyoU4gZ5Af94ic", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.199.131:9999", + "registeredHeight": 1123964, + "lastPaidHeight": 2128548, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007647, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvSkTHjDm9jZz18PGepzwYKKBVykSLy3B8", + "votingAddress": "XvSkTHjDm9jZz18PGepzwYKKBVykSLy3B8", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "0fcea3c0eeb8827c43b564c5167f35e0cc3292dd568121dde064ee7b281188c0f55c9b6560438eca7058f2944f46b5f2" + } + }, + { + "type": "Regular", + "proTxHash": "2dedf714e70a7ea193f7602609fef84118d87ec3cf35f59c00038da099927587", + "collateralHash": "0f3795458df6604d945cc56f1232629eacb334c1fc688e758e9e2f3f99cb1728", + "collateralIndex": 1, + "collateralAddress": "XxBtwHe5kfe5tSuETVL81miqEcbBnjZx3r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.88.181:9999", + "registeredHeight": 1126443, + "lastPaidHeight": 2126632, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XonbE7HsfR7XLzRshUKeZpkVfBxNAAm7iV", + "votingAddress": "XbXY8D3MP9r4v7ZdGEak73thq1bhrzLM2t", + "payoutAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "pubKeyOperator": "99a107fd4ca280c5b3f022e0919c92fec3510a44c4f873e3f8e7d4fed63caa7e5daeeca7291127756a5e969e547bfeca" + } + }, + { + "type": "Regular", + "proTxHash": "dd41efe4aa2f4a964461e3702fee7e8c194b6b002dd32f4179b82fcf448aad2a", + "collateralHash": "21918d845b982398cd422d691b423f7c814fbaae8d64ccc7e347f6ae4766bd77", + "collateralIndex": 1, + "collateralAddress": "XpRb9WvMtpXyekJZAphw2Hmk332Hr2V1be", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.15:9999", + "registeredHeight": 1127222, + "lastPaidHeight": 2127079, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmtNJghxiH6ma4x2kKdarXbCGaPvoKS3vE", + "votingAddress": "XmtNJghxiH6ma4x2kKdarXbCGaPvoKS3vE", + "payoutAddress": "Xn7hob5UwvrwNDtiwfdhAGjND63tLefvzJ", + "pubKeyOperator": "072cb994335d33e96df25d2cbbfd213298de7d5d60036786cf99fe658658b526fb5d03bea5a6e49e3d34ad015103ca2a" + } + }, + { + "type": "Regular", + "proTxHash": "33d2ea147de893ea7486aa9eccfba4f7172676f3b366c6eaf77a5e647cbbcbbf", + "collateralHash": "ba94d77789c9a37642a2411abafb9333264b54cc9039d70a68e853751ab74872", + "collateralIndex": 1, + "collateralAddress": "XfMUFJUNqsFgCtAgEbeakFxiW4cVyr21nW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "37.18.227.56:9999", + "registeredHeight": 1130378, + "lastPaidHeight": 1752466, + "consecutivePayments": 0, + "PoSePenalty": 4468, + "PoSeRevivedHeight": 1734379, + "PoSeBanHeight": 1752491, + "revocationReason": 0, + "ownerAddress": "XxKgC21PRMxvLzeZkCQFV3KkYBgstAfBvz", + "votingAddress": "XndJdisMnJrr5x5PxM61iJfobcGsE15cbp", + "payoutAddress": "XySDCtqUtzgkjX8QLu9MzP8AZQJHW7ZAMp", + "pubKeyOperator": "810fb34e96ab1a3c37b6ba2872730e3d3eb1cc2ee9ac82265540adc1c113e4a18e89d80de9112e235326969444ce48ab" + } + }, + { + "type": "Regular", + "proTxHash": "10e6403d88b062b4302c40024e2a66adc6127ae4025e6ca6cd0e357c8c3506ad", + "collateralHash": "c1287e0ac0dc5a80008f945d78bda383a8d2b00753b3ceddefcd7d721a542a40", + "collateralIndex": 1, + "collateralAddress": "Xqdh4MmLd6JfPeeotYAkTisHtevfmKDikn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.191.14:9999", + "registeredHeight": 1130602, + "lastPaidHeight": 2128562, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007649, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcm2Jk6z6Mm21f7evTpibDiBiDR5HrJU32", + "votingAddress": "Xcm2Jk6z6Mm21f7evTpibDiBiDR5HrJU32", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "97c96120ed607837530a071729c7ef1f89fdf0707bfe41d63d33d4720e0a0359e664d5e5775572cb6da3eebe81faf811" + } + }, + { + "type": "Regular", + "proTxHash": "c8ec1547238a7fe9ff2e86eaaa87867398ec22e4d7265026822a6daf2e429b83", + "collateralHash": "6faa36980f06a9112a7f8fa65d30e7735e95a5ee0867d11087721de7c9344dbb", + "collateralIndex": 1, + "collateralAddress": "XcqDbNvTEbA2EE5NpieZ1jX5GLUHr2bgqx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.225:9999", + "registeredHeight": 1131453, + "lastPaidHeight": 2126690, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbT2SrvnxbLaJtk1KQbhNncJD776TrmEhs", + "votingAddress": "XewwGngjXDYdpHFL1jQfNbsazYnYhNeWCc", + "payoutAddress": "XkLndYhhvivYgR2xi79MGHYkJ6z35YfYXS", + "pubKeyOperator": "8d5d305afb360dd8b71a27fc25838624fa4ea1e5f6e3537946ccb65a6e266a41f208043019c40073c942e99438f2396f" + } + }, + { + "type": "Regular", + "proTxHash": "b11ecbbd8e1e3b634fc930bbb41253c1ad931c329136ea0564d55eee633080c1", + "collateralHash": "60631d868c38bca0ea78f995ced206450010acd24f9b4371051cb9d426ca17cc", + "collateralIndex": 1, + "collateralAddress": "Xjm1o9xgZmmrEQsLGEZuR9D4FngdouzPL3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.21.185:9999", + "registeredHeight": 1132265, + "lastPaidHeight": 2127571, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1584888, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh6MN2PLtsbaoEDhWH4QfpLN4stbqSX5R3", + "votingAddress": "XsKVz4FBYB5gZEqEGckcrmr6iuz6Vkjodu", + "payoutAddress": "Xtr9TNBtrqE87EUBSm9MhobrFXQEjSAFQo", + "pubKeyOperator": "081e63cbde87a6b88041b47ae65b35ac74c63d4819c9c3e491802b338801fb0a0ff9a66aed78270f7da09c6b8070a43f" + } + }, + { + "type": "Regular", + "proTxHash": "58a3e9b92ac4721246fb44934345826c0fdb54b8a1bcc0c6b851d335226f2357", + "collateralHash": "595e8879f89e1da5c04098e85ab65627d7bdaa8c2c4918bae5b893774fc56ef6", + "collateralIndex": 1, + "collateralAddress": "XeqUGV7WPTaMSEhK9TpUDHgR67DYVaF1yb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.22.176:9999", + "registeredHeight": 1133924, + "lastPaidHeight": 2127020, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120960, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfe1bSC5NKFBT4xwCVKeic1BCT8AGLy1vp", + "votingAddress": "Xx67VWEsGpNFu7mz2i5v5nvC6ivNspnGsd", + "payoutAddress": "XxtD72x2U42UvrfYcQxJKpAKerzfaUHbGj", + "pubKeyOperator": "04c25a639f1d660989db103cbbd791361480efe5ba50f5ae3fa0a723c6ff362ec253204da513cbea997670db3a703eca" + } + }, + { + "type": "Regular", + "proTxHash": "1e214c849e3bf0cc366b2112e37acf59bffedeabdf53c08729434406a62dcc5d", + "collateralHash": "1f490b66d42e20da9bbfc091ecd9a0657d806b37cf77721f9a3806ca3181add3", + "collateralIndex": 1, + "collateralAddress": "XoB8eU3DJapWYkxJXsd8K9Ywzsgpj8kXuX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.144:9999", + "registeredHeight": 1138223, + "lastPaidHeight": 2127909, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvte3ij9PD2LjCbpotf8T1X4LcbYWGqo58", + "votingAddress": "XmPB6fcjARqgsfh3GKoGZcyCmdGZ8Hao7C", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "0a15e85214ae491857bfbcf953ca556a3a5aef842c27ed49cd7d9f9ec4bac6680d2eb90d316eb9aa217ca00e03e9ff02" + } + }, + { + "type": "Regular", + "proTxHash": "bb14009b238f81de0a7a925a20cd438095ac92e76a90a7a6aec6a2f8e8fac6cb", + "collateralHash": "5143458459fc38f57bf0386446610564981fb765a4ce9f9ec3a80295ec4be7d4", + "collateralIndex": 1, + "collateralAddress": "Xbow2cVrCwRbZTKdb3D9hwMw5v9xH9ggk2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.134.138.88:9999", + "registeredHeight": 1139251, + "lastPaidHeight": 1377041, + "consecutivePayments": 0, + "PoSePenalty": 5089, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1379219, + "revocationReason": 0, + "ownerAddress": "Xr367TyGnaTRAN2AvCtdj7WHy5LEnG8p2C", + "votingAddress": "XpE9xtsxgjHSyesUQnvr4wjeMUN81KKqFG", + "payoutAddress": "Xf714jP5CDkFcssTwf5zyPMVmdsbU6Tc63", + "pubKeyOperator": "023b1033f2d13be0799d61dc591a7087c3adda1f991bab5f27d45751ea3729dbb1a294f288875694c652a64bb5471708" + } + }, + { + "type": "Regular", + "proTxHash": "5d98a19a641db216ccb0871406d0c3b9e6e333b5b0483828aab92e7a74bd827b", + "collateralHash": "a71fa00a49049c3130ef5f58c2a8d50672244739fc1a66bad385ff6205d9f76c", + "collateralIndex": 1, + "collateralAddress": "XdBkxFq7wLTNJSf7cFjSZVpmACmefmG3D6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.130:9999", + "registeredHeight": 1142438, + "lastPaidHeight": 2127401, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xapc4iC14qRv7yNfGWXgz5WgcBEm323HUd", + "votingAddress": "Xapc4iC14qRv7yNfGWXgz5WgcBEm323HUd", + "payoutAddress": "XhqugMd2YFL967yinXN8k78dSRfHiYuyCp", + "pubKeyOperator": "013229c4888095e41ce26a1e95765e7956e648e86cd85bdc357483795596b5bed52a190317fba02c3bccc1595dcc338e" + } + }, + { + "type": "Regular", + "proTxHash": "e0d7aeac3dab8ae5814f8439da21b29e9213af697eaef1aaa1c329f596f9a8ec", + "collateralHash": "24d8a69cceed0cd5b64ea54f46bfe2338a3e69701c1784cd01d23f2c0bc0137f", + "collateralIndex": 0, + "collateralAddress": "XyGrWtkiXWxziFnVXNefSuheuXBytCFjFz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.130:9999", + "registeredHeight": 1145227, + "lastPaidHeight": 2126021, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeTnKCboPs1Sp5Ggcdo3ggaui7AEdpfSyh", + "votingAddress": "XuR2x2cTJ8sLXnw96GofdD7xEJB3szRm5x", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "869b17941379bb7efc0c7cdc51958df66e6280c1a12b7f17e14f3ec7562edb8d7e7f32bb0a3f93d3da5326560d61cfd7" + } + }, + { + "type": "Regular", + "proTxHash": "4cd226491211688dc1a7743c3ae06462411c4d48f90a40146f0eb2720d86bf4f", + "collateralHash": "928bf3fd7f6296183d3823e3778ac55381817f33ba06c79f1ee9d77ba8991849", + "collateralIndex": 1, + "collateralAddress": "XyBRKFcjuH6uvfE2hxcUcq4xd3ACZu5ece", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.153:9999", + "registeredHeight": 1145232, + "lastPaidHeight": 2126022, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcZDhVrat3J3yNXui8Ynvzopw72jCQurFn", + "votingAddress": "XgNeDyTGWqqEe94kJNAxCunzis7gU8bnDn", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "1534b67ae4a1e083e92080711f4ddb633e827a0003a0c8a6ceeb7fcb50aa2ac1f21e29cdc1c8d084d624f68e0cc557fc" + } + }, + { + "type": "Regular", + "proTxHash": "7607c48cb6611dc26d0a764144a92c963389ec58dd2407fbc3c0ae8c062db211", + "collateralHash": "6025a93e46f8a58af24ff2e4c73ff7cfcbd09eab4b1a55b3b478269c4047ea68", + "collateralIndex": 1, + "collateralAddress": "XpHNet95YG8v9nZd7fK8Fv96Wkf4tr7Ti7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.148:9999", + "registeredHeight": 1145234, + "lastPaidHeight": 2126027, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xru2Exeb9qL7fWuKq2vHrmhzsbRn8W7QKF", + "votingAddress": "XfcUhvB7KaMVZHJ8RcVmsVqCCu8HzjWfRh", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "8545e33839d9f789e6c2a915b6a6f347d77f8542078dd0b7d23612cc7c2b56ee6f7fffd33f2eb281555b9fa91a6a0c92" + } + }, + { + "type": "Regular", + "proTxHash": "b0d84b6939d0be2cff89e9332c8a7c15f005ba463a4bd4d7c2066e60bccc40ed", + "collateralHash": "89f8e5e61936e1ba539eaa45fd1d21889bd122323a7498d182b7f5c50869e248", + "collateralIndex": 0, + "collateralAddress": "XqSn2Fang3v95Q2S1r9FSdidhhDuv7e83N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.3:9999", + "registeredHeight": 1145238, + "lastPaidHeight": 2126028, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdxhpQdScXoFBmvmkpvm3fPthhCqHCtopE", + "votingAddress": "Xsz5MGKs3MNM7v3Zdh3dWpFEw77SrV3kyU", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "8a2d0ffe84bad9f3bd378760adb04627e8d62423e64aa4ca333eedf4b63c1202a3b96c810426dcfde237441797b57b98" + } + }, + { + "type": "Regular", + "proTxHash": "9ad5bdf3563cdc1ebd523fba68deb56dfea62cf4d5512ded421fcfd5bb681650", + "collateralHash": "4b1675a83d18d628da934627f4f9fc909ae498c9d87ac4eb009d009b6023937e", + "collateralIndex": 1, + "collateralAddress": "XpBJvaH6CpGKwNzakYpo5fwc3LydgEQ5X3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.129:9999", + "registeredHeight": 1145246, + "lastPaidHeight": 2126034, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgmr2VzGureQA8qNJF9uitPe2QeCSjhwGG", + "votingAddress": "Xaqjjg1WT3K3memfaDg2uYBtBzJrkU85o1", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "08e54f445249015ef165e167eb8d86dd1be1fb5c430e213f51cd2b56ced221ccca9f32947cf83da6839371e3556dc2f9" + } + }, + { + "type": "Regular", + "proTxHash": "08a0381c156734feedaaccba8ab0c3271c749673466d84bbf575e340120b9c3c", + "collateralHash": "73fee60b79c06ff78e119d4698f23008809555a41fbdbca079018101ba07c742", + "collateralIndex": 1, + "collateralAddress": "XtkdgK9u4VkogPUCD4EynGikiR2DweMsc6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.129:9999", + "registeredHeight": 1145248, + "lastPaidHeight": 2126038, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxipAahF9BXcLBcLFk4hEzMSpF4vgBycSo", + "votingAddress": "Xp15TG6wu4D5kAKi9hQt5udDBsooodPUPt", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "145b47c422500660c83b9f5c119146130a31a3b6548f91ce209c4e0867f1ee1e39696f05b4c52404db9fe92c3e79cbc5" + } + }, + { + "type": "Regular", + "proTxHash": "ffb648226910f34f9afe87f88990cf651d8ef853ed201919ae269aa42aff8f64", + "collateralHash": "5d778b857b5bf1d958cece491a09d1921b0ea99a21dd4384beb3b0681ba59d1c", + "collateralIndex": 1, + "collateralAddress": "Xk8gqzykaCGHFMaZR3XkqsjtdUnyGaR37u", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.2:9999", + "registeredHeight": 1145249, + "lastPaidHeight": 2128771, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1866284, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfrLox6oDgKuL5xeH6XshShQau7xspAPh8", + "votingAddress": "XjhF1rTk3SzxwkUrNwvCmLntRkUwEXkLTu", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "0584cade63658358147fdd565bf76c9dd7eb4c13e806ee49ca4b5486f01aad6b5ec8ae34efca35f103e6da13d6c5482e" + } + }, + { + "type": "Regular", + "proTxHash": "6ba5ccd3e46d6700ffabee07cd53fe5d302c63d53db9603cd8a55e4c4264c4e9", + "collateralHash": "048959260030715b4d7c97cc63b7a83e157cfe656cb2910782bd6264531df52b", + "collateralIndex": 1, + "collateralAddress": "XjrkSpSfMvPxQUWYVB8qNuvXiZBERi3iNT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.145:9999", + "registeredHeight": 1145251, + "lastPaidHeight": 2126044, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpTw2PZexZvRD7PcRqQGcrRWBbdrKGtvnb", + "votingAddress": "XmrvtuGgi9n1u7We1af3BiVWHwZXeebZzw", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "05d020d5e00e9adf06802c53e2e3a9bc059d41a171da9d763d0b907796aed2133a944913bd7f6721aa0653fd9490f5ec" + } + }, + { + "type": "Regular", + "proTxHash": "331dcaca797704b754964627b656af59b31c885361d4a7e308a1434ad41a1187", + "collateralHash": "4697b1832367ecd3ecea8b3ed632c92be950957c428b48845400608443bcc271", + "collateralIndex": 1, + "collateralAddress": "XbAkutJPKLs8gzEETSvXibsi8XzTV8CCMp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.1:9999", + "registeredHeight": 1145251, + "lastPaidHeight": 2128854, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1866326, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhPswUxyHP5YyuqA34fe3ov2mRr94Zw7fB", + "votingAddress": "XsNhMqEF72umxJy5Zgk3qYZJ9PotJo143i", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "0bbbe5b660800086bc5b60a2100501ed7ff4dbffcacefde6de62a377cd85d1fafd5fe35c3cf2b8f64da01e636bfb008e" + } + }, + { + "type": "Regular", + "proTxHash": "2af26b51bb03870c55e55979623ab44bd21d0e15b908a81f22dbd56ab7bb2bbf", + "collateralHash": "0c304a82969ad9e4b4935b00f4679681affa0c67ff72ab0ae17f1a83761c4f8b", + "collateralIndex": 1, + "collateralAddress": "Xt8JpspPPZHYeqb5tKVbAAuc3vS4mvtx2E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.0:9999", + "registeredHeight": 1145252, + "lastPaidHeight": 2126045, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsYsenDxJpe2L2DCezhAEYB43XwzUwU4RH", + "votingAddress": "XkAN8W5WFWGYsWBHmyo3AHy9r9HD6t3Ty2", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "92036164965e17bc10032da7cb016c97bb62bc243e3b9ccc8937e831d1e586796eaa49d6926b6173ec5f14fa1289be93" + } + }, + { + "type": "Regular", + "proTxHash": "cc54edc875aae7158e27f433ad8c9766678b5d1e94630fc502634822539048d4", + "collateralHash": "48ab5a7ec0c6cfa94153c49cb24b68f520bd9f681eecf9bff4e1c436a785eff3", + "collateralIndex": 1, + "collateralAddress": "XbpnzmAyLofExUt3LhJTBdXMaAD3RRydHq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.8:9999", + "registeredHeight": 1145300, + "lastPaidHeight": 2126162, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjerYVv1HPGETahCqBMnGjHkSotdwqkYrE", + "votingAddress": "XnpwpFbdUUe2kyjnsAVei2aD2AMaUxmZBf", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "0ea6752dd1e19880a503ad2f87c580e17a6624da48e9980e55fc7ce81614d401d887352ed880f9cef2a82fbbf3184ed7" + } + }, + { + "type": "Regular", + "proTxHash": "2a0ddd14c0aa7d1479f784f6f0056dc6ce5582b4bacea8cff1a1c241da395056", + "collateralHash": "af4c1a033d15d5b295760a4f1d929a53c739cfd46f689569bea152bce38a38b9", + "collateralIndex": 0, + "collateralAddress": "XjooDo9HSYuNu9aA4nr5WCXjAeCZxVE2GL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.106:9999", + "registeredHeight": 1145303, + "lastPaidHeight": 2126164, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgAWobdBDMoGQW69LKzMMjorbJiwu2wFEi", + "votingAddress": "XvEteecdBGimdXFiEKxD2fNsS8PG32vDPd", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "107ad8e650a58958aa8057e4f3bde21c7b09cd1753241ce14f0ad4474c9ab5bd70d065e9b4bba508415f3b40cdd4584c" + } + }, + { + "type": "Regular", + "proTxHash": "4e00bafbe9ae99b5b4ffc1d7791b94061cb5ffbde53434ec0e0d18085b56ebe8", + "collateralHash": "9c252027300f1a14ac66feac10e8ec9d2ca8a76f044b383985bb16dd6d44df82", + "collateralIndex": 0, + "collateralAddress": "XnxkUWJerNcYhrn5wwAvsxi3auYMX6JKQo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.1:9999", + "registeredHeight": 1145303, + "lastPaidHeight": 2126165, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiEXFgLJLYtFifsoJWTRp3rwFYjfFrs6ia", + "votingAddress": "XiJKj7MuzWHXZYTZ28XtaXmME52A4abkkD", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "8079c64ede04fb2dc6b12f85869fe4ca38d593bcf3456a1a6b82175306679e43909f110bd1602b55391dee629ac069f4" + } + }, + { + "type": "Regular", + "proTxHash": "bb3bb04b81ae33ad08517b64e61d553a1e19fa32439c5fc881eaeff9e0bfde36", + "collateralHash": "a7c18c7f5d78f7175c738d27b389d70941170acd709c63662e9d82755e05154c", + "collateralIndex": 0, + "collateralAddress": "XccJdYCXn1ggWqWKHGTM8r3DZusemg2GtL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.7:9999", + "registeredHeight": 1145303, + "lastPaidHeight": 2126163, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTYJStZFRYr4CN54UJsVb5YvcyVJ8z7ch", + "votingAddress": "XiGo8pXKAwpRRPGGSm1Pp3cGoEEwM9KyNk", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "91842e9bb2c8fd2f75be0b4d5b1771af6adbdb016150bd50e11f67fcb411be2ec52a6c8ec2ce2bfd3f0de609733f0e5d" + } + }, + { + "type": "Regular", + "proTxHash": "f815395ec4292d9b56a0f98f636c3192d9b5eeeb82f9df9051227db7fd876ca8", + "collateralHash": "05d483e7fa12f7fe40741f0bce561f65a63c38a4033527fb16aae83f431aa0c1", + "collateralIndex": 0, + "collateralAddress": "Xcg9jkPtUjsNDpSGaeQpkKUq87bSJ12WXY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.3:9999", + "registeredHeight": 1145304, + "lastPaidHeight": 2126166, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiE2p4jtAEqP7erRYShSXReKDy9LPDH5MJ", + "votingAddress": "Xkg7tpPdoLmDuzKLmQpTJcpsFz7RHsvTVa", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "81c2930296ea5e57b926fe2aba02cf1673edc19f9a461afaabd9d9b4e5c087c64874d664c38b1581ec070e316879d21e" + } + }, + { + "type": "Regular", + "proTxHash": "36c3e571845c0e2530b36c85e285ecff5b752c0eb84c9d5debc11b0265d467a6", + "collateralHash": "1605a6b51b04cf0b4b2f5a2d80402a6e0242e2f15a5633384fa329cb061e2f29", + "collateralIndex": 0, + "collateralAddress": "XiULLmaHxF4e3L37RxUtu1iXEv5NFqqmLS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.109:9999", + "registeredHeight": 1145308, + "lastPaidHeight": 2126167, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfbYnfPVjWxzUVMEYubSSHaNxCCqxjdQ8r", + "votingAddress": "XaicUSyijLbuLG34iAtqd3PNgiaVK3QqS1", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "16efee009ce1d239049e97dcfaeb2a5bd8e6a956bc5fbb0b158b11ad60150eaaf9af8a0e366ab4567cfc1bc36878198b" + } + }, + { + "type": "Regular", + "proTxHash": "a7e58e2306e818c18fabf79855f5edba16062cb6e83d581ba84991eaea03ce87", + "collateralHash": "59e82e4cce4731c589a806f842b3b2e630cf3847ca8f9062034db3af45ae3151", + "collateralIndex": 0, + "collateralAddress": "Xfru6BhiwAaMJjnKRr11gc16P4a3qwujSR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.116:9999", + "registeredHeight": 1145309, + "lastPaidHeight": 2126170, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk4rGFTTDgUMh6rjASkKQrCGT2nyf4GkK6", + "votingAddress": "XvzRvPVSRZPUVAPC6vTNhgXFFjjEGxZpMu", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "82a3b0d4901e2ea3a4db94debff9e356580e224a999f626861d3306f271421d8dd329c87d31c80336f6986f7de4c1ba1" + } + }, + { + "type": "Regular", + "proTxHash": "0492103872b743832c835dadcfaf3a20a92e4a9116e4406ac37da76a35950bfe", + "collateralHash": "42af8c2620050792e8ac18aeb80916d424c64fd587d17b78bb6365d6d62aa441", + "collateralIndex": 0, + "collateralAddress": "XddDXqKcWZdJLRAZJQA6gmjgJZxH22s5sQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.103:9999", + "registeredHeight": 1145309, + "lastPaidHeight": 2126180, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvkHYPL5DgxH35uQDJfH5zQ7w8L4EqcYyv", + "votingAddress": "XozSk19NcwohMJ6eH2vLrS1CAaVA9kvCJw", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "95a6a48086fdef688dca66133dd52f61ba97a445e1fd9f3a21c46a88bc385e294fb4da05c164c71164c7d31b60d58e98" + } + }, + { + "type": "Regular", + "proTxHash": "0c0bcb449d7b45624f96011b54d86363792fe6ce97c44d6a0f396623c1eaa67f", + "collateralHash": "09a4dd2d33949b30dfa3583e49b8bfc4e523cf1eebdeaa6d5c745f53d5d6be10", + "collateralIndex": 0, + "collateralAddress": "XsBzJVhuYndurwe3viVYLerX5jV9anZChX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.102:9999", + "registeredHeight": 1145311, + "lastPaidHeight": 2126181, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwfpQfKVrgysGsYJPRjEYuWpMYwpEsLbhu", + "votingAddress": "XmHYhzQA3jah8jcJ1KkVccefxRyVqpiXXF", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "8ceca4ef8b52fb6cb9f356c0b234e84aac925457ea7e922bf5256b2226c3e9cb42720f0cedcfe36b10cfc4d538c5e345" + } + }, + { + "type": "Regular", + "proTxHash": "1f3f0835685420e6c655a1681b5fd95c93ddc9702b1c0390d1613ac6cc00b5ae", + "collateralHash": "bf5de969b1c49b0c787ede692636d57ae7abef3e1481445d002528dd7a1f4281", + "collateralIndex": 0, + "collateralAddress": "XiBmyJNC8N2M6EXtnhvBLgLJ4AH1JCHcpV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.114:9999", + "registeredHeight": 1145312, + "lastPaidHeight": 2126182, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxsnqJnjViGMaPwHc89SSPL9tnb6JfwmJU", + "votingAddress": "Xw6DMAMoCckGSjezp1qm3otgYAKzy6WwDa", + "payoutAddress": "XjzUXtbTQti4tuunodyEV4o6CMrxLyLKUf", + "pubKeyOperator": "8b2f6ff23b65c7754580b8f847370164bda07a51e240c336e1177ac594a22cd667e4a827dac2552f147f5af9cd3e0d14" + } + }, + { + "type": "Regular", + "proTxHash": "8bb9d201875923d23f362f8c0ba0cb29dfd746c84fa2beb4453b30c3ebc6e20a", + "collateralHash": "1230c47dea7d2c7e1803908f00e3e5e8f05f9fda2a14cbc5da6aeabd7844c4cc", + "collateralIndex": 0, + "collateralAddress": "XczNwgu8CYvA6aF546cCL2DagDpZwJMYLH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.223.241:9999", + "registeredHeight": 1146469, + "lastPaidHeight": 2128697, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1154028, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQhFDL84VN7CKmMurQw9bKy2XeCKja43w", + "votingAddress": "XyNrTiosjmjGU4jqcpjD15BHTC1RRgusH1", + "payoutAddress": "XczNwgu8CYvA6aF546cCL2DagDpZwJMYLH", + "pubKeyOperator": "9362cc23d7b0eeb9269476fe525995f1b9a4dad8483979475ba800a6adbb1237cfee8015aaa9f63044b1591e075a04ff" + } + }, + { + "type": "Regular", + "proTxHash": "2cdfb947263949b52de27ed33fb24d9f97955fd97c4ff2e609efde403a60556f", + "collateralHash": "b319f98101a75eaf405f45a43709113f1678c6fa8c7e03669ca1bc637193d776", + "collateralIndex": 0, + "collateralAddress": "XdCSWTAQkh2a2k3xuzq3Jq6dYXUtNxEZo4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.90.215:9999", + "registeredHeight": 1147784, + "lastPaidHeight": 2127342, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986473, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtX1Lsuenr3JZta2YwTst3J1svHcbk9zF6", + "votingAddress": "XviRXfM8UHPzR4joRfv5C1RLg9mHHFD29P", + "payoutAddress": "XrjAmosceW3ZvkQMmyQwgQmjmHidvPPvaz", + "pubKeyOperator": "98f909298417df434ef2185fcd55569d904b61b12045bf45826a0895cd13d04efc7e69485ee2fb5c0196c831c518f276" + } + }, + { + "type": "Regular", + "proTxHash": "46e0f3450781ab6f94227d957335c19a4731310f6c1eecf6e14c32d55e719551", + "collateralHash": "a28ae8afb20b07faea2c63bfc348ab4c0facbdf9ada08969da97bb6933d71a36", + "collateralIndex": 0, + "collateralAddress": "XwkU8XTbZEhdEZAJ6Xru9jc9NtcyW5FLZo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.163.33:9999", + "registeredHeight": 1150497, + "lastPaidHeight": 1378512, + "consecutivePayments": 0, + "PoSePenalty": 5091, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1382421, + "revocationReason": 0, + "ownerAddress": "XvDAb1XnSjnvqQbVE3oMRshvax1dH4UnFy", + "votingAddress": "XuAKZhziNYQV4BCLB5p58KGUXLAqg27FaR", + "payoutAddress": "XwkU8XTbZEhdEZAJ6Xru9jc9NtcyW5FLZo", + "pubKeyOperator": "08661995d7e3f1fc02b3a8db83e38aee1500673b186cc57a434cbd3d9c5687703c698f451f1bee137f090e8481a3f29d" + } + }, + { + "type": "Regular", + "proTxHash": "b86c5924f2e52655bc2a053c099302de13bd2f98eb850c157eaedbc06b6cf1a1", + "collateralHash": "e8f2abf1e86a1c365e174ef8188ff53f561708cdd39bafff268345d5279e9ddc", + "collateralIndex": 0, + "collateralAddress": "Xs2paqoxJp9hAMEBke8GC2MDDsuLmTYaKY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.4.37:9999", + "registeredHeight": 1151065, + "lastPaidHeight": 1378994, + "consecutivePayments": 0, + "PoSePenalty": 5087, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1379099, + "revocationReason": 0, + "ownerAddress": "XgHiFKmYj7rrB4XkxGWd7oHA48DbKydfkL", + "votingAddress": "Xviy4vQC7X8vV4nPUjSf79cN7XSoAaU8wo", + "payoutAddress": "Xs2paqoxJp9hAMEBke8GC2MDDsuLmTYaKY", + "pubKeyOperator": "8eb745a5a1ba17da8ee8f0a5203296f5cb36a181294359f3ab318ea71942161fd7d70677841470e83d22320a21813e21" + } + }, + { + "type": "Regular", + "proTxHash": "7e2e02e600a83109de4b7458e6b8a77aff6421a89a70db82d5f2910e21072ee3", + "collateralHash": "b56d5e94b23bdf76d0ad674e611cb926fd799b34a579a4a8bfa7b128f7243e48", + "collateralIndex": 1, + "collateralAddress": "XeSxWhErpyPyC4UTFiVpridNvsVnQZZgUf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.234.106:9999", + "registeredHeight": 1154297, + "lastPaidHeight": 2126228, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1802167, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr1BCZGK6cxL8pj6GJQXesNaZBHx6Hiwz5", + "votingAddress": "XkQ6Wdi1LZH2rePZ7NW5ys6VscVZbh264B", + "payoutAddress": "XwrdC2qQtfFW1LZFJf91p7pd1NLGysxSjV", + "pubKeyOperator": "01ae87b6c776f2dbfcd0b418ee21a5bc36e689191b7a084d89cf3e63fb4ecbfeee3d0494b74be4d842163db75ac5b864" + } + }, + { + "type": "Regular", + "proTxHash": "137cf55684b78079037393dba39f2e0032629443fae416b2a6b2b1dbd2e656ec", + "collateralHash": "f8274bf76d79df9f2cd88ac58737c4f5d5dac1c1d1d12c4f856cb792f02bec3b", + "collateralIndex": 1, + "collateralAddress": "XyAZZDxQ3umUesRvTPrWojDzWsZy5eaQox", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.117:9999", + "registeredHeight": 1154572, + "lastPaidHeight": 2126892, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986092, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcT7coRZ25Gd68bxXJmGsn7U7kNVSck5Bb", + "votingAddress": "XkZusCf8tjzRqWvvBob14fhT1g1XXuTqq8", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "82ae4069165bda602920cfb5df733bc0905ccb4760450cce81e7eb38f160d5c996bc9bffcfbc6aa42adc21718d91acd4" + } + }, + { + "type": "Regular", + "proTxHash": "2fdc05323d018230298adbb7bfe9d9aa74c36aafe6030187d3c078062947a70a", + "collateralHash": "e08e6fff12c900f633467d9d28360a921fdb3584eecbb1cc36d44c54f1073f52", + "collateralIndex": 1, + "collateralAddress": "Xh36nBTU7QU7UNBy6cyv71BcTJKVHu7Q2L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.119:9999", + "registeredHeight": 1154573, + "lastPaidHeight": 2125793, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsvPukkstTSzo7TtfWVK7iDNDQGLuhLTwz", + "votingAddress": "XfML4BVHNvGSNA9KF6qmbyr3QmtpYZe3aR", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "859c0cc88a932df47185c330daca3ac904f8a19821a2301a747636fe5719bb6f1f7c0f9542ecc5a1b8948cce970a01a7" + } + }, + { + "type": "Regular", + "proTxHash": "d9a6f7544671fee2f823404e51beeaa1eee8b208b9bdeddb915d05e614484fc6", + "collateralHash": "9c5233b684829d34992e354225baab6e280fe9d337c0b89cf99339cb3e4cfdce", + "collateralIndex": 1, + "collateralAddress": "XkznKcVtteWDvmCCPneXbFerh5AciNtbby", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.2:9999", + "registeredHeight": 1154573, + "lastPaidHeight": 2125798, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkELSQbRGSK8Xm2RzsHkDh9G2sLXk5gF1g", + "votingAddress": "Xd55ACDfz2y5RproRkmKXFMvjXxVkxWmtS", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "05c3c84c3ba97f186b454882eefc16ebaff748caf5d3b5051ebb7302fd5448d83e3929f2ef697f6e0d7dda4d643ea8bf" + } + }, + { + "type": "Regular", + "proTxHash": "462aa6ffd298b36d06f8fe5d600fce321c78792a7af67da08797ef2687945262", + "collateralHash": "0889a179f2733d9443b538f1e5fde36a6b964874eeb9c5b9e471e3c1f7884ff1", + "collateralIndex": 1, + "collateralAddress": "XiWSb8KvyMSpEBcwsjiRSB9NtcLzh8cvAd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.104:9999", + "registeredHeight": 1154576, + "lastPaidHeight": 2125800, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XujVhzzoTHJUj4uxXvd4uswHezpiCBxwRv", + "votingAddress": "XcLanpPWabZLy4PRuqqqBhYD5RSu6xS9RG", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "07378c528ac33788df12375d105011823eda1acc73faee6cce6d4e88c6ad80ada80258d35ed3e9807d19af9e01c4953f" + } + }, + { + "type": "Regular", + "proTxHash": "9ca6b0a82b687929e97ecb074be77eb22f106f60adc55cee8485ab6a88a980b2", + "collateralHash": "8065fd3893de583d26bc4524dfd4906c225737afc4a52ea857e3a80c7195b06a", + "collateralIndex": 1, + "collateralAddress": "XqKGKy615MmsEvgCJQRKgzphAGF2DqpMRz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.0:9999", + "registeredHeight": 1154581, + "lastPaidHeight": 2125804, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtwF8SvSLQiMQLZmZzNiVJpJ7HYm1NY4FQ", + "votingAddress": "XkMD4LzFivYtJecffoVz8wNts7dvw41BAn", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "8f64edd9c2524b40ae50a9046e4d096fcee995f57a73ae5101ccb0d6cfe92ae11401341e85f51e7ced55652458d370ca" + } + }, + { + "type": "Regular", + "proTxHash": "481a668a5b44f0e6a2434b93f6d70140939056c4b98673514c5f3d705d981ffc", + "collateralHash": "7bf228913c1aca591b8cd22cbfb01ceaca59a38734cd898350e11c40a401f2b3", + "collateralIndex": 1, + "collateralAddress": "Xr5LRCX3UjSAUXy4fwajQPvGHqXVNikSnX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.5:9999", + "registeredHeight": 1154583, + "lastPaidHeight": 2125805, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XounAzF7UJvVe4sj82UGdjYJz7tX5ZgG5N", + "votingAddress": "XsqKbwneYHQfkFrFztKfg919bJm3Db7FTZ", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "8423478ef4819061df464c896549ac53cbf1194c45f5f5486f2428ef5cf34b2cc7b62adde8267ae8964771fc70f6c1ef" + } + }, + { + "type": "Regular", + "proTxHash": "6c50b2d79aecadb3925657b5b16d4ff8db8946b7a30ad3086b723cce65a278fc", + "collateralHash": "2b478b1708d2a4a77faab00e11fb80c576b5af98580215673afa25bce3e65373", + "collateralIndex": 1, + "collateralAddress": "XmvZ1H5Be8r3u5v1C6rJhKef7xbjjMX3o8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.4:9999", + "registeredHeight": 1154585, + "lastPaidHeight": 2125810, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrYNF37aHRVggEY1Dc3ToMo2FS6KR5C6Cq", + "votingAddress": "XpiRTGgFoinHjaxM3JSEqykV7FZzovFwAh", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "0ac487b713afc2d01170cdb3988c905c10df8caae0a59f7bdae55172c12c86273b389a0f527038d729c9b3501c212029" + } + }, + { + "type": "Regular", + "proTxHash": "1f545ceeb083364a18068659d542fc0ae694b5a6d9643a2df179fc902c344e96", + "collateralHash": "02da10cc345098c4f8cb8ea03e76784e88fe1338db701feaf5ee73983aaaea94", + "collateralIndex": 1, + "collateralAddress": "XgSVQH9rhmwjvdXkeLPyxTYZteaGoL1AXV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.6:9999", + "registeredHeight": 1154587, + "lastPaidHeight": 2125816, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmPq884yAEmfcr7pL5UBXuYfXMPGPmuZiF", + "votingAddress": "Xnr71b7D1wXMM6Bwr8b3AY1tp9MYpEazi5", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "99017bf12011c9eca2f0c061926fd93cb49ef196fc9d41046fc86b9cd0fa2fbe509b7bb13c5457867f7d641f983dc44f" + } + }, + { + "type": "Regular", + "proTxHash": "e77ad1f6f2021636f399c173ead5071fa9f5d1d8d9857f06e90279c4f7a27201", + "collateralHash": "7a87fc10d9b58890495754488742d03f59bc161b0cefe7c10e6494de61081b33", + "collateralIndex": 1, + "collateralAddress": "XvnET6YdwB1zcoYyaqWxf38mj6YrGPYWCK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.100:9999", + "registeredHeight": 1154587, + "lastPaidHeight": 2125811, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XviEoHZxpeNXezC3HhoaXzmzH2tDAAyvp6", + "votingAddress": "XktjwicbKkcyfGGz2ocwfKQBdLmaGJtUEW", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "031cd04275a457d06c77f466d48d19a96c385aec7f1926e6ef76675d84ad2edd377a94bce3bccb1a0d8ca1529dbb0070" + } + }, + { + "type": "Regular", + "proTxHash": "a03171d0ef160d54625f4674912ea1908e55b9ffaef337d2d586707dc47cddb5", + "collateralHash": "233caddf5cab4c343324ff76a4a85c4c009029d3f4ecd063f49a165e76141ff4", + "collateralIndex": 1, + "collateralAddress": "XmwXZAWp4CKu1rTprBTgr7KLqvvh4Td1B9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.9:9999", + "registeredHeight": 1154588, + "lastPaidHeight": 2125818, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xky2d3Uo1cfnNA7X6m2kGCjrAzUmh1esrK", + "votingAddress": "XsEFUGLksKeP3jpnSbMoawqoZaR2gsS1fg", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "0a62a57ff1ff592dc3dbb0c1155738c7cd2b6595b803c12a8be0b8f9f0f1e3d4d8ea286d9dacd54dc1ce0102530b1085" + } + }, + { + "type": "Regular", + "proTxHash": "d7594236506fb97c87b598119a3c2dfac5186ee380e90b113a9780b63889cbbc", + "collateralHash": "0a9b9ae390336187a5bedbaa3106c848d95494ee90418e7176781211a3eb460d", + "collateralIndex": 1, + "collateralAddress": "Xv5xrUcARHe9Jg9auY2PQ8r2x4gyq3f4Mz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.22:9999", + "registeredHeight": 1154593, + "lastPaidHeight": 2125820, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrMnyub2TjAhAfSYLLKf9ndP64FnZCQumS", + "votingAddress": "XgTzSUVBKw3oytMjheLRMWMiN3Zm9QziYZ", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "8d1151625efd05ff64d0e602bba72902dcf6c154ff7f0a61b7a2c769558181f83bb810f0a6c99fec4aa640aa27244b53" + } + }, + { + "type": "Regular", + "proTxHash": "4bb68e455a18495b2c52b2d26b169a7e420ee909b674002e67383c682577ab63", + "collateralHash": "d0b58be83cfae69e0d17727fee2f99c423b77c7c165bdc2b37d95c38ed7423eb", + "collateralIndex": 0, + "collateralAddress": "XvFjpGBe797zFeGoqdw54g2bZMpFUWkbeN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.245:9999", + "registeredHeight": 1154593, + "lastPaidHeight": 2125819, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgssreS75eiLa9RJepwWct1gifjLgqosPy", + "votingAddress": "XdfiZZM4hHD2L3MtyBsQ4FV2pZJ5fkyg93", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "97a412fd4cc33fb3eaeca6fcafd8951376375a0b6a2ae0652662d5f620bb68cbcfa0612419cad34d4e79ec8e2477aed2" + } + }, + { + "type": "Regular", + "proTxHash": "f2e2a6b06446f5ced786174ce002f6b7da753d03ae1f7d92f708285b7d1bfeff", + "collateralHash": "a6d506e559ff4cb539849f48fbe8f26bac9d3ce9905e79f43dd898da70850392", + "collateralIndex": 1, + "collateralAddress": "XfcBFtUMYiJSe4RpDevbH35d8aeaBHetXQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.234:9999", + "registeredHeight": 1154599, + "lastPaidHeight": 2127482, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1619736, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwM1yf7c2Ee4uXksgnLNm8yqJavBoxnt37", + "votingAddress": "XhzzrXrhFr1XNhHczf7G3P1yJ4FoWUkBQr", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "90fa1a223be7089a366897ba0edf1af4ead03a1f43bf2312b0ba420d148cfe63aa222aa64565ba2d660f88795e36d0d7" + } + }, + { + "type": "Regular", + "proTxHash": "a28c652709db60303f54c2836e7a2edb33816d2745928abf88f27909f3744d67", + "collateralHash": "fb19d7d2ca9ed99e3a711bd71a569c507d47cf143fb234362bd3e85fc5887e37", + "collateralIndex": 1, + "collateralAddress": "XgmDTCqegczmx7sc6jY6Fbfy6DUnuhjvAE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.112:9999", + "registeredHeight": 1154601, + "lastPaidHeight": 2125826, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvKk6u6KTb5zfs7SiyL5CZxPvsuyTB4fnK", + "votingAddress": "XuBEvkytSs5JSfJEpT75UnERQH9gcm32Ma", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "8d371be988812e3d35769b5fa47d9a4beb69a0ae20531fdb5998eaabfc31bdf2c0553c7906c4674744b3be8814afbde7" + } + }, + { + "type": "Regular", + "proTxHash": "37f280838246bcf2629b3ae96efb9eafe51acc2a3c1e0c8e3280cafe8be09960", + "collateralHash": "e69ffc4efc80ca1cbb54038fbc2160eedb3dc92dc2bc88845b6fd598758ca8f4", + "collateralIndex": 1, + "collateralAddress": "XvSMJuySjUioS1uMVRwkgogxo9rmkLSnRa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.237.32:9999", + "registeredHeight": 1154601, + "lastPaidHeight": 2128398, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010860, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbB2RoFv7FKdSQ483ytoYq1KAzUPS2LMZC", + "votingAddress": "Xcovz5ErFazk3JxXSACBk96PRHnEuxvQKA", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "0c444238f832100e48fb1fe51ebe73a6ba04f9c1d6d577d47465aca39f8a3e4a584547c4ad676cda8b4ef06105225550" + } + }, + { + "type": "Regular", + "proTxHash": "97eeaa0cf086a2cfbd3bb0cf04d837a450e051cdde8565f0262853f0cd4d40b7", + "collateralHash": "d8d0b9b558c658260a19b8749c09a01e3f55463169672f9a80efb10ed9031219", + "collateralIndex": 1, + "collateralAddress": "XrocsSwWFiRB4mjtBigke6e5jYSQniSvyW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.241:9999", + "registeredHeight": 1154601, + "lastPaidHeight": 2125827, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbH2skADAMDZvpvGkNDV2G63F26xoQ8K2a", + "votingAddress": "XyKY4qe97wknbXZz6k1mgSxenqwWRhD2nS", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "163cc87ef2a1c76cefddf4fe93eb5fcdd92153a9f799b038956320675d4cbf78086a79a75e04fca3d8ed5f39563ff556" + } + }, + { + "type": "Regular", + "proTxHash": "f412ce212fc9c2351a5e3568e11cb41c8c4315b40cfcfcdedd44171558adad0d", + "collateralHash": "940ad1dabdb7015981470251ad7ae293c70da7be5f494f98574118d4f8dec3dd", + "collateralIndex": 1, + "collateralAddress": "XkcDfRpf9TtJ6HeFT2j71gdJ1CVrsycPwa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.40:9999", + "registeredHeight": 1154601, + "lastPaidHeight": 2125821, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjMffc7qU5Y1QFsidBo2wa8YxPNedNert9", + "votingAddress": "XftsPK13Em3nPmxNYg1wrkZ7PpocxihE1K", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "80c21ba0f529945ea70b80a450777bd3ca3c71221e7cdafbf6336b3b4488f29c04f53cd5782ac83788e8732e948f06c4" + } + }, + { + "type": "Regular", + "proTxHash": "a06379b62ca055d9c36a604163e71719dc589e8ebe58fe9b38768b8c09de6679", + "collateralHash": "277db425ed8bae3c934778ea0e437059ac7d3d64f61df1da03b1bbb203998ec2", + "collateralIndex": 1, + "collateralAddress": "XeDfkkYQb9CcqiHQhPVBSVZoCoTHtMMG9k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.237:9999", + "registeredHeight": 1154603, + "lastPaidHeight": 2125828, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLQV6mPni7jHkLaqT8HLq3eihWD16k1gd", + "votingAddress": "XioigSiHSYhEKg8FwRfNEyfTXBEdbi3j4K", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "08f5a78a23063d060534bb4e90929362b984cf95f496068d8fa75fdc59c1f8d272a668b976bc553bac7c63d8c59ee40c" + } + }, + { + "type": "Regular", + "proTxHash": "e126864eda4a45bfe9bc77101a9562d7e0460888c6cf79d720f0b47405aa355d", + "collateralHash": "c304bf9bdd25e616c7a689c89f832d7e4a7f1d0a09a7fad11e9814c89d0b320c", + "collateralIndex": 1, + "collateralAddress": "Xfvr31xjT6fAL3ys4PtwKYpGuL2L92WJUU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.116:9999", + "registeredHeight": 1154605, + "lastPaidHeight": 2125829, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi4YBMUDJLS1j3m8oUsL3edTxP9x3tYMTc", + "votingAddress": "XreUJXuQa5cdaVk3qDJiXdGriz3136UcL9", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "04e6c005eaaf61afad64e28ec3c9096ae5fc3ad23531642dc2fc3dc74ead78ba785cf6a7c22c965a127b9ab4a13b317d" + } + }, + { + "type": "Regular", + "proTxHash": "f2f0400ecc79c2e2944c5af879c9de434e637edd79fc8b85820d86ebc6c70f47", + "collateralHash": "6a4352d985ce0afe62fa629dac04668384f7403e4ff880c56ec4df5e86fe32e8", + "collateralIndex": 1, + "collateralAddress": "XpF81GjYZV4ps9H4SdhDS83HUAta6jH5Qx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.229:9999", + "registeredHeight": 1154608, + "lastPaidHeight": 2125830, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcvJKgCntDofSiCP8YaUP6EHDbD27ziGeY", + "votingAddress": "XkRTjovw33v1zWc9hJzczPphaBV8KCP9xb", + "payoutAddress": "XvZy1npHNGeYHCuDnB6upKqdf6XU9q94qu", + "pubKeyOperator": "107e60cc3d88348b88beea950d440a3227b4db6434ec818e7b829ad9c1f3431e1d3056408eb535a64e1122440428c641" + } + }, + { + "type": "Regular", + "proTxHash": "b9c3c46951873efb78aeda282f0764bcd776c7b3673100325a0ce19dd85168ad", + "collateralHash": "05f09c896ac657c76ee6840f515a6ff86a9d0d4a8c35a7ecdbe7e258970ab376", + "collateralIndex": 1, + "collateralAddress": "XnNy68bdTXZ1JUCrLnpUvb2fhN3ksNCfQt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "47.98.123.106:9999", + "registeredHeight": 1156362, + "lastPaidHeight": 1874803, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1591931, + "PoSeBanHeight": 1876620, + "revocationReason": 0, + "ownerAddress": "XsuB365oQTDc2BD15obx5inLjUdrL52yKS", + "votingAddress": "Xt3MK7ykmPrToXQp3GEUyZb1H1Sc99P5ag", + "payoutAddress": "Xnv5LjMz6YsiwcybnRKYDJunPumNcBmL4g", + "pubKeyOperator": "0b40057db27aed533187cfc8df35606898b52abca254080c5fed191e6e604d2fbd0a2c61200789fb84678803efd175ea" + } + }, + { + "type": "Regular", + "proTxHash": "4387e1f4cc8e8dc6b020db9f3097f543037b7d10b5fee8f04e7038011057727a", + "collateralHash": "4b9c2f2a148d1a64f81379da32663f018ea766e2abba4efa2888fda906a9df19", + "collateralIndex": 1, + "collateralAddress": "Xo6GMv5HihdG6ygCUrpdXWsAzDvd2qzoGy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.7.140:9999", + "registeredHeight": 1161911, + "lastPaidHeight": 2127308, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhsxLJwpUXF5xJvimg4StnMzrJdY68Mf8J", + "votingAddress": "XbBXdvPh8sqeQjUi26g4Utwii45UCur4Eb", + "payoutAddress": "Xo6GMv5HihdG6ygCUrpdXWsAzDvd2qzoGy", + "pubKeyOperator": "00c71f5af3fe54de474405ea1de62a112c6f348f68b0a88d4f801e91ceeae235a50c340cd9bcf221974827fcd19ea113" + } + }, + { + "type": "Regular", + "proTxHash": "583bc742020412bdde5fd9fa937b6eff786b0b4c401e2c2aea9890a46408678f", + "collateralHash": "35b7ac8e2e2ab1328797d5312f116983b90d5b7805e02ddea8e8480d172b2f2b", + "collateralIndex": 1, + "collateralAddress": "XdQ4KAiv1d477yxCEqi6fi2YAEd7qnJB6X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.106.111:9999", + "registeredHeight": 1164445, + "lastPaidHeight": 2125834, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeHxGQCkT1GvYyu8TvLWzArYfURC3XBStt", + "votingAddress": "XrYKLhV3CqN7zMwYJgAqq2r4uwwa3t3swd", + "payoutAddress": "XdLRhW2jfhLUtNYCFUrNEy3bVexCfp6Xs7", + "pubKeyOperator": "9529bea50cdf659a5706abf0d8113f328fb8d7c4f9126c0026bffe6a159db99e5d304c22e6ccc0f7bf689aa1b959c36d" + } + }, + { + "type": "Regular", + "proTxHash": "98eb4997040a48721024832dc4df74817e8af6fb781ad408f472c243c22efa61", + "collateralHash": "05f39371c54612e347217c5ee487ac754dd52373efd2ec18538aaedc32409ddf", + "collateralIndex": 1, + "collateralAddress": "Xn5QdEjLCpC5MKu9BwVX3n3KBdT9o64TGQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.207.233:9999", + "registeredHeight": 1164458, + "lastPaidHeight": 2126622, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1881791, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrXaZ12CfdS4E69f3dfK6uVdW7RSskbTqC", + "votingAddress": "XrXaZ12CfdS4E69f3dfK6uVdW7RSskbTqC", + "payoutAddress": "XyMNae2pQL7y9E1PCBoMSFpqHtrd4RWqe2", + "pubKeyOperator": "8fc335d21f4706f4a42f247a5107fe4c7c8b41a0b46a0dbf3f23838f4dd0d4946894ca28187c96cac2496c338225b0d1" + } + }, + { + "type": "Regular", + "proTxHash": "a165577964f645596923b68fd6bcd4960fd077126a08472456f2bcaa5d633db8", + "collateralHash": "7363342c4d095a5b4e9dfbffea2975bee9522a85a2fcc919fa2ced8b8b2d5c7f", + "collateralIndex": 1, + "collateralAddress": "XcNwsQWVQvxbAZiiv6GrpBd4gQRUsRVGzH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1165720, + "lastPaidHeight": 1723850, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "Xvc66gQjs8c8UiqGdQKojBaXdcczxcjDmy", + "votingAddress": "XhojFzEBVkC8QQaocVXh61sV1MeWUtNBJR", + "payoutAddress": "XmPzazRLT5qmfBUYvwmYPGWosX47h1x6YY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "19fdafc6cd50b1a396f079b3141f42f9aba962ce100cce5d4b024a4157727dea", + "collateralHash": "4dee31250ca4f9ee56fcd59a906ece6c61836b8aad8fa4a5fa1f1547265e1b2b", + "collateralIndex": 1, + "collateralAddress": "Xnssm9654tb6R3RGUKQhoGaJGE3wYMtBZi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.170.171.115:9999", + "registeredHeight": 1165961, + "lastPaidHeight": 2126133, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120071, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbdVfDAeVQxgMiLAn2Qx1Xd8M2KjbtStL5", + "votingAddress": "XbdVfDAeVQxgMiLAn2Qx1Xd8M2KjbtStL5", + "payoutAddress": "Xnssm9654tb6R3RGUKQhoGaJGE3wYMtBZi", + "pubKeyOperator": "949dbaca92b7afd18b7a4e778f063f5debf85cc8b7d91a674765b0f19802fd571c87b4b224db59e368a730b8240815c4" + } + }, + { + "type": "Regular", + "proTxHash": "b2e6f5ed2a7820c1ec91b2fb87593d2ab1eddad9ddad6c21acdfab2a944b41d4", + "collateralHash": "c4bd86af3aa177224d8de63d8a3fcc63c09da087b867bb39ef70071d554d8669", + "collateralIndex": 1, + "collateralAddress": "XkvvRWhVdHcP8SZ6fLybuGMCudjz9hmzKw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.70.44:9999", + "registeredHeight": 1167824, + "lastPaidHeight": 2128563, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007649, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgNAn8bLvFozX4EGohqGTa1wV6gS5Q1AqX", + "votingAddress": "XgNAn8bLvFozX4EGohqGTa1wV6gS5Q1AqX", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "8d7c56fefa1bcad04484bbfd8d8884a0536e34f035d186494fd5a84f481992d796d44f9c2e148b71e8150fa48f3969c9" + } + }, + { + "type": "Regular", + "proTxHash": "e88b4ec33e198b101bdc899bc47fd9cdaa59e559e158dd9d7025a36cce1a05ce", + "collateralHash": "52f739f056be2c7350f22298274158c2f11019db976dfabaab1aab446b8debdc", + "collateralIndex": 0, + "collateralAddress": "XawJT8ExfpfHKfVovF12fe8H352Ee8w313", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1168156, + "lastPaidHeight": 1726173, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "Xgr4G16jzP8LeZuAzYY3xXuWtMb7QiYSGR", + "votingAddress": "XwzGevhz943cviSW5WeEvwMwYLPksd1RFD", + "payoutAddress": "XeqjyJBoESkAFJaqAYcDG2B4DGdKK8n7vk", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c02e12618d02173df3cc31bc3d711fab304f624d526357c03343df392c099de4", + "collateralHash": "cbb74a618c09cc16764d1623fac55ba576fefdabff189a4818e028ce67568268", + "collateralIndex": 0, + "collateralAddress": "Xn94JKKq3yV3D8iVMXt3HXhsy4Tk8Z9w9L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.237.36:9999", + "registeredHeight": 1168750, + "lastPaidHeight": 2128722, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyGSi5hufSYX8mZnrmarmZ2wMYbfmNK4Xd", + "votingAddress": "XqoeYpGMxF2xuD7qg9eq1UuCkM37ekAwek", + "payoutAddress": "XnAZbw5cKLMhKimK6bvcB3Kk3cN5hxvMaE", + "pubKeyOperator": "036e2f29590814790a6f45558e75a5de35ac4d48562b86eefe27ffc76f6609667070dfa9a7b5a32a3b115e913ac588b9" + } + }, + { + "type": "Regular", + "proTxHash": "ea920136fbbddcc6aa5281c5cb25d9b34d61dd492979a0c21fb308bea7ecc8d7", + "collateralHash": "c272146c05ec99eecac38e782d8bee84d579378719242ee38cbf60d982d63eaa", + "collateralIndex": 1, + "collateralAddress": "Xsx8AFS4AFjanH6n3jDR7CimCrmnxnXk6k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.7:9999", + "registeredHeight": 1171091, + "lastPaidHeight": 2126920, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmp9PsjRAUFskLys8QDWWtSDcAh2akknuW", + "votingAddress": "Xmp9PsjRAUFskLys8QDWWtSDcAh2akknuW", + "payoutAddress": "Xsx8AFS4AFjanH6n3jDR7CimCrmnxnXk6k", + "pubKeyOperator": "097d130b316f998ea1c34157145162b729521e62c04855ad044da9242f49e4f5b7a37bdf522aa06eecfac7874698ab70" + } + }, + { + "type": "Regular", + "proTxHash": "bdb2f3831f23756f4669c99744fc27eb41db07ae71c873c34344b299ce99f680", + "collateralHash": "edb44c44e5188ab48285255e8dae946a05e5dfa6bd9f0a0a00eb11e7dd021a56", + "collateralIndex": 0, + "collateralAddress": "Xt4NYk5LTA4FSS3NmJyKNTBW6M95FvJ8Yv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1174842, + "lastPaidHeight": 1686182, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1688820, + "revocationReason": 0, + "ownerAddress": "XtzxQmizp8Fqw646eoG1rENp4LsQw2Z2Lx", + "votingAddress": "XgDxL1TGioi9J58JnEefZySGG966Rcy3qK", + "payoutAddress": "XoKQQCs5GEZPC8mbUWEJzSpE6t24Cr8SnL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "60e4f2a6561d156a05d16066b529255ce88008276bedc1b8f824fe2591c25dc2", + "collateralHash": "62b74c5f433fe75f430db4b6af6f8713182ba5025f9a28c20f06464411f06533", + "collateralIndex": 0, + "collateralAddress": "XvgEQQuEgWM27LwSHPYzG9W2AUJSNTmcwK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1174842, + "lastPaidHeight": 1686188, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1688820, + "revocationReason": 0, + "ownerAddress": "XxUzefMUCJ9PPukoPamSshKrPVyawJ7T8J", + "votingAddress": "XxhxTWecDiymsrYq9xnWeqZKmzG1fpmFnV", + "payoutAddress": "XpvFm6z5M6pCcDeGS2S2HiKvpSStyFNJXJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bee41ac62e3f0d242914bb447aa64da5c8961b2c0d1b92463920c3fad5a50e51", + "collateralHash": "6bd8431e50efe3936ac7159d08b2805b19bb480308b761684a3c9e3e9fe44b25", + "collateralIndex": 1, + "collateralAddress": "XwoLnagoi5B1SYCEsaL5VAGMkzhfETejba", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.206:9999", + "registeredHeight": 1176169, + "lastPaidHeight": 2127059, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhZXHG66N6Z6aPftaDiko9hWjyaBNkNqgS", + "votingAddress": "XiXwBwgaJyXfxfyYf6BZ9RV6qYeYucWCFn", + "payoutAddress": "Xf1gx3Pw67YgHEuZ6htrLTrRp9DwCcm855", + "pubKeyOperator": "887f0f980a9619cbc1c3c180c93a1d2c548c144f3145060cd2b820ab0441818bd435188b068b876ebe1434274eb2ab4f" + } + }, + { + "type": "Regular", + "proTxHash": "a4cb133878fae0cac9d361f54c99f6586e4f401b81b13aba5473d5d34f9e5752", + "collateralHash": "def0f7301b5371a590b1dd6fd616d21de273f2b76524d61e76be0e647bf47365", + "collateralIndex": 1, + "collateralAddress": "XsAgk92HRmpfvjQkD3ev4M3Zho3bUUT23w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.117:9999", + "registeredHeight": 1176176, + "lastPaidHeight": 2127061, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnbnkM4d2HMJCGsEktvkJaxdnXHHJ7ptCJ", + "votingAddress": "XdERi3dgV4S241L4eJnBNHtihgcYJdnpTj", + "payoutAddress": "XqwKhAQ4XarC4w9qTdferPfF5mvy2QUGuJ", + "pubKeyOperator": "00b813a012973396cb8bc298ff0ac9a135f0aeaa9d9527ae5ca1cba54c4ccae278dc2e704252fe18eb19014c51030850" + } + }, + { + "type": "Regular", + "proTxHash": "e601cf7ef6a1f0ac0c8013b320d7fe12f7250107c2267fc15d5af86f58f424b9", + "collateralHash": "c6bb48cffb0dbf88168a95a4a04596c9148920707b016318a07beafa5eec4b5b", + "collateralIndex": 1, + "collateralAddress": "XhognRaJXu4hycxUV3WAj9qwmHUPXvqPFi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.248:9999", + "registeredHeight": 1176448, + "lastPaidHeight": 2127132, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkX6Wd1ajHsCAz6jASmpRxXhGa6ADTcUbY", + "votingAddress": "Xg1XWHaShyzv9YBEVZj3qp4nUgBYSEPTUk", + "payoutAddress": "Xw6hJUa3J8T6iVfSGpCRmDUzUnJUiVBSip", + "pubKeyOperator": "8e4a4d29010b289dec82e4fa0be6da08c11c11001cb67423387f98b93376c2d7bb5532177bfca35cb446d9efc55a1e81" + } + }, + { + "type": "Regular", + "proTxHash": "81edd69b2bb59ef15e36a6b29e79cb34d1e5155109972d68bafd0b6391793320", + "collateralHash": "385458036101d4597a2607000a6746e6a6af205776401adfe6858810d054e0d7", + "collateralIndex": 1, + "collateralAddress": "XoBdThBpHgyvq4FTYnsP84E9qfAWMYiKzb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.65.95:9999", + "registeredHeight": 1176483, + "lastPaidHeight": 2127208, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm4DXW3tXAqf7eme17vQCfGb73kNKevxJd", + "votingAddress": "Xm4DXW3tXAqf7eme17vQCfGb73kNKevxJd", + "payoutAddress": "XbJshNyk1Fs2seMDiRwFtiTpFJZgtLWFte", + "pubKeyOperator": "8079a57f874ade8ea0f255627eda01847660a312b39e411b02c5130ce4ff3bb1326e15484373fd5b19ffa10fbdd6c773" + } + }, + { + "type": "Regular", + "proTxHash": "0ead7e2fb39b1044da222a53940416de828d9c0feaec4906769a3a7617bd68f9", + "collateralHash": "6b18fbeb87ff17a5ccc696eea42d1e530958236e974d81a212b42661f159db2c", + "collateralIndex": 1, + "collateralAddress": "Xn4LH9mwDcPdFMtWm1nsf11iFKKBCRCYaE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.110.167:9999", + "registeredHeight": 1176489, + "lastPaidHeight": 2127215, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn9gqs16gesL7cZNF8NmVFaZEdtczXedLJ", + "votingAddress": "Xn9gqs16gesL7cZNF8NmVFaZEdtczXedLJ", + "payoutAddress": "XpL19hC7VaC4XBi1aBrgvP7wdatDzYoXgP", + "pubKeyOperator": "981747f805b2031d6ca96a9f56f61f7c368a5b207367db0f2c4e809db45b05172386e7bd1264dc25f2e11affc8838e07" + } + }, + { + "type": "Regular", + "proTxHash": "f45a565c6239259548b4e33fda555a2d614daff9678d57adf699b9881c2f8470", + "collateralHash": "8cd52dcc30ef3ad2a4f2c0baacc90af5decbcb0feffcf9a180e924d320d878f7", + "collateralIndex": 1, + "collateralAddress": "XnFqJCAX5XRKQTN77nnexqQjoRcP4mrv8a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.81.164.103:9999", + "registeredHeight": 1176490, + "lastPaidHeight": 2127216, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrUJbKyziLvTCjQsWXE589AVko5qtunihL", + "votingAddress": "XrUJbKyziLvTCjQsWXE589AVko5qtunihL", + "payoutAddress": "Xr2N27jffbU7KJiyJp8hNPUhfjehVZR6nJ", + "pubKeyOperator": "0da914b67d250b8f86b961ef105e60ea2e7348653db783c2ab0d8505c343c63f7d3149b343c968b836729362e71593cf" + } + }, + { + "type": "Regular", + "proTxHash": "81ea8f0b0374266ca99921981bd043ebbfdc1928d4d00e25077009d6455e1788", + "collateralHash": "a395849c7f5ea8e27fbda4968d4ff61d119a7e9703e65e727fdb443fcea07e85", + "collateralIndex": 1, + "collateralAddress": "Xpn7PS5PTcgTojugX45M35vzTiykksRnoS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.58:9999", + "registeredHeight": 1176492, + "lastPaidHeight": 2127219, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuV83u4B9jMf1y2pWru9jPjVTZ4CAMiPfd", + "votingAddress": "XuV83u4B9jMf1y2pWru9jPjVTZ4CAMiPfd", + "payoutAddress": "XpoTGy5oCpoywAi1EWf7fXSsp17Cf256av", + "pubKeyOperator": "135538431b4d6a5af03f97eb4a45f9a95b424a43f2b0d52d60eee1e05a3223901bc190bbd79d4b6f9fe8911b2ce4a479" + } + }, + { + "type": "Regular", + "proTxHash": "9619c5568ad36a9280ad19897db02b19b53685931daaa6a0ec9eeecf7a306acb", + "collateralHash": "4f1594f36be534e0063fb8d26adbaf4bad3c7992d5217431de91bc6c406fd40b", + "collateralIndex": 1, + "collateralAddress": "Xz1hydxu1JsPJGYyDvhKtkc46VkRn6JtHd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.81.146:9999", + "registeredHeight": 1176494, + "lastPaidHeight": 2127231, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh7jTw27E6NCauJ3Zekdk7uzbSGQtJwEAC", + "votingAddress": "Xh7jTw27E6NCauJ3Zekdk7uzbSGQtJwEAC", + "payoutAddress": "Xc62c5V7doANyNnhfx4Sjr367B3JMDAXmj", + "pubKeyOperator": "0950406157c3cb41093880b09623ac71a5a7332c32d7685e790d713bce0fd305ce5e179c85cbdd03efd0a6a027c7cbd8" + } + }, + { + "type": "Regular", + "proTxHash": "12084286be2ce05bf4df0c77094b7757214d6eedd7c9473dc99ad00607c61cc6", + "collateralHash": "d8c526dab9a89a4a51d1d2e81f7a4450016423864afb5676e28e3fef1312c566", + "collateralIndex": 1, + "collateralAddress": "XepyoT4WANWeRxaW4X8HEBD93iTvsJRnJU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.5.54.48:9999", + "registeredHeight": 1176508, + "lastPaidHeight": 2128322, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976888, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf5r2xvA5s1PLBnuRkxG9LER1Qgcy3zQcy", + "votingAddress": "Xj1ZLLGFyNTqodMvSCki1RaTVgPLjX5Aup", + "payoutAddress": "Xdqm2z1p5tFsQb8g57inmqtWGaFp5jTiQo", + "pubKeyOperator": "1683b17d82e4889eff360b5dba28321e0f90c7b6eca5f752cd8be55e5c8bb0fb9ae2568ce3b902e42e81843544dc8018" + } + }, + { + "type": "Regular", + "proTxHash": "42913014745aab1d6d6224817ce85f4714c36aed1fcbed09f67e1889c487ae24", + "collateralHash": "99eaa25b226cee092907ba09ce6ab450b461e7095214c777b2c463a828c13ed4", + "collateralIndex": 1, + "collateralAddress": "Xcvn9oEJA9mfCnpoPTBbywmjerD9id1Ku2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.41:9999", + "registeredHeight": 1176740, + "lastPaidHeight": 2127381, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMLijRUbe45tHVpQTAE4mUW6UamZhhGM5", + "votingAddress": "Xbp4qPYyXGo4QKnufAg8w6GjQpGmbTMkDV", + "payoutAddress": "XeHKb3Xpte64yTVQtYQdSVCUpYN7NJSjJU", + "pubKeyOperator": "85b387f463a57ed1058fab53767ee2fdc48b72a09b5626ca62eeb00394b3e9a7401b7d3ea4d6190b67d923fda58c0a46" + } + }, + { + "type": "Regular", + "proTxHash": "66a12a5df6430dbe2691509f445eb4ade77aad1285b97c6bc45e43b380257a6e", + "collateralHash": "8277d7ac39a5bfcd2f6bd8f9ceb1edd53a54fe4dd64739273ff462ad6af27d5b", + "collateralIndex": 1, + "collateralAddress": "XxNJmLYnQKSJXQcyy1yKayxaG6SNtFrC3c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.109:9999", + "registeredHeight": 1176741, + "lastPaidHeight": 2127390, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfTWLy5Ry27Yzf58iJqR1UaaFvp4D6FeYh", + "votingAddress": "Xsejb4cixFZkeyJ6Af3hUCHDdWzqGGxdbf", + "payoutAddress": "XnLY21LJKM94DeVuy76wbxX4H76gBN8vr9", + "pubKeyOperator": "0198e4bf3f807b2a731b8d74e977ac4269de63b5b6deba8cf399aef87a44365685db7eca12906e1ee07eee7fbabef64a" + } + }, + { + "type": "Regular", + "proTxHash": "d4e1585e923128345519bc1c1b38983aafb6997fd4c1d7e37a50819b9898d37f", + "collateralHash": "8f747042b0a9ca903e0a5aa336e9e26a92e78bd410d4292d6888da8d068aa51a", + "collateralIndex": 1, + "collateralAddress": "XhEU9pvSCQzQYeVcs2GLQfnxkBh6GBrUGG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.244:9999", + "registeredHeight": 1176741, + "lastPaidHeight": 2127391, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjiyY2DhiCDfZFNDthyEkpxYX42xc4xHas", + "votingAddress": "XvUc4upfAX2ArNjPE2ak4WSiiykjCJkoRx", + "payoutAddress": "XdrD9CqGgSDstebGjLVA7SowLMWS1cjKJw", + "pubKeyOperator": "8d2acc170798aed2360777c9f48f48195ee3f5c8d071c44a195fbe2e44be40d35f4435f23ef347a842e194b85ec00534" + } + }, + { + "type": "Regular", + "proTxHash": "34ebef23bd828837b1db592213ed3cb3b7ad52469a5e6e07cfc6bdcf75c39f0b", + "collateralHash": "919c299af5e4c0f841546de8894750b4511aff44140aa3ee938b4d71a06bb33c", + "collateralIndex": 1, + "collateralAddress": "XkKXqBieESg69EotyuD8igEYXGgLboNwmP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.243:9999", + "registeredHeight": 1176741, + "lastPaidHeight": 2127389, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmgSdRyrDGJwdi81jYQEoRtbxKhDf24Fmz", + "votingAddress": "XgNKLVXNiodTPevNYMKQvKJJ178MTEnYtK", + "payoutAddress": "Xo9pbHgcwoYYcxCTaqAauqZwXsE3XgSpid", + "pubKeyOperator": "0fa4c0334aeeda3cf366e0305f6c8c44ce3ccc1a88182b6ad712f8659efee6011da77369b5c4f8e8cb82624ca572d1db" + } + }, + { + "type": "Regular", + "proTxHash": "10ea0b9cc1294329d0220cadafd062065686668fc922a697401d7b1718add423", + "collateralHash": "d56cdeb560f6c1c7731408791bdf92c6ea6c0e5ccf3fb0366ccdec28bdeacdd4", + "collateralIndex": 0, + "collateralAddress": "XssPd24uPYG3yfaU1TtYSv25hn7iqMZyK4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.34:9999", + "registeredHeight": 1177002, + "lastPaidHeight": 2127537, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdTsErhio8QXKQCLEvbr2cWgy91ncPzJak", + "votingAddress": "XkB2786UYHp9AaiMeuZ9MfmdpSpFDCAbHN", + "payoutAddress": "Xctxug6DnjsiUQRLRj6dfVhVPJNDKHSTkT", + "pubKeyOperator": "16a15d6a9fe473976195c83a0a9ce69c00529852b484da2f84d38fb8b5d570b685b3a5c55f49583c4caa10d1366b7ae5" + } + }, + { + "type": "Regular", + "proTxHash": "75516eb892c5bbf9a294ee559011003422a9b14fb79adf211e76c5f1ac0aa0e2", + "collateralHash": "1af58b39f2439b68a6477b5fb1c3a8caf705377de4c325e97c5566f92e73030a", + "collateralIndex": 1, + "collateralAddress": "XcqTiuUrGZxWf3WkWZhLLiHRpip9WCmK6x", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.20:9999", + "registeredHeight": 1177440, + "lastPaidHeight": 2127902, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyWHzeDfabLnF3rv1QYgkccek5F4sAT5Aq", + "votingAddress": "XuVHn16ZXxTYjn35gBVC44esVWuHU6VHu5", + "payoutAddress": "XskKP5QZG8FADzn7nnLwwMieFSXqQpSt7P", + "pubKeyOperator": "8e7e86676d947eec52fbc53fa7e02b589b77b2c46e5f9b8f7de0c685dbd1f820bf6170315e1f896562293871c52da00d" + } + }, + { + "type": "Regular", + "proTxHash": "477405bf7aa4519f8ad5b093c6eadcda9199c6cdbcec9e3b79157b78a2178c6c", + "collateralHash": "c3ef82cd61656f131816307f2895677863c0421928c64cf562c7657d874db576", + "collateralIndex": 0, + "collateralAddress": "XusPAmAyr36UtWpwTqERg4awacc6QL1ajF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.14:9999", + "registeredHeight": 1178046, + "lastPaidHeight": 2128493, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmZDbR3MizaZyUFiurNXuQ5A4h77mK5VMv", + "votingAddress": "Xfc5RZNRqAGZZf2Th3DZ83ZPwXSpxzZjgw", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "09813e2f13ab9028effac9a07ac9bddcc2de431941acef67aa68878d95cfba49415b43e20ea76b031a49362219e2cf3b" + } + }, + { + "type": "Regular", + "proTxHash": "3e78ad110f975ae69e73c27fa41d095916df6974c17d449203fe3d1b63b8d976", + "collateralHash": "8431923eb410af9f608cced39c11caa75468b9e480c37ff945e3e6a6b4dd8cf3", + "collateralIndex": 0, + "collateralAddress": "XjN29FtKh8uZRF5gc1wFsjSkaP5a6Q8v8q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.36:9999", + "registeredHeight": 1178046, + "lastPaidHeight": 2128494, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqUqzqkNVQt2mZ86uZnabMCxXfkCyH7dR4", + "votingAddress": "XcZmLA2jvAaiwdcUcsgKjQcHMCngmSSym2", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "8318f8b40a577512a8d507e8b72855103371e238b34c8cb1cabbc6f9b2da021676e7ebbd7c27133f1779c65821ed64d6" + } + }, + { + "type": "Regular", + "proTxHash": "c7618cabfa833a86b20ea9eccebf093e2ff2722f0b5d74053c11400af0888428", + "collateralHash": "372a4bce784c107b5e7671bc91ad3b4bf7607e57d4826ffc9475272478d72fc4", + "collateralIndex": 0, + "collateralAddress": "XnbkHj5oJ6ZKQCzDGzxDi35LE8FGiwFXcE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.41:9999", + "registeredHeight": 1178060, + "lastPaidHeight": 2128497, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XncpmJB6fw6ze2o4Fa4pypRFyZuMJkGYzq", + "votingAddress": "XyPCJkhRYsiRh278RASBVfenGhnf5P8pqH", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "0ab5ec94ef680cb73479942fdffd0f95e5331f498dfe9d11496538b34097a4118c759d48a748e23680d0abf80460ebac" + } + }, + { + "type": "Regular", + "proTxHash": "a54917bf280cd06e7d74958e908f632210153a654a567f8fa1affbbe6b8ac4e6", + "collateralHash": "525028cbc5eaaab7ded4f82f36a48f2dc5384c5e289c0982ce14c34c8536027b", + "collateralIndex": 0, + "collateralAddress": "Xv4XAkYPWZ3gTvitYtq94bxBWaZ4e5qBHY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.174.89:9999", + "registeredHeight": 1178534, + "lastPaidHeight": 2128856, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xug4XQLf9AhsVNqpFuxpGhQrf6ChXjzKr9", + "votingAddress": "XnHPfjQKcM8syZMFX2GzN8bCR9dSJ8zaHV", + "payoutAddress": "Xpvqbif1VkEAQQxt8mjwnK4NFNVSRu7CDi", + "pubKeyOperator": "0a1a2bd59ce188d8e33e61ae6ac8a017b0f4c36f8d0d1623c73ad431a9bf58e705e3b733211dda121afc28b715827d2e" + } + }, + { + "type": "Regular", + "proTxHash": "6da2b580b51123ad31180e6808f04ddbfda621a4b926da6be5c0118b0f2f0e66", + "collateralHash": "c00ecfd66918e39b966e1e27bede81605e8025578d2b35522f2e2dba4dbf2849", + "collateralIndex": 1, + "collateralAddress": "Xe2FVfBuLRtgzfMVguMXvksjf6h76dZ1AY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.38.70:9999", + "registeredHeight": 1178872, + "lastPaidHeight": 2128557, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007649, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvu7HtUsH386YQkQoE5gzyDPkWBeiDD4oE", + "votingAddress": "Xvu7HtUsH386YQkQoE5gzyDPkWBeiDD4oE", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "8fbc73bd0b34163e4bc5c9ee5f50f4c3c3aaed22d762e97d9960f1f625f511abc9a4a7ee54db6038d2da783f70791454" + } + }, + { + "type": "Regular", + "proTxHash": "065820051a19ef7aa6fdbfea7fe0b7768b8a1e4a42295d357477c431596ab023", + "collateralHash": "230f209b6a8d9796043fb4fbe060de9f158f3efab19ff78fae1d13dd441d0a7f", + "collateralIndex": 1, + "collateralAddress": "XbQiBri4oaw7v1oCHgc9nKVY7wwPEJRPDy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.165.60:9999", + "registeredHeight": 1179141, + "lastPaidHeight": 2128564, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007650, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfotBNJ9sJmTfptr2RpiRSjR3S77tF8QSi", + "votingAddress": "XfotBNJ9sJmTfptr2RpiRSjR3S77tF8QSi", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "18e1ffba070b3500b9dda800f5e86cec03dfe2f3ce090d8ed2c05756d8d7a45e35cc2f2208ccd095d28d51f7a658c572" + } + }, + { + "type": "Regular", + "proTxHash": "8e42c90f1f1b92776bed34fd24cacfa69f329666a135e2d40dce57f11523dd8c", + "collateralHash": "07e82a6f42796ab04e5090f1320efb77c6937fe50b34ed2b638570a7e1da67f0", + "collateralIndex": 1, + "collateralAddress": "Xx7UvNRj9WhcKFCLLw1e16iZeefXqjqacX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "172.104.145.166:9999", + "registeredHeight": 1179249, + "lastPaidHeight": 2128667, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119374, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdhCiTG2cyySQ2KYD5jtyeA1TAsTV8SUva", + "votingAddress": "XbEKPu8dK1WEMPkQ1h2WE1cny7BCncoKpo", + "payoutAddress": "XcRpVt5fn5RCzQY7hUArp9TaiR35vs7op1", + "pubKeyOperator": "87d8c370da8ddbf24a569ed074f4084cb7f1fe81c29ac2b4df5362630d4308f4ba44e2e286e7837e8b83762306e3ad71" + } + }, + { + "type": "Regular", + "proTxHash": "c7b11bf5643026f8aa9b343bb9876c25ee42a7dfcde69d7d0937fa7d473b12c4", + "collateralHash": "de8b82674d14a112ddc5a2f900eaca05197ece8ce869ec84a943d7a22357183c", + "collateralIndex": 1, + "collateralAddress": "Xrp3efyuspqXPZSjbtPWPJ9yNRbshcgFod", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.244:9999", + "registeredHeight": 1179355, + "lastPaidHeight": 2128875, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1599558, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkmyoJvqMUs566jWu1YwuFs2h2a5nt79ri", + "votingAddress": "Xf7crVfbGtfrq4wkrwNJNaGNPqcSQoVwws", + "payoutAddress": "XnY1wr6ddp5Qb3f4faatmBrtvRRvdJatFP", + "pubKeyOperator": "95fda0c1ba69360997f205027fe88936e8c2409127ddee8b5d153952974b5bf5b866edda9dede1ea701ca7ed140e42ab" + } + }, + { + "type": "Regular", + "proTxHash": "03a9d19b983a859525724f7fb0abbbdea9858ce722376d5b37475f8c83e44c9f", + "collateralHash": "f11016022419b5d381f9f63635d4775f5a9364540a3d9571b284dd00a580945c", + "collateralIndex": 1, + "collateralAddress": "Xs5vV1ySp5ySHBVrT7iDmKPH2KRfsJ5qiK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.74.153:9999", + "registeredHeight": 1179845, + "lastPaidHeight": 2127394, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2046952, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhnYipo1GgdSnEMeyepoK4d25DFQTSq9X4", + "votingAddress": "XhnYipo1GgdSnEMeyepoK4d25DFQTSq9X4", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "850c8517b234dc315b2abccbd8c7553f9928dbfa53feaa985a19168f1e9681691273801a0ae2c31b58820c8347127d37" + } + }, + { + "type": "Regular", + "proTxHash": "1a663fe238dd71da444d0dcba7b49744814a9b64eaee679d22122714e5fe570b", + "collateralHash": "ab55d8cd75f221886e7a568c60d4a5232d156ceec4a75e71d90209fbe040fca7", + "collateralIndex": 1, + "collateralAddress": "XcwNTzGTi3gytPLsJtcZdmzpcxZdjRBswh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.238.176.166:9999", + "registeredHeight": 1182734, + "lastPaidHeight": 2126725, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120674, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQF1Qk1NpADiwMzQqpEkqEZZPFGoVzF7m", + "votingAddress": "XyQF1Qk1NpADiwMzQqpEkqEZZPFGoVzF7m", + "payoutAddress": "XcwNTzGTi3gytPLsJtcZdmzpcxZdjRBswh", + "pubKeyOperator": "8e3228798ca85d0dc88046b93ad6fb8d15565428d79bc550b83fd9aec0c1dd869d502e56dca65bb06a06118e1c83aecd" + } + }, + { + "type": "Regular", + "proTxHash": "59e5438d9d42cc36a045dfd2d7d89a205bf9eff30ae030d3b1797be0921b0279", + "collateralHash": "29794b74739f6abc37892c39bb564b3d6b63141cf3d3867e5b8a3c1ae655313d", + "collateralIndex": 1, + "collateralAddress": "XpT8oFPUPQs9V1DjYp2MnbY5scJguxx7AW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.18:9999", + "registeredHeight": 1183608, + "lastPaidHeight": 2128893, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxLaXJqTiUV7Yo2EE9RqLEmcmHJHv4JcKs", + "votingAddress": "XoaWrRyQ6kd6hfQEFTcjdwfjxBHs4D2mRE", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "0ff373bac90753ebce13ab140717c941a07879494f2fde97950b7493f8af78b35dd80c840301c1c39ed4d2e437bed8ce" + } + }, + { + "type": "Regular", + "proTxHash": "cd8a2d9237f72cefc921defec7f8752cfdfc1e8a19b87f768eec3265b1d872ca", + "collateralHash": "b48fead8daa2ad452e5263cd0d8d9dac5e3f62fc07ed0f556a9fc20402329072", + "collateralIndex": 1, + "collateralAddress": "XhRRai7TJVF5kEchMFrh6PvG8fPTKvN3Cs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.143:9999", + "registeredHeight": 1184320, + "lastPaidHeight": 2126076, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpRH5JUQTvQPXFZ25G2Y7ajzscuJaVgEja", + "votingAddress": "XitXzawUxZP7GmSeJUgVXQkRZZoFQR1YVb", + "payoutAddress": "XwTRMjk1N8rtECdKJF15MhSiQewvmJW7S6", + "pubKeyOperator": "0c0af194fa3fbc41df022e033f283f4f6d4dd747398380ee3ce3274b4d0576a49ab553308769d61acc9259e47e031ac8" + } + }, + { + "type": "Regular", + "proTxHash": "d729734d778e99d9379efd1482cf1cba5a0b954de9f5390c8073a2e9b52813c2", + "collateralHash": "d12502347c64604e60c44f0862c069cf7361e1387b726354bef82bf879935fb7", + "collateralIndex": 0, + "collateralAddress": "XoqysH5Se5oHqSrtYXEC963oit4xgq8JvQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.150:9999", + "registeredHeight": 1186309, + "lastPaidHeight": 2125875, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820915, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XogAjzH8TCwZRLp82GB3vSC2Qi4SaiJXpw", + "votingAddress": "XogAjzH8TCwZRLp82GB3vSC2Qi4SaiJXpw", + "payoutAddress": "XvPsPKvwKzH8QkLkEMKGcP4MFuQs7aVmwD", + "pubKeyOperator": "99aa3c041280376831237e7294afc4f30febefd201dec29cc282a483c608933ccac630ea6a38defef2cf7e4dd03170e0" + } + }, + { + "type": "Regular", + "proTxHash": "d09e231f2f8260859bed482d8c15bac3ec3453ce009769bb996f7b80e3a0e469", + "collateralHash": "062d94e8ba7135ac7603ab49cd6eb891d3898d6d76f41e548bf4717736f4a7ce", + "collateralIndex": 0, + "collateralAddress": "XkaiPn7BF142WdAfhcwh47tFUthsTC9Zqy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.29:9999", + "registeredHeight": 1186312, + "lastPaidHeight": 2127508, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1544138, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd9uHkJm1SV1pFtbYYbPnpiaki9sEy7egC", + "votingAddress": "Xd9uHkJm1SV1pFtbYYbPnpiaki9sEy7egC", + "payoutAddress": "Xp7M1uGDqcFsb2nMLxSg63h7Cy66nfZRGK", + "pubKeyOperator": "8bc6ba8268d61c6799652a96e4649c66b3df17a666ec2aac5825f73c7792674784006994ca87b497f6c8cc0a08675161" + } + }, + { + "type": "Regular", + "proTxHash": "6cd6f9427405345b20b60db2e08335a7287fe16de1344fb796969e9d527639df", + "collateralHash": "da835dbf2203a40fd60739c2052af43beaca8553baaf345358d36a7231a57c26", + "collateralIndex": 0, + "collateralAddress": "XtrhbMxiqF6yyd2ixVzk49QDeNuu3AghEa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.30:9999", + "registeredHeight": 1186312, + "lastPaidHeight": 2127750, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1539731, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs67FuMpCvVshYEoXB8iYeyN1WRg9QMK3H", + "votingAddress": "Xs67FuMpCvVshYEoXB8iYeyN1WRg9QMK3H", + "payoutAddress": "Xc3b9C6v8CxuZFrpfRPbmxbFjs2gtxcJv4", + "pubKeyOperator": "820145104343a5b633bf6d1fab31868a6bc2ae6b39f324546de7b69d72d9a345c34bb74abd4fb05c1fc51a9fe9218261" + } + }, + { + "type": "Regular", + "proTxHash": "e4d2207cdef7f0ea1693c4e37c82edc67ead1f85d8bf750083e1cd0fde0a94e1", + "collateralHash": "ed57ce35dca941df090314e95e1a2451b41415cca7218c8dd27eb8bd91e0e070", + "collateralIndex": 0, + "collateralAddress": "XvsWEBKkcKwPQKPnTCCweUYLhuvRCEA6xv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.151:9999", + "registeredHeight": 1186312, + "lastPaidHeight": 2127483, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1544110, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjJyLhr4D6aJ7nJtgCzKhH681Nt6xBCExr", + "votingAddress": "XjJyLhr4D6aJ7nJtgCzKhH681Nt6xBCExr", + "payoutAddress": "Xv8qGvChjceSphUXFcbSqUaeRREhR4dkJC", + "pubKeyOperator": "9992af3223442ef25f2f751f968f27e381b58e68a8d4f65402f178609df5d59428502521cd2731f2be92b392b1001ab6" + } + }, + { + "type": "Regular", + "proTxHash": "f740cf88758ccdfbe5b99e994db99a8bcab09da584da97dd83d337fcbdab4569", + "collateralHash": "80535bf16facb9ff064fadaa92414e517f43fa3ef3825726b93441d1b106eda4", + "collateralIndex": 1, + "collateralAddress": "XqTLNbHQKseRAjEJyEyTUxyB1jwRkajnGJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.238.189:9999", + "registeredHeight": 1186992, + "lastPaidHeight": 2127851, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpD4MmoHCCcxgLmDkTuXTjKttkJS1Lku4K", + "votingAddress": "XrjfmE688EbhJkEmdJSkhJB2bUuCRr59fa", + "payoutAddress": "Xt7JFk9wNrSWJe1HrjDNoDyqhpHw3SSfSo", + "pubKeyOperator": "87f2dde33b6e1b95f5cdf54e4b515256b592b3c102ef5a4f3247d0fa188d656edc17118a991d5310fe2b6b21cc4fca4f" + } + }, + { + "type": "Regular", + "proTxHash": "2577d7ad2b2f1f43cae3554dcdc11c82994afa1b37107e2c740967f9f0118649", + "collateralHash": "9ccf239ee84e215e461fc7ce4aa03a9fcb1e0346c5c0e405e07bb37b816cc6fa", + "collateralIndex": 0, + "collateralAddress": "Xt8UsKZEhJs6nG1j9gzWHWcuEHaKm6xPrA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.138:9999", + "registeredHeight": 1187773, + "lastPaidHeight": 2128532, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfk2h3zDG4tGQ4hbW51JzHmRwNJ3jfRmDu", + "votingAddress": "Xuq9HaE2TmHDn78JHFCx4SASF8s8b7b4yQ", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "80232d48622bea7b2a07e496d4978dc8cd2289ec7f7ca5e70aae0efda7053a4153785ec573cfd26fd822b03f8310d98e" + } + }, + { + "type": "Regular", + "proTxHash": "b177ebfcb9889c9195b33d42408001cdc31b2ead9dc290d0ddb857d1b065e811", + "collateralHash": "b0d3d9e91828429c242e5161a8fc0a4c7cda0ffcd813bda8bd2f2f3e609a45eb", + "collateralIndex": 0, + "collateralAddress": "XccGnwNxGmGB9D82iUfSkrtA3y1MQgJsuB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.229.77.46:9999", + "registeredHeight": 1189507, + "lastPaidHeight": 2126473, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123305, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyW8pG77iwtkvZGiithdDcz9Fe9FsB1rpp", + "votingAddress": "XyW8pG77iwtkvZGiithdDcz9Fe9FsB1rpp", + "payoutAddress": "XccGnwNxGmGB9D82iUfSkrtA3y1MQgJsuB", + "pubKeyOperator": "92ded6c54955f8703d83898d4acc3f65edc3defe09f346cc70d8d6e558211089a505e05b18d92ee05c15ebfcdaca7f06" + } + }, + { + "type": "Regular", + "proTxHash": "3bd644760dd5a407a4117ca4075b1f56922f70fd2814b9e2487484b8bc03fe49", + "collateralHash": "60ae1f1d810bc3ee64d393c897ea965f9935302665fdaed72015ca1992ff2899", + "collateralIndex": 1, + "collateralAddress": "Xi1ZnerxDphF5YpKnBGUhM37EWJAJULRjn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.45.13:9999", + "registeredHeight": 1189629, + "lastPaidHeight": 2126409, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy48QsTswufHxSHCGXf2beqYfmAVe5WD8J", + "votingAddress": "XoJmAovFgTkcamkYzqS3WG7KUXCbavhQyg", + "payoutAddress": "Xi1ZnerxDphF5YpKnBGUhM37EWJAJULRjn", + "pubKeyOperator": "9780b81e61a4d3704abc5fc9a82864bde6831fc104cc6d1d382b993cf79d2933431dce71ac5b0150a9cf89ddf6a101cd" + } + }, + { + "type": "Regular", + "proTxHash": "48721a0f4aa3267340abf79fad2bd3632959db1b60fa23d99da6edb58d744b38", + "collateralHash": "4bcf2d5909a632e1b705b1444c42722e7afb22e11367e66f2ee6fd8061eae47f", + "collateralIndex": 1, + "collateralAddress": "Xg5Zn9ef12a5z4DCk5UjRwGbemqGxLWnn5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.59.124:9999", + "registeredHeight": 1189666, + "lastPaidHeight": 2126438, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjkqs2SYpJJwVHH55kBaH5b1hK9EbLjJ5j", + "votingAddress": "Xtb5kq8rQWDXDHZhVDvZ8Fu8A6McrXgUEq", + "payoutAddress": "Xg5Zn9ef12a5z4DCk5UjRwGbemqGxLWnn5", + "pubKeyOperator": "115ddf9be9c29e718bb165b595b1662b32a64df6c2846c273e774357872bb2c61eed226ed160409762778b58def524ee" + } + }, + { + "type": "Regular", + "proTxHash": "6f9df18a07fe6ef0942e144bf64c99287c82ee4881f3a5304a0d77450c2f4f8c", + "collateralHash": "78c9e9c52d01eff0cbff28fcfd039aba39fbb88a43ffcab9e48901e1aee34fed", + "collateralIndex": 1, + "collateralAddress": "XgzPyZeEdR2x5aPTXeFntLrsTGmhzSFC1G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.245.158.11:9999", + "registeredHeight": 1190265, + "lastPaidHeight": 2128780, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1843244, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi2hNEunB4KbzpB3UvDy89Pmg4jhnQT7oP", + "votingAddress": "XhLYrrQjqno6Q2otYYNXict2pPhe8DDcyr", + "payoutAddress": "XgzPyZeEdR2x5aPTXeFntLrsTGmhzSFC1G", + "pubKeyOperator": "010be267da8548d79d1c80759838d477d38bfd1092acbebb4c29f812060b80212218a55a048f036460e0f1f79ead57d6" + } + }, + { + "type": "Regular", + "proTxHash": "ae54be6ef488ed301c0dff27bc67fba27d6462d29ca1a0cf7c30570b0978f008", + "collateralHash": "8f598443534c52c3d408ccfef0cb0d4d29ccdf6ba4e142cbca8073740e189869", + "collateralIndex": 1, + "collateralAddress": "Xf5s9o8UGfqdAd4YiYyEJ99TMjL86H7py8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.64:9999", + "registeredHeight": 1190702, + "lastPaidHeight": 2126214, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1489430, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo46JVoSZkZE1RBTRF1svWqvYqhvjRnzFJ", + "votingAddress": "XiJnCL5vMxCG7grqGBsuLBsz7WCqMWvpiw", + "payoutAddress": "Xm4xzhtTkEcsPmG9sLMp2e3wVTQ7fmMS3M", + "pubKeyOperator": "8919000eeb1880a2faebee67c37df14bcc296b8fa0bf2766cd78c929f082f1c6798614c38cff68a26f8b007174b3ec04" + } + }, + { + "type": "Regular", + "proTxHash": "0fa69221feeb29d4d85dab8bad216ad8bd5f0224525b248bc144a2cc790c33bb", + "collateralHash": "69423ddbec8b2fff3989234487cf778fc939973e8062361d24b5d9b34d74f67b", + "collateralIndex": 1, + "collateralAddress": "Xf32VPC6EKTp9QZ9p7wLBrTE6EiTghgz7x", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.54.250:9999", + "registeredHeight": 1190849, + "lastPaidHeight": 2127131, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsuY1VJnXfucuypUUBJNPL4XcPfHkfmX1S", + "votingAddress": "Xt6rotNeUeBts2Te3c7oyNQG1jNgE9GnsK", + "payoutAddress": "Xc4XQj2aRB1jvs5LNBtGw1tA4be6eP7awn", + "pubKeyOperator": "18e8fc69b0424b63cf221c75b247e49bb7a31b905975a07aae363ec98bd1b77cdf88fd243a677f574d60a7940af40888" + } + }, + { + "type": "Regular", + "proTxHash": "d0c4501d729344388499d9e7d01846c526802ca008345ea5096be1ebb6cfe708", + "collateralHash": "d8bae358515953a8e3c0b561f572d5cc0760090270e1852b3113fabe342a77e3", + "collateralIndex": 1, + "collateralAddress": "XdD3aPMPwAVcgrMMnSC8e4HQ2XSKhEfKUg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.159.124:9999", + "registeredHeight": 1191399, + "lastPaidHeight": 2128565, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007652, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnPqKuVqvKhiWS8f2XddXxSGAmxw9YR88y", + "votingAddress": "XnPqKuVqvKhiWS8f2XddXxSGAmxw9YR88y", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "8fc484542f56114de472aff2c3423291616e9a810ec4c03fe45e03f73ad287cd729a48c974fcdd9f8c1be192c8688d8d" + } + }, + { + "type": "Regular", + "proTxHash": "23fb4642ac80f472a03ba188fe0da5c2a1409d22471fd27dab5f463fd7ee9d6f", + "collateralHash": "6f804da138cc684bbb71ce4f0f4f3ace06dd5d0d450861eff72f92ab7b48f567", + "collateralIndex": 1, + "collateralAddress": "XhtdqrSS33kTDdBLB7GyRKgVzq7RqDKF6J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.10:9999", + "registeredHeight": 1191803, + "lastPaidHeight": 2127884, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo1BZMDFErJ5KdTxQHdm84HBnH8C6numPb", + "votingAddress": "XbTFZawYV9YAXor89PhpsL5phDuEtTfoAF", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "11a9eef723a9ceb07de94eb0f59c75812a5f35a77fc9d115dce7b457a9c43d8294cad4df1691762368d0ee5b27555c6a" + } + }, + { + "type": "Regular", + "proTxHash": "d37b4167323b787041e6512995566d7fae0f93bd02e3c04f8547c4db73367943", + "collateralHash": "0cfca871274fda64ed9339d5f008f4744bfd504b15b4d96257756d3a16ecdcbb", + "collateralIndex": 1, + "collateralAddress": "XhFZn1jgLkmZn6Gfug4SWJkxPjxmUaKsfB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.182.250:9999", + "registeredHeight": 1192424, + "lastPaidHeight": 2128496, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XybBQGcSUtmuEdeW2gDr8ZZUjqoCGQoS2F", + "votingAddress": "Xi7oCp6tgqYkB2vLZzacLwHF8rpDc3bsV2", + "payoutAddress": "XdFKgMBq6VMYenEj9CAKj3JSE7gNHcYTsm", + "pubKeyOperator": "165401322ce721b07dd1f97b15916c537870b1211e2023f897671a1fffef29ec8ba252569b99d97ae154257be1744ed2" + } + }, + { + "type": "Regular", + "proTxHash": "86892b78056a9cc666e2660ef605cac641671828a25da3c652d1d48c3ade9881", + "collateralHash": "dc38c9bf3ecd9413d305e88be7eecb125aaa77e19d7c582cf37dccfdd0bb577b", + "collateralIndex": 1, + "collateralAddress": "XnFC3UEMkaGgfD7Wb7Edupd57dSKeT4yM3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.208:9999", + "registeredHeight": 1195599, + "lastPaidHeight": 2127199, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdHyrNLusj3bpXHBWwrZL9tvhauc1ZpDJ3", + "votingAddress": "Xr7iiSKMs4hjvCabY37L3XAsH9fTxHN5gg", + "payoutAddress": "XnFC3UEMkaGgfD7Wb7Edupd57dSKeT4yM3", + "pubKeyOperator": "18bc6963ced6cdf7add0ef3999873f1ba9b654a067e7038b0146dfa4ad0ee378b5f51630e67e53f8bc20e74a280298c6" + } + }, + { + "type": "Regular", + "proTxHash": "1679adfbd2ae30f0bafaa43718696aff4071943f2d2ebff65469f862f4be8494", + "collateralHash": "b80c34927468bb8329014291ace7746a068cb552c76f330429841f9eaba6d9d3", + "collateralIndex": 0, + "collateralAddress": "XmBUBj1LYBSyVi5nuDg8NzDQTcjgiMZJH1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.167:9999", + "registeredHeight": 1196052, + "lastPaidHeight": 2126898, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1524904, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmwSWqSZ5qS6cgehKbjpQ2eDCAuue79pAc", + "votingAddress": "Xp8nPq7qzrJ2cSweTz64uN9WA5DBRvEfb2", + "payoutAddress": "XmBUBj1LYBSyVi5nuDg8NzDQTcjgiMZJH1", + "pubKeyOperator": "1380a4dd89332d2bad342f59e0237ee470a9444e5a30567ce72ca61838acedefd9a19eaccfa0c619c554e9dfab961025" + } + }, + { + "type": "Regular", + "proTxHash": "a4929792a1b04a8ca8b89cd87daed58bdf73dca04bf349f4661f26ff914a381c", + "collateralHash": "3a72194fcae272a236e439f684a269ee68d0f0701c1b01ec81766ee29ddd91f5", + "collateralIndex": 0, + "collateralAddress": "Xbzp3hDysnqAhR1bdwMBQDPWvtyWrjxnnC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.154.53:9999", + "registeredHeight": 1200197, + "lastPaidHeight": 2128871, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1828178, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpaUY975NiAUUiFpCbxAy91dodYDZRVqiM", + "votingAddress": "XkNfe5Rb1NkTbtWNybTHUq11w7XcKdErxn", + "payoutAddress": "Xbzp3hDysnqAhR1bdwMBQDPWvtyWrjxnnC", + "pubKeyOperator": "940821ffc45143cd4b8fb70024dbd266fa77d4d8afe3aea504fb6108726d04b093d21c894cf8dec8fd776dcb85bd2e92" + } + }, + { + "type": "Regular", + "proTxHash": "ea222be158f2f313a2c17b0a230eb8f2c37c676eb5b761b287799dd12a711554", + "collateralHash": "432607a44c14a919a616c99564c6bd02d6852ef139b8975e12b85a9d46280d37", + "collateralIndex": 0, + "collateralAddress": "Xu2TVVPXiHHcZmdyp6v4wD1zrqM7qoNNha", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202388, + "lastPaidHeight": 1726653, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726836, + "revocationReason": 0, + "ownerAddress": "XcofVmdzWhYYfAW8kEjGNAH2RUDW7JbgFJ", + "votingAddress": "XpXz5pZH3jPeQ9p86XzAEHQCdNGNGmGXFM", + "payoutAddress": "XqdtHfToYxcBUVFxvCbPzb9nFS7rK3Yeci", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9d193a122804f1ea94214a731ceb84fde2705a73d6a84d3439a5e8a82012d415", + "collateralHash": "927603e1f1eb357049c80c42281fc9934b4040bef4679163d0f1c5f72280c4aa", + "collateralIndex": 0, + "collateralAddress": "XnkTkthszkspFwkin1FstxqXajCVaqznpe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202404, + "lastPaidHeight": 1726660, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727796, + "revocationReason": 0, + "ownerAddress": "XvmfD6ggQPA4DBYTyv4b7jTS2Bm9LB8FzY", + "votingAddress": "XwvHjBqFLbKYFdXtUnhBUPnXMYhUr39SmS", + "payoutAddress": "Xf2AuWwBcVj2DB1e3Ci8quHMrky3KY1taU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2d568bc5fbefda8033d9a68944a7e8aec77f039aee419e522ff4fc27370e6a2c", + "collateralHash": "4f354f8a91f91f234b6a88c6bc0c1b0036d5090a17935939ad2e9381e58de5f8", + "collateralIndex": 0, + "collateralAddress": "Xrmj8kWHU2uPL5rDApCQQrvNpV54vA3UAZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202404, + "lastPaidHeight": 1722625, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725636, + "revocationReason": 0, + "ownerAddress": "XjGt5ajD2UbA9KrpGx3S3b3WvzwVnJd2p4", + "votingAddress": "XnwVeDvJHfvq2pXRXUbq3tHC8ccRVRW7r5", + "payoutAddress": "XiSRFTvUq7AsXyEX6oz8FRVe2vc4VnBfHT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "091672d18cf45e7051fd32333ee908b57284b2243da27465043fced733bc964f", + "collateralHash": "28e677ad2fbca219efc030dc260c92d4723c354be0a4dcab4646aba78874cc5b", + "collateralIndex": 0, + "collateralAddress": "XjQmse4ovoNMJETxnLt15J7gHLNoC1GY1S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202405, + "lastPaidHeight": 1722629, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "Xb8x92xgpKQPYCcm4g73RWaxMRgxs2CTqV", + "votingAddress": "XuK2niVp5CP2LiYwLNDvqVpGmCLsHL3VDw", + "payoutAddress": "XgMQnEcnZc7DWMB6q6uEEX5njdR1qixNZr", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "37009baa3c2f952cbba3b2fc99197ff3632b6f22bfe58ec69a23e0e898661ca0", + "collateralHash": "90ff3f7e0479e884fa1942f836950e8edcf052c3b9b62fc46706379e9ca3ba1e", + "collateralIndex": 1, + "collateralAddress": "XgTnw99LipdcvmXBE5WjxuNjMfdLK5Tkye", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202406, + "lastPaidHeight": 1722631, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724747, + "revocationReason": 0, + "ownerAddress": "XqRVAnyjSJ63weJKbVvjkTHtJq8HLdh1NU", + "votingAddress": "XswapQBfWs9F6YEUjcKTqQeYcW3UuLmS5B", + "payoutAddress": "XfB1ZeQ7vuxyLzMXKdiFgCiNhgcQXtZynH", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "54dcbf3038227b35785ff4de25d2107ba2e6e21f0bf78cbc088ddd234c3c8520", + "collateralHash": "fb0388548f56ed3ca6672c25e9b8d41e4fb2498ec470609d03f78ca82d8da9f1", + "collateralIndex": 0, + "collateralAddress": "XtzErNxkbcnKtw9sgaxXaSwWG7sphD9V3F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202407, + "lastPaidHeight": 1723078, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1415880, + "PoSeBanHeight": 1726091, + "revocationReason": 0, + "ownerAddress": "XfMEFChQixoaqRtoi6ppcJRjVgBZRwwFvu", + "votingAddress": "Xq8NqpqBA81iP4CFLWA4D5vyLUVqLh185g", + "payoutAddress": "XwEiT94JRJxX8UKr4xD9zVoos9ts3Y2A78", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "24740fe88f5e1b30170f6cab47bbffefdef29d5fab2454f7a9185eb7402ca8e2", + "collateralHash": "f368e99bf7f780b969066605896d6f5a88c4a5b251eab3a079b55005c2f39d48", + "collateralIndex": 1, + "collateralAddress": "Xo3CRrmmqs6VoCJDsYqU9MLJRKKnZYQxFJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1202408, + "lastPaidHeight": 1726666, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727157, + "revocationReason": 0, + "ownerAddress": "XqG8Ff2LtabmVXd1rxzdHn9cYSaNitNTPW", + "votingAddress": "XcAzGY9rbCsQ9VtY1x3WH5sa6poqWYJ1o9", + "payoutAddress": "XoDR91pS17qRx4BWWk8s845BWzw4HJK6du", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b316c715fb035a4c5ed747211640169045c5764fedfa33067e97990cf8ba7d5e", + "collateralHash": "a6b9447c146e4b23673e5b2261aba6255d76d61d1a81e218305879f507d75a71", + "collateralIndex": 1, + "collateralAddress": "XutYQhwTnMcZgmkkcNRvgY56fjLC9anzvj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.111.214:9999", + "registeredHeight": 1204031, + "lastPaidHeight": 2126666, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcDu3dCohhixTd1MKKXY7uNafT7G7i6YAs", + "votingAddress": "Xy27RY4gJVmRoLPSCpYoDhxDA1bvyvz1Ue", + "payoutAddress": "XjQXdghnyBQtUaWvSxGduuwD2STEq4pJbH", + "pubKeyOperator": "82c7000c7554c384d80dbdab33196873d51e4a5a130bdc9d378856ac9462c6becc57293732cd22ea572934f7cb6e6745" + } + }, + { + "type": "Regular", + "proTxHash": "c40d18ca8d96a388afbdbea10a0418b03f30485fb7a1583f2970be6b9b001595", + "collateralHash": "17501a7d128590eb25f860dc9f8fac4a9930444388999f155195db0ff816fd93", + "collateralIndex": 1, + "collateralAddress": "Xwqi9SkbFmMH65FYVHB36Fh3Q48kJNvBBp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.225.96.193:9999", + "registeredHeight": 1204037, + "lastPaidHeight": 2126667, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeSodaGZ6Ep9qXa5Bk38E3sRMcPXp82w3c", + "votingAddress": "XfzbxdZrNgbp2AwJgJ4amsVb2gHj1ELpYE", + "payoutAddress": "XjQXdghnyBQtUaWvSxGduuwD2STEq4pJbH", + "pubKeyOperator": "8a63101d62c713df7359bda5ad4672d38824dd59fc553198bd7d5a66b5c7a9c81aedb8922e5b29de4dca1da4e502d44b" + } + }, + { + "type": "Regular", + "proTxHash": "24ba736989f35677b63147e95c802110750a88902670a21ac8af9cf34054e6ce", + "collateralHash": "5f38cb8755ec8e22f4f646304f7fa85fb7374bffc5db7a1b0d1ea2ab78746227", + "collateralIndex": 1, + "collateralAddress": "Xo5DmeB5M6dWkChwkiyxrDVftohnhppYKc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.185.24:9999", + "registeredHeight": 1204037, + "lastPaidHeight": 2126669, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxaE1WKpSBn6UyF2sUkeBgG93Zk1A5pgUi", + "votingAddress": "XdwumZv2cjMeaSxnCe8ULpjMUGzjCw6NLc", + "payoutAddress": "XjQXdghnyBQtUaWvSxGduuwD2STEq4pJbH", + "pubKeyOperator": "8c4bb5f02613c2504d3b305e9b9acb29b36d2da2df3dafc975b6f2d849c650ce099a25b861d2309cd6919f4dbe645655" + } + }, + { + "type": "Regular", + "proTxHash": "c5be14e16f1172fc081e38bcde95eec46d0c838f4d65f956b6f4c8c8b67b7e2e", + "collateralHash": "36349e4f65685b68b33f5968fddd3ff808953598c7ddc729bf2609f1680ed4ca", + "collateralIndex": 1, + "collateralAddress": "XbxbrX2Re5EGTSrnzjVZA8aqYijjXsgYck", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.76.44:9999", + "registeredHeight": 1204037, + "lastPaidHeight": 2128742, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1980908, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvaasSCEDPbSvsrB7Vbi4jQURDtfzHvNeA", + "votingAddress": "XyCrEv5Xfnr5E8E2gy1oZLTveMZNboPi1M", + "payoutAddress": "XjQXdghnyBQtUaWvSxGduuwD2STEq4pJbH", + "pubKeyOperator": "0dd6d54d9c42ed7a31bff23134084b2356e2dca415a5440fde65a6389a72c8cf7ca71aae8bd1d07ae4feca207147608c" + } + }, + { + "type": "Regular", + "proTxHash": "81f41457299ab182c7cdca3d399f9af2a29fbcca99e76f861fc8fb84adec5fe6", + "collateralHash": "a662ad7de7ba38702d3a472adf9f2e75a5f8b8a252d81dd84815a374be0d639d", + "collateralIndex": 1, + "collateralAddress": "XvqQUjx5tTxyq1bcQbC6JyVmNe3BLLziTT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.79.199:9999", + "registeredHeight": 1204086, + "lastPaidHeight": 2035970, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": 2032603, + "PoSeBanHeight": 2038794, + "revocationReason": 0, + "ownerAddress": "Xhpywv97yJn2R5n3uXgRZxS64Nmf8ZLgZy", + "votingAddress": "Xhpywv97yJn2R5n3uXgRZxS64Nmf8ZLgZy", + "payoutAddress": "XvqQUjx5tTxyq1bcQbC6JyVmNe3BLLziTT", + "pubKeyOperator": "970ec27526148ab568f59bf045cdad70416b9df45dd2f9c77d36d2cfa16f51347d5a767d1e1ca8260856ee15ed5ffd7e" + } + }, + { + "type": "Regular", + "proTxHash": "7ec2a6e899e40debf6a621cc5da9b3a0f450eb941de25935fab1ecc49c8cecf3", + "collateralHash": "d0e24fc8a2d3741881d71d15ad37a8826658b5c7f8ab0d2a5fdf8b5c3ffcd12a", + "collateralIndex": 0, + "collateralAddress": "XxUmFWmCSBR6RuViEQcD94Nhj6ThpNg6p5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.175.66:9999", + "registeredHeight": 1205192, + "lastPaidHeight": 2126049, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1760197, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuQSyCZBNuHyXEBCpveVkbPvBgiFnZrkRP", + "votingAddress": "XrF3W2939gxYuV5T1xHkXyxnF4LjSppHZK", + "payoutAddress": "XxUmFWmCSBR6RuViEQcD94Nhj6ThpNg6p5", + "pubKeyOperator": "8918be5c7c8814a658c44bea6864d19c60b22f58cef6dcbb13ebeff07ae4a0ff8cb7511ca708a855e9e9e5974f704ef8" + } + }, + { + "type": "Regular", + "proTxHash": "9c9ad387d11790d41bded263c47174134873f61307b97237858c347d871a5994", + "collateralHash": "d0fc3499e9aaf30cd8311381cdb671e84b682f8d258684b3fa0f748b132f25cd", + "collateralIndex": 0, + "collateralAddress": "XxTcV2BwVttuiGMrCkvxKDLQXyutdF4nW3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.47.119.20:9999", + "registeredHeight": 1205650, + "lastPaidHeight": 2127746, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm2kJMgceE38mdfePiJ3y1R2TA6mkFTQfT", + "votingAddress": "Xx1ezgX9dDtWHNfBNS4Dqv9a95B7U2bCWC", + "payoutAddress": "XsYTabP8D4CgRkyw3Kz1xuYswS7e5F8Fbq", + "pubKeyOperator": "8d02779cd103bef2f9933a2520b71c9d685554b2802f42b0b0edb107d2c6792e6e489d3b8e05486f2a8effb3788ab766" + } + }, + { + "type": "Regular", + "proTxHash": "61b8708fa63f790bcde5fd70b8bddf0abdeb733a1ad1048be8dda0eb9b7748d8", + "collateralHash": "1cc8dc0a423b0092f5c75936a1545bf31bf204973cdf435eacc7dfcf18138e72", + "collateralIndex": 1, + "collateralAddress": "Xwya3NKL4wtRgNACEvpJTizqW615Tht9BA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.20.114.223:9999", + "registeredHeight": 1207341, + "lastPaidHeight": 2126387, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1735046, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpaNvDtd8trUpfeT8du8Nm3K9WCp8z7D1r", + "votingAddress": "XnpumBZGJeC1FHjXjjLQ3jjQ8FwsvP8yuK", + "payoutAddress": "XyazpVPgQ6dTQVDqRXhH2JQQz55mfpC2r8", + "pubKeyOperator": "88a594073c12b9966a99488e2cff9666c4e89ca316a4da205959abaac34cf16e675436d3ca4939fec427ca782383c8f3" + } + }, + { + "type": "Regular", + "proTxHash": "604b507247fb857c51f0d794ad8f4f8c61f2223d85520e88f97fd6cc0a805f71", + "collateralHash": "fb9e159168bb01e6192e3e862976c688ccd89af093ddefc935952763dff6a338", + "collateralIndex": 0, + "collateralAddress": "XrPXzwF3QdhMumhtWjEhKJY7ka3qXuGC52", + "operatorReward": 0, + "state": { + "version": 1, + "service": "140.82.52.184:9999", + "registeredHeight": 1208766, + "lastPaidHeight": 2126750, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xya7TxfCjDeqCKRrkkqkijn7H3cB9QnL9D", + "votingAddress": "XjDwE1Z7BdRucn6FYTfLLds97AtuLGikEr", + "payoutAddress": "XrPXzwF3QdhMumhtWjEhKJY7ka3qXuGC52", + "pubKeyOperator": "138f21d388656fdd3ecc30ec37e57fabc2787de93c2efed98ca4189d1dd9ea56c2dcd8a31beee58c0bcdb245bccd53c9" + } + }, + { + "type": "Regular", + "proTxHash": "366526db090463676727dc692c554e0255418f2137848c5ca8138504e74859d4", + "collateralHash": "9f17aa6273a31c7fd4c577e2057c2e5b72a033c4652ac660511d4724547004d3", + "collateralIndex": 1, + "collateralAddress": "XmGM3LNaSHYUap2CkgKenER6jzXPvegKa7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.94.173:9999", + "registeredHeight": 1208775, + "lastPaidHeight": 2126763, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxLQZkjdUKcF3v5AjaUYfXPmH3SafksvmC", + "votingAddress": "XjSLZckxNmAaQ75HMMrjhLFWE2f8Pjt3pX", + "payoutAddress": "XmGM3LNaSHYUap2CkgKenER6jzXPvegKa7", + "pubKeyOperator": "099b8b1ab3831be8d0ba705426ee55809c61f6b16ff9381aa5d76daa312f77ca5d1b055d7f5794201c7b049e35836f46" + } + }, + { + "type": "Regular", + "proTxHash": "712069571b9410c039b94c4feb2d5b5004c1864af071090673d73c27da84a098", + "collateralHash": "84cbd30d4fe63e2714aa5480459bcfaa3e97e9a57a2671ce7db29bd85ed1f1f4", + "collateralIndex": 1, + "collateralAddress": "XyQugLQkLy8XGVBHBhR6VVyAUG98oY2Hci", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.175.70:9999", + "registeredHeight": 1212573, + "lastPaidHeight": 2126229, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjWhMp2x22F4jz6cmCyeb7PDJUR3S5F3yD", + "votingAddress": "Xup75p1qZ1QvFYR5ogoKGmHVG43YdobmVX", + "payoutAddress": "XyQugLQkLy8XGVBHBhR6VVyAUG98oY2Hci", + "pubKeyOperator": "09d6153afb8a0b3049cd247914a7132dcd8b1cb48aaaf9f84e0dacb2d65927ee38a167d088bf15de91c7ea59b3663745" + } + }, + { + "type": "Regular", + "proTxHash": "0e7554535604d2aba583465913ed2abda61bc3f8fb4daa79554915771c2bae32", + "collateralHash": "84cbd30d4fe63e2714aa5480459bcfaa3e97e9a57a2671ce7db29bd85ed1f1f4", + "collateralIndex": 2, + "collateralAddress": "XwRL2MKsY4C62zXsRnYQmnH9nGVKim3U18", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.135:9999", + "registeredHeight": 1212573, + "lastPaidHeight": 2127817, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830709, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgPgt3SpQnFpsr6xnwJtRxHnaFr1eBvUU5", + "votingAddress": "XyFyzPmmvdAmXZ3bm6SVJTrFEBw9eNif4Z", + "payoutAddress": "XwRL2MKsY4C62zXsRnYQmnH9nGVKim3U18", + "pubKeyOperator": "80a0cd078b56fa811d346656cf0f0de1832e4108b150d8afb74dfd4cf1b0838524606e0b23361f784e64bb9934e0be73" + } + }, + { + "type": "Regular", + "proTxHash": "5f206ec4ca418f07c2275e4a3b4aebf3a968d628e7643c036bb7149b34204124", + "collateralHash": "68a3ddf20fb34a3239ca3de8817cee4b2f4b3b1a00ee7c1abfc7f1bef2ea3974", + "collateralIndex": 3, + "collateralAddress": "Xm7jgqof19zejRJoQqJQzUeJ7hBKb8yjjd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.246.221:9999", + "registeredHeight": 1212618, + "lastPaidHeight": 1631033, + "consecutivePayments": 0, + "PoSePenalty": 4565, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1633883, + "revocationReason": 0, + "ownerAddress": "XqJrpTMjC3xrdkawP3jQCEpwr43EkcbVnN", + "votingAddress": "Xeo3n3yUKJLuGDPpon9ccRi1bfnGgCiFqB", + "payoutAddress": "Xm7jgqof19zejRJoQqJQzUeJ7hBKb8yjjd", + "pubKeyOperator": "83f7ac19ccd71ba0e7fc2829f647ca77d693dc23f41981ca06bc4d33bdb719b119677dd990e27fdbf18d4fa59d4c0280" + } + }, + { + "type": "Regular", + "proTxHash": "73ff78ab94b5f58a72f7d39640176fe5676626e84cee1805d1632e1c23189165", + "collateralHash": "68a3ddf20fb34a3239ca3de8817cee4b2f4b3b1a00ee7c1abfc7f1bef2ea3974", + "collateralIndex": 4, + "collateralAddress": "XpfQzsE2fGj4PjGb1qZnRhPpjqcv8caUcc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.241.117:9999", + "registeredHeight": 1212618, + "lastPaidHeight": 1635360, + "consecutivePayments": 0, + "PoSePenalty": 4557, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1637651, + "revocationReason": 0, + "ownerAddress": "XnUcYnD4Hoe9eo7jdqNh5wFdpRKJo2CyXy", + "votingAddress": "Xh5Sa1reQBppEegKjQNHcKKBo26fkNtZYb", + "payoutAddress": "XpfQzsE2fGj4PjGb1qZnRhPpjqcv8caUcc", + "pubKeyOperator": "03d81b6295466acb3b3a07ec3d663f1111c6bf0341b42fc833fbc6d9291d8f11bd8c62cfe585b3ba77aa1398f2b805ad" + } + }, + { + "type": "Regular", + "proTxHash": "62f15dce085179d94cfd134aa78cf09c1a60c9b0e2356dd481af97a5f879c44d", + "collateralHash": "68a3ddf20fb34a3239ca3de8817cee4b2f4b3b1a00ee7c1abfc7f1bef2ea3974", + "collateralIndex": 2, + "collateralAddress": "XcZHNzQziSAFUgj48EHSBWkDbzBAftZnAo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.39.36:9999", + "registeredHeight": 1212618, + "lastPaidHeight": 1635359, + "consecutivePayments": 0, + "PoSePenalty": 4558, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1638323, + "revocationReason": 0, + "ownerAddress": "XjX5ZjAWLw3D5iUX3W17eWYL5HE7kcQ773", + "votingAddress": "XhaJtzNRv4LPQGVyGhG2srebTJLAbsgq68", + "payoutAddress": "XcZHNzQziSAFUgj48EHSBWkDbzBAftZnAo", + "pubKeyOperator": "0da0fbae93f47952855f8c41990a5368349e8c0c006a703cd79111dc5bfbf3a2aa9736a5356206eeffaeb34b59e5a5fa" + } + }, + { + "type": "Regular", + "proTxHash": "dd10e9d49102d5dc95fb37481f3d23f05f812d6956cbe75a341b122cb7ba647f", + "collateralHash": "68a3ddf20fb34a3239ca3de8817cee4b2f4b3b1a00ee7c1abfc7f1bef2ea3974", + "collateralIndex": 5, + "collateralAddress": "XtNTtkKug2PcYz2hERvo2eubhwjrDeud4R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.178.244:9999", + "registeredHeight": 1212618, + "lastPaidHeight": 1635361, + "consecutivePayments": 0, + "PoSePenalty": 4554, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1639283, + "revocationReason": 0, + "ownerAddress": "XurgsfM7gok9oUzb4LQQvpVSHfrLkDLhop", + "votingAddress": "XygwmAjmzPJ4eaBMScwndsAFNThRidM7mH", + "payoutAddress": "XtNTtkKug2PcYz2hERvo2eubhwjrDeud4R", + "pubKeyOperator": "8fe87a428eb924d06602a4690e49304843bf5c24459f6dd50faf587f93e6b4785bdcfcda48754c787f0339796df8e6d8" + } + }, + { + "type": "Regular", + "proTxHash": "bc4db9ed2e6181bb041478357a65667a8175d0340480e6dd38e921f6fd871449", + "collateralHash": "68a3ddf20fb34a3239ca3de8817cee4b2f4b3b1a00ee7c1abfc7f1bef2ea3974", + "collateralIndex": 1, + "collateralAddress": "XbA4WtUuDZiCsJE4ckRVe7afWqasYBx4Ge", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.39.170:9999", + "registeredHeight": 1212618, + "lastPaidHeight": 1631035, + "consecutivePayments": 0, + "PoSePenalty": 4562, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1635156, + "revocationReason": 0, + "ownerAddress": "XxgGgZAEFywBz9gWGT53qVHo2zCX1Uc8av", + "votingAddress": "XoLR9bCWdrNhsNCwbnG6Lyy5BSppdD9cAq", + "payoutAddress": "XbA4WtUuDZiCsJE4ckRVe7afWqasYBx4Ge", + "pubKeyOperator": "13e991b55449d2f0280845061eca28f39d583d15b32ace75d7ab9ebfd65f17447216ff4159e898d202dcc3a10c6e4790" + } + }, + { + "type": "Regular", + "proTxHash": "3ac77decb0cbdf1690a83542d246c7399a24056a8e075d554bffe3cfc720223c", + "collateralHash": "cc47abb058c9b8481b02dc868b96e4110c053f415a79f6cc8703ae9da69ee967", + "collateralIndex": 1, + "collateralAddress": "Xf3LZPLZWhXgq9GEGLDAh6rHcVTfuCgjrx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.150.159:9999", + "registeredHeight": 1213515, + "lastPaidHeight": 2126880, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvDQzkvVpWyKLTuyE8BWsDdwyywt1cT2Ca", + "votingAddress": "XiDxJPcpWGuibUvWZkT6mJyS3SKPY9eRSu", + "payoutAddress": "Xf3LZPLZWhXgq9GEGLDAh6rHcVTfuCgjrx", + "pubKeyOperator": "043b0003dc221a22d62b50be90d91d4153ad05a53a0d5e5020090a68a56ac45d60e18520910246dc874e28c06b58f45e" + } + }, + { + "type": "Regular", + "proTxHash": "39787429404a3bd891497d0f4883ef42f58d635e50cd9e100632026b9818a975", + "collateralHash": "b0a0b3a49bdb8af7c926d426e45bd288c827584bbd3cfbf07a0a3a0342b7a565", + "collateralIndex": 1, + "collateralAddress": "XhmT7guTCZfgsgRZxFjjjH2Z9M92foGGFV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.236:9999", + "registeredHeight": 1213530, + "lastPaidHeight": 2126889, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xju8sf41YfhkmJjfJ1SErzBeaLthntTE7y", + "votingAddress": "XiGioCaXHWTuGJhMQJwuD1XXYet4npYcyB", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "87aee21636298ae98fd149a65cf5a239d5469832f430bce0a04da36f9a0019aec7d76dd80c5652c7ff0e4374e19e45ce" + } + }, + { + "type": "Regular", + "proTxHash": "acd1708ea9fc2472927b8369a4564ae034d9d1e629a0632510a4852476993ec8", + "collateralHash": "44a802635d1283054e262e7dec06fb0bd7a3da3e45a2e5057db8b14cdd4fecbb", + "collateralIndex": 0, + "collateralAddress": "XeVRK1Hy5hotzPrbHXtzosqodB6hAANFUm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.101.187:9999", + "registeredHeight": 1216929, + "lastPaidHeight": 2128272, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2054496, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhjQJRvKTMCJrgeHuEAiYgiHAoY13snwuR", + "votingAddress": "Xtisvk5h1ARZMTE3YH8q3qW9wvbnXU2GsY", + "payoutAddress": "XdmVroxWdqhtjuQ2AfQNA1uSco4sawuiH6", + "pubKeyOperator": "0f47ecec2079ea4c3efc1f6e3f753056ed2761610d5a18f4007a67d82d38231a1c2645a081e3f26a349717b54d9e1900" + } + }, + { + "type": "Regular", + "proTxHash": "148c3fd705347b7748fb46b44a598b6305d9d47fb681f88954577288c6a89a9d", + "collateralHash": "2649765d498dc3e6b8d70c884d315134624b9018611fc79149f5ebe377dfb475", + "collateralIndex": 1, + "collateralAddress": "XnNpAWTMMQQqXgK29nSEZ3UXq2MUscG73B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.234.171:9999", + "registeredHeight": 1216931, + "lastPaidHeight": 2127074, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1753999, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm1r2fFRhsFWRRyExcR4XZctBgMjwVnEGx", + "votingAddress": "Xpo8ysAywakSUXELxS9VAGU1fxfUL5aTuU", + "payoutAddress": "XxSjBMUskE7F9XbpA6TYbHzhHDmn7vtG2w", + "pubKeyOperator": "88cace92eda9f34f11251c1345c9e7edb85fd8932f27efdf9ceb81c4eaee03a60d11a1c256a0ebc0b86df953043ee6b8" + } + }, + { + "type": "Regular", + "proTxHash": "db4d61d212362666b1b9a2c1d863d3a11df8a5214090028c3d516e3b48e56174", + "collateralHash": "8de526e7031e72121430c411e44c98da6e8d4c810361c64e674b8f8b92c3b911", + "collateralIndex": 1, + "collateralAddress": "Xvd7WK3Nj1RPJ7Sf8ksXikxzj6ZN1XohHs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.93.231.17:9999", + "registeredHeight": 1218082, + "lastPaidHeight": 2128566, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007652, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjYLYEweHXJjWpBPpUNo3jfW9HiPEv74NP", + "votingAddress": "XjYLYEweHXJjWpBPpUNo3jfW9HiPEv74NP", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "0adbe29fc3633b567d4dff52c7383825441eb119d01983333f012cff6edf087476f08fa40632da50a98b4153e7ebc0b6" + } + }, + { + "type": "Regular", + "proTxHash": "f0cf643f2098605eb570f22a72d6fb93735563e35c5b9bb93885236d5388e0f6", + "collateralHash": "d059ecff34f19da9a6c7a72f48a5ad3f7faa6edf5dd949291ab42c65206cffa7", + "collateralIndex": 1, + "collateralAddress": "XqGcrozzdnXVNJ99otmPEjJS8RLuP3Vv52", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.22.167:9999", + "registeredHeight": 1218250, + "lastPaidHeight": 2128795, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977451, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtrv63xHBDa45UYj8ybBPgMBfETiFJPYsG", + "votingAddress": "Xkf7FwbhWvycdopQjqwTNjPZJDnDkKgr4V", + "payoutAddress": "Xo5Su1oqskXitKf2VEGsioHmDNUJrX8wjy", + "pubKeyOperator": "0ba7c48c6a4b5dcc06f9d965d51c12750575e73b58344e50f8a302abb1d43eb7eb539f85d7b1d25e1640cfd7970a9f83" + } + }, + { + "type": "Regular", + "proTxHash": "b2e4d784149c04c5aaca458510c686514f05ed8b804ce4cae95f486c15404800", + "collateralHash": "569f16d6a12390ac4de2506291fbb445c8d4a223813c486451bceeb5fac88cfb", + "collateralIndex": 1, + "collateralAddress": "XjojhxgxLf3zrDFnGpF66tZQ4sEZNYEUcP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.4:9999", + "registeredHeight": 1221807, + "lastPaidHeight": 2126225, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxFirfb6c8ManwuYMyodZAZMVXSksr7BwS", + "votingAddress": "XxFirfb6c8ManwuYMyodZAZMVXSksr7BwS", + "payoutAddress": "XrmwCJGcZppVKPWvMMPSutA7WkiXo5FrZ7", + "pubKeyOperator": "82027b2f0b86356e54ad9f6f9d09cc6b9397b194f01efa72cc9fcc15101014c7b870c7787b082c7ed08aaf3a1a9a4134" + } + }, + { + "type": "Regular", + "proTxHash": "fbed01f1d12e9768d5c1c082235b69aa5cee6b95066f5d8512853725132d038b", + "collateralHash": "cb403aa9781cd8dd3668f2656b9372cf0e342f8c78a97b651f6c84e3c1d1fb8c", + "collateralIndex": 0, + "collateralAddress": "Xxx8Z716AemADaQwnEUoqV6fBmwvGygFcL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1224949, + "lastPaidHeight": 1725528, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1663274, + "PoSeBanHeight": 1727415, + "revocationReason": 0, + "ownerAddress": "XdpEYniMjXeYqxvjcHbdQZL7Z17NuRjGhH", + "votingAddress": "XbxFKfpL36HguCYV4HPcxJmqfDeryARLFt", + "payoutAddress": "Xvydzd7kt47od76GTryeXyXP7G8DDDUWfK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2db9de9567006fea5ca570d207ad35b2443e0bfdc1aff767f247ca613aded2ca", + "collateralHash": "822f0ad58975f77d717b7aac43694f4d07b74fa80eb5b26a0614754876523c2c", + "collateralIndex": 0, + "collateralAddress": "XcJNyBpPwCpgJYhqMTdLFsANdKkSs6Cwz6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1224954, + "lastPaidHeight": 1726309, + "consecutivePayments": 0, + "PoSePenalty": 2393, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727415, + "revocationReason": 0, + "ownerAddress": "XvX5akQ5F43HY5nm4wEPjuUooPCnQL3gjj", + "votingAddress": "Xf7ziHJXY8qZ1HV2E4mzewKcyvpMnLszPa", + "payoutAddress": "XptqYpHgUwehnqEPyrPGQtd2aE5fTuN6r1", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d43e70bcb00a581a0cc02f390b1175fd50040452da77a9a39dfc5be71e5b1891", + "collateralHash": "7ac15855bdbec5050d723f8de6ef601206112d53b66dd5cdfdf40561a67dc153", + "collateralIndex": 1, + "collateralAddress": "XpvkbPt6kpVsdQv99dS9TLkv5BLzeoa7fr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1224956, + "lastPaidHeight": 1722267, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725179, + "revocationReason": 0, + "ownerAddress": "XmfV47Y2DkSdKfZpMd9SYAijvFntF7HZzj", + "votingAddress": "Xg1LbEzrhPcjMHgJRUwwRVhPQitrAHBg7q", + "payoutAddress": "Xck3EpDXtKQYX6aMrEeQsiYrMVjFvnQ1aM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0582c5ecc6bb7dd08eac809c01f685376aed28b7f1644f46345e217ccaa3684d", + "collateralHash": "51070ac5e3a2f9d1d55c86a609f8b03b3b9c38c79fe97a2c16619a483ca52831", + "collateralIndex": 1, + "collateralAddress": "XvQnfMSnb9pihQBCdkgjczybehbXKifGzW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1224957, + "lastPaidHeight": 1726312, + "consecutivePayments": 0, + "PoSePenalty": 1351, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727415, + "revocationReason": 0, + "ownerAddress": "XdMeLo7dg8UbFJcw4azcyBZfQCtsFJYgzE", + "votingAddress": "Xuu2nCh4SL8DrpUyeHnxKQTrWQ6dRnX4jg", + "payoutAddress": "Xyo9bsmaC69D1L35L5XDDvA5LENJR9YN2e", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6bab8ee43f87b3cdb041ac230880747169d660885206a3d99880be26f2976903", + "collateralHash": "dbe7a7d8cb9f65c3017372584d2126af6149e2556591bd269fa146285394f274", + "collateralIndex": 1, + "collateralAddress": "XmDawKSv3E3Z8Supd1x1LctxmtYmrG9nfV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.133:9999", + "registeredHeight": 1227411, + "lastPaidHeight": 2127907, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1585176, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyDEzQ3c64jDJ2CGCHhf7cx8mGzsCZQvEC", + "votingAddress": "XdH8PTLUD6BQEQbLUfgA6rJbbdHimobTk7", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "070a6db18c2debbb06f24e092f02066901cdd644017d9d5faf2e7dd2a75975f9a8e79bd3af8e3463d5fb9ccd91960b36" + } + }, + { + "type": "Regular", + "proTxHash": "58286520e060ab745fc2ddeb3d232068caf630256d76f26aace815549634b68f", + "collateralHash": "bebb34593fe8649751a1215ed7572630536d63a214d4044ed299e4c41612f9e9", + "collateralIndex": 1, + "collateralAddress": "XucGZERcHSaJRd9WpUQB5Ueakr7qU9BGuF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.109.237.75:9999", + "registeredHeight": 1229606, + "lastPaidHeight": 2116672, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 1977829, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "XmJ8p5HKpZHQ2YfxGSqDoSSCzU6m33bTkb", + "votingAddress": "XcTLi7njL7dfBrLSJkAgZpP9fkusGW615X", + "payoutAddress": "XtcCK5aK6G9p2c4A1sXW2KSFvAD6qRCZAN", + "pubKeyOperator": "8aa7388a93a2bb0ebbdfc9a9d6abca9c2b8054bbae24aabc608e467448c58e269797743fc6e7b4fe5c5cce2587388e3a" + } + }, + { + "type": "Regular", + "proTxHash": "b33505fffb773745bd2f5e964d52f16d02247662d12b03f827b9ffc6352aa6ea", + "collateralHash": "488fcba951ad6debb69ea95d253c9ba3ea19e2b034c77cebd06d78f919ee17e5", + "collateralIndex": 1, + "collateralAddress": "XqmLrx59fiVzLXsfcvui5o32CGiSdhtNgG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.94.182:9999", + "registeredHeight": 1232376, + "lastPaidHeight": 2126504, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1727662, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmNfsgvEte1UUMNzdYaTjdBmiDohqhUGKq", + "votingAddress": "XpBeXkvpM7ruSdAmwq2FKfgeJSk7qA39qg", + "payoutAddress": "XiHs9tmreQ8VuGrNYZi4h6kBrzQXYtuqXg", + "pubKeyOperator": "95062a8bd73faccdf02385e0081963014cc51c805da2233abece6ac0834a7547e2467ad4a09ddc9e71b8e71a37b1a6f0" + } + }, + { + "type": "Regular", + "proTxHash": "f3d48cbdb0faecafd40ee3d8f1b445d3bbe44bdb6852032b8912ee18494e7f5f", + "collateralHash": "8a65f90b1ef166970c7b409ec5a9dbc261e42fb242128b4b7d789ae026573e18", + "collateralIndex": 1, + "collateralAddress": "XvF8dqyY8xaD3GiA8p7y2PWR9rgm3YGwq5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.30:9999", + "registeredHeight": 1234413, + "lastPaidHeight": 2128711, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xro3jP5SKijH42jeYbMyazy2ojmke3egB6", + "votingAddress": "Xro3jP5SKijH42jeYbMyazy2ojmke3egB6", + "payoutAddress": "Xuesp5DQ7Eo9c1d1PfwHLb7gdzJfaTZqe4", + "pubKeyOperator": "825b93492ac36df028e64173b8f7cf6d30eb2f388b493d46d8165be84db52b5650f73b64929f0013cda868c5b6a984f1" + } + }, + { + "type": "Regular", + "proTxHash": "e1f8f4d09aeb35d826312c0be1de32a1959399ab7b95acc5ac9e03a55397d92a", + "collateralHash": "ee54e99acbe75fea792d094949964290e5e0b53594ea9a03b2d21431ba47ace6", + "collateralIndex": 0, + "collateralAddress": "XpV5jRdfCfrg41MmagkKfa1VHtmqTCsApP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1235255, + "lastPaidHeight": 1348472, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1348635, + "revocationReason": 1, + "ownerAddress": "XeiexxzndMeCLWHadWvmdDp5QKdnUrJVVc", + "votingAddress": "Xoe99E6ysCjCnshfKYturVhHWJMTJKT4sM", + "payoutAddress": "Xu72H28kP86rHWHgJGBbpiGiN84EEsHFnm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d3c9dd4c27ac4edfb0e250fd48c99637ee5e1f8c88f8ffdd7049190e91c4cc1b", + "collateralHash": "19411234f10fb979f118f7e04081e3e2d647c2748c77e82e3587dc2a23e88bf0", + "collateralIndex": 1, + "collateralAddress": "XhxBx4aF3uqSRmr2cqg2sJX1EEyYXzCe63", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.227:9999", + "registeredHeight": 1236481, + "lastPaidHeight": 2126761, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeJUTQbFoeUFXV2Tv314zLypSNi6idnA1r", + "votingAddress": "XnghWtWUqBCZEw6d4FE8Tp9b7D93cZgVHc", + "payoutAddress": "XhxBx4aF3uqSRmr2cqg2sJX1EEyYXzCe63", + "pubKeyOperator": "163ef59611d144854ffab3adf30aadda7426f67458823577e42506ff4a5428497e9ecd70f692f27fc319ef3573268556" + } + }, + { + "type": "Regular", + "proTxHash": "39430a000f1c3815dbfc6225c9bd9db080aa0291dcf1bd4fa114f6a81bf6651a", + "collateralHash": "2c90bbdf3d9627ab7b7e7d8e81a4ab9f155bfbdbc24a2a0aac34bc614cfa9c3f", + "collateralIndex": 1, + "collateralAddress": "XudKuSCJE8YYqcedNScz7UnpZynRbMyHfN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.36:9999", + "registeredHeight": 1237020, + "lastPaidHeight": 2127119, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1899980, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfr3zhJmhEELEp5zSKQhoY8WFHHDsYVeqw", + "votingAddress": "XpMN65nsK4FE7nahuEom3oVS7KP8ovo27q", + "payoutAddress": "XudKuSCJE8YYqcedNScz7UnpZynRbMyHfN", + "pubKeyOperator": "009972d27351d6194fece0a4657be2c6a7f281e2ba1d3e787c8d4d84347ecc2749f44835b5518775d3aefebedc02f244" + } + }, + { + "type": "Regular", + "proTxHash": "865d91d2dc1179f2386944522de51670602b0c757ab8d6dfbe6b8a73da9967d7", + "collateralHash": "fb4dcf1fef0ac1fdaecc785d311d0ff3d838d255cc5d887629b3d6000c901f89", + "collateralIndex": 1, + "collateralAddress": "XhZwU4S2HTQwwdF3C3jBN1vHU9GP7wQ3tT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.49:9999", + "registeredHeight": 1237285, + "lastPaidHeight": 2127298, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqUT4rone2rBpvGi726UoKNsfgUarH4jeU", + "votingAddress": "XvZkAhDxATHMbSye1wqQnRc6qKRMFckgLf", + "payoutAddress": "XwohECTUiZhLgeycW3u1b8Y8jhmt6ApNCk", + "pubKeyOperator": "1706555176f9d70a201193d0c65e896927e5bfa4a7dc37ff6f7877017199d5d1da6da309d123f00dfc92f8c4c433e86c" + } + }, + { + "type": "Regular", + "proTxHash": "10cb666de6a84948a6933badca65282d29306491b85b8f4089c7fea8f11483a8", + "collateralHash": "05d1453007c631fe895425856b81bc4b0e063d1071063effa7f074d22db44cca", + "collateralIndex": 1, + "collateralAddress": "XcJgrHytx983bgShZndba69cstc3RhtLoQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.35:9999", + "registeredHeight": 1237602, + "lastPaidHeight": 2127457, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvq1tpEsvM46mFB5gvrZYThFYX3BrxGYvX", + "votingAddress": "XkfNiApsdGQFqaMX8JTSgVpHyFX2HrBGf2", + "payoutAddress": "XcJgrHytx983bgShZndba69cstc3RhtLoQ", + "pubKeyOperator": "90b7dd7c99d5b3110f872b63dc8bbf1f1bb94284310206f58b878c71471c843297f106022b9167ed369f3c26c343c1da" + } + }, + { + "type": "Regular", + "proTxHash": "9b8b44de9c9d47fda25dcd2568d1d75b3d80c220d3ad504fd0e24801f32cfe4f", + "collateralHash": "6ac80233d26f271fd914e7dc201f0b4892610cdd0a12e32c08aa73eefa7333b6", + "collateralIndex": 0, + "collateralAddress": "XhefTzf2WjH5VsDdgbV8sxSZoZsYoiW1U9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.102:9999", + "registeredHeight": 1240734, + "lastPaidHeight": 2127820, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830709, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtJqVFHzoZLyjR8frsmtYtRywmX81Btbxj", + "votingAddress": "XpM21ifAza8NmhQ8Z3MBpcZFW54JA5LbKW", + "payoutAddress": "XhefTzf2WjH5VsDdgbV8sxSZoZsYoiW1U9", + "pubKeyOperator": "99d50e2bd0f24425db66159e9bb8c92a89fd5d55ab5607aa58c3102e83f521b4344de1c47b6b47d4b0a06ba3863c9cfa" + } + }, + { + "type": "Regular", + "proTxHash": "d04b017caa0bfa31cab66798970ae6be58f7fb720bdba3d041ba4f40585b429b", + "collateralHash": "1e74377e03382210bf85c9dc1673a3a978cd743b54974cff1eba389bc773a6bc", + "collateralIndex": 0, + "collateralAddress": "XtCjb9Q8XSwttXtyUQh9JV9g1CCMfe5ozX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.81.17.138:9999", + "registeredHeight": 1241190, + "lastPaidHeight": 1733987, + "consecutivePayments": 0, + "PoSePenalty": 4469, + "PoSeRevivedHeight": 1689291, + "PoSeBanHeight": 1737396, + "revocationReason": 0, + "ownerAddress": "Xq4xLJfiTgxFvWPxLt5senWZbyBuYdFpQR", + "votingAddress": "XjdTwQuqvxjzAH6qKRJsxakT3zsAWvixAs", + "payoutAddress": "XtCjb9Q8XSwttXtyUQh9JV9g1CCMfe5ozX", + "pubKeyOperator": "18a4067bf12b74a1bba8c79d36c558df418a24edf087911e84abd161df1b5e759fd921bf4498f7853aa6dac1ad9b3703" + } + }, + { + "type": "Regular", + "proTxHash": "0062e548ac39d518de7b74b9ea92cf6735a8699a3d70896e533dbb5167aedd0b", + "collateralHash": "10ac7a1c6f3561929db16c16567d118804ac0fcbb7451d9bd7774871013757a0", + "collateralIndex": 0, + "collateralAddress": "XcJLKbY4Dhb4uai9WhjfMxuep48K3noAkg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.69:9999", + "registeredHeight": 1242734, + "lastPaidHeight": 2126160, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1519336, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfV3vwJ8EwZbTedSsCn1Rqfp62p7mhgDbv", + "votingAddress": "Xi5xPr9oqkCAzAoG7eqarGKsgkuSEdoEMm", + "payoutAddress": "XmqWkeYFKQ6uzw1DVmGRTfkLyw4H7fQAmv", + "pubKeyOperator": "8e053cea8b28b4e904909e0c2d2e07c33855c518f0b7deb640d25f0b8b71d9401176eb4b72eaaff6c34761c699c8f291" + } + }, + { + "type": "Regular", + "proTxHash": "e71acd75e2393f0aae1a0ffb524c7cb52597b912bdfea8ec509d27d054015805", + "collateralHash": "7f615799309e79c52ea6e9de70b94b2924a53599f1ffe6e0d5f0a82ff3c887aa", + "collateralIndex": 0, + "collateralAddress": "Xn2Nze5ZXibYxPbFHwtF9ST2jDfkNb7aVM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.56.80.27:9999", + "registeredHeight": 1244236, + "lastPaidHeight": 1248831, + "consecutivePayments": 0, + "PoSePenalty": 4690, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1249883, + "revocationReason": 0, + "ownerAddress": "XkAHzmLtWQTXEmU4VnAuW8RweF5r4MdZSF", + "votingAddress": "Xya9TradSSnvcGdP2wsSjy5Knjuw8vmB58", + "payoutAddress": "XqG91cZtAFhgN16Qp5KzRv6wXLUhjnk5NH", + "pubKeyOperator": "8dd634b816918780e82cd4e6bdef548e8ebc0ba92877c45629d6b0ed27fa04dc2303b934fc46e8c033a6a58ccdb4ae98" + } + }, + { + "type": "Regular", + "proTxHash": "8b3c67a98beea93d17cb90f167a01153e22cbfb1147d7240a753b96c1d7e3fdf", + "collateralHash": "f7008bc499feda6a8353fd05d807ed605f9f20b24d4be41a5815ea45c3fe8f52", + "collateralIndex": 0, + "collateralAddress": "Xv2UVfDNirsji6jZZfE98DpoeYwodyotDG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1249523, + "lastPaidHeight": 1723409, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726500, + "revocationReason": 0, + "ownerAddress": "XfYWQWHHh18SgVJpfMN7igDh6RxLjSwLsE", + "votingAddress": "XsnWyEMBixVYY5ioehsu43VoHS4DRr7MoF", + "payoutAddress": "XvBrD3PTHHuLp7hVjNuUbbjwrWnjdhmZEz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "abf2f87787fd43367c157a7ff2fa50184b7bd48ace267f4572caac9a203c61e6", + "collateralHash": "fb4dc1a1d5533a6854ec2e0464ac036a7855e0863a91ca8d9ca2badef8b505e0", + "collateralIndex": 0, + "collateralAddress": "XsZFzShPCXaqwixtKkjykiM69HBANeSP4r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1249527, + "lastPaidHeight": 1723412, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726020, + "revocationReason": 0, + "ownerAddress": "XbRkDPG5C588qi2jAu45PaDFA2e4Bsgk5t", + "votingAddress": "Xw29o2W2ghQcvSQMqVNB2BfFv9pDHF8oRN", + "payoutAddress": "XsUiBRay7j1xW8m9AtpSF3uTmGFQyQwBo1", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "36d4176c91a30607948d1899b1db2b636f3a2a83d1e597b01880f4d561b09f52", + "collateralHash": "85f216bdbf663b8e34930e0218fdb0b95c2da1a2b967c9c52069ef1a26f13c70", + "collateralIndex": 1, + "collateralAddress": "XwWaHuneXdGKCyMGzVsxsDhoQz8AgHSt5U", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1249530, + "lastPaidHeight": 1723413, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XivNYMRu5UjPRnAR6bk3M4QM1PHSGoNaBb", + "votingAddress": "Xrhf8d7toi6t7RzeGeePKjHenvHnF5KsR6", + "payoutAddress": "Xkd573MWBLswdNKYJ1NSc4ZYUxfcSbJqu6", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6d01af715a381e17d59450be282c5624e6e658567ec3e16871d5e4a7263dfb96", + "collateralHash": "7e8eef9b4db2925ff8923b69b8b457ec53ebe7f74698044e1e9f698b08bbcf4e", + "collateralIndex": 1, + "collateralAddress": "XbNjxf2VQaxyTyeuZwkFgJmYH7bsKjsJVB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.189.157.210:9999", + "registeredHeight": 1251464, + "lastPaidHeight": 2127453, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgMJiWYeatYBbTEyBmmtrefzJUbMfs7iwh", + "votingAddress": "XgMJiWYeatYBbTEyBmmtrefzJUbMfs7iwh", + "payoutAddress": "XqkkhwJDeGCZeFqwhedHP5cuVDWr6N6faq", + "pubKeyOperator": "00474e1bbf9bba49f1f3ad2b1065b1b5162fe84ad7a43e7d28ce7920b3d2947f3e0ec013786a442f768ac13ff29f2177" + } + }, + { + "type": "Regular", + "proTxHash": "5230834d9f501372fb1159b0c2abee4a72fd829cfd0583a739c2952d5246507a", + "collateralHash": "80c5d8bc664e2294a5468054106943d062a989695da8c4a8a7dd9b0f40325428", + "collateralIndex": 1, + "collateralAddress": "Xxkd7DTB359Wyd8LjvDhreytzyjZfPCqJE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.140.107.48:9999", + "registeredHeight": 1256879, + "lastPaidHeight": 2126491, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126935, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfztvZnBQYzbnbjCAS49sHEqqsN5GoCQVN", + "votingAddress": "Xf9KnFXLnHbLnbtACuahhPN9wmKxkvwXxo", + "payoutAddress": "Xs8Znb7NJiUZ5RjDa7XzTLbSif3dGZf8MN", + "pubKeyOperator": "13c30f2a8aece636acc66553accc0b6c08b238f30818bdc3b72759e5829bf2efc76f65cae4792e3524b3d642cbc44e72" + } + }, + { + "type": "Regular", + "proTxHash": "27c457ee77f6f08a5b5b46f262562841e2e2e90c1585cbbb2417f55bca680d7a", + "collateralHash": "debc48c1b1c2a5f066a0723ecfb2db55a8bbf9184524c259348fa050055abed7", + "collateralIndex": 0, + "collateralAddress": "Xov6Gum2ywB3mnhRUTJPmJJfPtvC1yeJzH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.142:9999", + "registeredHeight": 1258805, + "lastPaidHeight": 2126388, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbkmZds8GbdiyPo7pfbLfywqbYSoNTT3Hq", + "votingAddress": "XfEWQGNzBnJK1vor8cDbBrowXmH8fvPsUq", + "payoutAddress": "Xov6Gum2ywB3mnhRUTJPmJJfPtvC1yeJzH", + "pubKeyOperator": "860f9cb0bf8fa775877b412b336b752e373b26b9ed9ffd3d6694ed4ddc6f0ef2c1cf90a2755abbc23bfef904ed83ce17" + } + }, + { + "type": "Regular", + "proTxHash": "c59205475a6774eda8a9e9753803ba833555e0fbd46fad666c2e5c454031d4e5", + "collateralHash": "551e21dae87482236f1c45a272e2ae1b3c27230e6736711174b47bc6b97f074d", + "collateralIndex": 1, + "collateralAddress": "XfqobnkizyqcNmXpsK8WiExtTs5WCsSyS9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.192.117:9999", + "registeredHeight": 1258823, + "lastPaidHeight": 2126393, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkhhqBoCRLPAYX5kEKdinVW8AsRDmELEAN", + "votingAddress": "XyJiqNGZ4hfJYiAeqUvScD44iM4TZvtGrD", + "payoutAddress": "XhPXat2PJEqJj33Z9VUTbxjLLpEJ6QDwod", + "pubKeyOperator": "150f85dd97cbef73c72aa8bb0dcfcb0dcc4089a3f5c3a54fdc9b4a6e64047800db76f71e82d4f8b36496bb7ca6d485ee" + } + }, + { + "type": "Regular", + "proTxHash": "9ba63f6e6a12016173ae6ecc7ba191e60c5323bf30654757d22634dc071130d9", + "collateralHash": "f21ec9053d8be842814f086f04aeb44920fbcf5680c68d8a2ea16375385ab49d", + "collateralIndex": 1, + "collateralAddress": "XhTLZKSWchEQnQB3pbjTjZcXUJ93uk7foN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.98:9999", + "registeredHeight": 1259265, + "lastPaidHeight": 2128872, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1261950, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrZ79PNXzWULQ4safFBDQHqkpDUbNtMSKg", + "votingAddress": "XqDXvcuGqtvp5hwA1E4FvohEs4esbFnkDY", + "payoutAddress": "XdxSKJm6agA3rrZPbJbk4PFasKRu411Ba4", + "pubKeyOperator": "81350747c54fe18bbbb92ea1f81091a569451a89d850dadffc0f4aaf8d9cbc6e35460fc8bfe8d222a55c44d127a60c92" + } + }, + { + "type": "Regular", + "proTxHash": "d00fe6b6c63575be69a8f9296b73bb4d1660d1405afdf737699385cffbec4fd1", + "collateralHash": "1a8c3d643ace742b3c054d29f6e7de112cf411113b57e657fa224624dd7d22e9", + "collateralIndex": 1, + "collateralAddress": "XsgLoC49xkQF2XVWXMiMeNtCbAAGaNjL6m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.192:9999", + "registeredHeight": 1262134, + "lastPaidHeight": 2126404, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1706974, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuLDg8rw4Mqnr9mT1GTZ3BP6kXJ4EdsuVm", + "votingAddress": "XrRgXug4HnjYCfHD7yQXXPcXpucU5Q3Vdn", + "payoutAddress": "Xq4cmq9f8GuFq2oYCqtpyitm6e9WQ3KPcc", + "pubKeyOperator": "8cff5757b16497f58cb66912e3f97461d4d2bb83cf2a34015918af8d4ab7da912ac116d4d6d835a4020f5e9732ee73a0" + } + }, + { + "type": "Regular", + "proTxHash": "34de6dee101af4edd0fdfbc50f6fdfd95d0fb8403ebe5a886c33cbec0d232111", + "collateralHash": "27a499711ff919ecc209ba197d02e841b70501e244d7cdd8dc4d7907ee562722", + "collateralIndex": 1, + "collateralAddress": "XoyRNN5NcSKptavvTpXu6esZ6Akx3ik2AN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.45:9999", + "registeredHeight": 1263072, + "lastPaidHeight": 2127129, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1562004, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XozupJCiCdXzLDLegnjfByhNcBttYBAJCG", + "votingAddress": "XePj14J7Xouf3irzbCFWtgr5vNa82KkV2A", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "948124318d42651ddda44b84d687e9b93389e008813a9c1aaf186c1284ce592f0bfb36862825b2c0d855c36a2f9df307" + } + }, + { + "type": "Regular", + "proTxHash": "4c793c626af1f2550dcfac7c70a736642831ec448bb481e1149a7eff0cb86cd4", + "collateralHash": "459fa76b1827be47739b88d6638d8ad74986b70dfecbfe38df5edb4d0b4e7367", + "collateralIndex": 1, + "collateralAddress": "XkdauhyH2ooDyzfkM65phT8XgTbwYieQqk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.195:9999", + "registeredHeight": 1263140, + "lastPaidHeight": 1912700, + "consecutivePayments": 0, + "PoSePenalty": 4225, + "PoSeRevivedHeight": 1832879, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XvWRu57cN7jeivz4RiJueH3vktrYxkS7tJ", + "votingAddress": "Xy8qEaE7zgvno6JMrtReRKZaLcvzBRUhAB", + "payoutAddress": "XkdauhyH2ooDyzfkM65phT8XgTbwYieQqk", + "pubKeyOperator": "1106584da9ceda3220bad41b432099399b94cf3abdf92a9097721691d71d1449b9749833e85f0dc1d032e4a43f0df756" + } + }, + { + "type": "Regular", + "proTxHash": "3295f226d3344b702f45b6f1b3b7efc16db786077fb5f38aeb95166fa12ab632", + "collateralHash": "f63407fcb583e3ce474f58df8b9e36390c22b237dc102123bea4bb73e3bfd54f", + "collateralIndex": 2, + "collateralAddress": "XyYEnVqxfK2qJxDdbEH5dZ4uGwGGWytQmR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.196:9999", + "registeredHeight": 1263144, + "lastPaidHeight": 1915012, + "consecutivePayments": 0, + "PoSePenalty": 4209, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1916394, + "revocationReason": 0, + "ownerAddress": "XuT6u7bd8nDuCFXbLkVPhEQ6GU3zDqxEzc", + "votingAddress": "XpWFfAqyUrGC687z4s3XQDbfdM2gtnUsoU", + "payoutAddress": "XyYEnVqxfK2qJxDdbEH5dZ4uGwGGWytQmR", + "pubKeyOperator": "8b815ea7d6d2b4ff03825529ff16afdfaa5a7c1796cfa565552f4b608e3db8a9537e5c8c973779a6834ec3878da1e64d" + } + }, + { + "type": "Regular", + "proTxHash": "db10cf665fef0588ffd7a4db03624c979db7375f94898e5a1048f3c9f8aadd00", + "collateralHash": "7f63d33c4c261f89456077d0f05f3741e2f30a51a7c95ccf1e220004911e7eb7", + "collateralIndex": 1, + "collateralAddress": "XtFjf8NP1Sa2RLXaFvhvvzejbz9tWHHwPr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.198:9999", + "registeredHeight": 1263145, + "lastPaidHeight": 1913103, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1802796, + "PoSeBanHeight": 1915242, + "revocationReason": 0, + "ownerAddress": "XjEBjfxTAySvYyoDATuFayF8fWq1RZeRHk", + "votingAddress": "XsEMHmvXdJbsNqFgpgTjrZwz8LAoLNhC1j", + "payoutAddress": "XtFjf8NP1Sa2RLXaFvhvvzejbz9tWHHwPr", + "pubKeyOperator": "87ba9be473c243bb72644e32db0fd2635b1856e9cde503014681b6a6549ca87ba7c061772b5a6ed10a4c19adb2c7cf9d" + } + }, + { + "type": "Regular", + "proTxHash": "b241a5c21dd204e97e5f678697d68467de508725e966dcaec41d640859c4b5f8", + "collateralHash": "60877e1c52e125007661f04bc392188fc68a57a91a197557e11a31a4364eb0a6", + "collateralIndex": 0, + "collateralAddress": "XpmFyvSL7ebNFGJ6oLSQZyPqFauNZ8wqKM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.199:9999", + "registeredHeight": 1263145, + "lastPaidHeight": 1915015, + "consecutivePayments": 0, + "PoSePenalty": 4206, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1916970, + "revocationReason": 0, + "ownerAddress": "XcvbPLmdzdiwh6hemty7Vk2ucHkdM4PBLk", + "votingAddress": "XbdbLSAMcedVvLaewd8MY9X8c6vKEcCP61", + "payoutAddress": "XpmFyvSL7ebNFGJ6oLSQZyPqFauNZ8wqKM", + "pubKeyOperator": "0c6bcdd6c407cbb2d68b907d0b144fb0c6488df46c146d47be1f67f3f8e4fb70d2b099950a93cd2fd027afef69bc41fe" + } + }, + { + "type": "Regular", + "proTxHash": "70da587cecde434877297ef5b76ca460a970bb15df030c562fc79ce254387ce2", + "collateralHash": "2bf6313b07cd3b81bfb55e2d047d39374879c05ae5379ed2d25ed2070ba7598c", + "collateralIndex": 0, + "collateralAddress": "XcpktX6bLADN6VBowGseb8zWh3HFVy5mg9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.200:9999", + "registeredHeight": 1263145, + "lastPaidHeight": 1874576, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1677857, + "PoSeBanHeight": 1875786, + "revocationReason": 0, + "ownerAddress": "XvuU7ppy8FHJZ3Y5EeKMGFhhDWcLrP2GFt", + "votingAddress": "XkGtxC68m8ANSHVkaHjs5KNWVgs1Pv5Ubi", + "payoutAddress": "XcpktX6bLADN6VBowGseb8zWh3HFVy5mg9", + "pubKeyOperator": "9944c5bb2bc25033a0fa951dee3ceaf74949bbf18f9c4a37402272f816040e6f8f0b979d6da40e14d580a4b12fae8177" + } + }, + { + "type": "Regular", + "proTxHash": "bf7dc2c78e03b04ec8c64bc8aeaf4ec7e3ccfd2eb490fe7d7ee044ee60565f8b", + "collateralHash": "68f1a13d83290c6cddfe91cf3c2aebf938c0b07a00e7f77de0fcb1c3740fbb37", + "collateralIndex": 1, + "collateralAddress": "XwgAjmuXX2WuqXpVvpYWnyPFxrbG9L9ZDt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.197:9999", + "registeredHeight": 1263145, + "lastPaidHeight": 1911425, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1914934, + "revocationReason": 0, + "ownerAddress": "Xdgi8uYGXzTVE6eCEgnCyUXWU91Y6BSRne", + "votingAddress": "XjDkK4nH3jE15UWfiTPQvnPdtrN5PtS3mK", + "payoutAddress": "XwgAjmuXX2WuqXpVvpYWnyPFxrbG9L9ZDt", + "pubKeyOperator": "18091ddfe032f3410d089578b6955492e23c696098d005a535f7feb1509536dd0dcdc70000ecb50087892677bab2bc28" + } + }, + { + "type": "Regular", + "proTxHash": "2c03509a9d2738dd59b0ee48971ec7a90d525420e8128000c0b79a4614108c0d", + "collateralHash": "d0c50eb1c9b5f85bbe76b2ff78e92eac62f8f5b65c53ec014d98066ce7ad72dc", + "collateralIndex": 1, + "collateralAddress": "XpzLwQiQzbBRtyJfS61HfbfkZs77LgfkAV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.201:9999", + "registeredHeight": 1263147, + "lastPaidHeight": 1874641, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1875786, + "revocationReason": 0, + "ownerAddress": "Xr3ibSros4yNx5RDS5GsoZLisgTvbUvcPi", + "votingAddress": "XoXRHU1uaRkTEfz3MJdDeCJwYXYm3Veng8", + "payoutAddress": "XpzLwQiQzbBRtyJfS61HfbfkZs77LgfkAV", + "pubKeyOperator": "0db290f1b2d6630dc5c2e2e3f37a6972ab7255dd78dbbb665a8e01cd0c79a02f00ddaac85020a09761bfe4043e3621f8" + } + }, + { + "type": "Regular", + "proTxHash": "6ef6b11a6aaf005342795e7c819e67ee9b93bc332b461faf37b522580028829b", + "collateralHash": "9d7a51e69d5625b3bb89167cef841225b5802488c3f64711d1fa135ed4f54828", + "collateralIndex": 4, + "collateralAddress": "XfapXFz77tt6ovzzY8PD4pxNbLEB5cDTuR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.202:9999", + "registeredHeight": 1263147, + "lastPaidHeight": 1913578, + "consecutivePayments": 0, + "PoSePenalty": 4225, + "PoSeRevivedHeight": 1822433, + "PoSeBanHeight": 1914934, + "revocationReason": 0, + "ownerAddress": "XeVGYzjW2e5Ln5qmHpSoBRTXxcgYaQwqGe", + "votingAddress": "Xiuazf39nHrKVsuuKnQRyE4g2M42isAh36", + "payoutAddress": "XfapXFz77tt6ovzzY8PD4pxNbLEB5cDTuR", + "pubKeyOperator": "92dae738ab948b027ac1cada939d0dc193d4ecc613f2101455c27d5b1d77dcf6957f1d82adcf890a1e2d9ded8567ea59" + } + }, + { + "type": "Regular", + "proTxHash": "817987aa71ad97ed1e6f78eb6f38606f1b38f3761793272b5d9ef838b88624c2", + "collateralHash": "30818641351a90eae102c3155c3ca511188d238589b328f82cc81013156409db", + "collateralIndex": 1, + "collateralAddress": "Xy6e5ZQ2R486bNAqmYmQTQ7hA6pc5KuMgn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.203:9999", + "registeredHeight": 1263147, + "lastPaidHeight": 1912590, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1915242, + "revocationReason": 0, + "ownerAddress": "Xp3wRmSLGYQmDSBnc2ZPdpibZXVG2ZXXYH", + "votingAddress": "Xr5ddYL4u8sQ2cuyrKD8uX6ivfx4yeFUDX", + "payoutAddress": "Xy6e5ZQ2R486bNAqmYmQTQ7hA6pc5KuMgn", + "pubKeyOperator": "996f8bbfe935e8144e5472087ce84d0f601b115e51b4ccdb6a6cfb6e2e5654a9bee349b03020e4c2f6b23b06c3703d66" + } + }, + { + "type": "Regular", + "proTxHash": "dd6898d972d31d6ecea04779a2aa4ca5d906d697beee1c8180e4a0eafea8940b", + "collateralHash": "ebdedc1fc3468f764b5c014420f198200a96015d6eb9ad5ddb15259b52d5e615", + "collateralIndex": 0, + "collateralAddress": "Xpky7fiLnU6gwc9hXahks7ZjUws3H9QdaU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.204:9999", + "registeredHeight": 1263147, + "lastPaidHeight": 1914494, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1684496, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XnuKzQD5YnAkXYET5f93tUzvghryLojnG2", + "votingAddress": "Xt5Y2oUX3TTMs31YMT4CraxCAhgC4ZTvHV", + "payoutAddress": "Xpky7fiLnU6gwc9hXahks7ZjUws3H9QdaU", + "pubKeyOperator": "97a6e789aab752baed572daeb9b86e3f0a8e3275f6b1e6e818e3ab7a7765e0056c5707301d906f26038f1f2523fc63d9" + } + }, + { + "type": "Regular", + "proTxHash": "7b09e83c7d56e82138808c4776aea8054701b775b256c9daf3f57149bd76c3a5", + "collateralHash": "a1cdcda85dfac2410db502143ffdb027b41e5bc1d072022f7939ad75b6054850", + "collateralIndex": 0, + "collateralAddress": "XtYWfKfWWe2xh1Zjv61SxceYZJvuNjTMp4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.205:9999", + "registeredHeight": 1263148, + "lastPaidHeight": 1914411, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1729388, + "PoSeBanHeight": 1916106, + "revocationReason": 0, + "ownerAddress": "Xv7Af12X3FhTLcdBSdrTnQbZPKRJRZWumg", + "votingAddress": "Xfud4PJ6oRVGDNEeDRLjTCjbtG2jrq929J", + "payoutAddress": "XtYWfKfWWe2xh1Zjv61SxceYZJvuNjTMp4", + "pubKeyOperator": "004b6db94ee1ff607d47abf37358e8540654c239d92e2f90b8c062b7efccc99eb96ceb48931d065e0ee48ba6ccad8158" + } + }, + { + "type": "Regular", + "proTxHash": "01b2a52acc47833221b2f15f024495e4464ee010109b689e97a6c748260f592a", + "collateralHash": "18fd9c80f27017451e99dfd89b9253dff86586611549c9597333dcfb8dbc6a22", + "collateralIndex": 0, + "collateralAddress": "XmDQ2wnYCM6EaAVaUFyedLvWccJ8jZqSkn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.206:9999", + "registeredHeight": 1263148, + "lastPaidHeight": 1913626, + "consecutivePayments": 0, + "PoSePenalty": 4225, + "PoSeRevivedHeight": 1830146, + "PoSeBanHeight": 1914934, + "revocationReason": 0, + "ownerAddress": "XbYWJmtZehc2wRkJb2VP4RXczRfEeutRKx", + "votingAddress": "XcDvY7Sri338MjxPvqz2zLf7WpqN3eDdSr", + "payoutAddress": "XmDQ2wnYCM6EaAVaUFyedLvWccJ8jZqSkn", + "pubKeyOperator": "0d17b849d19bd79bd7266f8311afab266545e71dd67f543308c7e33dba6dec2ed9b09aae023a12573974e85596ec93bf" + } + }, + { + "type": "Regular", + "proTxHash": "400266988ea524cee260c97fbf8d933fa47af4d3b7c8547ada30b3bc05ef9856", + "collateralHash": "9774bdea26894121976a77e9c40b669ed3b3b674187db936ea77deee6b072e27", + "collateralIndex": 0, + "collateralAddress": "XhAmT2TSyu7TFkVbFwQyUsm8kMWR1EzHSA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.207:9999", + "registeredHeight": 1263148, + "lastPaidHeight": 1912727, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1871209, + "PoSeBanHeight": 1915242, + "revocationReason": 0, + "ownerAddress": "XcWMgjwGDohGhX7fBfrjdnDdX9S964qKUg", + "votingAddress": "Xo6bH2V3r6j16PBhx5MbSrkLPmdMnn6Qxj", + "payoutAddress": "XhAmT2TSyu7TFkVbFwQyUsm8kMWR1EzHSA", + "pubKeyOperator": "86ff342646a89bd1a1b2d0a91884145d97e61e54fa7ceadbba383b6f2c3e044952de3fb5c5527630ac3a18f1fe1a7d00" + } + }, + { + "type": "Regular", + "proTxHash": "3d9fc21a0f1546987233f05c7d94f3fd312e7583264ccc73272b718e1859b590", + "collateralHash": "e0540738ac6b8709beb10a034763db97b66a94a941687194873fe622441aac49", + "collateralIndex": 0, + "collateralAddress": "XkKqbrhobRKFXmc9gbGTKGV2c1GvWQgqWc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.208:9999", + "registeredHeight": 1263148, + "lastPaidHeight": 1912282, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1763864, + "PoSeBanHeight": 1915530, + "revocationReason": 0, + "ownerAddress": "XhQ5ivvfXPimqBGTUb9LD5oLSaTQF4QH26", + "votingAddress": "XnUCDsM4TfowaGcqFjYt5bBNpux7wdEia3", + "payoutAddress": "XkKqbrhobRKFXmc9gbGTKGV2c1GvWQgqWc", + "pubKeyOperator": "06e5fac9463e522f6169445a7af1b70acd41a3397067c724ae6a177ad243db82873690cbf1eb6a826f61883e91a1a5bb" + } + }, + { + "type": "Regular", + "proTxHash": "65b107c41f9e6fe511c5dc7dba00d5785e1157a12bfcf7abdda13880d5c90119", + "collateralHash": "8545f2a0650bf0030633271c39ee87429366d5f30d7fbacc3b577c2d96284bfe", + "collateralIndex": 0, + "collateralAddress": "Xuj33XHsLqB9cNtUucsjaJbAVjU8SAsvTH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.209:9999", + "registeredHeight": 1263149, + "lastPaidHeight": 1873366, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": 1680597, + "PoSeBanHeight": 1875660, + "revocationReason": 0, + "ownerAddress": "XqmWf4C9ivC7jqGu4SHCSngrvbbep1j9Ff", + "votingAddress": "XfWxhMMZoQbqKBAYoKQWc2bKzWLfq8kd5g", + "payoutAddress": "Xuj33XHsLqB9cNtUucsjaJbAVjU8SAsvTH", + "pubKeyOperator": "040c2eeae85eda1dd8b800b2d119f482a55fa771991edffa8f95785bfdacb836709dd169a003eab1fdd15d20209d5aef" + } + }, + { + "type": "Regular", + "proTxHash": "f4f0e06901f99d51f8407cd90a5af87124ef262d52ade7d44d714fef8650aaf2", + "collateralHash": "ebac94d3708c9a70800fad00ebf0a3dbff677f7a177161ddccdf42b34f88b9e6", + "collateralIndex": 0, + "collateralAddress": "XezZumN1TvE4owLof4NoRdoB9z8zVnez1m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.210:9999", + "registeredHeight": 1263149, + "lastPaidHeight": 1911427, + "consecutivePayments": 0, + "PoSePenalty": 4219, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XvDhGKq4nZ37b5hpRdpyLRe8mAw6JYUbwk", + "votingAddress": "Xgd3y5o252KhBiaDBqnt12FydApm2TwQfp", + "payoutAddress": "XezZumN1TvE4owLof4NoRdoB9z8zVnez1m", + "pubKeyOperator": "162812ec7b931ab980f2b17fe0e686ef6e3e5bfaff9fdb4f62da81879f2235409e25b4b2d2c39146266a8fa189bd1fab" + } + }, + { + "type": "Regular", + "proTxHash": "a7ef86259531aebc17b2a2f20e0e80d64cbb698cf3b487e74ab0e142045b1474", + "collateralHash": "95755a7b98bbe6581ec16c2ac5e9727d66fbb6c3ad577b40fe191fd6fa665dce", + "collateralIndex": 0, + "collateralAddress": "XcuecGTdNXaKkWRBdbtJ4q2oszd5uVpgzp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.211:9999", + "registeredHeight": 1263156, + "lastPaidHeight": 1914500, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1684497, + "PoSeBanHeight": 1915530, + "revocationReason": 0, + "ownerAddress": "XohMDc81ZKJCyh6BuruNuBEC9dvKfZ3wAd", + "votingAddress": "Xy4U2g6CZtTuHsXBEfyF1J89pwj7Q6yAhN", + "payoutAddress": "XcuecGTdNXaKkWRBdbtJ4q2oszd5uVpgzp", + "pubKeyOperator": "167ac97e2a62d1a7ac5058b4739407fa052891bddf6a09c78fae0ab145bb9f04101c137d4b2733b4735e18c1c3e0c940" + } + }, + { + "type": "Regular", + "proTxHash": "8b08c02e54094a044b67486fc4be95bdbb557d821bfececf6b2ba90e65fbdae7", + "collateralHash": "c188d5a7989565321b235b5a2374e4fb4f3617d848d0d03609348be1f5adb710", + "collateralIndex": 0, + "collateralAddress": "Xb1e2s57LsMK63Muv2JJAQbXXgtg39PY89", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.212:9999", + "registeredHeight": 1263156, + "lastPaidHeight": 1875186, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": 1802798, + "PoSeBanHeight": 1876019, + "revocationReason": 0, + "ownerAddress": "Xwrbrvp2BRrxAiuD2PWQULzxKJXmwsmPfb", + "votingAddress": "Xn3U33cymDdAUGK1siK4o6d5adYLNUdaio", + "payoutAddress": "Xb1e2s57LsMK63Muv2JJAQbXXgtg39PY89", + "pubKeyOperator": "8459a408b35e5094f210d9acb79835095aac1b4bb8bb652320ad5143636c7b7ae768a1a363e5caf96ce0cfe14518a81c" + } + }, + { + "type": "Regular", + "proTxHash": "7bd6f72b0652230573911a5232597e240b5060c83617b2a33b175faf73d40256", + "collateralHash": "34794a3766dbc6b051117c26d508d7e0830be4570a9ca4eb3eca3c6875d4eaed", + "collateralIndex": 0, + "collateralAddress": "Xj5Ue6JwBtTnhbyD7WfVuTCbLxQAFvJXKQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.213:9999", + "registeredHeight": 1263156, + "lastPaidHeight": 1911424, + "consecutivePayments": 0, + "PoSePenalty": 4219, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XnDqAtkxpoLHQp499gyPcB4ZHuTpadGqTM", + "votingAddress": "XyzcWe23EYgP455MK4cBtirBCtWuQVG7iB", + "payoutAddress": "Xj5Ue6JwBtTnhbyD7WfVuTCbLxQAFvJXKQ", + "pubKeyOperator": "0e8bdf116c2b03725e19c394f5ce13823ead0c68f67058da012bb6553b2fdd27d3abedd7053c60430f780f1eaed82843" + } + }, + { + "type": "Regular", + "proTxHash": "00ebcbd8e49ee0a17d77a75abe9e6a51cfaff0fd8a0c5e3af1d2ada1febc7fab", + "collateralHash": "ffe07cd99360916f1781c29886e28f95d0268f65b51773d2c61a1c702c9c02fd", + "collateralIndex": 0, + "collateralAddress": "Xffgf2vJMybvzEydbpyBbPhxgT7hM54CR2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.214:9999", + "registeredHeight": 1263158, + "lastPaidHeight": 1875684, + "consecutivePayments": 0, + "PoSePenalty": 4403, + "PoSeRevivedHeight": 1822433, + "PoSeBanHeight": 1877205, + "revocationReason": 0, + "ownerAddress": "XtjuZ1TiRujCpfB1rGGPuDK6ysdmhrJXFn", + "votingAddress": "XjMnxYCEsgBpJXEu17Neyrgq1eBx2enKjP", + "payoutAddress": "Xffgf2vJMybvzEydbpyBbPhxgT7hM54CR2", + "pubKeyOperator": "90cf782bf05ba0ccc65e098cfee09e4e2e6bb47c9bcbf2c275d39382e2390109165354cdaf011939facf709560aba56a" + } + }, + { + "type": "Regular", + "proTxHash": "d33c23ebe4b1758f7c3f88df348c2082049a416604dd5e655698ac65219a51b2", + "collateralHash": "8ce740f4a8d01d27fae02a053197469e2a52f2b425628bbb17876238b6ada483", + "collateralIndex": 0, + "collateralAddress": "XnHioaZDrX3Uhowgm5FS8mGJaGiFrrxL7j", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.215:9999", + "registeredHeight": 1263575, + "lastPaidHeight": 1913598, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1822456, + "PoSeBanHeight": 1915242, + "revocationReason": 0, + "ownerAddress": "XuFk8cpHYNXUK1XXRptRq7z7GRhNfr3U7Z", + "votingAddress": "Xkz44nhwhPworawukqg2DvUVGk4LNgZFnr", + "payoutAddress": "XnHioaZDrX3Uhowgm5FS8mGJaGiFrrxL7j", + "pubKeyOperator": "14d911cba663ca942de47cf3b0e482def94e7bb2bb4077643cb12bc9598cad477c306199a56fb7e6d9edbce693bce1f5" + } + }, + { + "type": "Regular", + "proTxHash": "f81a9098bd92c6d3c81ec0f0ba6779bf84359855ba3333336bde75aee91e29a4", + "collateralHash": "13f9a7951b6da6ac71959a914777300604b58f875385279261661387032545f9", + "collateralIndex": 0, + "collateralAddress": "Xj96y4WoVBLPqDg42ah4H34rHVRTVxJhHe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.217:9999", + "registeredHeight": 1264198, + "lastPaidHeight": 1912124, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1714678, + "PoSeBanHeight": 1915530, + "revocationReason": 0, + "ownerAddress": "Xpwb5K1o3xwTRe5XnVoTW8R4zLjJtP7Wvd", + "votingAddress": "XuUQ8aNUdTMw7svtQWPzWoNMQrhk21uV4v", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "17b5527b371746b62db3d625d32180fe4b65e1abf6bd4a6bfb036c7d2df9cae37b6a0751eaa4931c8f3c7cabe8729c3b" + } + }, + { + "type": "Regular", + "proTxHash": "806c3054f2aa62823fa6a292ed6be8d88d6f360055ff0ceeb7917588d5e65d93", + "collateralHash": "d8542f8aac379ab46c9790f474560d9f058bd995f6c7432aa84e30f1aa3b90e7", + "collateralIndex": 1, + "collateralAddress": "XtA9CPMKoP321y12sFQXwF3rkPsRYdLBtX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.211:9999", + "registeredHeight": 1264210, + "lastPaidHeight": 2127784, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830678, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtC69KiGUfzhUjfLHpjwKxfdmB4cfSsTKQ", + "votingAddress": "XvzBSZpUbXKXoesUF2avhEDdCbctz1fvDZ", + "payoutAddress": "XtA9CPMKoP321y12sFQXwF3rkPsRYdLBtX", + "pubKeyOperator": "1892e6796ce60c17dd507f18afdbd203581ecbeb71b5fb445154792d670e260149e27309ede29ca63456d9146e60c52d" + } + }, + { + "type": "Regular", + "proTxHash": "bc5ef0b277cb808dae4f1865b9a9ee4b34a90e24219806bf268b27208c4e86c8", + "collateralHash": "560101cfa20f32a33128d49e6644c182d99a9f7bec63276d8655ddae396f30f6", + "collateralIndex": 1, + "collateralAddress": "XoUXzdEpQHisQfvw6tEnYjEA7pae8py5ED", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.129:9999", + "registeredHeight": 1265301, + "lastPaidHeight": 2127759, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyAwVq2tGdBLEAdKM1Xg9s1rkcxvQUaL3Y", + "votingAddress": "Xe8NuabTDQaTkqrRVUnmaabeLRmGet1o1V", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "8f82ef9890b22c894c5ddfa4222cbf048b3c557cfaf869757ac4c570601851fe23632124df53879ddb72f4b6f22abca9" + } + }, + { + "type": "Regular", + "proTxHash": "0d0e2a98e6d9313bb70e06ab2cae2c180b0011e58d6576d068154edf6c723bc8", + "collateralHash": "c00e4496fa989ffac59cebb4f32f5a4957ee058ef7c13d2ebd2daffb010d048b", + "collateralIndex": 0, + "collateralAddress": "XktwMkBPFGecAp1AuvKE9215tL6ZbvoX18", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.242:9999", + "registeredHeight": 1265974, + "lastPaidHeight": 2128495, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XePj6VV1mZPXTJwSeL7K8ecPURRjfMBM9s", + "votingAddress": "XgkkXn7ubfzjJ6dmG2iRy56JmNTFq1SxoA", + "payoutAddress": "XvhnPPJxSRotWj5oDegobNsPRi9rYVVrT2", + "pubKeyOperator": "993b0b43e584ca5a6c961b53adb79f0af30d6eba3e445ff406c647ac1bd445d3ca3d9a50978907b1f33c2276169c8f47" + } + }, + { + "type": "Regular", + "proTxHash": "7ca2d6801cd133c58ac2219a291cf01adafb64db386bc7e0350b68a198e81442", + "collateralHash": "8f786429afcdca7d2bf7e070140e8a046a86de8ac6a171313e6ccfc280834744", + "collateralIndex": 1, + "collateralAddress": "Xxz8zUqYGWoDCoh3UGwv6eJKmY3YiHazoT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.71:9999", + "registeredHeight": 1269151, + "lastPaidHeight": 2127819, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830709, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvcAJ69frahMPg4jFDKTND9hnpvN9tT3kF", + "votingAddress": "XhV65bmmvFBHmD75EreSXebvTeRdSHZQu8", + "payoutAddress": "Xxz8zUqYGWoDCoh3UGwv6eJKmY3YiHazoT", + "pubKeyOperator": "8cf96ffb6230fd9a4072970b9f1c3eb172ef9e88ec9aaa173130fd25aef55002d2ecd49758673ab07b1e99e1c102e8b7" + } + }, + { + "type": "Regular", + "proTxHash": "b6b8e48493ac3927d0cde60954d25c02e660daea893c00c1d8aff6f509f7a759", + "collateralHash": "3ea8c8ff8a8b1d76de9baf2e329c81de8ceab84244dc7335861f685121f6152a", + "collateralIndex": 1, + "collateralAddress": "XmH5U9aELpihsWQQcrLvAX5uFoYDSLFFUr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.208.226.24:9999", + "registeredHeight": 1269699, + "lastPaidHeight": 2127580, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtkDCi3FLGt8PnnuiUhBBYhyLD9KGCTVfk", + "votingAddress": "XyFc1bTMdAivCQ1EGHXvzB2peCHjRngBH7", + "payoutAddress": "XceUq7y3n8APSAMHmsNRz2tVqwTVRmamJn", + "pubKeyOperator": "935527a3597597464ebc11e1c6cbb227902452c1f5adce861e778542c86f3e17442733f81fc91b5d6aa58b0a2fbba8c9" + } + }, + { + "type": "Regular", + "proTxHash": "3025e76f14b69315455eb528112f99b7a18fcafbeb2ea055d8dde74a17641860", + "collateralHash": "7c410bd6b06bbad1d13e40decf11c84cad39ce03e49961307f273287d8fb30e0", + "collateralIndex": 0, + "collateralAddress": "XeZDvUgKuAtb9tsfCHk1WnaKLxvVt8WCjL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.103:9999", + "registeredHeight": 1269757, + "lastPaidHeight": 2127616, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XomnEcgcedCH3d1Q6sX1bPDrMNvxgwTGEZ", + "votingAddress": "Xumy6tiiCoY3MjGfo5wCzcm9W88Heff82K", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "99e775e172f90f9ce00ace38c21498a3c502f435715546ef313a1f0a465afa44340e73e7efe7f18a2999cd3a786708ae" + } + }, + { + "type": "Regular", + "proTxHash": "eb08eb04ca47f4a837ce882ee7594f96b6711907c748acbe00cd2a16dbf40a48", + "collateralHash": "6d03611e7af11c66ab8eb1a9176c10abaed52816fe02cad558b7ffce9eedbbfa", + "collateralIndex": 1, + "collateralAddress": "XuGD1ze6SGEp6ZMc45fLH7NJN5cosPnuqR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.240:9999", + "registeredHeight": 1269759, + "lastPaidHeight": 2128643, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2098989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuUm2W5E2q8kVVt5NBFAC13FYdSb4abHCW", + "votingAddress": "XpEB5xZHRTqHNheeTE6nkQtyyANobkeKV5", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "083ff7d46ea23b6aa454ab4be3dbed4970eee62851e5e627aa92d160d6ad7dca29533a5411803f2e3c27604946f5395a" + } + }, + { + "type": "Regular", + "proTxHash": "be929c9769a48af9ad9614a258e1b3a52b4a7044b12652f3c608373befc1e61a", + "collateralHash": "16fc8c2035e31f71c352b94a061ca05a25451348d30a3641a5385d0139ac6c46", + "collateralIndex": 1, + "collateralAddress": "XkpV6uZ27zXrw7bYVJsZZoa86DHAVewjFC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.209.50.30:9999", + "registeredHeight": 1271085, + "lastPaidHeight": 1421948, + "consecutivePayments": 0, + "PoSePenalty": 4856, + "PoSeRevivedHeight": 1407648, + "PoSeBanHeight": 1423029, + "revocationReason": 0, + "ownerAddress": "XqNJEBGjvNTt9wa1xQM3os1XZXfvgWEcxP", + "votingAddress": "XwkzZfMjJDpJcamxRPHCLcjxVt2QfCy2wN", + "payoutAddress": "Xed842C6XBKMV5WQJnF94MuPUfdGAYD8Ff", + "pubKeyOperator": "9033402150102018f415c3339341fcd4a4485be1c5586f3e8031dcddbd54f2ed1bb03896178ee49509d826c3d4abc551" + } + }, + { + "type": "Regular", + "proTxHash": "e06b8a8b5548e3b0959f808391d49c4c68b7ef19a6f9186b7751862384770679", + "collateralHash": "a369b90f25d093487bbc416640c5bd719f01dca111fc9fe8f2192a11f1b0ee67", + "collateralIndex": 0, + "collateralAddress": "XhoL1cRRWmPM1t2fm9WraHDz3QXSGwDWpu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1271849, + "lastPaidHeight": 1685394, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1621408, + "PoSeBanHeight": 1688820, + "revocationReason": 0, + "ownerAddress": "XiwEUWgBjDL8o756AXeVmQi2v8ZXGuvMSV", + "votingAddress": "XqW84sbjoUYezzjFYdbjvYT8snygjsh1NJ", + "payoutAddress": "XeDLXXh9gTVTsZEzNdG9w2Q5M4adW83hku", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3b59310f807c8e40b478db37834cbce9837f5140c6bdd59b6a469d86523f3861", + "collateralHash": "40009144070201e24add7ec630d26bdec00168ac4add7843a3f51fbef07634c7", + "collateralIndex": 1, + "collateralAddress": "XyHZcFYaSMGH9PVLS8LfBwnKgDMurXXFZh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.35:9999", + "registeredHeight": 1272428, + "lastPaidHeight": 2126405, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnnKWX8DDhZYcBvUbeVPyU6GAGcsYhRA1P", + "votingAddress": "XjuFNmH4Um9w3Am8vQik8tkij4qgUmoD7w", + "payoutAddress": "XcFVgNXg6MTz1zqSrjk5PjEDxxFrtVr61r", + "pubKeyOperator": "08224ee6b96586f5b004ed5d8fdaaa6c9b144736b84190961d949c6f4ba3d922657a9317bc8068ac3af818e7fbcdf6f3" + } + }, + { + "type": "Regular", + "proTxHash": "05d21de0bf8acb71b2132f724d95f6b15049267be131a2a922e17ac89b2810a9", + "collateralHash": "38cefeb12e76bcc20f4a5b60af7868662b111a1a07c71ca74a879b610be89729", + "collateralIndex": 1, + "collateralAddress": "XwCa6JnjRxHoFU5xKSGzR2vncBbiim88QA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.218:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1914763, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1680599, + "PoSeBanHeight": 1915530, + "revocationReason": 0, + "ownerAddress": "Xbqir3QozpHn1rjXmCu5aiusPUAjQvwV2r", + "votingAddress": "XyBA8bxTDGwUhRs56FR8bTYzyxCSdKrARS", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "11e320662da70da43d903b525358803f65e2dbf6221e0d33cc22ad0f57281879757824c6c315d0ca2600b6121594072f" + } + }, + { + "type": "Regular", + "proTxHash": "999e2f9d8deca9dfdc8cee228c4b63add072c39719f5d4de0411d4bea26b5965", + "collateralHash": "0eccd664599ae4fd9d7f89b0b34a36be76df4e8d34d66b9e7db452d8b28dd5c5", + "collateralIndex": 1, + "collateralAddress": "XiAzyujzENawxwDJBFmC76UVrwMZbT4vaD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.219:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1912482, + "consecutivePayments": 0, + "PoSePenalty": 4225, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1914934, + "revocationReason": 0, + "ownerAddress": "XsVg6XTG2Pb6VfnWcidh9iW1G2NbCE5ELm", + "votingAddress": "XeUe2EsuovvikgvjuycPLEFct3qZEKyyZA", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "8f20fee6cb44b0e442d89a78b6ee51c673e7bcd56f244eaba575d0752ce5eb05af5cbfcb7d7525263ab775f08849370e" + } + }, + { + "type": "Regular", + "proTxHash": "8dc4879cbd7cb7162d1b7b390e4dc94f4569ea9725fc97050abde4ba7b00f5b5", + "collateralHash": "89a2f99fc2b884c662095369d6954ce610594d69690db147d1df2f22169b420e", + "collateralIndex": 1, + "collateralAddress": "Xcj92SvxRBnTweMoM5sxGXm6kuxh2JDjqk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.220:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1875707, + "consecutivePayments": 0, + "PoSePenalty": 4404, + "PoSeRevivedHeight": 1780387, + "PoSeBanHeight": 1875948, + "revocationReason": 0, + "ownerAddress": "Xojkx5Z2ACb6fTW5NbJ6PYXWAMnxvmDGzU", + "votingAddress": "XtyVmxXKUCytPhWCym4zSo4Le9bTE8FQxp", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "0abaea100e1ff28236f777cad46cfb80d5f2d60703fa0add5aeaa9d86f4a59be1b9c36b50a52b42f1c5990bb1dbbf22c" + } + }, + { + "type": "Regular", + "proTxHash": "6a39989f3873e75e667397ef3b23285cc407051b6ee090820b70e4823bafd01f", + "collateralHash": "00ac25789a5c4c85196c8876501521a4346972f7835cfcf38b44b2833511bd3e", + "collateralIndex": 1, + "collateralAddress": "XwZJwhrCL7Qq63g97o4cuU3VvnjcPDiAV5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.221:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1912479, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XyPfGHYBnoaFWo3diPqZYLAmY1G7cx6UL8", + "votingAddress": "XcGJ7BDxKvSR7KFL65mgb6cxFofnAVaF7Q", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "84e18901a924ed0509f5c10205dd71a11be4fdb4252050624eb5d9727f0901be3c4aef399e14e0adf3427df9798c5586" + } + }, + { + "type": "Regular", + "proTxHash": "e735d645d297644bba6d1d0f46a87b4d7c62972adc2c5a4e4fd042c225f97244", + "collateralHash": "bdf51c146a9f7b53c6eb795af91afeec667f1004005597bac70ec98025754d8e", + "collateralIndex": 1, + "collateralAddress": "XjNL7ixdV8LiyeFKU8X6d5EErPszsGE4cW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.222:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1873610, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1722205, + "PoSeBanHeight": 1875707, + "revocationReason": 0, + "ownerAddress": "XbbpHqY1637cM2KnpDP7i5xqh3AeBN9Aik", + "votingAddress": "XfaVvZhFTrYA7wFfz6XxWAwsPWrd6hzrSp", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "83ae1be57b8b0337519ad33a3543c3ce9647caa71f4851ab1e6004a04f789017d2093facb6fbbe3613f1ffc770796be1" + } + }, + { + "type": "Regular", + "proTxHash": "12adbb06eb38745a1b6cc3310844a62465cb62e59072635b817e89c472be46d6", + "collateralHash": "60defe4c2dc9e2eaed91b57cd83e0eceb435d56906111b1463fb618e5e6794ef", + "collateralIndex": 1, + "collateralAddress": "Xuf5Rr1FBz8oMndXkYrYQGmpW8gFzGBkuS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.223:9999", + "registeredHeight": 1276673, + "lastPaidHeight": 1914414, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1729388, + "PoSeBanHeight": 1914954, + "revocationReason": 0, + "ownerAddress": "XohdvvRHTKECeiBgX4KBcHtG3eicq5LeDW", + "votingAddress": "Xc2Yy2ocGRcCFxcRq7nA1W9xqJjdTNzbX9", + "payoutAddress": "Xf2xML34B4hGCgoQJg3P22XJ678u6M9Nu9", + "pubKeyOperator": "8c8d4b34b91f90ed0d562eb4a504960693cb647148ec5961642d14d4037eafe2afa8450ab66e5b173361615a163e80cb" + } + }, + { + "type": "Regular", + "proTxHash": "11b688fc8ad1352a772cab2c7f7e70ebe4797a633c6b394e7b2551d80b3c8a52", + "collateralHash": "c76f58dde649302540c0beb647ec7810cd22f69e35733593da76d9da141fb967", + "collateralIndex": 0, + "collateralAddress": "XySzNn4ish66ZpzKkd969QHFrFq4dCR8V9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.87.217:9999", + "registeredHeight": 1279476, + "lastPaidHeight": 1297974, + "consecutivePayments": 0, + "PoSePenalty": 5064, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1301412, + "revocationReason": 0, + "ownerAddress": "Xy1PFXcaCxw9ruisYiqzLFvJrbWMXMwd9z", + "votingAddress": "XikN5uAqnSE23EvHuDC6Fe1NiQWK1qLSrJ", + "payoutAddress": "XySzNn4ish66ZpzKkd969QHFrFq4dCR8V9", + "pubKeyOperator": "8cad8af1d4ea64ccf2528c2f629688d24017b214ca04b02b218076e6441b1e42a08e80c44e1489bad951dc8c38180600" + } + }, + { + "type": "Regular", + "proTxHash": "2a526a0a8e4566e423d991f0b7d84cc3a0af52c5b30460804a53f27e58fd2487", + "collateralHash": "d6f25df4fddb5f30dc4a6baaaf427865393bb3f30c32bccc3e237937981dd9ea", + "collateralIndex": 0, + "collateralAddress": "XmwZPvXU9sLVRKxKJbYjaFUbswfzMw84YB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.164.120:9999", + "registeredHeight": 1279476, + "lastPaidHeight": 1302868, + "consecutivePayments": 0, + "PoSePenalty": 5064, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1302996, + "revocationReason": 0, + "ownerAddress": "XxMwe8zGcTSmcLmxxpFWURUpqkGggNkcr2", + "votingAddress": "XsteG7Ux48XdvaYyiXzkSsQLvhUaN5MYKG", + "payoutAddress": "XmwZPvXU9sLVRKxKJbYjaFUbswfzMw84YB", + "pubKeyOperator": "9448860253791aa67094e92c9e7a85c12f6f59a9ce689bd37bce9c20ae618658a496484cd07a7e1c79c4728fa983621d" + } + }, + { + "type": "Regular", + "proTxHash": "be5138c98a29be5fa44f83f6160e9f278af79f918597adbbda53f75ff4d8f244", + "collateralHash": "5b2140e512a3df9ffc7d1479e9edc9e301f68b0ec78e12410936187129c9a891", + "collateralIndex": 1, + "collateralAddress": "XdVj73mVBbgUg9rf5VgdtRjsbeiBbRHo4y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.221:9999", + "registeredHeight": 1279852, + "lastPaidHeight": 2126893, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1623311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjLKd1uTEHTxR7efS17uwVEdCUezrnzpdR", + "votingAddress": "Xp5U8WbRp4q3JSv8DVu9jWN9quyNtgYnTG", + "payoutAddress": "XsmPma6fodTxHGZEkhFC9ENe4AF2WvrdZf", + "pubKeyOperator": "88f7ae58b4e78d3909f6e648b5db7573a7d3b1d5d71ff9985e95c1466c2a4e9057450ddc810265fbab39e011d7729fdc" + } + }, + { + "type": "Regular", + "proTxHash": "670a2d8a3ca943ed7832574e75fceb8639b268b170eb80608fc94ccf68cabe6d", + "collateralHash": "70c8921d4ae95dda8af2ce875fccbc958d71a7cf663596f83fdab6173cb954c5", + "collateralIndex": 1, + "collateralAddress": "XeoC4Phnz4zDQcfYyrmQrf1bXExueiXSjw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.17:9999", + "registeredHeight": 1279981, + "lastPaidHeight": 2128695, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgtfar6Tczdw54wBKJPLU2KYmYrsXozKQy", + "votingAddress": "Xxp8fPkzZq9E8nrKpghsCT79jvmQjj3eo3", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "824836d360be47f9d7eb5dd32e33a49a91e095affc5f976390fbe9cd27aacb6832c5674da01dd769eb53a91e7e22839d" + } + }, + { + "type": "Regular", + "proTxHash": "afa66dabd439ceb70fa897589550b3c3416744f6d1b11421ab38f7dd85952e42", + "collateralHash": "633443aa57fe44bfe8c4d900669aa8c4694db8abd2adb1fa1a5116dd229f0047", + "collateralIndex": 1, + "collateralAddress": "Xn8kjLRwKqk9ameTQShkxysZYtXCi29i69", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.112:9999", + "registeredHeight": 1280446, + "lastPaidHeight": 2125757, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtmCmsWST8tc39QB14YpUkySnCatSybJyw", + "votingAddress": "XjAEnVovzHcspvJTdyMwse64LktfAvMkQ7", + "payoutAddress": "Xn8kjLRwKqk9ameTQShkxysZYtXCi29i69", + "pubKeyOperator": "01c4450161c3e980cd43dd30ee7125c8082037867d5bdca8552e5c3f5c300ec303989c28e99bbe056a2d88860fc03d56" + } + }, + { + "type": "Regular", + "proTxHash": "a9b5dcecfa5f65fc561cc342408f3f5cc162eda0777d52cc06c8d7427326842c", + "collateralHash": "efad08229197f4fcce88ca37b6864a5a23c9593bdc6fba985942ae0c608f85dc", + "collateralIndex": 1, + "collateralAddress": "Xki1N39F6GKvJuViXutVmJ4145wwzrNatj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.203.214.106:9999", + "registeredHeight": 1280748, + "lastPaidHeight": 2126408, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120348, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcNeg8sfj7bY2a7eUPA58uqpKgGed7Ev3k", + "votingAddress": "XjvXerdfo6gJDR6FYx1tVBcVNCFnSv9ZHL", + "payoutAddress": "Xki1N39F6GKvJuViXutVmJ4145wwzrNatj", + "pubKeyOperator": "0793e4a0062da1111b667ca05511b2aeeab9fd74096b889ae778b4b8c8a8f2a7b31b1be6b60e1af539568a4fce81bdcd" + } + }, + { + "type": "Regular", + "proTxHash": "da0aacfded1e6ee8223142208049f968605a4d883acf8660a3d88aa5a4de4eef", + "collateralHash": "436f544df43321f9a654b57331ea857bbd4589b3a71a1eb842b1897a0e954961", + "collateralIndex": 1, + "collateralAddress": "XrvgYUFC5w31c3rvk4wpNLZJv4CxeDQrPV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.69.52.120:9999", + "registeredHeight": 1281266, + "lastPaidHeight": 2126222, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XysrVioLJ6EwonsC4cVL4PYPLzr2Whv7bE", + "votingAddress": "Xqw5zCDQGypgyhJpvAqDgtjYU7qCcCdxi3", + "payoutAddress": "XxT7Htugq5zHN7Ct3BimhgmdbuHDGCdReV", + "pubKeyOperator": "95e53a9f5f0074b0ba9cf69926bd3fce169b1830d063d55b80e9723e80b2d616a2ee046feeae354a2a9a40e30c4d447b" + } + }, + { + "type": "Regular", + "proTxHash": "d390e48a5f9a5b9481ec1dbf29df99f8309dea536843aab3aa46158cacc3ce11", + "collateralHash": "cfe7911a87149ada54514b666c6fa11271c27c4fa2f5d90fde4a564bf79f7bbd", + "collateralIndex": 1, + "collateralAddress": "Xd6jhHTHoAnVDh6LFgKqSdTWXAqisZ6jJW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "34.246.176.25:9999", + "registeredHeight": 1281316, + "lastPaidHeight": 2114065, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 2008976, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "Xgzy7SAUHDbZw8s38i36VYRJ78pBkZYTCN", + "votingAddress": "XwcXZQsgDxFejPoDnrFB93u5bTzva8a8jZ", + "payoutAddress": "XjhRZWqfmaAacrAcRVpg35Z8EdmzfBg9HB", + "pubKeyOperator": "84aae670612ba9376dccfe91a214982f83c7d0010f09d37d13c6662dbdc4c5bca6be76fa7aa845d888f9e8cfebd7ef3b" + } + }, + { + "type": "Regular", + "proTxHash": "2edec6f0419e5916490857f182dd71b15042faaa9e3d9a34667698d6b33ac345", + "collateralHash": "170d6084fbb460e185f15c23fcc490dc9e042d0d974e0fe1be5cc9f0352680ee", + "collateralIndex": 1, + "collateralAddress": "XturAGf2s8f212aQtQi2p3RS7aVJM8oHM1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.230:9999", + "registeredHeight": 1281599, + "lastPaidHeight": 2126422, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1498244, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqksKm8CgXSGYRu8oCkD36TqBEbSNG4y7b", + "votingAddress": "XgYqhNKea2eovjAR4KU8rBxVT1DhDnp3jn", + "payoutAddress": "XwwDWBFzfy2WLNekRr5NdhZFm8GWLYcc3K", + "pubKeyOperator": "91a8b62d84551b83304248b3bc2419e55534d875fbf53ebb2024fdef4ab821959f01ec5686fd0c859840542acfb5517f" + } + }, + { + "type": "Regular", + "proTxHash": "146a9956e7531ec4970162d6d5c3ec886289b56cb9b6a338fa3794ff6459c717", + "collateralHash": "67ae4ab509d02196dfa378e90abf23b982514f6d11db6d39b69218c5acac6235", + "collateralIndex": 0, + "collateralAddress": "Xe6bffYLqiYCYU7yQRBHSnzougAcyh6371", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1282292, + "lastPaidHeight": 1364652, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1368244, + "revocationReason": 1, + "ownerAddress": "XitU3V7xM4q8jvGQ2nURmZ3sU3TBW7r1Uo", + "votingAddress": "XdYZSHjNY2x3TDR9BgXWaXHRwudhH6EC7v", + "payoutAddress": "XodJvg1rKZyu7UzhgmmQ86JusShM2nJ2ef", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3b3d551cdb1deaeeef9d3586dc5af7521ae2e654b2f8a5c9edfe5c031b2c1e82", + "collateralHash": "0f43007e4a055d3651fa6d1aeaa75d2cf8695e57bd6130832933bb97c5921d8a", + "collateralIndex": 0, + "collateralAddress": "XhUrBPfuKpYgPp62kpPvPx7acgSW5paReL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.209.178:9999", + "registeredHeight": 1282860, + "lastPaidHeight": 1301375, + "consecutivePayments": 0, + "PoSePenalty": 5045, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1304373, + "revocationReason": 0, + "ownerAddress": "Xy2nxahtbfPr49ocBSfCCP55EPG9dRnf6B", + "votingAddress": "XjFJhXMZYVSDgLauuWeHeRL7vSznXAoDa7", + "payoutAddress": "XhUrBPfuKpYgPp62kpPvPx7acgSW5paReL", + "pubKeyOperator": "06a5488f4cd08f3e893b92d31030df6eedd3fa2cd2a0d061b0d0c4102ee5ec1e8063f02bf647fc570f4ec25b5a65012e" + } + }, + { + "type": "Regular", + "proTxHash": "24707887731e9050f4d7424257186e06edcd08d0ccd01120c112a77429c6a345", + "collateralHash": "913e89aa3668628b11dfb6e20764fdf81025f68529e915fd92746cc101f3df73", + "collateralIndex": 0, + "collateralAddress": "XhLbiA51oiMoNbydWiG3wNybU5TgX9WJdG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.165.8:9999", + "registeredHeight": 1282862, + "lastPaidHeight": 1301377, + "consecutivePayments": 0, + "PoSePenalty": 5061, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1303235, + "revocationReason": 0, + "ownerAddress": "XkRGhBa7gL1b27E9sE5p7reL5pWkjfvFqT", + "votingAddress": "XhpurpTmyDQLFtmL1NZv36BivxF3Xb1J69", + "payoutAddress": "XhLbiA51oiMoNbydWiG3wNybU5TgX9WJdG", + "pubKeyOperator": "16aae8c5cebbc2110668bcb21d63e2f3ddcfdc78c5e9a31f7e7f10c20d2e4c7fd59ceb139a9903a88d6639711faec849" + } + }, + { + "type": "Regular", + "proTxHash": "65c11e751596f3e2f8829b41bce171d872d3a0e9bd6ea8b65757f61b47b6d50d", + "collateralHash": "a5d7dc26d14d1ddc0cbc64f20b1eba840466009ad290e995e99285733832dc40", + "collateralIndex": 1, + "collateralAddress": "XmDkxM3NvqUWo7FXHoeUb83u8DZEx8sPqf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.84.23:9999", + "registeredHeight": 1282922, + "lastPaidHeight": 2128816, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977468, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtyeHBRSSzKv7zHNnWBJ2uCHQwUGH7z4Yd", + "votingAddress": "Xrnm8RgJiomLGGCfgnSvEzxRsYhb8NGwdN", + "payoutAddress": "XnS3Eww7crb2Wa3NksKATXzRa7s38HgRQM", + "pubKeyOperator": "026184d68ce55a58f815c8c4ca7696a26773e0494fa0e79326eded8f9abe713e71fe5cd32ed2b2cb9782547adb9ec844" + } + }, + { + "type": "Regular", + "proTxHash": "87f04e652c103f343702a8f134598c69978bf95e12b427db5687090b38d4d116", + "collateralHash": "cf8c8f69f4ee59de591d50ac4144cc2b53ff374e7e9ce4ad106502df05297c3e", + "collateralIndex": 0, + "collateralAddress": "XsbTyEg8g29LciGBLEdpqEUbGUmBQfBSFz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.225.96.191:9999", + "registeredHeight": 1284492, + "lastPaidHeight": 1298386, + "consecutivePayments": 0, + "PoSePenalty": 5064, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1302899, + "revocationReason": 0, + "ownerAddress": "Xc5A8DutxZXPR9vqveGTvdLdXuhzAdi5WY", + "votingAddress": "XddPUWt2UnAPcKVHmix4pjodX8jz4ECAzS", + "payoutAddress": "XsbTyEg8g29LciGBLEdpqEUbGUmBQfBSFz", + "pubKeyOperator": "12a0b19965212000e3418b98be89a0a51d24624201ea3fd6541dbbc659eb8996fad1e5e2092b350a27c3aa2cc101c3fd" + } + }, + { + "type": "Regular", + "proTxHash": "4e407ef93a3087d24b549f057ddb47d485d8bc51b11e092c8f5dd5fbd9fd8e83", + "collateralHash": "c7c9a8be5a01fa426458990b83c8c2e8f2d7f8e8710b70ab87ec444471ba3031", + "collateralIndex": 1, + "collateralAddress": "XrbMGv1hUvyXeo2XtWLzpV97jUaVyAZsJe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "150.158.48.6:9999", + "registeredHeight": 1286015, + "lastPaidHeight": 2126984, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2107705, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdgJkLaRdJbYDKpcjkXhabzoHJ1tBuJSRZ", + "votingAddress": "XfPoouJWKmfeirpuCGfyVcD74Z6JdzYs3M", + "payoutAddress": "Xoq3HCushf6AUeqnnTXUrGUKrRqKhp2FKi", + "pubKeyOperator": "8a61a4026a6177677aafc9115c419cdc478761393aed8e4a5ace54ed63e33321727ddb6cdf30636b5b74ee874bcd16bf" + } + }, + { + "type": "Regular", + "proTxHash": "b0f1ff74eacdad3c803e929e3a37ed200ca2b3f58f1c790a2e4d49400302a137", + "collateralHash": "66bfa0a81438cda10c02dea8020658d8d3cf6d27250a935dc317a13d35c9773f", + "collateralIndex": 0, + "collateralAddress": "Xj4E3B3Gze9TwujFx3uarf8q5p9SYe1K4X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.199.97.223:9999", + "registeredHeight": 1287189, + "lastPaidHeight": 1301106, + "consecutivePayments": 0, + "PoSePenalty": 5046, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1304315, + "revocationReason": 0, + "ownerAddress": "XjozuMEZoVcSjaWAa3bUmZmzJFBTckMyTK", + "votingAddress": "XjWZTxUShgSsbMm8cLS6rR3o93qQjHSSRw", + "payoutAddress": "Xj4E3B3Gze9TwujFx3uarf8q5p9SYe1K4X", + "pubKeyOperator": "13576ac8c1f35b8d0f89fd3b20f9c72879f465911919aa4eb1ec5d858954f28dfd4d4f40af852c57454e6e9900a4f778" + } + }, + { + "type": "Regular", + "proTxHash": "6fc9f6068f195db86c04af8cc80c02dc7cbdc010817093da9a70860232158d94", + "collateralHash": "6c84ff58de9f0925cfc94adc166108c9b1b0342a95710b11927f842c4a31fa63", + "collateralIndex": 0, + "collateralAddress": "Xy7cg8q6HnbFeYrySEJANRjAxfKzX9Lef4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.156.239:9999", + "registeredHeight": 1287193, + "lastPaidHeight": 1301112, + "consecutivePayments": 0, + "PoSePenalty": 5043, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1305238, + "revocationReason": 0, + "ownerAddress": "Xu7PiHmGfY6rKGv6fRQDFdJszo8ny7fxQF", + "votingAddress": "XcgF1ea4PcvyHRFuhnbZyWpFF5Df3c6Jnd", + "payoutAddress": "Xy7cg8q6HnbFeYrySEJANRjAxfKzX9Lef4", + "pubKeyOperator": "0efd290d21d161fadd1a4f4f5f0cdd55f80eeaf819f1f3a3130b0a405fb8a1d04984bf951286018cbdd5bf0650580101" + } + }, + { + "type": "Regular", + "proTxHash": "558eae093562c814866c6a568f585b6a9aeaadfa31311b9797c56bb6051ba130", + "collateralHash": "2aac7af85fd6688af050c6f61d6ffb4662fa3e1d9d5b8e2b99284b8c4cff9ecd", + "collateralIndex": 0, + "collateralAddress": "XtHJQ7fVFTt4ctwryfcyk6VcWbrzmEj7bf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.196.122:9999", + "registeredHeight": 1287196, + "lastPaidHeight": 1296367, + "consecutivePayments": 0, + "PoSePenalty": 5060, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1300091, + "revocationReason": 0, + "ownerAddress": "XgiTtoEFDNxg9yxnEnLWEJVEyEDV9W9Fcn", + "votingAddress": "XuLxyhL1ZwR8mU7EXH46uGGMJHNoViRTsP", + "payoutAddress": "XtHJQ7fVFTt4ctwryfcyk6VcWbrzmEj7bf", + "pubKeyOperator": "106fd7b5e94b40b1a37a1a6a6a0b0fe78924927712903e7233aba3d27d4ba69826649894c0a1f6a0f81de3bff59f3d02" + } + }, + { + "type": "Regular", + "proTxHash": "7f4325ffecfe46c1117f8f8c7b803c924da2cef0193078c6b80b081206e20d78", + "collateralHash": "c7a60221be21b9876633617bca3461e118841348f3e60ce1defc3bd9557bd3c9", + "collateralIndex": 0, + "collateralAddress": "XvHmcQVzVwCDcMoKtU1bnZu2N2R8mKTW7k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.253.72:9999", + "registeredHeight": 1287198, + "lastPaidHeight": 1301117, + "consecutivePayments": 0, + "PoSePenalty": 5043, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1304661, + "revocationReason": 0, + "ownerAddress": "XgbWgRvz28tExbXyxNdEp2fgR4EPjqdbpN", + "votingAddress": "XrmjH8aS5XV1fC1QmmVQ9eHBNRpbK4FvDD", + "payoutAddress": "XvHmcQVzVwCDcMoKtU1bnZu2N2R8mKTW7k", + "pubKeyOperator": "0c4b199545f7eaa5bed7060f4f2dd30302ae56db001868a4df41c9fe056c346da71151c58faaa4d06b5bbd4deb7d7fb9" + } + }, + { + "type": "Regular", + "proTxHash": "3f4145afe10f96fff954d5ee9de6f99bf3f4acd8a36ac9ab8c7bbc7625723c38", + "collateralHash": "237408095b10db7c45fac2f96742ed61073a5d4993494a890201b465f9f438e2", + "collateralIndex": 0, + "collateralAddress": "XgEdEPdeV2UnDsBCCvgT4XxDmzdYQy8NeN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.227.19.143:9999", + "registeredHeight": 1291748, + "lastPaidHeight": 1305970, + "consecutivePayments": 0, + "PoSePenalty": 5043, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1308011, + "revocationReason": 0, + "ownerAddress": "XpMzqEkKxSnWanaPXdQ7EryoK6i2TkV1k3", + "votingAddress": "XhEiF2Epar1R5BNteL2K72Xw48zV6VEMmx", + "payoutAddress": "XgEdEPdeV2UnDsBCCvgT4XxDmzdYQy8NeN", + "pubKeyOperator": "913b88c887ba8281d2f47f80521c67cde1e76df12601336dd3d8b3a06d0e4a9fd683e279f1838b2d3853000524f188c2" + } + }, + { + "type": "Regular", + "proTxHash": "63aa159a4b7bf5c0a9bbc11f155e34bd55da306491da953f497717765e906400", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 73, + "collateralAddress": "Xp66gRn2roEbNRjnrq8x558xPbjKpsTRrA", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.225.22:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120809, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuHdqZiGLuYQuGAcSDk5yWNxVW455JgJ9t", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8ad2449de0fab6e0c222a6da6ef16fa0ba60ab5ee2e34faba1907274f48395664392238d9841e5bdf4d1970e27f28f5c", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "0f75c92b0427b2f639be4df2032c4d92d67967bb2fff60b936c6739afbd17a01", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 118, + "collateralAddress": "XviKc7jYAKVosnMB29t3DF9M5uZUFYUnCS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.177.221:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119080, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrmHr6BXk3GmXVy2gEFLysVCcXih6528Jc", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "192924d5b2f401ac83fd527e7a36d3833bdc4116f67b71fba860ce32675863d67525199d36003ea2e17bbc3d668efc24", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "34dec6f7a3fab760e231757fc7498e6d7e48c65af6f6ded167c0507dd26a0302", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 69, + "collateralAddress": "XoARaJx2DHatZiBcgZVSDPX8ZkWsbAgYEi", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.176.201:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119057, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgfjEmrS8VkiR9Yew2WT65HRZgbeXRRxxp", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "04975699dccb947b5bdb8351b5c85b26f8feef305003caae0879a00fa9cc4dc813364efdd846cc57cb033601efeeca04", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "12438456d54a665b37d7390fb2ebc1ec610150a312b934a5d5d10a5a328e4123", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 29, + "collateralAddress": "XfVLkCf6D7J3CcpfVWvfXLDXY1xCZz6aYA", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.101.161:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118730, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdkDrZzZQmb7NsLhxTbF1rg8ECGN3iGSXj", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "83634d9486727a98fe9f5e04231ea55b21056165e1b50253832b40e608ccc8560c354b5dfc1a2632765cf4f91240cdce", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "8fd3ad20b7bde02b429e860ef5dbb2abfc20b4e2ac21c15723d1edc31ee1d62a", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 27, + "collateralAddress": "XfENFB2mqiycQ9AQshZLJjHP3kc4U9Fo9A", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.109.8:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120816, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqwJMXMi2WehMAKKT17GQESeUskmY1ex99", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0d1d89f1303897e493828fc09f0761f1a6da9ff1c9c9dfa537818c8f2dd3134dfc2fefe34ff438110d59ad6e3133a3e2", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "b27ad1a860d66e0bcd7f2ac499429a7da72369e7bd017acb5a6b77f074c7272b", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 78, + "collateralAddress": "XphGSCfK1gcXBBvEb1j4o3Yih22cdJMNmQ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.126.129:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118148, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgsPEu5aBAnbU1kaLKHs3913iW5HxewtBW", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "144e2de005a2aa34370866b1b083cdd838e1367e2c5796ee1eef7d027483009da3aca2d2518b9d00d40f15cbc80ee86e", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "0374b82cca4b0e2b0219c059549331ec06ff595b7917a861f08a0dd03eaa9837", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 52, + "collateralAddress": "XkAFKbAuaYCuzrWViq43dHcZANg86UewpC", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.234.17:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120241, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeHPLfE4KrEiuh9tZ7RuPpFgUMMYhYgtz7", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "85fdb9112302997e108897f004b8f423437f912964f6fde0f6ed891a6fb90acb57fbbe048adf1d1a47b13f3c4a5c8536", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "20a44f65904e293d382763a37f91cd923935eb54ddde2cacf41d538d0e78d83d", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 95, + "collateralAddress": "XsmLHVY2qLKjDMLu89GEjsy9Pf5D7U6hMK", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.156.100:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118490, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbEgbvXXDJ4zpDzkEu9ctnup3YaPYBHYed", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "19fe7a9085ba63954e1ade5edd93059bb4c1ebcc9f7d12658ed1961dbe1e0ebe7ab2fce49d411c7be334d4d113c02b87", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "d456ca2b6c4ffb7dd4be997430544155c4261dd96dcb920ee1792ab163881f41", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 98, + "collateralAddress": "XtC6TY8Sf1fs5j3ZXQXTekNvHAuBywXKmK", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.36.72:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117138, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdKAUNNHyTy7RGVg5swFGNrCKHaFhKgPUu", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "03dfc8f214dae21ee2513e3333e5892dc748458a306800c92a7e9dcc777f960139e02e9b1259cf48adb3e03efc0e352d", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "bd3cf32cc7d43229974c76d12a52a62d9230d8863299e196ee58b4036a15fe46", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 26, + "collateralAddress": "Xeyb3Jv8oeezd3fW7iCbX2c2oTTRLjfuqM", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.225.135:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119041, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnejecCAoMP8SrcWF1gxef51EqoKY8R77B", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "10ec395339d1f9210316a1ba9be993a42536536fd910f4d4c1636f5badbc1761ab36154ab4347bbba96fa876383d9417", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "630a794d7ec7501a23bc30592486660849ba478a1a967194d71da8c988d96a4c", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 59, + "collateralAddress": "XmXJqRxhE9HWpSTiLGWejnbUCCVsjYXSuq", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.43.28:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120133, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe7YC3yioJAH5M6SRRXqKPLkoPzcE7gr3t", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "856c3309b2dd367b115f79abaf787082859a82501c20af511d4127fe53cdaf4a004ef2f331f5fa9879a443d080b950cf", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "547f46a7e2d243f15fe447f5ee5ef5dc957d6da690e87db899b3c916c585ac66", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 101, + "collateralAddress": "XtR8BrT9fLfG1RXTEDha65ChXpYq4pgJkw", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.180.85:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118205, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw3bXvAA8SgiHP3RMDa5qVGc5KkvUbTwV4", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "80606066510cdb67bcf83826b526a0f985cbd3a64e610f77530fa745e8d119d4f651b941caf332fa049ddbdb742a1e57", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "61187db6de788e1d33925eeeff6e9240649c2212fe4dea03858391f675de0a6a", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 7, + "collateralAddress": "XbwomJqHZWNHkiorF4Vos1HpRExN22YauW", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.159.143:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120152, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdh4VB8aoExHvvEbwrLsX5natAfhazRkuQ", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08432040c2327d48745860a5941208ac19d29c6e3ade37e47b3f26f2967bca708a2fd554cd66f8291de5bf2956c6a0df", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "324f40de901fafcc3166e7d61a6f9c040151883915f71d1f14d001546c753b73", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 47, + "collateralAddress": "XjYNUWKWVaht1zMkPEHERthmFTqmiURiYP", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.134.133:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120243, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxARqBqAvzWLCsDf8zqYEJSVVU2s8gjENf", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8fc158da6ec0d5db896d01349634cd3864a8d10cc1816cead3231e884015655d5d8f5656d23b6736a758e931e8cb2ab8", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "36ef5a2943d74ae1bab43da956006f6ea63d43f7786abbc37d349795c35b2c76", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 92, + "collateralAddress": "XsKdm1Qv9fSKcKuJAU8SmPSVE8qTJCEUqx", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.203.72:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120285, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeSHd7CTvvK4eFLf9B4mpMmH6HjzV2GA4k", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8a883dde54a8ed470a066b63a2715372a85e1304076a7c5211e46a7c47d38d6ecc8a872c45336e7740e784606ef9090a", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "606aee5d876c84bae714931f986b7cd020b25e19a4d6588ff11db0e1b600cb7b", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 55, + "collateralAddress": "XkpZ7yFdpVcKXxERy6qxedQ4jKWuHpgyAJ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.142.163:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118735, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkD4yL5RWC2Pkb9zQAnji8uDDAZehZLpgF", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "82a244a844ec983825090a3a8e6deab6df728b8ad39c86e05d3301af0365aee21e91662a494b50d8190a2508ba4c8f14", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "1385476525814cefca454ddcc115f3ea7ad5a1778ac354956b9bbbe7ac4fea7d", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 124, + "collateralAddress": "XxWgmceasdW9Wt4KmrZPCc8gYbdhPQtVkN", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.104.198:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118761, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfzfXynSeABiVWycQaosAQZzHa2uT1hpiK", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "187ad4a8a1400ffbc755ae1688a18fb3bb540799729ca405f900ed490d8bfeca8f1e4fad67c3d7377433d9608ffdb3c8", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "bd079bd29a9b4032b313b970c49cfb65cd128e4961d55a8fb8c16d14dea6d78a", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 22, + "collateralAddress": "XeVrZf5z53iaKcyEzLoVa38LGXQwSM6KMH", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.14.66:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117349, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XinxMMLUftfRpkiQM8o2b4gsZquaGnUty9", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0fcfd0799308529584a2659db6d79f30537741a17e9711dd11070e3210212717ee89dced9bc58ff8ed47f6db20687f8a", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "3729037a8f884a3136b4a72bd2de9c21a3f51b3a743edebf862cf0b079f44395", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 132, + "collateralAddress": "Xym6FVpiGLWd2kcJAfqtGDDFyfmcrtEmZe", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.183.181:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117042, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdvakrwy945sfuUmAAQFLEEeSFFwm2gu7L", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08d1b7dfe005baf958b487a4b72609e949ced0367e1a2cc803d311a25a9eaada0b00568b385b595b214312704cfb643b", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "831838a9315f5c22323cf7378c34d68c48bf7fea4e350359308b6156f0ba699b", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 89, + "collateralAddress": "XrcRxrzVWwHXTR73YGBqhqJFQVVJ6G1yMm", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.134.177:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118751, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj1PMZLpUVacNTnk8SKiF9c65AcfFCz5h7", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "050e809e276d9e24b72e06ecca26a9de5fc47663c851b819a3bc64a21323e8f806c5859bf14477747a4b0474379fc5ee", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "52417747be3573dfd8adfb60ec98b0651ec500b8823d2c456b121bae67889a9c", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 93, + "collateralAddress": "XsWfv9v2TWD57VoodWdUk2EjMWhuV9Tsfn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.125.107:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119073, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkcdQfabXzMVdHCq666bM2yMKLei8sDzvK", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "11c8bb8b632288baa7bf695a1a27c08fe3769630a3998b857ef74fe521b16ab5c6ef2278f26568822480eba4935a66c2", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "65a8001f362fcc7dcab837818e5b873327a2308466ce7b3408bbc0957c7a15b0", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 44, + "collateralAddress": "Xii9arFkiWrGJrCEnqJW467EunKeJgNrXC", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.99.27:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120252, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtt31xdNmBtzk3vH3cu89tWnfvmHZwwqZf", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1429f3fdefded9a8c5716f6e8f2b3412b60a0b9b1ca44ecf57845fc9ac93dd5bb44c5c7ac6e9c076a39c2725f9814cf4", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "1e1d45c63881d362ee1519bef129001ba5f2dcb54f788dd0e01a6c91bd3055b2", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 12, + "collateralAddress": "XcWKcjxXSEtTE69d3VD3pqV2Y5VUVdR5hW", + "operatorReward": 8, + "state": { + "version": 1, + "service": "158.101.111.137:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119033, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126086, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvVDXKPPyGFiUfPhUiDjJFspaJeXPYvRQn", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1484a9f27b3916995b986e261d597a243a27b90b129682d20a5f4c5865d42cf431214d8b3d185271c54f25bbc7cfb874", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "eb48654887ae026a1df63a93d322e5e2e67fa4ce32c039b979b0ea25bff3f1b6", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 49, + "collateralAddress": "XjfXxjS4Tr8JBL5z6Cc6RzbsE3z7DsPahx", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.158.145:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119051, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2126135, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcEwUHw91yHnzzLk4h3RNW8kZ9RnVpU2e9", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "91108f57509ba0c415093840e2448efb62af23998e79ff96e815e7967576e3374708121f578b391a65a4e9f18082d828", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "a9c4fc44f87c5289e9f0163b481ebb6caec4aae48a906ea85daecfec0cc4dcb7", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 88, + "collateralAddress": "XrQ4eDYeq55WoYuDjjfh9iLrA7ABKnqJyf", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.141.157:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119075, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsdkCGarpiKDjwMp4ykpbADfRWGi53E7i8", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14406c68de1ea82685e497878c79e00a806f4490635f033b537ed7d92d459cf9c223c08474855cbd44da580395215935", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "40ebfebe581fe28b824e3cce2c85597db86659acba11cd3ce0e42614e1b597c4", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 131, + "collateralAddress": "XyjmqDys7zJLnUbjNGqMfb8q8eG5Gvd4pG", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.145.23:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119100, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnwsDiF15QAwCmexpLT4YcRnszb74rwTAn", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "128f90ac3db65b27594f7f1fad59249d75214bf25b543b75b34b28b830eabcf2f1f191b578eeffaa55e740d46bb30189", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "3ae7c93cdc96938b4e108c10cbc5658ff770b550dd0643e38e2b34e976d322c8", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 80, + "collateralAddress": "XqNstaeLxReFWTaSDez412UU3ZTyii2fS1", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.46.160:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120720, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfdzRegXS1Cao6tiCZCtqLHopefVZbCFsk", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "836ee8e039fe69ad6154c3a338ff5ce1d3094fbd2de2f517b79ac7eedb413d5e490d66167812588167e5f00ea6273ef5", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "d973d8f9080fb6b29bfcf362b5bb13a756eb400d7bdd3d9197aabb811a2045cc", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 33, + "collateralAddress": "XgPp43LaQS68WAxAMptdEu3gigHdrxw9RG", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.98.60:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120228, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxgCxGM5z2YsPeEb8oqmY1q8HgG7zWetVK", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "90384273ace180a71a497a3993508cb5467f6fb7f70f0c5fa9790b2fd317bfc746711c453b62d4862be5e7b659c52407", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "0d0ee825329e576263dd9859ac0a5ee5d2050a0a3acedefc50a63349ec17dfcc", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 111, + "collateralAddress": "XuuKbPrJ2tos5zyRPAPV8f7m9Mpsx2oSTd", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.202.251:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119085, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xup93ZV29cgbKpPs8EogETXXh6uACTmbJM", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "91f325217de87935b334f4acb06c841fe9c64f28da1ddbfff511b777b4608f77f8b264a8c11af1c7b5b02549cce9d926", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "a0651e0e9953be9afe9e5cec8af79d58c4c1d7519cb775fc8c9eeec4c7a3dcf0", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 60, + "collateralAddress": "XmxDVvvjXas67BTgewFtu7bx3uxSAHE7uR", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.188.82:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119052, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrhu3QCqGbDSiZBNzRkzWivF1yUCC9eWu9", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "986aa44d21a38f743712d2ce721bb11083ac4aa338c630602a58f46a42db9c8b20ef01d6108aacd4ca43cf83721ae25d", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "e3c53457e02b8e01edc1a3acb0dba683e322e990725e3c3e12594bad965154f6", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 102, + "collateralAddress": "Xtdmh5xVTJ6hgx4w5JxBLeqq7ivr1Log8M", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.154.102:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119090, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxEHmH4ABAgr1cLhTzz9suNWFVQS53rjcA", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8ce4fd7ba94f508b87287fa10cc3a2bb5686c477ebf7fef509cedbd9fea43bcd1d34f27db3f38a20dbc5b9b8a3986a2e", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "1dee3d5ae5716486a9c0b8dcea8dfb3ead994f173a17d5c9b173dc9c3e9ebbf6", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 112, + "collateralAddress": "Xv4yX9LmoQMkkaPdpgmpCpWBK2TpJx7NmL", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.159.146:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117639, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsyeQX6dxn4pH68tRPtQV2Jqjugoqjc2m7", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8262ebb3ab3feff634bd9e9e4530fdd18b9ec6e9d67133ff0cf2d4c08e6b403631e19b666d8dfcc07d8e71155c704fcd", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "d6c090ae5b47ac6947aefc7231a75b9cac9fb0c5c0f9a72e91d10ecced6da5fa", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 2, + "collateralAddress": "XbLgfJGXAEZ87XXkzB3astWceWx9bykCKm", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.151.185:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119030, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128280, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwScjtZcVoDQqg5GSWz9awJTWV5qoEYSu7", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "043e742f9fb2555cd4eb9c89cac9f3de6be40348186b19fefee049ed4e3de268dee7da06086c5e3d74d72ea9a125eedd", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "02aa28b0eedeb9f7ac9c986fc882afc1c5fc63af210b2707975eea744591d709", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 31, + "collateralAddress": "Xg3J1TeKvc5oMZfxcK2eq9buAkXRKHdLrv", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.224.182:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120187, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqzf4YqhtbKAmamDd8zfphZAmDtVqkykXU", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "98a8d676eff6a1b8e0e19143a8547db180bc4a6385bad8f15125e28814fa04fc80a08b5573de574aac25fa70d88e5ac5", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "bbcff3397b542344f4824cd0426b01be0537e2e498a21bee9be9d6e4233dab0b", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 113, + "collateralAddress": "Xv9KYtR8YRq8CzMzw9qs8DHb1vPxis6aRc", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.177.133:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120298, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbdX2ooVYvKro2uZW3g4Zunrt2oSARLFDo", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14f553b2a430d226fbd9fa0767f9f97080e1690b7d947e114f23eee03d59e5b293ba5c484758fd40d4fb43e615cb3c25", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "3a9a692264be68a1dfa5b81fae2f7b71acf8689976fb8eacf23ea1ece3549e21", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 134, + "collateralAddress": "Xyx299c4WV3tncekKNLnQWrVRWaDgiVBFf", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.233.207:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119095, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhwVFbwrWghbpezj2pDUCi5XM7Nzp82sGm", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "98a331269f6acfd894960acb97c36037e817923455d9727f6524cb71ecee674eb98d897c3bb3247e85cc5dbfb49541b6", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "c1d12573ebe85f5b963e738e5621de9a86a3df4e6f4d82d1bc30bd7f97badf23", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 103, + "collateralAddress": "XtxRjLL5THYYoLJUL7Y6WMR1SBX4BJpwxN", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.99.70:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118758, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkZgQPXuYVZdWvPLSL9QMQEKDmANR5wh9B", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "98b370a89992025998d954e765e1232a3d40dfe5122fce2476aea66dcd7ac2ab6d73ad13a0ccb4e5ed791b306fd45d7d", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "ab7a5a0e7ed4c25b83eb7800d4ed4d416c7b561d0bd90cca1ef8cea12065cd3f", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 108, + "collateralAddress": "XubdpmU7viJxCj2NF3xZFUrncAAo9gWzev", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.35.46:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117159, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkxi4EogqJsKWMmw3MrVALVcYGWkcvQ8zG", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1153b7c2564fac05a04e37db5ed21c26e3bc09fe30ac1ccd61b397f5edea329b51998bb0f1d71cf6b590bbc0e37a9a58", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "fbbc693311ebf9859659843dda6c9cff0e4576eceb1bd58a14e4e5bb56b78342", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 8, + "collateralAddress": "Xc8n8Jz15D2FeuyPBmhaUCzGxBMcATMVoP", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.153.108:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119026, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpaqDMt1wD8znqxXfjzJNozNxQe4FiGySh", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "089be36c7dee6f9e35bbfa1b06d73831b68252e6648c5a99c749331c51a5b6c0cc910a09f410274db4ee47175df50395", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "d19bfcac322306ebf4f26b9542fac8f1c2b3b5431ce8c4102d45b3f14be5bc5f", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 123, + "collateralAddress": "XxGMkJkmFEhVC6E5tZkGqJRrmWhiMgPXAC", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.110.95:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119098, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcycw7UZk1Nt1D9Yb522fgCsrjAnVTn1nP", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08dcdb1624c0c260b9bc3f9853eb1467318b237c307fc15bc45d58db8b9f12181163b7b6e3a2947b3ef3ea2646e365e7", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "e4f4ceeff1e68f6a81fdf733720b47bce5b77fae3972b628438f025435c81378", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 90, + "collateralAddress": "XrmUPTWGn5Qhw3n6HTkwKqnXKXaWK2D61h", + "operatorReward": 8, + "state": { + "version": 1, + "service": "132.145.150.254:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118750, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdziQJiMtiBdobwtB6XCnu19e1DngEfC5J", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0f52bee47520f5f352f823377e88f25d04ed48236373b41118d9ff4cc3cbef91569ed5b0c69da0f8e9d3b46555f8e47b", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "002de9a798c01eb875f33b684c2b33d615a02fddb131e9ccdd1df74056c5947d", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 14, + "collateralAddress": "XcjMN3JbhregdLcTxkzR92QvEUKdQUQUaB", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.127.232:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120153, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhuwsp7Q1itzNafSXibJm46iFUExUHLYfq", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "07b5219d4f6f1a2cb18b215a82983477d5fe56fe34faaea0e3fab9a093e1012c555a97d0b660126860153397a96cc102", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "364ea45a475b4ded2bf6f469bf102792d8092b63088b09c8bdabcb73518bf28d", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 40, + "collateralAddress": "XhUfQ9SS8B1WNATi3sGHxUfifTDurBxmaF", + "operatorReward": 8, + "state": { + "version": 1, + "service": "158.101.109.5:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120226, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsMMWt1VhaQEgdY6bvbPEHxhud3XQ8qFcR", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08c43714be0c3413b8dda4aeb1eb7e86682cd1915a584e90c34941a826b453f4b2461ed43e28decaf5ceeea02583d748", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "b435a06740b1555f495c57710fa26cedff0ae7c2920002f5341faf4106a44a91", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 34, + "collateralAddress": "XgijLvEJDaEjgiCxqJAuUeVAchs1XAeZqg", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.143.113:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120724, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126129, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq68ht3PjS7Gn8ukqwJ6NDhc1377nP2eGy", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "872555ed85005bc922968bfec3b7fa517535dd6c6546476c154837a27d1fde771dc9b686854e536ad9f962d9de546649", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "a9b01a0def5643c0e99a5116bb7d7fc92d21e78ff53ab6f1cd59feddba3b479f", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 25, + "collateralAddress": "XeyXMthnzcJJpzgUbNXqDa3pAyWeJFGZJn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.36.21:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120227, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwvmHqytLcZJ3pbNHoouSn3753WJoQQcfv", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "02ee6571d0bbcb7fa9607144751429c2e5a8d353ac5c9548c007aaebcf9984d4a752992b04cc210fc59ec79a8e7bd8e5", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "ae37d0cfbdfc815bacc5740656662bbae5da4b3ee0f3844dc9abe4d928ccfba2", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 72, + "collateralAddress": "Xopge2TckcDhgLz81j7HwAupgzwDPeDbxW", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.96.105:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2117116, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiFFerh7xGMWyNzEetz1hJZj97B7ehsZzY", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "12e53b9b0f93bdac4d25e78fb5610aa4a10d12906586b1e162598a31718af93d015162ed7bb1d21daab9aa85e164afd1", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "c8bd77945618d19f8c93fa0039395e794a7c9b9398746bb6223c3d5c4a413fb4", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 11, + "collateralAddress": "XcRSQRhuBaTgda5XP4VkdHYsLnjM9KWhpM", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.127.203:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119035, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv5Nf9h3UffGigfJzwJp4Pe5UCoocXatbb", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0bc247797770d29f9c97f0406a7a8f00a520b2d4e5fa43c2b4b372264488e7a22cc9fa03446a585ebd0b9a9b40c8d684", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "04f0da96bd19aa642b4f6c6be0b296fdce054adb395636a9a4c763aa7fd0f1b6", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 39, + "collateralAddress": "Xh4YmTBjqZs2EdiJZ1HMfscLs3MsE8VRWy", + "operatorReward": 8, + "state": { + "version": 1, + "service": "193.122.156.27:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120515, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcqqWGGVXYPttsnZqdcxbzgDo4MR7CeZLW", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "941346168a93179db28bff78fdb5690d2d6e1cc2576e91d3a3b2143826d55419f9ebfea338c3261a5583be92fe30f9d3", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "acd4502a180caa8601a8528f8b2df58c057e4c2888e5dcbcb4eda48469cf18c3", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 85, + "collateralAddress": "Xr79nviXasMvV6N7wwhXPMoNHncpJEBivC", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.78.203:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2119076, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgG9HZbxTSqT69S1itVXJNF35tNY9bns7E", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "03a09e975f6d4a5b214b5b3778cb680dc1b8ca66fa926ed69a133638998c6a4aee3e7c2b6e75411d76f2bc5d60af07b5", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "b9ccfbb097b5451b0872521377669372b4fc4c4e42bf69499cf9600f539ca2c8", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 82, + "collateralAddress": "XqgWEyVKUBNXyXtfCCHc32Qj4AMaKewKKG", + "operatorReward": 8, + "state": { + "version": 1, + "service": "129.213.37.161:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120287, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoY2ghJMY5Zw7GsKwaWyfApCrxbHcnGRr5", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "178fcbc9dd04c3f1b33e644dfa3ce9149a13f617be4846050e53c4e766f23d0cb74e698ba9d453f898028dc6a38bec2c", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "7607ac418599ac20e353421f9d69d83419585fa57aff1002127f09c4bdda09d0", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 18, + "collateralAddress": "Xd9YZBXRd9GFFUSSxKUkofnRsfgSkBDidz", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.176.190:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118129, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126086, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpuQv2PFvLZ5zpsQaCeiuSviLpo7cj2Tpn", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "85dd0a758fce958c6aa9065348e8f4229be30fe387e33985160c82c68f22f773ee92d3f965627645421640590ff24f8a", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "50457cd879065472e0aaa1d0f35f918d268c2c43043580e3fb2436c3fcfe22dc", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 116, + "collateralAddress": "XveNYUNsgegSwNTinHF6T45VZNfjGBfntq", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.124.248:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2120305, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy2M8yXSXyWzXJU95J6Kun6JjUfk8ZjC74", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0b187eadab88caea04fd90a84389bbb99eb9f58f65bd29a3c7f2b1cdc02cd5ca2684f82d703130b97642abad95c369c2", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "74ed5974ebc2c3e0dd8dbeba5151b4307dc474f2067cecee450e4689917e23f1", + "collateralHash": "e77ac3a74e5b44d1eda6537dcef6c03d6239289dde0f04ac24f8bcb96047727b", + "collateralIndex": 77, + "collateralAddress": "XpYycvdr3HcuXe346tMsbGaReWwzuXP8xc", + "operatorReward": 8, + "state": { + "version": 1, + "service": "150.136.10.16:9999", + "registeredHeight": 1292990, + "lastPaidHeight": 2118754, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128311, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQTz18V9qi2T8vBzepgkZDh3DbfbQjx1W", + "votingAddress": "XuUm9uPnzbXzGnAQyAUnNC97vePPPZMjxa", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "05d8e31c785f94dd46691bad7a4f67243d154c629492ebdbbd6add75e4a683f09bf59158f4c82081b1803ea67d7739a5", + "operatorPayoutAddress": "XchsahaXfo81w53LihJxXMmpjMMvs86amd" + } + }, + { + "type": "Regular", + "proTxHash": "fe1e1c9573c7222aaefaacd13dbad159200f46ecb9c64c9b585ff3022bbb2ecf", + "collateralHash": "29090362c0d1b5e788af63f8f735a6b4ef218234c8d4ae53fc792a639f2eba37", + "collateralIndex": 1, + "collateralAddress": "XyLrbFNYaYLkgriKrVaiBficPwVvkZPMrk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.248.52:9999", + "registeredHeight": 1295176, + "lastPaidHeight": 1869202, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1646181, + "PoSeBanHeight": 1872906, + "revocationReason": 0, + "ownerAddress": "XpVSzF3G2pPB67z3xvd14s1ZDUJ8v1sHhy", + "votingAddress": "XpVSzF3G2pPB67z3xvd14s1ZDUJ8v1sHhy", + "payoutAddress": "XeGSi1U5P8E1zogT9YeF3izqFLmcoDy4tw", + "pubKeyOperator": "87c3af5eb4b01e84fb62c3552efecc18d4ab74d11e0342bf8fe7e2e0cb08dda550141c2516a3dcf936b7aca6da2d8530" + } + }, + { + "type": "Regular", + "proTxHash": "e5b2ff95c862b3ce764868f0863f0a4fed83d195b5b6b95bd73741007d3cc315", + "collateralHash": "bc5f5c7fbbe55b1fdfe4c12dbdc85f576d6b4a2063ef333d1f4d40c3220655da", + "collateralIndex": 0, + "collateralAddress": "XtXgDXTxQaXqHNvfbHMxbVsS8KhMDtYRR9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.74.231:9999", + "registeredHeight": 1295971, + "lastPaidHeight": 2128181, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xupa3kBPmt48eM6jpjuniUepqozYCWE1ru", + "votingAddress": "XtjCW5svPTWtusgWaUCvh5XrzWhCeRTR1R", + "payoutAddress": "Xajyf6Vdm991D2bQNPbv84xVNhnKRaMkyQ", + "pubKeyOperator": "98a6a87ad1ad8596ab094d259ccfbb3a0c62ebba6fa52711319e7a24bd338ccc4c3225e2f9758e65552c981f58e27438" + } + }, + { + "type": "Regular", + "proTxHash": "4dce1d4df82dd067473b53a80bd9bbfbe0577ee667a75e1170260c70d498b420", + "collateralHash": "3af08865f7500212b0ad1d70d4c080140b99f8463c34177e230bfe3a7171002c", + "collateralIndex": 0, + "collateralAddress": "XxKFQZ6KdLDQk2uX5RguChKPWgd1pV3nor", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.200.163:9999", + "registeredHeight": 1296372, + "lastPaidHeight": 1305998, + "consecutivePayments": 0, + "PoSePenalty": 5043, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1306404, + "revocationReason": 0, + "ownerAddress": "XtSwxbix7PgDt8cZgPBHHDJMNduT5ntxH3", + "votingAddress": "XtSwxbix7PgDt8cZgPBHHDJMNduT5ntxH3", + "payoutAddress": "XxKFQZ6KdLDQk2uX5RguChKPWgd1pV3nor", + "pubKeyOperator": "844596fbed3dac8cc117603980e7929af1c06e6315559c2ef166516e4fb7c019d28c10a155bd3075aad8e12603c383b2" + } + }, + { + "type": "Regular", + "proTxHash": "f3fa73d4dd8b023b3fd05c577b05a472de4372f1b3ebb6d58200ae3338bb6b00", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 93, + "collateralAddress": "XsMU2yUwkwrPwUFYPFEyPFXurGurTZKAK1", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.246.164:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126567, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463067, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyZB3cQC1eCB1MB568tuzVVSdVPvZo1dhj", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "12d8c5be6a14f3072140b54372af8a70ee9eab1436a10e9005bbe7ed1e4ee291aa5fa42c39fe617983fed10085058467", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0037c2c534d2d9ac2eec5037935b18649a2d8eeb001959d4228a97f6dd79260c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 91, + "collateralAddress": "Xs8r5fNwGfX1hjgo1UMSe6qs8f2qW38pAH", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.147.108:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128525, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1352197, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfxGu5YV5Ei83CRPt4CLf2MPLYecJN2tj1", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8a92796edb52333dd8d5fa739d549404dbbb8e6befee983802855516544785c2ebc481bbbfd657e605f45acc6b9c2ff0", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "cfecb849168d4452057dc4eaa3dfbc62bd98996a1da5aab17eb23b447815570c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 120, + "collateralAddress": "XvwQpDhkaxF98wkfT61bjQPFMCHpPUKuh2", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.130.131:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128060, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpK2Jr4fFhkzsW5SweKuuNTut83mpwDkph", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "96e9e5444c3c7b894ab6d4ed893c9c92ccacad63c4ea8dc784908b7a23ab14d1b45b2fd2e638946da2d7efc29c4ba26e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a67c368824d723c82778264a7eb523a1a3a3e07b273e55a6e76dee06a3764a0f", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 87, + "collateralAddress": "XrFnE4rirau8X6NmhWntktqFKiGiwvCXVn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.137.204:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128063, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkkgpABkNLG6wxgsPwEmHVDEQ2ZJPxgnMa", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "90f3bec018fc2f3db3aa0ff57f40e7fd869399417fc3fea18229a120a0c2542a1bf62aa985eb39a24f1a1cc229e0985d", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "2a12dd4a16f264c8d18587041c2e54a27a72dec1972095c94ac64ad14c907d12", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 119, + "collateralAddress": "XvogbjxafUcsyiEWX5jdmJjk8HpnJwQ6TS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.249.223:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128065, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgdQQNHtz37GXfFtKdcSEkmpbWQtmpGwXj", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "98cc856eaa8a0e0340d8eb405bd124d254488b7133dc824347530ce20dbad7a92b9d7e3afd5e2c328c81452895b55b99", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "47f7ee14191b1b287d4ab85b66461906308d950f97d0cb656fc3c262fd299417", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 103, + "collateralAddress": "XuAJzCZ12EfqDB6xweBWfL8GgSREdtaSuh", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.130.18:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128068, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf7sAK644qizxdprbYPfQnRcepKhHg1iJx", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "80e8a84293ceb212f30ae22f198bfc3f708264160fdbf84ef5d81b4623f4c80f212a263d1923c73a911e81401c383844", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "89fe1fb45c96654663c07eb702052dc5be8fa1a14e9f4f91bd16ebe1b22fc317", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 100, + "collateralAddress": "XtFGZ85RanB2SkJY7HpSSJpfTpC7G7pHpb", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.215.184:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128069, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnLM5V1mgA9uaUuRiJjo5J7xf6cbSB65FS", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "076b7b554d2dd63e8db0fcf786fab7288d44e517ee813f02beb2114fbeed4f1563bd816bae55d2931340033be5d1a0c9", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "6fec016a24d6f7b6f18af043f5f12ded68529f35d87ac9a2cc478448c8836221", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 47, + "collateralAddress": "XiNaKBXaz1GHmVm3qvW9hyMoWXe5uejofa", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.242.77:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128086, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xby7qdh8BjaBSEBTXp93TYyAPhEWTncCsB", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "812cb2d0b8db85eb44b7c8fc6a3f8e72b75c87b4509291397d7a6c4858ff7f1fbdd7282357d21bcff9d8df22929a9734", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "116ef8a56eff919baed966b225cc83056650ff94508dfdfc776f9d94d309a823", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 25, + "collateralAddress": "XeRkN7FMPanEf7fvMRyG3w9ksZpW8UNKE6", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.221.32:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128087, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoViMHYFLus4rBqETfF1meLUSsHhA2h2be", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "87338315a4794ffd29295cde1a8cbbe5da5733cad3b0dc6f76419e88f58fef0d4bf0f95ecbcad5389d8256c9ddf2fec4", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4dec28ee37f10c6c69919d7e975bb574a9da800e4c0878988e29ba8cb7b1fb2a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 127, + "collateralAddress": "Xxjo6s4oAgDf8GuzSGVVvryW51ABJ6jEuq", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.187.175:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128094, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjHKFaZU2FsZL5S5uC2znEAZnZ1usFHCXr", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "16385c34fbd86e200df9a40bfe18bbe0c6851207e60c2f6432e4fea940acd421629f2beb1bd2e542d6a3b2d4b7d5eb26", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "b0e6311060d58c9c53fb5b9c8ad3601b35b13970622654d4b5990401a2c7cf30", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 111, + "collateralAddress": "XubCCoquR4KRrvMMsJ2ykrJPcEJvCAYArD", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.148.255:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128098, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xggb2MRsnH672uf5q3ShwE3Hn7bg98NXFJ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9704e9167a1b4e19698730cee4404143c04064f01cda1d0e403c826003ae8d1e270d3c4db214d7a6c427400097d32e50", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "8bf772f30d6e63185f880213c1a458613656a3306e13965460a280874a39b531", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 76, + "collateralAddress": "XpEiBUWk3oYEMkKYmK9BtFsgFWwd87khkJ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.146.30:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128099, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XshKadso4hEvtgmiR3u5UQJDiR2UtadjMp", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0e11201b87d762286646f1933894fa9829e9822486a842df1f776b4da2ec48ea41f4f0a61dfb2c861583a6a9c49a106a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1438a73ff32a1251713a617ae3a7b2271ea1c687f4adf215b2af4472ec7d1b35", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 98, + "collateralAddress": "Xt1WSngdBEttR7fZ9G5jVvZuv1uDbbjqWs", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.132.173:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128104, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsZ1jBz9jHb7wKcXWhcY4BtaPqxqqiLwcJ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "10eeab3a590f1344b78e3c4de1bd039c68ffe57e3765b2da1d926eb8ae9914b62ce2e0179f5f7aa2f0ba7984a1237459", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "6e25212bf83ca98394c2bb3734e0c38c5d3ffd616c32ca418068abda5d8d5537", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 117, + "collateralAddress": "XvZimcPz6Bd82CVSNuP99w8rNEGnvijneL", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.244.159:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128107, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxrfH5Xov7MDKpK6e2aNzSZWax4mNdskjq", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "86a80a008fbfe8467a3c898b5886ec5fd874e0b9355a63774f29e72bc5e15bab25fbdc1b4a71f2360d712198d30aeb4e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f26b173ee258b65ed7689a48ec290088bde55b1bce82477fa1eaa089dc6e663a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 132, + "collateralAddress": "XyHziaeqzW3PpUagetViMECJEbyYVP7sii", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.175.17:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128110, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrhY3KoWUQZ3zZpJ3Mn8qfPfN17K3eKVh9", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "138f9dc559700133ca1203b3083f139c36365d9e6dc638718ae578ce934c9e8684d43c83af1bb5eb056fbac179bc53e4", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "5e1902db56ee99fa843e677ceaef055d781cf5f16537a406d5640c6ec4694d42", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 15, + "collateralAddress": "XdCNJQLwZiCpAcVuuD65gsRCADQEBu2Ci3", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.190.253:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128112, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkomu5nx7jtdCinD3tYYppFULkR33kaYXy", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0ec78a198dfd16c2b4704f11b010216c5373992acf3bee71f6d66e9e8f50eea1204c0cbd6db661f7af975fab7ced9225", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f8c3759161d018eec61855249f9dfd31c70dfe24dba81bc53e77e3d8bcc6c243", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 112, + "collateralAddress": "Xumb7pN4nWAk4SombAuZJoToioHfXa7SFY", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.138.140:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128113, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg4v8ivHvPvif1zk4GvY1SLjKXCD21vsqo", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "03c50d169a9f36561520147b7ea90b2277e038e5a1b60b34fc6339355ba112295b1c0e4b065d9dd29ee41abfae6298f7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "9d4c4462f3b4e38b6a564865bcdf5ba25eef4f2672882799372ac158e4d6da45", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 77, + "collateralAddress": "XpH4KWEwunW2Fww8Axyr5YC678pNfzmwfX", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.132.84:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128115, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrfjb36s7tMcrmpRi1rjZepyy83nCyx1xp", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "88f80766980d9d33cc75968cb1945bf408d18bf0504837246eda5faaf01dd4804aa8cb5db3e82f924c8fea2f200ce097", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "fe9ffe483559c6236628ae22e92c47f2451fb0f12e1a90514906aca42c914049", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 67, + "collateralAddress": "XmR3mBNNiv8Szu4aWivUfrLD3Py3NzxLmb", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.135.26:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128121, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XemmQ91izwcWuD6fZPJ1iBuuequWCLkquE", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "890c460c4a57fa509297a6ddc68fd0a0d624f29b18b8beb85bc977d33215c79d118d13e08bb28754dbb7e5f5fe12f4d3", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0aea1803be980a74952ba7711c621258201cda89dd515f166719f07ae9a2fb4e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 90, + "collateralAddress": "Xs4AhfL9jUv6dkbXCQr3Ksxc5s8jGu2VzN", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.135.84:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128122, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoY6GCzy3xCj1VA3jpvqVTGMMvanDua6Xv", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "98fbe1a9193f559bea7361cad65739f8192e549ad69ab78556a22fba3e1d48c79864143200ad4d98580ac2d9b23391c8", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "661b47ac590023ae6079df4c2e5fbc0efb5836acdd8947abee168b5db3f3814f", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 7, + "collateralAddress": "Xbg39yfitVDyco8beArH86qTU2UpFF24Wo", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.240.153:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128123, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcXfYSC3faWoEMTrQcCMQ83yPcLjnvQoAv", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8268bd6caf4cf7aa48147e3aff22937ad5b7bf54ab75aa8955f295ca1733e7da2ee7f64b8fafcee12dd03a5d469e9025", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "3c2f947f88b04a62359c6f6d3615cdb6a9468ddd093c0d64459d0a2786836f55", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 11, + "collateralAddress": "XcVCjEN6xth2ENJW4d8mj6e99fdVZJkZS5", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.217.58:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128129, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx4mqKiGhm8S7SFnQQgxdBUruwEiKBkvAv", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "06a92da63d6c213c8d6431f8aaa2e01c4bbaa363b7c04aa3716abc0cc7c4514ba937d722cfb668b9c3735d853d7ad891", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "265f7708910345bd774da100f3a312a3e7272aa3859599471b2d2d2fb4339b5a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 1, + "collateralAddress": "XajzTZajJkvmpcNzy4Fnnk8SgUBcnWmkGZ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.5.90:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128136, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbbKmprrjNrftBekdTRQ3bFcHpVAwPphJw", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "97cc843d3cd856eb2ff5400eb860f7b7c00804a119b3c117db3083eca6ec67e9d46ad851def5488df8edc80ade2099a2", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "d30a1310e7fadbb47b301c44a38ff1a12b3fe0705d30d8315311fb8ac12dc65a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 30, + "collateralAddress": "XexTkjwhXZVpMr8pJCaVSxbMwHaVxn8hq8", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.140.82:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128137, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqxhaQNmwEPP7nxC5REaGASecKTxNTr7MW", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8b9cb9a0e6489eb2e282a580e44e6573461dd0eb410ffe4eacc382ebdc010f72fd13bb66a30afa90340750129cf75ff8", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "ded524f0ab037833b6ddc6bd32c601208d5f02bce6536b54f6e172c64af5e361", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 13, + "collateralAddress": "XcrJDMdCFSwJ6ttEoBVn19y3om7S53vJ63", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.223.247:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128139, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcZgtPPapW31U1rb7D7crdz6V7WVtzo5gN", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "96bdd4b47b44bf0ef8f675e0a01991a13a6ef21285a16dcbad201037e2522e20b983f27152a6a790aaf154b85fc33391", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "754285ad30ce2aa5f9d799770a2e06afff77613e09c240d3019d1f266e2f1167", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 116, + "collateralAddress": "XvPW2gyEiq7mziFowV5kM8h9gmceQVUa3Y", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.141.118:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128141, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XveJ3dS2JWGsjg4KQ8MtZWhgDBu4zjJkRH", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0396b11c000274daa8208d2dcd7081b01e738c3c582c072606e4a9aef73fc5327dffa9418d92f7b81585d6d848c50e5a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "2d01a728d85efe8567c70dac2728011dfec6bedd92df3b2b29c24bfc725caf6a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 44, + "collateralAddress": "XiCi376om5XdN7ZhdAsVPTY7WRaUbnBQuf", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.130.119:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128146, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyZeCKjZhRSyfrJmXcFivm9wweC23sYSW6", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0c5fd6a7292351092d719632d6d6c00cadd2c69e73ceac3df9b0a7746319d7f9a41e6c1417e2c7c9b126b6220b52acf8", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "cf743d9082ceb9c7fb958cf3c536648b6d5469546359fea686fbf6e1b562dd6c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 102, + "collateralAddress": "XtsBg9wL21XvCaphecD9jCstEMgBkkfTGS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.140.161:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128147, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb4QDCv5hzpAzaCR51TJeDMiX4gx5nzDzR", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "958f335c5dd5d0f59362a04c16c31f8caf717930d3eda1c13971b05e26fe8c51713532f9e37f2d35c271e94bdf9e0734", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "15e55de6891ca8c6714122d4d70eecc343d6af865632fd91f958bbc0f5f77e6e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 134, + "collateralAddress": "XywpqtfiCPPuoxs1HJoHnBtbHqiYRqshUy", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.145.72:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126551, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463064, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWUdGotwRrn9rAFeYr3YZ11mUgKDfLpiL", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "098d39575c70d571d926e5726adb08af99bab833c7210d198c02a42f2f9bc7200ee930db27385fdafe886c3af5982087", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "7098a71d02d6d9dba810594baf6191ce1edec05b50c537c16d2a80bc40bb3878", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 9, + "collateralAddress": "Xc952zicpB1Sx2ZYDQCsWrtwKBP7n5yGxV", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.173.78:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128154, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc2ktJoQotZAxCPBGFrgwc4QvZ18Loxh6P", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "93d6ee77e7476cee3093e9592348b86e7b75262ec29208b368bae3532e98f2061f612215dad0525de00f72af813e1eb2", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "784a0529d150a44ee26ec8f08ab1eaab0d0651ed2ee1f8e611a4304626448e79", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 105, + "collateralAddress": "XuERyWqdcHf99aNFAKV2RidxHiPQosqwdn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.134.88:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128155, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuLv5Dciz8A3BWoRdBCeG8vsuosQVFz7WG", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "82b7e5f1e68ac1e8d1981c41defd50cf416088bb78c0d463212b96ad1c9fb49ee097363beb678f0f572896fb165a3820", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "d31b6078fb03a562c7063a9857b943800803bd1eb940e1b5ae9c37c6e11c037d", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 92, + "collateralAddress": "XsHEecsravG9xjQP6dXv2FULNUqUjqS22z", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.51.144:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128161, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmRmjeipvAu9dZMKAFAB4MV3smZ147MVKC", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "99c2439b1ea08b9b6fe4049d1b89186224bbc97d901399a939d3832ce61144eed5db8afc5c1a27e2855d964ef16eba39", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0871b350678b9cf0a842d86eae88728cd726bf4cc88c82aaa5af52b9ecd4c889", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 22, + "collateralAddress": "XdoopnNQZAwDkuhV8pEAVSavNHrCdR1981", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.175.64:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126541, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463061, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XenkbxH5ZzTpzHxcya3LFNJQ1kiDfo6JEG", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "068f996ce6802597e3668e126b9881364aae7de3242740ab70f2e26edf230b63c7b39ac482995a95373bdbd89efcce3a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "396dc4a6ea0ecb6eca60f8a616893df704515cebe2c7198975da836479a30391", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 49, + "collateralAddress": "Xj2ypdxadR8wwaoHnxjkfrmB4MygJ7CDf7", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.131.209:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128171, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt2u8a2CqeY1GVSrCe15UwBJy3kLgAgWQS", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "13c7b524997766eae487d6523fd23e1c7a98486fe95f0a9b34b8869e9007e75096074cdfc87467ec62f141104f72f473", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "6ecaad81b3ed628606e024f98758d23967057504b1e3b3c17912db7189639e93", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 104, + "collateralAddress": "XuDmRB1BEtKBv5XwmmqjsNqwkLUTFzHLdd", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.139.20:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128173, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XehoHPB3113jwjLuFurraCohB9JtVr6Zc7", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "993a7f81b63fac5bad4c0b43a9aefc69b140dbd6b09415171b5dd1be0fdb779c4cf445cf7d24afb263b13c8ee158bb3e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "9bc869729b8c3a0cefe20937d8cc0ac14567d1a0392fdefe1610b698215dc996", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 34, + "collateralAddress": "Xg1X2zfs9ro1oL87ok65K9jKA6qHLu8GTc", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.144.32:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128174, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XinryaMauw1XvmoCA1tX8eVnN3C61uwBae", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "06ca3e322263142ea0fc001a162c20f147c3f874ad67a5239466b5f61231165d2d5f84a73a47465bb583508cfaedca34", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "58af792e8e680e775d9960b439b5a9234a8501960e7d8ab2a4fe4c21afa13e99", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 64, + "collateralAddress": "Xm9zGLfzY3QzwoksF4zxjSPainPZ45tfxL", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.229.220:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128176, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjH36KP1rBz33ivzo1oxMQdKndECrqSQH4", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0bb9d078338dd7bc80eda98075aa794ff359c04757baa419ba42aeee0f18df4be10bd7600f81ee0aa9d2b53ee68dc602", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "bbe1c8020251f9278335d001c879ef30094864e6ae027939d32dd0c9482f539a", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 106, + "collateralAddress": "XuHayCmwJmchnveFx92RD1C8Krwu89z5RY", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.230.37:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128177, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnvKdFgqBH7KViaBtHu1ZWs86EZDXhRBET", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0156868acf3238a0a109e3bad8c427e8d442fffabb18fdafa629458255b5b3a9546c7ed1e2e78e0bc7112774f514d785", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "ea15d86bdd170b53d4b62e22267ab14e3e03ed2db227d9140f7355a0046dc99c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 133, + "collateralAddress": "XyoXFaG37NTJX2HV7B2ecW9qc2jJVAeHkt", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.234.92:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128178, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfS9xZaaQTDAsH1XFejzfJsB12yX94a3og", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "02147da4662a69100c4687425a2778400ca518c0d68f787b2b646692ba37ed7dd7c15650ac07307d3fffa309cf2facaa", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "47290b5a0d8af601918b68f0b8d66d9ba79c02c0687ccebdbab9131fcbbaa4a0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 114, + "collateralAddress": "XuvRUZAMsLzQgWaDZSuhJfXm5Vvn3ybF4K", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.160.147:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128193, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeUwwTaCxrCS6CV8raAehjzA4eF9ZXUmKs", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "939cfaa411d4b25095fee9876d2a9275bbf383b1be80e372f814b4b2d06b23154ac6e64153283562ec7bdcaf659e8567", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1dae04eaae642a2594fe3a0e7c0382cedbb8d6743f7c9bbbaa0449af59c3b7a0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 33, + "collateralAddress": "Xfxwv38Zrq2NM7PCYjNoeaddHujSDpFzd7", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.205.129:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128196, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw6PBNmWq1H6JwAjxL1t3f7biZj4nQ9bHj", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9344fee70f898489a569284c66010c92f389ae2b91f94d5ecdd647689c0650b10c703321a3621e570b3efb112c6ea909", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "e351fede4bfe79bc7e5f81992e0779fc0fd5cfc624cc4e81a667b70de27098a7", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 122, + "collateralAddress": "XwcP81U9gAFRPRdqWEZC13a6QceSeSwb2w", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.140.21:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128198, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoKiMPnkeqkhUd3b6LKy46mtoyc6nvx6QH", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "81e3069908dad3fa81bfaf619d5d7860e5728f1c3ce3143f1ec31d0c4732e3ec2c42ec653cc594d9ffaa01852c5917a9", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "3bbf256ab5615456896334cddc7c3c86627ba8f1b0e67312de23e2cc051868a9", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 79, + "collateralAddress": "XpkzSpWRbVW67wN3FnDMm1PrrfrsacSj9J", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.210.37:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128201, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkFeBnSzcUu7BsiY8Xy8ZkpwNvfpKBPtTf", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "16f034ec19f41fe1489e09820054f0ef2e393d1dbde0fe0f5d02158f886944d92e0d3c7be1a4785247caa843b00c6b4e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "146b558d2329475efb58f0a148495e45feffdc1b80cadeb8d26f81ca0d9e73aa", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 70, + "collateralAddress": "XnEPniJF8uLMCg6QohvFgSHKWBd5r8YA7e", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.12.154:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128202, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5cVKTnSTmW3dXAn67Epw2fYvuMt6HmEj", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14f8be4c41f0309bf562ec60ba5cf4475cd2ba9b07e9b9478178994d6c78b595ced859acd7341280a2201f0a4682360b", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0af1cef9f8810df96add1664c729bcc9ce6ee0958d3124d0607092210fe840b3", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 36, + "collateralAddress": "Xgh1bimxZG5hn3fu32xZuPXNRNSCmjthrH", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.110.226:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128205, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxELxdLRHGxkSCkXzojLj2gWniNKyMf3Zr", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "007b06ce9c06e9f41c21b37e422b736a68901dbe6d3bc40ceffa40934c973dfd55d0e592c22b6636bc21c4783c505ce7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "03451f64002fdfb7062c222b67f2d62f38a6b12b591ebc3f2d7906036adefab3", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 39, + "collateralAddress": "Xh3ztoo8pVbd94Yj9urg2yqjzcnXZjwpA9", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.228.99:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126545, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463062, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgEFs5tVgSkuPVwhuSNu8vPn8Sf86dSkrw", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "92e106914d3a53e9aa2ef264aac0eeae725d6d2e6aabb6ae2247f2346a7a950b1a71eb2cd5a65c70a18ba2aac79f2528", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0808b941ea3f8380ad3acf7531d0daf25ed92f0eb7d1ad7ab08e8470d3d8f7b5", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 51, + "collateralAddress": "Xj4gj4CyjX9vXUpUGViX1UnY7HDJQqVKFR", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.196.16:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128206, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfFxbdAKEz17JJ5i4SS6ruwJEiNpzB8dhz", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8e2ffcc88d3946525de3b6d426a32a1c275e2c9355b36ef2080042310adb62278ed73a6cfbcbffb56fca91f84a912218", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a02503eb032c8d2e25ff640a524cbecc8dd7749ca37f2793b9a6f84ff23c06b7", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 99, + "collateralAddress": "XtEE8ww5YVy5RkUqcZKqUC71DoVjpCRcov", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.145.115:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128208, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn5HfuftgkrdgGq9FEXebW6akfthrq3CUi", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8e1010bc973e88fefcbc99a547a319a4c6b7fda0a4bc81e31c7310f562a2695baf439c3337765a568e8245daec10fda1", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "283cb9a7f6c1085ad151d19f3deaafa30dc84ff81947dd5e3a9d9b62fcc53ab8", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 4, + "collateralAddress": "XbTcymcRat4JcvQYxUDQedpT1EL156uFUS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.129.70:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128213, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkTKTDtJnwfiyZLE74uAuZVoHVvn5x2a7j", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8a4a3a769c8346d7afd56e3cd2d91c5f71d5ed4fea107c85b88646cb412b65021415978d78508b998fc598084d351338", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "c24615b8da7df663ad29a59bb68499c9af86bbfedbfe96aaccec451f71437bbd", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 82, + "collateralAddress": "XqXRRB5kHwtNfy1FFcWsxWkzm2YnDGcaKd", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.138.235:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126550, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463063, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs566yJsJTmTveJAxHk9YaND4fY4zNrUWj", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8bc7395f8b50f568378aca10b33691e81b37bf3a941f88f79459dfa6a19f9de043e64fcbee62785d3361818def95c335", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "bb72eaa4ab7edd9b8b96e53cf25037b180ee1bd470144fda30e8636e1de55ec0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 65, + "collateralAddress": "XmCJ1zsyzhcjzmrKdZgEdrfrpxsmkBxsd5", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.206.45:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128219, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrLtRwUyX8A9Eo7eDZ6ks16PK9xWVqCZvz", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0c4c52af30425c472f37b54b28888c14b0a1f03c8d5b624f6b84460d3b09801e91d8551ddfadf7ef01bc5b6e12e7c868", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "73603f06c4f76dbb3514bedcde168661bdfff6846b52d8f4e052b05607ce93c0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 89, + "collateralAddress": "XrW8qAQGwyWbURwWSJZxYYGhHS7pEXXxPp", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.146.149:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128225, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqjipgJgU81DfncBT9oUs34cPeRsMq3YRA", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "81d000bbc586ce6fe6ef3ca597c9eb4e99c9b3515ddc357154fc8c2da671d1dafe5e8122b96e2525a53a3a275dbcf595", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4d23f5e43e69b492db761db6d722a768330a943542467882deebb1ab4f9cbbc1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 37, + "collateralAddress": "XgsfJapQX9yK7kTmabAxAmPzJ1nTsdtryD", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.253.196:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128227, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqvxC9S1soXGD9CmwYabxGpHM5sN9GdTzY", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "937683160d647c8f81d4e114c3e625ec07cd998756f39798bfdd8a0a0d45cddbd69f5296e178a09bb966269835603a35", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1ec40b4b8864f7f943db6e6d8c81034b4aeb9f0869cf10b05f368218da9742c5", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 75, + "collateralAddress": "XoTb6XuYMusSbmurjWxifAi7pwnc3sZ2GU", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.145.217:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128237, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsoFEaKr2nCRiPsZUjgM4FoXupDgAMiUPP", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "86760997ea6eaaf5aafed83570f82dca989f588884798154649f249e8c1b182def2d00fc1ab9097fdb3349f817a4724a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "638bba4994748ff337e78498becfc09a8c2a72338ac47e0a0a541e5cad02edc5", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 28, + "collateralAddress": "Xea7fGb7LiMk7jBcfV9LRELo9BTFpFMBKR", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.145.160:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128243, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb1NzsFax4W54HzGzNVbGsq4zK29Tx3Urr", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "12931488e490cafae2e8446ca9304d4e3a040f4a5fac4b0824630d587e247237a27b82b57f0d6e4a545175be1f372698", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4340c031bde9659839661f88f57b357bd35e5ab5c0607a4ba01b0ed372ea78c9", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 115, + "collateralAddress": "Xv2HgdcEMmies19nNppRWfF2rbzmdbjRzc", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.128.127:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2127258, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1662444, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xywz13GLqGTNJj1a5DSqFcxMYrzVbXd9Wd", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8a85de1ed29713a65225b85c17e7c34e39657b61a65a77659674b0c4dcd532cd328a83ca38b1aec68ca4ae83bf49ec25", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "5439f9c15fa28e81aa420948f6161e6350123615a4c83f69cc45453c14ea2aca", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 58, + "collateralAddress": "Xjzw81ociAQ3BzgEhfNSv3W3m8cjVvkGET", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.130.123:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128246, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv6pGNVEd8nQTmRExrvBbEqYdikxPbkoGQ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "059b8668350928d46a04b6923c0c9e3ac75db756cc7e8511d439000f55b007d05f45e9a44ce870ed893a1ff7b85b70be", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f938c7287014aa05ff805dcf2305101cd6a4ffec0dae0e91fa29c41ecd6b3fca", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 129, + "collateralAddress": "XxnmC4UF346thD4iwzfuF5736ivC81x99W", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.177.137:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128250, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo9wGTGC4AQHB19uh1Xq8yoJN7ejNP2UTe", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "90b1c6ab5b4091463f05839d5b0cea0b9f9b80cd1de90d983d8c25b5a18920f1d57aa12d6bde210b15709e607af793f1", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "00f2b6b872a94f92d8e95ed4d61110efddc57d2b552a33bd7748006477da9fcc", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 86, + "collateralAddress": "XrD1TwRfotgRjnVrFpECaYCUnnQuKr1MaJ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.135.69:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128259, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw2ZrsouG32N8A8QLGxH52RFx8Dg9xEn5c", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "19ca46b2ee631b735c7684c80b1070c71e36a2a181c76780bf79e64de0c866657601d900005753caa71884e57943b9af", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "077625355482b81591f0ac7225e3dc1fa86b553fae16a22b6e081f41644c74d1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 53, + "collateralAddress": "Xjeoa6aeRu7w3s6c9ZbMcgsZM772FUHF4g", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.220.92:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128263, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSLishYKxHhSLBwJMLEjVx9RWm8vzVHfD", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9393e1ab799bce795360dc53d1501f678d4cd9b6476d3d222616fe3ca1b33b0ad1d5fc82cb6306029ad94f586b0c2598", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1fe40a5016176f045ed97ede2fdbb96e0e8b9b48a3ded4bed54362512a097dd8", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 10, + "collateralAddress": "Xc9Rfr4UaZW7fjGddxdUQtp4yhYQZXF9BD", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.141.238:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128277, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XggjRUHGX3DvP79btCFBgt2RQxaURnLsEF", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "002705e95a6950a4b6ebe0b28a53ddc513ce484b0bf7bdaa435317ad758b871b1ac0c5ded506a8555c8a447670b7f64c", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "87d2c030f930329b3b3cff033e269b46aba863be5cf4de2a64200f3309d8b2de", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 55, + "collateralAddress": "XjnRSvigYuk1b8a8BhTrzZ6GW2NJwK8F6e", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.90.201:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126224, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1358673, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwPv2PoEMkPJg6H5fcdK3oFJmaUsTrZvfx", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0bff671e8d1fef0205d13ffdf690beff70205d509f0150f53e5b59928f92d28825184abd59162a04609829ee5c2a016e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "328d1621011959779b43708b0a7285a5dafa62ada2ff88cd0b9fe865fe46bedf", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 83, + "collateralAddress": "XqhDm6NfSu9WjahgWGQfkL5AnwkRgKFy9J", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.245.11:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128312, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiunanQZk9QD1Uu55XpFzDCvhAeyo9ga6T", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "17aa991967e33a8346c2d6675ed35be9ee3651f498f2a7433c35e28693bac644702dec24a529e2559f4fd828f231b6da", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "b8b718b241081b5d3d9d15058bcb628fd5fd97962ac91ec4a4772d43475439e1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 69, + "collateralAddress": "XnCD13ytRmY7bjJ9WZgfyTfbzyAXqUcG9N", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.220.160:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128331, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeQMont1JjPX8au2yF77zAnaRhxLsxkSjK", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14177be53010ef0e937279a4e52bf4eea02376b03f607a236d2d9212b934857bc594ee4b49b14667a2df56d396fd4278", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0092aa49ee56297a47a5ee6dccca746b58a69f1bf9a24e3e28d9c1ea9bae41ea", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 56, + "collateralAddress": "XjngkWUSxShyubY1aopB1S9UgoT87jfufZ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.185.232:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128333, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpm2QENfE8DaCcSzP4GYZCSQoZheK5EKrv", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8e00d2d4a39542893170569af159f32902996627666e690bb4ef490eaec104642bf188de0b52f855d3fe4a3556e79641", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "113673823cf38eb56f30795d7f830b2d82b70a35b96812ad79d0889465b69df3", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 14, + "collateralAddress": "Xd333Cv7C4P6Wv23Qap6DTxZUwdpjQmHxH", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.133.79:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128346, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiN4iS8a3iwiBFmb9nJRxVGeiBZzgAFCbK", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "85ad14e96d0397bdfd2d654c4ad56dc39027ee946501d6ff66e4981d75a59d9bed8dc04ab79a320a4ed8c8cf2120e2c2", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "2292551a56ef040d535e8c541e144d601d4074187b23049be2f2baea96b871f7", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 52, + "collateralAddress": "Xj6MhKJb2L9Vtwnc8YzGtox71JWsn7AWda", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.56.203:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128365, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdnL32cUCcAxJL5q3xHnprZEWJD4L81bQY", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "821157f2021495b66afb9dc1da2e10da30e779a72c854c89fd04652e86d65879ca88ba0332dede0af819a976de367ff7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "3eb9c1ed9c0f29a17ea3adde6b7de80f6e60157e9ef6a7b9b601383f691dacf9", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 42, + "collateralAddress": "XhdUADxNWn7agH3jNdXiHyBokVowkgbWrS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.229.197:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128366, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XazjueVCaxD73UYZpDga75f3URYaRHRm2X", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "10f24ebf183e159bb80dbd66b54ba52933212eb70124def47ee601b2edb974fa24ece5d802d430efb662207f53e7d82d", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a4c23e2ea57b34e5b6e46c29a392842f563f683751d3923817b22ca7232f86fa", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 62, + "collateralAddress": "XkxLpm5EmDXYVXGne26NN3nVp13n7wPuLM", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.243.178:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128368, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLWAiet2HcgktPbaGHyWBrFnHuLy2RrHr", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "81731d9540648368800cdbb2822d03c70d8a205b2a4a3367e75484fa3045b7bfe0afab89b849a85600ef7692e8581028", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "91b4bd0455e19dbc979827101be311c9f380a7d87e5f57a43c5550793b329cfb", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 135, + "collateralAddress": "Xyz3wYUadp114GqhkTU4o9tQxGNmQYbqtD", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.4.138:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128378, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XttdUQX9M2ywyAhAgLaqhXKUgQoD7wEAeQ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "955d12f249a21dcdcbfcfd6a2ebefd567d5899190e6b78d1465b24da77ad8d300c7096dc93b572353229c00da1a86072", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f4bf89c45339c421c42dc7aad697d0d690e5b18cf7793be6376cb9b03df36501", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 68, + "collateralAddress": "Xmi75zevDufxDx6YURvDxYXwcGuH465B2d", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.54.127:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128054, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpWro8tG3Ar3tut8nPxpu1E6qtyYvH78SH", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "108e9c3b8b2d430bd38530cd5d4e947c9e2e6dd2488a2f1f9e56a8038a5a0fb03ca0a493debef66a7969f9f5b9f43393", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "14629366ec5807fa95301c0101bef6ced3f99dcbddcfa61a50695ba6858bfe04", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 48, + "collateralAddress": "XirQxcCWB9zGZRttH7CA78oJ8C4XrrEqeg", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.192.108:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128059, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfvMPVWWUTWNynJxuxXCmBeg14we5Ec48D", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "849faca1f36b6a3eecf204bfd95785d6cedcf617eee22e75b23de5b3ddf9dc9a7a742604eb23472f84dff13bd019fc88", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a64998c3e81c6fb65d1c47a763c65af64184da7fb86ce4cbeb2dafe047d23a0f", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 84, + "collateralAddress": "Xquq9XWQ3trAtqc7Zoe5N58sDCWNVWdKbS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.129.74:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128062, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xusp7xDeJzmcoYfknG9QRXVtu6T7TsrxpW", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0edc94cc79be298b47bcaccb4632e890f84b5aa8773f1f90c454943a8b1feb6b312f369bc519a202bc8579fbc6c93705", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "c410d31c1fe7b902eccf905b54f4de17bf64a275a63b81d1424b7bec33097613", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 128, + "collateralAddress": "XxkwDGrF7e6NTb9nyuwMA5s2UTAdjswTUp", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.143.36:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128066, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvbQ6Z4ugoYeJzCGoRMFThxpKF38amTAB3", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8dd1a0cd750775641e714d2269c471acc78b8f1529035954afcbee56a1144bc7da09b7c965eb75116102bba05d338d21", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "620c54f3e6a1235f0d89f9dcc9ae88487d6e5aec4cc39af217c164c4a51fe817", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 27, + "collateralAddress": "XeZQGxr9k6XrYbJsqCsTaJGBdKNAuV23aJ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.83.30:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128070, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbJLxUiY2TW9o1RbFTcGka5Ma2yrfReDvb", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "84e1a8e8d3daa0e20c0baf92a65eb54be3dee4368a91532a55ab7fb506f186874f15b9328558c6db03ee8e7cc725044a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f160596cf0924886da667794d850508cbf3fcf53f2c87c863960de318cab201d", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 131, + "collateralAddress": "Xy9xuGRXkXMdYoHv4b8G2LS2Rw4SXz9vx6", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.238.104:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128085, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgkSwxoLb5UgNTyh6zJwSfAcLzWKFrLtKV", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1408e5737f04d6c4c31d8aae1e25b9da31d1d7ee97d615534d10bdb721109e579a423e74c8fb054b393b07dfe2f8561a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f316063cedd42c61e6477305fba3e42a55d39ac09006c6c2d0a0fc52df1aaa24", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 66, + "collateralAddress": "XmCfLAx1yXtLR9UmKHvwhQBsEF7msjynX6", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.134.134:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128088, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoBDRXnJpCTwXSzMerMXctUATvxaA8g4se", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "944ac12350a42282175a0d45517ae57b3bba09c2c2b0ea42fa98861606905f1a9b4538d435110d421ae07a2eb31434b7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "5b8104101001bf53cc9e639e874cf9442e08e90fbd7a107f9ca7b1a5e9923125", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 85, + "collateralAddress": "Xr7WwBztjaDsJ6b9xqLntkhgF5GcAuth6J", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.126.185:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128089, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvMM2zp8LjD5wJM7Ts5oapXy9crmD28tiV", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08351bc01f104d1538552ae1ff3398b18589d2abaf2a2eeb3b0e28554b843a44c96e63afbee7773507b18bde798e6dbc", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "06a1812bcc3d33e8169eb4a8c1a2d8b84e0308afe386b0c4d6b4380dcb15e425", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 59, + "collateralAddress": "Xk1J2D8bNGKe1adkcWg3QyQXB2eCVwUBGD", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.135.8:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128090, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd74NT9qhhCLuR65opkGaJvSGYbtwYJqVa", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0ce3a14571a4f84121526fe37d63660cb3d7640f39b8b3ab6411206b163fb2d3b65f166fe29b30ebe05c99579160b627", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "9389d805cb14e9cb6af5afa7c75136507a4a42e1e5bbffb6703dc57ed10de429", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 57, + "collateralAddress": "Xjz5vVMSVhPhg8NrQZRF6NP2tMiC5T4Mj2", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.135.18:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128093, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwFiw1ux6nhcjCkss6vsti6VFYBS3qirBP", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0cd5b8658045be39573d1c4f72322a070305a3fe068830e20d5e8c72b63cd2ceaacf741183c1f8b09df75f4f269824cf", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "3ad66c847c92081a6eb70b158a1e85c206476e2bfe8215af340468245f9bb62e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 2, + "collateralAddress": "XbNUgcoLP6oki7YYXX5gRKtvuHU4bntQTi", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.253.60:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128095, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyA1tyXxxj7GfKs31ynzbdaV4iiF5ZZb4H", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1459cc9a53df15fb70f64268372cebafc62c7f65c0e7752e3825447076422b892d056c1abb54b4143b0939d9410ecaa7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "b1b14c7da5f385ecf87743df0f5de0bd63d8b7acda67c9f60b2d4fab0afad82f", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 81, + "collateralAddress": "XqSjqBcoYYeVrXyURbvZ4XQybPBuyNMuwq", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.200.247:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128096, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjnFDkPmz2fi7BXuPZVC9Gv4334xhuBMiH", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8bebcaad243b4350c08e9a448a5999835dca4aa8a446b41822ff9a6ed87733d2a47d8b5a54c9fba46f3bc9c15ceadd59", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "687555cfe0d10e48647c258f95ec4af561dd8222a286305fcc346074701c1833", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 40, + "collateralAddress": "Xh9mPMSLGxuXprNFTpsmxcqb36zM3JdsAo", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.68.85:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128101, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuwGVSwBcsKwuxqvruZv5ZF6G6m1Yz2fXt", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8e62a98da16cb5c3a9812e4705599dec5fb24e838bc391ec14cb3990a3ec33777a6eb36d22b3b603e6073252c0efaf06", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "41c38e77de66d6cac56305931f41207caa9062d0334afceccce7be20fc6ec937", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 5, + "collateralAddress": "Xbdc2ov2p8Q11PSSqiS1c5Fqr8ecspGKgU", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.103.216:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128108, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd7awvpCiTQqcMmu1jF4ZDfWtohnwmB4vr", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "93d82f1b54c7f375f2017da5e0b2c95851a3d60fdf0b7f72852f7cf25d5ed9b7a248055c622bfde0c5c32b42d802aa03", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "d05a3532ca47cd6ebf5e55e720ab4f17d2949ccec2edc0896a9d00086d31dc39", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 121, + "collateralAddress": "XwB66rz1W3aZy8eh9M3wVevBp2r72p9qZU", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.151.173:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128109, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk4QLqK3PxUDx3j3rYmK4DeSPrQUQJEyAV", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "966b287fc9e1872ee6275789adcc58142eaaa6e81cac7603f03377c192b7a550088e2540f24595dbff547503ab025095", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "9e330afe6bc7bd455f6fc516d23ebb0362fb6835a4d9f29eb849089c8386d23f", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 73, + "collateralAddress": "XoGd8Mei4hUEE8uEw77FcTq2Jn4o4yxaxg", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.143.214:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128111, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XokNfmakD8uLzrKmzRLw52RYBGPjdWtrfC", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8c8c7e70d9fa3b9db4ab764cd610cf832d98b5e736ca7945c8c38cecfd7e2b0d40337113377ce351edfd04153fa5f856", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4195e017c05ec113b99cd79011ed8bc4c4a4f33d797f0eb1f0d66cf093b18b50", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 23, + "collateralAddress": "XdzvxHTghL9VPLL6zfRtQ8HSvj9f8Ah4P1", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.234.202:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128126, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XymfTVPs7UEBfvBBjJSegWrHpFNybZgnW1", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8a530583287269607fa22ccf8c8d5098f58dcb95207c80f67bb7fa20c4318b1470f5cec2ab95cd1be116a3a54302d956", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "44fa685814db99da7b868bfe891f47acbbd45ef72b30b281d786ba174c04ed51", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 35, + "collateralAddress": "XgPocq58GmJnHfrakb9U6WV24kQ8g6qKgE", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.136.60:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128127, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfEv3XcpijFJcGXqh8vgKiiwZeRYXgJCXU", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "04abf5548abc72627a3ee1e73473d7fe202ac331c3cbfdbf1d605d474988613bc2aeca42d14302e3c3141816da461e62", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "41b06ade71a9e4e27d0f460b097ed9281e2da0d7f4b842b6789d2f2fc8fd7352", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 6, + "collateralAddress": "XbdspXknCgQx43eSDFTq1PgbCzav3QXkWY", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.212.26:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126536, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463060, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbaw3zePBCFXa6vv9Gtpe4AiQR7uiZhC1z", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "93da0cce18d1f400b99401fd0ae4457f5c088a530d8682364a135fac474e3534125d5cad995bf55eef7619f2854f55c7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "e38b61443669dfcaa82b33d7f09a52bd14d5e282fc814c4ce47bf6c72ced0f56", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 101, + "collateralAddress": "XtTkceFpwqGfmHcF5DDD5HpRWjRcqCXVaZ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.0.187:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128131, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp5J4DorcGKpWjaZNA825oYQGaiUf29zDq", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "80d8f28eed47b184a310b4511ab3fe0f268809f889b5360967db46038bd766266c6afe5fdb28893c302dd85a8679fb28", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "06f74e4cdf74168f413a088f1a6d931344eb9b7aae536336d69f9c810dbbe656", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 94, + "collateralAddress": "XsQDdSK5RK1ZqyZVG4XB6kWhgEs8RuESU9", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.137.173:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128135, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xef9PuMrTuX8i1ADWypXXCVShabJXLuhea", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "17060f42bd45bd22f0987c9a9ea4ba27d5ee9e290b4839eec76e30f61058020201dff07ba599004f8f9c6f95db761d41", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "7210495b516368226478f663b17431de166769cb772200148a024e76af9a876d", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 32, + "collateralAddress": "XfTrTbv8t8ouEq6rshM1KHCGNfw7agTwQU", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.146.67:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128150, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhghSv6raoE5QVKY5xjSSAvQrDYPCPvkxk", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "12def622424de9e5b79682514a9dbf796021b92f537b1c0ec7e723c123eeac5f7c64e229bd4dba87fefb33d287d3cdb4", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "c5be5d0514dd5e0b14ceb25b6bd0edc960bb24ee7a5a32fc79de24c4285c826e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 88, + "collateralAddress": "XrU2JfHx3upSf2JXbxd7xXUsrw3NrYXWeF", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.130.91:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128151, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtAMUx5cP3gFGKmvbZtbtWLSBPyEJkTgEo", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "97e2ff2d938fc71b2109ddff41fc756e9cc21c5ef9193a9b77c363c0de6e9e72533c1d9abab56d551613ec1e8eafafe3", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0f1dc0c2dcf9b0fc6ca4aff85960c14c7ba398dec96acc6dbb21133ddc004371", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 130, + "collateralAddress": "Xy8vypBDHNTiMhiixucxfgr15urgK9BnUQ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.140.126:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128152, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSUjgUBngFtzJMyWnHnP6A854ryFr7Ym4", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14e3855dc440dc617e3f4b05851f4152ed7d8c7324ae3080af5b5171ff8b723ed207127103e6680ad6639cbc651ab3c6", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "74dea39a57c84f1ddc1b8e491ca2736e2ccd3bd1b827a7af759b157f429be873", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 8, + "collateralAddress": "XbgXBLYB4nS6WetDxnoutgxv7EewXH7M3e", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.241.180:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128153, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs9rRmH6XoQn8GbEoJaN8BoQRyiz4uUhVZ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0ea292e690735a1b78cd7acdfade389c10594ef31048a3cd8fb6e4747a5a7aeadf221b49e398d23e696d81d1e3c4e73f", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "e6a0abd902755df0100f97b85b6214aaf6d63092d6babf14a61c97bb943ffb77", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 12, + "collateralAddress": "XcYDexYCzpY5LXToupaRWogKKCcfSQyyEt", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.113.65:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126539, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463061, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqZpuTgnR1mwiaLQjeKmfdWr2pm3qnXgZA", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "93e38b5afa021b5f2826a4a9577c154f8f63558521636053d74297a7e7030ec86792924513dfd923bd8f9e25d09a2244", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "0f49402a00bd7f29265aa3358d0b2e4d4e7d4c5b20be8e6996bd0a60baba5f7c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 72, + "collateralAddress": "Xo3Zpz3rVvYBK5cZzgeit4G3tdZf2J3RHu", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.154.12:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128156, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpw2vHqZp95Kw5sraKJSyXeSgs6PZcqGSX", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8903f7ec225a0a04118095d41cf6dd4be37ba7cfbd1ee67d49192c7531320b7f7bdbe3b6d6ed55975712b18bc88b6fb7", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "8b20c3e31b9e76b702635100de5c10abd4275037cb64293bdbc010bb2562cf7c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 109, + "collateralAddress": "XuKppKeTCj3MA7EBhQZgAV43uoqkDmwJmP", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.67.30:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128160, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnPVW6vJinZUQgp63GyAhZgdXGCaUnNXxY", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9424f4bfeff28f897e59ca7f9ef439c39ff444d9b5dc9197a6f3d1a9127e49e09a3c83491c496597c0c017d577410e55", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "17dcf3c4b4a2857bdb7ddd73753f865af61f3f6f83c55a241a78f4a29cab4580", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 60, + "collateralAddress": "Xk43GjLxcVgkiZbc4emmZP1tpguFAmfvKe", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.147.169:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128683, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1357295, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqMBwRAdpgXHgy9zVC4sW1nsCDXtpMmdUf", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "904795005d1e6c07d5c18011a5c65fe476d0255996fd66cfd74868ecffa1bcb813b751e44322d710a7d0270cedb1ad42", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1ff17a2d56a31356eaa5a54a8ae01eb9359395757627b77be32b7b2c6e557782", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 29, + "collateralAddress": "Xebmhd6Jkc7yxxYfhfUdNYU8iGpu9pdx9y", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.147.225:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128163, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoyVdQYeZd7ARTq9ncNtEhK4b4tK7q8UWL", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "13280a689acd96d3431cb7c5f1956f88e31c40a3d6260e20987dd4b896b03263e53055d5b6ba035be03637f2ab39841e", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a388a5f05b7825325610b82382173312c5ea0ec4273e58d4d75d6bf340593286", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 71, + "collateralAddress": "XnwDu6XEk9j2WWixrFnnb3JV1L7BERSxXE", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.239.63:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128165, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XehZJZxdVcXoSd38fVEBbnzqyDUJm1dAu6", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0f45f06da766fc716a48644fee4dea02d40596be0f4e3588478accda99bbbab4caa0fc5b8d2b4942bbd0c2a35c6b73c9", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4b77cee8f36507fe1240a593f1a67e138f771f2c3b3a099e558e7c69f1070d87", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 21, + "collateralAddress": "XdbtYjUgrUwDZDpUNNB7XmoFECM3nHoJL2", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.129.23:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128166, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu3bGebZnxwy9bMuDQzzHNpnR1VcTdW7Hu", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0d0d8dd20168c5d3e78688faac248bae99db5414c898ff9b02047a6beaa261d877f9c6dff71158dc4ae5804f470a203b", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4209cb9f4b1c981d914e508d135f2b14f89bb0abbe3bb37409512f3fb513d28c", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 74, + "collateralAddress": "XoNfr4rN4ZNvgEbf7KypdZno9JMBQHczrT", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.134.37:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128169, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjPFW8ZAusbCoWkHurYtwa7p51e2o2xQSb", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0b33e2ac6a785c09a6d93b7a2d873f0551b5cad6d4537f90851b07223693368b4fde44ba183417682b511e594e07a9f1", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "d30c12b6cfa7b0693c3926b1b7c50a4ca912b0261dbfd360c2015a54f43d9a90", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 123, + "collateralAddress": "XxFzD5PLN4xk31CgGgk9isnA4WnyuewFfX", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.223.98:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128170, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfmKMHeAJqRKX1pCS7MjZM4x7DXrQVNtZ3", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1196ecf02128c5b910d0005a3f488561ce4bbb1705c59dc5252b84554fc00aac7ab29ba315f9cbbae1d5e5039e5dafc9", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "fe30d7b5fe48b54f83d69ef9f916c2dfb19fd60743e88d838de6524b03a7879e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 97, + "collateralAddress": "XsmyisHNVm6FogedPz9GUKPWy4BZNZR5Pz", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.137.45:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128179, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpkq3GTBJtXCHe6Kz5qvbNskwXTGSt7MpY", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "974c08f2bb56045dfb040c22ff4f66ff86f041c4bd1c83344c8dc20656365b600826ca73c8343e995185f7954142143d", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "321a1300b3ec63b3082d1626c7377d3c9e4e332eadefe12073f5e17b5099a49e", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 26, + "collateralAddress": "XeULejnoXzAWSWey88t1cXMMTQGqc1T7uX", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.1.166:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128190, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpH4wGiQUs2GaBtRFffsnpYR1GakfjgeAY", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "87dd99ef73c084f3a21c8cbdf2bf7364deb8f08077f4c1e6acffec4f4ca8f6a64183ddf98ec184a667f83e0f804f0b5a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "210d760dadb59c94fecc8e96a6d1c0d812c4e31d7a408ec2e1ddc643c22126a0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 54, + "collateralAddress": "Xjheg4923SHUd9qFiGeLfPVYt8JPfjWgvn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.170.241:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128191, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv2zMNpuvjKJLZodgUk7N8NqYYWHryMG8h", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9710294871d99ad4d6ed0c7bf4a43a43054413e4ab0bd5873291352895ffc5fb6a5ce877f274c1b878a4068dcaeae66d", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "02e8a113c2de4f0db9c0fd8b205f0851a134fe5d08d3bcf20049e6d751afd0a5", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 20, + "collateralAddress": "Xdbk28iM2LVKaEC5FN5TAtpas3kze7DDTV", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.234.148:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128197, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwMogficHbo2yo2bWyrRgT1NHWtMfrePiW", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "86374b08f04af35e872e37c5e1317ba99cbbdc28ce80ba68a4e9a1bb7f85d07df453ff259a9f409b5a57f93201899e6a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "8ecfa50e623f3aa3630afff4bdc8eb8c83de92d95c0928df263fba7dfc1fada8", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 126, + "collateralAddress": "Xxi32mWyfDRkit6iPq5tYhHdha8H2nEiX2", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.178.166:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126562, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463064, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbaTodLKTGkUxZjP56VgSsSsis9Z9jUVrV", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "824d13f6a08c4c33b0a75b67e64c8e62455fd2b1f24f13d10c8680e33be51e3e9290104429ca503e2046d5c9884abb10", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "e38c4f4058c1bd08472544aa642af01f10960ffad903439bb5e64d38aac7f4a8", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 108, + "collateralAddress": "XuKmjwyAE9bvoPXBBMCfLHNhprLTXJk138", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.150.74:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128200, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyzwP3uVyHRpywJDEhr2P8cb7konNvh32R", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "124b5e49fd7a3a98ed9abecef8c90d9943408e90961ab48d285e146825421dc4ac0cd16b2e3131473f68ffc0d2a15578", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "661aca313e5ed1d3898ae9eb4619656f056462f19ec479649af145e8ae7e1eab", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 107, + "collateralAddress": "XuJk4PmHSVPv76JKpuctWdY8ypfd3ko5q3", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.139.231:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126549, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463063, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpaDiWNQ72ePyHk9q4VG8boy4LRn7nTYbT", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8bdd8ed011adf4dcd8a012130bac2e96b5f71a81ded67b7b335357ab2a9a26acecccf108d9bcc1ebe14e141b0ce10408", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "88611d51071bf30b15db0a68ddd292cef0d1bf22d76db7a3db0d26e4698a89ac", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 41, + "collateralAddress": "XhbNVtAdEJJKHHyWiDuTYTm2zabfDN4WSz", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.155.151:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128203, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnfFBiSXqiZTt9AiQrg2FuUudKsa8CVVeD", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0c1344cb79e5f6f5ca566d6e28a4fa89a43a37d06af20f58bad3f699a55eedb470d2f29a8e73f0fc5d49bb9cfea4913c", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "b2d19febc5c05ccf25b14c68f41c17293e29b2acbd08584e7371994a9e07b9ad", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 31, + "collateralAddress": "Xf56FBJG8Uyi4egL7Hcr1YTWqpfXVez5pa", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.219.186:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128204, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xioota8PbtHhpQk3GVrCwrbFLsqv97yMjM", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8dc3e7774b85393bf92e021ba950ffd0e8069af1680b9efe9580ab8db03c5937ae34e3c9e7e901791f418999864262ce", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "675e0f206a30e6eb2540dbfacbae5ebff7863c6b5edac59fd58caff7c22e90b9", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 43, + "collateralAddress": "XhqBn8eW8vSLssqnW3o3YFp4oLP5WFNed5", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.136.138:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128214, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxwzpj85H4iZJ3esi2Ysd95pV3pNrkPXB4", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "99c85c681c04c4b8e3f229e189826d1b30ada27b8b0b585b683e73270e6037b72320edc6bf067003c9387bcf0655c13c", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "05c7cf06162bf490de5e5335109747ba5491801286d9796af4679a49db6af2ba", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 63, + "collateralAddress": "Xm9b6LVYLgmCVJfCmgDxzm8PrnaG45V4Xn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.104.151:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128215, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg1vSGPrpcH9a148trnuHKupcqqEL5vU8X", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "191122d7fd5941dca12b2aac1dd6fb525154ef6da47897ac8de2cb6fa3112a11e74ba5be1eff1d72deeeec9a1a7fee86", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "1e1be260236371bf556d6c1f7192459a7fd2f5a764094ecba331c8b27e9d45bf", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 96, + "collateralAddress": "XshFXokagecoTzFrbUYxy4HUozSmSTkGgM", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.110.74:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128218, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc12ZkC2KEm5imNmyzagVpyArczVQsavUz", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8be2a79bfeee8b9a61ec237b4462f2352abced4c980786da36336ec3565ad2b59ea42dabe110f832af0abb8cfc76fc3f", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "2fd9481a5bea77af3657415e13358c2a58b2e32ed8ef4bc8c14a3a4e15d776c0", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 16, + "collateralAddress": "XdEjayST3ByiRMfDC338GUQRAnTfDWLwZY", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.204.148:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128223, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwNx896YKD3DgNMQofTHzuHVEEFqKfXDYC", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "14a1afe3f5367e9b007f004668385f981844af7ab105b33293e5aef00277c03e447034b5472dddf2207640d42a502467", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "647e0abbd1e957e9f661d0c3c33f898c3ef2c8c014392da438331ea3257206c2", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 78, + "collateralAddress": "XpSHfrGMHYhbDAhDezGscDJQkEK99uDdNb", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.153.43:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128228, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnbhp2C1QTFTNqfrDabE3T8n3CeYjVZZFJ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "0c2afb6c6543dc6ac1850aa27d615b065ec5d28220f7e4db5e7016af925fcec531a3c1566edbbe34f903b9ba4046c8fc", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "8f53afa39189ea0702a1d4577ef5a767ca806aa6a6407063b528d72cd48533cb", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 19, + "collateralAddress": "XdbV4qKmFewM8d7MWd1fAeGG42qbMZQXxS", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.52.8:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128256, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhbe8JHLSiXPVGhXyVYZzC9PXDnBqseBq1", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "9223b9db1eb8282414ae231d944a651eba3932cf87d43de3944bf5b3ce423a68b26686a9d7b89b6b61d2799b7e664b16", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "48799deb5fe91024cd3ee21af361a4669d9a8dfc79dc70215ef0de2b617db1cc", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 61, + "collateralAddress": "XkTs5kx5umCZMGPz1mfy9VY1RZG51mHuAn", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.134.140:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128260, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjBY6YNVSsHsjDeAWibsAohYRC9fo6HMS7", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "16c265b3a81661d3495afdc7a6e342dd5ec33db8dd403208d048ca6a7a95734f97b8c3e8d392f9c4625601e32f15a4ec", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "088ffae1e31f2cb4ba4ef786959a742f33dacc2b4d06d41f52776a8db8c4c1cd", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 110, + "collateralAddress": "XuNwzK5X8BXTWuJ3DAGb67N5MyuU6EmBKu", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.108.248:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128262, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx2CWSLeeUAYoR2JV2ykKAVcJtsYM7Vy9d", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "127bed4b5182e165c5c0b85b509280171e70392782128681a1eaddfaf61c69c3ace9ab035138aef51ae5a1b420585ba8", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "ccc1c65eaaf33b5f1c837766b9f57d48c8b4b2fbc2424789ff24d88a0cdf8cd1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 46, + "collateralAddress": "XiGLG4J8MTV63f5wWGdhyTJ241Vieq92US", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.147.207:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128427, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2000785, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsW1CuzdwJ6DPd7qgHmxxgMgFcG6VBRT4a", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "92cbd4d603e7022a4acbd3a90d9918897ba4c227ab3d3e2351d72e4da8da6b8eca92703d5630b7e3bf1a1ff62dae4446", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "c88da71e9e268c7931004484349a9f992eed37e600a029ece4770d9d087361db", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 18, + "collateralAddress": "XdSdjB7LJc7Ck2NU3HxEsSJKRdzLbwWQWC", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.201.242:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128305, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcLxk24ZbsURCaErs9LXUZ67srkvoeg9i2", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8add2d567705dc20ac0fece29a6f0b82b32ff33e339a107ea1cdaa770cacd2ce6756e4d13267bec8425b124a73be5449", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "911035d61214d45463c6cd645fcb729662e85e4c94103789289c52142062f9db", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 17, + "collateralAddress": "XdNoHB9qEKk2XQMgRxLxX6vnnoBov6m1XN", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.152.91:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128308, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc81bERDfUsDnkWvFSj6SNQdEqa24EYCzT", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "131315d1c2bc8d7c55b25d6d3745d32912243d04303fa684b85c2ccb0b858a3d0422b63fa560096e80a605018a48b0db", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "2833ec6e1f256e749bd53f56e444b28cf1d75a851b123fc32089bb58249e9fdf", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 24, + "collateralAddress": "XeMc8NY4zL8VEouLvKLgSdqx588tLCCFzg", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.251.8:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128310, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh3iJLvsjvxW3K3JgNKCWZ75tXk4qsj2hd", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8dbc5b95cac2f4c293ff3de5da731c88bb8081faa856e751d508253381ab3447b864822edfb8625db74a883219bf4e33", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "288c68e4071a57de806535a933794e1c356a2e96e922584663cc84d465c14ced", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 3, + "collateralAddress": "XbRch2nJNWY4WKX1xiidWpenLKDZoFuuHN", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.193.162:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2126542, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1463061, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs8TSUfN19Do4GJCja1JyXkus9yQV4QKcZ", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "18627aac9de77e3657fc72b08da421660e9bda8e1ab315c9c416bc1824c131fe9ddd4d2401739aaa318b31fd88aacced", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "8828c3d3ced43dfc2a6a126e1d46d45f645ad76c6619e7cf6c449840f4e309f1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 113, + "collateralAddress": "Xuqv8n3kYLX76JVD9zyqj9XJ6ppigZXVWZ", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.69.81:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128342, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhEdEcCzLEim3iAiUZrdCYhBDo9QnkrMUp", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "131c94dad302899484b4383425a4a0df7aba81161b9ea099d83b3b716bc01be0ab7c3d12b39222d0e23985925ff4dba0", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "d61a8b3afc985f6217688ca5aa147d3388a48c88bdaff462e2c7ee50fb2b71f1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 80, + "collateralAddress": "XptMhEuZNYfuGkJKkpWSqxaDhrGnSrPVXe", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.148.109:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128344, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrhrWvsAZvvbWT8uBAfQmPCoGd5dM8DDxu", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "1090d8a95dc2c9ead7660ebdad5337079bf5411a0c12326da00dad4ac4df84205b79ec3e2519108b2f9fd51c43cdedcb", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "fc83e0ae94fcfc8e5f405bc8d9626fb708de826e1eb8515d5ae6012ea34697f1", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 50, + "collateralAddress": "Xj35cBN3s7QjDVGTSXNjJeUcm4eKFcL9p6", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.128.182:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128345, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdcLDbXadHLHYwfcx8kfEow6qRdp8GJAQA", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8e32b8ea553c1d709cae533aded96c9c598460b20ed8c251653160abe5bbec8f3aead4ee710fbd3994e8eb5b8948ed80", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "f5e6247ebc7280b794bd8d60df7846e6a6b99810a6eb913978ee3d796e43f8f5", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 95, + "collateralAddress": "XsdxZ74H6gi7bsGPdr2qNFS9WN2jeCSWDM", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.134.65:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128355, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw4NWamkY5gvdJdDECPb579H327gshCggi", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "18e30d26526a097d7e21c0324f17927b42eb260c4cc04a25f5acbd00f3be4c6f0716ea281dac58274afe266c634cd25a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "59f02fe0f046de2c62284e31ec54c14b8ee3935ef283b1322e3635fad45337f7", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 38, + "collateralAddress": "Xh1jjZu4H6cEzWEHPze4UwRgGXPEG7kAh9", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.149.162:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128360, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xij9uvYg5KCYHmx2yHADqcePZguDCkdMH8", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "08fd72a2e32e7096be21ab42307d1086554f44b5fd1bbe04493d31db12691b740e2559359773f0198aba3b62d259a69a", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "529fe30a1b9bd33a6b8966d7c9f9808e17d68d9b77e25211c35774e5c2d3a2fb", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 45, + "collateralAddress": "XiEomR27PjXH7VLQBzJK9H7RptMfk8VYso", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.131.215:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128379, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjdh32G6rX7uibPmTuSmj3Wv4L1kShd8H3", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "10d9f66c670ee6498bf66680c28cb763fa79bf8b30b17492e4a597697cc9044a058365fa2d5b20416b3d4641735eefa5", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "4e6f17b1b47212015fd9b4f6c867f502fff3446f5373bad706937e5c7b8db3fe", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 125, + "collateralAddress": "Xxgogk3uKCCZNeKwYdhFqB1A5uR9NEBW44", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.219.93.245:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128381, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyTUGshzPzDTAzbeSaK5RxQXA6t2AHzusn", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "012ac932e4d5203a8170304db0c0eb8e912feb86a9bd2900ae09d0e3db977de521d2d555b8d246111f2b8a17899e9165", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "32b8897df248096db34c24bb9a339f38f2e134449d7f6eb1dda51e9d778fcafe", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 118, + "collateralAddress": "XvaALUWKjc2GEoM13eGXjbvYwZh7G1L6se", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.149.195:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128383, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtuKChAggUaUWy95bDwCFCeV2sJZziTtex", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8c0555e3899039524187df65f4b84c4f6290fc6a79fb431fa9aa7d5ba19befccbba17634d1cb761f085ccad11106ad93", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "eb846dd81c0d5aa7a86b3a3588583216e3cc43ea707b9e7a167739d4b1884fff", + "collateralHash": "5920640b0a5f73f5b74823bfb9ecf81093f9e73a7ba24d0d2f6b7ae3073260ea", + "collateralIndex": 124, + "collateralAddress": "XxMcNho1HvjeDg65yPgQGsZpRkqbdgsB4C", + "operatorReward": 8, + "state": { + "version": 1, + "service": "8.222.148.183:9999", + "registeredHeight": 1297962, + "lastPaidHeight": 2128384, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvng9xaDbgwPYxUMGZjAVbt77svWd8LNmA", + "votingAddress": "Xd1vSZB6uMgLEw9E5hGtvekH83xPBwgZhc", + "payoutAddress": "XoDo3w4ZUqn93uL3FeRNb9fgfXvgg7BvDC", + "pubKeyOperator": "8eea07e9f2876570ca89d250840a95451b074a6fe5ad1c6bc43554d4e48e275176068f5849688ca6e3441f70f25d9fb8", + "operatorPayoutAddress": "Xnem6ejaXAfKDTh5PFGSa9ozMQNMY6bvs7" + } + }, + { + "type": "Regular", + "proTxHash": "a24c0f9ad26c59542627de3ead75325c375c8187f95fe47158dacb8913896db2", + "collateralHash": "5ef6e914cb1af71cf634204130165954adcd254bec1439b42acea1ca610520ed", + "collateralIndex": 1, + "collateralAddress": "XqRE4LQE4tNHJ5DuneG3XWuC23EPzb4NNN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.1:9999", + "registeredHeight": 1298058, + "lastPaidHeight": 2128481, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoS9tFnggdcGszttDajtYVy6x1RtYBgEPA", + "votingAddress": "XfzSNQx9Ma7xxk936GT47UnDZrfiBDwSG3", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "8573bf0bbf0d372ab6a2d8e88ca7b0f3008be8b77ba30e86610ca19ef7718a5f31e1a7d1e07ad41697594cdaadcfbead" + } + }, + { + "type": "Regular", + "proTxHash": "4c86df48d7e2d47069eece948c335205059fcfd2588350d9df6d857e7d37c731", + "collateralHash": "3ca4eb15828091f5c5e89b6e23e164caef807676d330a8cb41cc3c123dd4a341", + "collateralIndex": 0, + "collateralAddress": "Xn7quMjuwYFii34NNBsDALk8GSeBhgPJ7b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.41:9999", + "registeredHeight": 1299768, + "lastPaidHeight": 2126223, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xek2fyHjCe9jyjWBwUCAAyqf883ceZTxbz", + "votingAddress": "XqZZUj4irZRKgeBXYLVZ6hqX6k5guT1Csn", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "9790cbd1c2d248c788ef3561022791ff06fbfd28ebf85dc3d97b05d7da02a6e1800f4c32c8a639c3379ffa525ea56f56" + } + }, + { + "type": "Regular", + "proTxHash": "4cac1d5c7267b3b40e3ebaed2192508d6e91d96212484c612678b4d4220bb38e", + "collateralHash": "785dd920afed4a2bcdd7651d7604a1cbe1d650fe0d24fd07074889cacddc0056", + "collateralIndex": 1, + "collateralAddress": "XuYjgoSESt75sdj9Ujk2cGAiy8Uaq4KQ94", + "operatorReward": 10, + "state": { + "version": 1, + "service": "54.191.131.64:9999", + "registeredHeight": 1304831, + "lastPaidHeight": 1719933, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1533787, + "PoSeBanHeight": 1720164, + "revocationReason": 0, + "ownerAddress": "XnHW1zxjVccPs96gxvMepnAChiKp2o9qiM", + "votingAddress": "XnHW1zxjVccPs96gxvMepnAChiKp2o9qiM", + "payoutAddress": "XtAG1982HcYJVibHxRZrBmdzL5YTzj4cA1", + "pubKeyOperator": "84cdd7483772dac81114ccb9def87d9d86f8203379483699b2f4ac85b41549ad6aa2bbf11a75669364a5ea74fa6c59f6", + "operatorPayoutAddress": "XhLMvSLzkngpfBrgruXuhsmr7baifatkVY" + } + }, + { + "type": "Regular", + "proTxHash": "ca597e6d95ebcd7ff0764196b8e4e034b490216bf5d2c3c37a97858715014f1a", + "collateralHash": "110c964b0e7f6978860072fbb9c76d407def85447efdbe4021dbf1825a81cb01", + "collateralIndex": 1, + "collateralAddress": "XqYbWAAoDyerzhUDhRT76o9hguw41Tob5v", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.3:9999", + "registeredHeight": 1311933, + "lastPaidHeight": 2127868, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs3igqF5Ro6dFnTXhTdCHEmUgfTHatawRG", + "votingAddress": "XpGyn1PESTwegCpY7cmB4M5iEZJ6zjp13R", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "072671c967ec6f0966e953a3a77d62ade443fb7e0790e5b27c3aa6bdc5ccd34b5b4571250d57d052c30b8ed5ccb1a045" + } + }, + { + "type": "Regular", + "proTxHash": "0ea516ea42dba2accd760345034ffb6b39e3c1c72d703b89bb6ee6015f175a51", + "collateralHash": "aa123d0591feeb58ccdce6305cc1be0dedd4ad67ccb77477a759f585b297c79c", + "collateralIndex": 1, + "collateralAddress": "XgSXoMDbeSiHPjCbLwMdmB3buh93tVJGRs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.46:9999", + "registeredHeight": 1314818, + "lastPaidHeight": 2127804, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976337, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQUbcS1ZTFo2JXS1eZ1JcTfptAbtzjXDw", + "votingAddress": "XiQUbcS1ZTFo2JXS1eZ1JcTfptAbtzjXDw", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "9125105d67fc994b282d59db48bb699e169f722aef252d467ebc428b57e4e31d5a409ce6e05d1d6958be2eff16a2a276" + } + }, + { + "type": "Regular", + "proTxHash": "974c0b88c255f58bc699025d4d4c0a9fc0df58bb3564b8c287c707f60e7a28c0", + "collateralHash": "fdd23a323b3a7635fdf37f2622cb25b73a95cfa041f60a8bf810e80dc767beb0", + "collateralIndex": 1, + "collateralAddress": "Xnd8vyS3kJsTVoczE7EAnLPPuLYfL3Ubmt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.3:9999", + "registeredHeight": 1315758, + "lastPaidHeight": 2127075, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwsYZa4XmRYfn29tZdAu1nkEooG7V6xkVo", + "votingAddress": "XpiJY2zEeUHhiPq8zPWcJUrDdjeYzZiTuf", + "payoutAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "pubKeyOperator": "0c656645c53c121834d6d055152dd1251d80bdc12c88f6e032d9f4f4b4f395b2ffb24278cfe6dc83fd0f591419b31f2b" + } + }, + { + "type": "Regular", + "proTxHash": "42a74c5f21ac8d95472fb50c5e05fe8e745a069987b3b33b6db99dbfda3f413e", + "collateralHash": "999d5a58b2dbfba201d4a4c1cf92c49ac2639a8f869ce2ebafb72c55b043a4c0", + "collateralIndex": 1, + "collateralAddress": "XvtwzxEEajLWfSVg4PR9Mrd4bxMvsQPVew", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.118:9999", + "registeredHeight": 1316431, + "lastPaidHeight": 2127511, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt73S7EzbptqZQxHqk4K4DMQNvCeSPgtq9", + "votingAddress": "XiXvAjyUviEMQ1fhboqASVF7rsheaQZXjD", + "payoutAddress": "Xmah8zbEr9o3wxN6UzHT1SCz5iAsFXS1iU", + "pubKeyOperator": "8e9a70232918b481c957deffea7cac231f29ddd6f69f532ffd9fabccbb844aff9abbacbc6267326605e06ad778cafbba" + } + }, + { + "type": "Regular", + "proTxHash": "41721674911fe602367c9eb9366427e0342fdbda88f0f70189284b37645a6b6d", + "collateralHash": "148df3511fda0f76ae09989ccfe875b5e6109fdb23bb47b25c25df67aace673d", + "collateralIndex": 1, + "collateralAddress": "Xt6izZrdMotxsq1roMaAxC3cxHmzNcgD9R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1316879, + "lastPaidHeight": 1733106, + "consecutivePayments": 0, + "PoSePenalty": 4468, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1736075, + "revocationReason": 1, + "ownerAddress": "XchRTyS3H7M9WM6FvYwm2FvZyuBEhp28at", + "votingAddress": "XriVGw84xNu46uRWU8vUMQXdgQCQ6mtXQe", + "payoutAddress": "XqoHxo4PhjmQ29mqywx6yxQq2C8kHtqHAf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a98fa3d1df05902ec1c68f5a61fba64999d443d8644545696f64f61b048ab1cb", + "collateralHash": "24559f82eda80372db4a96bc3ebf5fd6e367f493d173d6bdbe77e4fb4bd9e02d", + "collateralIndex": 0, + "collateralAddress": "XsBW6NWJ38uvegji6DYcFy17mcwBY5Ntgi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1316920, + "lastPaidHeight": 1733149, + "consecutivePayments": 0, + "PoSePenalty": 4467, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1735548, + "revocationReason": 1, + "ownerAddress": "XnQC7grDKvEnbnqKDkfvkERi17NDPXpfAx", + "votingAddress": "XtgvCvQsJDSGHBtzp6ckMDq3UAntyJsmMp", + "payoutAddress": "XmBkqSwZuaxshtaXP29F3r9H72vMv2ftTC", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b97f0a525f051b528f0b787c77df425ccf8f503fe6dffb562bbe52e9a9bbb206", + "collateralHash": "f191257daa7fb3537fb72d676e154744bdb1cc4e6976fa173c09d0edda3d1db9", + "collateralIndex": 1, + "collateralAddress": "XfVrsnuwvtwJMzNKimo6S7A8L64CBwk2mR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.56:9999", + "registeredHeight": 1320256, + "lastPaidHeight": 2127981, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2084635, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkogj74xXTguSDxRgs3e6Derz2Two5aibf", + "votingAddress": "Xj9jX9mFyoUdL9hNR7tWKFqVYvRtHitHo8", + "payoutAddress": "XqR7TdXp2GNcNuSi6PEEhvf9Q48Me9J5wD", + "pubKeyOperator": "076ce48c21fd6041e304afe8ba7b80397866f55b7b4b1057cdd138834999a30ef10483a646ac6353b479c5ad684b82d5" + } + }, + { + "type": "Regular", + "proTxHash": "7be07a457ced20c032875a20bde28d9807c134586a887d45a7d07622b461af9d", + "collateralHash": "ff968aeed13688ef4a116c9e9614b2638674ed568caf8d56585753b2f8a64273", + "collateralIndex": 1, + "collateralAddress": "Xx6XFBC6SRhxs83NqPG2RstWws6egdEeaJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.57:9999", + "registeredHeight": 1320257, + "lastPaidHeight": 2127986, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2084640, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQZFg9cAG6VD371tzvFZJfKEQPPU2X6Yo", + "votingAddress": "XtwBBo8zJQvWAKGkQrbTjpL5RcLCCtXT7n", + "payoutAddress": "XqR7TdXp2GNcNuSi6PEEhvf9Q48Me9J5wD", + "pubKeyOperator": "04559375e90a224a76da84c3682b90349633d5e759d49561d4dd53a6bcd35cf6fcdd779671e38e8c35c4a5abf3223d8e" + } + }, + { + "type": "Regular", + "proTxHash": "7cbf35d2bc6345a61b0d6e27984e527c1de7e46d25eb283284c64404d7c0a9eb", + "collateralHash": "29bb40eeeb39b1416da569d86e3ce17f7d942e306e80ccf02d9eabcc85a639c8", + "collateralIndex": 1, + "collateralAddress": "XnkCc2rcdYZtVbavXXzu2FqoukYqtx8xFh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "137.220.48.87:9999", + "registeredHeight": 1323094, + "lastPaidHeight": 1734218, + "consecutivePayments": 0, + "PoSePenalty": 4469, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1736556, + "revocationReason": 0, + "ownerAddress": "XxSgGKN91vVrH3E2ak1hzxxU7FyTSv7PRy", + "votingAddress": "XxSgGKN91vVrH3E2ak1hzxxU7FyTSv7PRy", + "payoutAddress": "XddfXimPtjRUANUCU7t3wwkeQvJfZLAVPz", + "pubKeyOperator": "812d420983b73ac05fdc009d9ff9d21a71283888ca9bb31102dfd850804d4602d9f44de83a5de54220c076c23065e97b" + } + }, + { + "type": "Regular", + "proTxHash": "7d711cd10855b50006f6865050276e5112b3476017b087dbffe13d733398c41b", + "collateralHash": "2fd815694304516b1ab19bff561e371f1bcfb3a799b722e8538efb1cb8e51fff", + "collateralIndex": 1, + "collateralAddress": "XbKaMW9expo6oPy3hAbGnMtCmKXi5GRFvJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "155.138.202.7:9999", + "registeredHeight": 1323141, + "lastPaidHeight": 1730449, + "consecutivePayments": 0, + "PoSePenalty": 4462, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1732211, + "revocationReason": 0, + "ownerAddress": "XuDjTUNJrNDhPVENRCBDKitRRt5P4KX4J2", + "votingAddress": "XuDjTUNJrNDhPVENRCBDKitRRt5P4KX4J2", + "payoutAddress": "XmsrghaxjQakV6XvRXK5EhJgAYCf3HXDMX", + "pubKeyOperator": "8baffbeaa23a4eef900472a009543da5be697255fa3272c38440ab6093d4c09df9fd9df2e84ff6bce66ccf7f2fb0e85f" + } + }, + { + "type": "Regular", + "proTxHash": "b86f9ae4178a3425abb8053a40e1eb138b2a68b466ba2b3bd04167060cd5c1b5", + "collateralHash": "e54927889a3fd47fb2580f30f711c499fe33db128868526563baeb42498bc300", + "collateralIndex": 0, + "collateralAddress": "XcdbrWqd1DvEuismcadbNyydbCK5YK8Kiw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.94.189:9999", + "registeredHeight": 1323417, + "lastPaidHeight": 2125778, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfWe8g2H8mDV8GgJ9uyTZRHW2XyjtTrVLb", + "votingAddress": "Xj3mC1zT1i6U8W6jopLsxkEoxVK88BN5Fq", + "payoutAddress": "XfeoTUHFmhSk4aua8r38WjrULLEEwGY7xj", + "pubKeyOperator": "919843847b2bbefe80c6e33621509fa9f1f88654c8dd153bb5aa5f3e300ef59e8a65e2da672718f69e5fea51d078a6b4" + } + }, + { + "type": "Regular", + "proTxHash": "9b92cb2091365a5e0caa675b5bb28e6a257ad6cbd36ff7e6d93ca0cd9d045be2", + "collateralHash": "a1bce43b62f829a4edad860e9fc3c3a3898d864914764c572b4c84672595ff7b", + "collateralIndex": 1, + "collateralAddress": "Xc7NgYatXkHcSZ5w4ZKUmqZMJXuHd8GDpb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.252.121:9999", + "registeredHeight": 1323464, + "lastPaidHeight": 1377624, + "consecutivePayments": 0, + "PoSePenalty": 5085, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1380539, + "revocationReason": 0, + "ownerAddress": "XmpPDPJdSaKs63h6uywyGAQazHjbqCqxu9", + "votingAddress": "Xh6TKWCedH2gcxtoTWoowt5du9Mc5QqX3F", + "payoutAddress": "Xc7NgYatXkHcSZ5w4ZKUmqZMJXuHd8GDpb", + "pubKeyOperator": "8088fddab2f572246b7e95dfcd497255779e567dfaa25099460c108b2cbfce7c1158024b25c2248b21deb85d457de129" + } + }, + { + "type": "Regular", + "proTxHash": "19b0120f276ea518bf4c4935c02a98677f9f87085f4779a3cc593ff2c52bbc3d", + "collateralHash": "c6ee7d66db1a740ba3f297ead98c2ea16e8b75c2cce1322952aa96b5ba974463", + "collateralIndex": 3, + "collateralAddress": "Xjvvnze5wFVTqunp6xDsr2JvHJFzUDEuhK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.203.119:9999", + "registeredHeight": 1326583, + "lastPaidHeight": 1780948, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1783691, + "revocationReason": 0, + "ownerAddress": "XwxnYQz26dJ1dREPmYQCH6pvuY7BwctKxA", + "votingAddress": "XeeFmNzQsop1SCGFSmfT4K4Gh1ggGuyRUo", + "payoutAddress": "XeqZRK1kqFcYswjHF2TxNCwWgeoi2Ff3DD", + "pubKeyOperator": "8c60a43d99c862379cf61248807907dedf1158421c8d82bd3fb2b7a1a47f8156f91e476ffd3b70d77b1718745b8ac0f8" + } + }, + { + "type": "Regular", + "proTxHash": "2a0e91eb1d0852a7114bd5414b1262ea8aa5ef9d6461c09d893a83cb88e93cf6", + "collateralHash": "46259d6be0449de714c99ebb6cf73890256de8522ae3acb7a568e64fdd75ff3e", + "collateralIndex": 1, + "collateralAddress": "Xu6fjdVJTysBAZop7S1Rrh9kCnziEgeyMa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.26.168:9999", + "registeredHeight": 1327657, + "lastPaidHeight": 1781977, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1784051, + "revocationReason": 0, + "ownerAddress": "Xuum8RHR9dhjiYm4kCcqyYt6h1pQen7DfT", + "votingAddress": "XsvY6cjCpgFkWAtjBSGizyR3UFH6mKL4MX", + "payoutAddress": "XeqZRK1kqFcYswjHF2TxNCwWgeoi2Ff3DD", + "pubKeyOperator": "82c3ba10c6a11e4e22e60cf6310676483b59119327778fea20026336287be76ea95da0512670ecefbb9af71ab73f2398" + } + }, + { + "type": "Regular", + "proTxHash": "0fd63137e2bc071a00593dc8bbffa59a0a06ebb71650f12ca4eabd5ae2d9d2dd", + "collateralHash": "7aa805597103a02cbc00ff59a6df08eb191d765e522651b67009836cec0cad18", + "collateralIndex": 1, + "collateralAddress": "Xvn1kxScx5MRj2eWyEXnSKMXXmkTZ8qscF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.66:9999", + "registeredHeight": 1329035, + "lastPaidHeight": 2126201, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm92ZHNh35Zjcf1Mux9Mpvp2qmNx6uiuwQ", + "votingAddress": "XyeC47GUnXxDE9KYr2ApVfbEmjndmTtuSV", + "payoutAddress": "Xvn1kxScx5MRj2eWyEXnSKMXXmkTZ8qscF", + "pubKeyOperator": "96ed97caf750564962f5a847a877c9a01ebbba36ec0f4483a953e8ee5d44a5776cddcfba3d3ca3608ae549bd9ebf6845" + } + }, + { + "type": "Regular", + "proTxHash": "49d0db663c2e3a55fa15bc3494afb32d470789fa25eff89cc594c9280d06ea5a", + "collateralHash": "0639075f0b47b3ebfa76fc4a51d1ec8256768aa900793d7dc30a7db4c61e3b31", + "collateralIndex": 1, + "collateralAddress": "Xf6a1k8gcRsnpXZbWJgnLavTKFKvWK1wwC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.200:9999", + "registeredHeight": 1329938, + "lastPaidHeight": 2126680, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbq2AHiEwxBh7aRZxKRYNyCjmF6J2ioFUw", + "votingAddress": "XioixrNBzwV54fujMgduo8XWBtDNRZSoCJ", + "payoutAddress": "Xm5e6LmGGZTe95GcAZc6mcDS95kgP9cg4W", + "pubKeyOperator": "8c01f5214a256388c7d499014c1251771edc0d775678a4536a5e84680831bb86c6b2906758ee7e24ad5082e7282d425c" + } + }, + { + "type": "Regular", + "proTxHash": "ffb927c847edb34e6e22154019cb3ae880041796de510037c764cedbfbee00d8", + "collateralHash": "1740a2f15359303a31087df675c60bd32c464f6098de5f092c9cc1aeb5d145a0", + "collateralIndex": 1, + "collateralAddress": "XjPfPvE4fB8ar5WMArwHKGopnga7PsigpA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.51:9999", + "registeredHeight": 1333428, + "lastPaidHeight": 2126059, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2116839, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwGdmVM18J2rq9W8RiBT7WF5tRWfejitwD", + "votingAddress": "XwGdmVM18J2rq9W8RiBT7WF5tRWfejitwD", + "payoutAddress": "XpVdRXEbUTRzomq47YjCWSMnpC9XkjPuYu", + "pubKeyOperator": "9185f8a9cbbe4a39084f37ab9326cb82ab3224ef962b332a5ba9746ff16845ce34c2e9337d4c43d1acf87269d83a40f7" + } + }, + { + "type": "Regular", + "proTxHash": "fd69326e35a79545df532ad99cd821f950f878ef37df37b555b4624b71b1c2bb", + "collateralHash": "a7ef307b9e7aed08ab56d31fc17b70f63edb0221aa1821ecf8e3e4156963e7f7", + "collateralIndex": 1, + "collateralAddress": "XiNGCXeXXib16mjWF3aanjqzSiypwXxVJ8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.69:9999", + "registeredHeight": 1335296, + "lastPaidHeight": 2126254, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1476167, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsb6gr8FaMt1S1ddzvFWFxmcUEf3n885L1", + "votingAddress": "XsKatFLDoaL9YcUfhM2Mv2ZT1E1wvTWuNV", + "payoutAddress": "XiNGCXeXXib16mjWF3aanjqzSiypwXxVJ8", + "pubKeyOperator": "0abfde7128087fe355e845eba02d78fdb03f704853de0fca9cb45796d843d5da29c2e725b979294b739cad9f3f848029" + } + }, + { + "type": "Regular", + "proTxHash": "ee8a05a81b4e59f878bfddd405b5f34cb83ccdaa7786cce89b6cf0b8a48b5268", + "collateralHash": "c075ad5e62782f0dd7532052b2c6bf29d31fe36dcadc3ef9696d1ef03df09983", + "collateralIndex": 0, + "collateralAddress": "XcF6BWX1hyPKkpamWFoxVMtH8GxqePppbD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.154.38:9999", + "registeredHeight": 1336027, + "lastPaidHeight": 2128271, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976877, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdhqniHvqTvTzficpYsE4h3XsqqN9UPdpd", + "votingAddress": "Xu8UR1FGLkXisqrdFKy8uQGvk2kpVLBMDq", + "payoutAddress": "XcF6BWX1hyPKkpamWFoxVMtH8GxqePppbD", + "pubKeyOperator": "8a0871ddf98e12c9bc00c50bf1330624a8eb7465adec62aa7a7490eda3d8f6758aaa652ed8bb414a64655393f50d3772" + } + }, + { + "type": "Regular", + "proTxHash": "564ba21355e0b2f4f9f36fe34ad36ceb717f5c8d8ebc61b300cec5de2fefc96a", + "collateralHash": "a5df1d45c5059f2d372a91ad50241e39096a8513410ad535f45d45e0b537a0cd", + "collateralIndex": 0, + "collateralAddress": "XvtdvvmN7btf7FmSoqCeExJFUph4ghrAVD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.236:9999", + "registeredHeight": 1336456, + "lastPaidHeight": 2127212, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114828, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xyhkos2jHjdJXxedWbgVQHJ3Td3Qh6Uk9E", + "votingAddress": "XoLVvvR7hJPVwpkm6S9nGfng1836aoN7Rv", + "payoutAddress": "XcuAw9bfnzMKPeoXQuNSVras268MzNx7eu", + "pubKeyOperator": "16457be150622cc9fc4058faaf96e1207693f05b2498197804355c7c7bb426b9dc5786392d6265f3b406d5567d374227" + } + }, + { + "type": "Regular", + "proTxHash": "501671d663a6df80efca61910a7c78336d62196a2f977d6fbbead86edf422451", + "collateralHash": "46f68443fae4b1a89da3cd99d16a8d0854cd1184c90651b4faef453c04af7b5c", + "collateralIndex": 0, + "collateralAddress": "XrNw3MGDRKfXRxhUJ6PpttA1jjzfJuYp7r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.238:9999", + "registeredHeight": 1336457, + "lastPaidHeight": 2127785, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdrzbjsBSrvzCYdtaWoba6iz15EbPj21rj", + "votingAddress": "XwSMuh6CHSuA48WNyYATKSwvtGHs6ZN4Xg", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "92baba2876e4bc6a6f34356ff5741a5ada3decb3ce973ed265aa419b625a6d3389fdbccd0bf9940d7e9344a9d1a10320" + } + }, + { + "type": "Regular", + "proTxHash": "49f6941da238d6c98fbdec2f6c90b8a067328bf661082b342757ab90bde1c4b2", + "collateralHash": "c4fbfa11058b91a4f5803570d80f165e1966db98005236cc0cd2ee98c4a7a875", + "collateralIndex": 1, + "collateralAddress": "XxtVpyzBDvzNVbc4ttZsLuFPVAdJYX8Ltx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.70:9999", + "registeredHeight": 1336507, + "lastPaidHeight": 2127855, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjXkaY7yyUkSEsaaCcRGmiu5R93oCCmtbo", + "votingAddress": "XjX575an9zeChxiuy6gfDXqUadfHK6vu23", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "95f430a5255c2fdc1127e076104cd4f0684fdf29f1f53591e6f1fd7bd54282d41796bf42061e2fe6f7c6730e43d59a3f" + } + }, + { + "type": "Regular", + "proTxHash": "3af018f4ba7b50a85ef875a71f17432a45a66550e625c6c115af8380f2d4e464", + "collateralHash": "8425bdef0c08369bcdc275c0e3e7f3ec819b0cfaba13f9d36b5ea0fcc84e9ede", + "collateralIndex": 0, + "collateralAddress": "Xoa3gD9VU36x4vL39BPL3QVpK9GabddcVF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.46:9999", + "registeredHeight": 1336516, + "lastPaidHeight": 2127863, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm4sHxBsYgt6WCdm93RNHy7oTLoGAomUVJ", + "votingAddress": "XmYaFtmPS5ky4pe67pGWYxiU74g8ypcWtv", + "payoutAddress": "XcnNH4vFRMKz1fQjKbzAXxhombDecweW6K", + "pubKeyOperator": "14cd3c7a237cb46694ce76cc8b9981b6737451845a0feeb3f4ccf572e9b908d4a9d38ba1e4691315785b93ed2f5ba33d" + } + }, + { + "type": "Regular", + "proTxHash": "4cfdf66b18f01406d50feba7c0ff8a8238cb7e0f449f1b8d493f19d8d67d600b", + "collateralHash": "e96ca3550362d485fc5944b41b40762813720c718e644a1b97ed41860c296dca", + "collateralIndex": 0, + "collateralAddress": "Xt5JaBWUutw3LXMXoFY8YvqhNzPnb4rWFq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.77:9999", + "registeredHeight": 1336516, + "lastPaidHeight": 2127862, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyC5JyjjGRrYki3NYmgNJuQnV7jvxiChGW", + "votingAddress": "XjycUxJ2sBnezQrmYvHScwM764iG1fAEwe", + "payoutAddress": "Xcn8HeDh4iQD6Ywpnkf85U7jCSrCriLLUs", + "pubKeyOperator": "016df3e0cd6196def78d6a524acb4350cae9496ed0ec9aa119c24dc1c5d6d2cfbc223c7fe51316895370650b4f8b98a7" + } + }, + { + "type": "Regular", + "proTxHash": "82dd94ee3b53282949a952a5894038bc057e883cd8b4e1c054cc2b10548d3fa1", + "collateralHash": "53799bd338042337a879c041f51e7864d9edc3c2967e45a9c738175aef3f8996", + "collateralIndex": 1, + "collateralAddress": "XxCtS7ApcerNFhDQfrWk92gEmGa1fUgwkg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.140:9999", + "registeredHeight": 1336516, + "lastPaidHeight": 2127864, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs98FHoRJygHsr2A5VspGENuJLwSntWMeg", + "votingAddress": "Xcwuo87QbUQQL7HD8PvprB1iRiSdUaawyp", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "9650065c969636f1f2f6bb45f09d31d8adb574883480a9e0e6f7ce58090d9655265ace70271714ff9639a251d79978d7" + } + }, + { + "type": "Regular", + "proTxHash": "4c45936d429df01c2b19b0442a3ed32ca7dc158c2b8182e70b421f26d22023d0", + "collateralHash": "2569159a800130ad4ec7b8023b64aa626052e825a83b3dfb7a840582a3d1435c", + "collateralIndex": 0, + "collateralAddress": "Xi5jtUCdiB9qdoTzJwqn7xce149duWgaJs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.18:9999", + "registeredHeight": 1336516, + "lastPaidHeight": 2127867, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwYv98qUMTT9fKwKMsHEjcYv1HhzJN5b55", + "votingAddress": "Xqf8JKvR3qXvZaPTKHTCCdbgNWt7hQw2cH", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "16ec8fab6eeb3b4f2dffd2346d1881764a1e5f8e9f390360891eba63872d84dc8d7ac0ba41006ec618fa6e1246194cda" + } + }, + { + "type": "Regular", + "proTxHash": "2234e17cf807531a368a012d35b0c23d5cb1d3cd90febf5b4b0b0760afa26ee0", + "collateralHash": "bb93fa5ce1555c5dfe53b3b33cf96604569413e28356c98044c144f87548c47f", + "collateralIndex": 0, + "collateralAddress": "XwjwDq7VNuDJA5UuAVCE2NDtD3qyJ5Cj3z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.12:9999", + "registeredHeight": 1336531, + "lastPaidHeight": 2127881, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XucTEerj9DxMBsKo2iAJquFZDTQFVCUJVY", + "votingAddress": "XfHbAgsrGFzP5LoH9NVFJw8WaBSFiDNffm", + "payoutAddress": "XcJLntmfzSPRJNWKXwnxrMQVqNNxSMbEAr", + "pubKeyOperator": "807946b5f660f13521902feca7674c106eed33b89c3cf8dcf4368fc3608b0e93e031eda074ce47218b400107a1016abc" + } + }, + { + "type": "Regular", + "proTxHash": "be581acd801a3f2171330b4f81dc87da7c36d64b51c48c911729b4217e9b164e", + "collateralHash": "e3e1294b2e85d493d078717f13856f7a61f1c67b6d26699569974f1ee670c705", + "collateralIndex": 0, + "collateralAddress": "Xto7e4b7nkDA2UnVydMahtqCDoZNPc6xHf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.138:9999", + "registeredHeight": 1336537, + "lastPaidHeight": 2127883, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd1c6jYb1Kj8KPFYEdtfhrJi2xcLgs4Qq3", + "votingAddress": "XxV2zQ6Q3DTKPqRWeVp7J1gvdCVVFTct1F", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "8eece77e56e89f541da75590ca674ef41195678a5c024071fb07d190fd6b1461d91f538a45bfc4e1b049f44e1feeeb97" + } + }, + { + "type": "Regular", + "proTxHash": "d8c4278aaa184943a664e86f24a9564c014d5342ce0fdb19d5753c1e5cdda8b1", + "collateralHash": "edeef5cfbea654f1b6a9ef2d86a511f0f548f27c461a7a5b998c484b9a7eb49b", + "collateralIndex": 1, + "collateralAddress": "XgbzZpnzZzd4n82JGGH1UPwbeXSP4V8wcD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.65:9999", + "registeredHeight": 1336903, + "lastPaidHeight": 2127988, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvfXdLmECNgRbdZPWg9jn4tUE5FpGDmrcf", + "votingAddress": "Xim8GjxGF6fg485TNEPad599NeSwKPVVxt", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "8ead062a742da3d2322a6a3ed20be25ecbb32545787eacdefb8e6502c95a911df13ac8399fe3ef0090cafdaa76af1129" + } + }, + { + "type": "Regular", + "proTxHash": "288cbb59fac5fbfc35f94baa17ddf5f0bb39479297aaa404f2672f9e1d9d0ee3", + "collateralHash": "162ce72d00b971f55c3e2a183f7fdf7ce6dd6eca8caaf429c3a344c6dcf78f43", + "collateralIndex": 1, + "collateralAddress": "XeTegjw3D6sEnQVmHwMsreh2tsY6xGjWqe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.188.42:9999", + "registeredHeight": 1337820, + "lastPaidHeight": 2128857, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqCwqrLWsKayB9tYgREApMsVr5UTFkbeEM", + "votingAddress": "Xq76ahv6By5Vb2XpNcLiitiVZSEi7rwVzq", + "payoutAddress": "Xy6GQTvgx1sRpC6Hr31eegtaYUXq9KdM34", + "pubKeyOperator": "98f02e4f6b1ccd8cbcc4b353505749516982782d5ba456cf99992b5e030947700d8cb1f33e91d3e79716b7f6fba5180f" + } + }, + { + "type": "Regular", + "proTxHash": "759d6d87b3ba0b6b3861cda54fd9936bba92a459d7f373b40c8078567e5c9211", + "collateralHash": "8247a70f77593be84c5f59fa3e11c0f7b38bd4095d4ea25ac65713ecf2553800", + "collateralIndex": 1, + "collateralAddress": "XjMJ7G99DbgLSqB5qWDkUzGGd3xxvkhJGX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.218.79:9999", + "registeredHeight": 1337864, + "lastPaidHeight": 2128873, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuXaMLrV9sfuCEE3qXtkp1NiYEvLHpsUPA", + "votingAddress": "XmiNF8Gjn5LssVzywYRwsVZdWH9UB27E2N", + "payoutAddress": "Xy6GQTvgx1sRpC6Hr31eegtaYUXq9KdM34", + "pubKeyOperator": "1937ca0b1babc0240cbde3895b7375df6d4b4b782d6fbe50c1f85dd00342c851a6a8134d211045283c12ec0e842a01d0" + } + }, + { + "type": "Regular", + "proTxHash": "714c5ac7dba9854f7a59b7a2619bc498269f9a1884832a245d69a5ca4dc9ebd7", + "collateralHash": "6d70818383fdcd20469cdfa871a351a426405cd353b4b39c2b35f0e6a5fbea98", + "collateralIndex": 0, + "collateralAddress": "XrxMTX6KKnknjSCjeu9EJFuunPiNAdHe8f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.45.235:9999", + "registeredHeight": 1339665, + "lastPaidHeight": 2126630, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xst1HdQgtfe2n9i5ZQkEsFXYMBSFarjWmk", + "votingAddress": "Xaqos2Ec2U3WA6MSYyRnVdHh4pjVjKumrt", + "payoutAddress": "XfotYFum221u6ZC1yU7MGH6hrao6VyNY8k", + "pubKeyOperator": "919fd573b70f6912ca41230ade0e73b15bd52b00fea4e24318ba5e032bcb2bb07442bb2a3db5aa1a56f9ca5bdb7797e0" + } + }, + { + "type": "Regular", + "proTxHash": "210d4d8e65482e2ad24ca5b61836ce37cd08158b7fe593bac42a0a065b0f3d91", + "collateralHash": "1c3937239554b72c033d8b7605feef429b04f8244af7f8efb41a083bd600397f", + "collateralIndex": 0, + "collateralAddress": "XyTGdwkfRMFMSFVwF19AFc8a3koWAgzFXR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.17:9999", + "registeredHeight": 1340825, + "lastPaidHeight": 2127378, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbCnoPRkowLxRzP7D2UKBpTVCCC1J7yMCK", + "votingAddress": "XoAtmvHzeAmzoKyBtmMPJRCvjq9wWvAS42", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "8c9e590379dbe1b1a16fc19348179df85f7f828e3f1902271cb0ce89d1bb4ca32cab62dcb69be6bc328c09aeee4ff5fb" + } + }, + { + "type": "Regular", + "proTxHash": "d19f501c73b293d7a3b9692c5b9d6e43f118e6dca65e51da5a56d5ca6ccab18b", + "collateralHash": "02b7de14fc33315a96259c0fa8e0f92e01d78b4bee96b8acba45b3da09124e0d", + "collateralIndex": 0, + "collateralAddress": "XiJx4JR7bnGKhc6Zrr5c7eAPHhXd4X8cet", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.11:9999", + "registeredHeight": 1340987, + "lastPaidHeight": 2127474, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbhmL6QvTrWVzrd7MAAubUrk19dE4ZcPZx", + "votingAddress": "XjUxFVooBCNbq3CCrWSpu5c8WUMZpJYnZK", + "payoutAddress": "XcgAMaQahByZvfcKLU4T37gVy2nwuQpwLE", + "pubKeyOperator": "8ee1fcc181f3eaf1001438772d16eed138597b7db4d06fad5ad834fc4e6400bdb59269cb265b815ab9f6cdb7fc059b72" + } + }, + { + "type": "Regular", + "proTxHash": "f24be83d95f464131b03f298f78b123fef411ffe8224a768474fde3833cd0bcc", + "collateralHash": "a926b7266629b031179f80628236d30b3aead57993af2be9b170f90fe3f94236", + "collateralIndex": 1, + "collateralAddress": "XsA2VQhkfJS59YNJNa3QfE4kdyXBrvPQtr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.147:9999", + "registeredHeight": 1343567, + "lastPaidHeight": 2126689, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1458690, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqGgasbtUCUif1KvkBaJKwtvoJgr42jxyo", + "votingAddress": "XsQVtSahGqnvio8Mmyq3JK25DYYRmnCG76", + "payoutAddress": "Xd5nR4T2TG7Nz6RzZbP1HT6Qm4Hv8cW2aK", + "pubKeyOperator": "05d0d21b347b8350a6d9dda539790ea91dd128dc8cbe2b45af51c023b4e7d8b8e31b9f06028fcd98a1451831015d0b29" + } + }, + { + "type": "Regular", + "proTxHash": "d498f69500403492801370ac597b8a07a545c21431840e5d4feb064c964c3e5b", + "collateralHash": "e6cd39ecbc592582342564a180700c63d71d319d68acaec43c0e014c423250b9", + "collateralIndex": 0, + "collateralAddress": "XpEG1NpGhE7AdHE5r2J7dkR4iip9QzxKLD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344422, + "lastPaidHeight": 1721543, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1704989, + "PoSeBanHeight": 1724507, + "revocationReason": 0, + "ownerAddress": "XxpzqbD9GSQEafMkq1bB4edjv23esPWgpy", + "votingAddress": "XpuAwgDEhCjXzhjPzjbZaysF5AoMTEcp5T", + "payoutAddress": "XqzkPEiB3TjgKpRNdy4ZwtybWgVKBSpmzh", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3c48e3c0a779acfd79838101a46891d4ce2f37a63614c7423a081d48d3a8f9ec", + "collateralHash": "52115ff766d1b5acd1f9fe28e48f618974ae0c7aa72aad60e68d7a102f90c920", + "collateralIndex": 1, + "collateralAddress": "Xp2Vz9du4nWvYiAqgFE8FZwGD4j1hbxykZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344422, + "lastPaidHeight": 1723619, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XdWBizTH44jttPFrfNpTaC8TA2gGtmnbqL", + "votingAddress": "Xq1zcfW4qsBARsi6u8C8Dapcg8a35y32Vt", + "payoutAddress": "XqRL9zh5oAuBy8vd6oyJwxQBpMWzHxCDZ7", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "477132f960748ead83bb0240c37994c989c7fb9bc9ee96d596faed4c8ba37ecf", + "collateralHash": "645dbb646f510af25c3b8c8cb3d6331486d93d07401c2f7a7a966ec565665cec", + "collateralIndex": 1, + "collateralAddress": "XxZagqetBiSgtQuAwZHrndAbkewSPycGh5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344423, + "lastPaidHeight": 1724890, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1345704, + "PoSeBanHeight": 1726006, + "revocationReason": 0, + "ownerAddress": "XhE37r3g9mFJFYaxLvN9dHHqYbs1yVoeaA", + "votingAddress": "Xff5mqMY76Nng5afm41hxP3s37jQMtMgzF", + "payoutAddress": "XvQCAs9m9ieaw2nHvXQd3Yv2Pyf36tbAkp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7c659eaa9c7387000b92f00b012ea26561c57bf8f7504f9b17cf3e914f7a4f06", + "collateralHash": "807b5c0520487bb0f6be0d4670a592c8b151843b60b30134dec5eb7e9d90aff0", + "collateralIndex": 1, + "collateralAddress": "XjVWJXodTEJ6AjjDi3VG8MvrDAaSLf3GUG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344426, + "lastPaidHeight": 1723624, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724483, + "revocationReason": 0, + "ownerAddress": "XkyAfWisJXF88dEqShBzEfows7kYQ7DfRY", + "votingAddress": "Xbjzi7k2kmS4GG1XWg7p8hMycLCZn3ZFW7", + "payoutAddress": "XqwWEGdiy7rgWSh5ENHSnMnB7yd5hhdfMd", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1a4ab20526835c7ed50a3702dec2b926dc8433c6494185f11b655eb1d723846b", + "collateralHash": "cae001b64425b7097d6a7a22d29e5ceab13b0bc8537ebaf02c5cc46830c568ac", + "collateralIndex": 0, + "collateralAddress": "XvQg1Djd1tvgYou53nBew94GKpvcCp99s5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344427, + "lastPaidHeight": 1723635, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725996, + "revocationReason": 0, + "ownerAddress": "XnYN4vFMouEKefSPAmFV6wSNCiBCM7tebz", + "votingAddress": "XyNBxGrrdu3VUwZYbGfZWQWh8MF4QDyYjw", + "payoutAddress": "XyDPGzuYgtipSLYpfjaZKLBpSeJoo9YrTY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "38f12ea083173de466003836d431592f62624f509cd50f2b5970b6efb6eb540b", + "collateralHash": "8b2e7a25dd0e299254cf29f13b8360a1f598654adab74bdc4deda9defbc45027", + "collateralIndex": 0, + "collateralAddress": "XbUZry4opcS6SMz7jAR4usjcBLm7ebG3nZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344427, + "lastPaidHeight": 1723634, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726523, + "revocationReason": 0, + "ownerAddress": "XwKrmXgUjvx44xW1kb6QfBViLu4HNzdG6o", + "votingAddress": "Xt6rV2gXu2MTT2uvHWp2GgbNfYpHcm9PMS", + "payoutAddress": "XoCnAN43cG8ELPmsvb6uXTTJHXHZiL9pTj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4ee21eb400f37418afa2c24f802435bf6acfbf3e14ff156e1d56e59906d34a35", + "collateralHash": "886020e1af9c1eaf38d6ee90895ff81a0bb649c24b3022fe1c34eb1856fd8e06", + "collateralIndex": 0, + "collateralAddress": "XpBA31TAGCGfxSvE4RE9CFqG4iTBKZTofX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344429, + "lastPaidHeight": 1727651, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727724, + "revocationReason": 0, + "ownerAddress": "XeMXSSY9Fep3ngsMpmCwnosvmYN4dfBEg3", + "votingAddress": "XboVRsNas2AN22V6M5gnnNWyX6QLcuACdf", + "payoutAddress": "Xk1UC73z2o8iMjkA4dhWZdcJcAJ2SX8Fip", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "37ff1b92f5e4eed9bc6d7ea2d8a69f27ba2563895a760e49f829285b8fafe3f6", + "collateralHash": "5b9eefe25e427e9e27ebef91112d58ef889a7dcc3aeb7d9e3358ef5650621e23", + "collateralIndex": 0, + "collateralAddress": "XjVevz1xFy3p9QkTH4DPxDUjSA8pHFgbBD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344429, + "lastPaidHeight": 1723640, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724363, + "revocationReason": 0, + "ownerAddress": "XeEZE6LamxhfCE8TpxSH295an1633juotC", + "votingAddress": "Xkj9UFXbC45idk9SMnM2WRFYpWxZFDLYvU", + "payoutAddress": "XvK6WuBdbEbFvR7dsghj4F8qJpmrarbdQg", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e44a28487ffebfec86d80ddd2c9ac18075fb29f6a320b6f476dfc6926e55acd6", + "collateralHash": "ab0046e744c83f8d65a945ebd07530d86fe55e08b8e4bcb670d149020763283a", + "collateralIndex": 1, + "collateralAddress": "XoNLkAxt9Ny1eKEuYw8FSwHa57HhsEedik", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344429, + "lastPaidHeight": 1723639, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724891, + "revocationReason": 0, + "ownerAddress": "XiJMxHNS5jxMbZqw3EBf2cT1bix7jDiz45", + "votingAddress": "XtUB2ufZvtiVdaUWhqToYqR8TDkeCdRAES", + "payoutAddress": "XnLGd9MK6JgKeSBtomKhB1zNmXKMe5t1g3", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dd808e7132541ccb4be79ea0512b87512cf4b3d6c3aceadc1dc22cae755306a2", + "collateralHash": "cbc551611b3c65ea2bb1914ff0fdde08823873a0f1db2b13830479333185e10b", + "collateralIndex": 0, + "collateralAddress": "XnG5pDDeDErm5oCz595qQySkGW2GFhedeL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344433, + "lastPaidHeight": 1723646, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726427, + "revocationReason": 0, + "ownerAddress": "XxHwNnoRnvjVKuW8LfvbxcTQq4N1HxZNbR", + "votingAddress": "XgVQU574kD6D6Ko2XzSwtjKo8c3RKqxqQ3", + "payoutAddress": "XddVjTrgi4vm7Fn1MH6N1zrAFX72Tn6mX7", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dbb85439dd84b6addf91435d6777174e9601b1dd7a78b83f31106d57441d004a", + "collateralHash": "a58e2d5f993574f32c7e6d807094bf35c6c14fb0755609b6697063d5c56f0818", + "collateralIndex": 0, + "collateralAddress": "Xt3LDqigPED5PoVJQcLwXeTDoZf7LvjNyu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344433, + "lastPaidHeight": 1723644, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XxuQ6jZJagDEJnAahUDUvboucprxAbgmyb", + "votingAddress": "XiAPAnGmYjSqWai9i2zWC823FHSFVyjLZw", + "payoutAddress": "XtnRc3UbZWjTsagahEEqLuLWd4M7XRfTvX", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6f3df37e54d165467a3c1d72f00b785706ba539babadc03616bfbc209a99973d", + "collateralHash": "ab7b4183cd8b257bb234743696fafb8eb29b59e49369622f6d8ef37da26d1b11", + "collateralIndex": 0, + "collateralAddress": "XrMQSgWbe5mMAeydeBP3mV1eVg1c7ovChS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344433, + "lastPaidHeight": 1723643, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726187, + "revocationReason": 0, + "ownerAddress": "XyXwMiNbJ5E645oeM87pHYszs2ujKQestY", + "votingAddress": "XcRiMZ5dBfnxLvHWry71rPVCcguDKmT94w", + "payoutAddress": "XwdvL6UBWDSWixgdPvwgAjhHJ4SdPstriA", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4b65094c0d2201424fc382bbc52976285ea71c0fe359e5bbbe7c7e00139889a3", + "collateralHash": "5d005ca2adb7b5525c98421e9a641f63098117540b0948898cc19a242e08400a", + "collateralIndex": 0, + "collateralAddress": "XcvLqKhWr5FewpGypcoYoNBiQ4ZVCmJ6Re", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344433, + "lastPaidHeight": 1723649, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727027, + "revocationReason": 0, + "ownerAddress": "XnxhDyYFQCJfDHzBwJuo6fKSTk1qbkypVS", + "votingAddress": "XcXxhg6YftrdpAKhbD23c99J946KmxZRDT", + "payoutAddress": "XctVkYDhuUqYeY6W7QHquSfn5KEc5GTprN", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9a57b157f6ff1c74cfccc27f51fd23d208954e71a9f8b50bb777fc43c5546087", + "collateralHash": "c22934fda52428d2db626a521e3ed05ee81cc3d2114b54ffacca700150bd30de", + "collateralIndex": 1, + "collateralAddress": "Xq3eQGQpQTgaiXm1krgkGQ82jP7exNy1AE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344433, + "lastPaidHeight": 1723645, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XnUhaBSyBezerCoJXQT6e8so2EdNbkHCxH", + "votingAddress": "Xs6FqhYTkFCmQT2MkEUTPaYXiZtHvCvNvW", + "payoutAddress": "XefASnnaMcNuX8GyVmK4uoKzndLVh6CwtY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a5c389e4a02922afcafd7f9a159845ac2d21183d2baaf05320ab516ad6bb27da", + "collateralHash": "d3ccfac75bbbbeaa316ee57149d0af09cd1a6cf404df2840310780013a7e4d01", + "collateralIndex": 0, + "collateralAddress": "Xx3tWkugzSwjse4UTTHZd7h9ZBcwNU99Bg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344434, + "lastPaidHeight": 1723651, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725587, + "revocationReason": 0, + "ownerAddress": "XqMSSwMbhotnHbKnmPHTQZFU9fxACvyWuu", + "votingAddress": "XgchatP2npBZbFzmmoJxusyUUd2zqdW46P", + "payoutAddress": "XxMZvrWhvjf6tnGn311x9HgzMk5y8qvxhX", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e8c995c8d64fd3b830e41e18743949e16c7f46f8ddfd63f7ad76d46c90c8fe2e", + "collateralHash": "79dc22e3e18f2717b6ff01e84cc4bc18f7887ceea8a6708b370ea841f215f7d6", + "collateralIndex": 0, + "collateralAddress": "Xk39ZYW6vUPtnqvXtRNeXWC8nbj3WhH8mB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344437, + "lastPaidHeight": 1724589, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1355004, + "PoSeBanHeight": 1725900, + "revocationReason": 0, + "ownerAddress": "XsJQ7gmyZ6jAiW18ZE3rupojSviHDNb2Ta", + "votingAddress": "XsDHoZZi1QyJt2h84tBytWhEVWBM1ce9va", + "payoutAddress": "XgAApVcdCovivRvh9dUK4n18dcz7CmrKtA", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a2be67e65e3ed552ed9663700fdc78c1bb5465a0149907e5e715976199829885", + "collateralHash": "8634de646b6c431adf579455d505115ff740b7d42388e22272efe26363eb5c31", + "collateralIndex": 1, + "collateralAddress": "Xdc1LFscgFogrocQbjaxcbNbAc9bYHBpTN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344437, + "lastPaidHeight": 1721446, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1611582, + "PoSeBanHeight": 1724795, + "revocationReason": 0, + "ownerAddress": "XeBAw3QXWEGPJZo7mms2aoi5JUidPRYeaX", + "votingAddress": "XchFhJVendXU9Knr2MdQhEKPiWv67gWftH", + "payoutAddress": "XnCGLfjVW28Dw4NRreiXisG11Y8oxhjK77", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "09b683980f03d1297cfbd39b141c44c4011b639aac8979f0e5ad02475e00814c", + "collateralHash": "3abc15991e0c32179da7db819f075fde11f10044196e2d930c46f6fdefad0446", + "collateralIndex": 0, + "collateralAddress": "XfEBw3FGwG47ZjUEaSkFAH1T7K8RWMYpJH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344438, + "lastPaidHeight": 1723653, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724844, + "revocationReason": 0, + "ownerAddress": "Xh2nZUL1LX8q9jGcfWa1APq32j8gFfhHPZ", + "votingAddress": "XdwQwusizHofVTgTJ7FUypjndALpKRWDju", + "payoutAddress": "XopYcqXMFhMqFSjGpQJQtWJSQa1jPhzT8f", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dd17fce5ebd89fd8c1ef33cb8ed0b9122911b8faab9a4757802b7fa442ac45c9", + "collateralHash": "0a78660bb213e96b46653d3a3abf8b95225e435a12dda6daa562f08e6658ae6d", + "collateralIndex": 1, + "collateralAddress": "XjQXa4SERiZbounSeYF2LsDUDGm2uUF1GD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344439, + "lastPaidHeight": 1723655, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725924, + "revocationReason": 0, + "ownerAddress": "XtuHXoLJLdfRKAnqaeTdtEHvzKrL9SsZie", + "votingAddress": "XoYSNziLcav3kzo67ALwQfZqAj7U83RKxG", + "payoutAddress": "XcCTBwDnUUsu1PUA6GWQzh1kBGQc3Mw4sv", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e80873b331ab5dbf70bdbe853e85b848bad44531b834d4671ed2562a122b4454", + "collateralHash": "fc49924ea494c0f5e86a5eb058ecab29c63741295782ac6210243439c82f5c6e", + "collateralIndex": 1, + "collateralAddress": "Xtq69uaNhYskf86jkN9SE95EpjjYhYYNcY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344440, + "lastPaidHeight": 1723660, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XqrRus6tny2wgCF6vqEUGjUCoMn59aJRri", + "votingAddress": "XdeEe5AKXoNJ6iHcyNsy4QtBFZrruQVWZY", + "payoutAddress": "Xik3YUDGccNSFsBVDFemDdMr2qsCWDLpkz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "17a0b98865cf4fe8c3f45092c40b3d98bfe24b8ec737e9357685c88990fbaf64", + "collateralHash": "6bd54b1e1635aacc69e24505636af1972ff182891d38d88f40168fd9e33f576f", + "collateralIndex": 1, + "collateralAddress": "XiEnPsh23NLArHsJD1zJkkMDFXnJ88diex", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344440, + "lastPaidHeight": 1723661, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "XqcG32PRGGS6AiLeqh8nhEXDRifGivq5fw", + "votingAddress": "XfKEGEcdmBdmKJ6wDc2q5Cp9pXj7REJPqt", + "payoutAddress": "Xu9bHyBHkcoThbSTsZtk1YsegnrDekRxaK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9efce3e890f32b403da7cec3b7bcc28167767ed3ea7b3e097bd51e65d0100062", + "collateralHash": "b38a1256a30573d1539da90b54b11f24c4c9feea74f43160cbd58cffc50dfeb0", + "collateralIndex": 1, + "collateralAddress": "XmXKdV8NytMfPaeEpMXxANyfuKFp8Rw97L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344442, + "lastPaidHeight": 1727670, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1728021, + "revocationReason": 0, + "ownerAddress": "Xc1jzKGAGToNk6Ph45CNqsU4weGAUQrHn3", + "votingAddress": "XncpokLHB7aNjuVRn6aNNXsoZ7QoqxU7Bw", + "payoutAddress": "XbcpriXJLE8xCsJ1V9pcTh8K53qccP8FEy", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "245bb59be308f21041b99e95d05fbb99435367b37670b2a6c66d891115a5c1df", + "collateralHash": "e83f1fc6067d1b67c7f1ca95944e70d2efa3e96a3d2a46e2bf28eb440bb05564", + "collateralIndex": 1, + "collateralAddress": "XkZZYygpcMMgzyXv5k8rzyptgfZhZtPn4h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344442, + "lastPaidHeight": 1723669, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725420, + "revocationReason": 0, + "ownerAddress": "XyDfy78Bvvth7RL8u8fUoLpPSphsxSs2Bi", + "votingAddress": "Xoi7xvtG8Y6cCSEVMBEuXE5rtnhvomxzfX", + "payoutAddress": "Xny4thCdDFbw6TuNjDVBbpUGjQw5xkupvr", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0e99dc5245738f9473b0c299e317f41952df9897c0b3ed362d5ba442d5228b5a", + "collateralHash": "1acd9d340be809e5552df6c7e5356f11ef8e50f6ca1c48a98dfb277e5c3f2ecf", + "collateralIndex": 0, + "collateralAddress": "XpYVmFY68pRFDskoXq8RZpdGRNQqYcAdMD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1344442, + "lastPaidHeight": 1724374, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1610380, + "PoSeBanHeight": 1724724, + "revocationReason": 0, + "ownerAddress": "XwPneGkoDxp5nDCdtUa3pMcQiETqsbNT8s", + "votingAddress": "Xuxv8XyGCVE8YfitXDin9soea1fvgjGotn", + "payoutAddress": "XsUiWi1WP1bpiQYnp8DQmqhPth5q5fnFs6", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "779df702412051a5bf1ff286f08d4f71a6ff409db3675f30c8b95b5686bad705", + "collateralHash": "9664b42925d30588138dc8ed9e19aa5f8ee35433e9c5e5d1416056252914719b", + "collateralIndex": 0, + "collateralAddress": "XxG5TU7Zk7m31ceW62U3zC6FUYew8sXqhD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.16:9999", + "registeredHeight": 1344941, + "lastPaidHeight": 2126621, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665761, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg23DzMNKqdBMS5VS1pyBQMecaAheDUCzJ", + "votingAddress": "Xotp2AqwRKpU5Fq3rNsSure15AXjZYtjjb", + "payoutAddress": "Xq3GZjiQxoj1SD6HRBmfJoN19GCtabYnP5", + "pubKeyOperator": "04aba2dcaaa958481633411ff00b99ac7dc38441a539eb4f140aedc4f6b0c804e6c177a8df508025d457e05355eec1a1" + } + }, + { + "type": "Regular", + "proTxHash": "bddae505c27df1e03cea9691048d2ea6d59443df9bc876121b051ce799d0222f", + "collateralHash": "4ba6fcbf557dcaa7c12720143555c61eb6a55e205d5484526d5f2ecdf3de75d8", + "collateralIndex": 0, + "collateralAddress": "XxmoMzi9tTwyBC8HLoEYRSJ1znc9Z6WbNc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.0:9999", + "registeredHeight": 1345301, + "lastPaidHeight": 2127081, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkbzYYdSN4bNU3jMLMdLgz8SxxtkpCaEmv", + "votingAddress": "XoMtzs8hVKDYHKWR1sFy43MBuaUJbbtrrK", + "payoutAddress": "XcFLaufF75pyRbAZxgT7A1Vu7GG1qhzDvK", + "pubKeyOperator": "8f88c1b4f3d8f658e66aa6cd78e6b422ffd67833c14ca3e9404d66f38d9c2d588c34d799465d47f50c30b7fe06302e6c" + } + }, + { + "type": "Regular", + "proTxHash": "2696211c9280843c2a6b13d60ab9553a235b6f6fc448abe5bb9c826a166974b8", + "collateralHash": "dd66b4d8911a271cd78a234401ab11fbf8949fd442912b05399cfa9ce729c440", + "collateralIndex": 0, + "collateralAddress": "Xvzmv6en7XY2VeFbJixvurvkxK711Hhtst", + "operatorReward": 0, + "state": { + "version": 1, + "service": "199.247.3.79:9999", + "registeredHeight": 1346202, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 5107, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1349877, + "revocationReason": 0, + "ownerAddress": "XvwrnzVBqPYYZs4jkiJynWEeBWJs1AfZnD", + "votingAddress": "XfsFTJWJ7RPR5ueCYXc6x4YtXow3KZcLGm", + "payoutAddress": "XfztQtn9GwpG6yySTcTFWvw2RqyZTtmFdT", + "pubKeyOperator": "89d6676d3216dcb7c2c182bf6d2b084fea7c65f127c3ede775e470c57162c339f17638f9188ddde661b66de84720fc68" + } + }, + { + "type": "Regular", + "proTxHash": "c38d243b24d6677535a5c2ef1ee86478b28c340018f213a19a87cca0f58e0206", + "collateralHash": "e07daf6a2359cc6917b9a7dbc11faf5e79447ad1018276cef291a3d491ab6ece", + "collateralIndex": 0, + "collateralAddress": "XsRYnzbrtr6VLZmJjH8JoqfwQwuDbi17qK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346613, + "lastPaidHeight": 1725526, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725779, + "revocationReason": 0, + "ownerAddress": "XfovgTRXghxKyyqizY3qPpYK1UfKvwbpAt", + "votingAddress": "XdNtcPiZHwmzWc85six1hbeBy5uUFKj8gm", + "payoutAddress": "XjRZ1yzXtrHamx98iKTkLZre2JWF7fQBto", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ca62c6f37ed35a07b19940dc85f204d6cdb71b872d72c4c79d523a0cc822e19f", + "collateralHash": "8dd5bca1dcefc4bfb9fa2f38309ce77e4de98b18788b59ed88e0121e46e95085", + "collateralIndex": 0, + "collateralAddress": "XwwgXFLLQZD9RQZkxzhWRhxFs8ax86kuB7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346615, + "lastPaidHeight": 1721411, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725348, + "revocationReason": 0, + "ownerAddress": "Xj933TsPtbUX4zzdUHmTM3pHziyjR9WkPF", + "votingAddress": "XyLi6auA1HsrwKM4xeY9QQ57geFPR97sB9", + "payoutAddress": "XsXQ8iYeftSuPZUMfMzTEj2J6EuvasYSZL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1d5b90ce411206f3b0594d09648277ffa259bf7afbe01af8d23fdcc25a513922", + "collateralHash": "e4f37884c9663dcfddece66fffbba4c9c14e0688832f5a796aa6ecbf0de23943", + "collateralIndex": 1, + "collateralAddress": "XrJZJYAQ8pRAwwsuaf6Svw3BgrjU3DE3A2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346615, + "lastPaidHeight": 1725527, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726115, + "revocationReason": 0, + "ownerAddress": "XiPDs5ea9awy4Fpu6L8bRsgmr7u7ycCiA3", + "votingAddress": "Xfr3yFFCVirFYQzSXTkee4u16an9qcakf5", + "payoutAddress": "Xt5cyaWANSVMui7cTDQMuKjNYQYSUVy6oU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "175a322f42c9453ce505ed0eb233addacd7f8e3c7e5e56d7274367f035f585f9", + "collateralHash": "9aa117cad26cd2c34072c9b07f614d9a687d4d227d208f1389fbb1662ac8e269", + "collateralIndex": 1, + "collateralAddress": "Xjaqj9n89LYfR5jfVHCdtks3wiFNLET5KV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346615, + "lastPaidHeight": 1721412, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725323, + "revocationReason": 0, + "ownerAddress": "XgWtbvTZMuQX6iV3tB3LSicXx4VyytWFcp", + "votingAddress": "Xeu46FECyeVSEVGkzPFA1FpmLdw351svJT", + "payoutAddress": "XbjVznWLy7w5Gw6kbXDpCfTvqB3vhLkQKD", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ed620557f90b94304542ce7f7334134da2e9dbd338938da2b667b2e1a88971bd", + "collateralHash": "cf9ab66313253be3014140baac21b3aa2d4a3ca7451f82e98f4dcecb17a43087", + "collateralIndex": 0, + "collateralAddress": "XeAMLYe5NhUFJF4zpRfodUyzt8DnJwXrF9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346616, + "lastPaidHeight": 1721418, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XwtiSA79gzYdGwwDsfArkL4D7a3yQhfL56", + "votingAddress": "XjGwqzEPBW2odp2HdEMv3R6XtECqwNvJhr", + "payoutAddress": "XvzCvT8gR18ScznHbUcvQPhX9vL1FPtCdy", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "21fcfcae2578c6aaf258b7d4f70a359a61c3d5c0c90cc5576f6237bf0e14cdf1", + "collateralHash": "4d7b966a7664246e6616d2264ed2407bf2b8fd9f3bf0666b7fa1579bfb57be3f", + "collateralIndex": 0, + "collateralAddress": "Xi5STTdYveTGaqV8MrHz4gVQ6nZnFiBBKY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346616, + "lastPaidHeight": 1723044, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1519186, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xgwf79bkiDJaX5MNYbEgTQSn4FEs9SKXPD", + "votingAddress": "XnjVKqxyQhqBnqFoqGKwfVSEQp1X8jFeHn", + "payoutAddress": "Xtj9Pxike64ikraB7FU4hMGqywaxg6StZK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ead08ed7f98e6544722b6735b9f96ba9d01495cd7030f8175242b1fa314948b8", + "collateralHash": "14cb763ac225e6031e5629aaf0c9bbf36843576b28798336093cdb353e31feb1", + "collateralIndex": 0, + "collateralAddress": "Xu9S5Wpy9Eg7owprZuW5F5ofj2XUmJgAES", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346616, + "lastPaidHeight": 1721413, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725179, + "revocationReason": 0, + "ownerAddress": "XjfB3xgysp6ou7nkdCnecGc68pMbeSy7HL", + "votingAddress": "XtB5H31fGLa6yX4ULTFxrEwqMi5Ku3rJSB", + "payoutAddress": "XxTpLVsqb16VWBk7p7vDYGJ6attKTa7nEU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "693e0371d2ed6c185d773082cf35798409bb415b4addbf6434f2b534f1a7f154", + "collateralHash": "c03b976863bc77f589febaf38342326cb4db1d5d9e0967c84dfb7314bfa6cc66", + "collateralIndex": 1, + "collateralAddress": "XuPwwkBp8XKVUtnrmBHuZibTDWGCzFEn4Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346617, + "lastPaidHeight": 1725534, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725996, + "revocationReason": 0, + "ownerAddress": "Xq2Q4KDumy24vnQNR1ekWGz6EPrWivMswi", + "votingAddress": "Xx6KitxGFdrQboefEdKiVSVXQdkMiPwng5", + "payoutAddress": "XnrKQFb5DBgkAQLHcGBLp9xoBu8tpjsW8z", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ff669357365a7d6f4238be4c9d63c4df5e876783772453bf8f96f66c63a8cabd", + "collateralHash": "5a1506ce80ecfc8b528751d2cb98dcbbf10cfa27efdd09a7af9e9ac626088df8", + "collateralIndex": 0, + "collateralAddress": "XxfjngmEjEBWWTEAcxdz5BMcTiwaVDoza2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346620, + "lastPaidHeight": 1725539, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727446, + "revocationReason": 0, + "ownerAddress": "XutpXxxtCEgcidwa7cuZ9EMK1pYAE7tn6N", + "votingAddress": "XyPq15CyuWDmrtuYkNwjuZ84nn1SYxgsZq", + "payoutAddress": "XfFyfLMZc9cyq6gWJqh7H2bvn8ERde1MA4", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "998179d5ad90498743afcef049d26b18dcf8008b3c9eefc7e1e2c8c471453db7", + "collateralHash": "433fcc6e1e22a3798cc9e0fa316dca16b6318892f1cd5435cd202b84c8260b4d", + "collateralIndex": 0, + "collateralAddress": "XjLA5oqLY8cwi3dNBsb7Zsz8a1TbxkyfMe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346620, + "lastPaidHeight": 1721422, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XmBGeviSW8gG5J8KRTqcVX7ttpk1MjEY67", + "votingAddress": "XjCt3r2ii9BALmBQyxRcXm7HFMyZVVFikN", + "payoutAddress": "XxmG8QJHX2x389MBZZ5AeFMKrzAwsopu4i", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d297539819d521d480dbac87f0e33fdbf11d50f5c287da3609272cd8b1187c9e", + "collateralHash": "900b82863325c8c42f3de06ca4643fdeabe36e177c548e218d137bc718f32b4f", + "collateralIndex": 1, + "collateralAddress": "XhXwFq62TmBNYdbpaYPeWXBavU8rP2Z9iE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346622, + "lastPaidHeight": 1721428, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XtnNQpG2ZdgYCqJiEyGrA6uPRRCwKD8zRg", + "votingAddress": "XhPePrbkCoVFWtJT1RM2rQcKrNmmNjcdrC", + "payoutAddress": "XcssqSEWP1f4HACY5SfXAeCnS5MZ3iwLDx", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1c1da24cd2e078a57b560bc3f2fdc6996b5446880534b401505b8a8d4b1434a2", + "collateralHash": "adcad61339ecf3b5d9b77bfa7c3f3aa1468b6def6b1bdf2ca3807a7719b83923", + "collateralIndex": 1, + "collateralAddress": "XqjNCGcDmrpYV8AWUFxVSD4ZwzWKYSrdhC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346622, + "lastPaidHeight": 1724581, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1632307, + "PoSeBanHeight": 1724853, + "revocationReason": 0, + "ownerAddress": "XtNFgzYpTiDpwhz726k8EvhHh7GGrRrfpR", + "votingAddress": "XmEa9X6PzrEiSFpSNyvakDyqSBKBj6F5pn", + "payoutAddress": "XbAxVsfdW8KvEEaA57iXFvWXB52TCFwgqR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "05a1a4868a3fc695dd1a7b91f9f3faa31ebec23d19f5210081ce553bbe89598d", + "collateralHash": "86974f6fc5469f17f8f3a510a390da01f1eccc0877b24e149a3f909a8cabce03", + "collateralIndex": 1, + "collateralAddress": "Xeq8hSBfT6eKiH2X1Fg9DWnWpLh22VYKRR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346622, + "lastPaidHeight": 1723307, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1665220, + "PoSeBanHeight": 1726006, + "revocationReason": 0, + "ownerAddress": "XtEbs5nk6QdVaqfAWQRrLWcyTY4FAd9Qo7", + "votingAddress": "XyXfMzygH7ghA5c4Q4E7duuKTgAtjfcgk6", + "payoutAddress": "XhYVpv8YGvTpAXMEyPDSLPBMx4hAMQAgXR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "692d509ed7b8c530d9fd201359ccdf3589e90a401d2c2dd80a6ccb7a74e584a6", + "collateralHash": "6f7f7a930157133dde16d00fb5629669f23b90cd7b205ac2ca76634c4bf92619", + "collateralIndex": 0, + "collateralAddress": "XryYXvAmHoSY1MS5rkvs9VcvSyPkT787SP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346624, + "lastPaidHeight": 1721433, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725179, + "revocationReason": 0, + "ownerAddress": "XqXXynTwnbyoFoxbM3jxna4aMLbGWPVnhD", + "votingAddress": "XcTcWZpESZroBVVyo1WDyAqXSCFKtrGjPi", + "payoutAddress": "XteQgqsPp4L5r9mdDb4Umyc1vhZ9poGAnN", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c2862ee01c21d6d6691e036e7310bf2155a728a69db53fb603d84214d6fe4d39", + "collateralHash": "f24b8fdb4572ee1ad4d941405e078458f1e660e002c67f82c8c2995a9c1935ee", + "collateralIndex": 0, + "collateralAddress": "XguNoRQwbEJ6nRyZcQh1XSw9SaSy5YtsFb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346624, + "lastPaidHeight": 1721432, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725372, + "revocationReason": 0, + "ownerAddress": "XnKQKjVpRXsZwvWFEzsBU6mQ2Bfckhrrxz", + "votingAddress": "XeckJjeH9A34j3uuX3AsVK282R4DoWFFWf", + "payoutAddress": "XxkopKAN86GLKWg7AyNtMf2o4MJQiEDPnm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "fe6bb234447cc655b3fa11e229b5b7a2d254192f773ea674d140e5d6585de4e0", + "collateralHash": "065a7374c9313a3290b4b5193bb461b953577a697198411a00d5642b1e20322a", + "collateralIndex": 1, + "collateralAddress": "Xuff69k3TpaZBH9MEn6jpv3qhPPcHLqgSV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346624, + "lastPaidHeight": 1721441, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724819, + "revocationReason": 0, + "ownerAddress": "XrtoHD8VUzzyrDs4GP8YkLDFiwnsGSryx3", + "votingAddress": "XkxADgTErJwXfMqrQCWR973BF3fcGQ4xV8", + "payoutAddress": "XrTqd68JwjYgztLqjbdiJbsoqz5nBWNc4A", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "00ee2be1b9118544ea8393ba9dddefc07e3d8c659187d1645356aadefe660280", + "collateralHash": "e0b20f59ed61f6f4c79de0d18ef04dfd047c63bcea20288437fc34d0a867dbd4", + "collateralIndex": 1, + "collateralAddress": "XqBg48vHRosX3A7QbamHYXpYZpjNmWq3t5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346625, + "lastPaidHeight": 1721442, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "Xj6pxtnW44DUkRdULwdYPCJtARiVPzcj42", + "votingAddress": "XqoGmHAMqvCxthuAJYLzF1q6ah22CGHLbA", + "payoutAddress": "Xv3kPSaTuQtBrGRtF1iHKBye7jDSHUGD1d", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5200c9f1acbc299e86a3dafefccc0a73eed43ea0ef5327210f34c1125b724cbe", + "collateralHash": "aa3f90b4c811a82324f89417e50cde6c6da73234b532b4cac3ca264d3beeafca", + "collateralIndex": 0, + "collateralAddress": "XhTfdRnNkTLo6UkCxeBPRoJ9v17KBvhSDT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346625, + "lastPaidHeight": 1725550, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725684, + "revocationReason": 0, + "ownerAddress": "XpkJx7guJD5XY9MMpNm9mkC7QEu8LrcnkM", + "votingAddress": "Xj8wFZNBDBr38Q7mpa9irVECG4XP4orzbq", + "payoutAddress": "XuPiikMUSFKQiwNEyj8Wzy29Qey17MX29p", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e25ea9db9c9e7cde5e698368a4024df92cc606832e89aa70deb550b1085aea25", + "collateralHash": "15808176eee09f2d2fb67121d78fa691f7f457dfa3761f135cac7b8a20d5458d", + "collateralIndex": 0, + "collateralAddress": "XjMzPRZB1owjLe5kiTqQRA6pe3hunBeHtb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346627, + "lastPaidHeight": 1722538, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1577540, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XiFxjpvvPZLb4gqtTygLPAVxuGU9VdGFUj", + "votingAddress": "Xx6GHMpx9b93vk4WbtdhfntWXC4E7zn9kT", + "payoutAddress": "XqLZVijtGnaiJBC4SD9aMcwfciMq1Cu2fF", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "db10a2decba8a5b30cfcb7630d5aecd9b3512b8f036d43d6c01e0763f3edc116", + "collateralHash": "7d2de1860fea72a675494aa1fd7065e282ea32901afbccabb2456bd19325179b", + "collateralIndex": 1, + "collateralAddress": "XmhBCc6HYDxDyDNheQYx2FtAgNxdrmgqMX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346627, + "lastPaidHeight": 1720513, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1486310, + "PoSeBanHeight": 1724483, + "revocationReason": 0, + "ownerAddress": "XtDJaKsTWuwfQHhj9UUpm6WS24zmHsFxAQ", + "votingAddress": "XpsTTSqLmav3RWmYR4vFehqR4jU3UduDdR", + "payoutAddress": "XcCa5uCbjaQ74r6fGZXDpuV9AP4c53rUEP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "35b03320138ad2af76d495a918503a2c86d9cf30558a6e8db4e0fd0124cc18cc", + "collateralHash": "44c82c57e5ad825b81f8e00e5c8396acee18dbf7e40292a3e8740a06f83d2c8e", + "collateralIndex": 0, + "collateralAddress": "XeE6tZYcej4C2cW4PbNCUtWnjsFiThA5b2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346629, + "lastPaidHeight": 1722401, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1488223, + "PoSeBanHeight": 1726006, + "revocationReason": 0, + "ownerAddress": "Xv4BWNmGmB1rqrhd8AoRMWt2Lj3PB4JmgC", + "votingAddress": "XevAo7A2oac8aCmLgmJeg9oMRKMRdsY5Cv", + "payoutAddress": "XyJZwHB73Saj7niHgqUvLkhgNDBL6CANbe", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8b1e7e4400469aa73a168036138a3826296cd2aff04c997f63289eb27becd146", + "collateralHash": "9486af8de60182dba41478b0c57480994dce42f558286d3b5e5a5c3cfbb28f4c", + "collateralIndex": 0, + "collateralAddress": "XpPQUNRGFo7ZVTWdj6TXuwaTFDjiah3mT8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346630, + "lastPaidHeight": 1724583, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": 1632309, + "PoSeBanHeight": 1725636, + "revocationReason": 0, + "ownerAddress": "XqFbPpRQb8CYgLSd8RCGq6CyEu5yWyRwUf", + "votingAddress": "XrxrLXChwQFEczcLqdrKdsJrEyDmijfFUh", + "payoutAddress": "Xh428eB14HP3cF1S4UFFySmuX1KNcngYyB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "874b8066490cea7b277a015e71b046e95196f4a1f9da8ab433ceff4ad63ed173", + "collateralHash": "7ab3586de6c5ca931fe511b0b6f70dbe19480845504ebd0f5e246688b61adcba", + "collateralIndex": 0, + "collateralAddress": "XxzSMiovKiqq73gKvLNvVpckbgdpmf8NG4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346630, + "lastPaidHeight": 1725091, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1562462, + "PoSeBanHeight": 1726870, + "revocationReason": 0, + "ownerAddress": "XwnzRPo4EV4bQ4wqi19VkQS1obNjszFaWG", + "votingAddress": "XoWnEpTJ3jB2HAJttdriHnN5Dy7xAfT9sX", + "payoutAddress": "Xhk9SP32XWaJ9mYmHU8mip3jEVmSV34mts", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e667865082374baa02d05bdcd2e74f4e1a7e2d2aee9627a0f7c296ce3a61fdc1", + "collateralHash": "e05da0bae7cd234010aedd1135f35e3469fa75e3a355632164879673ef0cc8e9", + "collateralIndex": 1, + "collateralAddress": "Xny8HkDT2freUJf5xobGCsGCLNZJnJhizB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1346632, + "lastPaidHeight": 1725251, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1535072, + "PoSeBanHeight": 1725828, + "revocationReason": 0, + "ownerAddress": "XgCLyHRpgXZt9ivnXJBA3FqK6Mdao7mPP1", + "votingAddress": "Xh3mhpjNF112oK6dfSj9YZYVWkokfP5KTk", + "payoutAddress": "Xif7VE7Lt6Wnrp7MSQwXtMAhyUFVrwFdSS", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f914ab644206d427d2f8277b6d3ae5ffb024a79fc652a96a80d89873095af029", + "collateralHash": "4d2ace62e81358187f56607697b331cb4239d13d48fd3e3379ebfc7348c14637", + "collateralIndex": 1, + "collateralAddress": "XqJGbVuLhmdkf8XEM6Liu4R8q13nXPvcr7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.211:9999", + "registeredHeight": 1348987, + "lastPaidHeight": 2126255, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1537617, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtD3hjkz8Eueg6VDSJt1FTwf42BpcUQNMj", + "votingAddress": "XoxroG5CKMYSZf5LAV3PaXr7d7ycybLR8G", + "payoutAddress": "XoSobWsMiRRsDWQWnoS3yS4aeFRaj8R9cA", + "pubKeyOperator": "94b605541d179ffb60ad538382c986110dc35b8cb8e859d0f7288c5c594bc0dde24a2bdf4178092eee532e0240ccd93e" + } + }, + { + "type": "Regular", + "proTxHash": "b2ffe05b358c365e4837d97b3bbff0ee97596586f77208d692bdb9641d29b9f7", + "collateralHash": "8b3c8063c988d284a9586da0b378688b03e90cfc7cd53bc77a65a5b184f83ce1", + "collateralIndex": 1, + "collateralAddress": "XngXF1T74mPYLtwYtNdgNez2FHMoAtXg8h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.130:9999", + "registeredHeight": 1349014, + "lastPaidHeight": 2126263, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1537621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxkvPNVMWutxtt4CdRoSQ2DZfMnYsisYwh", + "votingAddress": "XuXnhQZZ3mSu96gFm7Q94AREroowNcecA1", + "payoutAddress": "XrQgWL7YAQaGvtez9aYVwm4D7kjMTqKHaX", + "pubKeyOperator": "016b46776eb3719de5c4a00bf30b0933db62ac6a65f9364a6857ac35adf9570a50ebc72ae462e59ed1cb7ed58bb0ff81" + } + }, + { + "type": "Regular", + "proTxHash": "33c29b8f23bd3aa9390c5cd5012b2a1e872a77fdd450e847ba8a9a461f8eee60", + "collateralHash": "7a031d822ad0c7355c3fec26e9469cfeb44a776ac7f5fb4a52c29096ff525fd5", + "collateralIndex": 1, + "collateralAddress": "XiptrkC1oRf1XL96bfTobFDxHvr39bhhBJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.38:9999", + "registeredHeight": 1349030, + "lastPaidHeight": 2126161, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1519336, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkGNDMhgdErfcutKxRFER6hcoqYgPB2xQb", + "votingAddress": "Xr6Troqzmns8jaA956LbdX4dGgCbU9fb8B", + "payoutAddress": "XxSqrRXwVdv9T9wCqVHHGWDKRW3X1Lu9YA", + "pubKeyOperator": "8e5e34bd4a86ae56c423f92db1ccde76386ea3f645b8d612325491f248627969220b2166ceb10713131283ebdbd0ffeb" + } + }, + { + "type": "Regular", + "proTxHash": "7ff19a30865c795bece203d8faa91c4422fe3f43ffe33794a03cd0be6853d3e0", + "collateralHash": "9bd6be43038ca4aab2800ccb98012322ae0e4e3e8d69d54ddc29d3aac030e98f", + "collateralIndex": 1, + "collateralAddress": "Xq15ULKXTUmBgS2hEHPXp32b5hWQVRZais", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.203:9999", + "registeredHeight": 1349080, + "lastPaidHeight": 2126261, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1537621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhjh1YS8uW2UhW5y4EjEtw3rRWm6Wt5Sjg", + "votingAddress": "XrpLceKta3Dt1rQcq2tLC5KgnbocpkarLr", + "payoutAddress": "XrwN3FPsGhenW4cg3ZNUkapVCeXQoQLGbg", + "pubKeyOperator": "001ade1fbc8a15e502c363fd608e1cfd4c812cefc69d4a14034df6955d6a83c3537c9ff933793a647553e9c929aa45ca" + } + }, + { + "type": "Regular", + "proTxHash": "cb55bcfac42f7a1268b76a32f89ad6bd54f33dfbd03f6e112a23cb220c42be97", + "collateralHash": "5f336b5f5c07b2ce63fa22c0020504c184d2b4b11d6abc2ae400971edca8646a", + "collateralIndex": 0, + "collateralAddress": "Xctpwp6hM3jTAfQmLpWdBim5zdcP7d5EnL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.238:9999", + "registeredHeight": 1349090, + "lastPaidHeight": 2126367, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaiW5fUAmYTH7SXsxH4FNannSpDRBtPhfG", + "votingAddress": "XhbEYwtb2sZeZV1G2AyucxHBaLF3zEX6ZG", + "payoutAddress": "Xgk9EPMiH71KzQ6WzbyLjCqAgJzsg5JGiy", + "pubKeyOperator": "0119a1e146de74493c5584f6ca9fba59e094a86ab0973034f4279c79f0a2813555049ad74e6319995d5d4c9d1542d35c" + } + }, + { + "type": "Regular", + "proTxHash": "2b1605c628323a4738c5eef5d640bde09eae6ac73d338d14ebf245a1d94b0ce2", + "collateralHash": "8a3ccecd54d18f23cb9c1952f034d8350916a3b52640782fa369cba07689bcc7", + "collateralIndex": 0, + "collateralAddress": "Xt65etbv4h51fFTfyJgcYQECmKvp2854sV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.118.96:9999", + "registeredHeight": 1353274, + "lastPaidHeight": 2125942, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126038, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkC9fWJ36qBuQfFGB47B9c3L6H3Xmpmdsk", + "votingAddress": "XcsBf2J8DgDtgJ9CAyhh491MUYC79sa65u", + "payoutAddress": "XeAbZQK94genXUePHDHcBoRoVMYFK2TMgU", + "pubKeyOperator": "8f436f1f27afd7c3c1294d6b4532413abc281f17dceaac2be1569c995f4721fa22ec9c4b5703967d968a9c815ba81e32" + } + }, + { + "type": "Regular", + "proTxHash": "e13fbad0ab0bca68cbcd4d68127de06037b4007c5acbe8550edcd60b7d4503e8", + "collateralHash": "1c0f7860e70207518ce4b38a3596823650a24bc1153f42b0df97fc49a8a37aa5", + "collateralIndex": 1, + "collateralAddress": "XyPg6NC5UpvZ2pBAukcR6WBqaH8wNtMS3d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.78.74.118:9999", + "registeredHeight": 1354584, + "lastPaidHeight": 2113340, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": 1977829, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XohnWDWvRhYsZC9Suk3PXCLZtUgjwMaU3K", + "votingAddress": "XohnWDWvRhYsZC9Suk3PXCLZtUgjwMaU3K", + "payoutAddress": "XmCmDEQhk5dgvh5n2iLSP7GVhYJJw4VMGG", + "pubKeyOperator": "8c19a3f6df1ff3d9399d010e5307e04b9b38c4384bb08dd31509a884550f7fe377112050b34c5a533f2ace6f08a83fb7" + } + }, + { + "type": "Regular", + "proTxHash": "dac06948df80b4b5bd3c6e05ffce9c5b43e1f02c21cc3a6e3f5ac5a86518a80b", + "collateralHash": "7e6ca926dc0f1cfb818880e6c9b33f0d2fffa1b62c8a5b30ba304d89c67069fe", + "collateralIndex": 1, + "collateralAddress": "Xg6Y27M5XhVmigCqVTHQH4237B5i19FaME", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.191.237:9999", + "registeredHeight": 1354748, + "lastPaidHeight": 2127086, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjrWT1ZExuL3ZKTNxxJMWYVZh7FS4yLR6w", + "votingAddress": "XjKQ9vGNWWQZhM8X4TH7ztan5XbQ7rhpGt", + "payoutAddress": "Xg6Y27M5XhVmigCqVTHQH4237B5i19FaME", + "pubKeyOperator": "0aeff4606a736a0fe438c61b0c5cbcbd6728738f6fe8a36751a2bb43c936ececdf5daec86d043b1aa25ac577b48cd9b3" + } + }, + { + "type": "Regular", + "proTxHash": "27ef261be25cdf1c1ad58624f1c27833bcf0bff15b95e6be2aa1af6344cfa02c", + "collateralHash": "ad94c617e7b247a52eddaaafc686ffad00970396e4c878c6766d3493ac8970ce", + "collateralIndex": 0, + "collateralAddress": "XmGXXqCs6UQDwo1i9kHKHqZGppFJJhGtS3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.136:9999", + "registeredHeight": 1356613, + "lastPaidHeight": 2128034, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeBzRSuwPSD7gMiRdfYGVrCXgF1rY6Pb4Q", + "votingAddress": "Xg5WVDH36tvLkVt2Ren41s5stwSsNVukHd", + "payoutAddress": "XxEcuVw1rbDkRePTHnqtRwMTWqL42Tg9kK", + "pubKeyOperator": "99896f79a9bcf505d52e72b59fd940302de0a62fb686f0ae5f58cfe282bfeb251099ab4edc25a46866bb82aed24af35f" + } + }, + { + "type": "Regular", + "proTxHash": "4a3a7ed413c74263f849ae475ead774ecb88a7f359666d8bac347adc3c22a54d", + "collateralHash": "6f842f91d851e54ddb728c12d501b8f81f335151dde134d59356562f1dd3c060", + "collateralIndex": 0, + "collateralAddress": "Xkws7PpQdRKbWpAJQYvjyGVbAN1SEE374n", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.224:9999", + "registeredHeight": 1356913, + "lastPaidHeight": 2128475, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxPu5i2nQ28n8AojySkTWvbhUdX2h39xYd", + "votingAddress": "XyR4ZGWVomadKG2wFWxJaiKWihnFQzyQRV", + "payoutAddress": "Xg1GTYJU35MFxkxrkU7sYp1R3JHjK8t4dc", + "pubKeyOperator": "88715892d243906750b659756614f121182aecd4b9922e31698d57d32cb1aa1267caece27fe55e10ceb4ac409fcc1f3c" + } + }, + { + "type": "Regular", + "proTxHash": "8388cd3f64b9e8aba1a97351e5f77cb90cfdae08b91fded1de28aa92a869f911", + "collateralHash": "3c9c5314dfcc85b4971f4d0643879511c7aa889a72f5be1994e3d4a18cd6931f", + "collateralIndex": 1, + "collateralAddress": "XpWXAxBHUrS13efpgAMgLW8UjB1G3jbToT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.186.212:9999", + "registeredHeight": 1357092, + "lastPaidHeight": 2128559, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2017832, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcg9tWYidVmABKYY8MVoj2Wdipij5xJM17", + "votingAddress": "Xw6aX5uEK6Cp6T5jC2sazMp8o6sm1iRvCG", + "payoutAddress": "XpWXAxBHUrS13efpgAMgLW8UjB1G3jbToT", + "pubKeyOperator": "196c5433726fc69c6f24e08f99a766790f94da5e6ba583792efe0000124789c2aabcf44df9071982f464eff943c14ff3" + } + }, + { + "type": "Regular", + "proTxHash": "1c1a4223b6b495fb142a0983f20f7cad6a14bd3bb0578d3cf7d8a2df54261ef8", + "collateralHash": "d1eb41ce8b2cf1c16b4f29f605c451739190dd69bf8ce256404ae4307c6721e8", + "collateralIndex": 1, + "collateralAddress": "Xd9YVud3ptZRVtSfE5CWioDBphyZR51x1g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.35.75:9999", + "registeredHeight": 1357092, + "lastPaidHeight": 2127113, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnDECScfCG9PeQQoCqqJx6jzqMinPUU4DE", + "votingAddress": "XtK6QLUeSNkbVYCoqzE98dUJPpVDihLMvN", + "payoutAddress": "Xd9YVud3ptZRVtSfE5CWioDBphyZR51x1g", + "pubKeyOperator": "903e07afacbd2b00a57b00efce27dddc0d3792a315c4ec19f330e02c7b960ddfdc696d39ca522d52b7af7b9f031dac88" + } + }, + { + "type": "Regular", + "proTxHash": "1b5946c573f63129f64466aab182aa3fb10a8909e7b39198376c8780ab31055c", + "collateralHash": "0f230b6bb558520f1689b17278c264ba05e36b82f53bcd7a902d32c34de55ffd", + "collateralIndex": 1, + "collateralAddress": "XjR4uJevw6oDK4ye3mEkDuLXBBD4whMiGL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.72.140:9999", + "registeredHeight": 1357093, + "lastPaidHeight": 2127093, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgDRYFKRG9f65cQZuMbhwwN1N6HPQ2obY8", + "votingAddress": "Xc38UoGxLJgCtsc28wCHF3XpTwaL7dtzy5", + "payoutAddress": "XjR4uJevw6oDK4ye3mEkDuLXBBD4whMiGL", + "pubKeyOperator": "1727dd7c52537110540f73532c873c89aeff256da538a93b67a7a3717adfe92baf8f2a5caa4d50a32fe7d65b28974215" + } + }, + { + "type": "Regular", + "proTxHash": "5c02bba63a5753a26ed9546e629b12f8a3c45c666f9ed48541641deb055bd1b5", + "collateralHash": "2c570c355238e3b93cad4191d1ce98645e67fdf598b3cf7c273564b505073cea", + "collateralIndex": 1, + "collateralAddress": "XkuJik5suvX8HrCdmpcbrTwG3WNBwpDJ7d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.128.35:9999", + "registeredHeight": 1357094, + "lastPaidHeight": 2127105, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdDLgpyRpVpuq4RCiF9xSHaNjXPjdefHsg", + "votingAddress": "Xj5hueLFEJs6VJrmGG2xU3BCQ7jBwRiYt3", + "payoutAddress": "XkuJik5suvX8HrCdmpcbrTwG3WNBwpDJ7d", + "pubKeyOperator": "0bb8a85c44a50c814b4243718dcc8adac99e73db9f0f2b2bf03a45d98ff7df33b285cbf4ac616a397022d5673250aae4" + } + }, + { + "type": "Regular", + "proTxHash": "cb324143ee99c6269a5942949a87bdcdef617ec54e61fd4fbe7518b48ffcabf5", + "collateralHash": "1ae55125f8551dc9fc517508c58e8b527b4ea27ca2f60a1b3bf87f5be565e332", + "collateralIndex": 1, + "collateralAddress": "Xt2EXtW8W6d57DWLL4G4D7L5zdko3ZkeBw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.217.185:9999", + "registeredHeight": 1357094, + "lastPaidHeight": 2127112, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsiqc1YhEJi1WmY7v7Vh2rzp56pU5wseB6", + "votingAddress": "XnnuPH5bRSqvf7NLVnFwq6d2RPf9TpBP6F", + "payoutAddress": "Xt2EXtW8W6d57DWLL4G4D7L5zdko3ZkeBw", + "pubKeyOperator": "8dfe9e8b0fc154eb50cbe674fa6b6533b4722b2d6653e4664b49165e8fab7d2e50f0161c9ef344f3e0918e28a812225e" + } + }, + { + "type": "Regular", + "proTxHash": "9e049cb8a3900f717c6954e03595359a5befdc3ebb503473e1d1666e93047051", + "collateralHash": "395dd722c5b27ccb033946fd3b38e5cbb55687d554cbbcadea212acb252a950c", + "collateralIndex": 0, + "collateralAddress": "Xd2m8yGmUiyjLSixokupCS1BxeCuMY7Hsf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.126.85:9999", + "registeredHeight": 1357095, + "lastPaidHeight": 2127091, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoHh3cZ5SdMf6Gcg6ng8HAyRzDV95u1baw", + "votingAddress": "XpXcdZM5THivBWwsxZuRxZ1qngG6PsG5JX", + "payoutAddress": "Xd2m8yGmUiyjLSixokupCS1BxeCuMY7Hsf", + "pubKeyOperator": "984ec473d5a429ba2f57e41cb31c1cd37c64360b5cf5841f8bb4d7056788ed25fccb934f7946e79a9ec6ab8f063d09f9" + } + }, + { + "type": "Regular", + "proTxHash": "e8019c6fb3ad758816128a55e5b577034fa037660ec928cce6ab1d46d3df6c99", + "collateralHash": "dd67787a35b56b4b83b90eb58aa0ea3fd093ce14d5d1fd4e0856277814f4baad", + "collateralIndex": 0, + "collateralAddress": "XquNautZwbELrPj8A5qxVaerRuPHWskU3G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.59.189:9999", + "registeredHeight": 1357095, + "lastPaidHeight": 2127102, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk1brS7rr8DCjyKhDGtek9JwsW1jg1NE3N", + "votingAddress": "Xo7B7Ks74ZqzFThTyUFFpt8HvZTpY9GjA7", + "payoutAddress": "XquNautZwbELrPj8A5qxVaerRuPHWskU3G", + "pubKeyOperator": "815e9ff86d1b057931b695a7950daaf1859b7f20a2330be8d41be0819e45f213df07c71fe3aa0b18e44fa2c907300ada" + } + }, + { + "type": "Regular", + "proTxHash": "fe7ac847a6a9f5cf9926c4edb502105240ab690803ac71c49e7620d5128f6f20", + "collateralHash": "7641f0cdeffda9ab62e58795df09e45d42e1ea92c30504aacf8c7b96d0a111eb", + "collateralIndex": 1, + "collateralAddress": "XhG3zMaWgzdaAdFA5aiYP31PfY1ko8XrKe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.46.135:9999", + "registeredHeight": 1357095, + "lastPaidHeight": 2127088, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcCpLwo1WiU5kp9Z6cyRB4wte3XkiMkUcD", + "votingAddress": "Xj1eiW5Enf5yGJgs3AifsGx4pm7xV4CFcy", + "payoutAddress": "XhG3zMaWgzdaAdFA5aiYP31PfY1ko8XrKe", + "pubKeyOperator": "92d350bbb22a1e63d37e4c4f0c6134aca64cbc05fa6d6eba12a32c613a743e6b63b8933ebc07551b1a9e5be700171233" + } + }, + { + "type": "Regular", + "proTxHash": "5f9e3a664db53fdedd477af0855afa1fb83ccf5e5358de23a1fa5353edbd3b40", + "collateralHash": "c4a184baaa335f0cf81be1adfafcf1c5750fb2fcdb5da91e9de7cbbb723bf3b9", + "collateralIndex": 1, + "collateralAddress": "XutC8ucWwyUYdjFrQitQm5u8WBZNVKFjLn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.135.185:9999", + "registeredHeight": 1357095, + "lastPaidHeight": 2126579, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985795, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrNy999f7ZVVShLLJ2RhUUcF2rV2vVd4F3", + "votingAddress": "XjjZ4Fw1mAa8RbYDkncPKoEVvD7Lu7n7yK", + "payoutAddress": "XutC8ucWwyUYdjFrQitQm5u8WBZNVKFjLn", + "pubKeyOperator": "9428b71d10a6d7cd8956c8fa25e6e0a7cac2ae9939963b387164e31be7988b5d273f447de130363108e2147aa449be1d" + } + }, + { + "type": "Regular", + "proTxHash": "fcf21390a899127ea097d72c207e4cb267a48295315d8717a1fb47570c9efefd", + "collateralHash": "8f150ecf189f3fbbe9637ea0b7b6e114cf18af502f23a5b006371805cf615b26", + "collateralIndex": 0, + "collateralAddress": "XcrTgXNL2NohYQ7SXG82EHXpnLyCMaruSz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.250.218:9999", + "registeredHeight": 1357095, + "lastPaidHeight": 2128792, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936983, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkHVqPpHYS2qTwfLtG2CjnCKCmV86tu4YC", + "votingAddress": "Xu9iQr1bL2dJeRGxoyjsiTVXUxj1wursf8", + "payoutAddress": "XcrTgXNL2NohYQ7SXG82EHXpnLyCMaruSz", + "pubKeyOperator": "10930f4664f86c40052cb77af3bb7a1a0b39327dbacd93e93bbb22bacbcb58b0845ff6f51cb28a923e95168106b4775c" + } + }, + { + "type": "Regular", + "proTxHash": "7c0252b67f38e2ff6cfca099a9adddd66752c4d4e6b6779b53ac16e0a7e2c1f0", + "collateralHash": "b1717fb3a7c3e731ca2487dcd58b63706d3035f05f04b6a77eccfe63996a4bf7", + "collateralIndex": 1, + "collateralAddress": "XfgzdN8DHHj7FjdGWYYwB3LszGzkFGfd7U", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.115:9999", + "registeredHeight": 1357677, + "lastPaidHeight": 2126815, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986022, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsKRX6HKsX1bKQZsWUUZCLi6DGhsYhUboJ", + "votingAddress": "XcPYc9BxGu7SEGYZ2qJo9z7Q1FJyZEBVV7", + "payoutAddress": "XechD9cm8ZbpSVsYrG1nb7RXXFdoyWKu4S", + "pubKeyOperator": "0fbe3891b05ba2676b118525be531f33e5ec197a846b23fd6aaef74eb1b8b50c40c7808b594c29b0cbe483aa7689f49e" + } + }, + { + "type": "Regular", + "proTxHash": "4810f2a149542152bf4a82bdb4fca6e74407dc5d538ab2d69787761822f4ff12", + "collateralHash": "46f76b2fda75ba28021bd251ef71d488a9bbdc91169b30e4c65b6bc0220f309e", + "collateralIndex": 0, + "collateralAddress": "XovrS9qMmAmZmJz7kBfZvYMNs7TruWqSyd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.237.36:9999", + "registeredHeight": 1358304, + "lastPaidHeight": 2125997, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgRQuERGjrLiPeVMpuRzU4NaRT1EZYZgg8", + "votingAddress": "XsicxC6Gw9mcd1TyzrMCTpnbLpHq199obx", + "payoutAddress": "XovrS9qMmAmZmJz7kBfZvYMNs7TruWqSyd", + "pubKeyOperator": "873cfc8d9dfa57d67fc147d91faafd8bc6753b95367dce674c0f91e59f5680a50d150182b98479444b6cf96b2cdd1db6" + } + }, + { + "type": "Regular", + "proTxHash": "b0320ffe1f461e045cf637938f933bb23fea68970576541cbbc746be1fc35c0a", + "collateralHash": "1ae40961659d84fa5050fd4bf05e3ca85aafb5fbda93ebe5760b836d81ba75a6", + "collateralIndex": 0, + "collateralAddress": "XwmzeucgSto8k5RyByQFeogK3w537i1bk3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.3:9999", + "registeredHeight": 1359342, + "lastPaidHeight": 2126659, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XumGCJLKUkBCGAwzYd2npErVkdPy7dXQyo", + "votingAddress": "XvdPh74NCiQj3QBqfh3i2LLaC3DNRZvoGn", + "payoutAddress": "Xfn69s6JjBCH1SrpMiA3sdsFJwR4vXwEiR", + "pubKeyOperator": "1471b214f594a26e2b17785b17c1b275990d3ffc14db46a4c1149ed7d7f77bdfaee1334ea86dc6de4c97ddde5959d7e8" + } + }, + { + "type": "Regular", + "proTxHash": "6dbae85a978dc5239b6461a900cfff251b53f42d707362d8ab5feef978094b6d", + "collateralHash": "8e1a0d33a90d80f5360da057fa0ce7d245442c55b54b3d30e0f61971562d3928", + "collateralIndex": 0, + "collateralAddress": "XtDpaqEiWU8VHgAWFPg87D86zeqVruucPd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.79.179:9999", + "registeredHeight": 1359580, + "lastPaidHeight": 2127098, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgbVoRG9JTS1p3A2GheTZkGZWgZmDos94i", + "votingAddress": "XmWBHju6ZNYcv2QU8DdJ4aFcqdBSt9xnim", + "payoutAddress": "XtDpaqEiWU8VHgAWFPg87D86zeqVruucPd", + "pubKeyOperator": "911d5f45e4451d1fc4ff2b1d818ddf52015f87e6c1ea147398ca75a54dc1e3f7b76e1aec8332a82bf21c8dd832fbda68" + } + }, + { + "type": "Regular", + "proTxHash": "85087a52479b6b6e65ef3afc40744cfaf61f9fcf740b5482dd10831fecadbfc0", + "collateralHash": "46f1721cf282f449d00fcfcd47eafd9aed41c1fb4627603e10e3f10442f73e9e", + "collateralIndex": 0, + "collateralAddress": "XdJhPEYxGFefPszQHrWKu8RLP4DQh1KHGV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.208.62:9999", + "registeredHeight": 1359987, + "lastPaidHeight": 2128789, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936983, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxYDvdMugL2C4yML3qneBLrK9bBkZ68jxn", + "votingAddress": "XrUgnJDEGKX8AtMU2Lfv9JfSgQUAbxCkym", + "payoutAddress": "XdJhPEYxGFefPszQHrWKu8RLP4DQh1KHGV", + "pubKeyOperator": "99190c97478967d9706bd44e01525057c4fd2ebe8351de65768526aed90e9ff2f7e22244c67a7fa929def1254c430e1e" + } + }, + { + "type": "Regular", + "proTxHash": "00560e41e283875d4b767434c54d4aa65d4f09366c88e41510e0ccec0b97ab8f", + "collateralHash": "ee4963f31b6c3c6e8c6bef7cdca5eb4ea51584f2b3a570768081486362ff59b4", + "collateralIndex": 0, + "collateralAddress": "XcR8yCZW2fErwBKBeX3J7oQsDrJ3FgyQa5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.9:9999", + "registeredHeight": 1360222, + "lastPaidHeight": 2127206, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeSabJPqY2N3Zeh7crVA3e6zxgGqCtMqCb", + "votingAddress": "XgbJujBNVz8526Nh3zGRxUtN5ugb7SXbBn", + "payoutAddress": "XxvCNqYui43Rd9hDvfyrb6BfxoU2gKute6", + "pubKeyOperator": "13a7a86d18582ad597e70c986b198ff4be6ca2201deede22ae508f0fa98e10f15fb6a394c07f227c5fc9b96be278afcc" + } + }, + { + "type": "Regular", + "proTxHash": "24b9604f41fc1c474ff7bd293740e0245a390fb27cbb2c4c4f1e8517304b4771", + "collateralHash": "2756e42aba353668e07f28dac5e4fa1de139288e4942e9d112ed4f92063dca83", + "collateralIndex": 0, + "collateralAddress": "Xpaj5YLCRZZEZt5Mmnij3g5PRTWHVMuGek", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.10:9999", + "registeredHeight": 1360229, + "lastPaidHeight": 2127227, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuwVLPrpoyvBspnQA1FLKf6GRarjqwt7yC", + "votingAddress": "XjWgCwFG6p8saeUrxi5xdHaajHwBYbAtZ5", + "payoutAddress": "XxvCNqYui43Rd9hDvfyrb6BfxoU2gKute6", + "pubKeyOperator": "8501a9fdaa2a1f21c71cdf608362f2a0cf06ae5dec7a07a21fcb176679ca558374bfcb7a38fa4fdf63ff0787ab0dc367" + } + }, + { + "type": "Regular", + "proTxHash": "f1c4c23513cb808f65a10cb6f658b2cca64294df3e2f75be0a84d1fa88342a29", + "collateralHash": "187eea19eb89ae46c6751ff47285cf3328ec76838ec8c7123a1ded4921fa25df", + "collateralIndex": 0, + "collateralAddress": "Xim7DTtYfkL9QcjezeNoapcnJzc2kBgBTe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.11:9999", + "registeredHeight": 1360231, + "lastPaidHeight": 2127321, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1464130, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgzenMN8zkwgpEWV79uYHbpDaw6RK5HHN9", + "votingAddress": "XeMWKs5ioH4m5RNL9CEnZMYynmFGbSmNWJ", + "payoutAddress": "XxvCNqYui43Rd9hDvfyrb6BfxoU2gKute6", + "pubKeyOperator": "981ac36a850aa1eed82957ab100f707a6da909a5bd0bbd6c8c845eff6c8b12be4f146898c7ecfcd32299d0f54998a46e" + } + }, + { + "type": "Regular", + "proTxHash": "e4bad638257088f5fee939e6084ed01adf10ab0c704b3aa8a4ca8abd4e0475aa", + "collateralHash": "4c18690dd857f4ba2b66809ea8befddf8c847e32c26d63d79dc446bcdd43b76f", + "collateralIndex": 0, + "collateralAddress": "XkbV8eV78PM38vyiB5p86sYAaxNXQ2aD52", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.12:9999", + "registeredHeight": 1360240, + "lastPaidHeight": 2127235, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcFUAPVaiMoa82QX6v23sdvwExcj8oiLct", + "votingAddress": "XmJSJCcbJfbNtxVSnDk6Lfnj9zD4N6aYtN", + "payoutAddress": "XxvCNqYui43Rd9hDvfyrb6BfxoU2gKute6", + "pubKeyOperator": "13cc3e33604630e3b215f7cdc4362728e9fb9ad8345b3f4e7378f28585c5310e02103c17431036faf42f9636861ca95e" + } + }, + { + "type": "Regular", + "proTxHash": "6b806b7c0baf9df9fa6c2083b7ca5e1222f87ab16ca8d465045d0a26c07b26fc", + "collateralHash": "fe052deafefafabfe72a61cab2604cb292118349794992ce06bc9accced33a80", + "collateralIndex": 0, + "collateralAddress": "XcdrkvxyDbFTKwYXdwmywh362Cq5r397UH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.13:9999", + "registeredHeight": 1360240, + "lastPaidHeight": 2127236, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcfCBTgfggNH2k9mUoLUKQuraUsFDuR54G", + "votingAddress": "XrKxjY9f6c2T5timDR4tnJLUfjS5KZLnDN", + "payoutAddress": "XxvCNqYui43Rd9hDvfyrb6BfxoU2gKute6", + "pubKeyOperator": "9882b1a22ecc0050a3e8c7e99733505b417079c8b3db569fafb78a335e9a6982dbdd0627116639c8dc552e389cb023cc" + } + }, + { + "type": "Regular", + "proTxHash": "c104bd80860fc0b13ea0e1b8a6c47956df8a0aaf7f0b8737330c081924b7e9e6", + "collateralHash": "f32d305018f138172ccea85a7d10c14555a39e286646bdc9233117112890522d", + "collateralIndex": 0, + "collateralAddress": "XhuTTzeaMpby1RXCA6P593fnwoexaLcSq7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.14:9999", + "registeredHeight": 1360251, + "lastPaidHeight": 2126365, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1622442, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoJJDqDSiiDJavVYYuU3VBm1odVRGMa12Y", + "votingAddress": "Xu8Ru1WwsYuXqjsP4tAxo6T6KRbBXowuF7", + "payoutAddress": "XnfQdQKgXqSLzCp7Q3ZBDfUqeXiS6zxGiM", + "pubKeyOperator": "85b8d6ef90f26bb4bd34e8c33bf3072b717adac558803ae2170e54a5f1c053bb13f28dd1942213fd7717479e24264f8f" + } + }, + { + "type": "Regular", + "proTxHash": "58c14166e680f58311f25ed6794e52acb814b3f33092b9a37f2cf65ba6b548cb", + "collateralHash": "a57f74c57a369d9623338a5127a4de369639783e5e5b68a3660c07bfa86d6189", + "collateralIndex": 0, + "collateralAddress": "XbrcyDfuvEbphtztpiFdeLKjK2hqttUEDC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.15:9999", + "registeredHeight": 1360254, + "lastPaidHeight": 2127240, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg3EEiLCU3J2v8D1hA7kcdd6JcPJsWUnfn", + "votingAddress": "Xn6nSPser29ssKEaPDTF3kWxPVjhHYHAkj", + "payoutAddress": "XnfQdQKgXqSLzCp7Q3ZBDfUqeXiS6zxGiM", + "pubKeyOperator": "946f7b51f48b0b878db98f0f7977af25918b20bc90559d516bc84658b63521cd0a5c0939db4eee3942b0ffbcbce9b174" + } + }, + { + "type": "Regular", + "proTxHash": "69c92d5073e00bbb10ce391a0e5a8c15cf59a6d42750249ad350aee7331c30b2", + "collateralHash": "eddd8303ab0e547154930691bc883b980c8a3dc7996e90f92a5afeb90b9b1760", + "collateralIndex": 0, + "collateralAddress": "Xd9z4t2PRcPyygjugPhZzYVhjmyWpA8stG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.16:9999", + "registeredHeight": 1360255, + "lastPaidHeight": 2127243, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xry39B4WwkwZByp9xBJfDhpJEV8Lr9D91t", + "votingAddress": "XwSNZBPFeXAvW8fAT2RennNXBkfpYdWZaT", + "payoutAddress": "XnfQdQKgXqSLzCp7Q3ZBDfUqeXiS6zxGiM", + "pubKeyOperator": "861a58f6d5495874ccb6fd78943b106f9078cf8ac0854b67d2feec6716569570fed7fdc569b160a882ab182f8237dda2" + } + }, + { + "type": "Regular", + "proTxHash": "e15a56c66aa04e937740c0a151e7b14732f62913d992005e913244c2bb12dddc", + "collateralHash": "7c4f2de5e0031442c2e94ae77800625bd8e5cfe9a1966084b28273ffe1a78fb9", + "collateralIndex": 0, + "collateralAddress": "XymxkKGsW4BjrbmZfgzP6Z6G9D9kzxGiFA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.17:9999", + "registeredHeight": 1360256, + "lastPaidHeight": 2127244, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoRiLbRc8ZEF8XCcj3N1GuMPt3gL7VFgKb", + "votingAddress": "XyhUKJcJoT3kZMRSPX3EP9KcsDmJT5qwgz", + "payoutAddress": "XnfQdQKgXqSLzCp7Q3ZBDfUqeXiS6zxGiM", + "pubKeyOperator": "94f26fc407123bd11ec67a2bffede806649ab6a733473360e11c53fa9c4213eeb487a4f537f37243d48869c02d5a7f84" + } + }, + { + "type": "Regular", + "proTxHash": "87accbbdbeaf2e940bae8555388355ee67ff52dd363ab0de3606db81e98f849a", + "collateralHash": "1c1e9373fe1e2b991220a96a163dc2cd4dbb40c8ae43f9686b46c6693e0fa246", + "collateralIndex": 0, + "collateralAddress": "XtrA5qjtRob1ZEqMd361dZ46pPxxbFS3Td", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.128.129:9999", + "registeredHeight": 1362241, + "lastPaidHeight": 2127103, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkAa8yDeXiYr4pGXiEWNDZ9zBFo25Hvha5", + "votingAddress": "Xnnet7dQZP5JiS9RAtYRdHqQcytyVxkfj5", + "payoutAddress": "XtrA5qjtRob1ZEqMd361dZ46pPxxbFS3Td", + "pubKeyOperator": "8eb054fb7e6f261e1e8d0f3637767bf89295998e088f0f6580d7596b4a4ef098a0d679aeb781889219c3701e38b504a8" + } + }, + { + "type": "Regular", + "proTxHash": "9b987adc36c9a7476a90385498758bcd018f8761418873863a5cfeadf3c38327", + "collateralHash": "031632f2db01534d3841b3bf2fa4f1f94d495fce62de554d942d479eb5ba1839", + "collateralIndex": 0, + "collateralAddress": "XseVkF3DrZcdVhQtYnEuotGWbDsrcDsZXa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.235.173:9999", + "registeredHeight": 1363193, + "lastPaidHeight": 2125952, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkZ2yDJu1vfW1s2XzVnHautDCiv4VtUPGm", + "votingAddress": "XqNfFx5f3GEHSev6Ecd8uLaNRcD4Tuyiih", + "payoutAddress": "XseVkF3DrZcdVhQtYnEuotGWbDsrcDsZXa", + "pubKeyOperator": "0437f6841cb41267d16c587518c66fde7706590124400ccb18b60c392b93e9cfe829733793f640d965ed38957b5b4725" + } + }, + { + "type": "Regular", + "proTxHash": "f057263404fbfe75d9f2eafa90abfd697e5bfdfc6fb52e0677043142eb58fe3e", + "collateralHash": "29ea1447504f2da6753c21d370ae603bb02dd602f03bcb33e82357be1f37089b", + "collateralIndex": 1, + "collateralAddress": "XmXZMsD2vNUZZzrjqLgbsATnuKyCWDP4dJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.18:9999", + "registeredHeight": 1363210, + "lastPaidHeight": 2125962, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqk7eBiYV4QNeSdUFaEmRYqo8TC4d9Hsyu", + "votingAddress": "XrXMomJjGnxhGZch8qnz4SaBee55qc3nb8", + "payoutAddress": "XnfQdQKgXqSLzCp7Q3ZBDfUqeXiS6zxGiM", + "pubKeyOperator": "1393e79951b710e946a52f6522e648fed778bbc27a1e033f14e1c0d4d55273b177557045e0fe3aec35a4274a6a9388b8" + } + }, + { + "type": "Regular", + "proTxHash": "135273957ae87b5215742be73e3586ce758d8e7f67803ec145bcdccd299b7eb9", + "collateralHash": "9dcac7430c2075545f39781011100f895e2d767e2cd408300029ada25325ddfc", + "collateralIndex": 1, + "collateralAddress": "XjjTQGBDzCJUVQAJyeT9ycZJ8SRTaeGrfr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.129.63.9:9999", + "registeredHeight": 1363333, + "lastPaidHeight": 1926116, + "consecutivePayments": 0, + "PoSePenalty": 4219, + "PoSeRevivedHeight": 1904884, + "PoSeBanHeight": 1928778, + "revocationReason": 0, + "ownerAddress": "XpdiVuibqeSSqJiRQUkoZqQVk2UrAtymfm", + "votingAddress": "XpTtumqHeA5TwriPhWBLa4X2v9Vpx4J9tN", + "payoutAddress": "Xwue8Hi3jvs2Nt4rH5f6mW1BHXMrFT8RMV", + "pubKeyOperator": "8fcf96eb08d040a75fdfa0e7d87fa87ed77fa73f7fc9d2cee46c209d975ae2e50865c52f209f76deeb9a907dd5d07a2c" + } + }, + { + "type": "Regular", + "proTxHash": "99cdfca81e4fed19bce4fe261f90dfa7cf0aeef33f9c57e7865dad491fdde1c7", + "collateralHash": "749837b85e9afd699e651a9b3decdd9541ef3359df0bf7d4b6447affd551b6ac", + "collateralIndex": 0, + "collateralAddress": "XuiLfg4PKeSVMTm98AaftJn5XTXieJhtqf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.129.63.194:9999", + "registeredHeight": 1365004, + "lastPaidHeight": 1926117, + "consecutivePayments": 0, + "PoSePenalty": 4216, + "PoSeRevivedHeight": 1904884, + "PoSeBanHeight": 1927626, + "revocationReason": 0, + "ownerAddress": "Xo71cPaShL6Nq1vLua7fJncv8Fgtn5FLey", + "votingAddress": "XvF7L3ipFbzidKUn1DMKMEi8AM4x24jd3H", + "payoutAddress": "XuMEWD2pSDGVgEwQBmq2zqYvjLZMkNMAry", + "pubKeyOperator": "8647f609c4d9a35da1c262531abaf99022dfec3bd6bdd379265f7674b2e314fc1bef866290f19f87edbb6714b3715d49" + } + }, + { + "type": "Regular", + "proTxHash": "47a1e39dc22fbec4505ba5a01b10a16b1099ee54d925c0702271b48e6bc1c661", + "collateralHash": "845d7b40a09b747bbcf9fa7589c86ff80e868c96b86de97bfb7b32c587216084", + "collateralIndex": 0, + "collateralAddress": "XnMmMPkpCMgzrEfY9qxeSXxh76cEsPeUam", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.242.89:9999", + "registeredHeight": 1365228, + "lastPaidHeight": 2127239, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvB8FTvV8nYpJUVopgMabBTeSTKMfTQYC7", + "votingAddress": "XjPRrTDeDJWSML2PTGS7yFDYZPq4HyfriB", + "payoutAddress": "XnMmMPkpCMgzrEfY9qxeSXxh76cEsPeUam", + "pubKeyOperator": "0936107afd59a0433113ee3d77ef0ed7bc48790f70959460fdcac663f7050b4e48179c68228fe15f91dd6c19c702d0c8" + } + }, + { + "type": "Regular", + "proTxHash": "cf2b6c9a393710d509da9453a9952374cbd653967f6236621bc530f9b47b8fb8", + "collateralHash": "b53faac9a25fabb2ab01560f889c5f786229616ffa06eb2b1701ffecb71876f5", + "collateralIndex": 1, + "collateralAddress": "XxHFAWeV8wb9ds67ZJ5xProZwATEbsf2Yi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.158.27.64:9999", + "registeredHeight": 1366586, + "lastPaidHeight": 1926115, + "consecutivePayments": 0, + "PoSePenalty": 4217, + "PoSeRevivedHeight": 1904884, + "PoSeBanHeight": 1926186, + "revocationReason": 0, + "ownerAddress": "XmzogEUfTpLXtLAh2MphTj8hz6gTjmUtJm", + "votingAddress": "XppcmTvPKEhRfuiwPLSHKN7MdaBNTVzz5Z", + "payoutAddress": "XwXGhvjfvB61DvSLnJJPrZb1RHJCXQ5j6k", + "pubKeyOperator": "10b0293bff68aba431036287b89ec04dcd19334e82839f4f64fb43c691b255e84544f45c5bf3e5f4b7ec3775f2d8905d" + } + }, + { + "type": "Regular", + "proTxHash": "4e0ebb223e12094323c7d6c4b8d543bacd0a468248b01c85f0d7a79885f52d35", + "collateralHash": "dfecd894a2c3ac7083b0d31f301f8d53472f29b907ba1fd4bc06c513c05ab3c3", + "collateralIndex": 1, + "collateralAddress": "XfdXpSNfDnSJmFeqR3oiGXmSedSQYn9XTc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.224.28:9999", + "registeredHeight": 1370239, + "lastPaidHeight": 2127276, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdoF3opZMxSbpJyyGvxT25hvsTg3j9Ge3K", + "votingAddress": "XakrZRBgDMtcBUPE7obZ6v5JUijQUwJ1U1", + "payoutAddress": "XfdXpSNfDnSJmFeqR3oiGXmSedSQYn9XTc", + "pubKeyOperator": "0704c5f35bf5e5bde34391886bd2ca1db359171c09b72f750929a4da6b8d3d6a72385f504c67d3af107ff2095129801e" + } + }, + { + "type": "Regular", + "proTxHash": "146c92fef58ad6306da03231e47afc5f72c1e28c25b490a36f3d9f2d9692f987", + "collateralHash": "eed51df26013a4d878daf0ce197d1872621457fe1b80d672e64cd51180c2d5f9", + "collateralIndex": 0, + "collateralAddress": "XxjLor3SS28t4EWQEG9GqjjdD11k9JgDao", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.33.191:9999", + "registeredHeight": 1370240, + "lastPaidHeight": 2127279, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdTun58isPYxasB1iEBV2SRmUGsfRegtpr", + "votingAddress": "Xxk55k9poMPebEgBCaEhCbnPTL2aAL3ZKw", + "payoutAddress": "XxjLor3SS28t4EWQEG9GqjjdD11k9JgDao", + "pubKeyOperator": "0f9a71ec6f7434cddb53401b5957b0c3f67ccb94f9b298dd233bac50b30dc482cc04b0b11273bcd22e2b0cf9f094ded4" + } + }, + { + "type": "Regular", + "proTxHash": "d7a45875823c09164b36a35b7423322097df0baadc3336e2fed0a18f946416fa", + "collateralHash": "b2945ff640be3404ac0319a3b16f803449f43dfb4b5ebe62e3f2a3230ee25314", + "collateralIndex": 1, + "collateralAddress": "XjZSkUYGQxsxAhdGiPUcNwUC8w66TPnu9j", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.118:9999", + "registeredHeight": 1370338, + "lastPaidHeight": 2127327, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsmKYFq2h5ofawLdSYL1firE5mmyjzFnHg", + "votingAddress": "XnKtiLRe5wF5hxx6HmjkPj2tvmHkteHMQK", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "12129b24f6b0d22e810f80dd34005ba7abe1fcfbccda733f34dec1072c5abb3b0623096100491e01bbe3937ce91fd16f" + } + }, + { + "type": "Regular", + "proTxHash": "aa630adf5305e0880dec840d16a896b368e9e78500f70993937d3ec417cc1a35", + "collateralHash": "4c8f31a0db8bd442a4bbf999f232121755958f415f83439f1fb809b928e86b79", + "collateralIndex": 1, + "collateralAddress": "XsMSihhFvgMGAYREtHUigUA1FNzS3HFL2B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.243:9999", + "registeredHeight": 1370338, + "lastPaidHeight": 2127326, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwEzZRgkGqa765EJE5fhnnsdnFep2cFbE3", + "votingAddress": "XnvKtQ7BZ5bZfX3JpV88s852MaB4pnrS8L", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "1960e7a8b3ae22b3332b7b8b3abc5cc973e55c57e084bb304dfa81220a4954c855cc3149856df1abcfa9097ac6fb44b4" + } + }, + { + "type": "Regular", + "proTxHash": "22ec6f3cdfeba23d345452f81d1fdd0572a14e8457797770c1749ea2a0fd88c0", + "collateralHash": "697d87212dde958d12998a00d6cffeae7674ad3fbca9ae92a3afc60c41868d04", + "collateralIndex": 1, + "collateralAddress": "XqTsGnpNuWzSCLkwASr3wzBKrs55qAbx6f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.129:9999", + "registeredHeight": 1370339, + "lastPaidHeight": 2127330, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxihd626znnKDK9SjWpDGF84RVgq4MEoBa", + "votingAddress": "XohA3a8Le7ihx58rayjdVzfD1VCEZaZXdu", + "payoutAddress": "XwvpyookBdZoUN7t4eFHarcvLCyhZYckFB", + "pubKeyOperator": "15abed675f69ce1204d715b1ff44d24c3bc4b067ac2db6b2baac5e000347d0a9d95b17e8756aaea097df51fad68cb575" + } + }, + { + "type": "Regular", + "proTxHash": "d20fa966769975356d5ad281c77a1a9431bdf2b8dcf8c86d09186cfe173687ae", + "collateralHash": "0c6eac194ec3874292406955b062f9a7100763f2026091bd3f1e7eb5b86146a1", + "collateralIndex": 1, + "collateralAddress": "Xw8VkPDxA32y5fo41g73XfAMy5oDPDg73h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.193:9999", + "registeredHeight": 1370701, + "lastPaidHeight": 2127553, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XezYyehtoAsHjwkuc2djjgAcCFDEZr8ufc", + "votingAddress": "Xhm3Kt4Gxenx33PjDqRmohriQTTzkB8tFr", + "payoutAddress": "XqgXLJqq88FMBSRSzJunmYF2LH3dWBbdv5", + "pubKeyOperator": "8898a39b22fc9e23db59fcc00efb970866f947f289cc549e3ef0c96f017f599447112c28bd26b43bac36aa0dbad4ccaf" + } + }, + { + "type": "Regular", + "proTxHash": "e2f7084097a3b7b1e85df51e919995db6d572754a0b336d366117205b49a67d2", + "collateralHash": "96def2677ba1c09dad74f787a5dbe4197794cb532c8e84b0ea7395d155835497", + "collateralIndex": 1, + "collateralAddress": "XmHGCgNaomtQ8QbBhf1DbZenzoqF6gy3at", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.133:9999", + "registeredHeight": 1371729, + "lastPaidHeight": 2128408, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5KFYSjkwfHqJtKcStwkcf2gwbWJPxwMM", + "votingAddress": "XwxxFZSQ4V4vuYxeBuueh7xNPEpDvjEgVx", + "payoutAddress": "Xmah8zbEr9o3wxN6UzHT1SCz5iAsFXS1iU", + "pubKeyOperator": "0968219ba8b3d07f6ca8033e06b99bacdd7b9dd8d0d919d2bd8e3f3fff50fb0984d91b63feaa4311ab2da984590b4068" + } + }, + { + "type": "Regular", + "proTxHash": "ef9c6df4292b36951beaa430664a3be60ff3c73f197894c447e2208f3433b801", + "collateralHash": "be095d0ae5848033c8ad2d7fa12a860ddf302fd73407e8e62ae308b6f6fce695", + "collateralIndex": 1, + "collateralAddress": "Xgj1wegndAw6EYcZUNkiSSgk5pDnTPo4Ng", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.117:9999", + "registeredHeight": 1371729, + "lastPaidHeight": 2128407, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhfJ7QEURKySav6Z4VHLWvJWjknhzEHNwp", + "votingAddress": "XsZyQWqseeh8BrMGnLkQNwzXh7HnbNpjNE", + "payoutAddress": "Xmah8zbEr9o3wxN6UzHT1SCz5iAsFXS1iU", + "pubKeyOperator": "96f8953f1b1a7b788e77166535d3c9181e017dfef052f1b09eaef4c4df71769439e305c0f920fed626501e6684b62014" + } + }, + { + "type": "Regular", + "proTxHash": "994c2f6c2d00b067e9cc91607ab5809edc8e41fafeeac77ec938bbf8fb6f6b04", + "collateralHash": "c056194a26611a0923cbc6ee02caf17c77b0c2fb077c3cb7334698026d6edc2e", + "collateralIndex": 1, + "collateralAddress": "Xj5ruHAAN6uwUo2WCTScqsrad7k5bSg5vT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.195:9999", + "registeredHeight": 1371733, + "lastPaidHeight": 2128410, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xokqh9cKbpuz8X8ZpZK8o34qr7pFekXqcf", + "votingAddress": "Xjhw4kATDtbjP8AMn1DP3UvQnfLBFRpVvB", + "payoutAddress": "Xmah8zbEr9o3wxN6UzHT1SCz5iAsFXS1iU", + "pubKeyOperator": "8b4bd11a11b940eb75110e0c5bd4f53e3774fc6b089d4812abf0fa944b91028d1f4161491801828bce72b8e56758755d" + } + }, + { + "type": "Regular", + "proTxHash": "5700bafafe1d403c2d4ba9b8f1a13d16890457c01d3f908fad407b2f2987e383", + "collateralHash": "87063617a6aa308c8b867796485fd3114d45810e5cd1475c397ed63336a65896", + "collateralIndex": 1, + "collateralAddress": "XrgxbZtPVeonNtHNc8rxPb7SEvR63DVZXc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.205:9999", + "registeredHeight": 1371735, + "lastPaidHeight": 2128413, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XotMWXR5D1ozwUmuHuQzKrzmBqvPD9YkfR", + "votingAddress": "XgvtxCw573Fgz5r8CjX7vPByGZVLHCrKiW", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "957ad9c8945a8e9dd96953c4251e296b68af247d5109ee3dd63de0800f0c890f98c1fb8c72c175abaac9abde3addffd2" + } + }, + { + "type": "Regular", + "proTxHash": "bd0ed565ce4d2b5cf4f0ec11b9ad5c46dfd647794dea47785f1ce2178f58b405", + "collateralHash": "40cb22bb9cc9bd0f7b7af03a1f14cacaa8fa4c3934057df1770b3cd3392c400d", + "collateralIndex": 1, + "collateralAddress": "XypN9kskAqyERij6rfecYiagDWZm6yaNEE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.152:9999", + "registeredHeight": 1371735, + "lastPaidHeight": 2128411, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqoLhZYmKfY2hFSYuWi9hAmFtc7iAgUEVo", + "votingAddress": "XqKqxxSvUoTxL94N27R7X262cV8bknyZXv", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0207579c663392f01ee6d367690df6c5a002a1f414e77149119b56e6ef435f00052d5d4a4c7d8b6f882e9e5fe15519f9" + } + }, + { + "type": "Regular", + "proTxHash": "a6237660068ca2e13e4179a19ed20d678d653c2186e7d5732bb012cfa94e06c8", + "collateralHash": "4cf1e4447aa04c6225a16a841284a1ad671c0ba0d4af8b08a6338baf653f83d6", + "collateralIndex": 1, + "collateralAddress": "XynXyYne3QWfpuQsK8W8aytxv7r68jxHEZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.55:9999", + "registeredHeight": 1371735, + "lastPaidHeight": 2128415, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkEPNEseC5jLn15qxByTmJnbJc2bybrVmy", + "votingAddress": "XwKYPkALDtX6CH6YrVjDXdY1xWS7ntnVob", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "14af3978b5ebbca357feaeaf936708d7a99d7698e0a1309bb1e99fc9274659ffac55c8da8e83f1ad76d176c7f83ad4a4" + } + }, + { + "type": "Regular", + "proTxHash": "44a4844a552002b3da4fc70d26b8864aa6470abafd1d32028ffd352ad5400f1f", + "collateralHash": "1bad79ddf329c6e2def42eab0d19da35c5955584b12cd99b8384077082286509", + "collateralIndex": 1, + "collateralAddress": "XhV7BKtrKqdrgSoUfwCeN1iQbcCHnc8FW4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.110:9999", + "registeredHeight": 1371735, + "lastPaidHeight": 2128412, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv6efswQnaQ3YKB4oReVWUJPxbZ7q1SyML", + "votingAddress": "XxcjXkr2BktQCBzudkk2hBXXUgVMxaPgeJ", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "9834170a604464e3878387c8b2882c435a661635bf31b48e2d8a7aa1f08b6ed5ea9c45efea20d8aa189b8711f80cee4d" + } + }, + { + "type": "Regular", + "proTxHash": "ca301c09908fcd2f7e46e26e5c55f59ca585b494f5065374f9829a4e2842eb62", + "collateralHash": "13c340784ef69b9e39871c7673deb83754411195393a0cacb262f7baaff333f7", + "collateralIndex": 1, + "collateralAddress": "XbbbjnAKg8GveC9tNKjJceuSgJ7Nyi6FUU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.19:9999", + "registeredHeight": 1371735, + "lastPaidHeight": 2127398, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1765463, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfqx8N9cDSzQpK4FP1xEJdzqS8adiDq2BX", + "votingAddress": "Xxc1ghAsqHDVEJyRFsU3dcpo7xJ9bhpYBW", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "82a604157069a745a3055025e33858c18da6f54410c77dee30c82db829d356e549f06d132fc32c7cd7e26d7ce204843d" + } + }, + { + "type": "Regular", + "proTxHash": "786ed984ab4fadbe69493bf98907acc62d13668f6e71725cbec8d6219f2ead2c", + "collateralHash": "019389defa1165aded59ac5c27b402ac19ef86b37e732d0aad851967bd3927ed", + "collateralIndex": 1, + "collateralAddress": "XvLGeCKUK4tuENnNwtRUZEdehudn2aBk1w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.212:9999", + "registeredHeight": 1371739, + "lastPaidHeight": 2128417, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk5JZgjBeV6njz7P8ywx7itBNathfqXgyt", + "votingAddress": "XoM2mgvnc3iePUWPkY4VqJdCNevqzMp2K6", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0c90c237db66c4bafc8078df5badf04a171bd8790077570d4825ebb6be6d12fd65e9cd2390540d038afd59343dccb592" + } + }, + { + "type": "Regular", + "proTxHash": "981f04ee0e01a31544d54e960b1389f5ebbed32efb48429e04e823b788f59233", + "collateralHash": "1bde354658b6f0ed91c4e25dc2c55bbcf03082d827ce1228654e6bd759514cd6", + "collateralIndex": 1, + "collateralAddress": "XqCcFX564ic4LkYhrycbiAdTimUmo4iMmY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.221:9999", + "registeredHeight": 1371740, + "lastPaidHeight": 2128421, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoAxj7ZpA2cvrRACM8RvaS5hxYoG3cWVni", + "votingAddress": "Xog9MX4SHetAEUR7sNbTQuSdDBtPKaCCbL", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "8d49addc10bb10d8b1bd3b394b80b03f42219553ca6e1e123fe86566d5380a1624b17aa8bc239e9b394f676a95546245" + } + }, + { + "type": "Regular", + "proTxHash": "97ec97773242ec1498c38e5dcf30b3c376feeb3e376e462549a2da418aa8ad8f", + "collateralHash": "bcf8061dde830a7e8616d76e8ccc534f350d68ae9f00b75c2e76dcf3b9af4cf3", + "collateralIndex": 1, + "collateralAddress": "XwrF7uWwUz2Samw3VTzsVYH8Ba2nXarb7X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.216:9999", + "registeredHeight": 1371741, + "lastPaidHeight": 2128423, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvrRCkLcyDKPBCNg7DXSCzi8BSD9LvcVuH", + "votingAddress": "XyVEt9zCSVGA6eZwrtHKKJqLEBi5S39J9n", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "81d89b79b719e75a0b1d343ca1ed9c5ec7b0aaa6ca52ea24097ce382ef592f78c54944da001b77d78ad1a5438078d9cf" + } + }, + { + "type": "Regular", + "proTxHash": "4f5ba9d8d25d5ee3d7e1c6b97a27df964fa994fe6561e942d28e24b33e11c986", + "collateralHash": "b617ebab853597f978872c2b1506ce96359764ffb0b661209c6fcd9915313859", + "collateralIndex": 1, + "collateralAddress": "Xrtpvr6qdfrzajF2ux7uWsWTGphee5vTfA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.68:9999", + "registeredHeight": 1371744, + "lastPaidHeight": 2128426, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdK7Jh5fEZibXQwp7p2gM88iDMXHgxKzEy", + "votingAddress": "XqCuLfY5douL2LrApSUUxAqRNrUogpiw8U", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0dde690e9bc610f5a655f485a47d778bc7151436ed48ee907839957b027afc753f665009122109ef348e9b6a6c907e59" + } + }, + { + "type": "Regular", + "proTxHash": "7d9d6d7d133dc15b27e31f134bb0ec757b1d16d2a6424fa762cd4bed92442659", + "collateralHash": "ad239bb6f0b9bc09df88bdae19898ca67fc3eb8eba82870fd530a3dadf01a86e", + "collateralIndex": 1, + "collateralAddress": "XhaANnQudcoNjmSoGcmRNtu1TB3hgEePDR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.102:9999", + "registeredHeight": 1371744, + "lastPaidHeight": 2128424, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxC9gqQMPgcJGSWma5i1kFgtpKwEkDosyL", + "votingAddress": "XqYGoi8pe9ovyVXWMPpPbxKXtnB2jgAZdU", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "93ddc281861460f7521c5e5dd292d21a04ed54e659b610a8110cf576b66f7d77178ce6a4d64e89e2f06946f4a24dfe39" + } + }, + { + "type": "Regular", + "proTxHash": "fd26c586441f0b3f96d4db897cf643c2a3fe59d2a85d82a7ee23a70e9fe58a31", + "collateralHash": "824b27692003e06062ce12b18a391b935e696d223c1a4f588b26f7694c6fba18", + "collateralIndex": 1, + "collateralAddress": "XqPxu1gWobZdDsnnupDBiBYDdFZ45xf74f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.195:9999", + "registeredHeight": 1371745, + "lastPaidHeight": 2128429, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpSjEQd3VifRBFC9CjvvugxzAU5uTAYJvU", + "votingAddress": "XvbHtBF2cRW1JM738Xe6N22ReYPFNfVuEj", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0a3c17c3f4ab83254cc4a2b9ac7560356740e2c77849cb9e033f41bf195efb2af67637d2d0109a5ae4f5667d770f5bed" + } + }, + { + "type": "Regular", + "proTxHash": "369ecabdda35bcb4081936118c165dc76b1595e03c156da628e9ccb99746ed99", + "collateralHash": "b9a13aa15313be3854cefc6f1df1bf55cf5f8e3ae0e72c4a88d03fbfc57bf628", + "collateralIndex": 1, + "collateralAddress": "Xg4yGyG3n8fPQAZM9gFs7ErVBXehXZfXLF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.220:9999", + "registeredHeight": 1371745, + "lastPaidHeight": 2128433, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeEnduxSGuEbypwE3cp6Gfjgg5n6MSUy4V", + "votingAddress": "Xr3U1WyFjgP3g2eWdQaCSB2aYzucmeeA6h", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "892bda25e986cfdce112814bff6bb7f01b5bba267f503902d006ed0c30c4c27b782bf3cdfdb761514fba52129e45f76f" + } + }, + { + "type": "Regular", + "proTxHash": "ae56021d72b82a35e8cf13588c9b309070bf1adcea4557ae50b16f1d4108c9c8", + "collateralHash": "8ccab5c1a4616da4ea1b1eeba6ffeaba847fc38dee5d7152f0e312ef7b56b373", + "collateralIndex": 1, + "collateralAddress": "XnQZHaUfGFd8vwgT1TrRytkgUeHF4EM4z4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.210:9999", + "registeredHeight": 1371745, + "lastPaidHeight": 2128434, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiYUboKcpcTwWEkYiMcmdGLCB1CzfZhKF7", + "votingAddress": "Xy27VNrpnEiUeSmbmAhmbGFGqk3SuWw9AG", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "831691e51184b59bbb130aef9fadc068ef877faad9fd7db92fcea7383fc798d1b4bceed4163c43eebf9a44f2faccd522" + } + }, + { + "type": "Regular", + "proTxHash": "c346b478160ab629c95194c023ad2d9826c2fdf61921fcfeae8f950b836b9f9e", + "collateralHash": "7951e0ce2a1c014b03f5955449db8cb5831b821abbf741e5cb8c7ddd04376f26", + "collateralIndex": 1, + "collateralAddress": "XoBB8sxP3s1VebZqpJct8nR9nCuLu8ULyK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.215:9999", + "registeredHeight": 1371747, + "lastPaidHeight": 2128438, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyKRW7nVALvsZG11bE7iyU5VZHGU8itemj", + "votingAddress": "XgZydkXtB6hsSy9V8jZd4KAM8WvU6QmvEG", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "806266f5dfc6ee2463ff58bbb94baca161e0e65c505395d6b76ea141297c1c0f5ccadd1da46a638b219fdb6c10626500" + } + }, + { + "type": "Regular", + "proTxHash": "5191144a3f105a2bc126d8f70a23e1ed62eade1ea9e74f693ba43418078694b2", + "collateralHash": "733deb0e6b212902cbaede6f38b3c2ccc04e5b73bf5f052fa906ce2ad99fb047", + "collateralIndex": 1, + "collateralAddress": "XtSr2SnnNnUP7YWKk7aXquM3TJpA3Gp2RM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.129:9999", + "registeredHeight": 1371753, + "lastPaidHeight": 2128457, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpRKws88NRBzVaXBRaJ29Zo6GR2MySFUKM", + "votingAddress": "XiU1YCHLwNHGBf14BmP7ubekate91DtrGS", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "14adb9dc7ba9379f76fbb3a221be50dc9841895f9d5d126712c9592ac42d40739cf1990f1252497d7db689c4a23c0b06" + } + }, + { + "type": "Regular", + "proTxHash": "f18613f323c19778256a878e0a387866d108e768349fda394a4d4f321f41cc0b", + "collateralHash": "4e00166fdf6e8b29648b8faa95e3705bafac9e10d3f2380d4337bcab22816aa1", + "collateralIndex": 1, + "collateralAddress": "Xwmh3z616SpaZcmHWv2a51q9cCqBgZHfRz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.131:9999", + "registeredHeight": 1371759, + "lastPaidHeight": 2127435, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1645655, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnnpqZmd1iDiDtK8KqFW2FWCaD2PjHrwXb", + "votingAddress": "XuWAgCAoVmNovc9zap2HVicNGiSaQz9ixa", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "934dccdaec10c23dbb5e2e42de4c78ee3e1d7b2628e686ab79c6fe693c4fdaa81f85302c01c4d579f2255277da284a35" + } + }, + { + "type": "Regular", + "proTxHash": "5486188ec8f0fcdba5e15b43975a1b273fbdcbcfa5aa3b1e12013294e0576d55", + "collateralHash": "3885d40ca7fc6ca7347c5c50d537703e4146d51d07a10c27d79fd467ecf65186", + "collateralIndex": 0, + "collateralAddress": "XodRyudxZRfwinnVgYbeN2sRvr7o9EpeAM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.171.193:9999", + "registeredHeight": 1372114, + "lastPaidHeight": 2127092, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuRPQBusNrjr1XPAD8XrZDGMvBaj2TWxA3", + "votingAddress": "XcDwc14e62XkkQvuLG6mE94m6DA2hAVxta", + "payoutAddress": "XodRyudxZRfwinnVgYbeN2sRvr7o9EpeAM", + "pubKeyOperator": "0918aa09e732aa263c78799a811b31230ff591807b50f93e955cc0692d6a418d1ba0609b5c46f1709d2a2c9216872c2e" + } + }, + { + "type": "Regular", + "proTxHash": "3f1c20766fc9d1bb4bf39e6184d8850a7d7d37ed604c432c4ec6c1352d9efb50", + "collateralHash": "d6241b205c94cfd6bae96b2183b52924c4a5bb4d217325bdb8c86712d4f8a9ce", + "collateralIndex": 0, + "collateralAddress": "XuNJRSYBXNcxCraU4ZHWU2Z7qkdVENzMJc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.211.232:9999", + "registeredHeight": 1372118, + "lastPaidHeight": 2126581, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985795, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyMu197eiFqLDszCt7hTXdhSEXj8MrSnHa", + "votingAddress": "XytkfYcH4kBXSSh4WJ6F9wjB5fJprQc8re", + "payoutAddress": "XuNJRSYBXNcxCraU4ZHWU2Z7qkdVENzMJc", + "pubKeyOperator": "8a42a53c9e81ee86f6064f5cc3a53494dd7617e40dfc26a3229074824792c22041d7b9ccc9b4ec55dc6cdf3b9b20c630" + } + }, + { + "type": "Regular", + "proTxHash": "bfa0e86d5774ebc680e9a836e552528b8c7871ea60c9bfa99e302b03e8aea6a6", + "collateralHash": "55b3b5716edb44127567e9ab4204d8eb38d0cf243b38d562c0b27d9f829f4bd9", + "collateralIndex": 1, + "collateralAddress": "XyLhtnKbjdKwifoJ6DqDHQrA1w3nv9v9GL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.93.221.139:9999", + "registeredHeight": 1373516, + "lastPaidHeight": 2062638, + "consecutivePayments": 0, + "PoSePenalty": 3811, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2063829, + "revocationReason": 0, + "ownerAddress": "Xr9Mu49W5VCMiYuWQ5yQR6cosV5r7LaoaC", + "votingAddress": "XyhfJddMEmcjAg2J71gASy5iwU2rE6SV5h", + "payoutAddress": "XqJAZqkeoHFT5XaepKmWiTCud2JQkGFehQ", + "pubKeyOperator": "93b19253ddb9d5f245be4551a39d51f4fc71e6653048e7a3dbb32896bf47460bb6621ac2133b7013cfd345b7fbe8e37e" + } + }, + { + "type": "Regular", + "proTxHash": "32eab155059d040fd9a2aae2c4ec4758629bd00d92e9d59e3f9ef691d2d89ef3", + "collateralHash": "646f000e381c15c9e77bcd866aeb97689f1ad5ea07a6248112acf3fad11e4b9a", + "collateralIndex": 1, + "collateralAddress": "XwagYR56XN8FfJmaXWR34My6TarSqCHWqP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.67:9999", + "registeredHeight": 1373800, + "lastPaidHeight": 2126372, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxrtF4EiAiaDv75BUFAqWeV425jYa4hiAG", + "votingAddress": "XtYm8G4pLZt78JAwapSHHzy7XA8R642Tyb", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "092283db11f10ad072ed256aea0bcab7ea617f7dd8f7758d5ab16e3d09c76c3c3218d274b2c1a8266f3cbc209a32c4cf" + } + }, + { + "type": "Regular", + "proTxHash": "4c987e42c65901e8109cf7dd34046a48829c0df71f018be2dfe2c377e6b7f6cc", + "collateralHash": "0a9b4b6e35b5b9d620a69be6724a7d51c73c3e69a99588124f4d40bfb18bc28e", + "collateralIndex": 0, + "collateralAddress": "Xj6XbcQkau8EdPmhg3n3bassDR6URD5DPH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.93.216.91:9999", + "registeredHeight": 1373862, + "lastPaidHeight": 2126392, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnEDLefVqdEUc7y1edfQBH8noZ4TEuoaeC", + "votingAddress": "XiUY6Pd85zHav5o9AhmpSxaPLEKXqt9fgT", + "payoutAddress": "Xj6XbcQkau8EdPmhg3n3bassDR6URD5DPH", + "pubKeyOperator": "0c7cee2443fb67f0d5b39959cfde7353cb938bbc814adf270997ac85504cf681f727076809e99b380ba2211deb4e3095" + } + }, + { + "type": "Regular", + "proTxHash": "6701c74bbd22b937616cd927afe043d8e26ea7261b6faee2599b62eeb2f66f50", + "collateralHash": "ee33cd7e40fd58a72b1a4e419e4e323e0ef2e673f8d9ad38da53a99c7d8453de", + "collateralIndex": 0, + "collateralAddress": "XoR8wXzL5Lh1TyxT4W46Km8MN3r3Aecc5Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.232.35.88:9999", + "registeredHeight": 1374387, + "lastPaidHeight": 2126739, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxj7kuZKQjpizbzRnUPvK7X7SH2v9o8v3s", + "votingAddress": "XyTE1Nm2dr7ZkjP6rPi4Zg37dSUV5TMAb1", + "payoutAddress": "XoR8wXzL5Lh1TyxT4W46Km8MN3r3Aecc5Z", + "pubKeyOperator": "8b2c822a369fc46b7aedb4a1f3740ea76b58242fd5749b2d6463267897c2e2ebede16e61fce20586c91254fb4b340acd" + } + }, + { + "type": "Regular", + "proTxHash": "b10d32ea73f52faaa9362c904f3b5f590d60b3c442333be2730ee43e71da7c02", + "collateralHash": "c2372b1daf3cfe6400330424026e430ce93ece1bb9b6f0b63f4a888e3cfe9872", + "collateralIndex": 1, + "collateralAddress": "XgVrFBit8H8jnKa3HVeQqiyCJWAp2bN8LU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.28:9999", + "registeredHeight": 1375457, + "lastPaidHeight": 2127430, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu6jzMuVvd4wfjakcznWDiBcDVNJZVCMXD", + "votingAddress": "XfH1L8uFb5xMtuWzeywk82QVbd5DRp3Kgx", + "payoutAddress": "XszWmcyionErdA5wxK5rZpp3MLLa2MMm2v", + "pubKeyOperator": "81bf020988b3260177826ecbd2d0ae0dcee620372adb2b732940f2dbb566b5f4e7fd71d90cc12c3714d3088b0ba8ae98" + } + }, + { + "type": "Regular", + "proTxHash": "8abcee559ca985ba03aee60cc6dd410c95fb7f377f26404a9e2c1dddc85fb71d", + "collateralHash": "995925fff797056dcb317079edc13544c6d8eedf43ae57246bd23fc68ccd4c02", + "collateralIndex": 1, + "collateralAddress": "Xw63PFg7vy3rZumKaWn5DRmopKGDcoJ4au", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.29:9999", + "registeredHeight": 1375457, + "lastPaidHeight": 2127431, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm5Mp4apmnhp3Z2aqXboVA5d64ztmuFX1e", + "votingAddress": "XcYk5cybbo3P966srDxH3cgR44RuyjB95H", + "payoutAddress": "XszWmcyionErdA5wxK5rZpp3MLLa2MMm2v", + "pubKeyOperator": "19caf6e624b23863cf713d186cf4b8dcecea8e3054fd355253105885f06410aa4c866165d0d1bd924890ebad0c4fa5ba" + } + }, + { + "type": "Regular", + "proTxHash": "b7dec9a8d2dd898dffd3a6eb2b89e919778c419832db7db8bf8d2ebd51bb9c4a", + "collateralHash": "639e0d400d8b98f9161539d75d9b55018138e2db921041528184d93a56e27973", + "collateralIndex": 1, + "collateralAddress": "XvSNDArGM8noikXVkFgQF99bddWCKfLDvV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.7:9999", + "registeredHeight": 1375836, + "lastPaidHeight": 2127765, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrGtxaAEgY26X6UC9HioEDBPmvUBffNH86", + "votingAddress": "XbvM53rJPowom8HVV7AAychBx8gq8ozgeB", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "8c05f87268f92ede6507d10d500b14c1146c77c1d57c14b27eb73463cf34f9e0ae199355e895479fa683e5abb60c6259" + } + }, + { + "type": "Regular", + "proTxHash": "fe5361fa539c657e2e19d5ecaff99e3a724db6d80847963ada26e65cd33e7231", + "collateralHash": "0414d0182e68c10fbe708136e3103c2e7b37b0e1af7a800ac821e39fa9790cc1", + "collateralIndex": 2, + "collateralAddress": "Xpac2kNW77NXcroQHXynrSnEgAeBMAk3Zx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.205.140:9999", + "registeredHeight": 1376351, + "lastPaidHeight": 1868891, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1865046, + "PoSeBanHeight": 1872330, + "revocationReason": 0, + "ownerAddress": "XyWZhmfyK7N1mojTCpUWxjbVe44X2Pk42P", + "votingAddress": "XpmeoyDb4JTXwwEahhr2DjE3Kg2Sf3SSyo", + "payoutAddress": "XhUzohasEFUhzfbsx95akG4hwKDSkB2q3C", + "pubKeyOperator": "170790a29d8f0b0489fa16c6962d8d55b8fba2168c891696d93064d540bcb3851f21edda80086e0e680c884533be33e8" + } + }, + { + "type": "Regular", + "proTxHash": "fdb3736a129c570538953f4a4af97969f4ff59fb8ca4edaf39a6d65d7c017943", + "collateralHash": "0414d0182e68c10fbe708136e3103c2e7b37b0e1af7a800ac821e39fa9790cc1", + "collateralIndex": 3, + "collateralAddress": "XvRdAofNFpouYvdoSTzMJwMpq9d2TpP3KK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.13.52.47:9999", + "registeredHeight": 1376352, + "lastPaidHeight": 1806962, + "consecutivePayments": 0, + "PoSePenalty": 4422, + "PoSeRevivedHeight": 1822808, + "PoSeBanHeight": 1823082, + "revocationReason": 0, + "ownerAddress": "XwhVvNEVkUGBfU5FNEiTosSoL4dKzHp9Zb", + "votingAddress": "XsPmV2wmxS9fX5Egyn96P4pegzJkHZwPqP", + "payoutAddress": "XyrWyYoUW8SQmjm3973FUcvHbRHz5V6QFZ", + "pubKeyOperator": "086a99752a3fa409f8fe635124950456337622d04df22e005b32db00c1c5febe2d42e3c33ed384c672d2015f5b7dd2d7" + } + }, + { + "type": "Regular", + "proTxHash": "bd0862e3546aaeb3ce1c6c627213014555bc0e65947998cc7f1a3cfac68f655e", + "collateralHash": "aabc25cbbd40818abaabd163f0d1a2d3c83779c6dd07e4aff7404818503e9e25", + "collateralIndex": 0, + "collateralAddress": "XcRuwHc8YTCuum3vFhTc7eWx69PArnkq23", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.11.194:9999", + "registeredHeight": 1376354, + "lastPaidHeight": 1868884, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1865043, + "PoSeBanHeight": 1872618, + "revocationReason": 0, + "ownerAddress": "XnMnVRMQW9oetDvjtrYevZ5UE6S6pMZfLy", + "votingAddress": "Xnws5acqCKU9vk2Kabx8Xq6j8kwZiuuCpn", + "payoutAddress": "XwLzYAtDjzHb1XCVuBZuqqoFHp5Qs345sx", + "pubKeyOperator": "05566f23c4f47a83cf13d43d035309e43a01351127880e73446784e2046ccf723a49e15e78f8a9b330a5bb429e990340" + } + }, + { + "type": "Regular", + "proTxHash": "4bc0865c3848003bbf7d3f031494aab9c1b0fa8124013908ca9e91f0fc5999ce", + "collateralHash": "d17b75d822d0ec927a01b9a9f9d9bf7243b675095c8ec64cc68d0405cedff652", + "collateralIndex": 0, + "collateralAddress": "XkFQAqtu4ZTo1Hds8xQTNEEvi8cAZudkvq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.129.235:9999", + "registeredHeight": 1376354, + "lastPaidHeight": 1868888, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1865043, + "PoSeBanHeight": 1872330, + "revocationReason": 0, + "ownerAddress": "XvTMg77K85KW7vp7cNbKSJaPBaj9HdHueh", + "votingAddress": "XehHXfb4XunD5vLjuVu6UJLkStpeMnSMbt", + "payoutAddress": "Xheeq7QGtaF6Q52vvZKUNrpX8UwLaQZGML", + "pubKeyOperator": "86b4c161539aa8643d4328b8f09f185ba4851c99b08c3ed14cb3b8a6bb932b7be2fcad59df90bd3f3710aed2f44d7eca" + } + }, + { + "type": "Regular", + "proTxHash": "06198421286efb254786278acb2f4fa121fb1e9700246c9d67ea18da9a8da0ca", + "collateralHash": "db6a14d251cf25b077222636b18e1d3e1701c970abcdfb63de0a0eba724e17f7", + "collateralIndex": 1, + "collateralAddress": "XnHhGkkYpCpb6CHber2nLJrA8NYay2rZAG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.160.134.116:9999", + "registeredHeight": 1377212, + "lastPaidHeight": 1817129, + "consecutivePayments": 0, + "PoSePenalty": 4423, + "PoSeRevivedHeight": 1865535, + "PoSeBanHeight": 1865994, + "revocationReason": 0, + "ownerAddress": "Xu1PJRJekaoADG7nn3eUevd86E9wFAgphe", + "votingAddress": "XuEbWA2ojMEfvDrSmaFrfncxoq4cHcy45x", + "payoutAddress": "XruAznQ7mtcFfiGFyGjcS7e7W6LS2Myggs", + "pubKeyOperator": "1669b3ff2748861473f72f3cf92091b934820f340b646227a9c2c936ac0a3304af3a32cde25806ccb12d89c1adc0e1b2" + } + }, + { + "type": "Regular", + "proTxHash": "4309efc75b64d77fd439db2d03ef098077ee6d35a5e48bebc158f7c58a561c20", + "collateralHash": "a73102082bd4e837d9851e4b9a9990807ce9c19f97370640eb91cc3d2fc54b3e", + "collateralIndex": 0, + "collateralAddress": "XikgZh3Ux27ikUgndaeg9mizu7VmZK1T4L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.247.70:9999", + "registeredHeight": 1377213, + "lastPaidHeight": 1803484, + "consecutivePayments": 0, + "PoSePenalty": 4422, + "PoSeRevivedHeight": 1822224, + "PoSeBanHeight": 1823082, + "revocationReason": 0, + "ownerAddress": "XrYw2QH7rrb9FPk9z2FyZLx9GNgeAFH6Ef", + "votingAddress": "XfCHLRHPkknViPz7o43cuR4YQhV11ad4Ct", + "payoutAddress": "XbGxRxxPk2x9exEA8aAN1bVRZK8RqJLgMM", + "pubKeyOperator": "8c59300831aa194b99c05622503b0406874efc2542e74054b3f6a16622765649fac27d2a462f3ae58abcea95f6094861" + } + }, + { + "type": "Regular", + "proTxHash": "ca1318207c873a1c6623fd81c44a6dd6fcc91fafd613f6c311716f76fc581795", + "collateralHash": "efe8ecf5019198d2a814e84dc332962c83997babf7fa417fa0d44e55f158e5f6", + "collateralIndex": 1, + "collateralAddress": "Xi2bQW9DVW39LgEdSKDJmSmvx6fS42ESkZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.146:9999", + "registeredHeight": 1377280, + "lastPaidHeight": 2128874, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsBaKoUpqYQaGf8Eu5XsCmvEiUmwydjAaP", + "votingAddress": "Xo8hZJNBKooknAfNHASyTyUH68do4W3uTJ", + "payoutAddress": "XosDLnA2WqSMeDWY2DHtNboirQNg8wsxZ1", + "pubKeyOperator": "16809c908d040c3752a78315e20c092256f97bbd274dfd4a2bdf1a25500f8f4a20b389d9897b109bc5c1acbd14ec85ff" + } + }, + { + "type": "Regular", + "proTxHash": "58be6528adf1438d2259604d382e8ed3993c01051fe039491d440fba9160bba3", + "collateralHash": "db6a14d251cf25b077222636b18e1d3e1701c970abcdfb63de0a0eba724e17f7", + "collateralIndex": 3, + "collateralAddress": "XyXWLVmik1CzszHhpkfNNWFpg1Fffn1c62", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.25.132:9999", + "registeredHeight": 1377548, + "lastPaidHeight": 1868885, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1865043, + "PoSeBanHeight": 1872618, + "revocationReason": 0, + "ownerAddress": "XhrdQ9bAem1hSFLGAXACNno1CGhGhcktW8", + "votingAddress": "XvzwXiBRqeU7FitJTi7EvRw1DXFEzEutU3", + "payoutAddress": "XrCwnncqbTZh7qZKZ38G8jJq3RYv4qzZ2V", + "pubKeyOperator": "965b070145fd09b66f7b4e7a8144ae5db80f1c22cbe43de23131a4ccc3cf7631cef1cdf95502b8225edab6b040e2e4bd" + } + }, + { + "type": "Regular", + "proTxHash": "d1aa0f8d745d9ba7fb319685b22438fc70c64183139467b0ba75a0a83a94f1f9", + "collateralHash": "ea0500670bb3e41a6054df5ff9542a34fb0b8a85d73b505bfbce3a7820434f50", + "collateralIndex": 1, + "collateralAddress": "XoVaBY67YKxiFwLQiEybzZYPXbPfUcAjdq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.119:9999", + "registeredHeight": 1377604, + "lastPaidHeight": 2125797, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcyndXUQdHMcRFDDWwDZyvdkF4pHh6KHRk", + "votingAddress": "XqAaSZUBUBhrpxuyrTKBUqoMDat5hLhzpi", + "payoutAddress": "XnkfVZ7G69sqoBqeGh2XWFoAdFnyRQG3UK", + "pubKeyOperator": "972d111d87b5d8944e0afb393eacc0a48ec72d06fa542c8bff2de6160675c06e6c2341a201009bb0ae4496b28bd2dcc1" + } + }, + { + "type": "Regular", + "proTxHash": "45610d400bda9659dbe235d16ce78565913070c7465677b13622a454e8bd1c09", + "collateralHash": "023ab86633fb8c7a44c498b658e3735f88d2e2287df5c7890318af2c76489928", + "collateralIndex": 1, + "collateralAddress": "XsUhL5xmbUmJGgaiTfuPSCQJRRiJF5iYsE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.33:9999", + "registeredHeight": 1377640, + "lastPaidHeight": 2126547, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1609746, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XubMP9oDCoTvwtLcnCjtHSrJJZ3tqKYfoS", + "votingAddress": "XcBgFeddSKfEiVRP4pNYbjc58y9vQ5iWqD", + "payoutAddress": "XnxavbcVZaqdkhCtmMtvMVU8SBfMf4GoY4", + "pubKeyOperator": "985eacd343723c3225239694b54aea3617db134ebea57245358bdb85fb187e32326bf3747a3410d0605a279dd7da0908" + } + }, + { + "type": "Regular", + "proTxHash": "9a2fe3cde570ff56303bfdd29b7b386659a6d75e18f28cf62d0ed5d2000fe681", + "collateralHash": "218fe03ef1d13c508e7ffe3c96cd7b6f190091b0b7675322fb88949c64994159", + "collateralIndex": 0, + "collateralAddress": "XpFAUxoQVYhEw4bzGmrVMoLXoCU6VWw8DC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.131:9999", + "registeredHeight": 1378832, + "lastPaidHeight": 2126767, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1791403, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoMrw7L7uTN8pju6ZZUk7JBu4reB5uiL2x", + "votingAddress": "Xp4deDCfPFsUg89DvsQKczLz5QTL7VX3TH", + "payoutAddress": "XpFAUxoQVYhEw4bzGmrVMoLXoCU6VWw8DC", + "pubKeyOperator": "855b7cd85793437732071f47c678d891885ecb4d2577b444de28b454ec6ddb4712ba357dc156b57406e0040f44147620" + } + }, + { + "type": "Regular", + "proTxHash": "b9e94419b8423ad9df3b7465e5278db5bd13ec2eefd8dde963eb8142b1cc72a1", + "collateralHash": "c9686af1f3253920c91661d51400f946a787c3291c115aed8910a6571c8e5fbd", + "collateralIndex": 1, + "collateralAddress": "XmKuh4UmanfnnYzr6cMxxdzwEQUTWNQcJ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.185:9999", + "registeredHeight": 1379367, + "lastPaidHeight": 2126919, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd2keVmCe4zHrQCGF9GZ5mKTExXaN7DgHv", + "votingAddress": "Xv7R5NJFc4BkRRNTfw8RgfsUDsxdb2TxCA", + "payoutAddress": "XsRGHFRxH5xvk9Bi3hPnF6q58XvVPdnStv", + "pubKeyOperator": "89511b7f44d81a748038f01d29d507cfb09c28e17b30da1a7d2087502b35e7c746fc8ab745201eb47c88cceadb0f9e6b" + } + }, + { + "type": "Regular", + "proTxHash": "5e3494b75a525b24d257a7973d4de3dc77cb13b7380f2266e385cae950ed70e7", + "collateralHash": "60533e4fcc00392787b07b30c991e08805ee38748342bc5026f3548f10e1b83e", + "collateralIndex": 1, + "collateralAddress": "XqcMRrLbhCut1DeFJYLSVNtYNTWNCEBz2w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.38.179:9999", + "registeredHeight": 1379835, + "lastPaidHeight": 2126693, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2036205, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbW9b355ZMAhY3avFwsahNbSMyRcPF8u5Z", + "votingAddress": "Xqwaj2FHRucZcfzMUgVjQfkdXfEzxD4iRd", + "payoutAddress": "Xnv6ux7TaGYfYVXqvzvm5t89PPAMyoaNqp", + "pubKeyOperator": "811e7e9fde3ed78cf846ebceeac941e26f8e022c532cc2e09b7261183ce5fac1243427d1b0178fb32e989152751a31e7" + } + }, + { + "type": "Regular", + "proTxHash": "961bd963d839689391eb6171fc76ef819ef7c550b9e7e97fd72f7a9d1d9c509d", + "collateralHash": "873acacc4cc5972520b3b07ff7b4fba2d62491e53f17e9b5c4454c92ff89dd16", + "collateralIndex": 1, + "collateralAddress": "XefpTHvmF7VCjrPr3bBrWZYHDDdtjCaYYf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.64.149:9999", + "registeredHeight": 1379852, + "lastPaidHeight": 2127249, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrviiMVim13efNekFfaSvRde8YGrdcYjqX", + "votingAddress": "Xr4ZCk3crDzbDkuujey2d4Jq8Z4ySAbUaZ", + "payoutAddress": "XekFbXWLVGSN5THoZBnibRsYre1iwYiTSP", + "pubKeyOperator": "13ceace978199ed24704deae275a4c05239b5b23e85c81854ee11eeb00406ab9da42de1959e2d223ff978e90ab0e13c5" + } + }, + { + "type": "Regular", + "proTxHash": "267731517bd29073c4cc4c4efd0bdbcb3beadde5b3d0db4cff97c229adbd8c74", + "collateralHash": "8816158e1f25e2bb342380b0071418dff16568bfa8164eed516194c9504bfb77", + "collateralIndex": 1, + "collateralAddress": "Xe3v6EfjTo3aaRsonuHiv2edLTP6pDT92Y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.81.29.28:9999", + "registeredHeight": 1379855, + "lastPaidHeight": 2127260, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvtncBUiKevTJhcP8YfFXLkXPhJcZxLs3S", + "votingAddress": "XgYxExauwhkZ1GCCspvD4CBXHhvZa7HNrR", + "payoutAddress": "XwpPRcHDkebWRiQETeFRCUdZT43aDprWBr", + "pubKeyOperator": "0f5b1505ed46e9855bc7c1591d3a86652f226be839e51fa2d0d5b285d84b738801329022f3bd5f561c6344bf4a357071" + } + }, + { + "type": "Regular", + "proTxHash": "ce07fc2a6b3b0db2c91a26eb796f41e12c0471a4068c5c190bd001d145c6dd0d", + "collateralHash": "d766c9ecb24427c098fa3b35d4bcd099975408497c3ea3d15c099002be08bd2b", + "collateralIndex": 1, + "collateralAddress": "XnKmqL4SWtM1mBwrwcL77KCrGCJEMxLm6i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.2:9999", + "registeredHeight": 1379875, + "lastPaidHeight": 2127290, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwRbMubdXqHf73Z9335AMsKwzbpz7PGYq2", + "votingAddress": "XiWh9rNmC8G2N7NnBZnJ4mAi56Wa3uYKWW", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0fc3b77c30f2316538d4d8f876592e03b15b424929a1d4b0044102d9861120b28c329ad2a80d0bea62cb0ecbed14f99e" + } + }, + { + "type": "Regular", + "proTxHash": "b512fbd9cd89a6cb70ef2f4cac258b5139291cb17fdeb4756fdb9208b398e2f6", + "collateralHash": "0730b9ebe1707b4e0de9db1caa863209e15c45e973393b066efebb1eccade6b3", + "collateralIndex": 1, + "collateralAddress": "Xozzpiuhrw5pZtD98Z25hTnCXJz6bUAH7o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.133:9999", + "registeredHeight": 1379879, + "lastPaidHeight": 2127292, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjp3qoy6bGCZM3fLQCGsv28833BNMxAdXP", + "votingAddress": "XjngzKGVirAhB5YfkzbSdPMHo7cUzFXt4X", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "8a93b13b4b2ad3c3781f92b08f7652564bf3323c88ddd9390456ceae06f68d1cdb773f2216a2c0a4d0d4784fdf4adcb8" + } + }, + { + "type": "Regular", + "proTxHash": "102e7f07f8c40613d8c4d3eede732ccb02c11a02948b5ba1ba5f1910ec4cf1f6", + "collateralHash": "9d3a07679bc65bdded50b728c8e700b00f4e761009161e9c603884aabe420c46", + "collateralIndex": 1, + "collateralAddress": "Xh53Xike1EMxs2aCkS8uuU3MgENdFg4Wtr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.103.120:9999", + "registeredHeight": 1379891, + "lastPaidHeight": 2127305, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuQEYGp1tyJ3DzDbUC3w6k8479BFtKCbyc", + "votingAddress": "XspkJMnS2yqcz8RtmCCWwqdgA8QDZ1qhKp", + "payoutAddress": "XpdusQZEjR9UkbphAz4poQjm7Hvt8Lg5yE", + "pubKeyOperator": "03f1c15a32c89cbac9277ff9b243e8c6a5b4267181e7e0800776efd8d9993873232eef1587ee8e7702289c99d5a11de8" + } + }, + { + "type": "Regular", + "proTxHash": "9e0b9df2281008a945fc7eda64cc626c7c852de8aa82410473b693e2bc8ad47b", + "collateralHash": "24104742bae2fb98891f8d7d1525627c7d11298f0ac4e89cbc9f70a2bea6aff5", + "collateralIndex": 1, + "collateralAddress": "XxskyWVqcxo8S8FVKkce8wGN3VoJWCnLT1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.164:9999", + "registeredHeight": 1379970, + "lastPaidHeight": 2127333, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdyDiPqPkvNaREaE6qn6pR3q5LY228MZpC", + "votingAddress": "XoP6DyrinWT5hxciQfyRM75fcNTWNEJjfF", + "payoutAddress": "Xji582x7953s41miHyc4hQW3XBAC8w1jCe", + "pubKeyOperator": "8734d4d2ebc8bc83ef298b70e27336697cf9e38e8c075fa753997090ece2484c77538f8e4b1aa71b5872e8ee1415b544" + } + }, + { + "type": "Regular", + "proTxHash": "4be3c2d162feb2b029a95e1c80d3302079f03ba19980cd3d7c3435368ce5942b", + "collateralHash": "e1cb2b1d0ca295fff1ecb854ace2f91e5fec73973ffa097ede05516ac16f32b6", + "collateralIndex": 1, + "collateralAddress": "XmbkUXQNet6PebK2XnxueX46MmbE39H3gP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.245.73.147:9999", + "registeredHeight": 1379988, + "lastPaidHeight": 2127336, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu526KsybJCvpUpLiiPBaT2BvT6HzKGWkS", + "votingAddress": "XjUdG4rc5TjTA9kf6d85174RYocruTomba", + "payoutAddress": "Xw2MYcavwwuXZcvPNQEBM3SkLjCZCjqWHT", + "pubKeyOperator": "0c97c29040ffd46dacafe8f9a659349a023562de75f04c52b028d2819dee8abb21cb7c984b161b10068be1342378744f" + } + }, + { + "type": "Regular", + "proTxHash": "0a80702f607f463e2fb71734a2260c5c87621be34b0549564d8b6eb3540f5738", + "collateralHash": "dd531b0c53a1f7968a47021ce88b1ee4d21efc3aa18fef0af573e3afc5679b54", + "collateralIndex": 1, + "collateralAddress": "XwLNa2KkWdvMzHnnZWed42ABkcZreCJxe2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.29.39:9999", + "registeredHeight": 1379994, + "lastPaidHeight": 2126966, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1822220, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpmTfZ1qiNieQQ7WC5He4K6sB5PovT74e1", + "votingAddress": "XipP5X3UUR4GdxWmRqzS7YsCvVmRskCSF7", + "payoutAddress": "XjX7U15GBargA4H2bw57uKRPRwmige4qJt", + "pubKeyOperator": "0c62a241647ffe7be4203e45588854e294994166538bb97b4a6b856c33996a81c3cb91e70ffb57418ece7e1c1ab91b93" + } + }, + { + "type": "Regular", + "proTxHash": "ede748fc7538d49909fec18af218365f4cfcdcb3b5340ef338fbe479b14525ed", + "collateralHash": "2726509eaf37b50ee8aee5e04d6baba0db8f611eb98d19f99256b8af1a02ad74", + "collateralIndex": 1, + "collateralAddress": "XboZLfwtoAD8SU5f33cTNjQMdWVBLBjFVx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.38.199:9999", + "registeredHeight": 1379999, + "lastPaidHeight": 2127364, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdaAQs6y3zpGyZ8C36ZwRzxCfSM5PprQHT", + "votingAddress": "XqoW9TD3wqTprfFoLyCx7MYcYHe1KRm97R", + "payoutAddress": "Xe1vhUsvVtCgoys42DVUu3ZEjQ1WBoofFA", + "pubKeyOperator": "17beeb816b4793e3606dda013173200b8510c58e10512fdf4a38e33e3e5c4c64ba0fcc7af7eecc17b0b269c96e529da2" + } + }, + { + "type": "Regular", + "proTxHash": "9802e401e1df2f2256d550cd94ffd2cee91f4ebe012f9ffcb374aebcc0614fa7", + "collateralHash": "36fce50f8c194408836d9e446996b05f36d7fb86b7c8f1d0a246c494815fe7ed", + "collateralIndex": 1, + "collateralAddress": "XeWKstBYTytYG6E1wFSpu9AGKtQTSasenY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.71.239.75:9999", + "registeredHeight": 1380689, + "lastPaidHeight": 2127393, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2046951, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbkAEW6vHvb4F3PFceRhUmeeMaH6fJFXMc", + "votingAddress": "XbkAEW6vHvb4F3PFceRhUmeeMaH6fJFXMc", + "payoutAddress": "Xts4gsRHqnfHhpuTkFoEez1ysqBtwZeBon", + "pubKeyOperator": "098c4f7e8c28dcac4c13972728cb28cd38a6c5db9f2db8d377b258b225e4f81478f6172fdc385d9d4a5077412aa7d95c" + } + }, + { + "type": "Regular", + "proTxHash": "18022f3f8f7c890006d1065efc3efe4e705848e80adce609fe5de79d2cef4b62", + "collateralHash": "02f1eac8e7f84a0b94c2be9ce5e68edbe19fbe949e679a58caae5d2acf2e9254", + "collateralIndex": 0, + "collateralAddress": "XbD1PqbXGztTmo3EhhiydRCeEyjX4wc4pN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.148.208:9999", + "registeredHeight": 1381732, + "lastPaidHeight": 2127095, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XexEos4bvFPQREocTzJ8rnBeYKtRuTsa4w", + "votingAddress": "XpkrbQnReo59zuipfAcL8RndeGZ1QR76p9", + "payoutAddress": "XbD1PqbXGztTmo3EhhiydRCeEyjX4wc4pN", + "pubKeyOperator": "93236879193f2fd572297b3c1ef5710b89386946a0baa0effa35919e2e577c92b591232184847606c72a44bf6aea1473" + } + }, + { + "type": "Regular", + "proTxHash": "29fe5d3d59a11e1823bb3420ed26b1cb756eafe1959cd4d6b5b0aff7c498a36d", + "collateralHash": "5fec2981e240b5b888ed763d1ac3d13326b7de44379af807eb6700b12ef82256", + "collateralIndex": 0, + "collateralAddress": "XkBpuSAfYrgKmQVnk4JZiK7bmhU1Ubt1i7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.182.52:9999", + "registeredHeight": 1381735, + "lastPaidHeight": 2128787, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936983, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyXGYdwLVR6UxmJFkytUUJMZSvoFQmP1CM", + "votingAddress": "XndBNCEAQFAW8WbomraNAmh5UvoWkoWcKH", + "payoutAddress": "XkBpuSAfYrgKmQVnk4JZiK7bmhU1Ubt1i7", + "pubKeyOperator": "029879ce12262b43f98bd93b75b9841edc7a593355da1c7704056eebd4a6e6470f048fa50af33c2c7ea125e552c5218c" + } + }, + { + "type": "Regular", + "proTxHash": "34fdcae80d4513154cac7d6e5c6df64d9ff482107b0f9efaa7b7cf3bb1ccb517", + "collateralHash": "6f3ced9a31b048eac88b4e9a39a04e8ef08e2b44e11f1f15baad7202eae7a52b", + "collateralIndex": 0, + "collateralAddress": "XsuWvEyMaKirAssxDiXbXdEV3mHbiZduuH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.2.67.190:9999", + "registeredHeight": 1381901, + "lastPaidHeight": 2127225, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121082, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvvkQu468kek9WQWpX3xNXDL25hKMRaNtr", + "votingAddress": "XcjFE7MRNcdJVEq8vDuunMwBNvrhZXxtbb", + "payoutAddress": "Xmjv7WyGH44kJzUJKifnyexKqsnHNjgpqU", + "pubKeyOperator": "0384b638a81ce65256e30a33b9cb2639c7a78c4d3db49672f15990c78ef4b4ea9785556d72123177ad596747e998593c" + } + }, + { + "type": "Regular", + "proTxHash": "259bde9368faabbbc0dd90b03e63b86e4ca843188770f8cdc3c28fbe94f39007", + "collateralHash": "2df77c5c85228e5743667c6c9584ea0450c82e4dc069f917161ab6bd3db042b4", + "collateralIndex": 1, + "collateralAddress": "XkmYboxo2pp5snUKqGzUY6gs8UQsALjSDk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.89.166:9999", + "registeredHeight": 1381982, + "lastPaidHeight": 2126106, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1945007, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg9sE8RpNgQ9qfKfLjaRSRukcY3bzUFE7k", + "votingAddress": "XwWhrtdaY5FFLannemdeLMkzpzYX2fJdQr", + "payoutAddress": "XkmYboxo2pp5snUKqGzUY6gs8UQsALjSDk", + "pubKeyOperator": "82f46df8390cd98e30675582fb90ebb34d92567cde809c04d0916572bdf1b43a85c7657a8c4a5519b8a20f530520017e" + } + }, + { + "type": "Regular", + "proTxHash": "970a44307d6c11a0c27a39a165b8c8a34a3e0f5546dea17fa58ae34e406d8d44", + "collateralHash": "f6088f9eb8589854f2e5c3c99a48da647378db413612143c476498cb5a13eae0", + "collateralIndex": 1, + "collateralAddress": "XoJ3FXF2Kus1dHM3w4kou8FMpkAttkTstJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.225.149.206:9999", + "registeredHeight": 1381982, + "lastPaidHeight": 1886009, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1708341, + "PoSeBanHeight": 1888746, + "revocationReason": 0, + "ownerAddress": "XdV4AM9PVkgN3ScBbismHYpZEoru1MLZyG", + "votingAddress": "XniX6s5Cde1MNJYGYVr6mFXivAj6UPnMQX", + "payoutAddress": "Xk7Sh9cPaCQk99vnTzRuac8T3EhPLZCn9Y", + "pubKeyOperator": "16a61756fac438d47d5dd3361d1f8974a0898f87908f4b6d497348bae9eb1c0fdd16d7741bab7dff3d7d7f49e6052404" + } + }, + { + "type": "Regular", + "proTxHash": "fc6cd74fe403bc4404a1c8c0a1f823cd1e079a2850fafe6b37e202dfc5332bc1", + "collateralHash": "62f910d986fb8b027c15f81f2365b69fc9abd96baf06c58f09a3794737ec1006", + "collateralIndex": 0, + "collateralAddress": "Xtfpb9feBJrZfGzjgGnhe1pfSt8Uh5wqra", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.176.80.203:9999", + "registeredHeight": 1384436, + "lastPaidHeight": 2127106, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvT7ZWj9vAS8fP4fNCPrnSsDwL8mmP5TaB", + "votingAddress": "Xj7ngtuKLdCkKfvuD1sMQxLX2dtuzHQCPK", + "payoutAddress": "Xtfpb9feBJrZfGzjgGnhe1pfSt8Uh5wqra", + "pubKeyOperator": "00d469ebfb69187e3b73f5b808ae1f33c563e49b5fd871fa5c0cfc47e5cc6c7b8d28100b7f2364888ed1d2f59d71d50f" + } + }, + { + "type": "Regular", + "proTxHash": "811a911af1812c3cb7c56aa1e811fc1179d11162893e285fda743e0f2febd196", + "collateralHash": "66bc5df2f5417704b49f6f2f1506659639bb5bf4ec99c5d1ef443699ed91894c", + "collateralIndex": 0, + "collateralAddress": "XyGdfmqYDbRwzLGwe983aq5X8HE7xepYZ2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.196:9999", + "registeredHeight": 1385918, + "lastPaidHeight": 2128474, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgDom77VXaZ83uipAAaHCveHenpWqsfFib", + "votingAddress": "XfSZeCvpPzWpZA9DnUNhuX4teGvi2WfVEE", + "payoutAddress": "XiUSh8x6QxP5sCDHPTZf9rRZJWVNi6fnZ3", + "pubKeyOperator": "85d94b0d3dfa98255b55ec2f4cd044cf3ae8ef1762577d8aa9b4afa1c6fb10bc10343c381d77a9b94e7fd4b96d0e8140" + } + }, + { + "type": "Regular", + "proTxHash": "8b2167e90baa4f31bbcb1458ecae5e00e5c9bd51ee3b997309a5585d5892624b", + "collateralHash": "4c21727b79d8aeedf7f8b0a58be21427b646f2f405b3dd3691f56038cff8cb8d", + "collateralIndex": 1, + "collateralAddress": "XgLAZaWxBPudCEKdB9Pea9kUFWvEP2opUW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.40.87:9999", + "registeredHeight": 1386314, + "lastPaidHeight": 2128703, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkKu26zvb8jZFAn6JfNWfFRkYZqLA6oyit", + "votingAddress": "Xb7erDTjdUjMUt1YSycfnUwdW1w7bKA2uy", + "payoutAddress": "Xi9ntYec2zjPyJwNJxva3ypK49wFaDvc1C", + "pubKeyOperator": "0b07f41e61e9454499e93a7a5ca68e036f8b45be43326f3236493244a119d1274392925b666db499ae09485c142ada10" + } + }, + { + "type": "Regular", + "proTxHash": "397d556826cabe088944ce8129205a164ad2fe22a1cefbe4e2bbbeb900d00eb2", + "collateralHash": "e1f39bdf5ce1d80557a2be46e116a0a1fdaedef6fb97046d7d42be926266e53e", + "collateralIndex": 1, + "collateralAddress": "XwYaCv4wJYcJZz8qdqZwwNkowV4uQoSDYH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.201.153.98:9999", + "registeredHeight": 1386428, + "lastPaidHeight": 1870200, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1870314, + "revocationReason": 0, + "ownerAddress": "Xg66ag6MpqG6qdSJnjhvPcpxSyScFwrBaN", + "votingAddress": "Xg66ag6MpqG6qdSJnjhvPcpxSyScFwrBaN", + "payoutAddress": "XwYaCv4wJYcJZz8qdqZwwNkowV4uQoSDYH", + "pubKeyOperator": "98a5ec9f5ab8ad29addef07d7d4730b26827dc7166c123bb4f686a6a9c741d6a76a97f70c382f7b1a1ce0cb336527092" + } + }, + { + "type": "Regular", + "proTxHash": "8f7ef1006ac038466342950d5b15e9055dd1a5e465db393826c1c6969ea8fed3", + "collateralHash": "4b48d7ca5320df5b896fd670ccffc78a7336371c8a953fd8d8afc2ff07fac156", + "collateralIndex": 1, + "collateralAddress": "Xyd2uDBHnNyvbMQNRhtcNnr1H8fBpLcKbe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.158.8:9999", + "registeredHeight": 1386428, + "lastPaidHeight": 1868064, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1870187, + "revocationReason": 0, + "ownerAddress": "XxvcQqqwvfLmmPRMm9UojtiggtLvL21t4F", + "votingAddress": "XxvcQqqwvfLmmPRMm9UojtiggtLvL21t4F", + "payoutAddress": "XtSWUTypA3zjN9kvrpTTdw9dSr4PYSLsnA", + "pubKeyOperator": "0d9dca6235c5a6f0f8d1946d5e2619eda87fafa96688da8d2e314e46747ed2922804616b946b7e8ea00f9d9c8c433b44" + } + }, + { + "type": "Regular", + "proTxHash": "6fc21e44ceb4d79e6d8e60efbf2c654c437aa9aef9bb5753be6667018372c918", + "collateralHash": "260ea893e744dee68a1c1008811cbe2510f29a3595adf0b93365c0bcfa949236", + "collateralIndex": 1, + "collateralAddress": "XomP6Kr9A5oyRa3rzySY1uyozU6ZXEXXeD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.34.152.241:9999", + "registeredHeight": 1386428, + "lastPaidHeight": 1867354, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1711066, + "PoSeBanHeight": 1870314, + "revocationReason": 0, + "ownerAddress": "XwEgoGRzt76xM43HL6T4GHR7Vx2XdMveR5", + "votingAddress": "XwEgoGRzt76xM43HL6T4GHR7Vx2XdMveR5", + "payoutAddress": "XomP6Kr9A5oyRa3rzySY1uyozU6ZXEXXeD", + "pubKeyOperator": "828302a9021161ec153a7cf02e45565c0d11a67367af968d58863650fc4e76ad938fbff818b84e18f3f2475c9a96f238" + } + }, + { + "type": "Regular", + "proTxHash": "5e9a103b9b477ede53400ee0d4f5746a648b2c160005d2d2774eb79cc56bd18e", + "collateralHash": "fedfbeab7f98c30304fb5edc64f8df45fbdb8229cdd1dc244fb971f37fa58558", + "collateralIndex": 1, + "collateralAddress": "XygRJ4XNAn1mmnWrKQHxJFNSDhFD7caVcs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.153.221:9999", + "registeredHeight": 1386428, + "lastPaidHeight": 1866969, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1690165, + "PoSeBanHeight": 1870026, + "revocationReason": 0, + "ownerAddress": "XreFmp2btjXj58rqt1GXzvMPH7bWWeyJBV", + "votingAddress": "XreFmp2btjXj58rqt1GXzvMPH7bWWeyJBV", + "payoutAddress": "XygRJ4XNAn1mmnWrKQHxJFNSDhFD7caVcs", + "pubKeyOperator": "0efa31b75969bd481c7b539d5e2e881c603ac7ecb4d4275e89bc836718126f422292c7961a98a8a8c489b75c76ab62dd" + } + }, + { + "type": "Regular", + "proTxHash": "167e9a1209c52d3a4587fa95b75ef271590e85b2ddf01454ad4fc453dffb24e5", + "collateralHash": "cacb8093dbd00237c5ffefe754a733593124185572f01f52624c5f0708af61bc", + "collateralIndex": 1, + "collateralAddress": "XxKybphxXbzCi29rZDhswwm1tzCeK6zrnf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.148.223:9999", + "registeredHeight": 1386428, + "lastPaidHeight": 1866493, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1710337, + "PoSeBanHeight": 1870293, + "revocationReason": 0, + "ownerAddress": "Xxck9cJQy6qLExYLhJfkNhYs29sWz7WkKS", + "votingAddress": "Xxck9cJQy6qLExYLhJfkNhYs29sWz7WkKS", + "payoutAddress": "XxKybphxXbzCi29rZDhswwm1tzCeK6zrnf", + "pubKeyOperator": "92a900242df760005ce9486cabca694344738f44e9e0dd8317c1048e79e7cd2a9ac1823140f3101c14097e02592affcd" + } + }, + { + "type": "Regular", + "proTxHash": "5b7935c085603c48306ae169be61a4a67988c6610a4d1db2fc780053f96595ee", + "collateralHash": "8243a26d5d242e83f1c4e379e91c0584f09a1280d962ba00c2c4e64157777480", + "collateralIndex": 0, + "collateralAddress": "XqRDR2zmGmaWiZK1WudDxmizZE7NFdv45V", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.33.50:9999", + "registeredHeight": 1386467, + "lastPaidHeight": 2127111, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsue41eNj1ESendptCGrEGL6wWDeuAitEG", + "votingAddress": "XxRpsiMtFxdkshnMtmeq3Ww2n8iPZskHnx", + "payoutAddress": "XqRDR2zmGmaWiZK1WudDxmizZE7NFdv45V", + "pubKeyOperator": "01ee49f6a43f6e80d2b2268b89a2c160b02522a52364c7d67723df38817d6d2a8c4b62ed4156ff1bcfcb59ccfbc354b8" + } + }, + { + "type": "Regular", + "proTxHash": "e1509a69c8c9d49dcd8ddc216f6414c744a37e306b5ade35d0d7331f43234fd9", + "collateralHash": "29fe0bcd8b96cc587b52a558b29b0e168012d8f09f7898b137939773d94d92e9", + "collateralIndex": 0, + "collateralAddress": "XxrHepZY191vZTqU7vEChM49BQuuNX4FsL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.162.188:9999", + "registeredHeight": 1386467, + "lastPaidHeight": 2127107, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrFUmpsnsGXmyMZ7qPSaSNteWFrCjVHTmT", + "votingAddress": "Xwm6GxNCWRoeFakCnM65CUsWE7mLUAuvjK", + "payoutAddress": "XxrHepZY191vZTqU7vEChM49BQuuNX4FsL", + "pubKeyOperator": "9713722d853bb680ffbe2fcc8c37fabc21f7ee748846baf3409c4a787486e73baa9238a913baa46772f7a777b8423aac" + } + }, + { + "type": "Regular", + "proTxHash": "9f1ea2f0b6c71a9c211159a2d39b0977a5c35323c733c507ae4f9cee27d60c48", + "collateralHash": "b6178f2d24e0e4cb70055cb5a543c11e38570f19bf60982c35d0bb1a3cb3867e", + "collateralIndex": 0, + "collateralAddress": "XbbuxbjM5H24zqYYDEV61Htn4FFVyUGjxD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.4:9999", + "registeredHeight": 1387313, + "lastPaidHeight": 2128164, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2112236, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd8conkTh5RV3fUvU8L9tShtAPxd63Y9HB", + "votingAddress": "XqUwEVDNzQqiabPwDbZvf9joFgDxUxiJwg", + "payoutAddress": "Xx79ju2ngxM4n4qBHbFeeEGXZqgK7GzoS5", + "pubKeyOperator": "0affe572d329da1a133b74491f0636191842d849cd4faea74cb4504d4548a4a807f7069f59fb2943b3e599dcebbe57fe" + } + }, + { + "type": "Regular", + "proTxHash": "242b96ea71241b4e06de3cdf001b36be672a23c27c7b1bfcbb12695aa420230f", + "collateralHash": "32da6214119d6d99615eaa4b547186183f22e2eba33abc9d289664baf97152a6", + "collateralIndex": 1, + "collateralAddress": "Xc1YGD22mSfGJLihbvUi9z7HjdHNc7NFVB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.248.54.117:9999", + "registeredHeight": 1387363, + "lastPaidHeight": 2127510, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1993113, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg3R7V5G65VK7HxCpLbdJ91rPEzYPe1DjR", + "votingAddress": "Xte4KpdrZPUXq6U59gohXJMKUBoiThZStp", + "payoutAddress": "Xdp4kaPH3DNG2PqYABCoNnUxV5tzVr8Jrn", + "pubKeyOperator": "8970172905368d1cb8443df6f5eeabcf5a9dab77f6c069067cd42e6fbaaa9ed5d1fa4d3a38ed199df44903b9e37efda5" + } + }, + { + "type": "Regular", + "proTxHash": "91b9bbe3e4879021f249adb3f9a20e37df9f58d1e6d1875b6bccfd269bd7cc8a", + "collateralHash": "5903c911198ab43afee6be21affb3fc9e475fba542f2a323077e3b9d990f3692", + "collateralIndex": 0, + "collateralAddress": "Xvrh9RsLcBqVWm3zX4W9PQmjqrRo5Bb3yN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.79.89:9999", + "registeredHeight": 1387755, + "lastPaidHeight": 2126585, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqyYBA9mVRTsECLXcD3TMNa7CrV6hmaZTw", + "votingAddress": "XkJWgiyT7pWSvzTUxUKEChw54Bqxrir1AL", + "payoutAddress": "Xvrh9RsLcBqVWm3zX4W9PQmjqrRo5Bb3yN", + "pubKeyOperator": "12d61b2a6017020f8b91f9afb209afd52204255faef1fda3c873d657e90634fdcba895213b0f9a4251275f2137095d25" + } + }, + { + "type": "Regular", + "proTxHash": "e770187ce15ffadf0ae1dbc83c52a0118f71f7256a9e1e20289e8edf23d00077", + "collateralHash": "28446053b426db86fd0ebb572675b60508f7bba9c23dd15d6fa6c1f39ef1aaf0", + "collateralIndex": 0, + "collateralAddress": "Xhjyt4CL7UzhmMN41FRz6WwUptUtXS2QZt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.24.107.253:9999", + "registeredHeight": 1388150, + "lastPaidHeight": 2127048, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1992697, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd5RuAaZCEyPDR83u2UMTsozx6EB5NVGpE", + "votingAddress": "XhTZupgSfcCpxqsMk2HYCLNxEfejxF37Hg", + "payoutAddress": "Xi3m8Rnyy9RGxHGHakUA9ziATqZrC6FPC6", + "pubKeyOperator": "90eabf5370f27e260b844e3b732ad7a2ab6e867b0a8124ad662fb014e899a16866414c1da9f03a795d49e3c7ca3661f5" + } + }, + { + "type": "Regular", + "proTxHash": "94f9bf1cc112df8fb101d85368af36691fe475534ee1a2b092630bd60784c691", + "collateralHash": "8d56f3dcf185df13f27b04a21f8050adaff3f15b74cd624e5d1498759cfb6b49", + "collateralIndex": 1, + "collateralAddress": "XgZe6gaxv4gf3swFhHEJCioDzMXgE8YwF7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.159.201:9999", + "registeredHeight": 1388465, + "lastPaidHeight": 1868063, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1870139, + "revocationReason": 0, + "ownerAddress": "XrKVgmp6bJ1e623DSBjeHwFSVAGFfBqBrj", + "votingAddress": "XrKVgmp6bJ1e623DSBjeHwFSVAGFfBqBrj", + "payoutAddress": "XgZe6gaxv4gf3swFhHEJCioDzMXgE8YwF7", + "pubKeyOperator": "95dbfcd1280543bcfd2bf2becf6ada535936a4fb60d8d6139dda2e51b14b35afb79747cebaf1a8fca5a815897657c3a5" + } + }, + { + "type": "Regular", + "proTxHash": "e5ec99f09a8b35d31d82b250d6d116f2cf08a327331b1ddbac65c8b0f57a28a0", + "collateralHash": "b9d3bb0da21478b2d351590f8b0898f00d1a30d8df126635caa5a1353123d87f", + "collateralIndex": 1, + "collateralAddress": "XfY2exYH8kcRiVjw4uu4aDXkdsN9bkn9Nq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.234.170:9999", + "registeredHeight": 1389604, + "lastPaidHeight": 2126227, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1802167, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoRpLPsoRsswiE5uWWqCY7NSMXRVA9FLGp", + "votingAddress": "XcFMapPsPBueUhd56bcjUtzrFJW3FaTDpd", + "payoutAddress": "XqjkJ59rhEMES8iNtDaBBCkcNkwEsWJFRd", + "pubKeyOperator": "87949f59c5620dee96a63e1068eca40743cc6ac472a8077b296c59f7ab8003c88d8a0d21ce4082c1180309c7da5502cb" + } + }, + { + "type": "Regular", + "proTxHash": "b936260397eef1cd3685d449cb82cd778fac53e1035e37b7508bce870d39453c", + "collateralHash": "0c63086f42f4dbe827e5e90040444664b1f048f508f793b267e51af18c809778", + "collateralIndex": 0, + "collateralAddress": "XjAeKZ4UBcEQu8ejUos4rpaSPVC6p4DT31", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.67:9999", + "registeredHeight": 1389634, + "lastPaidHeight": 2127631, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeRx8VFQm3dFFyyQdQG8KQoCwJNFPtwgYp", + "votingAddress": "XgfEotxbsinCkZUzMY8qbdyvtxe5jPvV6y", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "98ab1fa778b091c5816a33d99a212ffddd1a6f59595c49a3058535f009a55201504e71af6be09126ab2f8a02f7326bba" + } + }, + { + "type": "Regular", + "proTxHash": "c5cdebf5908af66e3d8a211d4957c669e99633826a4160a4d32bc60476376066", + "collateralHash": "35f2138fe9ce64b8066e84084f1353da680be21fad0373228144c7ae633166e0", + "collateralIndex": 1, + "collateralAddress": "XufkFc9WyMwcjrtbFGHjjpdx1trjw6ycJu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.197:9999", + "registeredHeight": 1389862, + "lastPaidHeight": 2127890, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtbRSNij2gsh3y4G742EJQtLWAJwSf36Wv", + "votingAddress": "Xasjuixz51qnA43mkLCFFNCVa85ScJDE7m", + "payoutAddress": "XufkFc9WyMwcjrtbFGHjjpdx1trjw6ycJu", + "pubKeyOperator": "8b20e275a0829e2328f0a0b0eadcc2c23d7394fcc23ae11e1f8135bb58126577ca85d775f379a60a3b90c20eb2d3774f" + } + }, + { + "type": "Regular", + "proTxHash": "ca96adf50f2d0d015e55caf95e9a1599020249d7dc726ae7e74242ce1f2208c4", + "collateralHash": "aa9c6510608e3bdabcab7920dbd0c3a6ad84f9774a47dcdc11b37777356a520d", + "collateralIndex": 0, + "collateralAddress": "XpjSBCsvpF1VFd9pvGc7oLLeZjeREdD2wH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.22:9999", + "registeredHeight": 1390264, + "lastPaidHeight": 2128026, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbM2zzXfJD4XdiQ7XqdoNtbMZECC4w1EfC", + "votingAddress": "XbM2zzXfJD4XdiQ7XqdoNtbMZECC4w1EfC", + "payoutAddress": "Xsjoyw17Lbydp6R858pdj3itQFZuXTBbaJ", + "pubKeyOperator": "98e0eca7ffb4a5c43d970d94627ff1ee1e15b748b0e6e4bef58b2a4539288f1d19d4a20352b29a89e83e5ddaad5558f8" + } + }, + { + "type": "Regular", + "proTxHash": "865612dd2741689d2f728734f826280d91f47e98fef3cc7804ff1cdb340687d7", + "collateralHash": "9371bba9c6199700394fada801bd24d4d43ce8e9cdb508b8b4c4ae655bc53d19", + "collateralIndex": 1, + "collateralAddress": "XrLrRarUnB8vAeDK4g5byPpDmV9Jrg69V5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.194:9999", + "registeredHeight": 1390944, + "lastPaidHeight": 2128677, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnYUo8yMUGy7CirRahpr1X2tKTrjykzBjE", + "votingAddress": "XtnvMQtnGabJegdBHdDgyTmA4DxFY3Mqe3", + "payoutAddress": "XrLrRarUnB8vAeDK4g5byPpDmV9Jrg69V5", + "pubKeyOperator": "95fbf469f07a77d77c7c3c89f8b9991f5343090ec3a4633a8e02048cf388f53ad38ed76fc53563ea255fa6303c56da1b" + } + }, + { + "type": "Regular", + "proTxHash": "5cb1ebbeb0451f4593c512f61bf424bad77ade3a828df6c1444d634baedf878e", + "collateralHash": "907255e5bddd33bceb5b6b6d4c0d3ca578f7d5ecde131503a6a5237cf1b74b0f", + "collateralIndex": 1, + "collateralAddress": "XpXvdvt9taLecd98hQmNRwtkxeGoeakD7H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.198.184.226:9999", + "registeredHeight": 1391031, + "lastPaidHeight": 2128661, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1984406, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqWRhQASJwNnP3mRjLiNYuaoPHyr1Gr3dv", + "votingAddress": "XjPmRxrUouW84nbJiLkMLw8VUCPLjEiUYc", + "payoutAddress": "XcnQkWsmxxaeKwNEUQ3yFsvh3bJbsaYuXc", + "pubKeyOperator": "0380e0c6d7e915fdc21b53c65ac3d7525abd42ed0f72fe8bccf9dbfb60df2656f400af23c066f171e60d425c84e1644f" + } + }, + { + "type": "Regular", + "proTxHash": "0a2484f276668230c0939d1176eaee67cc843563398e03e25bfc90386fc71c79", + "collateralHash": "80289e19ba1a304ae8a737338dbf156f4687424a8b50f9e0fcc36eec27dec777", + "collateralIndex": 1, + "collateralAddress": "Xm4nrbjt72jvBN3nhPmum8tgrstTgouMy3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.75.121.163:9999", + "registeredHeight": 1391735, + "lastPaidHeight": 2128878, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1877245, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoj5dxmvJ7fkDyRt88ED5VNAHRMuqGdzRM", + "votingAddress": "XwD42rCCpqWttodfemnZHrqFd5d21Zfrcb", + "payoutAddress": "XwkwPPYcPs9GrhDoB3awd74TzNPrGECrQm", + "pubKeyOperator": "90dc1215a8de8234ee8b2d45966781a40cafc93cd204e9eb1955d0549890ec7fcd2eb13fe145c52b7f3a81fa63edd8f2" + } + }, + { + "type": "Regular", + "proTxHash": "e86a2089fa30b1216ec9d2c8f57727a9734c8f7f08e3fdfc78002c717b794497", + "collateralHash": "610af6c55f877bf887381d803d96355b57dea6993de8fd4df74ab641527cadee", + "collateralIndex": 1, + "collateralAddress": "Xjmgj85NDpCjGA2vywQbzmeCBhtfP73EpC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.92.77:9999", + "registeredHeight": 1392969, + "lastPaidHeight": 2127049, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1992697, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrqr5Af7niweMyYAN334tyhiQJmYTN6nBo", + "votingAddress": "Xbik6zFmmnVQz47FMfVBAvDEw9TPfDNLhd", + "payoutAddress": "XgR9YADJXNnMYVUwgEJZp5RNMWwz7tXEm7", + "pubKeyOperator": "0c9e8f7f160e7c001834daf5966431ced934782898ec2042395be576b667b12d99a5076d68d0de076a581efa35f06110" + } + }, + { + "type": "Regular", + "proTxHash": "3a0630a795ae690479374bdcdacf59db379aeda85c132dcc2196eb5634fed855", + "collateralHash": "a76af6a4c13ed71d7f5f80ce063d0b1a4e46d14eed1883ae71a247ca7c516190", + "collateralIndex": 1, + "collateralAddress": "XxwX4N37SrfcQ5d9jSiXKhQgmx1kZ74mQ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.223.217.3:9999", + "registeredHeight": 1393689, + "lastPaidHeight": 1983900, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1987159, + "PoSeBanHeight": 1987509, + "revocationReason": 0, + "ownerAddress": "XuZvsWS2vkWKXuuJgWca99gg2xdYFk73bn", + "votingAddress": "Xkf7VLusJus6YyGwmWtEp9ZUApicD4xAP9", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "108f343db65c53ffd6d4a0f43140e8a0168ed1264fd4dd5068add7bdff272daf011ac355f9b6a17b93fc3869d1b9392a" + } + }, + { + "type": "Regular", + "proTxHash": "d34332bbe094d5d3c05516bf6a8539fade29873e38f7d6eae6ee208b4de1706a", + "collateralHash": "e72ea300768a4d6e8865ec4997649fafd57d1972c9419236183e8193efb364ab", + "collateralIndex": 0, + "collateralAddress": "XsW2MDWsmmunxDD9qT8dkcy1VUjd9ihFi8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.152.28:9999", + "registeredHeight": 1394594, + "lastPaidHeight": 2127096, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqZSUtLGTG65cj9i4nbL2DKKwEfL1Rn5cj", + "votingAddress": "XxTeBxbT5hQrdpTFUwkYVgeMhE8WSi3NWK", + "payoutAddress": "XsW2MDWsmmunxDD9qT8dkcy1VUjd9ihFi8", + "pubKeyOperator": "97fdd7854592b486f9076e6dd927317d7bb95c12cfea1667a31360474fed331915f286946c4a664dffe007cd1b779d17" + } + }, + { + "type": "Regular", + "proTxHash": "e5563e082b795b4dbed7bb7f89365f840ab679e2c40cb41d1e8a97d36ef2a8a5", + "collateralHash": "f75da1c07105aeba50089ad60b46d1095af8a2d370aa97452bef847ff14038bc", + "collateralIndex": 0, + "collateralAddress": "Xs7rx2juZ3jyktirmm2xrKKqaPDJxpuHpo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.5.64.55:9999", + "registeredHeight": 1394808, + "lastPaidHeight": 1983106, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": 1986759, + "PoSeBanHeight": 1987509, + "revocationReason": 0, + "ownerAddress": "XvxwVAn55xZi3NgA5oSNag8WciLvTDdSu2", + "votingAddress": "Xwg65CmJSrVhKmTqXLAdFBdhfocp1GA4eX", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "0bd0b465f8bc59f7a509caf35debc0f7701c6102a80faed3766960d1342b46e967eae52557cf12fdf437e6ec5c395925" + } + }, + { + "type": "Regular", + "proTxHash": "929f2662f21cb04eb3abd1fed5977162d012fcdf7b92ad39a3eafaa14257e1c9", + "collateralHash": "e68ad3a4fe4cf7aac39e641e8aa2251a53b7045888709370e0eedcb69492f909", + "collateralIndex": 0, + "collateralAddress": "Xo69KrZsB6KxuaZgsua8Hiu6nuhAEjGDx3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "44.195.247.115:9999", + "registeredHeight": 1394811, + "lastPaidHeight": 1982540, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1987159, + "PoSeBanHeight": 1987509, + "revocationReason": 0, + "ownerAddress": "XdBwTK3wWDLQTgbmCjDBJiAHpUv8KAf2fY", + "votingAddress": "XdvhtTNy729hPk8RiRRarKVK94aVu6Jcgi", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "0088ae8ecb692be75b1d19d6c67cd3905ada2e5c300ace0fed239027583dd9f0c8ea07af09d3d03ee605e949b7b7d7cb" + } + }, + { + "type": "Regular", + "proTxHash": "db8f139ffcae46aebf8107ced8770f33074a634dd1ee4cc9475d2759d63b351e", + "collateralHash": "f85d681c8fef9981bc14670bdaed356f00e233bc0fbbae7517d267deb3c4f8df", + "collateralIndex": 1, + "collateralAddress": "XvPiJ2zrFZ8xBRfGtb1PP54QWfHUxnnGmb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.8.90:9999", + "registeredHeight": 1394821, + "lastPaidHeight": 2128785, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987848, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xonz5dttdxzJMdGwqLvjjAG3sQn2LjzbNt", + "votingAddress": "XyoDoNnbvdz5DhoVyC9pFHeVT1STtyYjJm", + "payoutAddress": "XgWUbc5KL1urESPhddX6HCvbXviG2NUXGY", + "pubKeyOperator": "0f6d5df49c15bc66a46699eae85efecf9eb91b0b571dbcf3684e6ca9a898ec9290fce2011ebcc070fca5252c21bf5057" + } + }, + { + "type": "Regular", + "proTxHash": "87afc436cdb2ae7360e38e6298b745225010c0a40feb316a9875c78fb9e5e3c7", + "collateralHash": "37b4df5c5eb32a6712ffcde934f1a4df451d2a42a2fdaea4dea41075298b6e94", + "collateralIndex": 0, + "collateralAddress": "Xj1RxgzsMvDoeF4HoBd8FXzvddnJqZabhB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.73.182.118:9999", + "registeredHeight": 1394823, + "lastPaidHeight": 1984434, + "consecutivePayments": 0, + "PoSePenalty": 3974, + "PoSeRevivedHeight": 1986192, + "PoSeBanHeight": 1988106, + "revocationReason": 0, + "ownerAddress": "Xup7A38gTD1mcSw4a8WfGAkmUjYK2aDzCP", + "votingAddress": "XscbnxznWNB6zMzDv61PxMxhp6qBkjnEGR", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "119ad50b870527b7bb063fdf1ff5c59e93045d951d7dc67574762901455ec12523510732b79201d177b1519ffd9e5a42" + } + }, + { + "type": "Regular", + "proTxHash": "ed3e788e5ba14035722465d26fe8b2d7bd15c151b6b8e04c80c969a9c1b9f519", + "collateralHash": "1309c062135342b996a09f50d6854ee7a17f2f69257271d7b839c2df16d0cccc", + "collateralIndex": 0, + "collateralAddress": "Xp8YHfPGDq5TsUarahosXwp3tLow4Vho3J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "44.196.183.219:9999", + "registeredHeight": 1394831, + "lastPaidHeight": 1984836, + "consecutivePayments": 0, + "PoSePenalty": 3974, + "PoSeRevivedHeight": 1986192, + "PoSeBanHeight": 1988106, + "revocationReason": 0, + "ownerAddress": "XfRU2degPrSmz1UeP7sk3M5qBkiTHVmy3X", + "votingAddress": "XbfNffgSHyfbxakfJMWPi6cY8CjNb1emj7", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "0ca1dca95b134471db1929e0cd2f93f065885ca008a690039f34f358ef8b5e28c65fe1839546e5ad78dad3d7aecfb30b" + } + }, + { + "type": "Regular", + "proTxHash": "128e4cddd02e73ec80634f2ec8a3cb748f255ad197ceaf711f57fc01b61dc192", + "collateralHash": "b7d20acb3243ed1dc3c6cc6f80a57603a41dbca14c88c701b55295c9e90b46dc", + "collateralIndex": 1, + "collateralAddress": "XasFW3JseTTxfRXe7F8fXBuqa1TSNAXJQX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.221.61.242:9999", + "registeredHeight": 1394840, + "lastPaidHeight": 1985380, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": 1987159, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "XeCFTzmUHATTJnxvTWzZBZptA7Vg9EDMrh", + "votingAddress": "Xg7d8yRUzE1KY9c4YpLZkLdHpowStcVBa2", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "00cb4a969524e8739c403fe8cb7a571a375602ee6d69190442a8cf60ab9f24829ccbbb2397d2931a929316024508f19e" + } + }, + { + "type": "Regular", + "proTxHash": "125fe184594b8d2b75fdf36d7b3ab7f54958e53d3c018c4c0078caacc6f7361a", + "collateralHash": "d6d1607c939c0ad91c452be02d75a66710dbdbd072b0c7bd5bd818270f49459a", + "collateralIndex": 0, + "collateralAddress": "Xv64gAidoWYzAWVKQbEugB8Req17o6mbGi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "44.194.81.232:9999", + "registeredHeight": 1395434, + "lastPaidHeight": 1983089, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": 1986173, + "PoSeBanHeight": 1987818, + "revocationReason": 0, + "ownerAddress": "XeYNn8jJqvNDtLpWeFAcicbiUmzc6WyVHr", + "votingAddress": "XpVdeXZuNA9HZ1mFZLVhXQ16AHyY1aP8uv", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "890bad1082bb7110f5369e491e45713a2638ee386152857832618b0133c0e9309541bc949afa57b7ee044203c94e07a6" + } + }, + { + "type": "Regular", + "proTxHash": "b61cf4878f215c80fca19bf102a67f4e3e95fc51a5397c96a70a0b878d850800", + "collateralHash": "da69d4e7e14aefbc6916a38a7c744f2e054d4f0390d21903ecb9b5a4bbcd1ba7", + "collateralIndex": 0, + "collateralAddress": "XjpZWeZRhRRV8j6Tw6Y9qALb37YiCdn92A", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.214.84.7:9999", + "registeredHeight": 1395438, + "lastPaidHeight": 1986260, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": 1687500, + "PoSeBanHeight": 1987797, + "revocationReason": 0, + "ownerAddress": "XcogW2fN26dcYm2upzFhbTCB8UmCqbkCMu", + "votingAddress": "XgUc8tDgyGMeSCLS9H9BNdjbsPaHgeufrV", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "04b672fff1708458c82de630083c8950cb826143e98c7cf4b83082c1bf1f6d5b69460c9f0f93f249ae97e0a235a0dc10" + } + }, + { + "type": "Regular", + "proTxHash": "7c39204fea35650ea322cae4d4d9bc4e81e00413170d4e2df80a736f5c8f647c", + "collateralHash": "af21116a7c494c201f2d32a698e620130e716d7c33e4d7a9e5d3c408c0233f47", + "collateralIndex": 0, + "collateralAddress": "Xywx3s2MdqWMgxNHAUsML7Vm2afpinwEkv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.158.251.107:9999", + "registeredHeight": 1395442, + "lastPaidHeight": 1983709, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1987159, + "PoSeBanHeight": 1987509, + "revocationReason": 0, + "ownerAddress": "XfsNnKBPof2Frej48Zqc8fkg7vMBubHiFa", + "votingAddress": "XeXqcZJ42GmNyiXiLoCdtwDchgd9sjjWFq", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "0843a3713fc6fc05a730eed3c9c6b1562a23bf5f1a1d3cec58a8334ac0d86ef4801b822b35f9adcdf66b463d9ba7ff5b" + } + }, + { + "type": "Regular", + "proTxHash": "c8b90ce78bc0f422f21efaa0deafd0b2c0a64805dac57d5ed64969d7134fff02", + "collateralHash": "01c85bd8d18587fa784986658a73c7762f6d5879c96d9c116dfa78dbc44aee9e", + "collateralIndex": 1, + "collateralAddress": "XqwnDe1DphDzkDEXdUMFgWJKNDgxEdX2o3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.158.144.160:9999", + "registeredHeight": 1395448, + "lastPaidHeight": 1987261, + "consecutivePayments": 0, + "PoSePenalty": 3974, + "PoSeRevivedHeight": 1705324, + "PoSeBanHeight": 1988106, + "revocationReason": 0, + "ownerAddress": "XoMRjXSH3AXvm54TqKBKRSW8gixe6mmRv3", + "votingAddress": "Xc9LSPmwCbCEFBtrAbH1U7hvTKCNyRnm1Q", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "89b184d9cdbbe192bb2c29a500c69cae4753069cf145fb8372adc1150cd17a655624bcae36781486779dbaa78357b72d" + } + }, + { + "type": "Regular", + "proTxHash": "aba7bca5e1f3a816922a32c316a2e3f936b1f40e357a75967985d13f03a55d2f", + "collateralHash": "b83612b30f4123d2b51e6a1eac45b192a1e6800b820c9fffca8c14c0cdaaf07a", + "collateralIndex": 1, + "collateralAddress": "Xh2JEdxPHwFSJgp8kgacNwMBMBuU7txPWP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "106.55.9.22:9999", + "registeredHeight": 1395994, + "lastPaidHeight": 2126058, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2005107, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwxCXMHqEwiueNzdsie4piaauragitvwU8", + "votingAddress": "XkiQ7Wd7ezbgW8NTbyFggKNVpVGvxYaXtr", + "payoutAddress": "XgdXLZEYt3UGhxGxGwzdca4mpn4gXDEKMj", + "pubKeyOperator": "1379579d243fd1d8c314164685e014bd4a5dba02c2254fd3804e844151fe1cbb60a63897c014560e09be87a3fb693ee3" + } + }, + { + "type": "Regular", + "proTxHash": "53c6ec9b95afa968913a4ad0243d1d915ac7c64e01030eab94f860f39152588b", + "collateralHash": "d94f77a265d39c6f6977cda5fc52e25ebcd0d1b0a539869b2d4acf94abd0045c", + "collateralIndex": 0, + "collateralAddress": "XgyFVqFPxgVaZVWzB22feXcYVaV4zrunqp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.43.129:9999", + "registeredHeight": 1396281, + "lastPaidHeight": 2127101, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbHeFNAybiMvnzGBp7RUHjvr3o8m3nkKPi", + "votingAddress": "XndReKDgF428JGPPDDrvB7e4hm3aH5Cp5m", + "payoutAddress": "XgyFVqFPxgVaZVWzB22feXcYVaV4zrunqp", + "pubKeyOperator": "92ed4a9ba16d2e55fd1ba47236662a273ad29b6f2ee5150b135fc924d33cde5fe8c941bf8ddcaac598484b68bc4be8f9" + } + }, + { + "type": "Regular", + "proTxHash": "5d11de462ba33742b3d50c50213e836affd05726df4fd092ecd3c9b264b2ea40", + "collateralHash": "b8a0fabf74969f9a57e056174e56a2508357b2864c0cac98fb8c5c8b1ee9985c", + "collateralIndex": 0, + "collateralAddress": "XhWop5XBMrSKdhiuRdy4jG8mR62GuKyiqw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.120.86:9999", + "registeredHeight": 1396281, + "lastPaidHeight": 2127089, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiZq4cJgHEabk71oC9te7MfyQxNjSdVmye", + "votingAddress": "XsizvxBCbXz1JbfjREGrgvZKGLG6VcRJpn", + "payoutAddress": "XhWop5XBMrSKdhiuRdy4jG8mR62GuKyiqw", + "pubKeyOperator": "90db1eab3e75dda82da4b6d4ac3a8f4222f3fcedc849e92fe48d43a476fc030b57d7761d35bad591d422b1a013df1263" + } + }, + { + "type": "Regular", + "proTxHash": "6b64cebc61129af6e2d7b73f3201b7e113e1e1738e4345decebe9b72dfe6c526", + "collateralHash": "b83bac6a0af82740618e56da3ac0610bd3c2e8ac01750f9464424597019439d8", + "collateralIndex": 1, + "collateralAddress": "Xc7WCCFYjNzXXu5PgA1w95aTEMnMGw2G1E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.226.153.50:9999", + "registeredHeight": 1396317, + "lastPaidHeight": 2028344, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": 2024984, + "PoSeBanHeight": 2031018, + "revocationReason": 0, + "ownerAddress": "XoaYUB1p3k39R1qeraYD4igarhoKoiZpi4", + "votingAddress": "XoaYUB1p3k39R1qeraYD4igarhoKoiZpi4", + "payoutAddress": "Xc7WCCFYjNzXXu5PgA1w95aTEMnMGw2G1E", + "pubKeyOperator": "08cf33b2c3e1e7c974cf0ed4248f645d97df22144d3b0bcf375d7857c95d429c3b6bfe01568cd7983847767fb3a47ef9" + } + }, + { + "type": "Regular", + "proTxHash": "1c3a911a7d61db06474a19ff2e2ff4bc5771731c956a1eef5678a6af44a737fb", + "collateralHash": "db558cd37351ac8dfa55251a008d00db9c94e31576aee3b261e3851eee732a8b", + "collateralIndex": 1, + "collateralAddress": "Xvdg6CmGN4WKGq66CjQ6Ck2hmkBrNqM7bu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.114:9999", + "registeredHeight": 1396641, + "lastPaidHeight": 2125889, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyvaTBRW6SX8N1iuHSV2o2XKdVEneQVNRn", + "votingAddress": "XxDZabcaXyFqW2byAwMKbarEeSWTErM8Kr", + "payoutAddress": "Xvdg6CmGN4WKGq66CjQ6Ck2hmkBrNqM7bu", + "pubKeyOperator": "839affb7e92629c88acb210dfba4cbe77d97e15faddfdde5d41bcd66aef6c976471a4d53b8b7a4a75ac2c90cff1dac66" + } + }, + { + "type": "Regular", + "proTxHash": "02477c8a4dcc67cfc99bca770ed800039f55794530ac708367aa9b4ea6459dc9", + "collateralHash": "86a81ddd07dfbcc7d4c410f4f6a772a8bffab12910d03360547c9a7b2aab77c2", + "collateralIndex": 1, + "collateralAddress": "Xb516JfA9EkLihKTimDmrMtxDk9UQwpRyG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.220:9999", + "registeredHeight": 1396643, + "lastPaidHeight": 2125890, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrvBoEEBWR7MNmWbeKYtvbTbT69F7oYzba", + "votingAddress": "XeeBm7U7Unh4M3A5axFe54JL55PRUJgdhq", + "payoutAddress": "Xb516JfA9EkLihKTimDmrMtxDk9UQwpRyG", + "pubKeyOperator": "004486148fae6a36ad24c5aa63de4d1563aab1a7f29d7bebbc0724c426cbcc8c7d05c161ca67147da5e2cc552e408348" + } + }, + { + "type": "Regular", + "proTxHash": "e61116b8a6c81ff73c41ce33776a93a5f0f711e847899ea761e1e326729dded7", + "collateralHash": "06e62052e85b5000114fa3b206d007e50fbfd051584cd7284984a3e14b6d5a2d", + "collateralIndex": 1, + "collateralAddress": "XwCHvwk4f2UuN9mZcF7D3mRpm15qJnjxrk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.201:9999", + "registeredHeight": 1396643, + "lastPaidHeight": 2125891, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw4QqB2Ee5B4TGEMgPnTcevoAVffHUENNp", + "votingAddress": "XeYjcQDSxNwTciLWuAwHJrUwLZ4cUpVdfM", + "payoutAddress": "XwCHvwk4f2UuN9mZcF7D3mRpm15qJnjxrk", + "pubKeyOperator": "8d15eee82c135d0c79cfd61e1dd8c16d5165f70e04a545bf005d3b00b688d90d260babd985dcefedbbf957558a1a970c" + } + }, + { + "type": "Regular", + "proTxHash": "b2f9daabac912b833f8499831a9bf80df4a8d9a3d8df6d3aa6ec41cff6e0c815", + "collateralHash": "00d7a221690332ba678ca6043ee72a89a8d0226eedf490bbd4d9ae4c72273dac", + "collateralIndex": 1, + "collateralAddress": "XvkqMFJetriy6ThbEZrgMFiZFVs9yRLa6S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.201:9999", + "registeredHeight": 1396648, + "lastPaidHeight": 2125897, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtbYhpnGWxELfuxveZBE62gj1qvWgRAJeC", + "votingAddress": "XnPQz1AkmdxEewvn31V41DFA86TSme6rhs", + "payoutAddress": "XvkqMFJetriy6ThbEZrgMFiZFVs9yRLa6S", + "pubKeyOperator": "9474a5a74e85a79fa0dc18bf3b5e6f0fdb017ad958fd37f52c572e778ccd77e3c316f5676f5999f692e22ec87b3189f0" + } + }, + { + "type": "Regular", + "proTxHash": "d0a0287cbb80560b4416e344bb37af90db30c52d808108e8242a7c02e0a8d938", + "collateralHash": "d583e24022806bd5e7d00de6e8f0db1351d0ed6e94fe69c3e5d42fd7b694f062", + "collateralIndex": 1, + "collateralAddress": "XouBT9QjKtvqUNS3nhzoZ4y1mU3fA1spjp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.159:9999", + "registeredHeight": 1396650, + "lastPaidHeight": 2125922, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbacBuyC63C14knKKrewtW9pDRTBgykEDb", + "votingAddress": "XrNL1RLGc9qscNqn7fSfbcJtm4HrVnqHpc", + "payoutAddress": "XouBT9QjKtvqUNS3nhzoZ4y1mU3fA1spjp", + "pubKeyOperator": "08b10c128667ddb112aef836a07fd5f6decf7c05561e5b7b049ff7c348c1ee124a7c9462ee00c074e8923a135fc020d2" + } + }, + { + "type": "Regular", + "proTxHash": "217844f21811bd6b252a5b69f0aba44f340b2c51da923e20a656bfc8aafb8169", + "collateralHash": "9dd9186bfe149eff676058ac1baa160b4522b89087777a3443897ead0d939ec0", + "collateralIndex": 1, + "collateralAddress": "XdiK3m8KxNwXk92Wec75bQv9CEk1KnNCQc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.199:9999", + "registeredHeight": 1396650, + "lastPaidHeight": 2125924, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhvaqJxq9eEVQSVwxB65refYe76ZisSUvM", + "votingAddress": "XwM9oiy7zr7VEvLcBDQHFWCouuGbn1nnnz", + "payoutAddress": "XdiK3m8KxNwXk92Wec75bQv9CEk1KnNCQc", + "pubKeyOperator": "91728b730fb7ab123bbc73fbdab23f1522033e5935b93c27bdb99dca2170e63617e4ef1e005b714a91019f4b9cc9af6d" + } + }, + { + "type": "Regular", + "proTxHash": "5e921536fde0e0136b0d440e11927c809248f6fcf185e6f8f4854b2e331ae605", + "collateralHash": "9e9c92f90fa34cfd463effa5690cf5199be88036b29246f41e49e545859852ad", + "collateralIndex": 1, + "collateralAddress": "Xy5sshv5bSpocCUjSBRwMvEF5hroMEuJyD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.98.236:9999", + "registeredHeight": 1396710, + "lastPaidHeight": 2127250, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiriwxMPZ59Uwhk5EYeEL1PvW1w1RkEGvD", + "votingAddress": "Xx2MUPXb8FLGDAujkAXRdW6kHmkqMayDxD", + "payoutAddress": "Xy5sshv5bSpocCUjSBRwMvEF5hroMEuJyD", + "pubKeyOperator": "1934c039b55b5077b09412fed6e13ee5799bd388d96f28ff85dcb844419e717e04cf42d9213887f55f0392150639405b" + } + }, + { + "type": "Regular", + "proTxHash": "2c934365539b2c4c8fc1d478d749e1bdaa59e09c920cfbe066ec8cb6abe46230", + "collateralHash": "818cb9e24e63f35e23916adc3833c7ec06e08bcceecedd8294d3cead23251096", + "collateralIndex": 1, + "collateralAddress": "XufUCy3MqTuPN9B9eov9TkMuMq4ZRtFKYD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.202:9999", + "registeredHeight": 1397244, + "lastPaidHeight": 2126332, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiSRAUBeTZ4FnYhcY1RHxZsJp1K3JHzLuC", + "votingAddress": "XegewtAJ2u4XZXnBYPhMCGNyawkczBEBsa", + "payoutAddress": "XbnDiPJCn9SYM7kY9SgYJrXbVGA7sTWMUS", + "pubKeyOperator": "84fd915c296cddc8583e47ac511afa1a1082c90083574e479caadef0309b5050b5f0ba6d664c969dc619d33d840f1fb7" + } + }, + { + "type": "Regular", + "proTxHash": "bd71ff0ed86646382b19d28a490f92a2e8a7be87da339e493ad9c58e912df384", + "collateralHash": "d400993b21225a0cabb519eb9890bf866e4d4b011270946499f64ddb796f5083", + "collateralIndex": 1, + "collateralAddress": "XfSqJ9yaopVFEhxnDCDmdQiu3FPGKhj77B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.150:9999", + "registeredHeight": 1397287, + "lastPaidHeight": 2126349, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcAgc3ZEXCngS1zhLU857zp6PZrLfakvoN", + "votingAddress": "Xr12wQUyPEkKVptEysRhvRu2r93yatuuzW", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "10dd17d1ce48ea34e1d2b23ee1a2ca3db0a81424a36cc3bf45cd844e7b6ff8b1fc7086ee3eb9800e77fe9ec7b4a4d60c" + } + }, + { + "type": "Regular", + "proTxHash": "1c40a59dd9e6c8881e4cdf77c912dd39de3f3cc82f9bf5b3c85c09ffd954e139", + "collateralHash": "a9f67a057fbe3b1613a3b199bdc0810b1272293714a806fa79d4d14b0c026f4f", + "collateralIndex": 1, + "collateralAddress": "XxRAiz9MHX3dWwiEi5XTF2BwthYSjP2TwH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.195:9999", + "registeredHeight": 1397344, + "lastPaidHeight": 2126380, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmiS92DYHBZQBDHpAbzrxCwqkUegqHuWqb", + "votingAddress": "XkaWRjCMJ6h4ghb2VewVoJbcYYqzeabT6C", + "payoutAddress": "Xc3AvS4JgeZvqzo8FEeEnJEAHPvmh3zRv3", + "pubKeyOperator": "0cbf371e765389b10d32aed7273f9339feccacb0e0b496d83a68fcf794c935913eb9654bae8269ab44fe497859c81f21" + } + }, + { + "type": "Regular", + "proTxHash": "1af692e45d5b8b2b62b851e23b4a51ccdc24a2565d49c15b5c78c958b59ad492", + "collateralHash": "027fdf4345607fbeef9c65132f631be1c6cb5a286311e107c2cd3b0a93cd1568", + "collateralIndex": 1, + "collateralAddress": "XwWLqhCwWfQZG5JT77qL3Mm7s3rMTRwYhP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.154.235.44:9999", + "registeredHeight": 1397992, + "lastPaidHeight": 2126787, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcw6bgstMXFdSyS918coLv84yVTJJFXUqm", + "votingAddress": "XuWQFhC4BLpp98TiHVAuY7BtsDqCxgeCA1", + "payoutAddress": "XiisZLe5V7he65yZ9bHnX5SNPPUmeonRYY", + "pubKeyOperator": "9699bbb4ba24b6ad92e8816112baa87ab4638bac785fc234e9de82312fc85dd80bcd91debfb5b43cd42f4e9e53320ed2" + } + }, + { + "type": "Regular", + "proTxHash": "972f35055a6bb93993c238836f0b994c089b26227cc5eff289bb930c12b45e5d", + "collateralHash": "bf596aaef6298650e8b424ed3927ef203d4386e99567539a68c2ad5642dd9932", + "collateralIndex": 1, + "collateralAddress": "Xq4CbmAbpn5xJapyaUFFE9ttt59uV35dLh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "62.77.156.26:9999", + "registeredHeight": 1398171, + "lastPaidHeight": 2128833, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2011377, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjf653eDAEbmCvrKc3WAaM2Biib8LqUaV8", + "votingAddress": "Xjf653eDAEbmCvrKc3WAaM2Biib8LqUaV8", + "payoutAddress": "Xq4CbmAbpn5xJapyaUFFE9ttt59uV35dLh", + "pubKeyOperator": "99d62b48218e801e3669c888c8090644b677377b50fed6db99c2dbcb983e9647366b13a4542aaa1eb46c077d7533f6d1" + } + }, + { + "type": "Regular", + "proTxHash": "3da232a300320b9eda77f400320dbdf8622584bf26be819b000b25292e3310cd", + "collateralHash": "625014c66d4f98202bb035e160feb2566e24986cb43e961a8abe1232ef2d0c69", + "collateralIndex": 0, + "collateralAddress": "XtF3qvDfRg8bh4QTKys4Pn8pVnqPWzKEAB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.130.116:9999", + "registeredHeight": 1398266, + "lastPaidHeight": 2127055, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5oLLwoHgpwNDbg4XgzQtNhMyN518r2Zw", + "votingAddress": "XjYuwzp7HfD1Sq7J2s6jWyiQ1858Vzki3Q", + "payoutAddress": "XotD4nncT9m5okEB2hqQt9ozFUQ8yoQZPw", + "pubKeyOperator": "08cb0aa4bd876acd9865ac68224e309b48935f4e942366f1f2b0dff30cf2b03dcb26109996707604542db2cccb68c4f8" + } + }, + { + "type": "Regular", + "proTxHash": "aec5e5fb55764e885ac659911fd20480a4ad87c2a9bdfe56396b94776911a455", + "collateralHash": "ab816458cc3346d156c9a5493ee7d52c58ef84645a8e0fcb5d6bcee1a2d7b8cc", + "collateralIndex": 0, + "collateralAddress": "XbyxankWxBLJdQdUarL9ipy3kXHyPsHj1F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.209.128:9999", + "registeredHeight": 1398432, + "lastPaidHeight": 2127564, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876093, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xme8DkwdZg51gTvNKLi5H7d97PGQTwzboU", + "votingAddress": "XithFewDpSXzuaKRbPxFg5Xyqh5wDyCi2f", + "payoutAddress": "XxSmErBoETVjmm3CU4RMqctnobS3U4ehng", + "pubKeyOperator": "0090b8a58c3f1e3d2b9dc4530c06f3f7f96431d5dbc8acd40f7cdd501e6a520317162fe898f9ff0e44ee2d57643819f7" + } + }, + { + "type": "Regular", + "proTxHash": "66f03c7be7c28fac84e90875d67789968b4261f9144ae02c558444855463f4b7", + "collateralHash": "bed660ba1d47a670be2c88111d312e1eb19cd95d846039a2947e79fe1d8ad25d", + "collateralIndex": 1, + "collateralAddress": "Xkd5rfV4NRFuVTirHSdfYPTDB45NbFG22S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.79.135:9999", + "registeredHeight": 1398790, + "lastPaidHeight": 2127386, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyMhZ4bRnp7NcTxsmd8sJwqY7j2yDJufnE", + "votingAddress": "XrSG9fx6b4K1Tf5Vm3xNai1igBHP5mb4wc", + "payoutAddress": "XsD6FuFxoo3L34yX9xs6aR87oHxQxYuC9q", + "pubKeyOperator": "98dc7fe8e2f138ceb08bf0833c02bb1c7a5d28b6c36ed33b6f586133629d6c4fc7d6cd656233c712325b99da0b4d7dfa" + } + }, + { + "type": "Regular", + "proTxHash": "e6245ddef3697b626a5571b82499e00fd0d68461d6a2e3ca745ddaeb0b1f79d6", + "collateralHash": "af1988841fa4e61739c80e7763125a8fa3eebb6d4ac4afd2ac38b9615488a76d", + "collateralIndex": 1, + "collateralAddress": "XixoFTijPt1UVbfKCK9XqXZ4gZe7C4MaTc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.68:9999", + "registeredHeight": 1398920, + "lastPaidHeight": 2127434, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqHB9LoJ572PFN3A5TnzkhYAopFVorks7Q", + "votingAddress": "XbpedfP3eRpPU2iDNQ3TKswLrrjykHVqwK", + "payoutAddress": "XixoFTijPt1UVbfKCK9XqXZ4gZe7C4MaTc", + "pubKeyOperator": "0a4bb155e5c2c3fea641f46a6510ef23d1f9d2813e61ae1e6a983978491013d2337e1715578c9c451b9b411fc18c13b4" + } + }, + { + "type": "Regular", + "proTxHash": "cc515f5dfb1c67330c048ce6338fc73d4b1b18554601c574ee9982b8a7a3dc98", + "collateralHash": "f00d8e3b67d515f770229dd6bc92abd56d4634c4956327c3ca6bc3aadc9f8c31", + "collateralIndex": 1, + "collateralAddress": "XrCYdh3eyLqyvojeTwwnzCuNURPUrmECaH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.206:9999", + "registeredHeight": 1398922, + "lastPaidHeight": 2127444, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoeghGEaSMHkcrfH13oJ9HeLgFBF9wYeyW", + "votingAddress": "Xct2A5Fmx9dxtyzDkNB7ThQbhWbUaLPQin", + "payoutAddress": "XrCYdh3eyLqyvojeTwwnzCuNURPUrmECaH", + "pubKeyOperator": "17798cdf754c24c7605528730dbd4b438f4726269d95512224a43d01a715e64373b7acd177608c0cf4dde36239d02c23" + } + }, + { + "type": "Regular", + "proTxHash": "d74519d65b78ab5c34c8c8bf8951e967a35ebc17b2eaea3f5d1fbe719583d5fd", + "collateralHash": "50d5c82e1447a9407d149189fca1e4db4e745c8d7ba4b88d567427a1fcdce1ec", + "collateralIndex": 1, + "collateralAddress": "XdHNLgdFK2NeRjdpj8hBQUaiUe7GSnC5aa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.130:9999", + "registeredHeight": 1398932, + "lastPaidHeight": 2127456, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs8W9zzknr74oUXupGXqjdZuitpHzt4Cuo", + "votingAddress": "XyeYuagxf6YjciBhmzYwVdiUJTRcEjzy89", + "payoutAddress": "XdHNLgdFK2NeRjdpj8hBQUaiUe7GSnC5aa", + "pubKeyOperator": "85a828004c31b3887dd508da2ce76c9933c258f5e6107b30b8edeb8aed87e9aa3d17cbfa235148e3036d324556653d8a" + } + }, + { + "type": "Regular", + "proTxHash": "6cb98f7d923cf15945559af0943a9a811a8c9aad1147262cf9950b7de6b584e9", + "collateralHash": "2d0b1e19b3d5a726c7210861a3978932de6ba46ae9aead740d113d0d526a76d7", + "collateralIndex": 1, + "collateralAddress": "Xj4VCQJM28G9SAY42DqkYiNTsLjfPM1fhB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.96:9999", + "registeredHeight": 1398932, + "lastPaidHeight": 2127447, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XavAqxvXo5aB9wwKPVGFYGDutsjHoQZn93", + "votingAddress": "Xsqymdvg63xm5dydTnfCuDPCcnmRFApXLT", + "payoutAddress": "Xj4VCQJM28G9SAY42DqkYiNTsLjfPM1fhB", + "pubKeyOperator": "925668eb37b4b0daeb7c03ce1767f4bf4d1477a2708239b9536a787bb6569a1da5ead28f01ae62697f3eefa28e019113" + } + }, + { + "type": "Regular", + "proTxHash": "24b7c279197ace1eca36926f8a5521047281de86a77db8dc8068575d0e3291a5", + "collateralHash": "88e5969b7098cd2e35e060ee6202ee333aeda11b223e9558a6392709238e68de", + "collateralIndex": 1, + "collateralAddress": "XpPJjqTEnSZ8Ems9m4DShFdnwLZqSDbTBN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.195:9999", + "registeredHeight": 1398940, + "lastPaidHeight": 2127468, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqmCjiCwEhCKesrHJuM8mFCxubgXSEeHwF", + "votingAddress": "XqUUp8bhsjNJfN4zjuokhGVgFSjH7HyxMB", + "payoutAddress": "XpPJjqTEnSZ8Ems9m4DShFdnwLZqSDbTBN", + "pubKeyOperator": "8b4253f994e44b1e241fbefa9e8148ebc1e86bc5fba5c2a75d2c852ece56c2dab7138b9e87a8dfd7a53df4e6a1103707" + } + }, + { + "type": "Regular", + "proTxHash": "2b5071df563850c308843d77f458642268422e3b8995d794f958588d3afd561b", + "collateralHash": "6e3745baf7394c2381b77db112b3f9f560ca88701285d9fa0dff3a26b683cb2a", + "collateralIndex": 1, + "collateralAddress": "XbTXCV6AV4b8ULyyAMvdDssMmveV97M49F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.22:9999", + "registeredHeight": 1398940, + "lastPaidHeight": 2127465, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMKesmtBGtJhV8J8dCo5vg8Gh69KmeU2U", + "votingAddress": "XjpbKfRv1UgcckEm36s8ockZfjvAYLbZcb", + "payoutAddress": "XbTXCV6AV4b8ULyyAMvdDssMmveV97M49F", + "pubKeyOperator": "077ca0d495806805cf8af45c253f3f00067edee340af11f2ce7538daa92cc90bd7d0869bef767c2de5541fa7a0e06610" + } + }, + { + "type": "Regular", + "proTxHash": "2fb70ca571d932bb604eb66b4449e6634ec949c20d6e4b9c1d8de8747947b02e", + "collateralHash": "fda03e6eb51c3b4e60cf675af99793d26268defcd211b6cbae9289f791f9442c", + "collateralIndex": 1, + "collateralAddress": "XxNx2Ty8qfaiFdNNS7vnshzqohu5U982qw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.35:9999", + "registeredHeight": 1398942, + "lastPaidHeight": 2127469, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu23enh91rsjqWRrEekVQoJqnJrTVFZYmM", + "votingAddress": "Xyf2TspHWFcN5X8JEantUSyn8ZHsZANRDP", + "payoutAddress": "XxNx2Ty8qfaiFdNNS7vnshzqohu5U982qw", + "pubKeyOperator": "156cc529279e3fff8ecc8490ec62da2510077373bc8332857f9d9b352044f33f462db837345f28fd51f9bb99840c9dd9" + } + }, + { + "type": "Regular", + "proTxHash": "98c655e46e3fe6317464b81efa164229016f73a9c36a48b8058d46e2faf33a49", + "collateralHash": "8c75f21624cdc8ddadee1d562ebf33e23b43e2e89bf12ed4616480bd5ac082d7", + "collateralIndex": 1, + "collateralAddress": "XxUTHrjMCaKErDvGa1L3swP6roBAqS3N4D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.141:9999", + "registeredHeight": 1398948, + "lastPaidHeight": 2127473, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn66ZN5EDBxSuBi25Kc57XuzVth3kj5HGP", + "votingAddress": "Xh7CiBYY33SKiHmxgemuwNmuRX6ixT7msZ", + "payoutAddress": "XxUTHrjMCaKErDvGa1L3swP6roBAqS3N4D", + "pubKeyOperator": "069abe744f936865dca1f880dd8747a48f42e4eea01e55c37c549656d2b66b0d21c5d9f9cc8233ea84209f1b38938a8c" + } + }, + { + "type": "Regular", + "proTxHash": "b90d0c7e9b6e379173e3dbb8ed5ac73019a302ce6536a8e3bc6c2ef44384590e", + "collateralHash": "af427d6d8083860fa5bdbb8c7770e7911c4ad4c20d142c3b752a8d2617fe02ac", + "collateralIndex": 1, + "collateralAddress": "XtyqKFgPyzThVMk3yUtJbW9SPXreuPsN5Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.19:9999", + "registeredHeight": 1398952, + "lastPaidHeight": 2127475, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeaXSxDUqvPmpiK5xXmBMrT5Mqcs84VpVk", + "votingAddress": "XeDLRaDE8i51w4WC48zeRXCA6dLg8b6do7", + "payoutAddress": "XtyqKFgPyzThVMk3yUtJbW9SPXreuPsN5Z", + "pubKeyOperator": "07f24a32519fa1c806fe3e65844f6ba12da482dda4515e54bd7d5e69f60c5bdfca345ead350b47f833ca31031d13a437" + } + }, + { + "type": "Regular", + "proTxHash": "ef6696c6aab9b58e1d52144947e6bc7d984dc823a522f201fbbd01e3ffc5ca2b", + "collateralHash": "b15fb47c7444dbd4c35084f961d9b66d9a4a649b73084246c37e8b14e86f5632", + "collateralIndex": 1, + "collateralAddress": "XmmZyi8HtYU6d9gVNG8ksAgTiCsshahySQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.19:9999", + "registeredHeight": 1398952, + "lastPaidHeight": 2127476, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsv3Mppxmv1S2RgYK9u69ZQFa3J3xy4xEF", + "votingAddress": "XhZLytaHdVSDfnnNVqobsax8yhHBWXC8c2", + "payoutAddress": "XmmZyi8HtYU6d9gVNG8ksAgTiCsshahySQ", + "pubKeyOperator": "0a64052c9b9543ee0d8e6f19f92687cc411addd1d3103433ab002b288c061a59ad4371b96d15dc2ed1f129e5cef4874d" + } + }, + { + "type": "Regular", + "proTxHash": "8555bd022b3d83958a22eb65f22636b41e48fb62f300240498c7a18b17bb312c", + "collateralHash": "30b65ef831bcdc57d1c722f340f6857d26589480a3f63c99a88cdace30113d0f", + "collateralIndex": 1, + "collateralAddress": "Xp8uPVke88Y787s7bzveCTtrwhqNXDtf88", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.144:9999", + "registeredHeight": 1398955, + "lastPaidHeight": 2127485, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwCtJYBTYqMBDkjHtgK4QqrcLqhVsxk8qG", + "votingAddress": "XfJnH7GR3nxQ4fVekD73dLtnJPohDaU9V4", + "payoutAddress": "Xp8uPVke88Y787s7bzveCTtrwhqNXDtf88", + "pubKeyOperator": "8dc6bb3b660a0ed0663e2aa5585a16b7d803ff721d08c6ccf9479e51ff7a80e24ae61443440b87650beabcb0fa6d8a8d" + } + }, + { + "type": "Regular", + "proTxHash": "37803ed22913eb3dd35eed8b32b1520bdef72ce5cca419131c839c42a442de5c", + "collateralHash": "9b21ccba4212851406a23646b4bba4fedfb289a8b9d957d00c9ec4ccdb4a913b", + "collateralIndex": 1, + "collateralAddress": "XhB5Z7TDhxPwKR5uW323Nf7hFhTrG1UcwP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.227:9999", + "registeredHeight": 1398962, + "lastPaidHeight": 2127497, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm4P4kzENmwgFnZ6LWnCDX5k1QvKBbFPwQ", + "votingAddress": "XkBzbX9SheXZfWFP7zmYrJcG4xqwu8ggic", + "payoutAddress": "XhB5Z7TDhxPwKR5uW323Nf7hFhTrG1UcwP", + "pubKeyOperator": "91c1f9d7befa8f2902b6fd51a553593a33f7b847d455d909297acd47bd10db1dcae7d91203bfac44d00a86553e3d3e5e" + } + }, + { + "type": "Regular", + "proTxHash": "50e53ec79b8860eae0dda74eb32090060e0e37fd186caa553c7880be01b61305", + "collateralHash": "017a8ebadd3f6f63ff520708e522d824012819e86e2fb3e6d40dac892f4abb19", + "collateralIndex": 1, + "collateralAddress": "XoxEAUB7pmDuP9nZy5KcmCL4NpyWENLGE2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.39:9999", + "registeredHeight": 1398967, + "lastPaidHeight": 2127502, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxkuXZXmibJxjRhD1bzCRysYqkFP7wqUxY", + "votingAddress": "XvgxtSa5TQmsgsYS2iW5kdvrzVCFv2DSpS", + "payoutAddress": "XoxEAUB7pmDuP9nZy5KcmCL4NpyWENLGE2", + "pubKeyOperator": "8d2b1c58d70b229f2cc2690aaf33df0aad227fec7619ed1c2295f704fc7d73ff7bb97e3013f7c8211620c4715d18147d" + } + }, + { + "type": "Regular", + "proTxHash": "a308dfe7eca28439ea82b5c1c28df1dec9a24002af4a8535f3d05f833770387a", + "collateralHash": "307f0548f2d356bb8564b741939830799d7f8322995717524328808003915b0a", + "collateralIndex": 1, + "collateralAddress": "Xhv6JYcZi1wJPK68teT5LWhpLVqk4mhjiA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.70:9999", + "registeredHeight": 1398969, + "lastPaidHeight": 2127504, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdDbNm3BAPYfF9796xKEpDfwxqZGJUjN15", + "votingAddress": "Xp6vyh5zjiif8BUZS1akkYdd3W6KsSQJZQ", + "payoutAddress": "Xhv6JYcZi1wJPK68teT5LWhpLVqk4mhjiA", + "pubKeyOperator": "11a611ce072ae57c207374b27936546ba144b9a415d20737e1ca25a14978edaccf8f7ded67f917f6d1a429e3447bba12" + } + }, + { + "type": "Regular", + "proTxHash": "e2c4bd155dfd1166069683d60db69b4a2289e476f038d053e0ac1e94405fe934", + "collateralHash": "5a60004141ff2c21491f470501e9433aa40256b20deb1c73777b5f61a1fd7060", + "collateralIndex": 1, + "collateralAddress": "Xuh1i8acDdGUMJi5r1U5828ukHxZUTXLdL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.36:9999", + "registeredHeight": 1398976, + "lastPaidHeight": 2127506, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvABFnmjpnw9TzwAKBm6jztt8uoPTRcKjQ", + "votingAddress": "Xx2dMDE2PowwmA1y3Wm8XzriVgtKPETWcc", + "payoutAddress": "Xuh1i8acDdGUMJi5r1U5828ukHxZUTXLdL", + "pubKeyOperator": "89a48272f5c3d52c6e7e9b97051438143b9b86e542e4395e165fa5b8038d73d7612ff8bb438e434b60390aabda8eae7f" + } + }, + { + "type": "Regular", + "proTxHash": "7c3556b0b2f7683b8c125f0438328bc05c014b1e515b6e5b8421ca0c4e9368e6", + "collateralHash": "f18cd3655922ee454a4c56dbecfc7ae3bb993112e4a21bc96037ae62867bb3db", + "collateralIndex": 1, + "collateralAddress": "XhBZeVGESUo2cSHwcEcfKyX6LQ8rHWVtza", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.99:9999", + "registeredHeight": 1398981, + "lastPaidHeight": 2127509, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpjoRuaP4Dh1y54MyAEw2HXk2fmVmvF7oh", + "votingAddress": "Xx9PV61LdghLcUPGXQ68Z9MRh2LBW42vQE", + "payoutAddress": "XhBZeVGESUo2cSHwcEcfKyX6LQ8rHWVtza", + "pubKeyOperator": "950b07c2e95b0b8caef5b7b8a64a51fe660696a6433db327b6e0b325c0f26ea21cd527938d54233d338a27604f321e57" + } + }, + { + "type": "Regular", + "proTxHash": "96172a5caeee869b8662a1dbc6ad2d4da43a5678fd91b5fb87ba4cfbb93324a1", + "collateralHash": "d051290c8b1791b8a6a92e34aced3d68c1cf5d28105ebddcbe2bd54831662dbe", + "collateralIndex": 1, + "collateralAddress": "Xgp2boYhoimjSQBP1zsjwSxPvwLSB7bji5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.66:9999", + "registeredHeight": 1398989, + "lastPaidHeight": 2127514, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn8bekDz1bZ4mCdqjiDtfas8H86sb6AYQf", + "votingAddress": "XxU2NALwKkFxA764JKwKH4MWGRdkHBnpDP", + "payoutAddress": "Xgp2boYhoimjSQBP1zsjwSxPvwLSB7bji5", + "pubKeyOperator": "94bfa631b7421ee9db633af657f9d51f2ef3a01bf9025d6759ae01aa03ae9e27f3748474355dd9114fe65966948300d7" + } + }, + { + "type": "Regular", + "proTxHash": "a5ca4c081a8455a2e8f3c5c1f2f3b4616061e00bd053c172d51bbfa3d3f42f1d", + "collateralHash": "4c88388e14c439fd959e02d32108feea46e731130b8a828c1c375e73fc0b7b29", + "collateralIndex": 0, + "collateralAddress": "Xuhrgq8oppBtdxbUWaTm4VfpdydsN2AYDm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.104:9999", + "registeredHeight": 1399579, + "lastPaidHeight": 2127931, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmShheU4n6a7VsSAgxrJxDxpNvVqQsUhib", + "votingAddress": "XwSQMUDzgVhqLvkHTEjNTsawMAZqkMiwDG", + "payoutAddress": "XiUSh8x6QxP5sCDHPTZf9rRZJWVNi6fnZ3", + "pubKeyOperator": "927d0053ef18f1ae6c0a2b3fd5368f315dc44ab246df97edddb5b662af91c8b80236c6e15ad7bc365bcf6fe3eb4c5355" + } + }, + { + "type": "Regular", + "proTxHash": "cde7f3e79d3b230f832469afb91a21b70d32283d639d7c92b4dcadcb8f700f03", + "collateralHash": "61757b825c5cd9b549aeaff6d2a946bea3b4622b322a5b4e26f3d077ad4c2876", + "collateralIndex": 0, + "collateralAddress": "XfEkvwdBCT3jnNAYfQqnJukqEwxeprzkQW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.250.78:9999", + "registeredHeight": 1400229, + "lastPaidHeight": 2128558, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2017832, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs7pqKGASJga8wtdz2LcM8J5dJqxYJC1mC", + "votingAddress": "XgrpPsyBBgK6jkVWHpa5ZLXyH5FveS44jJ", + "payoutAddress": "XfEkvwdBCT3jnNAYfQqnJukqEwxeprzkQW", + "pubKeyOperator": "935d526683f7ed8a27fcc304e08c8d83cd07a9a2b0061e07ef7bbee4af513cd7cda1f88f583b702b482488f9644d0403" + } + }, + { + "type": "Regular", + "proTxHash": "37ecae95cf090934205ee897a8a04d4e33f262771efb29781676eebecd104f43", + "collateralHash": "2a62640de089023cc5d5af195efe89b6fb44fdca119dbebd6fd121dcd3e0e2be", + "collateralIndex": 0, + "collateralAddress": "XobCdC2ARkJ3Y5wKMSvhdu1BYUir5i6sbk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.157.141:9999", + "registeredHeight": 1400229, + "lastPaidHeight": 2127090, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcP7eu5u9iswjEJi7ZDnRFxBE1QbPS1g4J", + "votingAddress": "Xwst3vi3YdjTK8YFLNoRFgKJUyoqbZCGMA", + "payoutAddress": "XobCdC2ARkJ3Y5wKMSvhdu1BYUir5i6sbk", + "pubKeyOperator": "99d36aef0dac97efcfd2018b71286803718594a17bf77aba3bb9aec254da879feb6b10859abc784081d7e602b2b6dc63" + } + }, + { + "type": "Regular", + "proTxHash": "72b23ecde739b239048d1f139a14bf2e26782ddcf7fe3bf1b91b8aeaa24109e9", + "collateralHash": "fc49b1db5adbe0409555b2040209b5b81510412f5d55ea9b2a8491f61b3a1a1a", + "collateralIndex": 0, + "collateralAddress": "Xwymrx1SESkkou7mCkBiWcejh8o1r1K31z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.98:9999", + "registeredHeight": 1400743, + "lastPaidHeight": 2128867, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsYdUi89VTstNxQNpKi838rdeGdiLWXPYh", + "votingAddress": "Xx7ZudiSoMvtwEevoEk1vtQGGNfakcnwGU", + "payoutAddress": "XuKeiz2Fr3tQoyaEQg6nTAEgkxMkeTCjQP", + "pubKeyOperator": "0dbc615419b2d17bb63496a1608c65a5ec5b12310bf7e00162fb9fd017ad1f83cb43776036e9588c3ce8f0c738a61324" + } + }, + { + "type": "Regular", + "proTxHash": "f734e0442fa86044dda22d5f86ecc3f3bbb18aa705a2f4d5d242e32145f9cbcf", + "collateralHash": "3d9ad9c5a80c8b080e1e467ab3dcc4fa7150c9e3f69a7c996da8a21486dfd26c", + "collateralIndex": 0, + "collateralAddress": "XtMmQdfJ7avw4bpRa8yAfVeKdk1KMYwV43", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.248.96:9999", + "registeredHeight": 1401123, + "lastPaidHeight": 2125787, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrrqWEpsLhLPkqapnSsmjQpuN3urboFfsW", + "votingAddress": "XcKQ2YiBxKQWpLDDwvE9qtcfW9nNoodpmA", + "payoutAddress": "XyoEGYCN3MhrPMdtDXyLaSNqRcew6nCo1M", + "pubKeyOperator": "13aed912609fd287cada72848ed03d3db607173c30254672c01e4c998a2f0a93636cee444e3ce78a5e74936cedc064b6" + } + }, + { + "type": "Regular", + "proTxHash": "1d33938842240c4c1890fe26e30b75c6e6fcd072d064c3e0d4d9f8790c4f093f", + "collateralHash": "abff69d9761540a277e1305731adaaf9e0828330cf245956d8d0412f865b5475", + "collateralIndex": 1, + "collateralAddress": "XfbEk2DsQZGSBVuCuk6r4M2pdD8CGQwGJh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.102.81:9999", + "registeredHeight": 1401321, + "lastPaidHeight": 2126088, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2082695, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XewKaJQMkPhmFN4EWZMM6PHMsjzRcaDf26", + "votingAddress": "XewKaJQMkPhmFN4EWZMM6PHMsjzRcaDf26", + "payoutAddress": "Xhy29Ky5a66KM5oKeVTzLXDeuCXHecHFW1", + "pubKeyOperator": "8a31883bd3edaca27f0c8d49d0c06f28165c1a9c3b46d1b6fcdc5b53310dba56c57a8537cbe61ab43fa3015d87efd238" + } + }, + { + "type": "Regular", + "proTxHash": "ba9a3076cca4657c6c2e2274d60df1399e48ebf03c00d6f51aba04ff4ebb18cf", + "collateralHash": "f7970d506a7f61024d6bf157687492b65214d089a0554ce6a2de0c87b4f83348", + "collateralIndex": 1, + "collateralAddress": "XazPitVExxYFguNPFzBQhM8RzyFBFJGY8Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.76.233:9999", + "registeredHeight": 1401453, + "lastPaidHeight": 2062942, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2032608, + "PoSeBanHeight": 2063274, + "revocationReason": 0, + "ownerAddress": "XcKT7N3LHB5RgAQYWhDU2r3dDrWg1PJ9jj", + "votingAddress": "XcKT7N3LHB5RgAQYWhDU2r3dDrWg1PJ9jj", + "payoutAddress": "XazPitVExxYFguNPFzBQhM8RzyFBFJGY8Z", + "pubKeyOperator": "0dc9614c2e85bd43c1501d61eac50b42ab0de6858d4caa52a8c63e9ea8124c0300e5c7b351c3d160cce94a19be05996a" + } + }, + { + "type": "Regular", + "proTxHash": "69974be59ab9b117c9eeac2ad50fbb352c1fd61418e7962070bf39e51968de88", + "collateralHash": "0ac03a7197742c9967e4f59dc6ef7e7012a2d4143f206f56ab8cf2f11e191f92", + "collateralIndex": 1, + "collateralAddress": "XpbLB6P8gAUYZY5awo49nP25869LPnjUrt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.54:9999", + "registeredHeight": 1401665, + "lastPaidHeight": 2126823, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986026, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeRNBPHKkoTWD9Yz3X5XdmkpZQPBhNvWz6", + "votingAddress": "XeRNBPHKkoTWD9Yz3X5XdmkpZQPBhNvWz6", + "payoutAddress": "Xv7MxU7GWdVPpzswwTTAJccYhnNBjohzXp", + "pubKeyOperator": "0fb14c31c4140d462aeb60c48741dafbe78a08ce77640d912d0439b3b083819d751c81c426842f2246229b2574381128" + } + }, + { + "type": "Regular", + "proTxHash": "4d84a44f531ed9efccdb85df7a6daf5bd0f5c24ca4229fa3605b342c616e01c5", + "collateralHash": "80aa0c2fb778682d82cdab2ecd01c979d883e2ca78e51851c763195c61558d66", + "collateralIndex": 1, + "collateralAddress": "XgKboob8apTnANYREYghjc4dDow3dtW3z5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.91.127.166:9999", + "registeredHeight": 1401821, + "lastPaidHeight": 2128306, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078169, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvpHvCaekop8kpWNzdBHMpP23UDMCWwmsj", + "votingAddress": "XvpHvCaekop8kpWNzdBHMpP23UDMCWwmsj", + "payoutAddress": "XuDJhCq3Woy71BURFXU5Jcr6AdTbBHFzKj", + "pubKeyOperator": "11820f1af19de9438d632512d512b007148b12250455a46b2ef5023106db3bb29eb02b6cf56a4466420c76c276530e25" + } + }, + { + "type": "Regular", + "proTxHash": "e7101cecfa8293d6259f8046f19837247e2b37a63f9b949375ffb0837872c564", + "collateralHash": "55fa70181e09ec4578233f21de510e691f41130144ff494bf5225b1291563663", + "collateralIndex": 1, + "collateralAddress": "XaxMwbNpKeY6gV5enEXA6M3VtcPLJFLhoJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.117.38:9999", + "registeredHeight": 1401899, + "lastPaidHeight": 2127513, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1993113, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwdVKLNfBEjBLFjaTwbYJr2yQAVovrnMeo", + "votingAddress": "XnoRjhBz1AR7PxFhN5vN73LRRhcwmaxvXm", + "payoutAddress": "XkCQtsCY2V9iTFRYoY1Gmvqa5bhFdVHyYU", + "pubKeyOperator": "10232876838b752c949f73e2226cb28e1d1a9981479fc88b767304c2e76328320f9507599a6fb4e25f456535429d093f" + } + }, + { + "type": "Regular", + "proTxHash": "af5125d0767fc9da5c364c06eae870869450784783eaeb9bd72a05ec06072496", + "collateralHash": "93f5d7bea58202a8951272a55ae79f480cc18e392b46885920ecfed7f5915870", + "collateralIndex": 0, + "collateralAddress": "XfptyV7wCZopp7rnRMNfESA3Gcx26Xcy3J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.12:9999", + "registeredHeight": 1401925, + "lastPaidHeight": 2126245, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtVbLcJcRNNGQtDvfKwJooctmCQsbaXswJ", + "votingAddress": "XgBQpA8YpkFNN1DfBq92TKKCJKCKqUymow", + "payoutAddress": "XvUg6LK5T2CzmsGiqpRmZVUEEyRiE2CGpm", + "pubKeyOperator": "13471625bb93c15bb12dab530f395adc4cb57a997bf7d41cb0ae22e2e7fec688798e2feb114fce01e0a42dc889187769" + } + }, + { + "type": "Regular", + "proTxHash": "5dc958115ea894e1ba6fd7a0cfd5c2eae405d79a2002f320a74e5721f5e206b5", + "collateralHash": "7951b64c6cf2d933d13945e18260324c895744292dbf491c70d17537a093a3e9", + "collateralIndex": 1, + "collateralAddress": "XjJCMPvsiQdxS9fGZDmwzvc1eh6mGL6Ybx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.248.145.222:9999", + "registeredHeight": 1402267, + "lastPaidHeight": 2062949, + "consecutivePayments": 0, + "PoSePenalty": 3813, + "PoSeRevivedHeight": 2032613, + "PoSeBanHeight": 2063253, + "revocationReason": 0, + "ownerAddress": "Xwj6sqAGxGjbYH8sbtntsiqyvKbzLwYXbe", + "votingAddress": "Xwj6sqAGxGjbYH8sbtntsiqyvKbzLwYXbe", + "payoutAddress": "XkJTQZyF4LKGQEEnRXe4p5rmdfrcyifG8c", + "pubKeyOperator": "87a26e03d7b10f61dc37b7b27aec5b18d788ddb243d98e6051c492aa43bd3ead81d8d9145ed5fa1fccaddfab69b8b0ab" + } + }, + { + "type": "Regular", + "proTxHash": "28a1841f20c38dd97291667dbe7649ade0e7caefe6b415891a8f0639e56cc8ed", + "collateralHash": "515c750e3be6302069dfc6e68e486d36f89482445241540c4d03412d7e2f4037", + "collateralIndex": 1, + "collateralAddress": "XebBreM2rHB1Z7zgAaqsRwP3MtQkANwXzm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.11:9999", + "registeredHeight": 1402316, + "lastPaidHeight": 2125847, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1639050, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy3yi3PDyCkC1cmAUAJrtBU4r149VLPASX", + "votingAddress": "Xy3yi3PDyCkC1cmAUAJrtBU4r149VLPASX", + "payoutAddress": "XtayRDKhZjV8KB9asSaqGbSVE9JCEgHod3", + "pubKeyOperator": "99f775a0ff7eeb65374bfb275631c0bea2d1821e1f8f253eb057c9a61faffeef8af31bf74110e018862ef22aedb836bf" + } + }, + { + "type": "Regular", + "proTxHash": "bd454d237c0d1f9710e24f07eed2b6757ed0161ad9eb60c4fcde74d6dee0031a", + "collateralHash": "dbe97f40d1f633e07ca2d00459836a8bdff7a7e58e49498f8b517705a814d6ff", + "collateralIndex": 1, + "collateralAddress": "XwQ1sZjRWgy28VHiyHuvUP2jq1j3Qax9CP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.15:9999", + "registeredHeight": 1402318, + "lastPaidHeight": 2126511, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrR5drYJdaY6HoCcU6C1YMu9ErPq8ght1c", + "votingAddress": "XnWCdCUH19gqL6LPL2SuTTkDCoefvuBJ3p", + "payoutAddress": "XeGFPbwoshAAw9yuRFyJa7L6x9JMXrEgww", + "pubKeyOperator": "114c1e474aadae7281a7a2965edd5c6215dbdfd3e64f5de720780fb036d52104c2ee69f3aa1fad0dcb9b46bd4e02503b" + } + }, + { + "type": "Regular", + "proTxHash": "36632ecb3406198fabd0d1943afe452e7a185aaba934cbc64c95088fdd158816", + "collateralHash": "05c26f065d09faf54360a8deb6c7f043f0a27968109b74135f6757c851a7ff4b", + "collateralIndex": 0, + "collateralAddress": "XoDTnmDCEkF6GmuNBWvvUcTPgtGWwLrJxw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.122.33:9999", + "registeredHeight": 1402338, + "lastPaidHeight": 2127087, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbwBVfXsDFbL6XMqmjDraqWhGZDmia5qYz", + "votingAddress": "XtkbzURuNv6TRvVQKttPUD5AXp5Tp4VEGk", + "payoutAddress": "XoDTnmDCEkF6GmuNBWvvUcTPgtGWwLrJxw", + "pubKeyOperator": "8da5f8c2edc89cdcb0bbef9a0cd815f77aa51e6af66ac3aac4209cc22873d924b43b4ffe8930f510918fb46ac8c096e1" + } + }, + { + "type": "Regular", + "proTxHash": "7fb94d9841ee0cc67a5efb574f0f3a1fca05052f001d18dc4a36eb6d410936c2", + "collateralHash": "0dce95d372428e1117b0810da326977850f121b654dea7b710e07c11a17243d0", + "collateralIndex": 1, + "collateralAddress": "Xdd4HMBZmm3ooGfEEAxNtKuvb5nYdDk5cd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.38:9999", + "registeredHeight": 1402387, + "lastPaidHeight": 2126576, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XttNECaTcLnzuwHJW9tFikbVjPvqiD8HUv", + "votingAddress": "XiW3XP6pnqTwDgAAcfFM36e4NEaDFWfX6Y", + "payoutAddress": "XeLXSkqd9MaZfzQWwrsWJS9V4gpTqnsRNh", + "pubKeyOperator": "8b1ddf47783f55e312acff4428ff2f4e8acdeb03dc954f96add8024da46f3e29aed8f06e9e86cec65e0cbdbf04878325" + } + }, + { + "type": "Regular", + "proTxHash": "8f84ac62452d5a8db4b1ccd4d5e4cc0e0ca8a3f5018a85d8c853f5c6350ce052", + "collateralHash": "d54d346c5627476322e38f7f73359127a90c136d03c88c68837c243bfd50567b", + "collateralIndex": 1, + "collateralAddress": "XnkgiN9S4mVWZJmtdFbRaTdJz3qEYwB68g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "213.136.91.123:9999", + "registeredHeight": 1402469, + "lastPaidHeight": 2126505, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985716, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfai9zRcdfnwsKiTb4zou2NGugxunDZpgr", + "votingAddress": "Xfai9zRcdfnwsKiTb4zou2NGugxunDZpgr", + "payoutAddress": "XnkgiN9S4mVWZJmtdFbRaTdJz3qEYwB68g", + "pubKeyOperator": "034f2055202ff3be03ebc5a34b9aaebd16e8b85dbe6c681076558820a46a86a25be154393fa48949ac58423268cb02e2" + } + }, + { + "type": "Regular", + "proTxHash": "c47ecf6f1e261e8dff01005b51f7cc7200c25ea594f2c01c272dcf6aa31dad50", + "collateralHash": "10ab52d754d27332b02fb63ee6008a2c87775b6baa9f869493fa2600bea42cd6", + "collateralIndex": 1, + "collateralAddress": "Xq5ceuSRUuCznmB2V8CcazH9DqLrpvTMhN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402754, + "lastPaidHeight": 1731905, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1732634, + "revocationReason": 0, + "ownerAddress": "XsCwRCCrsA4odrwyb6UUPUB2nAenRTDerq", + "votingAddress": "XsTCTQumAwWUWdY1sEs4mLH9pnjqFNk3a8", + "payoutAddress": "XpPZMiQkyuccQtvqCXNzpopF66WKMTHdHZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9358e0ef156c9cca901e24160459ff78b4972dac423d1b5c45b330dc55e34cbc", + "collateralHash": "f8c5d342bb3a9f6f3e4559da25faaef045b8de4050222bf93bc8e5c33a7d2d49", + "collateralIndex": 1, + "collateralAddress": "XccCRBayqPqt4AF3w8abxJsk6mdS7NBAoN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402756, + "lastPaidHeight": 1724162, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xv4oSfDtjm1qgcx4zRC59sCm1v9JLbiFkd", + "votingAddress": "XwcghAtJVxkKSxZpgSoCEpGttZuSFpMvQb", + "payoutAddress": "XgpkJxm6qrQFufsy98xhAfKbqCG17E6E6V", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8d01b72ce03ba2a59735380815471d2ad47b209ca9e51b9d74083e4d82b7c3b7", + "collateralHash": "3ceeda6bfb963f53b89911362898e42d1a1bb1ea714a043648b45be90063e07a", + "collateralIndex": 0, + "collateralAddress": "XtpDmg8LtLFNSCNTfHC4u3d5LyJ7h7L1RG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402756, + "lastPaidHeight": 1724160, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724891, + "revocationReason": 0, + "ownerAddress": "Xguk573SrAR4JymQ2wXasLuXUK6E8zobtJ", + "votingAddress": "XrGBArPBK7rVMPyBwvmHXiJFj2WsCiaNmz", + "payoutAddress": "Xk9LFaFhnmgXyC1MX3biS5SLg1pS3fm3cZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "623aaa2d8c21715b1b16ec1f18ac4e23138748021daf3fc4207046d50eb06393", + "collateralHash": "0513e02da6b3b959175b16e16fa1c25d1fae9a43dafd98bd8ebb7a6a46d9854c", + "collateralIndex": 1, + "collateralAddress": "Xyhxx8ynHh1qsAPm4hJGTqPs2PpHwvZAxJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402756, + "lastPaidHeight": 1724159, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725251, + "revocationReason": 0, + "ownerAddress": "XkD9HKaTkQfxHPo1fcoHr3PAwPvqkoPUSu", + "votingAddress": "Xk1G6B3dHKWDwRrbvLQ1b4Cm14z9RZPH4K", + "payoutAddress": "Xe4css2orZ5QdRSJV2yr88yb9F51EkdF1a", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4f673315a2a87ccd2e39d80f2c2a1ed6d775722f80374b08676a038367db4fbd", + "collateralHash": "4d925e71abf521b4ae1465ee056b49a9ed069ba250de1f0b9141016b95fb813e", + "collateralIndex": 0, + "collateralAddress": "XhSnHDC3jF3WvcFpBwFSzVGx44QWx1T121", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402756, + "lastPaidHeight": 1724165, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xgx7Hx13Yn9uypD6hQUdJ912NmHSh6j1Gk", + "votingAddress": "Xcj1Zp34opbqtYMfrx4HZhbL8MT7p2hkgQ", + "payoutAddress": "XapHLK9JRRgfG1JdzLo3dAsGvqYhYJS2Qf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f4080c017e9129a1116fd3137b36d455dd16beba09d0554f353c183a0d3c7aba", + "collateralHash": "9963df7ccfa335352fff9d9ca560ca52d313914f0524e74d4e9cb3a797574170", + "collateralIndex": 1, + "collateralAddress": "XyycHveJhVoeZyVLULXgaWMvPY6dd5iSK9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402758, + "lastPaidHeight": 1724170, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725420, + "revocationReason": 0, + "ownerAddress": "XkUSbyADrSp5YUSnySuM7qvEpkrPEvcrsA", + "votingAddress": "XxdshmdRPN9Y157hUkiYwGFw7B1Ag59rBx", + "payoutAddress": "XwrF7A8BMTVMAW7EA1D5qfyLSQN6GRAoaT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5a93e959061807fb0ec465f31db70c471f0dbf3919dd03e7f61fb6f544a88b1f", + "collateralHash": "301e06ce50d2ffb771ffe0ffb1bb80728d180a3dca258084fe16a7af7e42c4d4", + "collateralIndex": 0, + "collateralAddress": "XiANL7KJ6GeACv4Bi7DzcmEZzoRnoHnZN6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402760, + "lastPaidHeight": 1724174, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726140, + "revocationReason": 0, + "ownerAddress": "XxThPwD8jj2YB8ETkRHeLvS6kqUFf2dUQ7", + "votingAddress": "XxwnYorY8vmeMostAaGHKHe5KV33SBZtPX", + "payoutAddress": "XqoGcxLU7bq6UR9r1zZhVAGHYr3qxroaYa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f6e43cdc70e87443a3bb9cd49173efdc2d08d93a7aca84eae5c000991ed7cab4", + "collateralHash": "dbc57ff86a25b8c9d7dc5b12e6342543e41cbb3f4b1278d9798bf008aa749557", + "collateralIndex": 0, + "collateralAddress": "XfQMFDDTVbUTSbUsA5b8E4sEKamhUvY56T", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402760, + "lastPaidHeight": 1724175, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724315, + "revocationReason": 0, + "ownerAddress": "XefqnrwmazBmm7grbbJ86tWVjjRbNPBfi9", + "votingAddress": "XvTHq6xu2RddoLtUXksL5kTyujbRJB9U8D", + "payoutAddress": "XmHrYqyH9fy9cTtWpERnwrUwc5CiDDTFeJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e672324413b070c66830e53ee7f20de147cf0b0947cad7b5f43fad6f27c79963", + "collateralHash": "4c40ee1465aa67fe38174da4ee59b288a6dfefb66dd2ec772881c1ea8e04356b", + "collateralIndex": 0, + "collateralAddress": "XfPEZKpt5KeDSR3xDyaV5P23mTt3DtrQFf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402762, + "lastPaidHeight": 1724177, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XbSApHSXtvUhe5nJW8zxqStZobDwt4PKdX", + "votingAddress": "Xx2hRV3yVYmabE9dRuKsceszMbGhcLxpvP", + "payoutAddress": "Xs3j18zeEpWX4p7iY5sF1agd7pfAbsGgxC", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c6fa7c504aa7f2db98f97236662cf323111701892f534c10be6eb28b8e1997d9", + "collateralHash": "69a29e7d6019df84f45706a194f81dbc2b27078b778fdad5b72ba29006f15fc7", + "collateralIndex": 0, + "collateralAddress": "XkuA5xA27efHhSdiSsndQ4CNxbpy6kAT8A", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402762, + "lastPaidHeight": 1724178, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724916, + "revocationReason": 0, + "ownerAddress": "XatyL7ZTe5AuAtKxRYoFuj3S7K2sz7LmBQ", + "votingAddress": "XhKmKDMgomFyZAsc2H8MEC1KiTfP9d4M6y", + "payoutAddress": "Xc3U3UYjMMJEm6Q1nce5qy9B99Zn73wALM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "95888f43dcab5dd6ebef1f031eba1356b76c4c04745b51fcc57874fd3991e053", + "collateralHash": "06d43a23e18cdbf39d1e967a9a092fda1323dfd6c714e41747f606abe27a6d84", + "collateralIndex": 0, + "collateralAddress": "XfrFvHkGa9Fy1S432m5rRiXSotuKptYpEC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402763, + "lastPaidHeight": 1724180, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "XiQrXqPKcTj4S4t3MJPkuDkc8vKdA8kGXy", + "votingAddress": "XprkgFaoMnBsENiiStRKdXY7GsNoP4H1HF", + "payoutAddress": "XtcAdrm5tLxaRvBMPAzbVDpLo9LKUYREdA", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5ef5ec14b542ba48d2249fb8d0c5dd82b514641e2ee6e0fd67837eef9bdafa98", + "collateralHash": "756052adbf38d09ba14bb798870d55650278d7843d4e7ab509996d22440fca3e", + "collateralIndex": 0, + "collateralAddress": "Xw4gDgnoeCissnLCh5pmQY5QfpUhCCCCFn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402765, + "lastPaidHeight": 1724186, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xqg6n2TPSqKkGrUCtasmHHJdsra5aXUBcW", + "votingAddress": "Xt47c9dgtz1FKqTSpjewKUWB86FgUKdMh3", + "payoutAddress": "XeNR2zLo4JHFZSZhcPWSwBaC3VpozrwYnD", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "feb81f71321e232268e51197758f1e3dae7cde607995483e69f53dd7ae44ca8a", + "collateralHash": "22ea00f0df4b23bb27fb46ba33165e12134ca2fe5b3e31cca3fe034826fcff54", + "collateralIndex": 1, + "collateralAddress": "XuhCh8qVa9d2PeJCSKnGDSPjSzPAFRLPKQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402766, + "lastPaidHeight": 1723623, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1622642, + "PoSeBanHeight": 1724964, + "revocationReason": 0, + "ownerAddress": "XyeYL6mWimeLKbinihYkDtGmPN1jNX3VLq", + "votingAddress": "XgZ9gcMAXtH789486G1NuYN8tg1XNwfcj6", + "payoutAddress": "XkCxqARuJkuaAyKkbPgVRVYqFEnWBVKaZ7", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "13389b0cc2d9cace0f253c54a1c522647edb8e848f946947335186d9cd2847f5", + "collateralHash": "0aa9285962e527a9176c0780d031d430cd3cb5dd1e5398d4eb2400dd15f3794e", + "collateralIndex": 0, + "collateralAddress": "XtKLB5HHHkA7g35FZJ4EPjveAmCxRLKpN5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402767, + "lastPaidHeight": 1724192, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725227, + "revocationReason": 0, + "ownerAddress": "XjJGwrvdicjQghNSBsU5U4DCuWr7Hz3efY", + "votingAddress": "Xrw1djvwEmhMwnMhMLVGUuME7r3ude9Ttr", + "payoutAddress": "XukDrGFQfCQLyNGvfvJwKHVpTHv9AzLbYa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8c321211cb8814255de924500a4248b5ddc599863439e32540ebb9e6c3ffef39", + "collateralHash": "53b705dbd7b9e4daa05453fba25b8a73c574afa5b70db3c46dcc9f07ef22f7ee", + "collateralIndex": 1, + "collateralAddress": "Xf1KgYF3Ntdj9JPyBxhoFZjUbQyjZzAhcu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402767, + "lastPaidHeight": 1724188, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1724768, + "PoSeBanHeight": 1725852, + "revocationReason": 0, + "ownerAddress": "XskgGyKULx5E15n1BDS67eGMStKytkivHv", + "votingAddress": "XhUDn9m3dmz4y4zuhCo2f8vm6XGQckcpvn", + "payoutAddress": "XvDGgwosFhRCbePSYpFi3As3mM7jzn3AKV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1bfb4725f30511df471f9060b3221f0805f7bc1f5bd8111b8da052eb906528c7", + "collateralHash": "c46755db50333112213d38387d8f66137da42260dd40d424c3c5a6c6b36063a2", + "collateralIndex": 1, + "collateralAddress": "XwUxNo8sHbN3w9SvMSAXcYt1nYBknTySbD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402767, + "lastPaidHeight": 1724191, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "XsxoMvrWr9cvwAt9Ra78AvoUUum7zGWd1b", + "votingAddress": "XayriZV5qwoqKyyHZwgGKhgFqsKaaEWk8D", + "payoutAddress": "XhfwLpdMBqzoAcSJ29qh8PwaH4es3AKr7p", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c1cbe304ca7f20fb3ad3b38ca2a0e42cdda763b0d634604a54be56b0c3b356ea", + "collateralHash": "5f027de7b7175ae5f65b1e58ffc4ffededea93f805100fccf329df99e68f4541", + "collateralIndex": 0, + "collateralAddress": "XudFqxixmJi3WJsVb7Y2DFqTSi5Tbd5aAm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402779, + "lastPaidHeight": 1723765, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1561036, + "PoSeBanHeight": 1725756, + "revocationReason": 0, + "ownerAddress": "XvyQZwiXNTqd96hycjpwJNEheX6jJrzMvK", + "votingAddress": "XjkPXBQ5MQkwhBXpAni7f9Pe99pQxZ3j25", + "payoutAddress": "Xs33sF8KzwS22fHGkjo2zvaoMygRKvr4yL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2d822de106f1c1b9ff6efa30c30522a72e693a98227f64848d47a13f6e5c53f0", + "collateralHash": "6732cd030df2db1978f99d4d46abb0535b46e86f91da0a4be0f85fa637ec6613", + "collateralIndex": 0, + "collateralAddress": "XttCfPMSvT73WSCevQqmNCbvQjWh3d1roT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402779, + "lastPaidHeight": 1724213, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725251, + "revocationReason": 0, + "ownerAddress": "XbzfvaJMstF79DxjmnMQ6RX9NeRXCQNEy4", + "votingAddress": "Xf9tgLSKw8udsEB3B6YLEKGCjgMxhUg3FP", + "payoutAddress": "XfTBg2ntsj6uh93662Lq1yg8kXqw19tL8F", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6d76ab1e45d94fd8dcf57e987e0c59c01723c6a1425239559d8729abe7d5a00b", + "collateralHash": "7286f87cc20a2f2abcbf11087f1195e6b382e19b3a3f786c16b14e0169aa03ab", + "collateralIndex": 1, + "collateralAddress": "XnxA1WtaD2uMc6WZqomr8dKc9gey8vjDSg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402780, + "lastPaidHeight": 1723974, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1623027, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "XrFiUhMi27cRazXBHqcwsQRNT5pcYP8n9D", + "votingAddress": "XmbX9ESq1XApRTMZdx1MubBX4hJ3tbGsWG", + "payoutAddress": "XhdwMxZPCGgWTjBP1CixM7Z2DGxC4gFiRa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f46549a0a15f6c033ab7e0b3a9f666f3cacde20dff899b02224da634bada3a06", + "collateralHash": "62bcc75295f2e5763fbc1935129551a55c034bcadcd74f8972e61278038363ed", + "collateralIndex": 1, + "collateralAddress": "XfYogiJ9rwHhoEmaUttLHLD5jcQxVKBEUg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402780, + "lastPaidHeight": 1724214, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725612, + "revocationReason": 0, + "ownerAddress": "Xjpi6eF5GSe8MH18mbtEXx8FnRnfNiuiU1", + "votingAddress": "Xdrxcj4RtaK1Zaz2MfrRPeRivUemSrWqeG", + "payoutAddress": "XfjGAKgT8hheUGmBjjh9tS863EEe3SgKTn", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e91c4c5b313cf6f5e5e5f63a067408b7a0a5608b6b535ee59bd9a979e5141193", + "collateralHash": "764183a0184ee58c46c6fe5e8746cfd4cdfc8fa4375804371977b56f36ac3dcd", + "collateralIndex": 1, + "collateralAddress": "XrEQ6W6oAWpodAQYAKos32QuPZk1i239VD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402780, + "lastPaidHeight": 1724217, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724555, + "revocationReason": 0, + "ownerAddress": "XweA7fVJZzKeE3Hn2P55LW2HkFtgwGDYVm", + "votingAddress": "Xk7zJzhQESh1bf3gTSez6Fr18fxrp4e5sV", + "payoutAddress": "XwLTKcvjf1cCmR7jVuYNskqr5JLWtcXokp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a4f792fb43cf0021ffe4b8a0398a78d3ae4f77bc6c0c6fc9297a91bb6cace205", + "collateralHash": "8c57ddb89d82c6647de096befcd3aa8135d81b61dc331fe8526693145f290dbb", + "collateralIndex": 1, + "collateralAddress": "XyGz3j8oeVz5yenSXWQHnUJ66KuGwz2TZD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402781, + "lastPaidHeight": 1721517, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1594121, + "PoSeBanHeight": 1724795, + "revocationReason": 0, + "ownerAddress": "XwNqBBddbaUHQsbyBYUcYTLUB248bFTzZ6", + "votingAddress": "XtTYGcmmkjYHWUAhpnGmRxhDaoJniDkgFy", + "payoutAddress": "Xn3ytcSkuNuma2wn2k2nGVCnW8FK8YHmhR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5b0cc8c0a0d4029d464b5d4017eabeffdcc03536893f0eea810a2cb8e635d89f", + "collateralHash": "91c307a1315f163651437f7bc5c3bf436b19077bc48149f95777b11768e23a65", + "collateralIndex": 1, + "collateralAddress": "XvUHgjuTjj9ZunddLvcEafVcyQwJrPDSq3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402783, + "lastPaidHeight": 1724222, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725420, + "revocationReason": 0, + "ownerAddress": "Xu6X6kMyAYyLE8oSzzd4AocwpTRk2qRyeW", + "votingAddress": "Xh1SqwtF5D9Sk5Gvaw7t35HyibhfTRGNGT", + "payoutAddress": "XkUDHboxbP6D9VyMymFkqCTMfKB8pJ2zSs", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a7e1587394b8d26a15f706033909cc4a15ba46fb37058b08d303ae7ec9ca5627", + "collateralHash": "706609e5ca5eb63014c4e5a229f9adb6a4c4daaabfbca1a8f6cecef8613ef61e", + "collateralIndex": 1, + "collateralAddress": "XsntJEPKgYsKsrSfsUWLyUAj4GuHXWbApM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402783, + "lastPaidHeight": 1724221, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XiEv4Hg87LgJVCeRJcKwEuKJzynHbWFVsW", + "votingAddress": "XbY9Hg8yFq3kzRTMoGjwBPE4uzQvfxCjhk", + "payoutAddress": "Xmzkq1aL57gsk4ZCUQUALnaBL8V3MdXpje", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3ec6930cbbc8da5237445442f5d9312ab3f63ed9fbc495b898290c4d188367d2", + "collateralHash": "e4982f62f9f347f32a929d16ce03e5f1b3943698a462567d0194e118003b79c7", + "collateralIndex": 0, + "collateralAddress": "Xrcy6ZkVrpsa1EfgR5g9FQArFq54ctph1a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402784, + "lastPaidHeight": 1724226, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XgjNpDZen3XvvPLJS54cVgLEDR9gruZvfK", + "votingAddress": "Xk6ptqMrzzHix7gnoDrZr8gHCFCjLt2eTV", + "payoutAddress": "XedsteNrab6BQJigxeLGuXmfshseE5hp6a", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "716822c6c8ab527499bc17fcbd2c4fd266375ccd6fd2bb647bd9098edcaca7f0", + "collateralHash": "0dadfdb321982c3b9a8b44501a3ae0b95c25a180a7fc902eb6c5607aa453a290", + "collateralIndex": 0, + "collateralAddress": "XtpiVoZ5whSUhBCdSNS7VKZA8xk7ipz6jJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402785, + "lastPaidHeight": 1724231, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725875, + "revocationReason": 0, + "ownerAddress": "XaxFaRoLR554JvHcZrFhvq8YULmDC2Uv2j", + "votingAddress": "XimvFQdaD8wqgFWwBn9pkTAQWeLbwPdkoT", + "payoutAddress": "XiZeBTwvrL3wfnaYsMzEBRDKbWUUkpx3W7", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d44771773dd384fc6a3c2b80727482a1f5c6c15f53292651ab7d9d3cfcb2ff0a", + "collateralHash": "677ce3cd95a0117506286804ffa416b308b66c69692d422e78bbd377f2cc9298", + "collateralIndex": 0, + "collateralAddress": "XbeM8mZuGKSQYUYhFfpkGF3Aa7QmjHWecC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402786, + "lastPaidHeight": 1724232, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725179, + "revocationReason": 1, + "ownerAddress": "XwfFyTrQy4mb2oFWj4nGUGBfUukvdbSWJk", + "votingAddress": "XcALhkt6qPAcgUQwUs62SCzXwbR5WLumki", + "payoutAddress": "XdN69cHxWvdz7LiKQEDgZdSLbnBmEnMafv", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1cebd333ff6c50c9278ad391c8d788f32777d7916d97ed6b60b3d481dbebfd19", + "collateralHash": "280f8acf4ab79b8d75ad57cecb64be1893b995684e88abb0d36e650c380c83ab", + "collateralIndex": 1, + "collateralAddress": "Xv3fETVuuejZkPnMGqD6GZxBT59ZAD21Eb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402786, + "lastPaidHeight": 1724348, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1623398, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "Xmgcy2r6iV1YHuVD3UKadp914ozG4vgeWD", + "votingAddress": "Xhwm4YHubY2vho4RsAuGc1zrgC2ovLWEE6", + "payoutAddress": "XbyiySPH3TiVKEAXAAoF3rfGBNrQYxrvoU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "cb41b35569d917f9593c065015e9de43c88665d3a1983ead663791bbc7f8ffd3", + "collateralHash": "9b04985ca2fa46e255c3751009edbc99db8ec9496dc614d0dca0c856f005a4f6", + "collateralIndex": 0, + "collateralAddress": "XanYjvMfoW8CL5BsgDrco3KK8kruKGLw7q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402787, + "lastPaidHeight": 1724235, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725060, + "revocationReason": 1, + "ownerAddress": "XgyC7kcqr7FpTP6R2FV8STY3SdsXvbz2wJ", + "votingAddress": "Xfh4jWwKwiK4Tj1153VoKjMbC79PyYGsjA", + "payoutAddress": "XyAkVNtC7Dr9xUayZvz3n8AxKZwT2UirKt", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2f67c55db7eb620e6222e75f5b5b644e7a263d836306d3e2e73bfcdd604a1557", + "collateralHash": "99a4b8a91ead29ffc4fe60896deddc470c28e97b1789f04d3525e84edc3f7e88", + "collateralIndex": 0, + "collateralAddress": "XpvakWprj85iJfunz9HiAQDJzHGDwHAQNh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402788, + "lastPaidHeight": 1724238, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XsiCbKTGnztBZkE3DNqbucaAghqmW55kuh", + "votingAddress": "XyDgZ7GLDUzqLpGBM8pecUx5S7otArjwcp", + "payoutAddress": "XmZYDXkrayYLG2Nzo7EfyLjwYmmBkvK8us", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bd734b9c30c0c49b0232cfb6da33c39e158062e64007ea6630cce828d88f7a41", + "collateralHash": "fdb12d8c9b2aa9e2db0ed04093e6b63e0df173a48b4b1d46454dea9f95bd977e", + "collateralIndex": 1, + "collateralAddress": "XuXu3Eg3PHKHYXSCvChSiDjQLdXweuepWT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402788, + "lastPaidHeight": 1724237, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725060, + "revocationReason": 0, + "ownerAddress": "Xai5TnUoxkEmyw4Sz9aJ7ksR5N93XQwvqA", + "votingAddress": "XuYioH9fa6tNSdGV4z6iiG7Fj5KCNuLemL", + "payoutAddress": "Xoxas8RUUoxBigZAcHrrp7zux6areHTbRD", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e96f8f5da0e35d231ff6856bee70408904a457c3a2fb97da0fab2b1a48d8a5a8", + "collateralHash": "535c437914ec79140556ffa0adcfad557ebce58d84b8f0f0a64f0453deedf13b", + "collateralIndex": 0, + "collateralAddress": "XtZnKCFfV5rjWez1oipiHz3Fd2xdLuECwY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402788, + "lastPaidHeight": 1724241, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XkvEruxeJd2S5A1NhieWZkpFZD4JBs2o3k", + "votingAddress": "XvwTzWxbVefqBRQSkkSuNavSwiaHL1J2eJ", + "payoutAddress": "XkEBhM2ePbRisQami6GAKt1aDjQ6rDkBFt", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dc22eb6e3f6160e047df59d07a0fee5db0286cf5e8850b949cea2eae8614bdcf", + "collateralHash": "f033e602baa69ae68a0911ef577722ded66150dc66ab3828dcc880ac1998c366", + "collateralIndex": 1, + "collateralAddress": "XcFwQehRMDb3AvpvR4crUytrDgnTVoax3J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1402791, + "lastPaidHeight": 1724242, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725060, + "revocationReason": 0, + "ownerAddress": "XxDmFadBo6YNEeHa6NmqRQjHefaYC9wsgK", + "votingAddress": "XqzXFNAavhHCYHqeJWUYTinehytCKEd548", + "payoutAddress": "XpUb8dECte1XgZhZ2HBbmKi5irBungSz5f", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6f1cee009f28b3c4bfebd80a93f6c789d93a31a304f9c17a5f02ede088afe046", + "collateralHash": "62171c72e63e0975cb8f520290d9e26c49de9160a55194faf9097eba56fe0c58", + "collateralIndex": 1, + "collateralAddress": "Xd4W62A2dELZ4BebF85tJAdtdCrKGoF4kY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.145.8:9999", + "registeredHeight": 1402964, + "lastPaidHeight": 2127380, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118178, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr5y4qg55gPkbrYd2K9ht5uF6qRqDCFRab", + "votingAddress": "XbAXvAghiwrnQDeLubjwf4Y8uhygSyUktp", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8b4a1e567eefcb128a7a1099d7771033aa09189c98e18bd9b2cf2b9e1cfaf9fa473f22248e6bb07f784ca48f99da06ba" + } + }, + { + "type": "Regular", + "proTxHash": "0e62d0bc2f00c408f16a8439fabc6f6d6e9706ccdd1607d046902661caecdfde", + "collateralHash": "b518576e3930fab8bbdadfd66c7b62d35566c8c96950a777b2ca21e7fe44b14e", + "collateralIndex": 1, + "collateralAddress": "XiKHePBEh9BZjsE6p1djJKwbrbCULUu36c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.102:9999", + "registeredHeight": 1403477, + "lastPaidHeight": 2127337, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsKfCGjkvy4FMiAGZNZBPSMFrLDJJDMByt", + "votingAddress": "XrXGYJKhqNRa9hAVKn51fEGPpzQRpQgzX3", + "payoutAddress": "XfJF9aU28ACSDBjqAdQ2116ZMQqJWsv3cb", + "pubKeyOperator": "06e871fc5733d7d63d096a8bccb13912df15262536a66d449c68cc1a25994e173be87f3dce28d1698c9fad60b50f30ca" + } + }, + { + "type": "Regular", + "proTxHash": "5fe57739954ff97b02fff411ad126919280881f31eb8daa7dcb20755bb17e3a9", + "collateralHash": "e55e12ec4ad7e66dc421883c87fece4b5856494119a87cc6ef1d4db0a40aee11", + "collateralIndex": 1, + "collateralAddress": "XvB6hLaUQa1RHzd76omHQq8fbMoFTZebqA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.138:9999", + "registeredHeight": 1403536, + "lastPaidHeight": 2127396, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyjfhmfDEW6RE9fbTvLvxqMUjZDiTrjQpw", + "votingAddress": "XdAY4jA4xffpPaM1dB7SpsosDJcdHtQSwM", + "payoutAddress": "XfLZJoFdsy16FFJ9HjPug3Mjh71zdQVtsD", + "pubKeyOperator": "967bf9a1e161c578a21c1744cc1c8ec14e20280d6cf93839c529556a5ed6534e8897cb0c9416b788a8ebc7536f46cbaa" + } + }, + { + "type": "Regular", + "proTxHash": "0e50f9ad3a95055df7216750f4713034525e3b09188a10eac7b64eaa929d6bbb", + "collateralHash": "058cfb8fc1dc550e1b2005843308c2f3c93288c76de0dff9400fe2a0c1345c69", + "collateralIndex": 1, + "collateralAddress": "XpUiDoHMAeWNriwKXJdfAj6QhavgMEj41u", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.247.75:9999", + "registeredHeight": 1403800, + "lastPaidHeight": 2127547, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcNk4dqwQx41QrYuLNncawC1vfBsKNFHfk", + "votingAddress": "XqDrXkVhkuCxjBDdJcBmT6rKkD3JqHMWDZ", + "payoutAddress": "XkdN1pGbSboQxG76ZySpTGQz84m8UxrweB", + "pubKeyOperator": "16d48d6a7b565eaa2054ea3e1a2b8080802308c0c019d25a2c5d1b5014d4ee455d7fc240be4a542809d768509d449615" + } + }, + { + "type": "Regular", + "proTxHash": "e7aac8d5d8d59993f4e07ce764aecd7250f5a366f4c66270397d85cf30e2f54c", + "collateralHash": "ab429427b3b24aaa9f5064e159607210eeaf0726aa685ef0a89e153ea4933cc7", + "collateralIndex": 1, + "collateralAddress": "XbK9Gp1jdAN6TdaTQ82VpXGED66B5JWHiv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.132:9999", + "registeredHeight": 1403841, + "lastPaidHeight": 2127572, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XszBTNcE6mCL4vorRSJe123Rw5tGxhhxFY", + "votingAddress": "XqsE9YDuhuwd93ZMUNi97hN55tGEayXPSg", + "payoutAddress": "XfRGiKT9tk6npqY4iUffHVr6KF3eihg3Xe", + "pubKeyOperator": "9709c20d9803cff128468642c84d6462ad70382ffb583f9df8da41e0b6f755f610d69117de23c00466b47988013a66a0" + } + }, + { + "type": "Regular", + "proTxHash": "06febeca9a2487eba2b38e098b9cadd75d8007d4ba63d72ad73363b69ceb10e7", + "collateralHash": "bf87f3ae8ec91f5f7b5f53e9ff178bd0b800b5ad8424216014111cec5a8c2e67", + "collateralIndex": 0, + "collateralAddress": "Xj5piKESdQwdbKvTueiWqVbKTm2EZJUBo8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.146:9999", + "registeredHeight": 1403841, + "lastPaidHeight": 2127577, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrEwAG7AxvdmGC5UYXmFAcVeLRBBY2Mrqw", + "votingAddress": "Xx1FTy3FMBaLAhHFaoS8s2FHjQTAXtHnsd", + "payoutAddress": "XfPN9BSgvbdZWy1t5zWsTW3EQC6ftPTTF1", + "pubKeyOperator": "90f693c31d7b9c2970044c81b29488a33892ae75bd2a38d47dc4807f0a2fd8ea2f2e6c4d9619a01fa00112a44242ef6d" + } + }, + { + "type": "Regular", + "proTxHash": "321a1ad675b700875cdd93eec21bc3c1c5ac554cfa5f7fb1a3693a6f4cbff999", + "collateralHash": "d8bd9f7f4d91504fcd9d3a93e56f6af10fb44ff3ba04ed891af1b20e96c505f9", + "collateralIndex": 1, + "collateralAddress": "XvuT8Tz4pb4xK98nCJvHZyJftuz6dn8SXv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.107.106:9999", + "registeredHeight": 1404118, + "lastPaidHeight": 2127806, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976337, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwJVbAH4M5oURLqzain3xXpHZPep3kUsXk", + "votingAddress": "XwJVbAH4M5oURLqzain3xXpHZPep3kUsXk", + "payoutAddress": "XecCtQTfYDvRbTBnoLs2N7UTeuKmkFmswZ", + "pubKeyOperator": "8db3056b5db9406d4762ceaefe9b06ab4a6a1bec369e60afdcc07545341a0f9f0c52ff6a7e0cee6397def0afc8140f52" + } + }, + { + "type": "Regular", + "proTxHash": "760aeb2f98d1b1cf27d157d8070c0caf0374290e4cd7c8f400df277d24c73b87", + "collateralHash": "901dccf46c1e22a3b514cda2dc645374caef2fa9912657a1ad9ff20d58bf3989", + "collateralIndex": 1, + "collateralAddress": "Xuybe7dswsDdFikMTYXasW39f8cUBH88Yo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.162.216:9999", + "registeredHeight": 1404999, + "lastPaidHeight": 2125881, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1578063, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjHMfFzz4Cc9KbfStYhsSvG5qpqKBxLztQ", + "votingAddress": "XjHMfFzz4Cc9KbfStYhsSvG5qpqKBxLztQ", + "payoutAddress": "XwSfbo1LyWpdJQwkwM1u8zXGRPQeN7o3ec", + "pubKeyOperator": "9288c0469175963758b19d606f495e4325182b4185bff755dc3f03323129e3f82638a19553adfb63b3270be245e7d6e8" + } + }, + { + "type": "Regular", + "proTxHash": "dd4054524304438baf94b21be33a495d068384c911df7fcb051804efc1440916", + "collateralHash": "071bd9b0caf9bde917c2edeeee3089297c43d5bf6a6327b7997ed79607e3fdf5", + "collateralIndex": 1, + "collateralAddress": "Xggp2mLyBh1e7CeBrpsDymWo2MZ8bLUoss", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.2:9999", + "registeredHeight": 1405079, + "lastPaidHeight": 2126971, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761178, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpfbudxwPSHFwb8JRAZYmdgndJxxEJXodF", + "votingAddress": "XpfbudxwPSHFwb8JRAZYmdgndJxxEJXodF", + "payoutAddress": "XoXQ8SDyWdSbN9H8CeMz2fGi8EJJPQvA8n", + "pubKeyOperator": "16feca1d699d6c9803448ce180bae228dc32d23ec31cc7337d97aa18c26052cd59a12ebdade1e05f0ee3528b3c11f65e" + } + }, + { + "type": "Regular", + "proTxHash": "91fb3284ae64d1ce1dca6b1c98275244c3f7a4f4eec4fa39eeb02edb54654468", + "collateralHash": "6232e03725a8783313ef1ecfed256fc6c490685579e2d3f014fac49a1066c6e2", + "collateralIndex": 0, + "collateralAddress": "Xjm8vP6zggWuwBKyGBMJUjmNoMQP66tP3d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.140:9999", + "registeredHeight": 1405154, + "lastPaidHeight": 2128639, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhpWHsayvw282rGausUGf1HA3Mn9nKrZtb", + "votingAddress": "XtBHTD4BQgUD6y23HfzHXQvgXeJwW1Z9jN", + "payoutAddress": "Xfp3Q8QnSazLdLTDArABZjUEQAuzLt1wCg", + "pubKeyOperator": "0af3061a6cc01178bd8ccfb7fc85303d242ce7270f46a7608c46023df765c8e01cee9cadb4b975a9c60b8c1991f890a8" + } + }, + { + "type": "Regular", + "proTxHash": "88944bc8f0e0a1a77699d3a0fe6dc12663a3813c92ec3c14b40d286c5f6455b6", + "collateralHash": "4928ec7b6bbd411640626207db89628de02cd42bcf40b5b4bab9adc7cdf97423", + "collateralIndex": 1, + "collateralAddress": "XbXdieKVv84nvPm7qp8CWHc7sS38wYk41B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.128:9999", + "registeredHeight": 1405154, + "lastPaidHeight": 2128640, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdGawAKxfkhbBGjTPpp5M8rWrivMTjx32L", + "votingAddress": "XtT1mHeU6C5Q5KTf3oG2HGxMD4bPZ1QvBp", + "payoutAddress": "Xfq7tXTAnVKZWvm67ESLGo22TErRyVkhaj", + "pubKeyOperator": "0d6720db1bd4f71cf46d17427444545f7eaaa066fb43db7087fbfb8d7c0dfb6a9ce2ff5f36cfbbd5a9edb19b32ff8eb3" + } + }, + { + "type": "Regular", + "proTxHash": "59d95c9f142c62c52a5aac019cf115a5f5de5bea5902e48b8223c45db96c1803", + "collateralHash": "fd6369a14564e9df6bdab55299584c7c36a76c5f0ba39c7d92ce10f0b213ab4c", + "collateralIndex": 1, + "collateralAddress": "XwmpDWFDezyhXAu3veyZ2SMDhYKi28iSpr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.139:9999", + "registeredHeight": 1405678, + "lastPaidHeight": 2128895, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XySbRjchtz7Hnf82RJaZe3GCEbiaAfPFxg", + "votingAddress": "XwNihhrpa2WcpwthQxko6U1dgbicjuMHQB", + "payoutAddress": "XfwgVvvaYKR5APfGcySDPekUHVux2dGqDS", + "pubKeyOperator": "8f4d2430f981939b6ef492e4faf52a1beb7c058e6d39b9925e1005cd23902d872993649029149d9f74c446fcd01bfd81" + } + }, + { + "type": "Regular", + "proTxHash": "528532e2fef93b5389f8ddeee73fefd72b57c629a6a256736a14187d12647f40", + "collateralHash": "c06d0ad0f246904cf9cfe65f41c6f161929c4d374516c9b427ffbde6e7b82e06", + "collateralIndex": 1, + "collateralAddress": "XsX1sd36JJzzT1XzpPRJr4fKVXCKQz8Hh8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.16:9999", + "registeredHeight": 1405681, + "lastPaidHeight": 2125730, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiVbyrqazzGCmSLe3EEbtk4VBTi7XFXvTy", + "votingAddress": "XoXuTjCkTVvRhLyZQM7vW59NM12C9mCB5r", + "payoutAddress": "Xg5yXsahf1pzrLxjKmUis8hBSMXSbMp8cQ", + "pubKeyOperator": "054050c90a8a4c342aa1a64da8218779db1e474433ec11798f8b2961522d338669f33441c44233ba2597dac127070aea" + } + }, + { + "type": "Regular", + "proTxHash": "cdcc5f9c69617aa36f888c3b38d29759e554ebef811440bd2e14afd4db96d617", + "collateralHash": "25fd2b7509111b671a33216c5ef6082dd741de9fce2055e8f9626ad66fa604c8", + "collateralIndex": 1, + "collateralAddress": "XdwdM5LzjbcEa3R14KRrhn3a3Bh9HD2nF5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.111.36:9999", + "registeredHeight": 1405691, + "lastPaidHeight": 2125732, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcMRAJDtnER3Fxu8G43CJdFn3Eg1Mw4YPK", + "votingAddress": "XcMRAJDtnER3Fxu8G43CJdFn3Eg1Mw4YPK", + "payoutAddress": "XgRnKCdeTi9aXTejmGdWNfdBfBWprZpb4u", + "pubKeyOperator": "02a33ecae053566a75d558f5f5c2c0f27b9f7e63a2dca180ad6da297c77300e6481e1b4b83823ff0c68405a4d818b2c6" + } + }, + { + "type": "Regular", + "proTxHash": "d84727318b91299e7034fd709ab447a04ccd677ad1a1f88aaa3930bdf5b64ee2", + "collateralHash": "13677dd9104fb5139dcea64debb5696ab603f033b37614bba3d02b1785c7468e", + "collateralIndex": 1, + "collateralAddress": "Xir4YYZUtQGUyi57vSsHduQKGieQqp6KdA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.4.87:9999", + "registeredHeight": 1405691, + "lastPaidHeight": 2125733, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkzB8jzpq5gL43Y48ayAUtdpPiZgYB4jsN", + "votingAddress": "XkzB8jzpq5gL43Y48ayAUtdpPiZgYB4jsN", + "payoutAddress": "XjXiSCPUp9ps2KJrtrx5CgLthRDh2YUe5R", + "pubKeyOperator": "93ccf65844dd5a459204e80be764061a8ab39ab2ac9a16c11072a5d55a594bde67b18dc0c3acebe1935554aba9b62c46" + } + }, + { + "type": "Regular", + "proTxHash": "861c2be57c5211728a593958ed0a870c2d8a125712ba50c06ca164843578d3c3", + "collateralHash": "f4fd504db2c45a719ea58c6b11b8e82d7fce964520e67b188b2a753885b69a0c", + "collateralIndex": 1, + "collateralAddress": "XnLAAfwsDAYybQpXMpAXc68oKEyVvERrYC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.14:9999", + "registeredHeight": 1405899, + "lastPaidHeight": 2125807, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdi4bKKq1oh8NkSZi5Zj3519fjMoSm9ANu", + "votingAddress": "Xbh6A7pJQPFQCJt1mvW6iT2ynmHDv3wcsF", + "payoutAddress": "XnLAAfwsDAYybQpXMpAXc68oKEyVvERrYC", + "pubKeyOperator": "15935b0419c40273877e132ef3c9fc6f661ffd04be329cf4c9b5d4034323d02e7e56bc1001ff29d59222de1dbf3cd960" + } + }, + { + "type": "Regular", + "proTxHash": "71b726def3a066d848511e88bd838985d48958b11e312433acb575922a8718cf", + "collateralHash": "6083edad2aed6cfbd5f858676a91ff801831db464bb38cb528f54b3a62350225", + "collateralIndex": 1, + "collateralAddress": "Xhx12hsSCyFheTkcbB5gb9pBBt3P9m2o3i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.14:9999", + "registeredHeight": 1406259, + "lastPaidHeight": 2126841, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1618888, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoJmdNc6bNB5XaaHt6f4NGtT71Jw2bXyoW", + "votingAddress": "XoJmdNc6bNB5XaaHt6f4NGtT71Jw2bXyoW", + "payoutAddress": "Xdriq7KeyThKK1dKeYqsmpxF9tisciKkRN", + "pubKeyOperator": "15091576b33e393e8f15c531bc7019b783a9c6cc740365cddb40dbbc5bb71df71564e6114ca30d2a1aa5f453e0cabdab" + } + }, + { + "type": "Regular", + "proTxHash": "9b68754955dc56fbf676023c24eca00507cd261867805785c11cca1ddb67962e", + "collateralHash": "b591f27b1bcb01cd561b8175b777e3a596f1d2b0679c0d874175a884ad9c4a05", + "collateralIndex": 1, + "collateralAddress": "XaumiTgtcsWwHcUoKKmi1KFU6ipj3YTNka", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.43:9999", + "registeredHeight": 1406656, + "lastPaidHeight": 2126232, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxmw8gypgy1HR14BpbiJzmBHa6DJfqp7zs", + "votingAddress": "Xxmw8gypgy1HR14BpbiJzmBHa6DJfqp7zs", + "payoutAddress": "XdLjfQi9PzSo6aZeEbfW1NucJfKWaCSTkQ", + "pubKeyOperator": "0b793415699c9e5e7e1f850776d4d729410d025062ef4ae742cc16bd27d5263c9e774cdcb1092b85fdcff26f0a48c694" + } + }, + { + "type": "Regular", + "proTxHash": "2b72bd4f167f75d0db887c8a1ff57fec4631ad636073a4dcdb3bd85c39df3ff6", + "collateralHash": "17b849d293e2a54a5dc91f7714de82db149427329b86994275beed80476b2132", + "collateralIndex": 1, + "collateralAddress": "XjZTXnn4NJBvJuR2nXDsFKpEW7WgGom6Lq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.146:9999", + "registeredHeight": 1407145, + "lastPaidHeight": 2126575, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdFwhFeEi6FntG4ydFfhYdeWcScdCaeUdm", + "votingAddress": "XomJbiA8DAS4HfxCYuDZkMMXzQTDdb26Px", + "payoutAddress": "Xgh5bhYoqYZ3kQHsoWF6LbHZG1xdoFMZxB", + "pubKeyOperator": "82a99e70152f034b7601b354929065ecdbc259cc9e1873cb90c79d2c75dd84f98bffa4cf7d67c535d7b8785553900536" + } + }, + { + "type": "Regular", + "proTxHash": "855bc3bbd9f5cc14933915023bb06895809126c9cc9aeb727e99208ed46a3e24", + "collateralHash": "596496c450bf9c67cffe5b47bcb0c2cb51093db40c511d4c559e48eb6116133a", + "collateralIndex": 1, + "collateralAddress": "XttKnHaosKCf37m7oeW1R21BLKosbVYJW5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "163.172.20.209:9999", + "registeredHeight": 1407159, + "lastPaidHeight": 2127875, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121627, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfky6TjnPPEUnkNs852sLGoshC5eMvmRoC", + "votingAddress": "Xfky6TjnPPEUnkNs852sLGoshC5eMvmRoC", + "payoutAddress": "XnQc1D5ErQLF8G63Nw8kmFw7pZFiEMXJUt", + "pubKeyOperator": "16f53e3f647722ec64a75fe80ef6c3914343e627af6ee67b181a8c720dc76014ad77b387b68c445319d7fa2dbcb9af49" + } + }, + { + "type": "Regular", + "proTxHash": "a361e2eb9ab04396bc1db049df7631ffd69d7f5aaa4188664ec31a63b6e7d5dc", + "collateralHash": "fe49e639dd46f77601df57e12c70579b35c9fd5a0860b046840a3bf267b49aed", + "collateralIndex": 1, + "collateralAddress": "Xdo54sEaGnwqK9xZqzWRWq5TingdiLrT2L", + "operatorReward": 2.5, + "state": { + "version": 1, + "service": "46.30.189.116:9999", + "registeredHeight": 1408422, + "lastPaidHeight": 2127644, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoQxKKWeLBcsykxZkuwQAEb2mnYf44Pgpg", + "votingAddress": "XoQxKKWeLBcsykxZkuwQAEb2mnYf44Pgpg", + "payoutAddress": "XefajHZ1RCUkCK569mGcLggu48pCpE8Dy4", + "pubKeyOperator": "19fb7e27e4a0184b7e587e16b34557329f2a3605907c91a0e1fb976a89dc91080dddf3eac5e740200f68f046882747e6", + "operatorPayoutAddress": "XwansdYntALU2NrwoKZsqwuXbeKa28D7ZT" + } + }, + { + "type": "Regular", + "proTxHash": "506893d2633c2e2ebcbb064a648a6e1f526989e3fdcbcb57b7979ef2bca24f16", + "collateralHash": "75c447ff9f35d7dc1f3527e6f680d13da3603d97b8c4ce397771b9e569118aab", + "collateralIndex": 1, + "collateralAddress": "Xp7eGCB63DAqLXtJYJvpTMbzrmYV51XtKm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.14:9999", + "registeredHeight": 1408464, + "lastPaidHeight": 2127467, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvEn9dBYLCdMabe2MhqjFsKcPLYpJSAq6B", + "votingAddress": "XpSmK4CJykNFws17DUvHfZDfJNTNTznWHU", + "payoutAddress": "XgnRyDTezhCbZfm93hawTDQCHSmGfu2KM4", + "pubKeyOperator": "8185f607effcc9dc41a09ae91df98d64c6f143d76b2424eef9133c455934ed8bbeef1563bb8c0d30b434c60806333654" + } + }, + { + "type": "Regular", + "proTxHash": "4d459a1f05c80c3bf5ceb4bf9f98d505b9bd1884de303abcac7b6d68f3069b08", + "collateralHash": "92593a19e18c1f6ab647fcac72bfc0572031d82d769f9739e7c8aa89572633d8", + "collateralIndex": 1, + "collateralAddress": "Xj9daCeqiRTU3A6JEHamgyyQtbZRfTyWRz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.78:9999", + "registeredHeight": 1408555, + "lastPaidHeight": 2127535, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuDxbx4Jf1vPy95EJJyD5nYio1zJxsBvrW", + "votingAddress": "Xo9YMv1jXYU7eH1egc8cG7X13cusksBzVM", + "payoutAddress": "Xj9daCeqiRTU3A6JEHamgyyQtbZRfTyWRz", + "pubKeyOperator": "8a5caeac98f9fbcb4c1e15734b9fc10bdcc8a3dbbe74b636095f8b218064b05beabeea0317945346d4d5017c3086a48d" + } + }, + { + "type": "Regular", + "proTxHash": "f64f9732e92e8c2300659c9fea17443e01c09d43ff40feb499b11b62906ae1a8", + "collateralHash": "b11afd08befc0cc0c9a9279300d7aab8ba0d36ff3fb769cc0919cef49b610273", + "collateralIndex": 1, + "collateralAddress": "XayBT1XM1yMTNVga6kK7eBFYzWZW1DqCyu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.44:9999", + "registeredHeight": 1410008, + "lastPaidHeight": 2128665, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbAgEcegCkq38T4LvRu2yrCsgEt6ohBGpS", + "votingAddress": "XsnV3omt6X5it6rmFytVHfHinMguEFZBhP", + "payoutAddress": "XgtFSLRkN83pdPefBnf4MBzjXSLAKNW9nT", + "pubKeyOperator": "967b31d50939221212d327ed0cfba612e26c439661ba76a81ef32fc77ef97a81a85b124461f235c310efee5bb1b63c4d" + } + }, + { + "type": "Regular", + "proTxHash": "e5113ec9e85c4d18f6a7d71d0d2949ccd9a92da0598a6745a90f708487a3c56e", + "collateralHash": "b80f2d7dd984818319bc419c3f34d2530337e426233239fb936be814b7b120fc", + "collateralIndex": 1, + "collateralAddress": "Xq12tSoZMsqxGKU68G3GCfYHzC5dfAyGLT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.141:9999", + "registeredHeight": 1410367, + "lastPaidHeight": 2125901, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2099542, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjAb9ykxy4dRuTqZJdQ7x91xasDehMHwvW", + "votingAddress": "XySUzuiBv1BQTWZzFbiSbk9N5yJLoHVzTo", + "payoutAddress": "XoyLCv3onyNN6eYeXL9PeQ1QyDK2hqn4Z3", + "pubKeyOperator": "907e3d4b42270b8e439a4af9d8ce00fbf338bdb7f661b79556743e340d266e39574c3eec4aa3701b021ddff7e0321a08" + } + }, + { + "type": "Regular", + "proTxHash": "505ad2bf63a5db9c29c1bf8561f354d04800b5fc252e584c9ef8330f2ab64c6e", + "collateralHash": "ab02425b6ffc91cade3627ad5add9e654459c39d2eef0b322cdff705634acb81", + "collateralIndex": 1, + "collateralAddress": "XcgwYEW1xqfwfRv41in16pf9beTop8A35L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.12:9999", + "registeredHeight": 1410376, + "lastPaidHeight": 2128882, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpKDWVBKJyTLGvDho2RimtydqqhgtrWjjo", + "votingAddress": "Xro4X64BhbzksGs5gS7qTzxczWioDMNMp7", + "payoutAddress": "XjHQc47RXkfCXk3KSyuAdexKkHrjfLfXcK", + "pubKeyOperator": "0c4413a24083833089921969bb7c32b7216b1908c04b9bf4685f49badf171d4930d19af0bfebfddb96bee1dfe799839b" + } + }, + { + "type": "Regular", + "proTxHash": "8105705677eb363af2bbf78011196ffc733896414c83af810cfd5c5cb82e7eab", + "collateralHash": "1e79c32c209667f02f3b30fbb6d8f98ef496068aabdd10b689d7d002ed480a3f", + "collateralIndex": 1, + "collateralAddress": "XkPa2HPJQKWyxDEhU7GNVfZVUhAXbF5Bnr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.112:9999", + "registeredHeight": 1410662, + "lastPaidHeight": 2125792, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr9QEmP6h2hmtMYdPpEbeLXanM5SxGD8Sb", + "votingAddress": "XpmoBiPTPYw2QsH5B6iNGU7RTsJoVmsjJa", + "payoutAddress": "XpXoEzAY6cxaECk32Gkg1jzwAMgywm3Wpg", + "pubKeyOperator": "89a051ed06275c645da83ed250f0b2e19f296f3d289ab5cd6592fe0241fad049dc4ed647c97881ad8f23e5c68ca34a8f" + } + }, + { + "type": "Regular", + "proTxHash": "440075126edec49f3ba4d55c6372ba938d04ce15b63ff2e2d1cf3dd5f31d1633", + "collateralHash": "948fd767fc3c448ad831cb465061ae1d8fdf767289998df405d6199c648574ac", + "collateralIndex": 1, + "collateralAddress": "Xff1qHzYKfxeZ1EGHx7t9u6QMmXpLyfp64", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.147.28:9999", + "registeredHeight": 1410859, + "lastPaidHeight": 2127551, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1803789, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnxijKmtF5JxCZ6RSnStgVKVuTFUMTeY4n", + "votingAddress": "Xu4goujFdEmQ3BF23cSXy9ysDavGRcuKNt", + "payoutAddress": "XkpYPM2EvTiorneVLxUQXST4yjV2Pm58eo", + "pubKeyOperator": "0f83c8c7338db8d6614a2b01080aa1dbb9dec6be43254a0a000876a95c0c9831d2fc7dcdf3f7afbac0820762563a61cb" + } + }, + { + "type": "Regular", + "proTxHash": "e9ca3806fa8979782e92fefe6c5dff60756a3bcb5f0c817d20752eb71b113698", + "collateralHash": "0492b07b04d53b6040cef792d1661b0e9a7a69691adb60a129b2ee933ee3b2d0", + "collateralIndex": 0, + "collateralAddress": "XpWkf8BKTfFJSAfgoJ5GRzExdixBMwQg1q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.21.143:9999", + "registeredHeight": 1411908, + "lastPaidHeight": 2126532, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XytXsfxgNQeX7V7U7z5V14uQg7d1dq7ZLp", + "votingAddress": "XouNMhnGmgvhiF14YC5TPuqmuWtEeVx28m", + "payoutAddress": "Xfjqki72odCh2af7B7wDkHzwGokxxpMJ9r", + "pubKeyOperator": "0808b0de7e28b525d34b5a28a2c995a93c616b118c5d05b5f8dc2b312d9e0cbec5e08a4ddff6e5fdf8877ef58d4a5d3e" + } + }, + { + "type": "Regular", + "proTxHash": "f409dd87ccd40527d3997e8bef51e099577d2b69ec825724307c7244562b0d2b", + "collateralHash": "7c47571d9fa3a228de7bd034022ebe4deeda0aff0951e0dbfde1c3e0602a1a8d", + "collateralIndex": 1, + "collateralAddress": "XkUVrr5hGfeymmV5NPiMo98AUegBDrjYNC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.234:9999", + "registeredHeight": 1412198, + "lastPaidHeight": 2126762, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvHPsw5nTszVFouiocxLDaXJSjfsSxB7SU", + "votingAddress": "Xej78yn5WNKMxs2ihEqpUhGFQzQFekZuws", + "payoutAddress": "XvKWDuwH49RsoTmxyWnexgb1Tj3mNpprDQ", + "pubKeyOperator": "06228163e7d371e2004bd4c65e949743ebb93b407e698d0b11d1b381af14f8089f0366a233ea3051ab8e3c018598d17c" + } + }, + { + "type": "Regular", + "proTxHash": "6241fac03e1eee65e030838a5ea30588829bea0a20cb8f403a6777b1ab088ad1", + "collateralHash": "f11d88ac0b9e132396d4572bd404d6810190dbd251ba4196c30ac4fa8d041389", + "collateralIndex": 0, + "collateralAddress": "Xcv58MAPJSWos68a31rUFY3tCWhRYwgdte", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.2.73.58:9999", + "registeredHeight": 1412461, + "lastPaidHeight": 2127228, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121082, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeLrNkpibwH4FpdQ3d1Qig6n4xinLA5GAw", + "votingAddress": "XmiKynSxJ17gHtsToGFfPRFdntqpiQnb65", + "payoutAddress": "XvTXYLoB6MkyVBkZ2UPntVhfy337QCq9xW", + "pubKeyOperator": "134dfbd79285df62a29ce2632a477678874b8723030116299f7069d1d8e07108303a2173c3413ae9618ddd5e65eb0cce" + } + }, + { + "type": "Regular", + "proTxHash": "e1bd6f0b07b9413136b06d186ffe06c21d4150ba2cc86878a673a2c0777c59fb", + "collateralHash": "b6c511482907330ed1896fd3679a01d14d72f226e4e82402ad7039c4d9272420", + "collateralIndex": 1, + "collateralAddress": "XbFxgP6ipzuVjMCdRorg3Qp3hzwjHqiXwu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.72:9999", + "registeredHeight": 1414209, + "lastPaidHeight": 2128053, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQgvxJmqhUMnf5aBhLNd1bh5LZyrNwJty", + "votingAddress": "Xu5nFdbnVCcPeh3Qt8QhydEVvFMww62TKj", + "payoutAddress": "XbFxgP6ipzuVjMCdRorg3Qp3hzwjHqiXwu", + "pubKeyOperator": "10c0c9c4f91e5f1289875eefcba39727d29870ac9e8cb955e9d7f4a4e5e86a4f47af57214a21cffcc6e7c8781f87630f" + } + }, + { + "type": "Regular", + "proTxHash": "e8f49c2f481b18d8b3ffdfe36dd7cce85bbd0332cd723b7b329d2192cef1fb61", + "collateralHash": "266383f08c183cf551f6b14255a524e0c996d831fd0450b2473152523c41abcb", + "collateralIndex": 0, + "collateralAddress": "Xevgr6HVpP2YZTiv7LBTYAmQe7itDm4zVR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.122.104.69:9999", + "registeredHeight": 1416230, + "lastPaidHeight": 2089714, + "consecutivePayments": 0, + "PoSePenalty": 3819, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2090922, + "revocationReason": 0, + "ownerAddress": "Xm1u7GzgADu9WY5HWVoma9vNmasZTBdJNb", + "votingAddress": "XpdKUgPgNYV6NH4YZjeMuAKTthkbKFz47F", + "payoutAddress": "XckKegmtxyi8LS1qmc2S3ac3GRNTvmokNu", + "pubKeyOperator": "8b2164e07092a82a5862be11d6edc1d7c6109393bb9e7b00f8f0157ec1eac096b1331b8c2ad33a0c911aeef194a85a3d" + } + }, + { + "type": "Regular", + "proTxHash": "2676d54838e33f0f839fa70c72415b9af672c176781e5b8ffc98e18ea91589dc", + "collateralHash": "78100e63620f616f4fd5043d72893bedaedb3834e43d18b31ea1b3b1b8d3b6a3", + "collateralIndex": 0, + "collateralAddress": "XmptsjEQB5vuuHEib98Zb77f9Vxq4M7as5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.48.96:9999", + "registeredHeight": 1416818, + "lastPaidHeight": 2128712, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1839383, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkAHZqPGSiF6ULy6xXtqnasxHwM6y86gAH", + "votingAddress": "XxkXQ2t5xEvi7jYW9zeUxjoWqgeRbiNHkz", + "payoutAddress": "XgR39JJL3kXVr4qohRnbfNKVWdzb5M3XUk", + "pubKeyOperator": "13261c7e21a7f4264c549e0f0a6b5fad5360b6c03c2207a677118ec2fd2f35038e2e2073caafae6e6f516b1b1119fc7e" + } + }, + { + "type": "Regular", + "proTxHash": "e12017de4631271b19b6e3aaec06dd7c0aee0aa5e799fff3424a2f526f507441", + "collateralHash": "4307953cdd8ac85263f10734403a81916bc52146b5db308d0e50d2f0d953644c", + "collateralIndex": 0, + "collateralAddress": "XjzSshVBVcQTznr8qV9jzenwc2aavzTz4o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.130:9999", + "registeredHeight": 1416864, + "lastPaidHeight": 2128736, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1839387, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYe9UkE66jmGRV5A6erYkuENuht2r8f48", + "votingAddress": "XgCtHJ9PiZQSVFBfSpLMHhTqzueErdgL1b", + "payoutAddress": "XhkSkyv4as2ztFsRRfjGZru41Buzd4pftP", + "pubKeyOperator": "09e6c73bcff33190705364cc73b96ec2fad4903b7226b25cdf8d8777a2148a38a4e3c84557b9dda208a2bba295e2e3ef" + } + }, + { + "type": "Regular", + "proTxHash": "b8db2eddde53104c5270940e8f54c7f0c813765e85723105884a398b9bc90c20", + "collateralHash": "2cfbd65fb54704a7e305093369b4aeb4e7181f9ae9337a5928dc48942e28b945", + "collateralIndex": 1, + "collateralAddress": "XmwooZA1fpuqgH1EJwbje1zgspmvhCZ7GN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.136:9999", + "registeredHeight": 1417175, + "lastPaidHeight": 2126882, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuynVXdSu3x5usZDkJsg74dKGYJLddLWo5", + "votingAddress": "XrDckApFcRF3BMeDgtuj9MgfHcpz7L9GB4", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "15ee7e20aca17a9aec6ea834fdb290a705785f180e6578d3a6b95ab4d81611c914b6d15898a9da2f0992ce57e1ef8632" + } + }, + { + "type": "Regular", + "proTxHash": "a46678ae4046e6d498d6dcfc5697e664a2a1e98d2bffb3e93d592fe326f8e09a", + "collateralHash": "d110588186f0b119eb0363d17e01f88b3588bf2de79929acd9e7b90d973a3d8a", + "collateralIndex": 0, + "collateralAddress": "XuSq5KmT5Sd81gHxBJcjCaoT9uNky5UMbt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.235.192:9999", + "registeredHeight": 1417298, + "lastPaidHeight": 2127002, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv85nigVe8L2z7FNAG5RYnMBe1UjKYpNZL", + "votingAddress": "Xozc6BqwMmVKhiPZYQUZoKALkbnKXiK8zY", + "payoutAddress": "XuSq5KmT5Sd81gHxBJcjCaoT9uNky5UMbt", + "pubKeyOperator": "86a43c13aeb07f359bdd56a7a6eac540b1d6daf022f6a1695f35dd44a1e19fdfb6756cb8be59700198bf095cf919172f" + } + }, + { + "type": "Regular", + "proTxHash": "ddc08a6c45d898903f25c545139e66a79706b823c595edaa01294cefc55aaa4d", + "collateralHash": "debca7aab0fa9ee5e981b444b517841c71f26e4284eae936c58ed48de5670427", + "collateralIndex": 1, + "collateralAddress": "XygMcdMUhargLkzJ97gHr3th3QGb5UDtLM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419663, + "lastPaidHeight": 1870903, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1836356, + "PoSeBanHeight": 1873750, + "revocationReason": 1, + "ownerAddress": "Xr1Z4mLzzBLzDnnHq1qoW64bwcPVcq9NVt", + "votingAddress": "XqdM5vUArMJfSg1kact9wnjHj6CyNmoRFL", + "payoutAddress": "XygMcdMUhargLkzJ97gHr3th3QGb5UDtLM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0a52dee7d797c07f720659762b13dab409688e94d60e77401527757999e53ba2", + "collateralHash": "3d8eb7d65ea700bf92329c3b34ccf4278231d7744d093346485cf540683ca6b6", + "collateralIndex": 1, + "collateralAddress": "XmS6mLDXNwVdqT39kwMUx6roEXjESwyokL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419663, + "lastPaidHeight": 1828070, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1830570, + "revocationReason": 0, + "ownerAddress": "XqAH3139Z8rkrDRHkXTAYBUBdnTBQuUwkg", + "votingAddress": "XxMNh2xDXFhWHymEQ33XqA6sy3X8qbMP7E", + "payoutAddress": "XmS6mLDXNwVdqT39kwMUx6roEXjESwyokL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "62d14d33577baee4506b93274748ab65097ee4979ba32c53d67375c74d5d4be2", + "collateralHash": "fc22294c528b172d0051c71aeca7e5452c7db49224f0c38ebeb1b06bb61363fc", + "collateralIndex": 1, + "collateralAddress": "XdVzmssWZhShAna4ycbtY3vvm7rtfF1UJo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419665, + "lastPaidHeight": 1870896, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1836352, + "PoSeBanHeight": 1873770, + "revocationReason": 1, + "ownerAddress": "XiTsKrdYXTc1T2KabqwkKQ7cgABKFGhT3h", + "votingAddress": "XxAopB1LztjWcWuP7HwM6a2SCJqrAsMZpA", + "payoutAddress": "XdVzmssWZhShAna4ycbtY3vvm7rtfF1UJo", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f1c9aa97aaaa46a8cb995e25907a845a7920dcd99ddca4595b5652f395fe2b4e", + "collateralHash": "686c3c7e599f4566cf2b5d5aba6376f86a192a2c214e46b4e71ca12d2623ef9d", + "collateralIndex": 1, + "collateralAddress": "XurJuas4iroUEdwscuNXdBFu96gPEcec9W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419666, + "lastPaidHeight": 1870851, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1836340, + "PoSeBanHeight": 1873482, + "revocationReason": 0, + "ownerAddress": "XnkckSU2bzsQ8w7qjrc7E94pngBEkT6DXa", + "votingAddress": "XdtwmhaiWAc1xLE7sZwZ5ppbnrD2zN8FaF", + "payoutAddress": "XurJuas4iroUEdwscuNXdBFu96gPEcec9W", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c3c56b3771bbeda4143879f52062e0ca992e5d68b6f31fab56f68b0b88dda6f9", + "collateralHash": "b2a77a6335277698884e66f791e6a8f1e711ae2f3cc734f4575bb8b5a08e7606", + "collateralIndex": 1, + "collateralAddress": "Xn3WFxJ4i9HpNKWSMax6PEBHsnmDX4C8at", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419682, + "lastPaidHeight": 1870862, + "consecutivePayments": 0, + "PoSePenalty": 4399, + "PoSeRevivedHeight": 1836340, + "PoSeBanHeight": 1873750, + "revocationReason": 1, + "ownerAddress": "XuwAL7UWLjSKYa1rTiuoCKhECw3TdT4HkV", + "votingAddress": "XmWgVJaf99SsaxJ4jvEVzv2Hod9jud8exV", + "payoutAddress": "Xn3WFxJ4i9HpNKWSMax6PEBHsnmDX4C8at", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "34aafd1d0ebfc89f167216dd17664c5db7825c9fb632056c65ab3134b99a40c7", + "collateralHash": "775dbed41f27048018620b8dddf4e768f1efaea669797282ca39b0ba8b2018a8", + "collateralIndex": 1, + "collateralAddress": "XbGZoeF6bFy61PgQGTsXrVdG9Gejxtbmra", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419683, + "lastPaidHeight": 1870846, + "consecutivePayments": 0, + "PoSePenalty": 4399, + "PoSeRevivedHeight": 1836339, + "PoSeBanHeight": 1874148, + "revocationReason": 1, + "ownerAddress": "XeMp3k6BRqdDuKqibFduDGr9ai2gFJURi8", + "votingAddress": "Xd1eNDp7nsmYAgSkssYwW9RFXiBBVMLgPp", + "payoutAddress": "XbGZoeF6bFy61PgQGTsXrVdG9Gejxtbmra", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "afa3871603adaf06cf91ca964acf8abb0654d968922eae21232e853fa4d605d2", + "collateralHash": "f3fb7ec2468ba6ab99621dc14380f35e3adc2ee228a76d95784665b8f2bb809c", + "collateralIndex": 1, + "collateralAddress": "XnpsJob6xWfuHpde25gm7i9ZWJFUjtuCnG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419683, + "lastPaidHeight": 1870819, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1836333, + "PoSeBanHeight": 1874038, + "revocationReason": 1, + "ownerAddress": "XeBWWPrdXBEAMC9HXp8P1McP6WbSdDkGrh", + "votingAddress": "XcDLBT4tBJhRcirafvCRNgrQda5wAbzHvS", + "payoutAddress": "XnpsJob6xWfuHpde25gm7i9ZWJFUjtuCnG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e8604c04b8ae8298152aaf99fdfbda713f3012f83a2d38286a0ce49f7ea9d04c", + "collateralHash": "cd17578b6f439e3bf553e8e95bd27c0e5265f4349b45506d59373468330e5fb6", + "collateralIndex": 1, + "collateralAddress": "XwEMgsBDiLnPziUgmoxCVXwHb3JWr2hPCK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419684, + "lastPaidHeight": 1870880, + "consecutivePayments": 0, + "PoSePenalty": 4401, + "PoSeRevivedHeight": 1836346, + "PoSeBanHeight": 1873524, + "revocationReason": 1, + "ownerAddress": "XnmjmznPrinZAyH2Q1NAbw1yNRKHryidJC", + "votingAddress": "Xdn6Xnh19YrkhdT8JpPNgj7SNu79Q9qBcy", + "payoutAddress": "XwEMgsBDiLnPziUgmoxCVXwHb3JWr2hPCK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "333f479f8ae83b23183ee58b53eaa21d0814d8aa263c16f44b6f64672055ff8a", + "collateralHash": "031791de325b572df73d01535cf7c088f26e0be8f5a42c5ac15dacc40d239962", + "collateralIndex": 1, + "collateralAddress": "XwiwgYYMv3TZkG2KCTweoNgsqJLM3EXF5N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419687, + "lastPaidHeight": 1828116, + "consecutivePayments": 0, + "PoSePenalty": 4443, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1831146, + "revocationReason": 1, + "ownerAddress": "XkvX71N8s41N1NkFFUL9iefaq8Yaan5dPt", + "votingAddress": "XeqChqu2iykrN9zjX2e4wsoPfD3YkQAN2D", + "payoutAddress": "XwiwgYYMv3TZkG2KCTweoNgsqJLM3EXF5N", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "afd1946158779c503dde14115fe134e58549eef4fa014eb2abec420a50959b82", + "collateralHash": "5fa1661bbd7796a4f72482f710a682bfcfe208e1b8391f5a495e0b3ab3f6e9ef", + "collateralIndex": 1, + "collateralAddress": "Xs51QXcVFKHxgsEXZpjJZ1e2LCwHr6WqpP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1419694, + "lastPaidHeight": 1828127, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1830467, + "revocationReason": 0, + "ownerAddress": "XjhepZBKy5q9e27ZRv442U6eP9USf3tEez", + "votingAddress": "Xvj1boTof4G2VcnkTXbVt2ckTYEKCsxEQh", + "payoutAddress": "Xs51QXcVFKHxgsEXZpjJZ1e2LCwHr6WqpP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c58e48d4a497214c318c7e3f0b272c5b3ec951843c323d95ef70aaa2ddcecaea", + "collateralHash": "1b81b7c7fa3432354bb0faa19637153998ee70f6b620fb56a6a50b9ae9ef9846", + "collateralIndex": 0, + "collateralAddress": "Xo8ZUzU2PPN6GTgzrtNW7hLVCq4xhwWf5Y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.138.7.14:9999", + "registeredHeight": 1421098, + "lastPaidHeight": 2128064, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1954701, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgoPp8PUKpdV7JC4ACQSSM2uaBmXiLjH8C", + "votingAddress": "Xts5tyfhSjSLEtzK3n86Xn8Cid7DQ4gywp", + "payoutAddress": "Xo8ZUzU2PPN6GTgzrtNW7hLVCq4xhwWf5Y", + "pubKeyOperator": "8ca8e8f55d00f09df0e309233854a3e44d58e24b63b915602071f83b45b28407f6a144ed9fb2712bfa207420591ec431" + } + }, + { + "type": "Regular", + "proTxHash": "f2359cd418b41bc869a7fa57c58a3a2f8e5e5bc0ad69b4005f85e9c42922ddee", + "collateralHash": "3995d61a3f632ada1abea686230e984dace792f826a452d1083b8a39c743de9b", + "collateralIndex": 0, + "collateralAddress": "XeRHnGhdJKjUJLsDR5unisnnAcyH9yNyz7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.214.3:9999", + "registeredHeight": 1421834, + "lastPaidHeight": 2125940, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1685800, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtMSxvbamWs69Z8eQuaVfVtTZn8Kyf54TN", + "votingAddress": "XbpVhB5BFpBpiDpwmpwbpa4dhRvyBG2boc", + "payoutAddress": "XeRHnGhdJKjUJLsDR5unisnnAcyH9yNyz7", + "pubKeyOperator": "0385fb505a74eb9262d192e5e4c9fe54672f5bb4d9ec2c55628ffeee6a8531e466999ec032e5e0cb124926430165d1a1" + } + }, + { + "type": "Regular", + "proTxHash": "f880babd5f39e1de5db5fdd6f0372af69c857b02d7d8ba182d99f021142b6987", + "collateralHash": "0e51c5d7b2adfdb5fdf5335e2c27ccb3663fd7b63cfd8dd7ae40b9547bf1d989", + "collateralIndex": 0, + "collateralAddress": "XtBeRFew66Tj73sKivUBDQLubr9FciXZ4B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.237.35:9999", + "registeredHeight": 1422103, + "lastPaidHeight": 2127068, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpmxC1wYiWGcHzfk2u3az4Fmb41PnjWKsn", + "votingAddress": "Xezqva2RtuYuUZ7pVCZtRFwbNkYpW2KEvH", + "payoutAddress": "XhGXxu5BtD5MRuNndkQSKzdyr9qYuFGkfA", + "pubKeyOperator": "8e43583115f280f6d167fd0f6d41605c8d6c80d0a5fb38b642bb281f8d4459a8bf2886f384c634d8bc944e8844098837" + } + }, + { + "type": "Regular", + "proTxHash": "d83cad9a7046685f16ca1325cdfbcf920af2b762c722742c94f57a8c47d60f0c", + "collateralHash": "082d98bdbafc177e9965b45a9403b0e62bf53c496ee85a96b67bd565cb32f4a7", + "collateralIndex": 1, + "collateralAddress": "Xuic3xwepTBdn5QC7a1cHhXtpVgwFRA6zP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.103:9999", + "registeredHeight": 1422143, + "lastPaidHeight": 2127251, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1975756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkEUuLfHf9yQj96AkskMn8CE9AuZUeBiAz", + "votingAddress": "XhpZBPZDGaxvpUJjfgE4sP2KtnUF1dof9a", + "payoutAddress": "XgY8W4AAm1xyJD5Jj2BkyEztzLzmndtpRc", + "pubKeyOperator": "18c0956ff452a873b46e7280bebf3a0d7025e554bcc4691abda16296d2fcf74af6a83c509f3cd844fd6b4149f914ced4" + } + }, + { + "type": "Regular", + "proTxHash": "f598bf90e295748f54275c34aa7678bad254c016a1eec7ff9a85a2f209944ca6", + "collateralHash": "0917e5027540742a4e2701441c877b0b642e35c2e14d76a78fc93d2f84d7ffdd", + "collateralIndex": 1, + "collateralAddress": "Xvt6kfPqR6EMQNEc6oKzHK3hiG5LDK3nbb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.98.93:9999", + "registeredHeight": 1422145, + "lastPaidHeight": 2128323, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976889, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcftLh6pPApv6sWvWdw6GaKCJZ4b95aVq2", + "votingAddress": "XdNfKWPUjTHfBcBtisx6Vvn5uiUXDoWBPn", + "payoutAddress": "XeW5u2sdcQkmyi8STL4LtiDWkU4DQKTEfu", + "pubKeyOperator": "00e98eb5033eb9df70460f3869c8851d3bfcca4b66ad17658962eec74dec6afa4694d6f8a9fb331c79d0e0bf680e94c3" + } + }, + { + "type": "Regular", + "proTxHash": "c3c45c5da30582d797aa9121955c71fbd9567ee90e826931f77e2e9e811e947c", + "collateralHash": "a59de5d26656632189c1d2e71baa4a328ffa43ad9b98be266251e0b98f981e4b", + "collateralIndex": 1, + "collateralAddress": "Xbf987EgWUTjGt77MxYryLP53fX8BaiUhS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.13:9999", + "registeredHeight": 1422359, + "lastPaidHeight": 2128649, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1638457, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtrq6qhBhGcR3S4ZvojEXhscSWJJtHCBZD", + "votingAddress": "Xif2LgNPgnuL5sK97wKERY8DGBpA1T9jvJ", + "payoutAddress": "XqgXLJqq88FMBSRSzJunmYF2LH3dWBbdv5", + "pubKeyOperator": "1483b412ee48de18356f53673eec8bdfbd43c311d1bc7d36f9744e8d184d506b2342631edb55bafbdba33cac2e230d3d" + } + }, + { + "type": "Regular", + "proTxHash": "2128727b5683dd30f86f520a469e294afea635ae048ba6fd925adada777c9c4d", + "collateralHash": "394151daaa784422546bffcfbe4138ceaa4fbec76bc28f4a0facf5ba71952436", + "collateralIndex": 0, + "collateralAddress": "XoDn9uMitSwPbmSfiZwzaLinzgxeTRrdKK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.148.201:9999", + "registeredHeight": 1423208, + "lastPaidHeight": 2127568, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1830552, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrG7N2kSctK4rQdfq8bVhdJwwRHrvf31Qy", + "votingAddress": "XdyWog5JTprCAvfyiyAorFGWVLneL5rwNW", + "payoutAddress": "XoDn9uMitSwPbmSfiZwzaLinzgxeTRrdKK", + "pubKeyOperator": "0d34f34b2965e56761b22b1a090d73e69d8dc6bc87997b9ed044ac1ad4d3078e0b6bfd9c045721d4d78121e49e5fb6e4" + } + }, + { + "type": "Regular", + "proTxHash": "85dc830b0c0ad3fe3fb29a059ed003c743888916d29f698ac5d56d9452bd5cbc", + "collateralHash": "a5838262e8f1eb884a425f347f89ccb3dd4ef77c1059c19313bc646f251a4816", + "collateralIndex": 1, + "collateralAddress": "XiDvCHPtdXSvY4pKfswjU3aW1aCs3d1F7t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.177:9999", + "registeredHeight": 1423565, + "lastPaidHeight": 2127761, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmdd5Z7yJ85eMa39jgFsEtBWATyERNC6dV", + "votingAddress": "XgWPZ4LXr4tKkXc1RNQaneptgMbMLn7D6q", + "payoutAddress": "XiDvCHPtdXSvY4pKfswjU3aW1aCs3d1F7t", + "pubKeyOperator": "944ef056f6c3a6bf344e385cd9ac47ccf1de5a5484698ba21a9e63a26187ee63d328fd1b634f537dbbc51773fe640507" + } + }, + { + "type": "Regular", + "proTxHash": "5874af60e87b5fc8add265f6eb9142daabd2b748c089fbeb2fe39ee6d430487b", + "collateralHash": "eb6c4a28db3b7f3b6a05ec41c1d666a31db146af56b9b7c27896f4ecced64530", + "collateralIndex": 1, + "collateralAddress": "XnBCqmCDWr7X3L6U5SspAQCV2ozzWengx6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.60:9999", + "registeredHeight": 1423573, + "lastPaidHeight": 2126490, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1622643, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhbzdQCxDQPis3KPLZgA9aWWs8H9eAkU14", + "votingAddress": "XsQpw9zPag1abK13QL3DsRCbhsE6djmsuK", + "payoutAddress": "XnBCqmCDWr7X3L6U5SspAQCV2ozzWengx6", + "pubKeyOperator": "95b2a0916e9b59bc2ab649b0648bc3d4defafed9b5309dcf91fc72e06b3fb79e6cf955d55896d02b09696cfae628def6" + } + }, + { + "type": "Regular", + "proTxHash": "29a0672f1bfefbbbf9b33b55a4d70bae48649c7c298b27651f19803fd930a9c4", + "collateralHash": "db6d9cdfa7518be7d21c57770c900946a7a6477686d204cbca35d370594cfec4", + "collateralIndex": 1, + "collateralAddress": "XmZNiKKWVt2cc5saFf1QiMiu9KC6LdbWuE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.59:9999", + "registeredHeight": 1423573, + "lastPaidHeight": 2128035, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbzmvsn5cjvGyDwQ1yDqAfndup5kELUBYT", + "votingAddress": "Xg5Xuke3jG7mduY49Ek5o9e7hDbRG6VbUh", + "payoutAddress": "XmZNiKKWVt2cc5saFf1QiMiu9KC6LdbWuE", + "pubKeyOperator": "87ad5f9b4a281a092eebdcff454bd821aff140dc5727d478ae1328057540b61cb8bd98ec05528311346d9f64052a9b8d" + } + }, + { + "type": "Regular", + "proTxHash": "c3a8d8c96b232d6e17eeb50ea84eff1bd38f9016b5105da5dd6dd2ef46e7cff0", + "collateralHash": "7b45d71e5e219b55d99fdf66f759b05aaa6265ab5016948b7ec6da7e91ee828c", + "collateralIndex": 1, + "collateralAddress": "XuyoQHFRCe18Qoacem1KXXmjgH78DgFqNS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.150:9999", + "registeredHeight": 1423573, + "lastPaidHeight": 2128802, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031601, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvTJPbET8uMqVRCKv8ecGEKmtnKmFzjmXE", + "votingAddress": "XkDwUHCDdYm7K8gwGBC3NFBDGysLKCY5XQ", + "payoutAddress": "XuyoQHFRCe18Qoacem1KXXmjgH78DgFqNS", + "pubKeyOperator": "8c4e43df4d923e91514afb7ac2e8c75dee8c0c6ee7e5dc1f58943793ef019ce64ce6452efe86742ee56e7c28302469d1" + } + }, + { + "type": "Regular", + "proTxHash": "afa8aa1d7fa4d26a81b02737d228066f37ebda22ea0ac2ffb812d4ad6205ae1d", + "collateralHash": "a42655cba5e357c2403319dda268d30f22a8dc33bd298cf651eafd99e18fc9fc", + "collateralIndex": 1, + "collateralAddress": "Xj3Uoa5mfytFkD34te2BA4HSBtiGip28NQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.63:9999", + "registeredHeight": 1423577, + "lastPaidHeight": 2128036, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnhTUVLdeNvoomWyD2ro3EdjstRy8RjR5h", + "votingAddress": "XmtUVEFMhmvjm1JVpNoGwPH7fpFS3degWR", + "payoutAddress": "Xj3Uoa5mfytFkD34te2BA4HSBtiGip28NQ", + "pubKeyOperator": "1236a311ceaaf7ec1db7fdcae75db789a407e182b66056e6d2446e4e824a57b2aa0f72deabcbc29ad8897c75f3bf76e1" + } + }, + { + "type": "Regular", + "proTxHash": "bb94bcd4032f425e0e8628845ff7562d201feb0071b77a609f003410ff0999b9", + "collateralHash": "2781255b79401322d94ded378c4b18e99661edd1e94c32bdfd353d7b0a22a5c8", + "collateralIndex": 1, + "collateralAddress": "Xf1kwyoQfR1iHvRhPbi2n6yVnDMiVDQiPH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.64:9999", + "registeredHeight": 1423579, + "lastPaidHeight": 2126730, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1623027, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuNDxzpR2c56ci3vvQZ53r23b7V3ku2c6h", + "votingAddress": "XdcCCEbxjgmfVTVUMWgPme2bHPs5kbyzFT", + "payoutAddress": "Xf1kwyoQfR1iHvRhPbi2n6yVnDMiVDQiPH", + "pubKeyOperator": "99a3fce408715f91a3ff0bb694a6c752ff37f5fe8ab1c6a7698b82558a40c8bd82f4e5e585154d1f2e45f3aa926797b9" + } + }, + { + "type": "Regular", + "proTxHash": "4838727c8d61ad1286ddd1977e944752c0df156e8de9505a6204f885caf80cd7", + "collateralHash": "391392c5d6527518441e8ef1399a679f3fc81af0347d963b21c5295eec39c71a", + "collateralIndex": 1, + "collateralAddress": "XsTr99Z4HMJW3YeJkX96mjhcmAGwatvc5D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.223:9999", + "registeredHeight": 1423582, + "lastPaidHeight": 2128037, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnA9DiSrKVs6JHTDoRnvGSZsm7pL5BtG8N", + "votingAddress": "Xb6nA1eqtKsybtycuApnpaJW1nqhUFa6ZF", + "payoutAddress": "XsTr99Z4HMJW3YeJkX96mjhcmAGwatvc5D", + "pubKeyOperator": "02e4f3e0e47d11ee58ae58f9619f6a4b64fc34d4676b038d39a72a20d1e5f8465f2032b34d3196fa32f4eb6f40af1ec6" + } + }, + { + "type": "Regular", + "proTxHash": "5287f288098a76b81f08d5ee2c9729936b405490008b37c38fe82b5453287270", + "collateralHash": "7cad025508eee779aa0ad076f6284d34216e203432c382dfda4a80d0e893d4b4", + "collateralIndex": 1, + "collateralAddress": "XhsafiAyj4UKqB5BXQc93C7svpQNXeKzGj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.62:9999", + "registeredHeight": 1423585, + "lastPaidHeight": 2128038, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwpWvHkUfEjFEg3JGkFk5Z5fjVs8Xp1U1S", + "votingAddress": "XiKfzqaNKdzRZ3aAhBsmcr3qjiFCACtQn9", + "payoutAddress": "XhsafiAyj4UKqB5BXQc93C7svpQNXeKzGj", + "pubKeyOperator": "09b5ee37fec9d0cdf216499dee7350c7f0bd136bec42f62502c104f3e7819033e4c0b2b543a0b069f166761082268893" + } + }, + { + "type": "Regular", + "proTxHash": "507cb9546d7545ba0edfdde8117401953e22c110d4b4c8a86756e0e0efaeb449", + "collateralHash": "ae73414c8bb70143aa7a180971d8dc2de569bbb7f324a906fa1f5d770c4558e9", + "collateralIndex": 1, + "collateralAddress": "XnHApr5u1PZ7WbbjdExnNcioTCz1JyaHMW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.61:9999", + "registeredHeight": 1423587, + "lastPaidHeight": 2128039, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdESVXzQfJnogYkpPFtNwQ8E75KJFWutAJ", + "votingAddress": "XnVRYYfPmiVx1DDyduurCaeSMPNmYrPBei", + "payoutAddress": "XnHApr5u1PZ7WbbjdExnNcioTCz1JyaHMW", + "pubKeyOperator": "14abd5d3c502052d20123e40718bd677d852f0f8e9546d6dd239997c90c0aac32dbfe417e65fae947219e235e4ae8499" + } + }, + { + "type": "Regular", + "proTxHash": "9da97869a57c49090ef741fd513b9c2ff563a7b06dc74fdcfd9a0736afbfd3ac", + "collateralHash": "407a42e75900e108ccb9661b4b2234269f9ebea1f0386fb512e6d8a015d809cd", + "collateralIndex": 1, + "collateralAddress": "XkVs79mNTyEYiv4KEzosNzyNiXazYaYaEa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1423595, + "lastPaidHeight": 1870882, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1836346, + "PoSeBanHeight": 1873461, + "revocationReason": 1, + "ownerAddress": "XrmVxFLC2yox6vXMP6XtiWNEyyZTcCPtBX", + "votingAddress": "XxfcPucPbMb992Ss5vyqWPsMJ8HGRWNhGx", + "payoutAddress": "XkVs79mNTyEYiv4KEzosNzyNiXazYaYaEa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a398d0ee0c53cdfcafc6dd3ba4242baff844ebb531f15bda463ed6498654d2b0", + "collateralHash": "7276ee3783cfcc0df746c2705c1dc7eb161538a5338fc5fa4f4110f9523472a8", + "collateralIndex": 1, + "collateralAddress": "XkxwhN5SB7jVYnDsSEfjrXvgakrXPhNyXQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1423596, + "lastPaidHeight": 1870870, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1836343, + "PoSeBanHeight": 1873750, + "revocationReason": 1, + "ownerAddress": "Xe1RNP76ox1ZpRRAUd7U5ZZUAEtVKHwAGe", + "votingAddress": "Xw8LkpUMJ9JBArYcejq38aEtsGMZKEbqY4", + "payoutAddress": "XkxwhN5SB7jVYnDsSEfjrXvgakrXPhNyXQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "55533032625033f00ae9ab517fbd2017c6d759f2f6b3acfda86a6eb29b85ea2e", + "collateralHash": "b6a2032132d45e8512c95c51d36c9b85a1bc7c51c3b5f0050c6e0d8c397466fc", + "collateralIndex": 1, + "collateralAddress": "XbQghdwSbfsx8MrWYR86kfjKYL4GkfUpuy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.242.65:9999", + "registeredHeight": 1423601, + "lastPaidHeight": 2128045, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuRfz3zR8i6pruTXpaSkvcwUDJRN4GXhPK", + "votingAddress": "XcL77ZJrXvXR5xtdFDY8dEg4Jow8iYFjrC", + "payoutAddress": "XbQghdwSbfsx8MrWYR86kfjKYL4GkfUpuy", + "pubKeyOperator": "07031d4edbb5ba350ff5175b3355d57d119cfe6918b2e28952865da96d286bad9b5e4e79e9dce40be5d02c786e688fe3" + } + }, + { + "type": "Regular", + "proTxHash": "474bcca94592ae9d39439daf7ea5ebaed0c68f51a1609dfda9290d7644b2088d", + "collateralHash": "c9af7d021e6b4551b38e276679aadfe876af08a3fbea93be7584bc6076b6613f", + "collateralIndex": 1, + "collateralAddress": "XxGJEh9Gj1AjipgSqvDkcEDKC26pdA2iuW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.172:9999", + "registeredHeight": 1424027, + "lastPaidHeight": 2128520, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgg9KbQVum4LRSDVsQgJH1FmtssD5X2Hjj", + "votingAddress": "XhKp5wtMt5SAr2qGH3zXiUhbw8PYxJbh5C", + "payoutAddress": "XxGJEh9Gj1AjipgSqvDkcEDKC26pdA2iuW", + "pubKeyOperator": "16fad841f101795433bd16d9eb44f18270c93aab9d4c899800119161d3d06caa2268780aec6cf53efc7b5b258e7abbaf" + } + }, + { + "type": "Regular", + "proTxHash": "9d0fde247a3915b46cd1091d4703dcbd6145269d3b0cf83ead2c7066ffbfb16f", + "collateralHash": "5abf6a3c463eeb36892f529897785f3f2dd341bfab30f813fc29df1fa6219b71", + "collateralIndex": 1, + "collateralAddress": "Xuv3e5vJ1T67PRnksHdAFXSYsRzcHBguta", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.193:9999", + "registeredHeight": 1424212, + "lastPaidHeight": 2128666, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQfno3sM3rbviMYzHTjYUhJcQAxWP2Pt4", + "votingAddress": "XpR9Bnf2hmvQAyT8kePHmNdT4C9hp2nLDp", + "payoutAddress": "Xuv3e5vJ1T67PRnksHdAFXSYsRzcHBguta", + "pubKeyOperator": "866e11816a58fa73fcd819b9aaab09a40646f6e71470dcc794b0cf8c1c036d3ad5db1569882762a65d2d29b45831d82a" + } + }, + { + "type": "Regular", + "proTxHash": "49702156c3a09032392b9faaf0c5e15d9c664e1d1744ebe4a3b30770c0c0b9b5", + "collateralHash": "02e408558ec5d1acc6f30665da80c385fefd1f6ff160f2bcf589a78960074ccd", + "collateralIndex": 1, + "collateralAddress": "XvZPcLFp1Lp55diJS3gKg87YmcHdyuZS4H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.28.101.145:9999", + "registeredHeight": 1424950, + "lastPaidHeight": 2112447, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 2007440, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XyEDG1eVVbDYEoxLd7tN7N4eQJa96Hx43i", + "votingAddress": "XyEDG1eVVbDYEoxLd7tN7N4eQJa96Hx43i", + "payoutAddress": "XimLiBvJkTw3t9QapPx6MCP27vKd7VDCZ3", + "pubKeyOperator": "0e9fc0e6b20e95e0d898fd1a9486cd31a5438581dd77ac5347a9a94c6cc5d07b1d7a9d670a037a45a623d7b537b94ed1" + } + }, + { + "type": "Regular", + "proTxHash": "69c9c09918f7313a13155811935e77aa6f9f72b4db0de31efb5df2bb8acc1b80", + "collateralHash": "1f75be94d04094611e84eebac0093635202a26f8241426e4cb46cc428138c7f0", + "collateralIndex": 1, + "collateralAddress": "Xedj9sBJRTsouAmBrGtAd4fm2g8vWzL632", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.132.224:9999", + "registeredHeight": 1425504, + "lastPaidHeight": 2126219, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsntFe2KMWVDjxExi9fMZpjmZ91uvvpK6z", + "votingAddress": "XsntFe2KMWVDjxExi9fMZpjmZ91uvvpK6z", + "payoutAddress": "Xedj9sBJRTsouAmBrGtAd4fm2g8vWzL632", + "pubKeyOperator": "00981465243fa69c0b5186b5506a9a62a7c9ca300bb343739965b2e90919fe5686c8af022bf428c92a7752e7bf6133fa" + } + }, + { + "type": "Regular", + "proTxHash": "e73dda2a840af6aa7592ab5aef75809be588238514eef4bf3edfa79f19a9c11c", + "collateralHash": "16811aec0291696a3129bd17fc830b2135e9c6140ded3f3a7830cf1b89e92921", + "collateralIndex": 1, + "collateralAddress": "XoiFkH5uRFyB3avPt5k1ESzfohZAzai8np", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.136:9999", + "registeredHeight": 1425650, + "lastPaidHeight": 2128044, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1907513, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgTGcYgvcPBrapHf9wKdgDxWwoLaEGFkHx", + "votingAddress": "Xo7u9dkBpwxXEaGovr58T9v8oedTdh859u", + "payoutAddress": "XoiFkH5uRFyB3avPt5k1ESzfohZAzai8np", + "pubKeyOperator": "925db3ba8bd676624e29582f0cc8e6d9e60141a8f968719f786891f942b54b00e468da95151faac75db158cc2c36a460" + } + }, + { + "type": "Regular", + "proTxHash": "388f1345608b762a506226d8deda3c94e173e686a0bc40b275acb5b9b778a492", + "collateralHash": "50ff303b883bebc820769a6bcdd39ed4b973831d9ac95dc503d8e78c2292a892", + "collateralIndex": 1, + "collateralAddress": "XxKFgpoffefkFY1NE1DbJcrNFGg5ybvRP4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.198:9999", + "registeredHeight": 1425663, + "lastPaidHeight": 2126785, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1971711, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjq1UU11JU2s9TjcYkXPhyWcp84PYnEDKm", + "votingAddress": "Xc7JBtaVmLtY4X1wnNEuipBqMKpnAJoKLZ", + "payoutAddress": "XxKFgpoffefkFY1NE1DbJcrNFGg5ybvRP4", + "pubKeyOperator": "99c2216a5682c8270e8d18042d775bfdcbe1a740ba00a48df45c5e7969fa6db36ba570cd99553fff265d3843fdf7625c" + } + }, + { + "type": "Regular", + "proTxHash": "8aa37fc6c0f307344f04324b2f83b2b9e7775ba49c5779e46d34e67cf1e576ba", + "collateralHash": "f11d264486d9a6e7e76be5e5dfb0e2ef9e69731e5fbd8843d054b8985041a48d", + "collateralIndex": 0, + "collateralAddress": "XyNZ2yRCkNt7FSiMJyfhGG2RdgUPWCcKeu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.175.162:9999", + "registeredHeight": 1425844, + "lastPaidHeight": 2032510, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2034762, + "revocationReason": 0, + "ownerAddress": "XpDMwucpZS28aTHkAzuqwYaEnicZYiL9qg", + "votingAddress": "XpY2HSLvBSDvVeTNC2dL2XAfiAGiWsnH63", + "payoutAddress": "XkPQYAUhskizcY18QBrpLpNWS8TTYcpCH1", + "pubKeyOperator": "0f618820b7e469f4a37b832a074d3a405031300faaca39985371875e64612a94000a7455e2f65a4b0b23b1652e5f081f" + } + }, + { + "type": "Regular", + "proTxHash": "1dbb815355b1a89054d03b3b8995316fd31b46fe18b4f0f564124d77e9dbb7de", + "collateralHash": "becafa6aa08cba9b7e6066dbd4d2c6121dcd99609db3ff94d59d86f40062f7d9", + "collateralIndex": 1, + "collateralAddress": "XfeEtj5TD8cRckchEGd5MowWQHdN9dLApK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.90.151.170:9999", + "registeredHeight": 1426403, + "lastPaidHeight": 1724115, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725539, + "revocationReason": 0, + "ownerAddress": "XcHBSptZiypT4c5sv7mG7h8vqm7BRosCgg", + "votingAddress": "XcHBSptZiypT4c5sv7mG7h8vqm7BRosCgg", + "payoutAddress": "Xdmt8yvHvFT9cuRgxBKdwnXLPQub51Lr8i", + "pubKeyOperator": "124ea9a1fbb701b31bc9a3a3651598123b0a49f1ea290be0781dfb2cb6272885f7ea0daf3a22583ed2239a20fed75466" + } + }, + { + "type": "Regular", + "proTxHash": "b5282ed3247dd174bb6461a20e4a4545b400a0bb351584dd48363abc5f9975de", + "collateralHash": "ae5c026e2971fc28b43287a565efed33c064b9da7adf522193f3d2860dd870c3", + "collateralIndex": 1, + "collateralAddress": "XiAvRJB6N8b5ABzhCiz8ZBGegzkk5omd4p", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.90.148.109:9999", + "registeredHeight": 1426424, + "lastPaidHeight": 1724135, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xv9yUtA3GKyk4usS28vWRxvJj4CabNPQv7", + "votingAddress": "Xv9yUtA3GKyk4usS28vWRxvJj4CabNPQv7", + "payoutAddress": "Xby7GCK7nqERc1ajkujcgUsmYuqVT6eDGv", + "pubKeyOperator": "114c9e7a6a0017ef5a868a07999073724846204cdfb1acd3617b3cfe129af04b01d35e14e8810eb328f192742dc507b4" + } + }, + { + "type": "Regular", + "proTxHash": "fcd988a321fef2f7e281824efd79d6c8c3d5eedb1927ffee0afe104ab0480391", + "collateralHash": "31852c40875470b550cb2f509b08f547852b50ef87de59b5a228e354825e1c09", + "collateralIndex": 0, + "collateralAddress": "XhnfZLmZYRang6EWD4WbPL9cA1jeDqwSb4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "209.97.160.97:9999", + "registeredHeight": 1426473, + "lastPaidHeight": 2126825, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbiLjbt22Warqw3jqwCaiYce28MXDqNc4u", + "votingAddress": "XhtxU4uJRG1rGtJ5fztzpBnnNPheVF3E6j", + "payoutAddress": "XhnfZLmZYRang6EWD4WbPL9cA1jeDqwSb4", + "pubKeyOperator": "07b044b5d048e038461bc96d7d27aaf7c6bd907da81ebb1c4a25bb947944913e7f14c1925b4c287061929ae50b77dde4" + } + }, + { + "type": "Regular", + "proTxHash": "27229ebfad2254c4356fa6b7e7c7bcb43c58a4261f3791685091a60fd668eef6", + "collateralHash": "5b028460a43c773d8fb80e596e89f26d993a940f3d8a83341eb215dd925767a5", + "collateralIndex": 1, + "collateralAddress": "XxckTfC45djL38m9zGPhmxbQs8ZdC9aSbX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.225:9999", + "registeredHeight": 1427096, + "lastPaidHeight": 2127300, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd3qoB4oa39JEx9ernzt1NAM7cRPWhsvdr", + "votingAddress": "XnJvyZXWnSytXCSPREX5qm4e1g91kszioU", + "payoutAddress": "XiyFdLCegnxMFHtHM8Pjoj9TEsZMk1e7pD", + "pubKeyOperator": "9602c47d1581e4e45dcd95beee88249dc3f5b19a5df67490043e0161864d22dfd409bf503443b6beb5f893c630450b00" + } + }, + { + "type": "Regular", + "proTxHash": "00c5bc7941973452b2f59a0e3ec32ee7ef393d4155b6a960e5a0211868df342d", + "collateralHash": "53c3f2d877481836952bfa59f05c96ec992f5fa5554238ddd53dc147b42080fc", + "collateralIndex": 1, + "collateralAddress": "XdXHTEpvWFT4Au313NqVeC61mWCGfEpZMB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.243.28.48:9999", + "registeredHeight": 1427299, + "lastPaidHeight": 2068970, + "consecutivePayments": 0, + "PoSePenalty": 3803, + "PoSeRevivedHeight": 2028577, + "PoSeBanHeight": 2070762, + "revocationReason": 0, + "ownerAddress": "XhEJF5o8szMq39G8xZvmS3YHCRF5WedXLK", + "votingAddress": "XruZJZGCRWJ4ADVPDQdtxPMDQUXNVsJTDu", + "payoutAddress": "XtnS8rBbQhXJhxREGttdbPVaMzFjqqgpEP", + "pubKeyOperator": "9207067c11683eabd3b86882557d64b9665a99b1fef07d6a58088904477da335215c619b0a65eb394f73e613dfbb9ad3" + } + }, + { + "type": "Regular", + "proTxHash": "5b15192c91c253da335ce765f3df98f1da30a808e2ee7a4e3b962ea018cc5e2f", + "collateralHash": "a4d9401b67e1482a006d5c4aadd7985bc3b72766fad4f0c0e96d60eba16b1f0c", + "collateralIndex": 1, + "collateralAddress": "Xgb12RgkB74t6U4TeTNqiUPtP9eJn3TBzR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.70:9999", + "registeredHeight": 1427668, + "lastPaidHeight": 2127722, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyRpWLj4Q3iD49h9UEQHsCY65HSjirtDr2", + "votingAddress": "Xi3DGFGwHT5aSViyRF1mC8nw5TC4RUUDv3", + "payoutAddress": "XqhXT5do7aU7e1ZbWGB9rFE5hgaLgRPeeG", + "pubKeyOperator": "1183d6cea53a83d3d1ed3a4916fd23e191717a08a24a7c6ade5065c4cad8b00757034e966983e74d3c29bedb441fcede" + } + }, + { + "type": "Regular", + "proTxHash": "b6f0d2365af76024d21fce6c16508a102331c59c9adeee770db03c389b29882c", + "collateralHash": "4ce1edfaf60628e8887897b1356077c1adfa146c1fcaeb0b3df159015fa08166", + "collateralIndex": 3, + "collateralAddress": "XcwgokaFS4tUVX1cTXVqwCABA7P4xnaBUH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.97.83.229:9999", + "registeredHeight": 1427668, + "lastPaidHeight": 2114968, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": 1875833, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XigjLegkMzfC114zkgKCaFVfSvRtpgF2hr", + "votingAddress": "Xe65waM9tBTGDdZ3EE5eZm129nyu4uSbkG", + "payoutAddress": "XpJGhpMr71oKNRTjMBgzCSx9skw6pRMQyj", + "pubKeyOperator": "18e2c0b58aaf7a766d0b32c0d7ff7f7891751060d9e3002821d3c8d9bf0d9243a0399179b18074ac4ea80c4a2f92a54e" + } + }, + { + "type": "Regular", + "proTxHash": "bcf18c161f9eebb9b689bcbff64c3f297e0e2a9f414a2452b3d7ea0834166ef1", + "collateralHash": "9f81100e148a86958513ffd8dc1c153d4e21a5ca7e52fbf7871fb795f5d01e88", + "collateralIndex": 1, + "collateralAddress": "XvDC4yvstgGmWp9CSUoecw1XxhU8RHC2wa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.70:9999", + "registeredHeight": 1428578, + "lastPaidHeight": 2128461, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1594676, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnozgSTdUZwoCcWLzQtFmhgcVPP4GozZ9E", + "votingAddress": "XnozgSTdUZwoCcWLzQtFmhgcVPP4GozZ9E", + "payoutAddress": "XvDC4yvstgGmWp9CSUoecw1XxhU8RHC2wa", + "pubKeyOperator": "143878b64993f280b9d3c96168c32d7aa747a3ed5b042850cd541ef3ac4c58f790182b4bdfef5d79accd5fec2230c8c0" + } + }, + { + "type": "Regular", + "proTxHash": "32bdf68db42e4d35df364f5c37ad121135d7c60ae53bb773d79736be693e194f", + "collateralHash": "47cc40d4bafd4fa87f23a06d76047fd6d5604bafeab4a820abae7147aab93153", + "collateralIndex": 1, + "collateralAddress": "XqS3NM5E63eQBxYV4qbdwDGjwmje67rnLr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.113.158:9999", + "registeredHeight": 1428656, + "lastPaidHeight": 2128270, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976877, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtNsGkaagYYApn1LqKxha8RKbD9YLcrAMV", + "votingAddress": "XgjYwAVeyG6pEMrcUfNKq84Y7QrH51sfjG", + "payoutAddress": "XqQzkXzgQSy8MKA47WaZwxNZ1deXy1t33R", + "pubKeyOperator": "85884a7db5e461c0b4677810dd314b24cbba8706b2728559d651f672ab422d6e807def498ab9f583f97c635cf6f819e1" + } + }, + { + "type": "Regular", + "proTxHash": "0549e26f0ee0ce7c3f128846f29723c28dce66bf7c3dd0a5f058bd15127b7787", + "collateralHash": "ec7de770ef9cea6b50b026f59b06427838ed1b19222bb1a1788bf2997fd6f258", + "collateralIndex": 1, + "collateralAddress": "XdSq1adW7iFuxjZxKWhAVB3qNf2adNW6iq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.240.18.61:9999", + "registeredHeight": 1430922, + "lastPaidHeight": 2115282, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": 2118152, + "PoSeBanHeight": 2118858, + "revocationReason": 0, + "ownerAddress": "Xb4VvkCAJQy666DsXzKuhHTjdwbo75Yyuc", + "votingAddress": "XapJ8FAqdFyYWKn5ZVPJ5VrJHFc9YTr1kB", + "payoutAddress": "XnJn5MVfS8q9gY7RoXsM71rWyKBSGQZoQy", + "pubKeyOperator": "873b4ee245abc5fd26188adce52d88b66430804b5c52a68a3038bfe5f8efe78b4e5db3045a11ef00c1809880c4e5647d" + } + }, + { + "type": "Regular", + "proTxHash": "f35ea6bd166e85ead7832d67631b7ad0235f3a7aabb7fb4f808bb7a04899c2a9", + "collateralHash": "8b0c81b70afdcd8f67029df83fd378e20f767f857fb42fb5f51bcda7b7e222a5", + "collateralIndex": 1, + "collateralAddress": "XuaLYzbQprKk8BswREHAg92Njf9ovJX4da", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.202.102.124:9999", + "registeredHeight": 1431334, + "lastPaidHeight": 2108336, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": 2118152, + "PoSeBanHeight": 2118282, + "revocationReason": 0, + "ownerAddress": "Xyhwr1BtnyLXKZy2u4bptgnAmDtyZh1c6p", + "votingAddress": "XoU1vyALVgQUeUozcZt7RCmrWxtKhx4pRX", + "payoutAddress": "XnJn5MVfS8q9gY7RoXsM71rWyKBSGQZoQy", + "pubKeyOperator": "88dcb3964c55c96dfde499a9f3930fb1762c2e2d81c17baf6739e739e1f2f88f4ba79a93bd2579d6ae12aceb861261f1" + } + }, + { + "type": "Regular", + "proTxHash": "486ac14a91964cb1a212f93980d6e243c1a7808cae832c8ca9248e73780be68f", + "collateralHash": "64853f05e1639c556df818cd2304ade18f14fd8333395909e0fb0fffea0815ca", + "collateralIndex": 1, + "collateralAddress": "XrtmpPXMaMtVs6cP4yodvTVTygsfCTUu78", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.234.64:9999", + "registeredHeight": 1432625, + "lastPaidHeight": 1986609, + "consecutivePayments": 0, + "PoSePenalty": 3971, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1987818, + "revocationReason": 0, + "ownerAddress": "Xxaj5catntBo9PHKdtfTt2XMU4sa9BpYAy", + "votingAddress": "XkyQgDzd7Dfsckv1sq5rMGr5C3McELjGRw", + "payoutAddress": "XhyM4WeaKn9KwcSNBXsudGxGweg7KzZQCD", + "pubKeyOperator": "825d12abde419cf6a70eb58a136b7dff662f920bcba7bc7608b8e797f59bb11ff1511badf927aaf7aa8258d23cb2143c" + } + }, + { + "type": "Regular", + "proTxHash": "e2b7884e80851c6d34f675c31b49a42b1837ad201a7ce45193a9d802ebd74f6c", + "collateralHash": "e572bcc19066040176535b69a59735b9d0dff484ff38007ac828dfecaef3f865", + "collateralIndex": 1, + "collateralAddress": "XufFc63BmLjF6WSeqnPMWPC2pd4ZEn6VaQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.141:9999", + "registeredHeight": 1433429, + "lastPaidHeight": 2128581, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpy8WvFnRdVpr7Gqq4u3rMhnmFhsrQgxQ2", + "votingAddress": "Xp2zg5u4TPy89pZYp2LvNZZD5ABGF7zvhM", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "151aa1488f8afd24e2a999c1cb2eabe39bb09a8f006dcf486702b3a07e4810724711c2a39ee356ab64db2e7016705b57" + } + }, + { + "type": "Regular", + "proTxHash": "e4266b8c3dc8821935945e063af637664bcc74cb794db227993f1213b0687d49", + "collateralHash": "1ece11cd7e1b9db5b6630771f9155eb191830c55535b26c128f0cd08a96cee7c", + "collateralIndex": 1, + "collateralAddress": "XbeQcLCWSktPskZT3ge3yLAooErmzz9LqA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.207.126:9999", + "registeredHeight": 1433628, + "lastPaidHeight": 1986516, + "consecutivePayments": 0, + "PoSePenalty": 3971, + "PoSeRevivedHeight": 1903499, + "PoSeBanHeight": 1988106, + "revocationReason": 0, + "ownerAddress": "XvLj7KLKVjqvqghSK7S3aWeUzy8MG7Ld7h", + "votingAddress": "XbkfJdb7LSjXbwad5e67PkcVhC9egLzaUB", + "payoutAddress": "XoBgzEoqEuL2nAMdKrYGcMvRZAN8ZrFfqR", + "pubKeyOperator": "974f80efd62cc6c0f01e65ba7ccbdb99f0d8bd990decd8420aa2353f08e4e802278b76e7816a5d5c91543901f6c8f9c3" + } + }, + { + "type": "Regular", + "proTxHash": "5836d3ce0a4308c52cce7e21c5298de432da056b5753f5deef38455f6c0287b2", + "collateralHash": "ae069f103eaeb66ef70593550a5e08fba3cd72f74d0be287d685d9fff98ded93", + "collateralIndex": 1, + "collateralAddress": "XsxWfmeTXzSa7cFuweqZ3iCVcuKtLcUE9q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.3.52:9999", + "registeredHeight": 1433643, + "lastPaidHeight": 1983178, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XgSqCiWMtdE4EiSXRJbixrabbmCSXFxah1", + "votingAddress": "XuEDSgqViEeS2Bdu2QS27r5R4Zx9FwX1Ey", + "payoutAddress": "XxU1f2YZ7MbXwRrBcE2bbKx6ecQELz6pTs", + "pubKeyOperator": "154c4685fb95685c5ce3c12f53f6f0d10002fb1bbe3fa74e6cf980eaad87e3b9a1ee28263cdd9be0f229d60fea0945e1" + } + }, + { + "type": "Regular", + "proTxHash": "4d65a994d70db84dcc49e0721eaa612be6e9ed74fc51172f208f59cbbd13b864", + "collateralHash": "3a91454b237872f9055b855fc77ce21162d76512082857f77b2e2f5452cbdc87", + "collateralIndex": 1, + "collateralAddress": "XfKmRexoSkpfpHXPWBSgzYRWnM5LvotT1r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.202.106.236:9999", + "registeredHeight": 1433655, + "lastPaidHeight": 1983055, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903503, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xv8reyMzywinvGsurxoxsELrzr2KHXj6Pi", + "votingAddress": "XhczQgzinbHdpuiRf6Qh8JZQD56f7cp9jH", + "payoutAddress": "XhJARLyJgFqAhpLw9R4wNJzd4Mobjtsu3G", + "pubKeyOperator": "95c20f00ba4c656905f52ffb613195906152492ce2373b7b0c3679e0fd46736da75447f336fe0ff5ea171c25461c7694" + } + }, + { + "type": "Regular", + "proTxHash": "ad5a28e98495afc0de5494402bb97fd389712508996df1109664c6430d3a964b", + "collateralHash": "ab89a060a8e7b5188d0dfb34e3cf150c0cc31f2c3571477d613908b74d4ab9aa", + "collateralIndex": 1, + "collateralAddress": "Xak4HCY6hfMx6YWLxEyibASksg8wdsuNzw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.204.147:9999", + "registeredHeight": 1433735, + "lastPaidHeight": 1986520, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1987818, + "revocationReason": 0, + "ownerAddress": "XxHCKwd3veHRYGNVmJvP2JcGkXFHXRxvEr", + "votingAddress": "Xgxcx1B7YwHj6YT2ekNeUViNqMG1E3yqY8", + "payoutAddress": "Xsq4nyQF38XAkb7TMQdc5axCA6NzeyaNZv", + "pubKeyOperator": "89aab4cff13ef750042451785d61b8a6965f309605456f0c251558818eabd274b5aabc7d42b37ea5c8f790d401bbbdd8" + } + }, + { + "type": "Regular", + "proTxHash": "1a535006c8f5218e6e82ff9f65e36b69f3dd48c5b76e024d3d9e78280308611a", + "collateralHash": "7f2a0bf9f1b7df4e0e5419d63cbce07c4c697890246691cf25bd629fd1145f8a", + "collateralIndex": 1, + "collateralAddress": "Xg1XP6hASedaZgDmePFw5Z5pbCLyvZkEay", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.202.98.112:9999", + "registeredHeight": 1433743, + "lastPaidHeight": 1983057, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "XsKxvLwqaGeWsCvfJ9G3FW2mTstKFEtiUu", + "votingAddress": "XwGGrYTtgMiwJ8hgFGRaTZzheCN8dFVrVN", + "payoutAddress": "XgfnChvhwnw4MiTS8RQu4GAE8BHCHgJkhj", + "pubKeyOperator": "976d2bbee9e630af2e76500145a6f659af32596f5e2ebaee1f59b92fdd249ce0c68b60501e807b6ad320e2443b43d02e" + } + }, + { + "type": "Regular", + "proTxHash": "7e6db42d70d2a339472bf52f538a4a923537c63a59d5baef9f472681b1b6dd9c", + "collateralHash": "4f4fd5350ec4c2cdfce9b085a09baa6cf3dca44547b28f3839490213dbdfec7a", + "collateralIndex": 1, + "collateralAddress": "Xcn6jgxxgSturC2oUBdzNs2EaWFBbwAZ5T", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.129.198:9999", + "registeredHeight": 1433780, + "lastPaidHeight": 1983061, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1984650, + "revocationReason": 0, + "ownerAddress": "Xc5bUxvcgoE63tYaLZc9Cz1uY5LeqZdVPj", + "votingAddress": "XftZmKnBtP6joc5cEdXcEcYmzvn2wunfuv", + "payoutAddress": "XsFEDRbiSoLF8MY6KTkqs6m8jzwyEBjMxx", + "pubKeyOperator": "977060b250023b86c9cfda4fe5441cd83d4c41b29c680f9e36638de73492c4c25696a4951506ec4d7b89c4f0c0210992" + } + }, + { + "type": "Regular", + "proTxHash": "ee9187a77f7f30e58930f1231d685fc41939bab1650948a21a075d15cf7aaea2", + "collateralHash": "d702aea0faf36ac1e5fd363d5d5111c1899adebdc8d826ba6d39791622e292b4", + "collateralIndex": 1, + "collateralAddress": "XcNPog8LMiYs52Nj54AErgqADWp3WaLe1i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.104.190:9999", + "registeredHeight": 1434133, + "lastPaidHeight": 1983062, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "Xm6TUfP9NjnhoxGHth2aXJRHFdNyVEhyxv", + "votingAddress": "Xext8pzMVjUXJmvXKPvSBKSZ1sxiXRqWPD", + "payoutAddress": "XjCEzCFxXEUciAZwd5EKnsLbiaMT2h8azf", + "pubKeyOperator": "9546e20a10f07e3db40f0e56bee117dc7c363c1a8cab6299b7324bd2e2796f756b003909f8150d3624457faf3e78b09b" + } + }, + { + "type": "Regular", + "proTxHash": "f1a30be23b8172f6dda4058b95f39d77c9c8539ad40430412784d4a6ddc3041a", + "collateralHash": "53fad3df72dde8ef947b2244529c9ae502b21257d9b9043a0cd77adf45dc9037", + "collateralIndex": 1, + "collateralAddress": "XnKnd4pobDyMFusgqSio9wWkKbHDLNZ7XV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.85.105:9999", + "registeredHeight": 1434151, + "lastPaidHeight": 1983056, + "consecutivePayments": 0, + "PoSePenalty": 3993, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1985226, + "revocationReason": 0, + "ownerAddress": "Xbc1g22YoGE1rTwrRJ2HKQXnAV6duCYWgv", + "votingAddress": "XdzAncmn1RHm1KVs5CwHK5TQa9ScSo8PYC", + "payoutAddress": "XqLj7NPQwsZfGk78hSoBRXK4Whdd1JdBgK", + "pubKeyOperator": "80c13ef76f7ba1c6209a0ef055bb1aed7e0d9dec8200accef43933114f29352972141d58ceadadc291c3044b75615e90" + } + }, + { + "type": "Regular", + "proTxHash": "257c02ac5bdc59c8a77650fdbfe3a32401738d3f8f33576ac6fa76af033c5c8d", + "collateralHash": "74250b493c254dd5ce5bfa06a1038ade52ba49f008ac4d179dec4792bc859ac4", + "collateralIndex": 1, + "collateralAddress": "XsXd7oLoEXiTW4tRvjfQTtjcu4nfFGrY4i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.33.51.93:9999", + "registeredHeight": 1434154, + "lastPaidHeight": 1983173, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "Xv9S8RvVp3kPSwjCxQeyhfhrqPiHDav4Vx", + "votingAddress": "Xu34mraQNJDk32AL5CWYTyXPi4aPGbbnjK", + "payoutAddress": "XsyzekyAzZzwZdhq2XK6vEcpTcBE9hUr27", + "pubKeyOperator": "8576b0e84c3039365af0c922a5f77dd181b6762b3794a308281604895131e029e9b5897cbd40c4cf389729ec45eb04ff" + } + }, + { + "type": "Regular", + "proTxHash": "d0fb7c03fc69e82406baa461a05092ad45137f015b40311ed2e99ab1a250e185", + "collateralHash": "ab57b49f62f605b2cf24f984b3b96b87fda7d68c7c65c569e985e5d611b5d87a", + "collateralIndex": 1, + "collateralAddress": "XwB3GvKidCp76HD6NiyECiM1nrJTRRUib7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.138.204:9999", + "registeredHeight": 1434179, + "lastPaidHeight": 2125795, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWBZKVeRD3MU53Z5kyuU9FiheNePizYMe", + "votingAddress": "XbxwrkknPyZeAh35GRqBMCu9zj62fxGwRE", + "payoutAddress": "XwB3GvKidCp76HD6NiyECiM1nrJTRRUib7", + "pubKeyOperator": "8104a0c7a9924a716b96640ed40e54065c1aa1b04e8f9a7f85a0a8654e722de8fb1e4ae3736c9be84f8be5699e21f677" + } + }, + { + "type": "Regular", + "proTxHash": "5f1ecccda2abcbabec1f3c8857da2b3a2928b4d6a2cfbdd8ede09de34069b2ce", + "collateralHash": "e7b5b9fbe76df276c6fd205e86f97956d060c8ab149a1d62d829221ff00b178a", + "collateralIndex": 1, + "collateralAddress": "Xiab564zRwik9Gs9LwCPSU927fHaV6WNMK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.156.230.252:9999", + "registeredHeight": 1434426, + "lastPaidHeight": 1983063, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1985226, + "revocationReason": 0, + "ownerAddress": "Xfeeybgj5nhmMhrLRjiiewJgbAWCTmyn25", + "votingAddress": "XvPzXZZd5miE2ShhhwapCRFKaZZYr6DXR4", + "payoutAddress": "XeTpxrVbFAbSCpPQpduztMNFZUBTQ55VUx", + "pubKeyOperator": "17d623a88814eee98a9daea391e3b799a1caceb8f0e3553ca9c2cb86826a4c9f680cd9d40e3e0a3a63e1e4f2d9fd210d" + } + }, + { + "type": "Regular", + "proTxHash": "641d46f462a7070594b8e8dd1645e21cc53d5d1cff1031bfeadf9e9952521637", + "collateralHash": "34d41a6218349b08ef2e8848a246bf627b399909fedf8a1131a6f06d356c943b", + "collateralIndex": 1, + "collateralAddress": "Xjd6WPhU3bCKsfZ6R8dz11Qz1ChJBe43QW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.131.90:9999", + "registeredHeight": 1434720, + "lastPaidHeight": 1983058, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "XofCpF5Tf39yCvwAa6BSFSubhJ6TiCMoDv", + "votingAddress": "XejjzGJyQz7cGD4z1FHtZp6xKbWDVEWjdP", + "payoutAddress": "XfhcM8x3eBNYSbDuoK6zC2QZUiG9BchNdA", + "pubKeyOperator": "07cabe11262d229cead36a97b894a864d22382ebf481b34aa6d1eb0553fa1f0a7e75a1543489ae8f839578058a8b28f9" + } + }, + { + "type": "Regular", + "proTxHash": "8dfc25f8f5c7cb73d46ea6f3800ecf5ca8d4aa59e415738ce69d5762dd5ffddc", + "collateralHash": "4f7b1a1a00a40df411eed6eadbfd0f0ca246f85a3639ed84c7ab233e8baa0e04", + "collateralIndex": 1, + "collateralAddress": "XkgKnc8nWhgTudv2T8mzBCZ4EZ2APEVAmQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.140.79:9999", + "registeredHeight": 1434723, + "lastPaidHeight": 1983078, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903506, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "XqpQqX1EFpF7gbG2Cjk3G5Zyf1GcipXcQu", + "votingAddress": "XuDjGZFhcqXunUmtjB8ScQj6bQp8XmCeJk", + "payoutAddress": "XvmWm5fVuX5KMb79pjVf7mBmk8VuZPvrJa", + "pubKeyOperator": "140f9eaccec588d1bf8d19b61783e3fa3108f72b4c0d5ffadedbde40056e8a5a9bc99522be2908cbae56425a5b096fbd" + } + }, + { + "type": "Regular", + "proTxHash": "7d8cbe202440dadcf2592a3c1786bc6792832ff6e3697d27585cb3adbd9272f8", + "collateralHash": "a0f7e39ed789f9c317a4fa4974aae61aed3a257f97fa3d9a85aee04fa78e0ec1", + "collateralIndex": 1, + "collateralAddress": "XbLqFiPWQi4yxZisKYg6Cj66cq1yXotwqf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "140.82.51.154:9999", + "registeredHeight": 1434726, + "lastPaidHeight": 1983082, + "consecutivePayments": 0, + "PoSePenalty": 3993, + "PoSeRevivedHeight": 1903507, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XuBWgdwoL3yFoxwUnfoCZfMTDLWNpVNjhn", + "votingAddress": "Xqh9dwheXS4ZoY7PEPHBJXxBUUD3MC5i7f", + "payoutAddress": "XugyfpJcDVPmzQTT5UYKYVcxFe35NGWj23", + "pubKeyOperator": "93cd3d69ed93f52a02053a827e694798738d94560c62988c6ce5a66d631c3ce0e18178172dfb244630c31ce6f810c5f4" + } + }, + { + "type": "Regular", + "proTxHash": "93f4a4d224914ecd7546c2ea0d69a24bdd82b89bd6b5ec07989cac22c6383176", + "collateralHash": "9ad2b71e79dcc00a24924a54b2b976b730d87f83a1a0fc6ec476bdf1765baa22", + "collateralIndex": 1, + "collateralAddress": "XiraDfFdtUuVMG5f2i5HFW6xoX7V9rrcyP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.197.15:9999", + "registeredHeight": 1435198, + "lastPaidHeight": 2126421, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XanTbky8WEEhfahUsVqGHuTYzZL2Liummm", + "votingAddress": "XwjfTChaRvisKqd4d8gNApK637xbBvXhKr", + "payoutAddress": "XrPK63t7PhcGhjgcAhAdYvyJDrbSUm1CLA", + "pubKeyOperator": "93eb6685495987279171cca7537c7a41554ac8b791f75e1c2decd8a80125cb3d8fb08745878b763e81625991bc37f6b2" + } + }, + { + "type": "Regular", + "proTxHash": "4774941fbb47fd7f3cc9c5e1707336c60d26348485716795912338e7317d55e2", + "collateralHash": "3e890cec7037b705f817343c678c6225a22b48cbe1d5876b673915e85f337c2f", + "collateralIndex": 1, + "collateralAddress": "Xio5jfpRnxYHp8YYhTBj2nQ6MCpf1TMnQN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.1.213:9999", + "registeredHeight": 1435336, + "lastPaidHeight": 1983066, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XhuG8TcUwZFxy7VTZsgo2JUoQCjr45gk6W", + "votingAddress": "Xoem1pXDsWk52RwakDJJtWMqxF6mDDva9X", + "payoutAddress": "XrKuNcenGxmRcHTEMtKvEt76xok9jvWEeA", + "pubKeyOperator": "9182ac5eea3b80e79789b67bba02a4d550a95286014344b945d210d3ed862f00829985d3f6af2e7f1ee6ed1ca9f40e80" + } + }, + { + "type": "Regular", + "proTxHash": "803ecde675e03eba71a7b9329c6966182fe9627bce49fc4af1c6aa25cd722b27", + "collateralHash": "cb473ecaffccb4e08f78241a5937516abeeb94c3623944a530b1a5203651bd65", + "collateralIndex": 1, + "collateralAddress": "XvniDikjdUt7omYb4ppPG4NxhWm8weCfPC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.93.49:9999", + "registeredHeight": 1435344, + "lastPaidHeight": 1953884, + "consecutivePayments": 0, + "PoSePenalty": 4158, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1955850, + "revocationReason": 0, + "ownerAddress": "Xo8VG8sswhohZGgSwpuq6PiZvtPVoTQpxC", + "votingAddress": "Xkunz5Y3ExdhA3CVqv6NWvJqvATTeuSEKX", + "payoutAddress": "XtDCAGWqwFKtucefzTkQF99Z7AEMebzw2E", + "pubKeyOperator": "0cd6ca6c7e2c9d6d100db78101c33fab5cf58239fe363bac101b80b22995749421f3c06954efa04426801388f0d9b49a" + } + }, + { + "type": "Regular", + "proTxHash": "2c1f5e9144d97f8e2eb2fbf639319647d2e253978632bc43e7bebc5804449f91", + "collateralHash": "4f186bd22786a19a7c1175fd224dffd874a87127b2e7a561d66715b8538cf850", + "collateralIndex": 1, + "collateralAddress": "XbWeDwntRzTKXh3FcFR4wkUD1uTdVypsNL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.218.36:9999", + "registeredHeight": 1435345, + "lastPaidHeight": 1986530, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903507, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "XifGRqCw4GtmtqgZQbD5bYQD54jiKAgi99", + "votingAddress": "XxKGLC43hHrL1cUgJAk6tFFr5oq7K8we3Y", + "payoutAddress": "Xc5bvjwsa8kGDvmFoBEnxX8Z5o7kETGj1L", + "pubKeyOperator": "842197264aa83c06a1270f4dda51fc9bd0f25bfe33bf7257fce40c1f04d782e3aba4bcac84c3899bf3a032f1f5dab1a4" + } + }, + { + "type": "Regular", + "proTxHash": "eff96da2e409c4dc424c571c403b7077afd15861d8f5710bacc2ef0bac4a0541", + "collateralHash": "b1c05539ea601be94fb8d2ddf287912e984d22f8d22556406b0c66af68f885c3", + "collateralIndex": 1, + "collateralAddress": "XhViQCRHf9nCxWY7u6LnShyXKTXQmKuQjo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.234.125:9999", + "registeredHeight": 1435351, + "lastPaidHeight": 1983080, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903507, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xgdq9Ad38k2mxE2WKxNHu7fW6bNgxFK9UF", + "votingAddress": "Xu9WpJxAjhPVTXggfR6jjE4UdwQ1dwVrp1", + "payoutAddress": "Xgx9oCNzeUqL4zMjZDGa7gJ2w4UkYHqQdh", + "pubKeyOperator": "8f7baa1d385a93041e2236d0fe0e48d159ead6304004617f262364da03d1cd6268cc50be0b98c41c5cad37e84994ed45" + } + }, + { + "type": "Regular", + "proTxHash": "71efc64e14126d11627120a56373b1ba248edbbefa94cae2514a0203bacde437", + "collateralHash": "219520fdd90f0446e94d75a471cfed72c483a2a13eeed809f12647eb65c2eab1", + "collateralIndex": 1, + "collateralAddress": "XrXwDz5YphLX7yeZyLg5YnAzVyNbdJG4cY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.85.185:9999", + "registeredHeight": 1435370, + "lastPaidHeight": 1983059, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903504, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xsyryn94tKTrSGpJ81t84goD8YpsmaiedS", + "votingAddress": "XavrYZm43DKMyPS5JQ9EWpCN4VjQJv8Hn6", + "payoutAddress": "XvzyMJWgstDhFBAGo7K3zLCnioDfdsZKVF", + "pubKeyOperator": "0ce9ee0275ff80d2fd1e44c387ddfa1c07b9c8f7863fb59782020abb35f40468fc59270afeee85000a2c0b2fa9f5d11b" + } + }, + { + "type": "Regular", + "proTxHash": "513ed7be63657884fc660538e017b2a75f5c7eab28010b4141d4f10aab49ad17", + "collateralHash": "324f2be875bdf45754fcf6859e4dc4782a3c79c563013f84ee6c988b5599062e", + "collateralIndex": 1, + "collateralAddress": "XjbmiMuCEgMLWuXDusCteJ16mnD48zLF2z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.85.53:9999", + "registeredHeight": 1435373, + "lastPaidHeight": 1983067, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903505, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "Xxx8aBu1jN3uWJr6LDWhvjhL1LA57RvL4j", + "votingAddress": "Xcfwjmdd25PwEH8q4jz5Wyw2HtHQHvWFU2", + "payoutAddress": "XnxtKSo7xoaiEFPwce91rhancF4eRnuVVH", + "pubKeyOperator": "952cd22012a638b771d91c24636d48b9573463ab9f09fcf0744371199fb5e0454b05255ce6d4252876e3c58f51cefd24" + } + }, + { + "type": "Regular", + "proTxHash": "1b0d1f8cd66a7a7053214c8bdab4aced2c33e6df43c81b66cbb4cc178f1ba4c4", + "collateralHash": "4016d5c6427e8cfbe5eca213008477bda6b74cc05b1360227e00e99d7e2d0c9a", + "collateralIndex": 1, + "collateralAddress": "XbJGQm6q1meB1AuUrpSeC7FpjUNFBArFY9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.235.85.241:9999", + "registeredHeight": 1435379, + "lastPaidHeight": 1986529, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1903506, + "PoSeBanHeight": 1988394, + "revocationReason": 0, + "ownerAddress": "XtEuhxhzxqxPQugA2WqCYEYj5dcke9ZpzF", + "votingAddress": "XenENipcXToRgAwP4bZZG2crXyUrdsa51r", + "payoutAddress": "Xyku4EQj2fzMVJHAXQkJ4XpbFG6zAE6Cnm", + "pubKeyOperator": "92c40af38ae4ace7d9c0aec4847b19d30e3f76684d117732d2560a4335786993b4125f700b5b69da4de38d977db70f53" + } + }, + { + "type": "Regular", + "proTxHash": "69796014597450fea4e6e0524cd48d1d3d6275b1c48be29a3f55ac70f4261a0b", + "collateralHash": "db797fd95729fd4cebfb5e8ea90d6f067832962911c8fc7091e32caac81a78c9", + "collateralIndex": 1, + "collateralAddress": "Xk7WA3h9utN2rWWWdd3NLyFdUGkGYDJgA4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.184.90.89:9999", + "registeredHeight": 1435381, + "lastPaidHeight": 1983069, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": 1903506, + "PoSeBanHeight": 1984939, + "revocationReason": 0, + "ownerAddress": "XumWdN4dJvunj6hEQ1vM4ZfaernnVbJsXq", + "votingAddress": "XsTbrfRDR5S3kkDTK4VM2cS9m3EKBTycY3", + "payoutAddress": "XkS2kPjsbyps7NiUtcjmgEiLyeNRhFMAyr", + "pubKeyOperator": "9441048591ec12d10ac463fb86f9778f79365d06058471ef8239cd20282b754b3f4be8c594dc7341c07a72bed6841a3e" + } + }, + { + "type": "Regular", + "proTxHash": "bb6199e76618c98a653f7c9dc54761af16384023a6f044dbf7ec6265572bf625", + "collateralHash": "55bd896a8f810a1d9df0ee94fc72a5d46af0e5799172d7e84b42065c0fb51223", + "collateralIndex": 1, + "collateralAddress": "XxfrsC9YgdgDhKq2TrjKbpydG2C7aq1MrB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "107.161.24.90:9999", + "registeredHeight": 1435384, + "lastPaidHeight": 1986523, + "consecutivePayments": 0, + "PoSePenalty": 3974, + "PoSeRevivedHeight": 1903506, + "PoSeBanHeight": 1988106, + "revocationReason": 0, + "ownerAddress": "Xoww2qPmUGNW1FAJjAuZJbW6Y71DsuxwEV", + "votingAddress": "XmjsaM6pwAUbdGARg18bZCrLesi9Z5PE3J", + "payoutAddress": "XjTMAMERZtyV7b1K26rthn1krz6iKhZE6g", + "pubKeyOperator": "05bb77da867f173038ba6718e1a0bfe7ca728fa54c529f99a442c31c6db6e6872ac49589a558fc6a3ea1c13f3fa46a3e" + } + }, + { + "type": "Regular", + "proTxHash": "2e0d863f2c524a596c5e78eb67e70d1c625c14adece64a8e9f3a4afeecb818cd", + "collateralHash": "d3073f2fccd6d88da5e1b1739352605fc4342791b99fd714751e73cf86d553c9", + "collateralIndex": 1, + "collateralAddress": "Xh7J47N8bhmek7tJZSqS6qVtTaox7zsrkf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.184.90.205:9999", + "registeredHeight": 1435385, + "lastPaidHeight": 1983077, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1903506, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "XuaTJX98kCcSscgc4E2i8nAdzoNRVfXz2x", + "votingAddress": "XeokxgqCng7hLVQkcpt4YtW4J7bh1BXMjR", + "payoutAddress": "XoBBpctanzs8JyZtGyAAnqu4vGhsJcn3sp", + "pubKeyOperator": "8561e8939b55cd83a1e52cf31760d33f19dc6f890b7b528e8d76d56227cbdd52631aa2ed1752d9a0be8d54b4aca9266a" + } + }, + { + "type": "Regular", + "proTxHash": "13bc6b5a424a21dc3c730f522bf23bc630f1c0205364a34eb9e324b11c3a313f", + "collateralHash": "b35dcbf6e174032051be47ece0a67eb19e7947c251b95e6b844ef9cfbeef628d", + "collateralIndex": 1, + "collateralAddress": "XoBqEL9QApQjxb3E9EcfHxRh1FTVnCGfij", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.235.107:9999", + "registeredHeight": 1435514, + "lastPaidHeight": 1983079, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903507, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XfRmAFkDX4JyCTAcGBwu3LSwiEosZ9KHKu", + "votingAddress": "XjweaSiMtDkzDeBDcRDX88Uc6isutaQEZp", + "payoutAddress": "XxNwNjoSm4Z7kfCphS1MQq2JtxnSrpm1Cz", + "pubKeyOperator": "805e0ffcc5cbbe58f22809b05863bd444183c397db383e48068c95401f8f647176426c93c39254d3652b21afa5e95640" + } + }, + { + "type": "Regular", + "proTxHash": "f204cd6cea44ae0eab3665e6c0e591599d427fd791334817f8455509b987fcdd", + "collateralHash": "b1a8344a6184eb1b5943c3a72699c0a0e0fd3633a9e60969a4897361a985e001", + "collateralIndex": 1, + "collateralAddress": "XtrfaKP7PHjZMXPvN7SneZSWEQ6FxgZT9Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.184.90.234:9999", + "registeredHeight": 1435517, + "lastPaidHeight": 1983188, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "Xz251tAPu4JGKjftJrrQDhj8Fiq4s9qgCf", + "votingAddress": "Xeak6zfSJfeXm4JM51G4gefbxR9bX61aaa", + "payoutAddress": "Xm5zJehhfxS7Meut5kperkZxTqPR8zGknR", + "pubKeyOperator": "8926a8377cd18bff825edf92fbbd60830c32556c4ee1fbae09036baf5c41567ccf8c6fdef5395c0d45c8280a8dc8dd23" + } + }, + { + "type": "Regular", + "proTxHash": "e2ade3ba1b7058cea09237f04fa0ed7116f6ed23a692526e055d72fb8911f12d", + "collateralHash": "5365857f809c1836861325d33816d55270f42baf254b6a34fc6d85f65a8f57ea", + "collateralIndex": 1, + "collateralAddress": "Xt3hHHtsEYjxxjyxpFPd9NJ7A9XVyNC4Da", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.184.90.215:9999", + "registeredHeight": 1435821, + "lastPaidHeight": 1983168, + "consecutivePayments": 0, + "PoSePenalty": 3993, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "XvwYiESpQM1up8F9zh6pVVLFBbn2ypXNrp", + "votingAddress": "XjGtyBzcdJ72F8kZ4Voy9XpJ3C45THNUMa", + "payoutAddress": "XjiPdpDXPGARitCa59XwtZxQ6GQZVLdtD6", + "pubKeyOperator": "96f1c8fe7307b68794c69d7c7d9bf4cea72ff9003a6b0eb86dc04ab8cb230123a15d5c48d217efdc7c85ee7857074f93" + } + }, + { + "type": "Regular", + "proTxHash": "c0e8c3a4a17ae05fe4a71ae493afc8f4dde83a6e5e466653a8780cd108d18b97", + "collateralHash": "2dd25f989c35dc33a1159848b63af534ebbdcdb1d6ae5a4cb44c9bdad312826d", + "collateralIndex": 1, + "collateralAddress": "XmaL6P9PcAjgioiGq1KqR1uNrtYrsTNXnR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.33.35.107:9999", + "registeredHeight": 1435825, + "lastPaidHeight": 1983177, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "Xar1mvG6AXfkWauopp5er3MYqDEWk25KJj", + "votingAddress": "XwquaCFVJpSr7c2TCBT4DoKheuayC2zAWY", + "payoutAddress": "XfBta5v5ponbCbpkMvvHM7UoJE5KhH6d8i", + "pubKeyOperator": "966aa9dd1923ad4239c067711b3b57a0606bda397b8475e3e9870a5c8455eee5aae726c3e00919c923b2cc2bc3199250" + } + }, + { + "type": "Regular", + "proTxHash": "b3d2a4aae646766732bfc675275934e27cc969a541c724446b93889007fc3804", + "collateralHash": "f5a7ee8942d8ba6461b843dccb51b541000892f5afe06dd5e8040bb2924a348a", + "collateralIndex": 1, + "collateralAddress": "XsqsyYsk9BTxKsTdR5CLe8tL2ysWcWV2yw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "50.116.14.183:9999", + "registeredHeight": 1435829, + "lastPaidHeight": 1983165, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xmw4eCuqEU7mpJth6nQjHLbj8ZKF1u4FAS", + "votingAddress": "XpeenMFUewjvvSZbxrzFZjcbJQ1MDsGA6C", + "payoutAddress": "XrCKsbWwqyKUfkHNN82dN6JyekYnB5QA8F", + "pubKeyOperator": "02e2dc7a4b6e50fa3a6bc62d5825b44c59497e8a07faa9aeab496d67c662f8733ec2a98261b240c69083f30ba32ae4dd" + } + }, + { + "type": "Regular", + "proTxHash": "542e208d5b04195759f955ec99f0f26fdc93dd56c9468b25c651a1722639a675", + "collateralHash": "2c9df8d46087edb6eb7319e62705beeb287dee80229cbe309d1bdfc8974aa39f", + "collateralIndex": 1, + "collateralAddress": "Xm8aPrfuQzMo4cAv864yGmWt4AhK9prUHJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.175.221.72:9999", + "registeredHeight": 1435834, + "lastPaidHeight": 1983171, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "XqG48hVe7ncU6CiUFEyqQeyfUm84qF4e71", + "votingAddress": "XtsjNvJnpkbqRiRcChR1GBcaN41XM5mFez", + "payoutAddress": "XgbHUFaG61ejivAw8St1LyJpp4N7hcuPEE", + "pubKeyOperator": "156501a4ff7fc29cfe8087f6305fe269fee1dee006e88bae109411be85cdd2df53f73d0e9081decf869d894348b71da7" + } + }, + { + "type": "Regular", + "proTxHash": "819f8a5aff68f67e2fc7e83149bbf1eb15cf5e8ad97eef64ca9d1ab8377382c8", + "collateralHash": "6d69a5e4d911f76d26abd6b92becc5a1fc505863d23abb479b3a62f3d0a8c082", + "collateralIndex": 1, + "collateralAddress": "XcqR5dzFRRdWfMd2upZRbuoWYhx5M2qo8N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "50.116.9.253:9999", + "registeredHeight": 1435840, + "lastPaidHeight": 1983184, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "XxY1MmtbwceMdpzN32VHW2yvTPxBjCZBkR", + "votingAddress": "XrkpUr5AK9TF4f15t2EjoaAzjJQvwrgLFW", + "payoutAddress": "XwRNJeqQKx1LvN3T7U863EZvYTwpZcWJWA", + "pubKeyOperator": "16ad3bbbde95a6f23fc72b1f6a243b37bdfb09675e8e805c43e6bfec8073bbd217c30dd11673f1f59b5a688322594071" + } + }, + { + "type": "Regular", + "proTxHash": "30e4b671e5f434ec184f136f80a48333c6203a3377f066fd913eeca9102ce456", + "collateralHash": "517df76107ad3eabbaa1663e01700beb5e69f6e6d60c9c5bf9c8925defc14007", + "collateralIndex": 1, + "collateralAddress": "XrsV8JCX6fuq1sP6oTPTvjfknuCQHS9VQd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.56.82.126:9999", + "registeredHeight": 1435842, + "lastPaidHeight": 1983170, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "XqeQNs6YXYfCdrDqYaTUeoBz4bPcgo6Nkq", + "votingAddress": "XvPgvgSi4nkHSvBFZy1xoBfwG6t5UpFqaw", + "payoutAddress": "Xq5jozwuHjqyg6rBwFF9Pi3uHCQAM63PMm", + "pubKeyOperator": "92ee9892be1809fffb65b39a1e7fecc9b433828fefba2084102e42336f56d9e505a4379203c65b6c6625533e4dc5d027" + } + }, + { + "type": "Regular", + "proTxHash": "3c9b7bf18d68b021e1ec838f813456453ca770c9f81cb4184543a78dfd1c50b8", + "collateralHash": "0648c9cb1e17394285dcde49e78d5b919c2fd341005384f1247ad1639c2461aa", + "collateralIndex": 1, + "collateralAddress": "XfJK9UamZB7f2pahZtbfQipcmhPGPXLxF3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.79.74.9:9999", + "registeredHeight": 1435881, + "lastPaidHeight": 1976031, + "consecutivePayments": 0, + "PoSePenalty": 4056, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1979466, + "revocationReason": 0, + "ownerAddress": "XfbfwZ9EpYryWg6ASArJcouHsrok2hGBo8", + "votingAddress": "XhRV5ykFNhHVd9J7oafHBAQtpEpF1tvSw2", + "payoutAddress": "XyEx9AsgjRBHpr4dmrVYwsTXv1JYaRudEx", + "pubKeyOperator": "8f7242bdba0921c2418d4e3be676e320c0ba9ea86b5d185dd1dc1e665587925086e8bd0de4473f9eba0f1487ddf81f86" + } + }, + { + "type": "Regular", + "proTxHash": "dbb88c01016f3f1a201b2c7cf4b2f87b1ebf984b325c28543e7b5ca434fdf725", + "collateralHash": "909bb1ab766802c346bfd0a8e091efb647bbdb990f7eebd80dd1b80b491aa9c9", + "collateralIndex": 1, + "collateralAddress": "Xuodtj2qVWybzSVGCDfYc5Wdcx8aAvCzpG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.33.61.249:9999", + "registeredHeight": 1435884, + "lastPaidHeight": 1986608, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "Xk21hpW9zfFgKepLcz1Mmb8DNtGHn8GRv7", + "votingAddress": "Xubi8UWQE2gfFVftpmALn4nYWvRwjuKH4E", + "payoutAddress": "Xy7fyj6xgUWpRupedkAwJn6d5CLMbErQAQ", + "pubKeyOperator": "8e18bb44f5297984e6030a13caeb4b2452a9e749ceaee6c2567df6c9b8dcb2f8e6cfe64f4f0a73d3c0d3a0364ee94357" + } + }, + { + "type": "Regular", + "proTxHash": "f601830a7986b325859e6714d63da51ed92c7c6c09c3fa6fb7eb9b7aa1e79453", + "collateralHash": "df892b176cd537552e8cf9a8ef3d52fc8d2a942ac831e1c76d2477298229aaf6", + "collateralIndex": 1, + "collateralAddress": "Xn6kS5JXNKwKPrqG3cywzGcZ16oB8GVdnK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "74.207.244.193:9999", + "registeredHeight": 1435905, + "lastPaidHeight": 1983169, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "XtV7YqUUs4GAuVqK1WCRobuDLj4HPMMSoK", + "votingAddress": "XxoZvC523JP6GfmSnfj6HDrwsuzHwMTCZm", + "payoutAddress": "XnwLnR5y3UHc957ZbeSjdiDZretUTuJQxQ", + "pubKeyOperator": "8017a43a2e80050f13e241610bb8221677df653f849086fd03808ca6483b26e413b73639363b14d5b6a055e9348c747f" + } + }, + { + "type": "Regular", + "proTxHash": "c0d365b9d1722f66f463e7711fdf01497aae132d1d507faab82076c5ade7a6b5", + "collateralHash": "2a025986d31e3c744bbd2e7dcfc8039b3a4436347a578b99e6976c7644422772", + "collateralIndex": 1, + "collateralAddress": "XsKnVniyEYCzSYqgvDJDCGt4WQNJhF8asn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "50.116.2.68:9999", + "registeredHeight": 1435909, + "lastPaidHeight": 1986611, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986954, + "revocationReason": 0, + "ownerAddress": "XcqHvJWfJNsh1jfJ6PsCBkxUYS7pnfB6Lz", + "votingAddress": "XbB4eJZk17L2tD4K6YK42cSruhUbtyT92D", + "payoutAddress": "XtxVVLe46rW5mzJUnE7h6PhN7VdhF8PZa3", + "pubKeyOperator": "0f5949e8d4a92e27762486377abd7866eb0907087fcd4c668629c4fc66a27c2f425c909c547bfb14a43a783de6db2391" + } + }, + { + "type": "Regular", + "proTxHash": "f777343fee910cfa4f186a9ce58914366c96d1dec38cd87c9dd047288802bbcd", + "collateralHash": "81f60f9e7199b75d7a7495badd27f1454889114faf5d4c2cb60db26f2f5a7677", + "collateralIndex": 1, + "collateralAddress": "XxXLtoU2zhK2YFnXMQRRVAbMJWKkxWwUDq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.255.214.229:9999", + "registeredHeight": 1435914, + "lastPaidHeight": 1986614, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "Xc7427a18pPwV5m55tNLKPFJPnSQon14wp", + "votingAddress": "XgRMNuwkcTuyuvZDW3vfc1fZkaCCEFc8M1", + "payoutAddress": "XhzjFuVfC1Cqa663HHuQq6u4ht3txRmCRt", + "pubKeyOperator": "90caabaea72e98a546d9ce934a57ac80f40a5f256b220e48dd3bd5644eb70ae5791067effb5a83ad1775032d1e0e54f7" + } + }, + { + "type": "Regular", + "proTxHash": "bc1adf3d1d6418294a11a3e8a90ab8480cfe900156c361de8d77b047c5b5d0c1", + "collateralHash": "2c2a11ed2a4002b9acbe53583668342578edd61ea71c8671ee8b2b4ac45325cb", + "collateralIndex": 1, + "collateralAddress": "XjJ9H6dXKDVmhVLgc4jfo3xFZn4LZeiTpn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.233.179:9999", + "registeredHeight": 1436008, + "lastPaidHeight": 1983183, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "XvVP3CvRJi1mPTWqM51cHPRpb197RHBGcT", + "votingAddress": "Xeq5N6Cq8hirRt9i7dZZQ2EFF8dihMWMSS", + "payoutAddress": "XiqSF7g9vM1nfPUXjs5Ccg4rn3vXknmx21", + "pubKeyOperator": "13d6c8e3b6eaebce13902ae15ea512baa98e7a0fac9ad24eb49275a5bccbb550b5261203065b7b5b00a9de582a8ab7ae" + } + }, + { + "type": "Regular", + "proTxHash": "07a627c2f8d93edd04362bab6792d3ec937e2df4af049bee1c31bbcfdc921b57", + "collateralHash": "309fed723d6e999904b3aee280c1514d2a99967be531f4ff8ca4067f43e0714b", + "collateralIndex": 1, + "collateralAddress": "XfgD1ezApenzWchZnMpjPQF9ksCN9gX4LQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.198.248:9999", + "registeredHeight": 1436010, + "lastPaidHeight": 1987127, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1873107, + "PoSeBanHeight": 1988970, + "revocationReason": 0, + "ownerAddress": "XxsqU1L95KqL1nnkMo9mNAH5vaF8FnVzDf", + "votingAddress": "XmqUAPUUMSgiWGw3ETkN7bPtHtdFKB6egD", + "payoutAddress": "XknPp3S7hE7TtbbdZXyUr79jxmMMZGx1TD", + "pubKeyOperator": "84188a0e1e8ad3759108edb6086e597face6de945ab12193dbf70c63f093b87b41f453f8940acb8ad9d1b42638c6f4aa" + } + }, + { + "type": "Regular", + "proTxHash": "5afdc63f082f813e1d6952683690c8c10c4d2b3dce7d05df6dca301cccf23fdb", + "collateralHash": "0db7970d4dfc1845c154c21b5bdb0117a276e3522db7fa16caa873de6ad3bcd1", + "collateralIndex": 1, + "collateralAddress": "Xv7ngAN34Crmwm19QU595tbp9coynFHdS1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.233.195:9999", + "registeredHeight": 1436019, + "lastPaidHeight": 1983187, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1985802, + "revocationReason": 0, + "ownerAddress": "Xw6TDwVbUBUQ8AT7Yt96Bw9aHUwpDdM4cQ", + "votingAddress": "Xk6ERawsDUqKHjMYTZajMKxMdHWsTxEKhk", + "payoutAddress": "Xnm9imi7ZM8AweY8btS7E64tuod76uP3WJ", + "pubKeyOperator": "87911e3b9a0080d4968047c808f1e5b08baeaf27c33f6339e7e28df92e93316df8096409f8ca786a74819793efc0196a" + } + }, + { + "type": "Regular", + "proTxHash": "e36a47fffc32a81f63e02ed49decc2dc22cbbc15d18ca63d0222689b937583b9", + "collateralHash": "1aa7ae218f3993f20fdc775e68c97ba0791adfe39da6e19771704bc659a6b65b", + "collateralIndex": 1, + "collateralAddress": "XwwzNG1yDvjUGJAk4CCK412CkX1MPbfZw4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.206.248:9999", + "registeredHeight": 1436050, + "lastPaidHeight": 1983181, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xx1RMsxRacdkCKCAYHL9J7PVQM8AmY6NnN", + "votingAddress": "XxBZexeKKyHLmngHQGhKYzhTwzLxJQxp97", + "payoutAddress": "Xco3WPeavfTyXLyN9qf1nRjWkzJ9PGEtCd", + "pubKeyOperator": "94e2ce74b9241ad6ed5c072226c5b1d38792d4f28fb0de90adc7d4edc764e845335122bed789152cf73eb4faba1e5dc0" + } + }, + { + "type": "Regular", + "proTxHash": "2dd4d1b3a3a93badd14daadc98e377b1f551a461c803d3021919ffd955a176b8", + "collateralHash": "70c309dba705aaade1ebceeda921fce1a835d18dd000478498981ec91f3bac29", + "collateralIndex": 1, + "collateralAddress": "XqEDqghUnW9ATKWJLhgu9gXjsMMjJ4T18h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.211.194:9999", + "registeredHeight": 1436053, + "lastPaidHeight": 1986612, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1988394, + "revocationReason": 0, + "ownerAddress": "Xh7SSara4zuojCHnF6TdQczCPAwV71dtci", + "votingAddress": "XirdFSHqLe4P8To4BWpC1Ru9qb433mAasb", + "payoutAddress": "XjLZuQHXc3buVqMd4Te3vc5i7K5jyheikk", + "pubKeyOperator": "8e896a676903dc7c18cd00b33c3b1738260144760269a810016e210cf97ba7d9a91199416ab0671500315dfa626ca8c5" + } + }, + { + "type": "Regular", + "proTxHash": "743537e1207f4da16da7e7ee119e02bdf7c7bb8011be6d283eaadf39a037cb86", + "collateralHash": "64c2c57efc3d48fc39d60ed4b952e7cfeb2a389086d1c70d235872e63c2c8bd6", + "collateralIndex": 1, + "collateralAddress": "XmbLBmNniya3S2pzvbvPkAjzEWApuTsZgb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.222.194:9999", + "registeredHeight": 1436061, + "lastPaidHeight": 1983172, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986378, + "revocationReason": 0, + "ownerAddress": "Xv2oocVANqrhRkm6rnP1ZNrLjnHfqG66gG", + "votingAddress": "XdGmsogeCkK2npPwD2Y1oRNpoxUr1ZMC41", + "payoutAddress": "XfVZugqYHYo8ZVgp9vA2x13tDn8fhDnJ5K", + "pubKeyOperator": "848bd673b9fd1fb4efdb143ffdeb5cc9dc52583c3373df42f9a48846f8afe4ea545cd0d17153f00afa257cd6bfc408d8" + } + }, + { + "type": "Regular", + "proTxHash": "21173e00737bac467d09effb15959d0459b853160805057a3975436d3e206591", + "collateralHash": "1294ac5f1e464fbc64332af0942bba594efed9e53f6880bfc9705b6bad3e60af", + "collateralIndex": 1, + "collateralAddress": "XjZuqXMDymX4LWjHNYFFWN9eZncNNispKP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.224.93:9999", + "registeredHeight": 1436065, + "lastPaidHeight": 1983175, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1984938, + "revocationReason": 0, + "ownerAddress": "Xe65r5iJ7zqRCNewa1x4W5tVeUCznZgo2n", + "votingAddress": "XcDdFHFkLngSQiyrgcaqT4fK6WUDLgUsyX", + "payoutAddress": "XmasY5DRgWJVxPq3YVrjbfmPswdvRPyqrs", + "pubKeyOperator": "06751fce6e44b11cd84d31f8842f2f104d0a40b42654a62f0a245525280b4a6599714e2d4fcf59151adf99cb11456db3" + } + }, + { + "type": "Regular", + "proTxHash": "4bf630f6bc8fc35c178e582329893e0893c653d09737f813b97af643e92107d2", + "collateralHash": "09942427ac74c3436334203e4620cb5d7bb6ee8f51517d5a63fb0d8f847447f8", + "collateralIndex": 1, + "collateralAddress": "Xaz1z7KsYLX8fM4k3u1fSecyEXs9ZJFv1E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.241.212.62:9999", + "registeredHeight": 1436068, + "lastPaidHeight": 1986615, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": 1903593, + "PoSeBanHeight": 1986954, + "revocationReason": 0, + "ownerAddress": "XvUbLJL8CKjSccfGJe3xjVZWDue4uUxMo2", + "votingAddress": "XdkvqnNGMTTXMJmN6NGTQtQRt7vD5ysUhD", + "payoutAddress": "XeWx4f6brqAEd7k7s6mos82nFswCRfZE7p", + "pubKeyOperator": "14eafeee61a0fb6687f630879c084dee11186918c4a55b3c69e3cde038191dcef12aa8ae7bca0d6850b31bb8da6f1f9f" + } + }, + { + "type": "Regular", + "proTxHash": "8acba4eb45d6962723c0da951c0c398bfd156619483b2f043b7fe729d5903ab0", + "collateralHash": "f7df57525d6abfe7f64ae8b73f163b5188fd173be2a1485fb135b2c41ba8ee0f", + "collateralIndex": 0, + "collateralAddress": "XcFfgmdpmU44NZ5RLWwMhfeKhyS5drGkhn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.156.38:9999", + "registeredHeight": 1437640, + "lastPaidHeight": 2128788, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936983, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoh9uDTpyKmj9n8z6vkr6g7w9mCMe5NkEy", + "votingAddress": "XkCWkx4cQVpf2hdzWCJTh4ehDteeyXcjvD", + "payoutAddress": "XcFfgmdpmU44NZ5RLWwMhfeKhyS5drGkhn", + "pubKeyOperator": "0f3afae8c4783163fe2d04ee024fef55edcdf4af529c39f9212cb6173687d2ecc15b99642e9cbeabda5d81d0d30d99c6" + } + }, + { + "type": "Regular", + "proTxHash": "c09b7d1ff2691eaa68429746f7dc0bc69f9532f8a5e9f9b0a2bfce51c9d777c5", + "collateralHash": "6492edca523ccd064658f95919c90992afa0df9ac66ab435bea8f4f23c805aaa", + "collateralIndex": 0, + "collateralAddress": "Xua1C5f7XY6EihhaWH6x9rAFB6mBtSGVap", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.129.63.38:9999", + "registeredHeight": 1437918, + "lastPaidHeight": 1910244, + "consecutivePayments": 0, + "PoSePenalty": 4265, + "PoSeRevivedHeight": 1906822, + "PoSeBanHeight": 1912074, + "revocationReason": 0, + "ownerAddress": "XdiQS8KhrbrFPuMb1d2Ec8KjzQkmCLQY56", + "votingAddress": "XezEjPSQszC2bojgSajaRLg5o8C8N88KFJ", + "payoutAddress": "XahNGGSn7qPMFn4G3wYcmWbcUgFpNMS2C8", + "pubKeyOperator": "026de5a2ceaaaf5cd3b89d67b2baf6097944549895a8bf7d13a011587d3beb3e05f1f94735da1116bca5b80d8828f79e" + } + }, + { + "type": "Regular", + "proTxHash": "0ff436fff18586dbe7cbf0b59805bddb23590e0ebf0bede6166c433243d0d9ef", + "collateralHash": "edeb30202f9c604b97ba00bb922ccfd1ad2df2d67a5764327a48801099970c7c", + "collateralIndex": 1, + "collateralAddress": "Xiu5Lns8cQPzwkVmAtXX7DG521mqwm8obt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.192:9999", + "registeredHeight": 1438674, + "lastPaidHeight": 2125738, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsECXiAqyGSDmXqBW35kvweuhrtBXZBG6R", + "votingAddress": "XqZLhWt994Nc38uUDhonHXtQYUobGuAcZq", + "payoutAddress": "XjyCwst7m1AFKdBsj9JFFt3KhBcaL7PTc9", + "pubKeyOperator": "9089fec1f173a60beaf32b52cbc915b68cce33aa663f1f597e449a4e86e2d1bd42eafbcc6045c59cba624d780483c7f7" + } + }, + { + "type": "Regular", + "proTxHash": "70ba7dc69fccb7eb1a2e351535b89f56d58f9bb731de6522ffa9eadcdc0e649c", + "collateralHash": "6786193dbeb19881436576b9b4a7e93a8614d87ad517e71eddbb08c9ad3b0953", + "collateralIndex": 1, + "collateralAddress": "XvbRd6G8XCoTP1ZmTYps6B8yKCnvE96yhR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.79.225:9999", + "registeredHeight": 1443438, + "lastPaidHeight": 2125776, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbh4drV7q2ZeW9ZizBqEgQPHnnHH94mmVR", + "votingAddress": "XrrEk2hBQzTQcAxbiV8xWSoAvx191Ud13G", + "payoutAddress": "Xj1QjtEsBiQkjVaYfXRJgcwX6HHu8HaiCG", + "pubKeyOperator": "89be3d6605e78dee6b2873f0fb3db02e808eb47b52efad4166ccf47e6542f43e2df5c3aef6fa0d616637b140bcfc81a7" + } + }, + { + "type": "Regular", + "proTxHash": "c7675739086e3d0fb3fadc714b95ab4f2a1542135fd5e2d636e00dfcd5238f0e", + "collateralHash": "a81c46aedff96b154792e3c072def905b96f24d328e1d06b355a8c7549f1b661", + "collateralIndex": 1, + "collateralAddress": "XhyUenTr9JUwCarWyDrnzGkwbrctRreMAD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.79.227:9999", + "registeredHeight": 1443442, + "lastPaidHeight": 2126572, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1583449, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqKbzT7rHpWPAJn5Ys254syUttw6XusMAs", + "votingAddress": "XdZqFsJVbfs8o3qDaiTCvNDfZjx9yGJVpz", + "payoutAddress": "XjCJbgizjbRTDof1tbGoY2R2GN9KRyyriM", + "pubKeyOperator": "960575d830cd21d09d1ea4ac519cb2214a491276441440547472a06eb1ca77604878e10084f3a9b3be7f3c6ce49ad771" + } + }, + { + "type": "Regular", + "proTxHash": "ee5da9a0808dbccce22f7637a78ccac302d8727f51f25a7adbeab3242d4a54d8", + "collateralHash": "ec25d5a39bda92de70f38d459f6749fb6b2babc4ffd9a99a3dbbf89c25d26e53", + "collateralIndex": 0, + "collateralAddress": "XdYWZ1NGm3ifddMNtLJiaEVNDiuBqqEAYB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.33.162:9999", + "registeredHeight": 1443884, + "lastPaidHeight": 2128465, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122166, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjkcXgPwJRgxYAkM5BYjHonB6ZfPh3GDtq", + "votingAddress": "XjkcXgPwJRgxYAkM5BYjHonB6ZfPh3GDtq", + "payoutAddress": "XdM1jHhod729WuhrhqwqKbuunheVU52nKM", + "pubKeyOperator": "11a17a6b6f599c0f083840a5241a8f0dd4e33e0dfbd57b79d47f58892846989293904c1be7df0829e55e56d681b74399" + } + }, + { + "type": "Regular", + "proTxHash": "8d7706f103b2ff6b23027cfb83e8658ed394445a2aef515c660bdc9ae3669fd7", + "collateralHash": "bd1be5c0e1d0f745b3ce73435fc76b9e020a03ab6d173e8cb661dba27d3b198e", + "collateralIndex": 1, + "collateralAddress": "XxbbZCT39ouxVCZ3bbLGV8wf5B3ceDrzr3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.30.189.213:9999", + "registeredHeight": 1443997, + "lastPaidHeight": 2127643, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxxFDVgMiSZAZTUFUwm2pezTehNPwVbNuN", + "votingAddress": "XaoEc8JoLFKnnB2Yt3Rubxxi3iDGW9J72x", + "payoutAddress": "XinSvdZjEqvPDMPhndr4UEXSsrP2BExbsH", + "pubKeyOperator": "958ffc2a6a2af98c4d902deebe9d946c477d901b1fd1d812e3f9ea5cf622762ecb74d9ca67e165719d0b01e1db5ff4df" + } + }, + { + "type": "Regular", + "proTxHash": "914061c38f73b0a5e436f984a783c0b49a8eb91f6c064068dbb31fa9e8ef6d99", + "collateralHash": "2b2a106c8bb773d48a036abfdd4b353ba4eec48d4ccb9918d68aebec82a7ca3f", + "collateralIndex": 1, + "collateralAddress": "Xv6Vb7c2BLWqgXv5aLNCWvLjTewLZLPtGJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "163.172.20.210:9999", + "registeredHeight": 1445740, + "lastPaidHeight": 2127880, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121627, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs37pZ4dvxNDK8q7MpymHhQ6xhbQjzVBic", + "votingAddress": "Xs37pZ4dvxNDK8q7MpymHhQ6xhbQjzVBic", + "payoutAddress": "XhXmLh5niqAarDGx1GHyDG3BdpcDsQmXUo", + "pubKeyOperator": "824b3da399a3f6ae25869a13e26e776d761fc26a9567534c07031bc0e7ebb5473f26a25f9a2b3d72360d9d9b83d8c76b" + } + }, + { + "type": "Regular", + "proTxHash": "e1403c4a55f6bffe248b4be30c2fb9c2c2d7cbea304016badff4c1ba1d2a21f4", + "collateralHash": "16f32f0a8eda575081edcbc49af6d4d871ca1bb07d9d46b976450ce7fa139a76", + "collateralIndex": 1, + "collateralAddress": "Xnv8w3v4HX2P8FbVJpECGw7iU1vuBTdX3E", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.185.82:9999", + "registeredHeight": 1447152, + "lastPaidHeight": 2128445, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfh63zry5LvhXaG3oAYCHcy2CUjzoqXQcN", + "votingAddress": "XmHSan2nwHLVizs16HhVZtU56u5dDivh4Q", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "03080346326dfc221ba7dbf049e706e117e7bf9279e85fb001c92cf4e91a8cd1a5450e087b786c1091d0c3a181d11997" + } + }, + { + "type": "Regular", + "proTxHash": "310ddbe463c8e295afe41c768b21870b2d402fc721a1378d2425b61dd8a9982b", + "collateralHash": "9de269d647751d7e6969d8cecc8e1746c64eb3d5aa6ecf5e35dbf2884f857fde", + "collateralIndex": 0, + "collateralAddress": "XoPVcQv3gpNqaFSVQFzFPpc3VZjSGBdt5e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.133.157:9999", + "registeredHeight": 1447154, + "lastPaidHeight": 2128449, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XemkzURN6CZEn6rzJTM82ZiokWYcT7mBwh", + "votingAddress": "XmKrSmpiPLS4Mii8syVzaNg7AYqpbUkX9H", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "062918bb98ed21a7d9421049224c66a183cdcc868f5ef46a3b6689d986fa750e0227981bdb4c15c2c3331b21451e08b9" + } + }, + { + "type": "Regular", + "proTxHash": "45ad8f5c29832640cd7ac4b870e6ed6088d15ab044371fe7fddca8aabeabdddb", + "collateralHash": "5b16d3622ec85439716393914f0090294613ef64cf4ad1bb657d3abbc57645dd", + "collateralIndex": 1, + "collateralAddress": "XyvxwsRKAVCiykwWj77sJFfUZF5DWGAQzX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.154.214.156:9999", + "registeredHeight": 1447155, + "lastPaidHeight": 2128451, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbhvGEM61EQx9Bi2PSDf29QGXCPW9Q4VxG", + "votingAddress": "Xpa9iT9VJgmbyVHKLaq2WVBtFXeDQCAgw2", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "822299ae6dac2edfe9aa7aac1fecd15d509f6cdbe174a5bcdcc206e6c7465a34ff148dcde6678684b5397bb3139fd928" + } + }, + { + "type": "Regular", + "proTxHash": "9e900f5c10eee7cd2388dc53b6ae6f4571ad8bd41e6156100aaa8568eb8b3709", + "collateralHash": "306f9c669cf23f98a6abf528794f8b3cd4b1d7cc730b8f70544d0d44aa702a80", + "collateralIndex": 0, + "collateralAddress": "XbUXF9q93Bzy5MdKJ5HuWMSeRGpmSSRAdU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.77.65:9999", + "registeredHeight": 1447157, + "lastPaidHeight": 2128454, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfSP6AZW4RhbkUbkZNAUAg1Y5Ub4jwfCLf", + "votingAddress": "XquaNS2YCnL8ZeWSF6bFdkMfhTxWGSQMsW", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "1861b0db13f83ca3fc414b17861be323d56fa5adb4270908b259c78551f8cb43f60b35fe4b178f3487da08d060638ec6" + } + }, + { + "type": "Regular", + "proTxHash": "ee2cf947fba74b805d916a3ee2990c2ee5463f96d1fa8387faf3f7c6de6008b2", + "collateralHash": "921e26eb4d103f8e76a704ab0fce1345c8270497390dd6ddcd3cbb165c37ccbf", + "collateralIndex": 1, + "collateralAddress": "XhTqWDsN2ogDj1gv28MyTvQWyddmF2K38q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.191.135:9999", + "registeredHeight": 1447158, + "lastPaidHeight": 2128462, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeUu7wafUGLotddVpcPK8L19MTbRxHtJ8y", + "votingAddress": "XvXh42kMYL6g7mSyaE7gwuEGHAwoyG2FMz", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "111739137a8c124cc564d21f57908dabf1e04de2a14afe607b3c4244d1c8a00a5e959eb40764023d74d856b213866dec" + } + }, + { + "type": "Regular", + "proTxHash": "002d824dcc8378525ebc5fe180e92aa133365311bdae6bde31c617ce5f2ece22", + "collateralHash": "32cd3fd009678f8b1132da3cdcf4355b90e35712ea3e924df99db5b880c61665", + "collateralIndex": 1, + "collateralAddress": "Xj45qpTJrAipnWuT8NvzbDfDxw9Mj6m4jV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.4.177:9999", + "registeredHeight": 1447159, + "lastPaidHeight": 2128463, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv8wTyA5NrQzfJSRV1BJin5Zi7EJcgAfMv", + "votingAddress": "Xgp1R9eR8KsqngXDkXR2GFm3a147Dk8zZK", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "029f8216787cf28e5bf9b1ccc1dc439dd1f6d381e029d1b432d083b1e46870f14f1f831c0346c41a280b3e1e5a883db4" + } + }, + { + "type": "Regular", + "proTxHash": "c0e341ff3443ca447234f6d733ae8420e4007cef4450704d490895fe2f6aacb0", + "collateralHash": "c970ef606e135bc26fe6ce7d4afdde1e9ade83664c15650f4805a288a355b1d6", + "collateralIndex": 1, + "collateralAddress": "XjvYwsZLHcYh2aNnaDLxzKqcrL3MnRZbWr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.213.210:9999", + "registeredHeight": 1447160, + "lastPaidHeight": 2128467, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnQ3LnzMiCjPEEeXKRW8MptYYgoP3Ake6H", + "votingAddress": "Xd9fbxTbAQ7eqnkhEoLpPCYzV7ZShA1Ee8", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "0a199dca868dd87071c3a5b3e29fc725a1282e0b6a8d5414bd060ced7f7c64b9d53533dee3c73a519a5864dfc42b17e6" + } + }, + { + "type": "Regular", + "proTxHash": "776cbacfaeafd9880d791357c00c5085ddc8d00af507a35dad37c3d0f7a24256", + "collateralHash": "9f27fe637c813090201e2391c6473c66868b8d2604c57af19ccad3253a91198c", + "collateralIndex": 1, + "collateralAddress": "Xjj5jaqBZftAYFp2qCjcmS6asfbeiC4c9B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.122.38.28:9999", + "registeredHeight": 1447161, + "lastPaidHeight": 2128468, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwEnUMSjGrfArJWtQyJLpAxEtaCa7LAv31", + "votingAddress": "Xy4VE4ytRL3iQWz4Qdn8c4E5kFfmVcPAGs", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "1769513e403a05c4f59c065cf69dab2ecdc2c905f21699ce6826a8ae1fd64bc3459c151331322f3112e41af14ad548fc" + } + }, + { + "type": "Regular", + "proTxHash": "c020238bc5b6538297288a87f90bc9083faa5c7ec90997aaf9592a32d709aa15", + "collateralHash": "fb168e7a6790f5672779255ec46ec28816559ec0d855c1de4a7c29f13fcd4f2d", + "collateralIndex": 1, + "collateralAddress": "XiYpEazRQ1uV7E8YEK8zPnpAKYw3HLHku3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.86.184:9999", + "registeredHeight": 1448016, + "lastPaidHeight": 2125746, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xou5V3LVRmMR3tjmopr2EuTzs6Zk3x8Yq7", + "votingAddress": "Xcd5DGwt2y7aDH5yANzUiZ8KQcyznD9FoU", + "payoutAddress": "Xbh5uf8VA3Bwk2kHgqWi6UYRZaUhXanJhZ", + "pubKeyOperator": "86a62357537d9ba76de24aad053f2f13bce88ca763ba7431ee03f1a125db1806ac1767d135cdaebb6792bbd9c9b285a0" + } + }, + { + "type": "Regular", + "proTxHash": "b8672a723469945955dc2b9caae749dba10c657b4634f47a8bda0ade27e42576", + "collateralHash": "12b6303c58db9319e16660506880af081fba68a1faf2e6adae3f323621d284fb", + "collateralIndex": 1, + "collateralAddress": "XpmNFNT7cKd4nRteBwUjum3nM4yhpfWEpL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.136.112:9999", + "registeredHeight": 1448019, + "lastPaidHeight": 2125750, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp6bmtxGgNKMJCGYgDFyoaMoPe2hNR269C", + "votingAddress": "XmvCnni2dHe85uc33KfQU2bREJKqbhUz6C", + "payoutAddress": "Xbh5uf8VA3Bwk2kHgqWi6UYRZaUhXanJhZ", + "pubKeyOperator": "1352aae3e4c34031988f0a4fa04916d6346b594c625e5bc432bc5a298b1605fe6bb25aa44189194cf61de01f1178b6c8" + } + }, + { + "type": "Regular", + "proTxHash": "20ea325f10633a43c8856c522c47605eb25c2985af2cd9997a722e2fe26f36e2", + "collateralHash": "1bb96385a758e596bde618e0bd5e17254b5862ae18e2db12a2f34e63c43449dc", + "collateralIndex": 1, + "collateralAddress": "XshNBnKquDya8P8Z89BLBX5i5QvmPTYo4J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.17.16:9999", + "registeredHeight": 1448028, + "lastPaidHeight": 2125752, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XenYjLchY2xnhVKTraTcU5ULkE1J1rva6Z", + "votingAddress": "Xh9VUbJ6ZeTkVqmaBLGr7JWXppWjqyFSTe", + "payoutAddress": "XfDBheHZQsw18c5VPeXJZK1Uqoq5yZRTtw", + "pubKeyOperator": "0779e2d9b0c9b593ba28cf8080c3846a520aeab7db857c4d776535cb80b7a4f6b07748153be64f114bc11ff2722fd519" + } + }, + { + "type": "Regular", + "proTxHash": "51ea0323ce5b375624ea6c43750023e5ec616261b1454a4d663f8908d4f4bd85", + "collateralHash": "e22fd970a2c5bb3c4f799f9c6ef853e84168162c3a609adeb01304383b104014", + "collateralIndex": 1, + "collateralAddress": "Xb2GSWUK3QYioQKtBGKZkFdb9w5gSGh6HB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.50.83:9999", + "registeredHeight": 1448030, + "lastPaidHeight": 2125753, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwdrTTdFqGJrwayPH2RUspxAeKN89q6JWA", + "votingAddress": "XvFrzRt56ozsR5qGX4My6egx95Mqw8WZHD", + "payoutAddress": "Xc9GxhF1pTtsdrPpdo8KnCcfwRfMSwy5iz", + "pubKeyOperator": "831c24961094e89848ce909b7848c23e703a3737a20c48cfac24652f067b63491ffaad50636415ed9b5ea35d0cfeab06" + } + }, + { + "type": "Regular", + "proTxHash": "4b2fb2565b4eeab94fd461dcd0b0f83630834929f34ba12e0c68206bd29e560e", + "collateralHash": "035bb05bb04006543dfe6ed30af17fa19af2e03c0861e89e9c00d99b9792354c", + "collateralIndex": 1, + "collateralAddress": "XqCx3TP1Uh18gK59i8WWtEVB2A3fX9H8vR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.94.101:9999", + "registeredHeight": 1448031, + "lastPaidHeight": 2125754, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcLD5NvJ8a53cW8yguJWWyv7LYhpFuG9oY", + "votingAddress": "XiF1rbCWnwWQjZZojW6deNJkgj6eXXeqce", + "payoutAddress": "Xbh5uf8VA3Bwk2kHgqWi6UYRZaUhXanJhZ", + "pubKeyOperator": "8b55e174dbb670fbb1a9f2c71d99bbcb27d3b69b4021012a7287ef34e0bb4481e194177cbf5949dd6be29276b78883ff" + } + }, + { + "type": "Regular", + "proTxHash": "479e9f98ce47556c0622e8811b6449250a912a311f610aa09c64815e519ea7e0", + "collateralHash": "47c2747fd5f6ba7255adf1581d939ea3ee05d6523258963b903cbd373826d8b0", + "collateralIndex": 1, + "collateralAddress": "XkK6pPHwMBd15KKZpb4SDmtF8d4XTAwjYQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "198.57.27.227:9999", + "registeredHeight": 1452748, + "lastPaidHeight": 1632386, + "consecutivePayments": 0, + "PoSePenalty": 4558, + "PoSeRevivedHeight": 1575518, + "PoSeBanHeight": 1636499, + "revocationReason": 0, + "ownerAddress": "XpnJwn6XDHpwfgAYHkL5qRdmPupmvDU5wE", + "votingAddress": "Xw2mk45hxbhcNfhPT6GtCP46D7YEYYMnWu", + "payoutAddress": "Xi64nNp8U13N3AZV7SVUvV9zf16Wqhh7XN", + "pubKeyOperator": "0300512df5ac6907be59d8da5747c859f4586270c8ebdc5211245b728b31cded85620de69585ecb3a498d819b4a4b584" + } + }, + { + "type": "Regular", + "proTxHash": "4135a60699d25c0f396880ceb2a63a8683ea8fd2d97dcdf2c55dcdc4db221a19", + "collateralHash": "3e7ba6eda0f75aa3d20028fb3163fa3445559193adb71efcbd76047463cc9ddc", + "collateralIndex": 0, + "collateralAddress": "XkzoV5wDNnfzzEWzzwBf2nXtYxJm7wkq2a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.119.39:9999", + "registeredHeight": 1453270, + "lastPaidHeight": 2128766, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2071989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgHAJGythFAZmidSYrnBz4Qz1REYn99KuY", + "votingAddress": "XvLqfg15aV6qmNo2juX2GFv8YQyMSA52Vx", + "payoutAddress": "XwT7hpi3NX5J3QnD8NGbXqt12Lm4YMdLFG", + "pubKeyOperator": "8734dd6cf3888f55236757d6140b7dcef62711ba8a2c730e74c129103b3c266a875fdf7b5932684d657e4d466b5cafa5" + } + }, + { + "type": "Regular", + "proTxHash": "2c313b67b15e4044e6b088d348f4a1c2852de75abb0541a52733e4acdb40f956", + "collateralHash": "2b0716ecd4557d0e9caf5094642a1d585aa248575cead4be76d5758a496dde3a", + "collateralIndex": 0, + "collateralAddress": "Xi1GAJfRYpUbjXdxi6n7rBkwr6tpLpy9id", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.15:9999", + "registeredHeight": 1456559, + "lastPaidHeight": 2128529, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqCtMtPUs1qUJtKqRkTUX873jeQ6ek8VLN", + "votingAddress": "Xcm4FKdeYxxNJDBGonkzqi5gPjyqRrvfJi", + "payoutAddress": "Xn2XV8van58JBZfBRiEH7oHAGffmeM3Vjj", + "pubKeyOperator": "925cf94de37b2b2fe06e520974f2b810b63067922a6b841b1764127aba09f05ed7b80b090c209c95c2a65297f1e691b8" + } + }, + { + "type": "Regular", + "proTxHash": "a536ff223a79b4805091f6cbc911697ff6b7c2052640803b8258f6804c7c2b4b", + "collateralHash": "4915e14bfba397e13b1e24104b59d6aad6163fc469369f2a892652fdf29029e3", + "collateralIndex": 0, + "collateralAddress": "XhwmgEGE3WQtRRRHTmkbuFmYc6NoaDG3qQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.24:9999", + "registeredHeight": 1456562, + "lastPaidHeight": 2128531, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd6WqdSzxRiYYyE5xTnW1XFkT5b7tJpow5", + "votingAddress": "Xw7aHxUZ3JugFhvbGVErkn2zuArNZa3HWy", + "payoutAddress": "Xn7Ycy3JkJmXc7qibFoyoEnuyowwyUsbkv", + "pubKeyOperator": "8a70ec61345aab1b2ab12f92d561aae2f2710f506b20db7836bf3df0c5da9fe053778a9728e0e7285ec477ceaf14c343" + } + }, + { + "type": "Regular", + "proTxHash": "77e9cc56d0b3b95dbb872881a065e5a77f42d5844905226e14dcc71a34521503", + "collateralHash": "19a85899a438dec5688030a2a3a5c2ddc87ad2b5a884750e5acf24184792eddd", + "collateralIndex": 1, + "collateralAddress": "Xw12xitKpMaCFyM1Ub5Y8LHMphXUgSuHvB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.46:9999", + "registeredHeight": 1456564, + "lastPaidHeight": 2128534, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxy82hyZq4ai5LATuRLtT2TR5ngE7c4YHV", + "votingAddress": "XoFTVyF1RxRbt1RGH8QqGgJLiUa6tufCmX", + "payoutAddress": "XnDPA6J5dGgJYbYnKRzhugqGXaCy1UWVH3", + "pubKeyOperator": "8b8b3ef3d6cc9cea91c2733dbe3559c81d831ed55002e0cec5befa6fb47cb80f465efda003b8a994eb24f818db0288e0" + } + }, + { + "type": "Regular", + "proTxHash": "9cf746c3fe9078681f2e3785c5c7bee5f653d547a95daec2072a52f1cf5bbb88", + "collateralHash": "51b5ee8f3a1a32f54e5cae9a3bb61170c361bef3cf46ef0bda67907d2ad1a7f2", + "collateralIndex": 0, + "collateralAddress": "XtnoxTUTcyy41g7T9iDdsHjrRawr9KYVT4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.222:9999", + "registeredHeight": 1457215, + "lastPaidHeight": 2125742, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcA1hXTSWyY5hhCWYyvupcxEN91z222VWX", + "votingAddress": "XbhU7DJxDZwNsxu52SMBAPd7ReyTGyUSKb", + "payoutAddress": "XnW4YG1KE28oQP6w2BXRdNWfJms9HiV181", + "pubKeyOperator": "9520ec505eedb8884406ef7c9e664206081397d247cccad8815ef002ff9ea141332870b6d9ecefa3ca0360cb06c11cc4" + } + }, + { + "type": "Regular", + "proTxHash": "a54d925c699f8cffa316ddcc0ab8da595df8eb4bb5d48c355873744582abc249", + "collateralHash": "3f42e510f538a2cc2f004adb3619cce68d30944517ec2835308341f1d0f5384e", + "collateralIndex": 1, + "collateralAddress": "XrUcHWMaoVtHwia5VqH2p1VoUFGpMFgm2o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.232.169.246:9999", + "registeredHeight": 1457559, + "lastPaidHeight": 2125888, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XehgVttY4rykZFRmXzXiGMUqexPBg2gfgc", + "votingAddress": "XqEEVGLvZa7LJE86wLDKyyy5TPhJEgvRrC", + "payoutAddress": "XiqxPGELhQQRFjZQRzabRtk5kWkSqRTws4", + "pubKeyOperator": "8df043d04e0b031da58a99182235dfc471197dfabab87f4850aa8960962c7f9d572d7e20945e35f491b5570bcd59a009" + } + }, + { + "type": "Regular", + "proTxHash": "865f12671bf4517bf46aa3d27bcebfb4d9a97f76f70294e5a9c88ea3ceb62221", + "collateralHash": "ba293f6b366c6eeb404bc4e9c76b55885bc0fced320d2af3bd3fc123f90df79b", + "collateralIndex": 0, + "collateralAddress": "Xq25zje36KW3vjHVzw8xCAfoZeu1xyvdA6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.35:9999", + "registeredHeight": 1457567, + "lastPaidHeight": 2125898, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtDJ4aWLgck5GvQkUJ2132YFYKecP4WPQV", + "votingAddress": "XdHfVRtzjhNivFocg2x14wd5pEqW6HYoTz", + "payoutAddress": "XncFEmYZo1D4GUJAfag4WjF66WjgQPNm7Y", + "pubKeyOperator": "8b259a2844167d2c85a41eff924d755b02900d0843841cca926c16e39dc1b8c59870d2a39300a99bbe04a4d2e75f481e" + } + }, + { + "type": "Regular", + "proTxHash": "1a52f4b26868d37da390f1a484b09019e2f5db3be5aeef481d1723c5db87ca0a", + "collateralHash": "30c0c517a1ba6191681ed80494fa62473a85e6a419f2d8c70616acf3a85fa9e0", + "collateralIndex": 1, + "collateralAddress": "XbXLB71wcqwLL1SV2eEZcDKs4JYMLfYyZV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.144.169:9999", + "registeredHeight": 1460800, + "lastPaidHeight": 2128180, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcEi8SeYxLwaTauY2kRNgoqnnuSjxXgUWT", + "votingAddress": "XiDbpBfCgT3yBhw38UEwHes5GFRFaT4Hww", + "payoutAddress": "XbXLB71wcqwLL1SV2eEZcDKs4JYMLfYyZV", + "pubKeyOperator": "05e9f4bfb9205bc92bfe74019f685762ea5be1b61837535e95fe3fe2bb596ecfcb87309b0909bcd4c661e07d7bf73440" + } + }, + { + "type": "Regular", + "proTxHash": "b96e010c230161dafab91a4075a87d18ea954636543fb3147f64ee4dd979e77d", + "collateralHash": "cee6ccdbaca5754f25ad86265a897ff871327b8a3f167f9ad3faf7852ecf2707", + "collateralIndex": 1, + "collateralAddress": "Xz1kDiyhZeCBJXcLSG773VNoQpRK3d6yo6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.71.228.155:9999", + "registeredHeight": 1462370, + "lastPaidHeight": 2126153, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcsa8cbGT5BQMzXGjLKW2SQjQja2r43mWg", + "votingAddress": "XvUEc2QSqy1Fs1AgYbpFk4PycX246gApuZ", + "payoutAddress": "Xz1kDiyhZeCBJXcLSG773VNoQpRK3d6yo6", + "pubKeyOperator": "0816f7c89635d08714fb09f03a620ddd67ea2579608f115f8aecd6e7f443a141300ed4e5c5b4ad9d00e8aae6cf358880" + } + }, + { + "type": "Regular", + "proTxHash": "810b83cb53a144e4d371e1de4d497c449a0bc23873c1fcea791a3da59da3827f", + "collateralHash": "44df5b389eb53e852cd15f37dc4e38447ea9d0558d56f054815f58fd6a0b1a20", + "collateralIndex": 1, + "collateralAddress": "XtawP9L6BfJFNrsDULcU3byhYeHmNWCLKe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.157.15:9999", + "registeredHeight": 1462406, + "lastPaidHeight": 2128743, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2038221, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnE5domQegNt1f61AUALZPz5rAHinS6BCf", + "votingAddress": "Xx9RxqdJo6TcRaiKUd8Csmrxz2hjuv3Qum", + "payoutAddress": "XtawP9L6BfJFNrsDULcU3byhYeHmNWCLKe", + "pubKeyOperator": "961d9dbbc97357537d6b0007f037903e6c1a9b56b3e9ee79489a14ba65780a783a3964d50fb33a5e5569e487d4552be1" + } + }, + { + "type": "Regular", + "proTxHash": "0e3818a4426e15256ded3c03b77b4e6b409fac5773acf1575fd9f30395fe2a7b", + "collateralHash": "4d0e8abfd4716a9aa267449470b47ce1dc14810fee583153776e0149ca270fdb", + "collateralIndex": 1, + "collateralAddress": "Xx8Z2iJvMGKuJuS3JFL2K7Bk2XUU3EXW1G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.200.153:9999", + "registeredHeight": 1462420, + "lastPaidHeight": 2126189, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYMSugQSJvR4NGpRXuux6Df4PqUqHQsHE", + "votingAddress": "XoEapyaskJC8tFqALwTLQyXnkzHSeH9Vsr", + "payoutAddress": "Xx8Z2iJvMGKuJuS3JFL2K7Bk2XUU3EXW1G", + "pubKeyOperator": "8e4a291d349abea0736de2af4c047c40d8569b7a9bc2ec2917c87ca73bbab2a213bca86059ddf40e99bc1f8a3f230e28" + } + }, + { + "type": "Regular", + "proTxHash": "cfea72271afd273a151455caa851ca5279fb7f73ebe48cbd5295bb303f1ea96b", + "collateralHash": "4b65b1709f377ee4b543555bc287fc6db6655ed6b45ec14519c037b772a17997", + "collateralIndex": 1, + "collateralAddress": "XwYJ7vMP9uJ5PuAMVfTsheZg9WEPDKjRan", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.138.24.25:9999", + "registeredHeight": 1462825, + "lastPaidHeight": 2126396, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfqoRb5vgo1sqYiNxgozrTKh8o6tGPsX7Y", + "votingAddress": "XvmiRZmmyEuPnFEpePw2eaXmB18KPR96cw", + "payoutAddress": "XwYJ7vMP9uJ5PuAMVfTsheZg9WEPDKjRan", + "pubKeyOperator": "02413e750846394205583ac8545c9e0d4e639e8bf4570d9a29eed1be09c311e8cabe7d79e7d08bed43c3c8ec03a0543f" + } + }, + { + "type": "Regular", + "proTxHash": "fd7dbe35f101e388d611b024ae25cdcce28ee0852e07bed47a5a5e8cd7ba38e6", + "collateralHash": "e85cee16fad0e27fbf2ce9a1b6ea0012213737a3dc7d9bda714177c8d1d32f45", + "collateralIndex": 1, + "collateralAddress": "XtD3bvjp4mM4cwy512tZxQf74UiaLhFU1J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.22.72:9999", + "registeredHeight": 1462914, + "lastPaidHeight": 2126466, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdonRCGSGJCNhCrtgrk8R62aq44apZRAQp", + "votingAddress": "XmVSwNfNm7aMgp2QW8vUkfLjT3QWXUyLTN", + "payoutAddress": "XtD3bvjp4mM4cwy512tZxQf74UiaLhFU1J", + "pubKeyOperator": "01034ce52d7afe41e8ac056f29fced37e7a26fdada475e2c23b2b03b6395f763e64503d1d9fce87284433f8dfbb1e05e" + } + }, + { + "type": "Regular", + "proTxHash": "43659b25d19bed6c0c7acb974af069f48cef18323bdbfc7e0a8140a350a9707f", + "collateralHash": "77f1a088147e608d8eccade93673f3e8bf3db8108060a7601026c528d32336ca", + "collateralIndex": 1, + "collateralAddress": "XxgUMebDW67CTevcA9J4rcePxRevAp5sWH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.41.198:9999", + "registeredHeight": 1462915, + "lastPaidHeight": 2127841, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876262, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt3H4SxeNFj7ncPacWr8ceP1d5QCgu13Qe", + "votingAddress": "XkEYa8JWe9J9DDWfDq5w9uKJXHtpSQ2UYZ", + "payoutAddress": "XxgUMebDW67CTevcA9J4rcePxRevAp5sWH", + "pubKeyOperator": "07f4ed0e7b83924c83519b09a34dae99c4d866aa3477fa838e9d9f4ea3d721062fc8b65272dafb4e16d92f2d7175c1bf" + } + }, + { + "type": "Regular", + "proTxHash": "6ef0d1845ae9aa9b1307f4bf39a10d81ad3742b7de5a2cd15fb0a7a97bb84dee", + "collateralHash": "bf8a13bbdada056c2cef523bb804015fe333292ecbf3449074255b4036631264", + "collateralIndex": 1, + "collateralAddress": "Xst6zRfKeiPoZnJ53avZyZLjMam4VM1NpS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.81.166.134:9999", + "registeredHeight": 1463457, + "lastPaidHeight": 2126840, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhBLjJvkpGEaupNWVenaXdvjWKk724fr1T", + "votingAddress": "XhBLjJvkpGEaupNWVenaXdvjWKk724fr1T", + "payoutAddress": "XcnMCkzdNFnQA19LM7xS6mR9JqP8gz9c3j", + "pubKeyOperator": "8fb64db88d29bfec13ab005a3aaafba4d320cd44ed898adf45920859d020d7ea965a3cf41303bc060da3b7c717332e01" + } + }, + { + "type": "Regular", + "proTxHash": "52fd1e8e7486d5bcd5ef0f0d84aae241f273f59ef47f4befc42f2abe71fc8286", + "collateralHash": "9e2a74bca0ec7f90dc5290d3e14f9bacd8aa4240a6f6ee63dfb8c07e858e56a3", + "collateralIndex": 1, + "collateralAddress": "Xpz6xghdvmts61ftKww1pviBZN6vtYXEeY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.12:9999", + "registeredHeight": 1463468, + "lastPaidHeight": 2126844, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfAbkM3TwoSw5JfeVcFqMm1tYuWGnxQ2U9", + "votingAddress": "XfAbkM3TwoSw5JfeVcFqMm1tYuWGnxQ2U9", + "payoutAddress": "Xuesp5DQ7Eo9c1d1PfwHLb7gdzJfaTZqe4", + "pubKeyOperator": "90cddc1fdbb24b1300a01abe4d24161e51d629b0b4e1a99729da557a51208ccf118c8f1e2cd059753d9ca1f8aa6f7551" + } + }, + { + "type": "Regular", + "proTxHash": "93d023796393d44546a0bad600fba67c114cf33dd48a7ef3c6e2326369763d4e", + "collateralHash": "05c93a11975d81b0aaa53df9afb37025b41f61c8ad806c4316793191662824d2", + "collateralIndex": 1, + "collateralAddress": "Xx84fyvFdta5ffj5LgSVuwCkuk7CvANMbW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.210:9999", + "registeredHeight": 1463648, + "lastPaidHeight": 2126969, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpwjCRqNtFzEcKUeinDtyUuUwqUSNayBem", + "votingAddress": "XqVzwVpwjLXN1PTBtU5BLMHiAUz2HczBuF", + "payoutAddress": "XkRtAvd3KJ8XZG71NnYnu8FiKoMtXcvwm8", + "pubKeyOperator": "165117ad2eb6b271b8382eade8c983b9c717cbe8d48cd0c25d063bfbcdaee76657fd808c9c13dfa413daa4fe8a355d86" + } + }, + { + "type": "Regular", + "proTxHash": "230b1f0c3fa672c56af36d1fbdf687e75255291ae5d8590d3a4e9af9a14c54c0", + "collateralHash": "f2fc6d48d23dd5c054902c0c85a038cbcfd0fd71ef220cf6ba84402ba03dd358", + "collateralIndex": 1, + "collateralAddress": "XhnXqW6y6dsMeLehVXGbNvbGE8EC89p3BS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.234.135:9999", + "registeredHeight": 1464569, + "lastPaidHeight": 2127611, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcwVEMaq7rdUdG4M6t5APv2FpD8T5sz657", + "votingAddress": "Xqzr3RkoCpYTJCpRi9SDNz2P14EhrbfSJ8", + "payoutAddress": "XhnXqW6y6dsMeLehVXGbNvbGE8EC89p3BS", + "pubKeyOperator": "86b941a0a057cca4334b435a9a005026fb69b1126636ad2f82ad068eb24683b85456ed2f45e90049e30af642efff27a3" + } + }, + { + "type": "Regular", + "proTxHash": "418eb50d53135d54fc6d7ba03462dfa951509c717e8081469be17fa8a74f717d", + "collateralHash": "a3e7635655d0019267cb0cbe9e856c01fe4e1653a0e9af0d8558b6ce58376544", + "collateralIndex": 1, + "collateralAddress": "Xe4knBRQTFngjfkExFHEm8WGuVegYYgust", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.40:9999", + "registeredHeight": 1464636, + "lastPaidHeight": 2127739, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnuuwUHPvVsu9kvNymFQhmEopraDozHo6e", + "votingAddress": "XanNSVAcAyXMusg5RZM7o2jPEo4tuqCBuS", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "80736dd02c69071ef4b70c76db7252196988e0808f4f5a3c887117acd7526f60339f177d59368c6414d60ef596eebc35" + } + }, + { + "type": "Regular", + "proTxHash": "ce9b0789fbd6fba9616405c535139bc9f1f3b6eac418897158512df34deed15f", + "collateralHash": "fd02968332f708a63ac1d9382d3b1829aa3af72086aa872c4a0d61676762ec48", + "collateralIndex": 1, + "collateralAddress": "XpRJYK8Qxj7wFDHvVQCPe7NMFYPzArnk3W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.100:9999", + "registeredHeight": 1464641, + "lastPaidHeight": 2127741, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk6jyiZXp8mdBp51HWF7eSE7NuvaSkSbgW", + "votingAddress": "XbRJJ713XKym1CY734zJCKV6N2injs3zYx", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "905096907c1dab513f0716727183b476a929fbc9f9a2a423b97ee99abd9a3302406da1f25e1330c7b53f7617ea93fda4" + } + }, + { + "type": "Regular", + "proTxHash": "9307366035d7d06cdf99c94819aa611cc8444a3e8c8d9810d3141ccb0de48f6e", + "collateralHash": "6d140086f9e620c888948c712c2690859ce1990ddb89c84fac3b7b2371ce683e", + "collateralIndex": 2, + "collateralAddress": "Xg5HQPnNoEcETVsYDgd1LxeMoNymgKeBLe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.208:9999", + "registeredHeight": 1464643, + "lastPaidHeight": 2127744, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgCAwUoUN5SefgMVUQcANzDaQSFj5YvXyF", + "votingAddress": "XhDSP8HFM1d3oqNN6WSCGB6mRnNrbPPQhC", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "95fd5eecc6cfa13c38947e8b7058974f3c2f02b416ff8162d204db3a404e12c30f5b50a9e5a236f18420c67964295365" + } + }, + { + "type": "Regular", + "proTxHash": "4a563342d1d4e43d0a7cfc3b3f5eb5bf3a0a40deeb612097b46a446277733ea0", + "collateralHash": "277e04bafba0e442aad1ea07a9e93055e130db80cd7a4a23913004200bd6f508", + "collateralIndex": 0, + "collateralAddress": "Xrb69qzbfqrbK8ingNGkkPBUTq4sejPwJM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.185.60:9999", + "registeredHeight": 1468842, + "lastPaidHeight": 2127104, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy8MSLofQv3JvyBWdR9HS3TsrVBdg1Cxci", + "votingAddress": "XcJngM5rkqmV1kfiGTSzzMykifa4L6oSkd", + "payoutAddress": "Xrb69qzbfqrbK8ingNGkkPBUTq4sejPwJM", + "pubKeyOperator": "85a101655ac3740dd6607de492f9912925694f13f9699e8416cf63894cf5ec131eee96a6e9e2f57f89437412d7fafbde" + } + }, + { + "type": "Regular", + "proTxHash": "d0d81317e2f6534b72eeae43df2934eba1bd124521622c90f3e357b784af1bed", + "collateralHash": "cdbee20befe2bdc645a9a1963b5c3f0bf9db9c580d7f41553f06ce8353fd34d6", + "collateralIndex": 1, + "collateralAddress": "XvSRbpe4R1BRnQUVrSDsgJPq5DxzKvNeQM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.235:9999", + "registeredHeight": 1469040, + "lastPaidHeight": 2127567, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjW8cfvKZ1tZMDip4eotUCBdgKVuRfeKEV", + "votingAddress": "XiBoTW9T4g2wq6eLH9yk6MaejoX3SmAENR", + "payoutAddress": "XnzPMSGSU8NxgVbxwy7TmxCg1WK2WGA78j", + "pubKeyOperator": "8381e789c2446b8912b07c4d6fc95d8ca7578dec0f1d336c7a52f621ecc6cad36b9105d1e3173e76a65f9fa3a4d0b205" + } + }, + { + "type": "Regular", + "proTxHash": "2b7e92af1a9aae3580c1f41333fed9a3f857cea779a35c40a644b9227b95b6b2", + "collateralHash": "a5d6c6167308a57ace2499f82e4f36a61ff4ea89f219e20c774006a9a46345fa", + "collateralIndex": 1, + "collateralAddress": "XdtV6ZLsJdwWj3UR3bHuTj7evbu94mUZCC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.0:9999", + "registeredHeight": 1469117, + "lastPaidHeight": 2127625, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb3gBF4bHMZX4SLah6hyidQnTY47J5THCH", + "votingAddress": "XiZZdfmGFPQp3YQUjfzEPCQLyEy6u1qNrB", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "8a2b36d444c587683d833a555faf2395b42b71ea93798ee01608b4d054b8d27d9ba20f642678d2ada8167e507ffaa01d" + } + }, + { + "type": "Regular", + "proTxHash": "b636acc8069ee6216dec5b8cc3235bfda3f1cfa5742af342f9a4b27da4fefe3f", + "collateralHash": "3b6c292af185dab3b7188c0810fb416356d8661aee310c7fe72371c09202c1ad", + "collateralIndex": 1, + "collateralAddress": "XxfVgvXhd8xw98ij6oXH5JR3sUcZdjb95Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.10.124:9999", + "registeredHeight": 1469305, + "lastPaidHeight": 2127871, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcKqPK3m1N74Ewh22aDuaKJmThafQEVjzR", + "votingAddress": "Xb1YFNEQ5vFmnJ2qLRg8Sy8gZVKWLiZtn3", + "payoutAddress": "Xuzh8ayHALzM1kJpCXyZm4t5Hp7yxu1Zqn", + "pubKeyOperator": "809e7c99bac3cf36111a3bc56044144fd6fad1275545a8934a5a0049092b5fe2a3bd6f8e4cebe7524ec9aaf56dad7b6e" + } + }, + { + "type": "Regular", + "proTxHash": "55bf63b8875413fd77a0c2ea5f8732276f1c3eb5aab8b0891c54cf0a64f600f9", + "collateralHash": "9d501e346aae806f79b19e71862afa092096fe5159f2151140ac53a3f04fd321", + "collateralIndex": 1, + "collateralAddress": "XnvDyJhsoi3Ub5oSast94DFtti9YD2iRF7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.253.170:9999", + "registeredHeight": 1469349, + "lastPaidHeight": 2127906, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg88oXM7xUhz7A6swT4gScdoveV1DD2Txa", + "votingAddress": "XdMJ5cKS9mTJh84ps9tsqwS39mYX7TgKE3", + "payoutAddress": "XnvDyJhsoi3Ub5oSast94DFtti9YD2iRF7", + "pubKeyOperator": "0aac9604129f4ff36cb8c224c30b9dfbb3f6f7225599922a2ac2b6163e09f51fded7e7a6ac6c5edc458d92e75d788bbe" + } + }, + { + "type": "Regular", + "proTxHash": "3fbdd7235b42a52ac280066cb70e61b93d1bff5b14d3fbad3bacb9c8d1f50c8b", + "collateralHash": "7cc198580455de338847f3bfb10e92a553701f56874c0fe8692fadd37b4bc225", + "collateralIndex": 1, + "collateralAddress": "Xb2wP8SqAyf53kM9ftxcXBERSj6P2EW2Sw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "199.247.30.169:9999", + "registeredHeight": 1469674, + "lastPaidHeight": 1733384, + "consecutivePayments": 0, + "PoSePenalty": 4467, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1735140, + "revocationReason": 0, + "ownerAddress": "XnNVqj5jxNLCfK1x2NYGVWEYRp3dhW9YAv", + "votingAddress": "XbkPYgTKfjBLYJiCxsxYVQAotkctuDqcUh", + "payoutAddress": "Xb2wP8SqAyf53kM9ftxcXBERSj6P2EW2Sw", + "pubKeyOperator": "95459d0b72decfbeee5b001349d003e66a42e38c06d353978346ff7abd418c18977d0bc3acac8a5d5da7bee352b22a3c" + } + }, + { + "type": "Regular", + "proTxHash": "e5ef964a214ed21928a407b7c75fd5d9d0a7fd6fc286dc7304fa337a59f0bb6a", + "collateralHash": "a82965e72c0fbc18bb35d017015982d287cdabe976ac86006d1c281da2f33d26", + "collateralIndex": 0, + "collateralAddress": "XeMo9vaJVdSbhqMFcfWtW3QuezvzVhwFpP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.159.94:9999", + "registeredHeight": 1469990, + "lastPaidHeight": 2127097, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf4kHPVnXvcdBm46mEXhcR6yJHbDEjRS7V", + "votingAddress": "Xx8rnT46jjAto2CSkYuX6RMHBxf77gBQxP", + "payoutAddress": "XeMo9vaJVdSbhqMFcfWtW3QuezvzVhwFpP", + "pubKeyOperator": "00619ee97cdb2c47ead9f0a311a82ef6b25aa7d84e7da872d164ab0cac0b87d6235e30305d5f5cd00de72eb3571f8729" + } + }, + { + "type": "Regular", + "proTxHash": "ca610ff225b54e8d3805e44dd084eb40a94ddae6ea0539b662c7cd315a785278", + "collateralHash": "2a194452e71822ffcc39c5f5e9fd89b6c0f4e23285050e9220863e22e2ea7b9f", + "collateralIndex": 1, + "collateralAddress": "XiochL6xAbqwzzaJFPKSp5zqAr4dRX7TG5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.32:9999", + "registeredHeight": 1470249, + "lastPaidHeight": 2128662, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiHM1zBfGzh82Xq4uuSf4DnD8HDYugp5he", + "votingAddress": "XbZEAku1WF5syQGTVLj4Zcn8sMiAQDBfen", + "payoutAddress": "XiochL6xAbqwzzaJFPKSp5zqAr4dRX7TG5", + "pubKeyOperator": "850938aa1888f8db7426e2737c40a1dafe88678cfb3e94d6529eb0d9805bea38af95421bca2d40f8dfd521f981f0e4ba" + } + }, + { + "type": "Regular", + "proTxHash": "bf9157545fb578fd0244c616139196a1fed4a84c4652c8265deba50f6db5cfe1", + "collateralHash": "dfda6b1c6516e833046f5d733f6b3062593687882b169e04e338a067fbd17293", + "collateralIndex": 1, + "collateralAddress": "XevWnFBdeK8LQwMD8DAu3M1yka8QphLK7f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.162.229:9999", + "registeredHeight": 1471205, + "lastPaidHeight": 2126871, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120828, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpfCXSWr86nnhtUQu8YdZCdhTZQ1962yjX", + "votingAddress": "XkQYhrwTD3NfHkCEoho1JgssZoJSGQzDEM", + "payoutAddress": "Xqb49m44ZtbBxktL3UGvfSpE73Gm1pwqb9", + "pubKeyOperator": "8b95b261e894469a04dba34f008a5fedfadb768ca5b861b2c0ea2da0bb301c5391d09966e7d07a82b8b2b2f1f41d5ea8" + } + }, + { + "type": "Regular", + "proTxHash": "23fa43bbdddc6b3a50405c25ffd5f4a21c22384f8d67b7affaafe60fe2f54cdc", + "collateralHash": "318b7df2bd5842b0daba595f64b2669b765059442b44172dff79501fa8d80fec", + "collateralIndex": 1, + "collateralAddress": "Xdsp8rmkHuhvtGyifMwBo2YKhzQ6kKDLJX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.162.215.169:9999", + "registeredHeight": 1471426, + "lastPaidHeight": 2128668, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119374, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgiA6jjYbDUU3J7o4nzQyFG9bc28p2K1tc", + "votingAddress": "XgiA6jjYbDUU3J7o4nzQyFG9bc28p2K1tc", + "payoutAddress": "XgQtLgxD8E5ejzDo2ZW1fekmMxDpSxV3UK", + "pubKeyOperator": "1124b4769c30899425583daa686308bcf49d5507d6e922167c012fd3337fc455fcf3899042bec74c51bdd9d0bc29e5db" + } + }, + { + "type": "Regular", + "proTxHash": "7dbf80dfcac9d698132aacf9093d7249a2b864f68d7caca85bd617bba1761e46", + "collateralHash": "c90d5c45d20f297f78f94e26f4ce8ada3b3e680eb5eb96c4d07f527b60a10c3f", + "collateralIndex": 1, + "collateralAddress": "XpBP5pPZLMSBtpXU92U4ZjwygAxCjdoaaE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.252.92:9999", + "registeredHeight": 1472010, + "lastPaidHeight": 1983610, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": 1900629, + "PoSeBanHeight": 1985514, + "revocationReason": 0, + "ownerAddress": "XphKs1dywBDKuk3nHjgtw9ST3GnLoFKf4z", + "votingAddress": "XphKs1dywBDKuk3nHjgtw9ST3GnLoFKf4z", + "payoutAddress": "XvPbzLSUJM5BFCxWEuhXYhuXJJ8U8cjUBz", + "pubKeyOperator": "8389539ced0efa7ce978a4bc6f0bc4cb2c3a8c72246f5321b3d3d7e37fdc8b2f2b251cb32b7b06a2a4b893c8d3ae3e46" + } + }, + { + "type": "Regular", + "proTxHash": "2138e8bd108076a3af79ec3533b52cca032c571f6f35153ab36615f1cc0cbc23", + "collateralHash": "6b1630c343432ba60c83f57db68d54227df9d97d02098dc58e3ac006e74cb9ea", + "collateralIndex": 1, + "collateralAddress": "XymL7xuYuQgv42cLSNVJnV3GSz2BXu2aGL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.99:9999", + "registeredHeight": 1472038, + "lastPaidHeight": 2126524, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XajWbdP8VmbeZHcJBXmf59fzxVfNchqEhJ", + "votingAddress": "XhoD5Lke3nmhA1re5b9D3C6strpDUeZyXt", + "payoutAddress": "XymL7xuYuQgv42cLSNVJnV3GSz2BXu2aGL", + "pubKeyOperator": "8cb859caac46e998484fc328f28abcae1a7267d31c262049b61ec93c43ba83050e62f2f3d3a7c6269a08a5b7194766a5" + } + }, + { + "type": "Regular", + "proTxHash": "9396442d477e99e0579546cc6d85562b6838a365fe39dcefc7d571c9dd4fa06b", + "collateralHash": "6287a61ee08d143334b49b657c2de728b140ab72521c978768fb628b5f242f25", + "collateralIndex": 0, + "collateralAddress": "XpTWXvK4iTrV2PTuEXF2HUFTgP7Bky2sbD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.108:9999", + "registeredHeight": 1472307, + "lastPaidHeight": 2126701, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoKeeMHSqNr4tFDdGesYgmHQeAoUSSS8V7", + "votingAddress": "XmJDkcWJ9MjCHazkToXxQBWFL5uD9Gdexq", + "payoutAddress": "Xasq9KiLvMenAqzS1tNqHUk3HBeTdhYeVq", + "pubKeyOperator": "1774fd2b1c9dc5ffb09f07bd05a90233be64e3bb17f218f26704322a1ac273d05b3e4e2a020baeee7f54a8249a3b4fa1" + } + }, + { + "type": "Regular", + "proTxHash": "65e96ab5f30551faf835938a300f0dc5cfbdca8eda3d91c4288262d1315e96f1", + "collateralHash": "df2e9496e796c1ef261c3c278a04d17c008d023abe20be617f2a48e023676ee5", + "collateralIndex": 1, + "collateralAddress": "XoUaA6jeHgwbmVzDMYwtnmYfWmFbRZnLgF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.10:9999", + "registeredHeight": 1473621, + "lastPaidHeight": 2127624, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhCDnokzGLXUMG8hpdNE5Dx73SixxAtKTX", + "votingAddress": "XiSXz5P2nUzPuHPXaPRHRtp96bNBCz6vyD", + "payoutAddress": "XoUaA6jeHgwbmVzDMYwtnmYfWmFbRZnLgF", + "pubKeyOperator": "0d8839b8d7b4cb1bf79851ea6ac572c1d1b8a6facba5583da1cd57741b1b4528d0da6a7f3abc2d7296458d20b6059893" + } + }, + { + "type": "Regular", + "proTxHash": "0b82ca099216fb20c5301d528bc8ba6306589bd022a46bba128fb904aa312e9f", + "collateralHash": "f2ce7b5805a9779372171b6bb8d71b2084e51117c518bceb6b836b1d1ab28d92", + "collateralIndex": 0, + "collateralAddress": "Xy8Gb74PbyPuXkJ4QLywDFUtHPHGZoxoJt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.27.239:9999", + "registeredHeight": 1473886, + "lastPaidHeight": 2127916, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjH8sesFQThitV97KLxxWEWvFgQ9DMaxBS", + "votingAddress": "XxNQSh241y9CWy1NrnHxdsJPpqbZZtr9xG", + "payoutAddress": "Xy8Gb74PbyPuXkJ4QLywDFUtHPHGZoxoJt", + "pubKeyOperator": "97a5997b82ae593a234d7b091ae4fcf0ea8aa0140aea5ab94a0b38991e5a8e025bd45b4b5d0db0292b06ae588f3ba19a" + } + }, + { + "type": "Regular", + "proTxHash": "cb96c2950f5da49736b198ee86f2c1da1c2f6607726e159baec61619c71a6d5b", + "collateralHash": "ae92eb0859c28ac43bde6050ec113a149adb4e512f089bd9fad604f35d156f93", + "collateralIndex": 1, + "collateralAddress": "XhLWskosqCTesa7ZHpGEiNh4YNXN2eNvoG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.98.175:9999", + "registeredHeight": 1474597, + "lastPaidHeight": 2128498, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdQaw5XyjGT55P7yYzrN9txHanX3pxMAF8", + "votingAddress": "Xer4iKjbJxTzENDnHibEBYpjCwcmH1tD52", + "payoutAddress": "XvFoeEj6giQE37JJHwehLHbyz26iEmtZTK", + "pubKeyOperator": "893ca6db027085d59b780cabadf3fe0c7315320445652937f490c6f2b0669379f2c79502ed159804027169551ebdb67e" + } + }, + { + "type": "Regular", + "proTxHash": "deac81e38179b28a6078cb60dcdbe6299b70b13d0d632946c6df2b8f85a75383", + "collateralHash": "9529593acbde245f908ae08e018a9d7dd97afe7a0be1dd123fdd97ce21814dfb", + "collateralIndex": 0, + "collateralAddress": "XpMHcfDe5NJg5b3w8hoe8BW4WDH31u4aek", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.227.67:9999", + "registeredHeight": 1475503, + "lastPaidHeight": 2125837, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvb7X3FAYoXFXEfP3MDSkPmhQzqg43yffz", + "votingAddress": "Xd7kpqGoGR857NaJE9ojP7521GiAFdauHH", + "payoutAddress": "XpMHcfDe5NJg5b3w8hoe8BW4WDH31u4aek", + "pubKeyOperator": "8dcc42086635d6bd863d149a573294868a64df7f4a94f8a78cb68b5ae43a54cb401fccda2da6698b63448e787465f54d" + } + }, + { + "type": "Regular", + "proTxHash": "71ea28eef43609dbc7a75a8d85565a3671f5bbcce46decb9b0f5945932c48078", + "collateralHash": "dcb56d11ea74eb810da0d6902dddd272c51eab49b48d3813e13f6ec2489bda99", + "collateralIndex": 0, + "collateralAddress": "XnNisH1BQKMijQPJEFCNa47tN2URV58YPH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.235.156:9999", + "registeredHeight": 1476397, + "lastPaidHeight": 2126444, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtkdoDn6E6JaKh5cDXCCSrewfPEgbXFL9T", + "votingAddress": "XuDxQGdtPqddiM3Jpa2KCdnnCc77AqQK71", + "payoutAddress": "Xcc3wR7JtNU1UtUwaMjWro86WfCv7dvg7z", + "pubKeyOperator": "9142e8c95a9cec5b2bc0ae034030b0f8fcfd4818982184a79d5d29d67361e04bd6ccc98247c4642710f599833fbfb796" + } + }, + { + "type": "Regular", + "proTxHash": "b1e7442ff262cb9974b96e9558ea1d9ef3f6fa43295e27ea9d485d3a52b0efb8", + "collateralHash": "3a40528b858cf26c6439e9292f17467556a2bbe445541e133e0d8b7451011d03", + "collateralIndex": 0, + "collateralAddress": "XsuhJpMWqx7CDrZYztvFessjZuxp2oLgy2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.208.146:9999", + "registeredHeight": 1476422, + "lastPaidHeight": 2126461, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjz3YH5MHJ5aeG3f3cUFE9dHojtGJBNGmS", + "votingAddress": "XdyZXbKQF1G3exunGdpG24wwUs8PqD1v9a", + "payoutAddress": "Xcc3wR7JtNU1UtUwaMjWro86WfCv7dvg7z", + "pubKeyOperator": "031e4ea7caed924b2513909729ffb9bb7e8fb9e53f19fc3912f1fcc1734dcc0c79134ee0e1ab154707be88788ee411c0" + } + }, + { + "type": "Regular", + "proTxHash": "6922b43bee38a0da3baef6bb35e3d037947a178e19737f92e129853a6b70f2a4", + "collateralHash": "bded370859c6cfbfeea58ec317cb561f1676b64bce38efd5edfd0110d90ed3b8", + "collateralIndex": 1, + "collateralAddress": "XiGRZzA7UBqXZHhUYnfF5Pwemb5FFd8mmb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.0:9999", + "registeredHeight": 1476825, + "lastPaidHeight": 2126733, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy56MuucdvBPfioPVNkEKbC1aCfsstGzf9", + "votingAddress": "XtNyM6y3uF6Ryk95a7fGbzahLuKCjk3BpQ", + "payoutAddress": "XiGRZzA7UBqXZHhUYnfF5Pwemb5FFd8mmb", + "pubKeyOperator": "87398223d0ef8ccb7457f15ac29a89d2fec0a6abad6e0c60753aa174a08b958d2eba9496ab301aeea2cec559b53a806d" + } + }, + { + "type": "Regular", + "proTxHash": "05231fe0fd6bba8f692306d3b86ca5435ca7c547ac62764bbe4eef7cfaa7280a", + "collateralHash": "a53921cc4659b8a743997273a384555308d031c0b44a1118c40c758e7eb58159", + "collateralIndex": 1, + "collateralAddress": "XygjMgvDcLk4EwWbRKiDwEwSXz7aphYsES", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.128:9999", + "registeredHeight": 1478845, + "lastPaidHeight": 2128224, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkd85ihgGTyyBcZrbz7AFhxXaNNK4mQtci", + "votingAddress": "XqpeLGtvdLZ5iNtDk7ggMnAmUQaibGxDF9", + "payoutAddress": "XygjMgvDcLk4EwWbRKiDwEwSXz7aphYsES", + "pubKeyOperator": "858ecee9d4152ea6902a1c32950041fbc0463612d77477a8b05a28c4936c1f79372f9eeeffdf866bbfb3c394355bf454" + } + }, + { + "type": "Regular", + "proTxHash": "76a8aefb37373558d92a0d5198dcb4e0cf282cf0a724b017e4b507c41c147134", + "collateralHash": "2748edeabea3711be5a31c2cbe116c376f1c2b2d9ee1162f00bb75eb6906ece6", + "collateralIndex": 1, + "collateralAddress": "XkUTdYfPCKcnhabBqSc6EhiH9p5fSSEW4k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.216:9999", + "registeredHeight": 1478848, + "lastPaidHeight": 2128230, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfKE38pchcq48qPAdtCYubU1fpYmqdnrgn", + "votingAddress": "Xnxz9NLGQ17hgimUS8kLmyuNzUYNhVRmNg", + "payoutAddress": "XkUTdYfPCKcnhabBqSc6EhiH9p5fSSEW4k", + "pubKeyOperator": "93706c75a4a02f6fbaa1e3c361b4d9f570cfef0bdbd20a23cc0e2b14cdce4c040c0e926e19ee4c4185b855d85795ebdf" + } + }, + { + "type": "Regular", + "proTxHash": "46b38e1cc1fa8d6d6dd71d5d48d04227479a760f777d354c09b09aa7cde0560c", + "collateralHash": "238095cfa3711d65fb37c5520fd4e3902bcbcb27050a59bee81bfcbf6a2a016f", + "collateralIndex": 0, + "collateralAddress": "XdXw3xQVRtGGEaMqjWvsNDYiLZN5A1WrjN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.46.93:9999", + "registeredHeight": 1479206, + "lastPaidHeight": 2128652, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xau1zhnHnZcFbP2N2p1utzdJSzuk4P6kbw", + "votingAddress": "XgfuTgEwiskBn4efhT14Xn7DKsMEWUKqa2", + "payoutAddress": "XdXw3xQVRtGGEaMqjWvsNDYiLZN5A1WrjN", + "pubKeyOperator": "93522ca61f9e798f88882916f8b1b99da01265a7a1d799ceb471cb9b4f9c4a30dfb34b4bee045ec0b7b7c9635d11fca7" + } + }, + { + "type": "Regular", + "proTxHash": "a0fcc557204a7f0f51ff09cd55a10f4130fb3343eed208ec5d0a29484cfd1ae2", + "collateralHash": "aa65460162a09c8086425e4c3732c39273e628e7ffaf727c80cf89c5bec4d695", + "collateralIndex": 1, + "collateralAddress": "XsXiunP4VQEWGuttys4D29oZ2d4VykJAHt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.232:9999", + "registeredHeight": 1479639, + "lastPaidHeight": 2128885, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdeVuDRoE2CyaumS76usJRHkxC3oDdjxvb", + "votingAddress": "Xcv9JdxcV7YSEyjHhE7LMaDa3a723gRpnA", + "payoutAddress": "XjM1ypUFKUvZ1Y7Yi6TGeWdbu8MFgGVgC7", + "pubKeyOperator": "18d24a879aae9c7cef55e8cacb93db839b80c71a36f7d49354d59d7391dd315e6ce7547df946ccf88b80b44f3569eeaa" + } + }, + { + "type": "Regular", + "proTxHash": "3f6b6e6451b1b3f01451a284e5fcbcb8e7ab3b78166df316b8466311cda25172", + "collateralHash": "7c47ee206617fe7d6c6e2a6d89199e7ec8f0e5eab660a1fddb2b52f0d168ea6c", + "collateralIndex": 1, + "collateralAddress": "XnVHjPs4cN9oabMqBb1FKQVk6GtyH7MVab", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.243.139:9999", + "registeredHeight": 1481804, + "lastPaidHeight": 2127078, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcLxxMQt1wRuXLxGouYmeo44iMHeBoLGic", + "votingAddress": "XiCDzvKHFK2cF8W4168qd83YzpdRAxkDdV", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "0675351a17730e04c1a0078d1dd93be4d5bf3d81af4e6bb8f933619a6228381a768613e99ee6f95672809c7c223be894" + } + }, + { + "type": "Regular", + "proTxHash": "25ea80063c1fe74b2a3b6a7df0c4e166471efbeb2e1ca6604c97376fb067da5a", + "collateralHash": "caeb42a4a38d92ca65bfecfa7a5c3ede4fb031a241ee1c144916562a9639ffd7", + "collateralIndex": 1, + "collateralAddress": "XczgSEuusLx75U1bm6ativD7Bee1Tvj8jb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "49.12.106.147:9999", + "registeredHeight": 1483429, + "lastPaidHeight": 1825394, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": 1665537, + "PoSeBanHeight": 1828554, + "revocationReason": 0, + "ownerAddress": "XpPsfKUZhisxmg6hPSGBfXa2z6gwFecQJz", + "votingAddress": "XpPsfKUZhisxmg6hPSGBfXa2z6gwFecQJz", + "payoutAddress": "XvhDJa7S9QoLEVahySGwkiyUDp91mB3xRg", + "pubKeyOperator": "97a8fde133a1c870f981d0126b7eb41ee94b4d9b1a5114447fbd08779e201b12f49767c65f99e7c52f4848ccb1c7a9c9" + } + }, + { + "type": "Regular", + "proTxHash": "7c5dfd92e1a7968af8312b48237c5b2b0975d855436a4342d902ac0f0f493bd4", + "collateralHash": "0557b50789f3f70973e8d4cf493d303d73da47b96b388ad64f8440a01816b223", + "collateralIndex": 1, + "collateralAddress": "XxaERcxNyXA7FhWZJsrp2aq4PpRRVHfjP4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.201.117.114:9999", + "registeredHeight": 1483437, + "lastPaidHeight": 1827640, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1828211, + "revocationReason": 0, + "ownerAddress": "XkR6hqRx6kxEjbrsWd2DgcjDKNnXvQb3we", + "votingAddress": "XkR6hqRx6kxEjbrsWd2DgcjDKNnXvQb3we", + "payoutAddress": "XoAyDpzSbczaSv5ZG98t5rG5NyukjPdTA1", + "pubKeyOperator": "0302bcdeb5bf4a82e7771f9cb165765e7b2fcf2605311103414dd5ac0c1581a4dc1b3c00772eea7d417f268f15ccf31e" + } + }, + { + "type": "Regular", + "proTxHash": "8bbd6148d2b18a24c6abb70a43e257594f25e94c8595a75d428c1a7c85118d95", + "collateralHash": "d314be754a7f356a7c5bbaf29c2cb899faa0c3567aa3859c2588d56ba0020ca2", + "collateralIndex": 1, + "collateralAddress": "XavkM7ruJQRHA2UxNPaXGEdTEgYpRvdFRZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.33.92:9999", + "registeredHeight": 1483455, + "lastPaidHeight": 1825385, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1665531, + "PoSeBanHeight": 1828245, + "revocationReason": 0, + "ownerAddress": "XxnHmQm1XHui5tPqHFVQaXqhXrFRkJ1cK2", + "votingAddress": "XxnHmQm1XHui5tPqHFVQaXqhXrFRkJ1cK2", + "payoutAddress": "Xkqhn1Scq1qUeSNxWh6YzS3e9z5aEoKmjn", + "pubKeyOperator": "17f852291517ee880eb460880af3ba44adf35aa34d56154fa48b87b8d5f7038e9029a5e37c11b99c4747e6fc37864bba" + } + }, + { + "type": "Regular", + "proTxHash": "3f4e32dd8fb76d66e35c8e18902b9b5271501b86e13e9b26b147e65be4b08066", + "collateralHash": "dec22492e1801df50710a5c4df3c14363bbed2643ddb7135b06c59bf28ad1192", + "collateralIndex": 1, + "collateralAddress": "XehFbHoemoVzjVui3pYPkEszpKzrS8VnrA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.203.159.239:9999", + "registeredHeight": 1483468, + "lastPaidHeight": 1827712, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1828284, + "revocationReason": 0, + "ownerAddress": "Xkw3Got3Zendpy3jJamPtQhfatpvLZULKM", + "votingAddress": "Xkw3Got3Zendpy3jJamPtQhfatpvLZULKM", + "payoutAddress": "XnE8DUScMbqusLE1Esi1LsHQju76ffKZEN", + "pubKeyOperator": "08797b8fb78aae163127347675af842c593b120543131be20bded384d10874cdbbccd03be635fad4738683aa36a42f7c" + } + }, + { + "type": "Regular", + "proTxHash": "1c0a831b315c011a9d9abce9805edbd34dd3c039c9c81d75f3a01ca362890ca3", + "collateralHash": "59a480d457a01e15f3f0fdf26a242196af8f8f9794cc039361122cf97b603665", + "collateralIndex": 1, + "collateralAddress": "XyVudhQSxaEq9Zawp4ajinGPoivbgXQGGa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.90.153.99:9999", + "registeredHeight": 1483472, + "lastPaidHeight": 1825971, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1828475, + "revocationReason": 0, + "ownerAddress": "Xka7NqeDqc5HpXmoU2cV4KygeXZF9oaLYq", + "votingAddress": "Xka7NqeDqc5HpXmoU2cV4KygeXZF9oaLYq", + "payoutAddress": "Xcv8E4LQLySXtyY9FL8JaLEB2zJFQAiaSh", + "pubKeyOperator": "14ca8945b89347cf44591ee2babaef8b20c1f2c9d61f5b9e3e5962c898526838fe28561ae0d689a21b78be6688dacf39" + } + }, + { + "type": "Regular", + "proTxHash": "4cc56f326b88041c3816682d204976d354bb5c77a37a0b463f1f293e0c11b147", + "collateralHash": "48bfafe4a7f1d7fdada8f02c19d8d04fe2c0924d6eef82da0a5776747481e39e", + "collateralIndex": 0, + "collateralAddress": "XwsUpET8GRyPtEypoWVzWruFnY1RWQu7h3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.61.185:9999", + "registeredHeight": 1483970, + "lastPaidHeight": 2128786, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936983, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwQrDGNRbgRBNixGY2gE9dhe53bmSczH4N", + "votingAddress": "Xnmownk9Q8Apyh8JcK2pFwZBe6piV7Vw5i", + "payoutAddress": "XwsUpET8GRyPtEypoWVzWruFnY1RWQu7h3", + "pubKeyOperator": "8c018026a7cafc6e0d37f00870fe21ce8004fa151f4857463cf8e5061dc196e0ab567d73ceef84875dbdc451677fa5f0" + } + }, + { + "type": "Regular", + "proTxHash": "2b7071b4c3a799dd6d261d04164d192247d92ca4ad45518a68ab31f3a2cd2cbc", + "collateralHash": "5545b29b78b9f8a9d7b6fcf5a8fb45c11aaf68adaf05d6780aeb42ab2d44d221", + "collateralIndex": 0, + "collateralAddress": "Xiq9gydULYSHEFbYwjWSy8X5NYju2dhmM5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.153.183:9999", + "registeredHeight": 1483976, + "lastPaidHeight": 2126586, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiVhKgo8q1LnzGv5WHxaeWq4PQBPKnmyEu", + "votingAddress": "XcN6kTkcntTnd6bRWcxXFpiU7fELTUqpPu", + "payoutAddress": "Xiq9gydULYSHEFbYwjWSy8X5NYju2dhmM5", + "pubKeyOperator": "065470795d73d66a5273893df0b2768b101bee5ebd709c739b72bbc64752272fed7f5daf6b3dffe3679941f9278a0cf4" + } + }, + { + "type": "Regular", + "proTxHash": "9b851bec41bb82b7eebc7f24f24d117ae8f979ad389a5ae8e86a8fde3b8cafed", + "collateralHash": "06116dccb25d4b07e3b79a42ba8d8ddbbc361fb96dda6d1ed738c5165e037030", + "collateralIndex": 0, + "collateralAddress": "XgRn8hq3Am2BUqQSiXjSS4PPqidgMQX6bE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.116.116:9999", + "registeredHeight": 1483976, + "lastPaidHeight": 2127110, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoK9xyjKbooEkPd4X3yfk6Xk92CFytcZB2", + "votingAddress": "XuaSxSceuyoUasZ8vyCy3MyF6jcDHuRYhF", + "payoutAddress": "XgRn8hq3Am2BUqQSiXjSS4PPqidgMQX6bE", + "pubKeyOperator": "878b65e703a3b309c1a7bf9ddc5742602e5682ba44855af4641034802669d9f044ad63f401cb33a9c6acc58338401c31" + } + }, + { + "type": "Regular", + "proTxHash": "38deb85129fac5dac50ecf8def12d903b65a6e2785b48ca81977413274fc3844", + "collateralHash": "38fe2ec2d0b920146bf22cc7f425d797b0b4368b0e22f49cadff01a897c38c6a", + "collateralIndex": 1, + "collateralAddress": "XsgAoePc27R9oaKBkRFEPjRSLBPwCNcni4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.69.194.164:9999", + "registeredHeight": 1483976, + "lastPaidHeight": 1828170, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1828554, + "revocationReason": 0, + "ownerAddress": "XcDeeH8nZSnZ21SCwKQGnA8RWJmt45gYsR", + "votingAddress": "XcDeeH8nZSnZ21SCwKQGnA8RWJmt45gYsR", + "payoutAddress": "XuUaq6LW3vubQVt9ThPeUdSmihpXjznwV7", + "pubKeyOperator": "01589a6f197ede4aa7c1f944254cf7cc545f752a7e7be81e5d8625b5e23585ffb0d488cc5ffa592037f5ad3b0952c3fd" + } + }, + { + "type": "Regular", + "proTxHash": "9b6a42efb2f4ed0bd06e62dcea6ac37eced1e3caf5a4a822b2fce7582efa845e", + "collateralHash": "f7b67ab48b4afb9cb32433481439f36bbf4bb930f8f626e9bb58c38b4c20e002", + "collateralIndex": 1, + "collateralAddress": "Xci2dPvETbgLNsbTS26KVVWyV4otmq6CHP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "38.91.100.4:9999", + "registeredHeight": 1488543, + "lastPaidHeight": 2114006, + "consecutivePayments": 0, + "PoSePenalty": 2213, + "PoSeRevivedHeight": 2126347, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpPXNyM1E4bjeaTdWUSJqiXYupjLbiLx4m", + "votingAddress": "XpPXNyM1E4bjeaTdWUSJqiXYupjLbiLx4m", + "payoutAddress": "Xci2dPvETbgLNsbTS26KVVWyV4otmq6CHP", + "pubKeyOperator": "8cce4ec3385fc78a54d549c948a54c3d3c6fca1061c5699d602ec8d9c8b75323cba756bd005226dfb84fc2b1555afcc2" + } + }, + { + "type": "Regular", + "proTxHash": "df5f79feec828bb4255fceb1db638cfea532795854e446983bb5755e520a007c", + "collateralHash": "e233246ca500c2afd0b93c0c0a98e18ffdddadf515626b2fabd3b31b78c4a72b", + "collateralIndex": 1, + "collateralAddress": "Xdwp3t99dZWvKUSLLmY1sF7eV7xuQBxDJq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.162.211.76:9999", + "registeredHeight": 1488893, + "lastPaidHeight": 2128646, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119355, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbZehmTPRhkgRMLAQMs7mfHjveUhEo3h83", + "votingAddress": "XbZehmTPRhkgRMLAQMs7mfHjveUhEo3h83", + "payoutAddress": "XqUjBfbb4MZj4c7YLhNgwmD3FcRN1sE5Kf", + "pubKeyOperator": "80222b8057fe7bf86a84e7b0ad2db56c391193a40244ef24c15c9363c12ce6485231312396313e33efc3f7de551bd266" + } + }, + { + "type": "Regular", + "proTxHash": "df12cf6772c7d03d1e70b238837c31759d5caa046f11ca2b0408e51b12d24fbd", + "collateralHash": "482e5b3567e1a5d39a686f87d7ddf2632fd848269e6c172f25fc3f3a0bd21fbb", + "collateralIndex": 1, + "collateralAddress": "XrLFmD8CMVkGQhfAdHM83rGEh2mjhBCMkt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.78.221:9999", + "registeredHeight": 1490056, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4646, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1492955, + "revocationReason": 0, + "ownerAddress": "XmTFxRQBaPSPefBztE6NeDbuoumdzPJdCZ", + "votingAddress": "XepzynVWW8RpaKmAdcq6XrbhXQD8QioP9t", + "payoutAddress": "XrLFmD8CMVkGQhfAdHM83rGEh2mjhBCMkt", + "pubKeyOperator": "83947541b4242ca819613d058e91f5395fcd869defaee6acac650ac7f5906823cbb1d18515f70e385624555a0fed5a47" + } + }, + { + "type": "Regular", + "proTxHash": "c3e575b9949413c1d50d0f916f4034b251339bb252f66a361f13114859bf6da0", + "collateralHash": "0a5ea806fdae72df0c951369e7e8cee88c6e0a65ad508248e0e0fc487c278b12", + "collateralIndex": 1, + "collateralAddress": "XcVeCpzauhK3KReuJmgfDpRQuB695hK4pL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.17.210:9999", + "registeredHeight": 1492556, + "lastPaidHeight": 2128664, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiEMuhDpdckKwZRatJRQEKvZ2Zjt4e5o5p", + "votingAddress": "XtFcLJgdV6FTiwahG6VcSwScKtW5j9LgJT", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "045f9bbe218ec47a12c22ebe4a8660a256be7b1bde3fc703a9a3a79d2b28b3f45b2e92e4502d3af7bc3ed4da181bc890" + } + }, + { + "type": "Regular", + "proTxHash": "fabd4c1e1dc01895f6a1f386151c67631727d3d8025f47315da3b211350e2187", + "collateralHash": "67c4d084371bff88a5cae96d41ea95da3d1cf2df5e12ac395b95d379fd7e3423", + "collateralIndex": 1, + "collateralAddress": "Xbv3vJqkPWKDpLn8eFzcpMMat1hBKidrZP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.152:9999", + "registeredHeight": 1493218, + "lastPaidHeight": 2125872, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820915, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvhRZsXTfzU4DVEeHxfYDmGE8DqhDT2qX5", + "votingAddress": "XvhRZsXTfzU4DVEeHxfYDmGE8DqhDT2qX5", + "payoutAddress": "Xg5essCkq8SJhrngmWNp3hYQ3NDagFoxJd", + "pubKeyOperator": "1232235225905ae0f2f765dcc3908e2e40d241bf9783ee7e39831bf76b620e3c019fdb522900563dc06a0494b036c27e" + } + }, + { + "type": "Regular", + "proTxHash": "d6416d6981756be8cbffd11d65eaf84e64fd12715c6b4d76b5bb02ec45f421e1", + "collateralHash": "2d1bcb0c08d3fccd66cda657fb4034cd52c356556b8dc717b520bd5040fdce14", + "collateralIndex": 1, + "collateralAddress": "XkeK7tdeC1CTP7NELeH6tCymj9GwRtWeGC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.174:9999", + "registeredHeight": 1493220, + "lastPaidHeight": 2126884, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764882, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XppFxsaNM8mg3MurxJGQFfgiaNfFyvXxvF", + "votingAddress": "XppFxsaNM8mg3MurxJGQFfgiaNfFyvXxvF", + "payoutAddress": "XqWqqHFaAC7QhsYyMcFoQaaP3Vno7i7bdv", + "pubKeyOperator": "8768f19c7e03389fa860cd827306361a774e1d6effb98f1628d0b1bf910c4be08c443b008069483107d10ab6de0fe293" + } + }, + { + "type": "Regular", + "proTxHash": "85ca07dc2107988d0903d144006743d29e8701c6d90c3e46b6e8cdf60f6f738f", + "collateralHash": "a9484157efe16f371165745c418e4da5b5f34ecb62a6f2c945be09ac63b7f889", + "collateralIndex": 1, + "collateralAddress": "XhKLmUCckXLkB6wFrhYvXmPuFv18MAUkj2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.176:9999", + "registeredHeight": 1493220, + "lastPaidHeight": 2125850, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XezGZvAizeUnRNZpBAFQvPySXmVqnoMoJ5", + "votingAddress": "XezGZvAizeUnRNZpBAFQvPySXmVqnoMoJ5", + "payoutAddress": "XnLNFfySfNMYA6XVe9G65WZ8YNi6V5KZxq", + "pubKeyOperator": "02948eaa492197367edfb0605592a7aaaf0058bec71b090af483dfc0f9bde93b4915a9cb8decf2d85eb692b50959b649" + } + }, + { + "type": "Regular", + "proTxHash": "4e2fb474e997448f9d1e2e6c29e80a8ab6ec512d90dc75515997de7434bfaeed", + "collateralHash": "5d74e92fb74c05186d575168bdb9137dc0aa5cf6e91542e81454a8cfe23bb867", + "collateralIndex": 0, + "collateralAddress": "Xix2ZNCfhyAxyLs7CEUK8BmpFFNF3UKCmt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.177:9999", + "registeredHeight": 1493220, + "lastPaidHeight": 2125858, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdvYS46fGmC3B1omUmW9Jg1nQddpnKpwVa", + "votingAddress": "XdvYS46fGmC3B1omUmW9Jg1nQddpnKpwVa", + "payoutAddress": "Xnvg4gDDn71sTXK694WDxDgzAuytEqE3YW", + "pubKeyOperator": "120b14f4629acf7b553f8479253baed15cc9297f4e31998045928b9f35353df3ef10064e1fb6b929da934461babc9701" + } + }, + { + "type": "Regular", + "proTxHash": "8ea0bbc4c97280466cff584a7a5bba3cff590afd824be1cfac0bfe009292f1fa", + "collateralHash": "ee06d5b70c2c4067403bc98f6027068208a3ac6dfb3b46551d867b57388ba11f", + "collateralIndex": 1, + "collateralAddress": "Xviwg4J6Uq4wydYRwLbvdRwkZ8fjbd1qWq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.175:9999", + "registeredHeight": 1493220, + "lastPaidHeight": 2125859, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxhg8MU1pW7gXu5RHNFGYDyxKrqkvoruHt", + "votingAddress": "Xxhg8MU1pW7gXu5RHNFGYDyxKrqkvoruHt", + "payoutAddress": "XauSbEPd9ZoEAvyrbFHwxc53Rdg2Bt55iY", + "pubKeyOperator": "17f503d6cbba6a52216176aa05eeef22964ab41ebf96da0d0473e7b506f3a19da06521793cef82b438b08fe3b31f72fd" + } + }, + { + "type": "Regular", + "proTxHash": "15ae6a9dc8cd00b971cfbe284984a01f4b4a12d1a234552f186eff94cebad3f4", + "collateralHash": "b01658a525392e84f7684d4330ab492801b8c88eead65b818d48b04e9ef0e8dd", + "collateralIndex": 1, + "collateralAddress": "XjFyKyCtCRKEhhdJxj4FJf4XoqzsCQmWC6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.178:9999", + "registeredHeight": 1493226, + "lastPaidHeight": 2125741, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1582145, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh6J149b5ayaat9MpJCYocJaXMH9aHFsTr", + "votingAddress": "Xh6J149b5ayaat9MpJCYocJaXMH9aHFsTr", + "payoutAddress": "Xvfg3PgaRSgA5y4JJHmr74uLdYT5v9Daa7", + "pubKeyOperator": "12aab2ccf75f3e5e0e545f97cb4423d14a2c7dbc5ed52281c63b8ed4e3da3561f0f1ad38b78ed184558303525a19b79e" + } + }, + { + "type": "Regular", + "proTxHash": "9c1a949fae0c9fa3d402b7fcaf4dfd8ab7c303df6c07b8789b161f4894fb3dda", + "collateralHash": "52a3cd494a839214c85bd4fe2c3a5b701925827b83e90a7d21d0dcb71dad8967", + "collateralIndex": 0, + "collateralAddress": "XnbCa7DHdqCH41LdaZ73pyw5nyu3YsCBSR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.92.57:9999", + "registeredHeight": 1493245, + "lastPaidHeight": 2125865, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XicquhMCYGeaNdJzyqY127TqR1yemobPtp", + "votingAddress": "Xrjy5aQmpk5N6ryu52PPvxhqxKX2jdD7GG", + "payoutAddress": "XpXTHpJWcNzrrd1n4tP87tX628Z97rfhhg", + "pubKeyOperator": "90f1cdbcc85e2b5fe6913f362290ab9a1d6c959f9afb8017b49d3781cfdab286c9b17df4dbb19c6dc45a31dc72f30069" + } + }, + { + "type": "Regular", + "proTxHash": "f767cafd7cad5b1fa44e63f5b63f258169e547ef23a527a9bc220debd5e1487c", + "collateralHash": "7585a90ea5032884b4bf5ae67fff6ee7183fdf2c00d192f7f2d9efac758ee06a", + "collateralIndex": 1, + "collateralAddress": "XhWeAGBpB4rnbCNV2tSpo66o7LzBUqC2s8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.79:9999", + "registeredHeight": 1494243, + "lastPaidHeight": 2127587, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1700378, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpEghtpL4C2V6t9MatQHAF5pZASP3oeDfo", + "votingAddress": "XpEghtpL4C2V6t9MatQHAF5pZASP3oeDfo", + "payoutAddress": "Xmxukrf9QvvdaTTVaZjjxZzw4jaiEDdWzR", + "pubKeyOperator": "03e8076dab8cb1a1a70244754b23408018fdd84d09b7442b002dfe15e7e9cf7110573f5462edd4029ca7c64fd2845c55" + } + }, + { + "type": "Regular", + "proTxHash": "3ac528737c5a3746567283f25cf4aad5e5ca18b2669cc99420462f8f80c307de", + "collateralHash": "088d010322f499526b2dfef9f1633b842884c8029189d9f8b0d308f45fe469f4", + "collateralIndex": 1, + "collateralAddress": "XuK7uTDFKg8qNDU4qcT3vvSwXWLK9hqAJ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.80:9999", + "registeredHeight": 1494244, + "lastPaidHeight": 2126540, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpN1dU8WAnHsrpCz466sEHTWPmfguxxwGB", + "votingAddress": "XpN1dU8WAnHsrpCz466sEHTWPmfguxxwGB", + "payoutAddress": "XnnpWBiB9FqXpxmZvJ8zXTAjdQkNLVFruG", + "pubKeyOperator": "0e2f6959b65c03a8f9417f274f92e13c40238ffade284dbc5099f3b0e8d3ab961cfc9f5e24302edb64583e2d7d71bb18" + } + }, + { + "type": "Regular", + "proTxHash": "fb293076323123bb55908380e482b06d59b2ac8344e2a6b9dfeb5c491544a35a", + "collateralHash": "3465d221e1bf215b4bcdb60eaa0f577cf09947d50a242089b75cfeec42df9ea9", + "collateralIndex": 1, + "collateralAddress": "Xyp6z5bhwWqzjS7nLdwafX3mGLXytKsCYc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.81:9999", + "registeredHeight": 1494247, + "lastPaidHeight": 2126543, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhmbVkVa7tNg8hdt7yZQe926uRUoeGQtSZ", + "votingAddress": "XhmbVkVa7tNg8hdt7yZQe926uRUoeGQtSZ", + "payoutAddress": "XiKtserPvALa66hKUBdE6TVdwc6qiSgdPr", + "pubKeyOperator": "964d9ad3cb892f3ee50a570a001063fb3e9e1541032637df7201e0963b21cdd15fcad6a5c52f637276c9dd0d53c2a34c" + } + }, + { + "type": "Regular", + "proTxHash": "6db4ef0ae2032d72bb32f3e9587513d4729126fc205bdf0d8a1d70f83827e477", + "collateralHash": "d184e21201ff28821fd8da98a708f8ef2a6a17a8c2b0666d8653d32a053efb69", + "collateralIndex": 1, + "collateralAddress": "Xdf2hnYeei7pw8zucjPW1qH7YGML85MTxq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.6.112:9999", + "registeredHeight": 1494384, + "lastPaidHeight": 1798954, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1801836, + "revocationReason": 0, + "ownerAddress": "XnyrGGPJqLpF4Sk9MpnfkPxcTwC71MesyB", + "votingAddress": "XnyrGGPJqLpF4Sk9MpnfkPxcTwC71MesyB", + "payoutAddress": "XmkUTCdHr1o6G6EomaV9xDA5DqQV1SrLA6", + "pubKeyOperator": "1130455b00034d7cbcef899d3ca03ffbc44c361e950db2c04de3cad0cb49d7004a832e85ab7f5773ecb13282ebdb422f" + } + }, + { + "type": "Regular", + "proTxHash": "b915b0cb814618214774f0a55e7aa1c5723dab32c0517fb55d7ca00bc052553e", + "collateralHash": "7c4d3b86c967bc062fdb46a259611ff88b3894ec310225bc780cb2f860c8d6d8", + "collateralIndex": 1, + "collateralAddress": "Xpzpn1vovZEWeyLXKbh4BZcFCvT4XfNUf4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "49.12.42.249:9999", + "registeredHeight": 1494390, + "lastPaidHeight": 1799264, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1802325, + "revocationReason": 0, + "ownerAddress": "XdQsnRcXay1WSk5GGKqhyfkXYNS5TXyrS3", + "votingAddress": "XdQsnRcXay1WSk5GGKqhyfkXYNS5TXyrS3", + "payoutAddress": "XcAyfWm4sFUqBoga6MrhWvMkPYHzP1PJCv", + "pubKeyOperator": "11100e8d65f8bf098b06a4515b0e4e9df313afa04eaa959477f9fbcfefb2ad46e80e1d0cc06f4cd7bc16a777fb172224" + } + }, + { + "type": "Regular", + "proTxHash": "f8afad425980b9699b9fbf31cf887e64bb0c30233472f3bbb5add4373a3e5e93", + "collateralHash": "64eb0844b54a94ed16759c8676446c0ba851a4da5e3ff015bcd67047be970e85", + "collateralIndex": 1, + "collateralAddress": "Xkn9t3dC4E4w4szhocmb2gxbwqH2bQyBpR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "195.201.96.22:9999", + "registeredHeight": 1494390, + "lastPaidHeight": 1798958, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1801770, + "revocationReason": 0, + "ownerAddress": "Xduy3nzW5RowkXrsgPMzYTFbLJC7z64Qsu", + "votingAddress": "Xduy3nzW5RowkXrsgPMzYTFbLJC7z64Qsu", + "payoutAddress": "XbJXpkSKjrYBcEYR2Xba9ExX2MNHjUrVkM", + "pubKeyOperator": "872e88ab15ac663ba9aefff28a7e4b17270f9d4b62bff63f16d9a412c5fad040286f4f6c49e9965ae79696bf847446dc" + } + }, + { + "type": "Regular", + "proTxHash": "4e600745070b126d6f86158ab87ac1bbed21a185c1666cb8d61d1429b827bf22", + "collateralHash": "fe0f20bee08370b67be8612b26e82dd44c218e96cd08b1583ae53dae9c8e49fa", + "collateralIndex": 1, + "collateralAddress": "XyTiaR2UhJqLFCVWPsSdJn2shyc1Sxdqcc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.90.155.176:9999", + "registeredHeight": 1494399, + "lastPaidHeight": 1798964, + "consecutivePayments": 0, + "PoSePenalty": 4445, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1801979, + "revocationReason": 0, + "ownerAddress": "Xj2jRuRyZE4vAgqadAzLszmduiR1Mh1Fnh", + "votingAddress": "Xj2jRuRyZE4vAgqadAzLszmduiR1Mh1Fnh", + "payoutAddress": "XvYaGtVMUQsWzYovsb2scLk1fd68C4H6xz", + "pubKeyOperator": "93e4b579580c98e3607511fe9f199b3eb5b17a57123ddf7f87413705f2c5006c0207a836d51cc01f47d333ba8e1cd349" + } + }, + { + "type": "Regular", + "proTxHash": "ef637dc57d15bc6f7184d2bb1b8ec7d1b1585b0394d27e228f638dfb5ec315ae", + "collateralHash": "6a1e131fd536eeaca0397b4bd6c55fb1e62c5cff7f6ebc69d15e447dca74a1ee", + "collateralIndex": 1, + "collateralAddress": "XkCRcy89JwxJTkef2xcqUYyWv7GAULg9Fo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.175.128:9999", + "registeredHeight": 1494408, + "lastPaidHeight": 1799269, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1802325, + "revocationReason": 0, + "ownerAddress": "XvKepUgC9kHxX8bJEJbDSUnnYvCcMdBwxZ", + "votingAddress": "XvKepUgC9kHxX8bJEJbDSUnnYvCcMdBwxZ", + "payoutAddress": "Xu99HA771rszyRJkLqEPeHE8tAyWzPo3KB", + "pubKeyOperator": "1063d558d66383f8b7d1542aafa1e0330748a63cedea6f30947f86bad9caba906c75b5eb358acf9d5c35f3e623d55513" + } + }, + { + "type": "Regular", + "proTxHash": "5ac78e0eec346c22c5dbe05f4c70a97468df327a2d659134d387f8882d4f8f17", + "collateralHash": "4cfe509fae1d20d59856bd1aaa73041858ac0569b534a764c06d845beecc3649", + "collateralIndex": 1, + "collateralAddress": "Xf3TqgpKFaqtfxTPyf2vqygh51oYWDhUvP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.202.96.104:9999", + "registeredHeight": 1494414, + "lastPaidHeight": 1798973, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1802058, + "revocationReason": 0, + "ownerAddress": "Xar2domuiDbiq2aw7NptrEjvHZTUv2hqy7", + "votingAddress": "Xar2domuiDbiq2aw7NptrEjvHZTUv2hqy7", + "payoutAddress": "XsBGAXx57APDcArkcztv4bU7iYMwiyBNvW", + "pubKeyOperator": "8d5a1a345350220dfb51f47a2bf9951c78a3008a321067ae7d532eafa1c65a325bc3b3ab6f6d8a1c7cecf015aebe13f9" + } + }, + { + "type": "Regular", + "proTxHash": "a4513d11fa164a26e050f3ff53f4c80b6bbcead3c98c9416f00777a05a8ddfc7", + "collateralHash": "f0417d6a1fbc305360f39a2a85f40bfcbeb417cf9827df003e6e49eab5ade614", + "collateralIndex": 1, + "collateralAddress": "Xuybaa4Rt4QX7DU9WikuueXkdgCUmaNADx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.47.19.135:9999", + "registeredHeight": 1494414, + "lastPaidHeight": 1798976, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1802038, + "revocationReason": 0, + "ownerAddress": "XcnzRghDisWABW1Xdmi1gknFH8EUpBmyai", + "votingAddress": "XcnzRghDisWABW1Xdmi1gknFH8EUpBmyai", + "payoutAddress": "XiRFe5LcvaaBDZdywWVyWNfbD9q6mZngqS", + "pubKeyOperator": "865bc562957a1596cfbde13bd70612ccbad3da974b9976675fc624e1901e7bb33277814fa52d0cd18f2a3efa66293c93" + } + }, + { + "type": "Regular", + "proTxHash": "1fca19d74b3a0dcc4f7cd4d78aa06738f705f14a6500742f5823ebd8506cb5ca", + "collateralHash": "790e14fabbd065baaee25099d641cbd73b4d2eb2579a5c1ac562478948c4a0f4", + "collateralIndex": 1, + "collateralAddress": "XqENbFJSqeGXPSoUb9vw5hFBEg2LmbQBzw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.200.160:9999", + "registeredHeight": 1494414, + "lastPaidHeight": 1799270, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": 1703584, + "PoSeBanHeight": 1802058, + "revocationReason": 0, + "ownerAddress": "XukjMU89ti3LMHsaW9nBmkfmYfBTqQZugD", + "votingAddress": "XukjMU89ti3LMHsaW9nBmkfmYfBTqQZugD", + "payoutAddress": "XutLkmsuvW9gndZtr29b37RD6M6riZP7Ec", + "pubKeyOperator": "85466e40f04220def01723630e35fdbb108358ce905affe0e1e50891ddbeb4ba6b4eb969423c65a0bd862b7c2e2f6563" + } + }, + { + "type": "Regular", + "proTxHash": "cf61ba8d86dedcdd877df83bea30be4720db354466e6e57594e86f5a3e4498b4", + "collateralHash": "19ee20ac8fe046b06a40aeb03104a3755d66f7ff4fd7913ff946b933079ef137", + "collateralIndex": 1, + "collateralAddress": "XuiD7HFi3U1Nx1fmTW3oTtHcjd9opxdSbh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.202.102.108:9999", + "registeredHeight": 1494439, + "lastPaidHeight": 1798998, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1802483, + "revocationReason": 0, + "ownerAddress": "XqMhpiTHJTTCyUptRgCDWz9AJ8KviGqrkX", + "votingAddress": "XqMhpiTHJTTCyUptRgCDWz9AJ8KviGqrkX", + "payoutAddress": "Xks6doYMSAEhbUrKTjmycEvCkrXwR7ZuAa", + "pubKeyOperator": "02025da22b4c39a1843ac6fb08287dea4c8c8b2ece873cfb215d2d9ea4500cf9fc4d152ad0cf7754af2eb63277f90156" + } + }, + { + "type": "Regular", + "proTxHash": "eff2e58c7e4385b70989e486d4409e0e6d7eec85ee7c068b12c679635237acdb", + "collateralHash": "229b0502b165b232929bb36db028dfb6ca74622abb3610cc534b586e2806db63", + "collateralIndex": 1, + "collateralAddress": "XtLF2Y2ZZZi15ECeZi7UQCehQ6wBwpECVH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.111.216:9999", + "registeredHeight": 1494446, + "lastPaidHeight": 1799001, + "consecutivePayments": 0, + "PoSePenalty": 4446, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1801770, + "revocationReason": 0, + "ownerAddress": "Xky4fBwk5qs4o4GS2JuYJy1Sg27yg7E1f9", + "votingAddress": "Xky4fBwk5qs4o4GS2JuYJy1Sg27yg7E1f9", + "payoutAddress": "Xx2M33EH3A8nFnwvEkXLzuuseti9eqpdPU", + "pubKeyOperator": "84b8dd4ac8fa5b11d6966dac8b62b05d9042d0d24b7714bc45fd7890b7fa1814587f0d67b1d060a9f11b6acffbd58da9" + } + }, + { + "type": "Regular", + "proTxHash": "d6007375c34eeeb3725e037e7fc095b7cb1f06f663b386bc131f06d53d8ebffb", + "collateralHash": "37ac793c8042a28b3e331455a8ce9c7c991891b18866eb2743983ef4ee18901d", + "collateralIndex": 1, + "collateralAddress": "XhgsHH4HBRL8xFqsUktzGexZMEohSN2eMQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.18:9999", + "registeredHeight": 1494728, + "lastPaidHeight": 2126926, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfoTdD1EvfuuHGVJ8GSrK9ywbwp6mQ1yzZ", + "votingAddress": "XuNp28qzkm9CEFsySAftgoJjH5G6bSPcRR", + "payoutAddress": "XhBhW8zwesbbG32NrqMqtZhCZvJnFqgCov", + "pubKeyOperator": "8d27644c984938ca471fb8eebae76114b17ab43bfa1e726cf50b335f26f39d2d5faa0aa3db3bb2c6bb94e2c027d25f3a" + } + }, + { + "type": "Regular", + "proTxHash": "a996057cea02fe0bee6543769635bbd89fc3e569ce966470098cd988228385ce", + "collateralHash": "ba2974bec4104d6177d4c883797fafa50a222cb17f7d2e04ae383b0746a43efe", + "collateralIndex": 1, + "collateralAddress": "XfeZU6ngnX8qm9gPVroVVg78aDqHxjg7fX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.215.116:9999", + "registeredHeight": 1494964, + "lastPaidHeight": 2127084, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsZKeaAiEn7xoQnV4kC6GQZJCXxnycm9Ym", + "votingAddress": "Xfce9Rvqaiio9d6STFNSkxLHZXWtBEne2h", + "payoutAddress": "XcoXH3ETjL9pNPbZ3gBANSTz24tX2Pntbp", + "pubKeyOperator": "82753af03f0f2914b4f5a3310cf0cd5e214cffeeee32b1b710c2183aec65dc707402726df2586536c7c92a5ad8c74326" + } + }, + { + "type": "Regular", + "proTxHash": "475c0434d16c40762674c164f47539c0c156938a178143917d15805c3956833e", + "collateralHash": "bf5f12702638b6451676aa4b6756dd4454ba3110022cf46f048861a4303bf56a", + "collateralIndex": 0, + "collateralAddress": "Xwf8Sir6r743zX72VJ8VAyXzATtmRJt2bL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.240.34:9999", + "registeredHeight": 1495515, + "lastPaidHeight": 2127507, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu3v7TVpGiiftZQqp5JfJButtHWXEupQCA", + "votingAddress": "Xev65kJ4Zn5Dn8yFvPFS5euzMujoto25Zk", + "payoutAddress": "XbzY9AwghouSDeuRwoz5mE93vCwbMfN3kN", + "pubKeyOperator": "8f0d0e77c43734579c9cddb79d7c1f1d37248b1327bcb24c065dd36989338dd1cb5417f12ae8d06bc351713279c8ff2f" + } + }, + { + "type": "Regular", + "proTxHash": "30ec16a89541db24bb48fe224332fea37c1b33614cb226f95875dfcb24e33eb4", + "collateralHash": "dd452b2c749ae441adb75d05575207369441a6ba99fa5777c03de3f25cc77146", + "collateralIndex": 0, + "collateralAddress": "XyuKyUFRTt4qeArpBwA1jNDn3k8EFqRSn2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.17.79:9999", + "registeredHeight": 1495520, + "lastPaidHeight": 2127520, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1819052, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxaY1zgGfUsVLBubenAWDBwiDu9DtmmCq4", + "votingAddress": "XrhYQm5UST6RzizNaeURbxUr8BzPYWCa85", + "payoutAddress": "XfDRLt9SCK86AQK33B3zU51DpecKtouo9o", + "pubKeyOperator": "043376ad6a2bb51c1d4805809282fb62d43199157615f580cfb4e7f1e465877ab35df52a50eab851a19ece461571345a" + } + }, + { + "type": "Regular", + "proTxHash": "4089f0ea972dcb9a1a8f2b315e218103950b3a95a8fb01f318f73b04610df800", + "collateralHash": "f31b1861d6b0289f73ba2ec282688133e9ea455a1ee751f59d55004e31638f9b", + "collateralIndex": 1, + "collateralAddress": "XmmC15cRfRD8mSTXN3tNtx3CwjDkp689YC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.108:9999", + "registeredHeight": 1495979, + "lastPaidHeight": 2126012, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1948665, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XczSSJu9S1SP5FwGm6UYMWMoZ7nxgyH7o4", + "votingAddress": "XczSSJu9S1SP5FwGm6UYMWMoZ7nxgyH7o4", + "payoutAddress": "Xn757SZsKRprKqQhv6up51DuXcYoFtp47R", + "pubKeyOperator": "8641281cb35d748c72e4c631f9bf7a1e006340c3ca2e7452b1c262c9b327fe508ec6119be160dac4b7b6392dbe02e857" + } + }, + { + "type": "Regular", + "proTxHash": "07a996e87af481d642233f35b0d5fb96ace3260df69e8a1b416da3a2d81084f1", + "collateralHash": "0f65b7270683dde42bb7980000416ffb5cc7c8603794afe5e501502c1d0d8d82", + "collateralIndex": 0, + "collateralAddress": "XpETGKeZtUMzQTyUV1XKDewkg4io9soP7G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.103.234:9999", + "registeredHeight": 1496167, + "lastPaidHeight": 2128043, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsqqeHdaRxDtZKBTjoaeF2r96HxzsFLm1Q", + "votingAddress": "XpoFhccBwKkNam9HHRQSEnRTWHSCrhHR72", + "payoutAddress": "XsbkyCU59V4bCghGMTdcE4SJVTt7wDJqmc", + "pubKeyOperator": "82745da7c370aa420e03f4a3d4e3959e1a42bffef43ae3cc00c6618838d6c6cbd973e4a30ddd7a8b8a0cdfcc41166fbf" + } + }, + { + "type": "Regular", + "proTxHash": "56a3e3fd7ecf368015146844e200fade94491fcd8f4d73fb4d2d4f37271e7cce", + "collateralHash": "ff212fb703eaf58e1efe2a8c26e820dc2fec9523a51faeacf8b053bd1ec9aee6", + "collateralIndex": 1, + "collateralAddress": "XtHn6pBirSHen744wYsLHrfZhTujYNWKfT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.242:9999", + "registeredHeight": 1497209, + "lastPaidHeight": 2126260, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1537621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfwFmJb3qYa51NtwTJ3FB22hsxgEsDrVZX", + "votingAddress": "Xb6yEaWUzA2FWm9ZjJb2pBuXbS82vGacTN", + "payoutAddress": "XbEWvwoS5garKc5wjzDRJZqMrxt1heytSJ", + "pubKeyOperator": "96ee4ab7bfd67ba1a334ebd6960267bfd765f8e115f04cf58007c9c94bba56114c81a4a7be4d62d55d1a160aa3db29ab" + } + }, + { + "type": "Regular", + "proTxHash": "df3d8c581088ef499b998645469f810398d65e1834c6e342de5d891156fd2b1e", + "collateralHash": "7c1a7e0bf83d2b45f35b81245f69d4a38ff57867defcdd287dca4ee5d1cf9415", + "collateralIndex": 0, + "collateralAddress": "XdbxA55QeqFmgPjHa4GDfHaSHR7JfzjvSK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.233:9999", + "registeredHeight": 1499977, + "lastPaidHeight": 2127767, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeVuCqEkpeX3hMgZTdeyRVnvvfuB3B7NxM", + "votingAddress": "XrNARSZScvQJruygHDqUNF4hJL9JrFBiRN", + "payoutAddress": "XdZ5CQ8HGyZGMZ2CqbMjZAyWRGSAPFhfjY", + "pubKeyOperator": "11c34092e69a3022a74aede93adeefafab6e098a57779f13489a6a3ca13c05772c41b89394dfa0214f1adb08a29b1b6f" + } + }, + { + "type": "Regular", + "proTxHash": "2aa11d14c9e4e5f541f647868a992a53eb9e56ae48a78b96b23b525e8774b3c4", + "collateralHash": "43e811e85d243dc481decace5fbb16257ef7814e1e7d21f218123345f8ae5a48", + "collateralIndex": 1, + "collateralAddress": "XgMYfVf6T6QfnhRTk3YUGWZp8Do6ovM82H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.113.202:9999", + "registeredHeight": 1500968, + "lastPaidHeight": 2128612, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoAVuCMwzXmH8Lq4ZWpqoXnHDGbQTc4G6H", + "votingAddress": "XwSz2ZMFyrrRJpL1ZuYtT7u7SnxWNbNGtA", + "payoutAddress": "XgMYfVf6T6QfnhRTk3YUGWZp8Do6ovM82H", + "pubKeyOperator": "8b8e4eb655a930f9fd22e68a8d985631659d06f3465ae0ecec620622fbf78833467ebeb3e1c5aad6da0b3ad14b3f5b1b" + } + }, + { + "type": "Regular", + "proTxHash": "f915070f3e10631bf9e1beb0af6c95c0c4b82182aed01ec0c17755fd2554dda2", + "collateralHash": "2364e72639d7dd6d4bf64873814eb1105ec756f74c2e531519e0471516990db3", + "collateralIndex": 1, + "collateralAddress": "Xp6BUMkTGjToSXeKzorWWWnTPTVMhJCrSw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.106.130:9999", + "registeredHeight": 1500977, + "lastPaidHeight": 2127613, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1979756, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmvWsqHdXcenC7zchHSoKhahe1XuVJ29Yr", + "votingAddress": "Xq4fYU2hEL1WQu21UHbxgtrhhQkp3AazFn", + "payoutAddress": "Xp6BUMkTGjToSXeKzorWWWnTPTVMhJCrSw", + "pubKeyOperator": "120f721cab43774a50bfa47f7623b87ec0b430fe90fc942733fdf6d684a1341f963daf2ed719774dfca01bb4cd814575" + } + }, + { + "type": "Regular", + "proTxHash": "b3153329f815446a806d0393f3778e43fd3fd4fcb1d74a786be0201852399bd7", + "collateralHash": "276485f257590ab4d158003a62ac8ec378e2728e6dcc17fe35420592655a3613", + "collateralIndex": 1, + "collateralAddress": "XoeHR5ZGjATZquPa1h9uBCqGyGQeEv6odN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.136.218:9999", + "registeredHeight": 1502558, + "lastPaidHeight": 2126453, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi3pWTVkrTqZwV8jZ7PAGL2KWjnGTvGFXY", + "votingAddress": "XjDVcmL1MiJAwS8ktDw8ELAwfLsT9b8rHp", + "payoutAddress": "XgQDdttHsx2dCeakheez6KQy26UHwzmgdd", + "pubKeyOperator": "10a65e71faae33d9d167b20d271f9d5a50bea0a711b2601b1e40960e7197c4b3cf4abe760893c16d8e4f0cd6d10571b0" + } + }, + { + "type": "Regular", + "proTxHash": "87990e8f3c0e442d98bdef32e6f870ba4b22656634a2a833cb316a918559df05", + "collateralHash": "0414d0182e68c10fbe708136e3103c2e7b37b0e1af7a800ac821e39fa9790cc1", + "collateralIndex": 1, + "collateralAddress": "XkhfwwZKUTwzE5eZ5fULh4fCcbmD3VegNb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.111.111:9999", + "registeredHeight": 1502983, + "lastPaidHeight": 1803927, + "consecutivePayments": 0, + "PoSePenalty": 4445, + "PoSeRevivedHeight": 1822778, + "PoSeBanHeight": 1824810, + "revocationReason": 0, + "ownerAddress": "XoB6tw31QdkYpThre1Uo49b7uvtWJbYssX", + "votingAddress": "XvmGWjSieBj7gnjDgfXKetEdareJD2gyRN", + "payoutAddress": "Xr5pXn9NscCgz8uHwq1yH2m9TNmUzpNZa6", + "pubKeyOperator": "1641e02bd394169ffc582c2bbded13599a1312574641d61a3b559be849a5267719d03b6a488eae0bfbaf9c4953bdb393" + } + }, + { + "type": "Regular", + "proTxHash": "bb888603f5df510dee2c97dbc30a6dbb11e2e68533f4cd3cae08f263f587cccd", + "collateralHash": "590d1e9e26e999ffff950442ffa3af8ccc40e3df7b638494101eb43d33ffa9f2", + "collateralIndex": 1, + "collateralAddress": "XpFMjr9p88jCBZPz3nXsooy9LiEgGK6RCn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "58.121.229.25:9999", + "registeredHeight": 1503104, + "lastPaidHeight": 1872959, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1733165, + "PoSeBanHeight": 1873482, + "revocationReason": 0, + "ownerAddress": "XmSgM4sqZVFQn43SJoPz2mj6MeVkBHLk2u", + "votingAddress": "XdsEY2ESHKxbyYSzvnw2fFDoUqtHKtuiVc", + "payoutAddress": "XpFMjr9p88jCBZPz3nXsooy9LiEgGK6RCn", + "pubKeyOperator": "9421efc6d1085e2d1bde085b7829c7540f15d56a694fb954770edf8c86fe5fb4574b479ba2ec92a2620ae76dd24b21d5" + } + }, + { + "type": "Regular", + "proTxHash": "19d5a3796aa4d92b79e28406e94db3f8eabcaaeeebf750d60e8cd7fec00ee332", + "collateralHash": "d455d9ae3c63ab9676f2233c5a58b3587437919567a06e0d54f0760c5423388f", + "collateralIndex": 0, + "collateralAddress": "Xd1MhtVG2TumwfiSEcRaDfrbZasDjHMuwN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.147:9999", + "registeredHeight": 1503919, + "lastPaidHeight": 2127412, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPWQf6xSNKi7aHk8dXP1xbd1UqkSv64ST", + "votingAddress": "XfVq1pMvEz6whP7EQHPQ85Z43mCkK6gZPz", + "payoutAddress": "Xd1MhtVG2TumwfiSEcRaDfrbZasDjHMuwN", + "pubKeyOperator": "01d01a64d62004661b11485e01dda1fa9c3bbd82b87627bc30a4068f5520ad6094f2f7e3817751eb13bd67e51a395d5a" + } + }, + { + "type": "Regular", + "proTxHash": "938ad4661db04615f397515b2fcd2dead58678438d7fedf73a5a8cf8555d3a85", + "collateralHash": "2bfc0245f3a637458442bfd8f06f91f91b595dbf54f4b13827e9a977b6e99471", + "collateralIndex": 1, + "collateralAddress": "XteMg74CKS2vHVthU6zX7SW27Kc3m8Q9n4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.21.254.231:9999", + "registeredHeight": 1504304, + "lastPaidHeight": 2128464, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122166, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhfZyW2ruLBMDpaf5gfEBqzhf6RsVZfR7Q", + "votingAddress": "XhfZyW2ruLBMDpaf5gfEBqzhf6RsVZfR7Q", + "payoutAddress": "XdM1jHhod729WuhrhqwqKbuunheVU52nKM", + "pubKeyOperator": "99b1710f8b4edbe35de42d26a3bd02589a4c4ea038243f86f298480220b9858ea4e25a7ef2e2510c352bd6b1e2b12f86" + } + }, + { + "type": "Regular", + "proTxHash": "088bdc297abfc8abd0e588f4c99b31c7326f962733e23538d86d5e474a0d8ac1", + "collateralHash": "08793220de15156f7bcd14985ce3968bd1bf4adb7616c3f7b5330d5c2fb9839d", + "collateralIndex": 1, + "collateralAddress": "XtcDfDkQNCgADKsDBWnEhmeb1U4uEiSpoX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.34:9999", + "registeredHeight": 1505154, + "lastPaidHeight": 2128501, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkRNfeJuRE9Q3hG6ASnRGRyveuEJPxzUTc", + "votingAddress": "XfFEK2AenVACH91WjLjdD2Ew8uv3crDGsB", + "payoutAddress": "XvWQGWp7rquJDEPJBA21XHpb552nawj9Jp", + "pubKeyOperator": "008df8d312d282e65f5d803add748676e6b6024e6b9801e775a2ab42c7123f228094dd08adab86095adf7c6ea75a33d7" + } + }, + { + "type": "Regular", + "proTxHash": "eb0a93c49d3a8e088dcf9c5dfa48bb21047b8106c58529da106a18916bdf1b8e", + "collateralHash": "6021743875dffa57b1c5a8160155ef9a34c76f6691842c79472eb9890e9a9e32", + "collateralIndex": 1, + "collateralAddress": "XkaUBUxuyXLQK3pNwPnWgQkagr779TTvH6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.18:9999", + "registeredHeight": 1505154, + "lastPaidHeight": 2128499, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc8HPEhk5KpgrwawWcpcJWcHEfgxaxCAHa", + "votingAddress": "Xc75URAchsRu3mBbtYazmsW1ntrR49UzrH", + "payoutAddress": "XnUBhHzUYcMkPnFpnrfcQBkkpzKShQeFoH", + "pubKeyOperator": "10f116340f4159ccb144f89ba2fba539ee99fd95657a12cc04b59c510c3b03ac6f72fb2b099e001b69dc78060c9c8bd7" + } + }, + { + "type": "Regular", + "proTxHash": "1384c6f7453b887ddc7c64d6a96895b6ce4e45dcfa7bdfd99d6023f99346bb06", + "collateralHash": "e0b887c27f8d9be92dd90854be2a25eb31e6f1b66af91d67c71701e5b897d9aa", + "collateralIndex": 1, + "collateralAddress": "Xf3iTyhAWtUAcUQcPLAdF62FsQ9BVHm8PL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.105:9999", + "registeredHeight": 1506377, + "lastPaidHeight": 2127990, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1688637, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrHYZ8wv4dWi9Tbu8Sck1mSHmGRULJwos3", + "votingAddress": "XvzKhxMeaWsHWFDcNhLyT7aQ2A99YDCfUv", + "payoutAddress": "XpZaEkTbzdrBaAhi5qz2R22QFYRMTnCtLn", + "pubKeyOperator": "815694faf9b834bab2f7627cadc845095af8c0319bcf5af5e0cf952734f775da4b619c3a008549ed45171a55a6f40e2e" + } + }, + { + "type": "Regular", + "proTxHash": "8fd257421cda2afd54b9376da01bd5f695028a9a3bb66b0785224cc63d06add5", + "collateralHash": "7ae87a4fec6fd7b6e6de6d1a2dafeeac9a9f10267664f23aa5f56076f0dd9270", + "collateralIndex": 1, + "collateralAddress": "XqRP3WSyNyZ4z6R982giR1wTZNyKomMMKJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.228.93:9999", + "registeredHeight": 1507189, + "lastPaidHeight": 2126687, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcyAkxQjhEBJJAFc3nVWC5GY2XTRsCqFCE", + "votingAddress": "XsdoEJxu1NoMBWZDUQafF5ZbwyhAywkWJH", + "payoutAddress": "XrWumoRbWutc1zqQBndPSm2uz2R2ZTUggo", + "pubKeyOperator": "8e0949c9bf4dece21c2c7eb78de4e50792db36de04592033da38111be5726931ce6252c9cedddb9f2df775a557d6184d" + } + }, + { + "type": "Regular", + "proTxHash": "ab84ebe52266a9a534b5d5add64af937d09698b0771e49bec24d98eb5e741955", + "collateralHash": "1b29605dd8f60ef493454bb5204d4841f4abbfb4b5c2bc22b35a611363f33f90", + "collateralIndex": 1, + "collateralAddress": "Xo8vRu1PPfwetAYBshZ2WhgoDNciFwDEQX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.93.211:9999", + "registeredHeight": 1507567, + "lastPaidHeight": 2128800, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977459, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsK5JfG5PnfY1D5vvq7wNKqZ9JyyyhqYse", + "votingAddress": "Xh5PpJHGw3QsXanG1kbSpDuFMcVNE5c66o", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "0bba5dc0e216fa128d8701d0ce4de39e2dc39f16a0a3ceeced7fcc89d17b65cee32362bc68b712bfc9cc5490c334c6e6" + } + }, + { + "type": "Regular", + "proTxHash": "a7a8be1fda31a5e5da66b80951a90beba7f0f39c300e524d89869fc40d33b5ca", + "collateralHash": "1baa4d1d35bac7ba7382099e5d7a7a607bd1c43c25fe4b2d9e213d415b1fa2dd", + "collateralIndex": 1, + "collateralAddress": "Xd9ppvtsPGdE7zDVmc6L5hijKaQzfLGHTN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.229.223:9999", + "registeredHeight": 1510768, + "lastPaidHeight": 2126205, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvuzretMXHCo4gncJ7u5agcVxqjRieuvsQ", + "votingAddress": "Xc6UJyUvToLjjPYpXPeaJ9bv6V8pjLwHjF", + "payoutAddress": "XvwdiUXXkXpwGPNpDtQjU4SSoTvcpdLX4N", + "pubKeyOperator": "8ebb6779f0a66b5cdf74bd15996ec1c44c571d34626775ca47499f24e2f670c9aa274a7868d28178b1e435c4964f4dec" + } + }, + { + "type": "Regular", + "proTxHash": "382449b3c7bd30b392da3a6a1aced45107465b3b9400b6e5847b492d0243bc1b", + "collateralHash": "5ac211b96327a534a0a50c470497a243f7c70572e445d7795d7514657d20cf68", + "collateralIndex": 1, + "collateralAddress": "Xau4DuB7Fc9hK4JKPwmeTmyawxgbh4bL2e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.137.11.31:9999", + "registeredHeight": 1512645, + "lastPaidHeight": 2117752, + "consecutivePayments": 0, + "PoSePenalty": 3835, + "PoSeRevivedHeight": 2019646, + "PoSeBanHeight": 2120586, + "revocationReason": 0, + "ownerAddress": "Xn9e13J1DdG7V6vCDCcZivS4CAd64mS7vs", + "votingAddress": "XchZNKJTrrcrgT4j6A5uVzaX7TuhipGSPv", + "payoutAddress": "XvLo4MX32Wcuc5C8A1pvgTtZtAZF2oKuyd", + "pubKeyOperator": "06b22ad4aa5e96e4dce8dc84e0984e4aeb0e35ac47d548319ecf325b8d3a471cfeab135395fd7989f89794efcb982e3b" + } + }, + { + "type": "Regular", + "proTxHash": "809adf607834e2cce39646c36969696e1ea7ba66a14c58bf83a04ca225826abd", + "collateralHash": "d696e667d5e8c666548eae2e2bf548fa508b1dc30e4cf22bdb95d05013ff7753", + "collateralIndex": 0, + "collateralAddress": "Xvik3ftxghEq246oDACkEyN9VYJK9PEBTW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.235:9999", + "registeredHeight": 1516565, + "lastPaidHeight": 2127194, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrX4sijtneJppiNHzxxPmAVq2Y8VM1wdwd", + "votingAddress": "XeF2NH4hbVDUc3u2oj43q6g5hq5duNdMZR", + "payoutAddress": "XiUSh8x6QxP5sCDHPTZf9rRZJWVNi6fnZ3", + "pubKeyOperator": "802c0e3c24631d68a0c90cdeb23f5389b31bed81fd545724291f62d2468ea44ee6d457285c70a2eb9937ff98ddf03438" + } + }, + { + "type": "Regular", + "proTxHash": "0bd97c542f920da1246152ef9f230e360cd3bad948c5fa1e47ec93f94037d203", + "collateralHash": "49c17605096e1239597a3b081ab42fba2a2a1ce3c2da0e8eb4d6a5887a8fa8d0", + "collateralIndex": 1, + "collateralAddress": "XmfyR5D39GwRs6VCmcrnoFzjEox5xnzb77", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.20:9999", + "registeredHeight": 1516751, + "lastPaidHeight": 2126598, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1665747, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmAtUc8QbbzNX5ydBswse6bfcQPTZFbb5P", + "votingAddress": "XmAtUc8QbbzNX5ydBswse6bfcQPTZFbb5P", + "payoutAddress": "Xr8dhdmn9rUNhSk9TPdSBkRqXqm6B7ZdHy", + "pubKeyOperator": "04713054fb14b3815a39e194c497fd21a0caf4725ad561e5124735a0a5aabaf64a1d059da0697040282a3f6d5d4226f1" + } + }, + { + "type": "Regular", + "proTxHash": "57caa25d697eef898eadc7b183e5fd76b53c3d3f965f63a8b715625565c61435", + "collateralHash": "75b72f532f873e9c6e8270e6c37122e6ab2b8a84e653ab9c513c1b2fa47566fb", + "collateralIndex": 1, + "collateralAddress": "XiNZ4voAy3asTxeqk8RamnctRFxHV7VPRi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.201:9999", + "registeredHeight": 1518081, + "lastPaidHeight": 2128595, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1714029, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw1zSGmMT3RGCLD5LmZ1mBTvx6M2bZJzj2", + "votingAddress": "XnmCDcUpQ7cKDXGLp9YZMRcHWDwPipb6xq", + "payoutAddress": "XcTmfx7hiBgcPr2Pp3fCscmXKDjp4S6JTU", + "pubKeyOperator": "91be2d40ef86ab5fbd03f362f81061aafa2e1a6be860cf4747e8a73b69f62b22f5c78771b82c1d9e78e55cf93b0755bc" + } + }, + { + "type": "Regular", + "proTxHash": "46a9114284da0aa87d97cdcf3840ac5f9a15b5c4fb8042d01ed0e0d0ba1640e8", + "collateralHash": "3513150b10c793df90dbe38f7934b87c4972cf6fbf65371bb5afc3f6274dd69b", + "collateralIndex": 1, + "collateralAddress": "Xn4wdkNA8AHh4EsdGhPWRbzUn9dirSogc5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.35.129:9999", + "registeredHeight": 1518097, + "lastPaidHeight": 2126425, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1844389, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwvG6RXB33zoX5tDGxTnkHKAPYNi2MzXNY", + "votingAddress": "Xj5UMZizojrLwZheRfZCWkVXdWaGEV7Mwr", + "payoutAddress": "XmyfuWWokjYfhzkJ3E4MHhsDXHHc8iK5Xu", + "pubKeyOperator": "013eef3f6f7ee1f67b89331f83566fc611ada0168bd540408f5d12b321d2c9cfae916a5dc70b3e77a4ed4701129213d5" + } + }, + { + "type": "Regular", + "proTxHash": "692dfb82cf41d175f3968fa9ca84a95c2220f40ed40a9a9e3de40154737cbd3a", + "collateralHash": "6959df8be1a4b1d1b2282dea70c17a0bcd0a66b2fa7b02e7cf1010cb53303c32", + "collateralIndex": 0, + "collateralAddress": "XfHRyicrCFSJBgZvKLtD1b44nbs4s4QDmu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.19:9999", + "registeredHeight": 1519089, + "lastPaidHeight": 2125926, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuaAwjSz76ztX8anxbRhnbAou4VvZZAASs", + "votingAddress": "XimTAaYboDpXLX4hsmeGHJ3TZthUEQZv3X", + "payoutAddress": "XvhnPPJxSRotWj5oDegobNsPRi9rYVVrT2", + "pubKeyOperator": "07953996505b6b9a0abc839585f3a467f1fc4de30e39db193744c66f43d2edaac8d04509c88c2b20a831645f46e0b7c7" + } + }, + { + "type": "Regular", + "proTxHash": "4a450c5b7faa30d9731769c6361db058fc3448ad7bf7eb3de0fff228b77e2579", + "collateralHash": "fb15fd9d068629e30fe8944ef5ed3ed7c9e935665009e56024a29572270d6681", + "collateralIndex": 1, + "collateralAddress": "Xc8eAgVqrj1fYMQgjnjLVgVPJZrEwff5ag", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.38.115.43:9999", + "registeredHeight": 1520217, + "lastPaidHeight": 2127569, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121414, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgHSzXuCaYz8JPHH2xtFF4ZuuruRa24y81", + "votingAddress": "XgHSzXuCaYz8JPHH2xtFF4ZuuruRa24y81", + "payoutAddress": "Xc8eAgVqrj1fYMQgjnjLVgVPJZrEwff5ag", + "pubKeyOperator": "8d28ac0d906364061f85878b5842afa164e76e982ba0cd31735abe614d2af9ceaca3cc3f83636285d088443826b284be" + } + }, + { + "type": "Regular", + "proTxHash": "1a4971b284fa3b5b2701500daaaf0ccf6e9036bd7d8e6864cfa03dd3b929e558", + "collateralHash": "4843769fa40106073d32ef52b8e4b2068d6caea2ed8433583a9aea0a2e648f62", + "collateralIndex": 1, + "collateralAddress": "XdmJzCufySZpQvR7LiX9fJcC9NEcbRd9uQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520239, + "lastPaidHeight": 1723942, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725636, + "revocationReason": 0, + "ownerAddress": "XfVTk6517cD7x1eyZGjEjGaKwd5qFsv2r8", + "votingAddress": "Xcm8vc3gNhMPsUKrpjhgwuuLK4Q6V98vZz", + "payoutAddress": "XnRmpSexycNnjT6CYHiL32XuTuEbvc2bs9", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "02fd3dbcc8e70b72fd10ce33565bd9b7eb9b8d22fb1f271b6471235cd97003ff", + "collateralHash": "3a51fc76ec615fbdc8b1820e0c92e74e8bc1afde8a5db52d05ffe86a94def050", + "collateralIndex": 1, + "collateralAddress": "Xm97k1ajrMe6K92SjigKbqWdxwpGdauzD9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520240, + "lastPaidHeight": 1723948, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724555, + "revocationReason": 0, + "ownerAddress": "XgPrCDhTBh9PGHoc1wPjSL6RZLEvr1mrUF", + "votingAddress": "XmSWcAK5UpovCAhi7XKtAPBmxKomPXATZu", + "payoutAddress": "XucLhCVPdsU3eEdhh6zHrKmLQkQ5isPxYc", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b654a68a9e674b9e850b68049a6c5d4273471112269b2f7e63f6c7aafdf249ba", + "collateralHash": "395f682ef3711e69d4b99eae495cbb3f889bd5182dfafe62b5ee7e41c84b85d0", + "collateralIndex": 0, + "collateralAddress": "Xotmy5vKiTnJx4729jYqUUe8Ki8xAvLE94", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520240, + "lastPaidHeight": 1723947, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XrLJ83BTEPrYXbB8ewBDRMPfxWPmNQsp3z", + "votingAddress": "XavEb3n21BaU57pFZkJewMzrvdaYpUfRLv", + "payoutAddress": "XsxXsqxygGdNJD3uYghxkzuFXZcVhjdDzP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "16a4d8165a2329ca7224accbed5a86d65f38ffae8a08b58a725035cb104dd0b6", + "collateralHash": "2843f9bf903968033a9a706b5c0d0a77b604b71c29e6bfb3aac6823429d0a11f", + "collateralIndex": 1, + "collateralAddress": "XpbAzNRJawQT6cckWhjq1Vs6wzEYf5CydV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520240, + "lastPaidHeight": 1723944, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726259, + "revocationReason": 0, + "ownerAddress": "Xtb41qqq4pwyAENocqvoZymvcbg4DmtEYd", + "votingAddress": "XuhJBRCifeQiBjfyZPjJc27LhaVHXEroHa", + "payoutAddress": "Xq5XT3RVRiMSfZQvwJs6pDJfUKgJq4G9rH", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5dd452add244d7db7c8e679393ef7de146b782bb861edfcf550d602dd3c9bd39", + "collateralHash": "3c6ded135d4e08fbaf38cc11c02f10151aa575b9a0341e60e7a9fba28b72c772", + "collateralIndex": 1, + "collateralAddress": "Xp4ibYURbEmWBnvSPfL4JuL95PmP82QxZ3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520240, + "lastPaidHeight": 1724662, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1614992, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XejBmeqohE9HR4VS8ip7Tx81rjjFGdPYqv", + "votingAddress": "XfWy5yJrZGjWhqzhCn2LjctDqPY1CMSFsg", + "payoutAddress": "XuVr1gRiEJEGCjyUx4vaR79AP9ksAAa2h8", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "21464a7e36b43feb52c24a81c329b405afe39d89b9d0318e7ef2a80570d2465e", + "collateralHash": "924d37591222050fbf0e7e7fd4b1b2f0e60d31b7b5e8b52919649bea404049ab", + "collateralIndex": 1, + "collateralAddress": "XrYJwdBHZDKBtxqEaUg115vN7B5KZ3REBp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520241, + "lastPaidHeight": 1723504, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1626857, + "PoSeBanHeight": 1725131, + "revocationReason": 0, + "ownerAddress": "XuV1gA8YiHQx8xXEnfpFeKkkzMbkRa8PD4", + "votingAddress": "Xmg5uButbJVSC8gxzac8asMQtrSpGLuz1z", + "payoutAddress": "XbKo2mMbYR6PTCiZRDwCJepVDM6wc6b7iB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d42874f5f981c501ced3be73c95ec85a0e4ef33817794fcfb8e44782290e64ed", + "collateralHash": "dd169bc02bb2445660970fcbc3c896e4927d1f043c173c3696d7df466fa8772c", + "collateralIndex": 0, + "collateralAddress": "XpDk7WXth1gDpw1oCRhkLStEdLruS1EidZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520243, + "lastPaidHeight": 1723955, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725924, + "revocationReason": 0, + "ownerAddress": "XeRmsmzGaUqy6GpNTezMR1heE2AC9PiAi7", + "votingAddress": "XkQMPQHaxNhNitu7eeZj2WpDdMDWYorMM3", + "payoutAddress": "XxbS8HJoxpGFykKUtNXipvDgLwR7itCBx3", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "65398363b0d8dd7fa4ee1d3c00f5e82dee31c19b079de7d5aadda9f136f763e9", + "collateralHash": "4d66d60ecdbf44a29a3b9ec0deb0b8859fd282091a71905b8e52d2dea1c8f163", + "collateralIndex": 0, + "collateralAddress": "XfJy5vYGLVPNx4PMfZy4Rw5EebnGSM6KhR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520243, + "lastPaidHeight": 1723954, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727267, + "revocationReason": 0, + "ownerAddress": "XezhsjWNbQ5C9SKnS75dDXfLXRMsQvxWX6", + "votingAddress": "Xrj8fkyu3yF8eAxErTNeEedFXmULBiK4pb", + "payoutAddress": "Xy59vhQV99NhpPMEbHn27tcUkoPGiGpggG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d19b616bb0aca0d428946c86d6028a7a088e99b7fc98f9a980f94dfdba5ffa34", + "collateralHash": "574bf40bcb34ee11d28d624d240092e4ce111ceb8aaa0bfc1f4188909cdfe4df", + "collateralIndex": 0, + "collateralAddress": "XrMw3Lybd7WvqSQWjV2KwKpH7ar7tyAPsi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520243, + "lastPaidHeight": 1721026, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1611143, + "PoSeBanHeight": 1724964, + "revocationReason": 0, + "ownerAddress": "Xo49vRihiMj6aY6vZQNE8PJqtYt8fDeQT6", + "votingAddress": "XmByFkk7fhGW9CuRMsUKhsLbc4ULHe9RVb", + "payoutAddress": "XeiXpRcJMvMkZqUBqqsv6KHzT9Tq6wE8XZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3e685a223c9aad902635c0f7f2c8dbbd6083153bc4dd330e83e8856712785df9", + "collateralHash": "9360e537503cf906d0e10a72193e12c574195a02d76eeb0c5d54404bc5873dcf", + "collateralIndex": 1, + "collateralAddress": "XdXpt1WrkjyoNhTnrUt4tD2Q2uGaQp4nRL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520243, + "lastPaidHeight": 1723956, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XwXd4b2VpxDGLR3PPqco3u4NbdUoWNqhaZ", + "votingAddress": "Xptd3RhXnppta55JQaag7NMkc1uRQaMWoP", + "payoutAddress": "XxV2RdBjF3xFAudUNUKWd2ycjR3idPJnzZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "62a01314c6fcc70fd519b9710b403902bd135b72d065a68056607a341075cfe0", + "collateralHash": "fd14ab6ecef9778496aba8908d4b778024b7913f395702b4125cc06ea797df9b", + "collateralIndex": 0, + "collateralAddress": "Xi9qLsSorQbzP6JMdYG2ccUwUPBkcyGYwv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520244, + "lastPaidHeight": 1723957, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725636, + "revocationReason": 0, + "ownerAddress": "XtorSM67ECp7LK6gm9ea2mpesXYf9EaGzs", + "votingAddress": "XyizPvLz8ePrBL3PjzhRdfjkT1vX5NQjza", + "payoutAddress": "XsV68GahxjVYEXw8TxNXbvQnALSPrk74um", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a55b7ff05f85380d4198e3843ee1489448a7df2c8611d528653831485a732e05", + "collateralHash": "01b91ece55c8fc86b86fb14764d8f6851df4255a27cbf71a39fc4a19176c730c", + "collateralIndex": 1, + "collateralAddress": "XiXa7LBYnSXXsxboc7XNUcfCKp6A7dGyaE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520251, + "lastPaidHeight": 1723966, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "XbwMUv4SD1nQNhxfeJy1NBK2N7TfFTRe2X", + "votingAddress": "XyEBoTi8W8ZZbcfW5f78jJaGjXfFJHLrsw", + "payoutAddress": "Xeo8y5XLfCM8vE3aq5FGZaVE8Shm7BUhRD", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "55262be8d343b4998c95bf8b3d0322992b2c7cc6cd0d64b8c45b65714bd1bdec", + "collateralHash": "097bc4bdc3c6825f43b519e4ce3e9f5d9443ce629e76e53bcd5f59b790a322b0", + "collateralIndex": 1, + "collateralAddress": "XjzYoyxqL8FkEeUzLwPhbN3zzkRKk8Qj7v", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520255, + "lastPaidHeight": 1724243, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1623304, + "PoSeBanHeight": 1726331, + "revocationReason": 0, + "ownerAddress": "Xfy1bDiRgYV4RF1xxX6MW6AVWHHBHJXhrn", + "votingAddress": "XpQys7pNc45MWejyWsqf2dSb2pRtyvdNF2", + "payoutAddress": "XotfGXwHoer2xWWBVvT9xjQnkqT8PNCX1a", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "cabadd86c7804e58ff20663aab467bd4f459f536a09ed025957b2a8612ca364b", + "collateralHash": "c06359020bfa25039378b74764f44485e35280509e6425d5b9d5479a9ca7e743", + "collateralIndex": 1, + "collateralAddress": "Xrts5pX57obwNVpiDNSButyQxncVGGmeim", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520255, + "lastPaidHeight": 1724139, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1636212, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "Xit53822gGR1gJX7Eap3PzGMzHrASLHxwW", + "votingAddress": "XbG3whEE9wSNGkViKL5uB8Kjff1jrGVwxC", + "payoutAddress": "XnJwHSFNEeLxb8bXJ9xdJmrZSRWER8sKAs", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "22b9d59398d7f8364af07538560f5585c5dd8374e097ea9a7c9e2b618d5d86cf", + "collateralHash": "ac9ec79da3970a8e423c01f49b53fb57966dc4d985c27c365d542b47c65bf6cb", + "collateralIndex": 1, + "collateralAddress": "XaiwudvNRUhEhL3PqMjatEFLvA6QEWe64z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520255, + "lastPaidHeight": 1723973, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724939, + "revocationReason": 0, + "ownerAddress": "XiU1ftdERc5S9uPBSP6CYVbP4CPb5W4ukd", + "votingAddress": "Xs4k7ZocuXkz2AoeCH7TAY8JjGrmEnhEun", + "payoutAddress": "Xw9rBe2ibCaiednJFgWbko6vYDgmxpfjQ3", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "65385b19eaadecc589b414611eca766ffbea6494dead350838c761b55600a719", + "collateralHash": "2fa12b156fc03d27b1f23c4f3cd3b03274a660efc2ffe8807776a54067a8d397", + "collateralIndex": 0, + "collateralAddress": "Xupxb7GoYn8CRRhbBWDDChUg9SrbDL74tL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520259, + "lastPaidHeight": 1723975, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1623027, + "PoSeBanHeight": 1724699, + "revocationReason": 0, + "ownerAddress": "XfwiEhgMEfWbj2fzc9iacWNLonLMFNYt1J", + "votingAddress": "XjT93Shn8b5Yj7n9GsXA4VYvwG65TChs9a", + "payoutAddress": "XoCPJayAXb3PbmwgPkEQpFAJKEecyFD9bd", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ed5a9e3d995c0d798913add9759410da38ee8b7db445ddf97f843616c00c684f", + "collateralHash": "89e3a1c067e9285b396db2f7a903ca328a63c088eb77497af7d15797079e1a85", + "collateralIndex": 1, + "collateralAddress": "XwbeQkZYBEWX1y376kZg4DUSdqQ4tRnB8o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520259, + "lastPaidHeight": 1723986, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XdNoKC4utPbqmEiGxZanparKoN71BAih9Y", + "votingAddress": "Xo38v7sjJvcvMBJtiuxGHhwSB4vCENHwxw", + "payoutAddress": "XrkefsADWYqmkGdgKfdZiQpw9WgehtNMJB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "22f418457220b461ac12642ed04025a17f9f0767c0a04da053ecc91776ad3413", + "collateralHash": "33db6c2aa650365ff951e910ea4fe91ee1ee764e03db21135fd715fadb507c11", + "collateralIndex": 1, + "collateralAddress": "XuPwR4jYTGyStRMyzUjVTKqtewKTqA8Xtn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520259, + "lastPaidHeight": 1723985, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724531, + "revocationReason": 0, + "ownerAddress": "Xdzh3gidBifNndsSTnwMojskiaTpfhbjTj", + "votingAddress": "XyDJm8XGCRBP6epJrQ3w9RQhkStM8TNYZ4", + "payoutAddress": "Xjvnifnvvwt64BPRCT3VFtpJkw4ytJ8Gkx", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1f0ef94da74b14d2721131fc66f987b9d66a2fc94781554a6b59f459b01882e5", + "collateralHash": "4efb9e763366cb59dac47dee19363acdc7cc4499c7a67611ccb0505a9136452e", + "collateralIndex": 1, + "collateralAddress": "XsJaPLT1szkMLQZtL8oNPKTb8yo8v1udhY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520259, + "lastPaidHeight": 1724204, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1623266, + "PoSeBanHeight": 1725948, + "revocationReason": 0, + "ownerAddress": "Xj9JJoMCfAv3GN2ygFG4FBj9MQnipuiEhn", + "votingAddress": "Xu4vaDumekwXzwMA1kVgPPsJw3JgnpYEg7", + "payoutAddress": "XspJTjykNV8QKcV2HRULzyZEUXgPmTndeU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ed584e99986d9fb91f2b320733ff0bc558297e02c44a46c793abb2773288ac3f", + "collateralHash": "69633ab47f44bef359452a51006ac4fb74b40fdce269116648b5780f2fc1b4f5", + "collateralIndex": 1, + "collateralAddress": "XpBVca7j8vFEChGaECLaBGDCobegr4e1rz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520262, + "lastPaidHeight": 1723990, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "XiE2Sz5JQ6hGbDJpvzPPqAdaPyiu87xa8h", + "votingAddress": "Xf62K4XGz25hKboZA4dRReRMif82a6MMkG", + "payoutAddress": "XxzDMt3sTferb8f5Ux1WxhcP6pisBFBnNB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6ed6a9168cefdd29997d93cf5f6447bd15d8943a636fdeaa88d9708f4be7f8be", + "collateralHash": "0e5a41b1d827f392d5705955e901a5741d86fa74053d3e6252238a6e0c65e48e", + "collateralIndex": 0, + "collateralAddress": "XjFHaZnUnqCV1xGErguQN2RkYqmPLR7VA6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520262, + "lastPaidHeight": 1724143, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1556881, + "PoSeBanHeight": 1725348, + "revocationReason": 0, + "ownerAddress": "XvTNheZtaKZAYZmRG28WC3xYt8sook3bjh", + "votingAddress": "XbFCtRAN7iNsHordjsvppZGEq4JR19L3eD", + "payoutAddress": "XgdEhgqGCw1X98L48bEDURKFZ6ifJZTqmQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "60c216ae419e98ab4c7e069e7adf529358be59e0cc691ef666439993595f81f5", + "collateralHash": "ad1d697d8c53d1f0b67fabedc3f239fc0fe6c9d3fb27be6c9445e4e456fe9ae7", + "collateralIndex": 0, + "collateralAddress": "XrnC2pab5eKyRkGr25jUc7Q9ZKwvcA3b4h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520262, + "lastPaidHeight": 1723992, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725179, + "revocationReason": 0, + "ownerAddress": "Xne6kFRS3ngCGfUmDmGdmWDetJBtvmqTks", + "votingAddress": "XeTeE45msBaCTHH1bEdua3m3xjsWU25viv", + "payoutAddress": "XfV1kkZemZZWU1SsJtg8r788jy28Exq6G5", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1383b3930a3c13969712540735981f220c6cb8f069c06a6222332cd33e7a12b8", + "collateralHash": "8369abe2d07cbfdf73add299283e709996115bac925a071c58b4732d5329decf", + "collateralIndex": 1, + "collateralAddress": "XhnVshYYo9cNmbLXWEdPvieyPcgHZBTFCG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520262, + "lastPaidHeight": 1723991, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725468, + "revocationReason": 0, + "ownerAddress": "Xxnndt4wQztf86Z3si1TdYY97SzXdLXHhk", + "votingAddress": "Xihc9EbfshtWRJ5Q56L1rNHBtEJaDD48vq", + "payoutAddress": "XajMo6rabXdufc8ekWtegm8pUKojZKmDyV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0e25ad85e6e39c33d1227d69b684ec8c4376c2c680c28c545d32d5da74043918", + "collateralHash": "14c4ef0cc013f06ebe4179aab4e5eeab93d747f865670805ebb18f0f42f4f78b", + "collateralIndex": 1, + "collateralAddress": "Xm88xHVFrV7y2cnQTjUnd2hZBrQMKF8GmS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520262, + "lastPaidHeight": 1723989, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724531, + "revocationReason": 0, + "ownerAddress": "XnZQN6xse3haxgWhV12AZQYsvoexoqzmjG", + "votingAddress": "XwfEqNU5FPBBoj4ccPWQZca7KAXfmRkFDS", + "payoutAddress": "XoaKuCFEPK6fXhJcnqxABT6ujcWqkrrH8s", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5f89c40d694843adacb8c6e8bf47d4df55e66d240a4399d8c511578220cb6720", + "collateralHash": "f078da0cf6cd40bb8524ec8246a66930eb51c4b5835d48b569a3bb7180ae678f", + "collateralIndex": 1, + "collateralAddress": "XivD1XBkzPfA6UoaA5Eb9uSgEdkyzSyp2P", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520263, + "lastPaidHeight": 1723994, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724277, + "revocationReason": 0, + "ownerAddress": "Xb4BDfpVMwF92P8Mhdp7TbJ8APCPSCTHTn", + "votingAddress": "XmEcpBXCuHgrpX98w57b3V1toFm51kUtcD", + "payoutAddress": "Xb6cefL5rEGtupqmU3SF2T4DYR9PbKRzDS", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2ae238443919bfdd04b7b8df7ac25dcc7cbfe09ac55b4936072a0fa9408df0be", + "collateralHash": "854c94b2ad3d51fa50a9c578af327100a3e54f3924a7e998da59ab2ad16d1fa2", + "collateralIndex": 1, + "collateralAddress": "XwSecFzLCgDE2tresuWb6wS4SY2W1ZzmEF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520265, + "lastPaidHeight": 1723999, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725372, + "revocationReason": 0, + "ownerAddress": "XyGZx81JuQ2cLrKk1XRsHHX4eLnoy8kTDn", + "votingAddress": "XiNDwDKHBzAxy35TPVFXrxjDN2EStiiCNp", + "payoutAddress": "Xy15aZiXpSgpmKJKE524AndodA3k2VVKwa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f0b9ac9c769ba93087822af0ed118e182e828063ba00b54f5d748b707d4a0aca", + "collateralHash": "149f15d5429c405f2311087d893ef7cb65ff536915398bf6330c58e2a6b54bfc", + "collateralIndex": 1, + "collateralAddress": "XqybbtXugapFEn58sagMbAzWKV1zsKWcMd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520265, + "lastPaidHeight": 1724000, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725299, + "revocationReason": 0, + "ownerAddress": "XmrRs9ExRSMPHeufKmxkgG5mCsZ1vC9AxD", + "votingAddress": "XkS8o3MxieF6gNoJQHgas5sjGN8yKhwjS8", + "payoutAddress": "XtULK8ZtnyWtbuMPqEbqvoniYL8L7uzZY4", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ad22fda29cea1ab1a134444fff9bdd8c95521188c2e26f1b27c4542deac62d74", + "collateralHash": "a868cd21d3e29c3f9543eda020d73ad468b4d3f21915838d9e8b2d3ba39faaad", + "collateralIndex": 1, + "collateralAddress": "XrtqTVrVPrdwhfVJrJF5myXaqwuHSXSuVX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520267, + "lastPaidHeight": 1724001, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724483, + "revocationReason": 0, + "ownerAddress": "XeL94iBwC7dmKw8y2p1D5zw2wFT7QSa8sT", + "votingAddress": "XfNp6EKepYrfBjwc4FUMrSdcSHYA3fKKJA", + "payoutAddress": "Xq7XSBdjbh5sfxGBoCtC783xPwJcrUsfeQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d93a38a128871e47d08d152147f09993edbab3328d084bd78ed900aa26f853b0", + "collateralHash": "0072b3b63f33e4e04bc22f98d2e2ca61eddd2400a1355d7dda55f2b6b35ef3a0", + "collateralIndex": 1, + "collateralAddress": "XtJTPEmDsXbzP8Sh3c8HvKYfRUACjYHYt5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520268, + "lastPaidHeight": 1724009, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XwDunCRoPFTyy8w6CpXhcyN7U8rNKjDxNV", + "votingAddress": "Xe5JNgP9daTYyzjC9HgSNvmJTpXLon7n5o", + "payoutAddress": "XmcNESU2eKMw4HBtK9UDgcR87CXsRDPwev", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7e412a787b7a37d9a88014e1e6374320c295cf83f9cc0e00bea9c79658f8cb3f", + "collateralHash": "73f31d7ab8c7b7562691f8c34384623117bbee72d88f712a1a9f75d53b1cbf70", + "collateralIndex": 0, + "collateralAddress": "XetUHCojW8hkPNAyKekzJsG7E1TRXfc5dG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1724011, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725732, + "revocationReason": 0, + "ownerAddress": "XrPwTSZnKnxu3FhBpStoUtSgsAky8ssyBS", + "votingAddress": "XgRPrHRi4ecbaCmhLsVCLzW7aJ6NZGWaHs", + "payoutAddress": "XwdJefK7ALmp8mAqzPHQezAQrUsLQM6CqC", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "cdf6ed64e724982ded845ce83b9004aa01d41ed6bda9c553859f7bf6a98e7ec3", + "collateralHash": "8d84810efacd7fceb74093605bb26bb6da4cdc2421658ac45c455e956f858208", + "collateralIndex": 1, + "collateralAddress": "XmsAmXs64yuSTiiSu5Nf8aEHKW5ECReDcM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1724014, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724819, + "revocationReason": 0, + "ownerAddress": "XbfY6SvgybTqX7HCKrSBbP1MvuVALe78hj", + "votingAddress": "Xk3m9f1Fv61fnzxLcYB2XZ4wx49cAWWbuA", + "payoutAddress": "XfSWUQtwqkzuCAJbHKqHX1hCXoRTqKUcsS", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b2b6c661885a6442eea3376be151c1a1ca5d4eecb208525929f35176cad8d241", + "collateralHash": "0fa5874dc5e46244dcae0f021c939c35348136c1c105baa93f2b48e77e5ed870", + "collateralIndex": 1, + "collateralAddress": "XciyNxdxG34c2vbYZ5dFMHKYeiWHG3tqwe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1724201, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1623266, + "PoSeBanHeight": 1725179, + "revocationReason": 0, + "ownerAddress": "XntJKWQVCMhAHcj5Btg7o7HaQdH4gEBgkD", + "votingAddress": "XumLTE4naCCz9QUKpFSVZ3xfDLJvvP8RJ3", + "payoutAddress": "XfTKK6C6jAPUsGXf8y4gt1guq2rf5ApguE", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dcbe8588101d10770d9cb7d2c5e8b6547d507deebfb5dbf3682198ebcaba9fe0", + "collateralHash": "12f242ea020c2a7ed2c306ec49ffedaa62d4a0b7f6576731fe4bc3ee6e4793f2", + "collateralIndex": 0, + "collateralAddress": "XkSKi2QQxochq9qs1AttLFfF4g3s6uXzjZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1723764, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1561036, + "PoSeBanHeight": 1724267, + "revocationReason": 0, + "ownerAddress": "XpgDswoaynuXJnryz1pF3bLZW3CfTAzYzA", + "votingAddress": "XwJfdFFjiU6WCEWXwrP76EWKiCzqPP41Fp", + "payoutAddress": "XvXGohRSwGuEgW72TS69GRfxV4mEs36Y6N", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2536ffbaf219a75fe428dba00dc5a557b1430673e66ab4a4b2dabc5dcca51d6e", + "collateralHash": "b880ed1df3e0789ebdff6f8ae6c3b74adfe4ed89207a6073164ead2e87fd41e2", + "collateralIndex": 1, + "collateralAddress": "XrkpkBd55EKsMVr5ZUL4RnjU7oSXpzja67", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1723840, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1561106, + "PoSeBanHeight": 1724724, + "revocationReason": 0, + "ownerAddress": "XffmzfZxNFQdUMgW96uPNYXqa7686SDJf5", + "votingAddress": "Xr4ei7dKphJPxeACunXiB293nh56PVEZ1W", + "payoutAddress": "Xxiy5jGCwaVKMnhQAtDzS37ELFmXYzdZUC", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a3430c0282aa49d935883db81ab3c0ec0d97ff0ed16d95f5286512481304aecc", + "collateralHash": "035183059397647c856558873aa647fc0103973bf3a111cfe6fe43928b00e31d", + "collateralIndex": 0, + "collateralAddress": "XfNAdcv4ous4Qe1UN29FyyXHMvkH6BEq1q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520270, + "lastPaidHeight": 1724016, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "XkNDLx3xYaTTwX7zSNLiXV7whqGL14aBPo", + "votingAddress": "XkbroWBsZm4kdCr2hXtjMYjowGVz3tkuHf", + "payoutAddress": "XbXGFkCJkhy2nfm3JiFiKJsbJEKacYDgYg", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b211a1a645f881c97ce078a154642cbfad5e9edb05b2d0ca0e01d6be6eee3b15", + "collateralHash": "63a55e90c243faf2ca5e6adc022ec96dce3af532f15cfb682605a390847eaaa1", + "collateralIndex": 0, + "collateralAddress": "XenkCDNWpCMf9UedztLwk7oiQkewVPc6TG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520271, + "lastPaidHeight": 1724017, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XfMzm9RGxuSC1kfjv7jLDC5y5hLEUWr2o7", + "votingAddress": "XbfiRyAxDsASKir1gCymUEuZ6bGU8CCaEh", + "payoutAddress": "Xf4pTKA8HAPFgjb1gGukMu3iPQtF3ycEXU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "42c2758fccb3532cd003a3eb8f60d2dca6a57e54a20fe6849209b0cf53261f74", + "collateralHash": "b4466ec5f0642ce3a85c56e19218b4cc16011e100ed02a164b463174f0eb48df", + "collateralIndex": 0, + "collateralAddress": "XibMs5LyAUc56QcjydRmXQt4DDq2eyiXQe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520271, + "lastPaidHeight": 1724018, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724507, + "revocationReason": 0, + "ownerAddress": "XbgqYeayTSmU14pDCooJ4cK5Udcoehj8zb", + "votingAddress": "XwGigcFCkacjG4v95KvW3FYcE2GcXVWwJR", + "payoutAddress": "Xenn83VySf1BieznkVmGPWTmdPWM677zwX", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5bec4038dc41c46bd6947840099158a21a65c0c046e97b6991e6254f5e56e4b4", + "collateralHash": "a83f758d7e9258f90e7d09dbbe95df8b6ce92bd01e2a9f69e28b9a7839e05ba2", + "collateralIndex": 1, + "collateralAddress": "XukAmwefpqW3hWfrUmdBruvKrkuKQScjo7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520271, + "lastPaidHeight": 1724019, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724819, + "revocationReason": 0, + "ownerAddress": "XdA5EUHsF3yfrrB71g2peFx28ThnC6AFcF", + "votingAddress": "XtwbHa4WBZ7c2dEUmyWToyvTw2WCKVN51q", + "payoutAddress": "Xjt8wAoyFLFjoyQc1YC2JMovp6Z4a2WRPn", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e5ad1518ff0c0fb0e92d459819c6447d1ebc5fc995069737ea7d84906869b92f", + "collateralHash": "f5a8828b7f90aac96d9103255e537f57fdbcba36f66d29bedff5a67662dde60d", + "collateralIndex": 0, + "collateralAddress": "XsyuvqjB341S71xsmwSUCcN1KvAfnAG4A5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520272, + "lastPaidHeight": 1724023, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XyZoWaKqzTZiUtLF3WXpvjgTh1LatLXkcu", + "votingAddress": "XwEJynvkfwjqo3WHe4EM5kKbGXCXaijPSQ", + "payoutAddress": "XwRVuDvJyVwkzT7akGbHB5rhx3DJcDQZ1Y", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f85c942103bdffeeb7aaf088d10dc81976283d2f527e5e704b062b40870106ae", + "collateralHash": "61617cf31edf3a68e1756b5e17fe26f837c796be896db0caba2dd85b487574ff", + "collateralIndex": 0, + "collateralAddress": "Xf2mrZk5Pe7T7Ze4mDNa25n2rnbCuEnSWo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520272, + "lastPaidHeight": 1724025, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725227, + "revocationReason": 0, + "ownerAddress": "XmM8EKcvZ65jxXt3W3aQvEEPiy67PVWPW2", + "votingAddress": "XnvZkUatA59EjkFXHE4UEAfYFUXMNKfL7d", + "payoutAddress": "XapjxeHkDFHxsR8Kt3e4ryUHsL8eVCWayg", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8a0b02c6e6eae49375a9552fe91070966049c0dcfd9c6e14776fec6dcca04c0b", + "collateralHash": "ff0e3ab6d6ab235a40405d8674272de5152b6923e13cc42f065ec4b7bea24582", + "collateralIndex": 1, + "collateralAddress": "XkhPyFdx3y22hBj6EuuXYHoPEnWhyZf37w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520272, + "lastPaidHeight": 1724021, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725108, + "revocationReason": 0, + "ownerAddress": "XsKRYmZ4oygf2UM3YAeK23kYtf8xfAEBYG", + "votingAddress": "Xvgv8XUsgDoaRW9wizRgnNAQ7Rvtv9V8Yt", + "payoutAddress": "XyczPwaon2sP5KoW4oRJrqNZVxerK3MkwG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9100def293aae8182590a3191804728295c9f0ec908b10618a85e76a6542048a", + "collateralHash": "41dac9c830bc7e4d923618bcafd85ea19b6e3f22c02e58c6a5bc3aee1809fe13", + "collateralIndex": 0, + "collateralAddress": "Xg5b3CRpM89BzossRW937NYBstRdbZyrg4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520274, + "lastPaidHeight": 1724027, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724315, + "revocationReason": 0, + "ownerAddress": "Xeue3ftWw78N3LgLw1734zVDUhYeWj2hqE", + "votingAddress": "Xdex6kMUcDtGNUG6RYjjC14VFw2E8RuLz7", + "payoutAddress": "XsijQ3J3BpbPCdutsB3XcDtGshYi6CkN4Z", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "84cd8a83f0909c95771d1c4fbf5eedf32db8b24aeb18c20b36426d8fc896d520", + "collateralHash": "247fcbc01d7a962e9c0fc42a35785a92831764c2b61cde8ee524f910eacdeb12", + "collateralIndex": 0, + "collateralAddress": "XueDXCkm6PxrVYC2PL7S8p9tYWxWYSVZhi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1722537, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1625683, + "PoSeBanHeight": 1725779, + "revocationReason": 0, + "ownerAddress": "XcHQpUHRyeU3xkeAVZdtndpz2KUY4n6i87", + "votingAddress": "XunXeCBRqFS4nCH11cBYrBn7pkV5bWE22B", + "payoutAddress": "XiJmrC6Ctv5FtRrMQCxp61aspHko6jyNto", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "aeabb2b87274d88f322ca2e13f1c7dea029deebbbd403bfb0c6b1a4fa4a52072", + "collateralHash": "fc1a717bf6aacb3735f624b5cb2be0e6b32a3e848820a60b1668d0934affcbd1", + "collateralIndex": 1, + "collateralAddress": "XatSqQsDHLxigmcXkqEkJNwdxxvk2whgP6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724033, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725492, + "revocationReason": 0, + "ownerAddress": "XqCu2WpEb71Df7Atnj6uRe8bLdPsuCbqRv", + "votingAddress": "XtBnZkuYjebxsGoEccsfqjRfEYoaYT3Jjp", + "payoutAddress": "XsMgU2NMquztFaj65MmfXEvEoqQMjWWbpd", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0d23c74358a4ae19a2c6899707ca89c5aeb5ff4ecc35c3a243a5fcffd7936306", + "collateralHash": "780cbe7693571e12ecf32c1fd9d485fd9c7a91eb273f6c3da36d587fa16e5f89", + "collateralIndex": 1, + "collateralAddress": "XqKcZSBiswXJ8tNb1VDnT1nBpLbkzBZEvr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1723447, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1622442, + "PoSeBanHeight": 1724868, + "revocationReason": 0, + "ownerAddress": "Xiy563bgrByGfehHg2gjAsjfp7ovEg3EbK", + "votingAddress": "XmNhGNegr8oArd3BKqXiqwnZWiBWguSJRr", + "payoutAddress": "Xt3nwJJsk4tXjUZtstN9wNFe9yyJLCg1Sm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "332b7896ca60b05d5b343efb702a08000c6a07e8c4b317633157818faf4d2485", + "collateralHash": "8c05dbf432b5a6094476768c1d40f67e571125b683d288319f3dc76c48f77f19", + "collateralIndex": 1, + "collateralAddress": "XfZBR31svJa7C8BdwGdYUTjZuxeYYJWTgh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1723949, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1609970, + "PoSeBanHeight": 1724292, + "revocationReason": 0, + "ownerAddress": "XopNurt7JaULZ9y2bgiUr6NP17b3NHkJBb", + "votingAddress": "XfE9wxpZ2x57mj6mjb247TGZxetTbCxZrd", + "payoutAddress": "Xc72N7JF7vqwRDMAYLDVoHSTuBQQx8ndSh", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9f5765cb504364b1233e37a9f170a1ec0eb7979b0a323da6fdad81a17b369bc2", + "collateralHash": "fb665914350353efdfef9fb71835500a7784ec7cfb5d28bfb986dcefbaa709d6", + "collateralIndex": 1, + "collateralAddress": "XdkohTSxPw2f76Aff8HWhgGop8apSunayu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724040, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "Xk2yZ5Tzdt35Yg57GEhavQYfp8HXENgoAf", + "votingAddress": "XkQzFk2jf8bRquyLJX3Zw4LhuaGPEbzzSy", + "payoutAddress": "XfhUNA7ySh6rsNgnszY8roP838Z6Eb6Ng3", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3f4885496b8da45ba76097096a4e8e5a378138f60655d32bf590fc602e0c459c", + "collateralHash": "ada68eefbceb79eca5f0532cb9b0d4b70e590d1adcfb367d05f8638c340b8d85", + "collateralIndex": 0, + "collateralAddress": "XxhS3JKGww17oPFRz27QpVZvMneKb1xCyB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724035, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726091, + "revocationReason": 0, + "ownerAddress": "Xgu1bYuyvJ4GBikNyG3uvSHLXCAE7PS2hp", + "votingAddress": "XjRFBvYypJAtQmtuBExwZ3FzxtDXe94jSn", + "payoutAddress": "XasFZ5LdrEJ6QonVouCdQ9U7jNPXeuY6ed", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "aa30c55832982e12385ad669954090d139eb91e9426b74e9a6b33df04b718f3e", + "collateralHash": "ade16f46dc8da8fffba98cffe698d5bc56919ca54ed0a3b6ed5acb1db2c4913b", + "collateralIndex": 0, + "collateralAddress": "XvUJkyuDj9HCn2bCAW6S5tQvfhR8Sx8HTW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724032, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724483, + "revocationReason": 0, + "ownerAddress": "XdfmQri3wru5FY4JsWUrGEnyLMoKpmPu8j", + "votingAddress": "XbzZqHppHvGfDhjsK9eTjBSNB7YuXLB5XY", + "payoutAddress": "Xud26bBPBZkQPy4bXPiooXSiqVgm36pZSr", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9bc9b7a879c137114fd17b2af5c3825a6f78224cfac8afd7109e52f1b3a05bff", + "collateralHash": "482cf74e7a615086514c261a9454db358290f05c6243089a3961ffdf14256d29", + "collateralIndex": 0, + "collateralAddress": "Xs1yGUqc53XddB4E9FkHNYXtum5CCoGvbt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1723759, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1561034, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XfJtpuZxEAYUofWKsHA7KNYpCKNxY98Hm3", + "votingAddress": "Xh6M9FR9a8Wdb7aVvWeF8z9CxBAM9PgDbW", + "payoutAddress": "Xdsbzw7a5wTCQYvCwLuQc7qnRuCcs7ehsK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6224b13ce6a0621fc89ecd68ae71c9ccdf86b89602c0726ebb2febe61e6fd3de", + "collateralHash": "c7252e53133401f38aeab3193a91f5b7d044461bd3c6121ab480a4b115fd302e", + "collateralIndex": 1, + "collateralAddress": "XfRvVzTEsHKkfDv2RN4yTCqKnBc4pkukbR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724041, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725131, + "revocationReason": 0, + "ownerAddress": "XrA8gZdwb5LtEzpTDaM2D5oQ6hJsLfgyZ3", + "votingAddress": "XosvobfKEW4A4ifAWiNL58KN28KDtSgXxs", + "payoutAddress": "Xh1HBKLBXd1PBdG7N9jYCLf9rqHQzSoQvP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e2c71769be672a5207644efbcdd57281ec12a1fa5212751ec8ebd5b5c3b047bc", + "collateralHash": "19ca069c498c6d174848ad5c8fea8341fb2c4a1af6e8ff576ed6e20be4ff065c", + "collateralIndex": 1, + "collateralAddress": "XfaqLBWfpdjkSH9FXp2dmJLtDVxaHwizwu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724037, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "Xm6VBK2KtxcqkddLLidRztDrDa7tMVFSt6", + "votingAddress": "Xi8UCVdX9J8jeKsFLVG2CCv7baAfmgA3UU", + "payoutAddress": "Xr2pHmLyEJyF2wfbRDb5msLEHb7UC83GzM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "09065e3227715e05bba352e406c9b1a2fb0df241a61964f0a271c9ad5da88428", + "collateralHash": "cfdeb06de24ce670d21f08d8d743a6521966ec2a8574e975b923deac762ad977", + "collateralIndex": 1, + "collateralAddress": "XppvswN581ftGM3CkirPSrskzysoYqsM6q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520277, + "lastPaidHeight": 1724031, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724868, + "revocationReason": 0, + "ownerAddress": "Xwd4hfQAmSw2s9A3apFLaTtX6GvDNioWu1", + "votingAddress": "XhXNvLNDYLLAFZ1P7DGrkDS8iWC9UidB7K", + "payoutAddress": "XrAhsUQDuB2ZUBMAbZhqKJSKL7srLBmTaJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9fd605df7b6874628ddad024918b59b824cb6153870fbe5be099a6f7fc5d3b9a", + "collateralHash": "b7c49eefaa87bc888cfe9928d7b6b78e5480d70e7eb949bb7e6509836c3861d5", + "collateralIndex": 1, + "collateralAddress": "XjhnYWd9UPHs7YvuoQoKGzWBapqN7QpmzW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520279, + "lastPaidHeight": 1725613, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1611665, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "Xg9k2G1ApxcfdmMNJLfBQ9V51VQsZkKE3z", + "votingAddress": "XgDMfLWvZgapVfUz5EntYx9AeBX5BHCSbC", + "payoutAddress": "XqrJNghAdx17R2SxfHpqgh6yChztEoi5X5", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9972062ab9c6f69a6fc9a8b08e465b06b6220e793fa50c2a170b04fc4464c417", + "collateralHash": "59a5e3e866d5c7cf32b536bb94b5ff30002fa96c26831b8cc389406282b4bfd2", + "collateralIndex": 0, + "collateralAddress": "Xv5fMAzSqVoFoB9eDdiuXAiHpJxtbad1YK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520281, + "lastPaidHeight": 1724044, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724964, + "revocationReason": 0, + "ownerAddress": "XqwFpoKDdreuvMLYUotYYZf9JoQCjvYhPc", + "votingAddress": "XyifhYM5AtpmoqEozKdP9F8DvGyvDre7FK", + "payoutAddress": "XtvXcjsMULxV1RSV1HkZuFdHskTBBgKy9u", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a826977dcbd09940bc81b662571c8574609912a945143c2fd5048ab5d7fb3ae1", + "collateralHash": "8d611bd9f4c595088aaca46e7af96ca421f4f2a623cdfc54acad97329105b134", + "collateralIndex": 1, + "collateralAddress": "XfABtAkRqnwq1wJUYbFpbF1pdDAUgFC6Ep", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1721630, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1642076, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XeSdcUiqcuZjhzXfxM8Qkv8pdCw8M9ftJW", + "votingAddress": "XeR3yKfXwmJDeG7ymJAu33wUEfhRgmxcyV", + "payoutAddress": "XuinpJqJ1LF4JvhgMDHrAiN8Zya7yKkQEw", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ebf43823f906b3141df73a1e3ee726be06d5a339f921881b48c8102b2f3f3ba7", + "collateralHash": "443ed0b4a749793fbe646c4478508d31c5f8ecb5c8d2b23552604a665a53ca35", + "collateralIndex": 1, + "collateralAddress": "XpnpUBUF45YfC6rV7fDyRd5KsuXi1Csc7B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1724062, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725251, + "revocationReason": 0, + "ownerAddress": "Xu9LDgvomEt131ubGhK1QQG9Ev5UL9pnqW", + "votingAddress": "XhZKALd5eY7gCDdZjsLqVg7K9f4ch4n72A", + "payoutAddress": "Xi45fAEj5irWtREkTMjfA1e18bKAAoVHpt", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "fcb85fc93d3b87e656e21c5064403fb0d4aa84d03780b62e9c71f52a6281de4d", + "collateralHash": "b246e56dd805c065db258dbe5b0f70ed1b4139a7eec18e47770985d3306ac91c", + "collateralIndex": 1, + "collateralAddress": "XgewJz1c71qbbZ3cJkPS1ekhWTde7SXk58", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1724055, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "Xh8rBeWp9ZsZ8RK7rBayuG936WRkPeJLnX", + "votingAddress": "XoHGfrSgF1Zo46ifPRvMEqskknz16WXHPh", + "payoutAddress": "XvLaH6dmbiv9czsFUckjJNqywoCWRqREMp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7e324528b13f61a2faf72e4e34ef4bd255dd2713a650bf22e9b01fcc69979a41", + "collateralHash": "d36bbbf8f61c9d53213c1ae23f11aa8003a37396e3d6cfae9f95df3216a11cc9", + "collateralIndex": 1, + "collateralAddress": "XudaWBUy72jenitiR5SvCUX9WjH9WFw6mk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1724052, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726259, + "revocationReason": 0, + "ownerAddress": "XdKYemv1YEqTCQbfSZWfEEtfZsR4cQ1Stb", + "votingAddress": "XwQ11cY2Zcz4NNUiqx5Ws6B56QbaNpVS2e", + "payoutAddress": "XhiBdVkeMkZa2ASX2Wkbx4eim5qDg7keJM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3ab2512519ee28f4ea0029853e9e7c79c6879d1680a1a8d87df4f357c564d652", + "collateralHash": "337df7861041e608ab4f697619e09c953158ae6f1776dd07bd1cd9f6a2d08dd1", + "collateralIndex": 1, + "collateralAddress": "XypUAT3foUxyC2ZA8MucdF2KMk8okirKmc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1724060, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XipKTPKk1K547Z6RREe4gNrJdkXjNJDuuk", + "votingAddress": "XgZ6M8j2FDbjsxwUQ4oL3nguG9Qx5JUks4", + "payoutAddress": "Xozqda8kHhJ34DkAUyLNDq4t51GmnTiosx", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "23583f459a6170878661f5b8794b9dd64505eb69e62e61451e2559278324c0b7", + "collateralHash": "7e034361afba59fe32442e5e61498ab58d01c612e073cead6970fe7bd649d893", + "collateralIndex": 1, + "collateralAddress": "Xtt2sRsjMyzrwMy63UGEFpiKeCZ1yYa4nh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520286, + "lastPaidHeight": 1722502, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1621289, + "PoSeBanHeight": 1724459, + "revocationReason": 0, + "ownerAddress": "XyCEWzyjTvgzdBysU2XRyoE3MUuNaD2pKm", + "votingAddress": "XmfML6MV3EgemFuHQL8Hr93cx6eWXKjmgy", + "payoutAddress": "XxmvKdc7iFWQnsxhgfTAi2hTRs73VW3aNK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4cf64bf38fd1b13b1d928f51cd9be60fd08357c87eeb43c060185a7aee6ef148", + "collateralHash": "0347320ea4ca6f578b7492e99a236fb6940dbf541adfdd37189842cdf17d69ae", + "collateralIndex": 1, + "collateralAddress": "XetVdA5ZfxfVopdJgPgxXfHwduJrMjQqQG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520289, + "lastPaidHeight": 1724063, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725684, + "revocationReason": 0, + "ownerAddress": "XgKh5QfyA9S1bFSVNFFjZ8AwMPjsyUCDPS", + "votingAddress": "Xjg6WTRqRGCdidUs1PCz87Hja4ePDB2UXN", + "payoutAddress": "Xnfep5eScrWeR5kthKjcqVXbzzJi38vjKe", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d5b15d557afdc065042f7e0f3b60bcdc21727cc82751c401e8956d7b2fde5785", + "collateralHash": "57286f80f3a2c58242daaaffbc9539dba5b9bd9561c6e11b1caa3fbf030f3819", + "collateralIndex": 1, + "collateralAddress": "XcLR7XhBELnGgR5daKm5ja6XucUb1Sw3QS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520289, + "lastPaidHeight": 1724067, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XkkFNdnwUYe1FkttwiFjqEYwKN4mTUnBSo", + "votingAddress": "Xjmb8wfjRCjhgN1ts9335r2s3giAaTwysX", + "payoutAddress": "XvkoBjhcuCPibfkjQdxAzJR7qifEgPUQMH", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2748fbffb4f75e9da17c9209ae420a8e3794f5edb458cc669ddb401b68799d81", + "collateralHash": "16f68a26b529d57b40743e5477d172a886ae41adc459b95eb8effee0ea9af968", + "collateralIndex": 0, + "collateralAddress": "XmdXeS6P6nYUaTnuZoXuFcUhL8LMiwPU75", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520289, + "lastPaidHeight": 1724066, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724844, + "revocationReason": 0, + "ownerAddress": "Xhb5wmv69A5PALd4yKBmCuMbEei6bgXEP7", + "votingAddress": "XwLXdEzepmAvnUYWGFkyNkFuPHaQ1WZGUc", + "payoutAddress": "XdAQLMqb5vqBGkzMQapGgKNoMM7KKtE6U4", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "05e90f074f83221ae3bd230409d0e7e087a4dbbc6e24114ccad09bdd2621deac", + "collateralHash": "6a082772c332aa185453d52840f0693c14518ff699238c467b5559ffcd7752ee", + "collateralIndex": 1, + "collateralAddress": "Xxn56Vj5aiNTy2zDMjQTw2D92LzGgCVbqn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520289, + "lastPaidHeight": 1724069, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726044, + "revocationReason": 0, + "ownerAddress": "Xce27wnRduMwWWbWT8JHPhhtzf5kLmtypL", + "votingAddress": "XphNYFoSiLaUDoM5ct9Qe4ZF8T7PT2dAs9", + "payoutAddress": "XiJoNcru1BVEwUoXFrska9XYSv4iDmRzLN", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1526b68cb5f14f7a09381d8872608f45e160ed36ff79e133cc666d53fc60f84a", + "collateralHash": "566594379204a4251f72266e33640ffcf8052645413028e9fe576d2e7c7bb12b", + "collateralIndex": 1, + "collateralAddress": "XszhNV1FesxhiTMaXxo9ZSv8SNQNgsBU3f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520292, + "lastPaidHeight": 1724072, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "Xnftr3ajBpGuhBAW3VvibH2SAorQooGF3o", + "votingAddress": "XyW39GFCpSsqcGG5MfM2fZHanakHQ4myTq", + "payoutAddress": "XbtcPfxQrw5rXpb6wS8e8dq8kxBK9H8ekm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c159af02371feeaa8176c210feae47e3a9fba1ae7bad1e33b0ab6c95e176446d", + "collateralHash": "31bedd6ae95c8311b35af6d4918b66495360d3a265c7e6d4d2b3393d42e2ad9a", + "collateralIndex": 0, + "collateralAddress": "XskBEYXnquTkWx4fWMXcsUwtr1LGPGjhka", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520655, + "lastPaidHeight": 1724473, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726644, + "revocationReason": 0, + "ownerAddress": "XuoVSd9z2UjBJc7cxoJiTN4Fi4o3XzAm42", + "votingAddress": "XboFhirxxg2Pvra3UKNAN9FmyNc3ixKQJB", + "payoutAddress": "XwmrLWwL3J4tGEtw1g7qmF3R1QepzquT3P", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "961ca6942dbf2af60f00c8262c46aaae7366d98a3277b4a3804c2843b63d6d59", + "collateralHash": "32cbade8238dae16476d9a5865bc40fcceb863241bafa3e11a035cb79e4e03e4", + "collateralIndex": 1, + "collateralAddress": "XcNZj1KGEUY2D4CCjjvP8LMZm3SkYC7Uw6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520655, + "lastPaidHeight": 1724469, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725131, + "revocationReason": 0, + "ownerAddress": "Xy1S8Xjs7LtFJpn7XbHmXpuNc51UxGk6c6", + "votingAddress": "XtX2xkXXuR2rkjyJrSxCQPRWUY6EiNQyUS", + "payoutAddress": "XyDZRk8kzEfieCx4hTgaty1FRD9ghKpSoa", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1a343f8af6cada75d9f9f5b6de86fd4f54bc4b9e010f94b05e5d1d22b62fbe06", + "collateralHash": "faf5e5c5f99f2bc1b2f6b151126f38886cb1560784915f7bf9021d713c78c851", + "collateralIndex": 0, + "collateralAddress": "XgkKzFJpvtW9F1wUa1PoFBJRabDipSqx9y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520655, + "lastPaidHeight": 1724466, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726236, + "revocationReason": 0, + "ownerAddress": "XknV5A6wwsuGtRxJNaNzfQa61MqmrWNfxe", + "votingAddress": "XnUEZkcdmF7iWn5No5kZeFbPWeF689xKyW", + "payoutAddress": "Xt5vduTQrsgzENvGLpLGp7Ft2KpnxFo22D", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1ea05da9574b9fb3e46665c759d304d77b96c32d85e962801cb715eca915d76f", + "collateralHash": "d71ae20b1dbcbec65be827c14dffd3f544baf3c1443e1f9cafca902cbc4c3d7a", + "collateralIndex": 0, + "collateralAddress": "XvNAfPdfqspF9zjBfov7Uc6R97ezFoqLDJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520658, + "lastPaidHeight": 1723755, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": 1561033, + "PoSeBanHeight": 1726404, + "revocationReason": 0, + "ownerAddress": "Xcd347qmuw5M5HyS9JrGBt3Gp22wKK7cUm", + "votingAddress": "XcnF8dz2wDj74uCCeyzu56WmwXL6TBnk62", + "payoutAddress": "Xjtf96f2wGQSjcxtdcm6JCJTSfPhY8A7s9", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ec6f4b47962f151a3c8d7183007d2b577eded1f98ed61907f92bf9a3ace98c88", + "collateralHash": "6db2ee11359d62c6e98a7ff7738d8f92f586a39f63b705d72491febd34c9fda7", + "collateralIndex": 0, + "collateralAddress": "XfgGBD8FQ1TrZ5FTQfJuSDKzjWfwoi73q9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520658, + "lastPaidHeight": 1723841, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1561106, + "PoSeBanHeight": 1724844, + "revocationReason": 0, + "ownerAddress": "XsVXXCaLSNgmen6EnKp88SHL4WnRp3xTGP", + "votingAddress": "Xmee76A3wfueVpLJqb7R2yLbmk5Ths374z", + "payoutAddress": "XuxaL5umaFeCr5bm96GA2FZccMLDgopPLP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a0426514ef833eb12e07b30444018c46005ccb39bd31981b608e8703abc9b561", + "collateralHash": "7486d96675830fb08caa05f968ecc56aa9ad433c699467135c39eb321e86fe5f", + "collateralIndex": 1, + "collateralAddress": "Xcui1husLyax5TUTwvX6WUPe9Dz5PiFonM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520658, + "lastPaidHeight": 1724477, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725227, + "revocationReason": 0, + "ownerAddress": "XwwoEThzb3TiFxzBcDmz72mhHkzaomK3cX", + "votingAddress": "XgpAygcFvH5Nvx1zi1Q2hq9PspC2cBnU9q", + "payoutAddress": "XkCWR8Sot2xaUXxauBCaTpgbRTjW2izGeM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f45fcb0b07d53bf6a72798cf428f89714a0e658ac5281acd2f21b9a70e10b312", + "collateralHash": "cee548ffccc506df1c509b0e9de51857cdb1f405eafcc25f3636654835531531", + "collateralIndex": 1, + "collateralAddress": "XyuP5cu7JipgvwvMv3WmU1Uk9x42cNRh21", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520658, + "lastPaidHeight": 1724476, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724627, + "revocationReason": 0, + "ownerAddress": "XoM3mqzY7kgiffvFk3Vh8pThowdYmxXdb7", + "votingAddress": "XyKWLiZJhpRzeHgpSdM75HYH4iTfFKJ6xN", + "payoutAddress": "XwuXqHqPjdPxme35HnrVYM5L5QFtCuJNND", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d7d7f756a207e36127dc1c1d7942164c59baf84838917e071ac418387444aa4d", + "collateralHash": "19c3efd7e0d99ec7188521366af6ca0dd1bac6db021846d05734196a8b41798d", + "collateralIndex": 1, + "collateralAddress": "XcnPk69JTsf7A5H7cDwoLan397Kq2ZtgRP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520659, + "lastPaidHeight": 1724483, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726163, + "revocationReason": 0, + "ownerAddress": "Xo55HVZo6mhptEQdVq48awWD7GBvdRL63y", + "votingAddress": "XkVg8xuacTbTEXNwMjXHmU4cQNc6Ri89m6", + "payoutAddress": "Xu62bUUD64vJKgigZMB1LcFbAM61CKxGYJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b46d40a8a5523bcbceb8464d0cadff146e259cfacb13384fc8e29cc5b672b7c6", + "collateralHash": "fdeb8a5fca9a7e4d2eb5f1bd72c64f7a9b4f563fc3ad8e9605d1fa828a14ddaa", + "collateralIndex": 0, + "collateralAddress": "XvnNZ5QHGH3o5n3U3hmY318bT1exef8o1V", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520659, + "lastPaidHeight": 1724485, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725636, + "revocationReason": 0, + "ownerAddress": "Xmhznz6P8N5RwMJ3chzBFBDtYMrDoNYUQq", + "votingAddress": "XkBYKPy2t9RL77NZf6E751jYYDUrkGGUqB", + "payoutAddress": "XnEfZLvFg9honVApDTs6afwgNTbQP8ze8J", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1119ed78a318408d95b7923d60644997f82cc6902320ab324af0e869b5258109", + "collateralHash": "2d04760bedcc1b2f0765116dc8a57698393cc0db5517ea26fa7bda58a93a66c1", + "collateralIndex": 0, + "collateralAddress": "Xjfafv63GsxVcKh6q51BQ51qre5Hz2kTqw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520660, + "lastPaidHeight": 1728386, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1728539, + "revocationReason": 0, + "ownerAddress": "Xdypy4kHKp2rC9GzPFjfri987W7H6XJHM3", + "votingAddress": "XyyZGFeoWMFKrYVxPuxmfF4L3uAcYdgF2R", + "payoutAddress": "XdWjJXrwfzdmHPtUiaJBGW4ySt43cyJWMY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5dcf7d8d546dbfd9cd200fa1c43e748c9b1eeb2b42fb1458dc7a2cf11368219c", + "collateralHash": "40adfe82e298ad8d1faf371d60ffe234258d44593f484d17d931cf846aeec115", + "collateralIndex": 1, + "collateralAddress": "Xc4dHpx8n7rYJHr25zRGy8dHL8Rhw6NJbs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520660, + "lastPaidHeight": 1724488, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "XdsCk1qP4RVzM5n4z5NYbTu5Bb3D37qUeW", + "votingAddress": "XrqnaTLDQMBGG1FBoAes4q4JBU7Eedojso", + "payoutAddress": "XoTjTBeY6p1RRCqXvNiwsVHcHy33SS6sYY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0ab26ebd92c16d8b84ce83287850b6c5acea05af2be83815fee3314a1c3c4f4d", + "collateralHash": "b70e72a3c7bef0d9d998fbc2e7b3a2d097baf4b870d6af8a833dfd161ba4d64b", + "collateralIndex": 0, + "collateralAddress": "Xotj6sRkR4HTmnVH46dEk7qYdWKYfp8eRx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520661, + "lastPaidHeight": 1724491, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "XfYVLdqQmkCewq5VmxCReHHF81fBmdRk8s", + "votingAddress": "Xqh4tQkoQMhJdeRUciToxaxnaEY1hPWYfU", + "payoutAddress": "XbECKvw36FF6ngV1UXXbDZXUn6fo88wDHi", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5b0a648e35155edc92065a097461b20f2ee2e4823e35f949ac4f47135b49a29d", + "collateralHash": "00e90ce363fa0df804b0d3547f77214c20f6e1acb873e6c49215b224277282f4", + "collateralIndex": 0, + "collateralAddress": "Xd4vN3u9mcMCiBSvEPVVAaWEi4em55fteS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520663, + "lastPaidHeight": 1723268, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1665165, + "PoSeBanHeight": 1724652, + "revocationReason": 0, + "ownerAddress": "XefEgcEq4iCgZZXLnJMEKhjUTEdJeUNLZ5", + "votingAddress": "XyhoPvkMu3EmpGz4vSWEaozfkmivUsjfFf", + "payoutAddress": "Xw6q3BMaxpfSN2AsoGGmk2R7QYmN2v72T9", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7a1664d6f0515d6c34ae3f22b7f9ae4cfea6bf56da79ffd5d6c5c89b8c1e9deb", + "collateralHash": "df5dea63ca2e606bc190ce53bf6a8833f3004f4fcdd74a6ea28831436d7cd3ed", + "collateralIndex": 0, + "collateralAddress": "XjoPhtrQJzbeeUvDkJQBeePPPFXHV4Kbru", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520663, + "lastPaidHeight": 1724497, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724891, + "revocationReason": 0, + "ownerAddress": "XhYdt4CA35RSFmKGcU7d4MF9cE6TSKmnnQ", + "votingAddress": "XqYjUa82acDpjqyWAdPBfaWUECELXzVdHM", + "payoutAddress": "Xune5zP73UZo6TXoncTYFGEn7uAWwM7EJo", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a204d2bb8e743a58137a4b5fda6554012281653664f67c5d88f5815b65d3fa5c", + "collateralHash": "9fa1ffc59658cdfe14098177a0723135d38177c276eb23f1d517ed6b7d0f7a35", + "collateralIndex": 1, + "collateralAddress": "XwEzq8MRyecNqjyAzM1GVc4sW4jJzv4jpa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520663, + "lastPaidHeight": 1724493, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "XvUbHSAbeJEpr2EjSSo8gWWyo9kxSP1KQY", + "votingAddress": "XbRrVafpgUZf9HvsEBJjJ9zsTNuDvvxPGE", + "payoutAddress": "Xng5wJLnGz9X6yp53tdFskgamuyu5d8jqb", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "12c289c797b2058db605835f34c88390d3a379ee6cb1b658f1640fab43c449b7", + "collateralHash": "2b8236cc16dfeb0668f82c3207ac96c48a74f4d1400d451e5b2ff6d8ab2109ad", + "collateralIndex": 1, + "collateralAddress": "Xfukcq42B398wiJ9tb7pe4kztacNNqQbYk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520664, + "lastPaidHeight": 1723628, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1622645, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XxR7PLC7XqxuVZvZpDyDbRgHZeXqL8rTYx", + "votingAddress": "Xkm5TBWqva5ESPovXcncQDLAgeU4LHATwj", + "payoutAddress": "XhaX9qDmoniHv5Z7mX6CeiKpCHst7ADWEj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3afb040498a118810765997e936a526ecf1dfa67fba5a78e8c6d5d45167e2ac7", + "collateralHash": "f040f5374b1a3da7e7134916724727a437e01a07f1785732ef964abe49d5c864", + "collateralIndex": 0, + "collateralAddress": "Xvy4NztN9mJHR2QpiXHLisRjREEhkv5wiY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520666, + "lastPaidHeight": 1724500, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "Xec9v573nNiUHRM2bwKb6ifHEB1uEU41Gt", + "votingAddress": "Xguzcfa35twi1RTLXGqjeM6JvXbsFHMQF2", + "payoutAddress": "XuwGSwRMX1DTwGDxw2Fn6ag8e9tuyAmFBG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "db570bb064dafc14e12f04499cf64e290a6d16ecc3b74ead013ded47675cdedc", + "collateralHash": "4c04dce8346519f41e00732ad74ea754e510158763a02c13c3f59a86f017b630", + "collateralIndex": 0, + "collateralAddress": "Xybis8ukSr2XFypyibCiBkmotVJ6HuxSvR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520668, + "lastPaidHeight": 1724502, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724531, + "revocationReason": 0, + "ownerAddress": "Xyc4VvrX4sWbft5obsScS3pz8WvnLdofRf", + "votingAddress": "XkwYS9X4iYdgc4NHqPy6PFJqmcPDWcHLh9", + "payoutAddress": "XnZErBGc1J98aLpr1xNoV725N7GUXPZP77", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "cb8e26cd37095066d35afcdd1c155e91b6ed6055dbf0a2a979db68ce525bf673", + "collateralHash": "78596c48506cd753e4ff47396d83337366d1b68a7618c333417075b9c07b5492", + "collateralIndex": 0, + "collateralAddress": "Xu7YBz9GJMo9CANcefhqc8qPJGmjna269d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520668, + "lastPaidHeight": 1724501, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "Xr8Ms2dbBoZgUPGT3u5vQhgYz8EqL1hMwv", + "votingAddress": "Xd6DubWDot1R3ZzxmjtuqrXCqxFdEFHUb1", + "payoutAddress": "XgNV1kJfS5bN7XBmrvM49Tt3WTothz1vv4", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "266b1579a2517a4a5439e20337ba62ca13505a1904aab5832fccfc11cd47b828", + "collateralHash": "94f75460147c5ee212b8f3fc4d0de5a68131bc1c427466a6508b88b1cc67183b", + "collateralIndex": 1, + "collateralAddress": "XsvkJ516piqpjEXHt2KZaUPmjZxcSz2z3a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520668, + "lastPaidHeight": 1723465, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1665410, + "PoSeBanHeight": 1726163, + "revocationReason": 0, + "ownerAddress": "XjvmqaR9g7TyQsmshFYGaw6LzmAjRJqQXF", + "votingAddress": "Xnx4LVtCzwGyotkKQd2rm3JzE7ACZXVwM4", + "payoutAddress": "Xy1LcYdG1gPTtm4vwKT4yw2zisT2KyHrG2", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "503a5eb723456eec94699d84db728c623552c885c350d8fd767255eab200af42", + "collateralHash": "b6ca5cdfa542c6662d74f37f122c9f2c69f6e996e240832e6a00e6e421b78751", + "collateralIndex": 0, + "collateralAddress": "Xrrfoiq4rHCttZgTVFNmHgeXqkU9USu8Pv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520669, + "lastPaidHeight": 1724503, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726787, + "revocationReason": 0, + "ownerAddress": "XmT5u3YAR1Me9ZsviCG8gMzYRBK7LYrNrk", + "votingAddress": "XwZv83Uj9mm8pNYcfCZLRXGFsJipCDxWYz", + "payoutAddress": "XghvoWxJ8zwGAbXaerZarhVicPEnNwepTx", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "fe589b5986f1a11e9a4e557ee74101ec3ba143cd6176f41bc728413f81560eb9", + "collateralHash": "3960aedea26bec8087364dc051b226ccd6eebb1d8be63f1b260cbee744acd601", + "collateralIndex": 0, + "collateralAddress": "XhaRwQc5SqVWMHKTwJDbtLZok9h39HcawL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520671, + "lastPaidHeight": 1728397, + "consecutivePayments": 0, + "PoSePenalty": 4456, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1729043, + "revocationReason": 0, + "ownerAddress": "XnRtdkJErxUdvsZbGEjyU9SXUuLE213aKv", + "votingAddress": "XtTCEkBBMLT8kg5ktkUzvQ75v2S4Y65qoe", + "payoutAddress": "Xs4Jun7GAzKirD5ztaP8aCd3hoMzorGwdi", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4f282821913266f5ee17228c661ab79e110d85a841c0cb14f40377745efe87e8", + "collateralHash": "09350ee2c984fcf7cfe6fb75f5f89ecd8a6b6a42221d5a23018d02531bec8258", + "collateralIndex": 0, + "collateralAddress": "XwKy6z8gQ5qw176WGyAbwXkGWFJ42in3tY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520674, + "lastPaidHeight": 1724512, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727004, + "revocationReason": 0, + "ownerAddress": "XdoXZMYB3E7aWomuACJTCfG3Mq9a7W6gHH", + "votingAddress": "XeuwKgvqdnhsracLsnHnH6EgCPHYY5Fb37", + "payoutAddress": "XnKPqWLgpvkDcGGRRQMAFpuoCsjv26ARBn", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "eaa2ec8c0543f52f1d8bb0161fc0386097ab6cf8018d5ec9fce4d57bb3c6ce1c", + "collateralHash": "607ab47e5996c08a25f96f6a08a5994738b01e7a60db45459068ad4fa8bd7823", + "collateralIndex": 0, + "collateralAddress": "XxReLjKxDmf7HgJUF3U3QQ1fPLNEtpChpQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520675, + "lastPaidHeight": 1724513, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725684, + "revocationReason": 0, + "ownerAddress": "XpGNLyG57kqdbhypQDy1suF4j2HNUFgd1d", + "votingAddress": "XjqzRCGuJnekaxjjS1XT2imXahStgZiB8J", + "payoutAddress": "Xx2U54xNhz3K7qWA1vYPE7eTMiMpV5PLuc", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f0056cd283728ffcde8b6aba68327a112e94b19eb1deb3be1c70e6170316732c", + "collateralHash": "7e8c88f50d8c80214c0e8bcc224cdf37910b6ce9e0110adb3a0e5e1632eaae65", + "collateralIndex": 0, + "collateralAddress": "XmTqWZwmgpbo72ydJmahvvuSsGEsYoH5pV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520676, + "lastPaidHeight": 1723309, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1665221, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XxYTAPYuHmFWRifDnrWTQkzs6P8rFJPwB6", + "votingAddress": "Xkxiz46HxXPbrnKd3AgjDSHLuAVt7n7L28", + "payoutAddress": "Xn8fuQK2VKAo9rdZty1akY1b3spS6p4sPz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bdb8c701b316f245ec2f8aae8dfb611e62e9d9522da5239402cb4fbb83aaba89", + "collateralHash": "7cc7f3ebf71c4e929618c804a3c3e629504d7e3a8a605fd29b374aef7eea6b5c", + "collateralIndex": 1, + "collateralAddress": "Xm9kY7hfuucoKbWDPU4oHJAVRQW8jobxaH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520679, + "lastPaidHeight": 1722655, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": 1577709, + "PoSeBanHeight": 1726523, + "revocationReason": 0, + "ownerAddress": "Xpi469XCKSgfdBVrhhVhjkhgBYu1rfY3sD", + "votingAddress": "Xhhqznd1f1pogAPiKG5iDetHQmAFwojkfV", + "payoutAddress": "XntxkVwD6pNLFwnf6DupDqyWnFHDSFh3z4", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "951a4b2140029ebadf47f873b765dd8041d5e6508174a9046b3a448050eca59a", + "collateralHash": "e04b5ccbf4d645880b826bb0be536149efed168000515eae3663971beef05381", + "collateralIndex": 1, + "collateralAddress": "XhqSSKyKi9CD2VwpuAfnHGgoFbNAtDZH7y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520679, + "lastPaidHeight": 1724515, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XtG2FeLVveSmfFosDuxC3b7MPnC2CSDmjE", + "votingAddress": "XffFJQKzrjwQJtqmQ7vAVMGqoZaUqEi1qb", + "payoutAddress": "Xc7nVFfNJiFLX69phDcoVF3CVXw8VNcwNR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c1d9000e5b79651838c5303e2d509f46ddd2f073c1888b9f60dfcbb15da316ab", + "collateralHash": "26cdf68e261ff4d64bfba0ac03f5c9c1e1dff5c81375a8c218cfc28e31ba5a7f", + "collateralIndex": 1, + "collateralAddress": "Xdn5oXhq811F7cKM7cyGHMCDV6igWug8ow", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520679, + "lastPaidHeight": 1724516, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726692, + "revocationReason": 0, + "ownerAddress": "XtkvvYxYmsA3WUrdgoZUXE56DYcBo9rYBA", + "votingAddress": "XrnKGbEZmy1wd9L2Fh1ga22v3qVQtKGKMi", + "payoutAddress": "Xs8h51jpehx7aPyj11rPe4dSQY5CSsmYRf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a9d72679a7f920ddf4c676fd580f728850361d498dc8790b6374b4e02e4019ae", + "collateralHash": "fc009a377deb619d6fbeb45fc87600f483efe0f6156e83b6f3e946ab2b44d87e", + "collateralIndex": 1, + "collateralAddress": "Xxvr6kPYn9SvazShRaWS11SMLkDbgGZRsn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520681, + "lastPaidHeight": 1724524, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726860, + "revocationReason": 0, + "ownerAddress": "XqpyXXekMsQruKfnhFqzCMx4Z8y5mKJnfC", + "votingAddress": "Xb7jWWfyhmuwyNxXLtav4PxvPWgeaUqF3J", + "payoutAddress": "Xjq6Ai1nrzbgL3MEGD1Hq1tB2yQaU8gj9N", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7dffd287ca1df3abcc70287905970f409192e91089a5d219781ac96c20942c0a", + "collateralHash": "b7f9c34eb416f35b8ec57828e0c2caa70748bed306884481000cd53134bbbc12", + "collateralIndex": 0, + "collateralAddress": "Xnr6ZiC4ZKtCW58EGbFtrYmAjrfAbzRfFD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520681, + "lastPaidHeight": 1724520, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726140, + "revocationReason": 0, + "ownerAddress": "XakKp8S4Ey75kbF8njEyRwYfMuUbw4JHk6", + "votingAddress": "XqYSx7owxqMsVfyVzB4vicqRk3ipt6ZWps", + "payoutAddress": "XnY16WvLuTdHtH5ybo1KEbktgMqKFBKXrA", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "98488b5f46dd7c68c2c4b08b855abb4b075f3dab74552f159f5177e9658ce988", + "collateralHash": "dbce8e34b0fc0e2323a74029dc8987bf57bbfd9148161a0aab81b49baff34033", + "collateralIndex": 1, + "collateralAddress": "XjrKDvB3rdsprrCtkvUVoskx6d1VcuxUec", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520681, + "lastPaidHeight": 1724523, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726356, + "revocationReason": 0, + "ownerAddress": "Xj8iavvgrabFodZ4SgXLLG9kGrirqiTDjb", + "votingAddress": "XvkatR5rrRbWmLC11QVS4jkPHmtJUJFXvA", + "payoutAddress": "XxGhVsXRZoxaqXEmYBXZoioe27ZBq1iwn8", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2aba887568e2b7d1caa7dc0d006484e9852ab330aa3fab99f0f0b9d7f2380a80", + "collateralHash": "44deb968e0b4cb3e670b47beef47a95684b4b7f99d16b46005bb6c7a04270ea4", + "collateralIndex": 1, + "collateralAddress": "XyBUkXGWWm662gYXiacbGz5r84BVH2q8gA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520681, + "lastPaidHeight": 1724522, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726870, + "revocationReason": 0, + "ownerAddress": "XhdqVQs513huCAFrK3pa474bfgX5QMHEkx", + "votingAddress": "XtiF7kk4Xo54dBFYkmUpZbQWv7XPZtbaTg", + "payoutAddress": "XrqkWvrh1CavwBibd4F5kBs69Y7G3uK9mA", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2daee4707f07f270dfa8b4ddd9914c1b044de374eda335491587d62b01e43563", + "collateralHash": "2cf522c19321a322b440590e0f6cea147f07349c76eeda1d52291046a9052110", + "collateralIndex": 0, + "collateralAddress": "XidUSDMeQk7aGPaDCV9oWtfJzZyjrHDXRP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520683, + "lastPaidHeight": 1724526, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726427, + "revocationReason": 0, + "ownerAddress": "XqHn4o7UJ6qqiuoqqYFp289Kpv48H1uvBf", + "votingAddress": "XnjSF5tDHB6NrxGJszpRn2SRiy9RSPzfVD", + "payoutAddress": "XjZzYUtWG6SL6KR8GXoPpRTLbd6znawT9m", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d0b97b6271e0409c55e2b6d73986f02851c1a6f915d20bafa14878b954f5a517", + "collateralHash": "7ad07880b0c58fdcf10a027c0729266370fa5e756e4a474ee4c11b1894ad52ff", + "collateralIndex": 0, + "collateralAddress": "Xw3LRijRxoUsinBmheMyKnCMocZKHDduH6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520683, + "lastPaidHeight": 1724525, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726006, + "revocationReason": 0, + "ownerAddress": "XyYRgKHXtRbAXpCKYeqz2QqZbM3fgzZf1S", + "votingAddress": "XnFxLMfgKGu8dgWyZLjknxnUDrjdnW4LtU", + "payoutAddress": "Xmj7QQpWonht5wFNAyxSzTviPbMquGSacH", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6f0e4c06de7c10cb803fa6ba7100bce232c3bab827eaf2ed6d0cccf0c1e96be1", + "collateralHash": "06452e552962b76606c05e17897bec7f3fba0db4135a425dae1e1dc9f3b9b97d", + "collateralIndex": 1, + "collateralAddress": "XxoBTKED4xMrv51LLBsV7R4hSa6DfKTEUs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520684, + "lastPaidHeight": 1724531, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726427, + "revocationReason": 0, + "ownerAddress": "XyXwFKj6vB74bLi88JgWNALs26C37jyrCF", + "votingAddress": "XmFwFKuoTaK1qa5CRRsh8UQ8Yw1JVVHyUJ", + "payoutAddress": "XhhGd5NME1DRMUkifVa3psNgdGFTADQwAf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "44aad042df6429d06be636d99843ad580d0c79b86cf574e75c5db05cfdf8f5fb", + "collateralHash": "b3517e7108664bff1fdf28c93f663171c2fd279adf9de127943f79b2c4f3679b", + "collateralIndex": 0, + "collateralAddress": "XfYaEQSwrdHLQ9c2rZFxa7cQSiDVxXLHFg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520684, + "lastPaidHeight": 1723215, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1630836, + "PoSeBanHeight": 1726044, + "revocationReason": 0, + "ownerAddress": "XoXDz1xMuWJMpsbwxjnsV9ka349TwiptHG", + "votingAddress": "XgPmueT38mNMmDtELBHPHDb555qmVwfQy3", + "payoutAddress": "XtPb9XxieKm4JGtkXSTje8Qz3tvfENr3nF", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4d52aa7e13dac3a2257842ba7827b1a7637ac0d3afc0eb930590f3ea786cc89e", + "collateralHash": "b24d76a4e3e37277ee263fcfa70ebdab6e4f41ec98a475d4320d98824ffb96df", + "collateralIndex": 0, + "collateralAddress": "XnHBYg6vf2pSDzFnG3F9uHc8DzJQzDdSeR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520684, + "lastPaidHeight": 1723558, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1533242, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XnHCxnr1wG4tFNsVyYf1tajCK1ei1vZdbd", + "votingAddress": "Xj6LijR4gPNnoBE1LdnCr3vzByL9ZNQRJD", + "payoutAddress": "XgppFGomzvwAjiXfRMYXPV52zGtYZGPvpw", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "833e6ed4c47c386b2920ba163f2e8444987f67501b1ed7be6eda924cd22af902", + "collateralHash": "42af11a29adbea6560661f439ebb776f00acd233f5e0b213ef05e6bae254313a", + "collateralIndex": 1, + "collateralAddress": "XfUAncU9QnvpKqKDwWFHAmQBzxoi6zjkEM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520685, + "lastPaidHeight": 1724437, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": 1579717, + "PoSeBanHeight": 1727446, + "revocationReason": 0, + "ownerAddress": "XiRoXyti36h95j89hqsXwyhqHK22DcHEgM", + "votingAddress": "XiVvMQDmAQf6PRKXYgMtiK98AAziMvHkGQ", + "payoutAddress": "XhJchNrPAfzry3rXfCWCNpe255wmSQNsHR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "eca3c4b9b4f258899e528ed34d98c2fedd31526277107183cb9039944f267046", + "collateralHash": "50aa2828eac01f364ee15749472b5cd9df233bee95b58bab0bce3c667607bd0c", + "collateralIndex": 1, + "collateralAddress": "Xt4wM9g64FC7QobK4VKtnSuzFUFPr8NHqG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520686, + "lastPaidHeight": 1724532, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "XmkojrpJWwVBZtDnU3APrXUtRedtwWkKjg", + "votingAddress": "XjDY1iMZzr1saxSsQt76H5NmW1NmkWC9Wk", + "payoutAddress": "XbqwV7ZL3YsR73rpgSUGEh71ko2S8i6xns", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8534da651fb6855ee766fe6811cec150a97b3e99679b4fdcbcafa2193bce35bd", + "collateralHash": "9e2d496d6c25ee699d103fad90110d67bb83b79e9f1c20f8de8cd262ee566c49", + "collateralIndex": 0, + "collateralAddress": "XqiwCVFQvqGinoQZW7xc4SeNb2iMvfDTSV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520686, + "lastPaidHeight": 1723543, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": 1533231, + "PoSeBanHeight": 1725732, + "revocationReason": 0, + "ownerAddress": "XnoAijxzPJ1W6AWto8RA4ZsxS3uC7QKxAD", + "votingAddress": "XnXacoiDaXtnocHXkRVipzHAPEC3kVNEUo", + "payoutAddress": "XsLaGKxfMGjTx9Z2diQ8CpfmnWZFaUXufW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9b9f53469379d8cb1051111d19ee02560d61c122cb57ef92b8f06e0c52b69a9c", + "collateralHash": "da10573c565a519e104ea40dd1cdf344572330be07e10314a31a42a799245152", + "collateralIndex": 0, + "collateralAddress": "XmWoSwUvJ61kTGyYRdPtg2QMYAWUT4bHYd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520686, + "lastPaidHeight": 1724533, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726582, + "revocationReason": 0, + "ownerAddress": "XvXzYFrac8SnYV35FwMukNk8BugcxrjfDb", + "votingAddress": "Xnfc5ZdUB1dXyQETc9faEYZwtDJHNzpPgw", + "payoutAddress": "XfVmrK6UDVMVtYdVE9ypcedJorYJ27dHRe", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ebf6bc58b1bed8c8f24fae037df60ef65366d22c7a603c4733e7789f86df92c6", + "collateralHash": "383d2d662c2f89b0d18b68ad818e53d808d65627d746a2e0d2099ba61ff721f4", + "collateralIndex": 0, + "collateralAddress": "Xx6FvvmbDcgdq3zFZrkf2VnsvBzQRjqPNN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520687, + "lastPaidHeight": 1724536, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726404, + "revocationReason": 0, + "ownerAddress": "XoCTE73S4urWqBMQFLBCssLvMYgUkmmeP3", + "votingAddress": "Xc47xK1x88CSrB2VdhNDNXQvXSvz7v5bLM", + "payoutAddress": "XoQMfVCmpdX3g1Lvdt8g2TTV6e6XLDGzv5", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9349ec3fd1286b26a83cd78d80ec4dc2186a2720d900ed0a2cfd3712fac56fef", + "collateralHash": "8c83b01363bffddbb462751c0c365e8147470e10279824ccb2e813da48f2ce38", + "collateralIndex": 1, + "collateralAddress": "XarsvESmPv5NYGfdeiZ6GiBFRHXGkKpj6v", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520687, + "lastPaidHeight": 1724538, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726331, + "revocationReason": 0, + "ownerAddress": "Xu5TESGfux2Ffy32F4zX79ZS5K6b2Vzxhi", + "votingAddress": "Xbp74UjdrXfKBX8HYRxfkPPDbm2JZ53rMM", + "payoutAddress": "Xyf6GPbBnb5rfghpbqhXYNTB29BkVRi5KY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "713746ce4dddf77918cccefa5a310842011d069c58a44ddee1dad63d65203960", + "collateralHash": "f83290925a5baeb7d040c16bccfbeb37747dfa7738470e67ead34edbc697f466", + "collateralIndex": 1, + "collateralAddress": "Xb9Eu6XtPgQKDvrgkFrvp9avrX7kTznyJV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520688, + "lastPaidHeight": 1724542, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726259, + "revocationReason": 0, + "ownerAddress": "XmxPZ9HCc28YyDatj65RvGA7FxbFsgL1GG", + "votingAddress": "XfP1m6kkcZQKVx8d68QWW6rpHF2Y14envy", + "payoutAddress": "Xeg1mFaLr8dyNRUcLhVugdxShbYQJJSByW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "961983d5d2a17bf8b7df666b07eb2302fd96ea19905baa979e58ab7de889a4be", + "collateralHash": "198a4290f30afc8d6bff32142a89ea23008c2241b7f83413f3a93ffe3543c873", + "collateralIndex": 1, + "collateralAddress": "Xy5LtovhhBcEz3Gj8T5ZtbnFUh3WDDEn1c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520688, + "lastPaidHeight": 1724544, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726211, + "revocationReason": 0, + "ownerAddress": "XorVrWRCLGStkdE9K4MzasiGmBcg6JfCGM", + "votingAddress": "XmWCxC7TXi8j6mVVwibbBMj2qjsSXMYEs4", + "payoutAddress": "XwDr8qxyjSeUn7uqvjNUfwCHaREk9M2tJi", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "fd8259752412bab764ba204bbc0f08716725c9cd759c04dd26f29ed57e6c933e", + "collateralHash": "6a8924e73faa7ced727c2fffd708d10336e1ed3661ab136a135d1a1e52ef88a4", + "collateralIndex": 1, + "collateralAddress": "Xji2zGfvxV8VVsP1D56qWSeJTzhXh41KED", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520688, + "lastPaidHeight": 1724539, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1728084, + "revocationReason": 0, + "ownerAddress": "Xcn5AM4P45DR9aV6gbAZy8HTK7rU9JzJqW", + "votingAddress": "XrnUiUoMp4oST1piWSBKnAxquLejLwWia5", + "payoutAddress": "Xufe5dUAPi4h4rKRGyGaXvuJfqyxQ5QL47", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9d8584edcc8a2e6c83bdc968bb303efe6f356bbc2b05df362af07616f75463ae", + "collateralHash": "27e36cf595e2ab716c4f6a056ff4ad3bef6ef643f2914dffcc162daf43d04c3f", + "collateralIndex": 1, + "collateralAddress": "XpipMDRRvBsbbfw9V65qrZ7idu1Kca9hmN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520690, + "lastPaidHeight": 1724547, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726006, + "revocationReason": 0, + "ownerAddress": "XiYpyYvnjXgNhSVeNpFi13LGnRNpMxSA2R", + "votingAddress": "Xgc9CKhNREt5Mv9qDsoh8sEsY7TYGtTRFc", + "payoutAddress": "Xmf6Z6Z4QkLewMEprbwSrw7NyowAcK6kdr", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8e0f4a9ad6d737d940da2442ad7f6ac6e99a67559087fae84e48ca23dc717586", + "collateralHash": "32e0090cbfe3d3929b95d30739a91cea93ac5d5f2ec2e57af2f485e66ad0d735", + "collateralIndex": 1, + "collateralAddress": "XqXr3r1ZYh8azwS62PPg7GFC5X61xkTXqu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520691, + "lastPaidHeight": 1728420, + "consecutivePayments": 0, + "PoSePenalty": 4462, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1732163, + "revocationReason": 0, + "ownerAddress": "XcX4xQXLHiPQTsuND33omkqSc7JCSEMnPz", + "votingAddress": "Xo9cApehttcETFRhX3FNYdnB87nAt5Zxyb", + "payoutAddress": "XqJw6Dqx4gVSzCQYemLfyNrn16SxWzekkc", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5924bac752f97b77805787a371e1b9c08db072d214c0ab573aea2eedcbb0bb58", + "collateralHash": "e35ed5f81f86a1c649324f68e850c5d662d24ca3362f9c01c895af5b5ac5344e", + "collateralIndex": 1, + "collateralAddress": "XcntA5mXy29UshUQSWTJLdUjDcg1MihUq6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520691, + "lastPaidHeight": 1724548, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726091, + "revocationReason": 0, + "ownerAddress": "XbWpyDQts3KyiVz6uaR34q5PtMP4sNPusD", + "votingAddress": "XhuUyousfvRucopGKogbZESZ9o7uJ1woPQ", + "payoutAddress": "XjMYEZtBj97sUaVgyhvTfhvyLvahwZ87wG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "65cee06144d78a1b1eefc6bcb001ce0c46ddf9bd831d5475d438cc9655fd8c03", + "collateralHash": "faa75ed75fd0e5394265ec94791da6476c54b802c2b16b7eee6af17351f918ef", + "collateralIndex": 1, + "collateralAddress": "XjUubij2VU5oQ1hTpdn15wPYFBQhwXY9cU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520692, + "lastPaidHeight": 1724550, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726644, + "revocationReason": 0, + "ownerAddress": "XmGTDjM8FdxtZyzUA8B2shjwvXmMtvPWGx", + "votingAddress": "XgZVyo5A3nQmG6A4RFfS7aLsfyoYx1fsp9", + "payoutAddress": "XdgkZ8ErF418TpwzU4bQtKnztEZVPfVdp8", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "522abf767ba78f6eda2a64ff5e4d3a6d6b66ffda2dd68baa188ceee340c239be", + "collateralHash": "e63e9797e76e9ebda672c295615776b1c49e3e2417db7bd355b75b7afb8cc78b", + "collateralIndex": 0, + "collateralAddress": "XsfQArJKMZoSMSPCXvx85NB9uu6PbYYPi5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520694, + "lastPaidHeight": 1724558, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727446, + "revocationReason": 0, + "ownerAddress": "Xh2SGjd8RRUjoyycqWtU8P65YgJxQcwKiY", + "votingAddress": "XupHDSi13ieFZygaaGHu7CQPNSihKbAXfF", + "payoutAddress": "Xym5uKSha1qsQy1e5kv4GKAsquex7MXzLW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "52f3db8e30c17e199fdf3d3650a9e03774dced07cec022f60a456881201de3af", + "collateralHash": "134b5738c1196bc65c1f9af14ab46c60571583d35934762b05d829c0b94e33a9", + "collateralIndex": 0, + "collateralAddress": "Xejxaosy6V9Eu4EwRMvQmntiSjYXLGqDGP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520694, + "lastPaidHeight": 1724557, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726091, + "revocationReason": 0, + "ownerAddress": "XsuPmwqQCTZbEjZVXgjMDseZUywt7MVtLJ", + "votingAddress": "Xrq4fUbLmbHA3QeRaHAA1q18nuHMxdscRU", + "payoutAddress": "XidpbE877znk45HsR9FaNhY288Po3RxRbz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "59455d6258083b7781297f4e5192f4f3531904b02426273cc86349c34eb3863f", + "collateralHash": "9d64b3641f546c3230984edb4a32a9796cd7a17144fe610ef16982aac32dd47f", + "collateralIndex": 0, + "collateralAddress": "Xxn2c8op2N2XBuvhYwmtPZ3U87DDtimRXp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520694, + "lastPaidHeight": 1724556, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726259, + "revocationReason": 0, + "ownerAddress": "XgXxHf2y3HqBJhNhSGPxZZrd4y9dmx1J9i", + "votingAddress": "XxTwWKz1Mev2jXthebgucPhvWGaupVe58i", + "payoutAddress": "XihEAdHo5RbeD6Jh8P3M6cwybmWZ3rZwaF", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d3b3e6d6574bb298196d15a106192ff09fa93e88574c6d6043ab4d6ede348f2c", + "collateralHash": "06598593210af10d373ba05eb8cb4d69f18ffdbaf51c6005b15c53a98a0425fc", + "collateralIndex": 0, + "collateralAddress": "Xcwe64Ggqkc5hbBgadoNzRsnZx8us6Kaz2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520694, + "lastPaidHeight": 1724554, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "Xq96Bhe7c74K98yiL7roD9s262zzuY2rUC", + "votingAddress": "XeuXvDNP5gjHZCFVNNTQwNK8GF3mtq3B6Q", + "payoutAddress": "Xk1gFgDmSmQy5zE5wMy7joBGVPqFHUrLxZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "02880d82a54580237e9831761c3b22ab067b4bab9e62423a7afaae468fab89e1", + "collateralHash": "04d12a6abb9fcca7b52f53083751e095da46426961e0b5a10fb150cfdba4f711", + "collateralIndex": 0, + "collateralAddress": "XtxjQziy17mGCPnQr9eHzbm349PsjFeKHV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520695, + "lastPaidHeight": 1724560, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XrHCzfz3samawZX35UwFtbTYmg2CJNuEEn", + "votingAddress": "Xmb5VmCK5qYZPe1tdNSPwQZFoDpMprxWq5", + "payoutAddress": "XiVM8VHThUPQhoYBtHyGUAeoKcLA3RhZN6", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "579d4b923303a277b3b4cbe29f0fb2809ead7084ad69b536c02747959b5de67b", + "collateralHash": "97fcc752309b2cb8e3961d411f2c3ecc84847d0d9b69e9572f68b9883af2d246", + "collateralIndex": 0, + "collateralAddress": "XvJNoh6PDvefpwhUhAo3UkeR3SwdmrbCrX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520697, + "lastPaidHeight": 1724563, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726331, + "revocationReason": 0, + "ownerAddress": "XpSctgnKuCtgweouveWrhqHHuAMFEBGxNV", + "votingAddress": "XuvgmT1aVTVuyNLZsPbbKx7cjxqqW9irPm", + "payoutAddress": "XpiAf2tTLJSmVJYsd1kofqLief4Vztv3tJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6516d0d412c0d94ad4e9bdd5e3ab42f0863f32a821e5f23c24e8cb111e711093", + "collateralHash": "5be0d23d5b7df9a92d4183e0b442149823975a759a112f63f988740271abe3a9", + "collateralIndex": 1, + "collateralAddress": "Xbd5Mig1uPEFRS3xsPKs1Hs92DyyQJKwvW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520698, + "lastPaidHeight": 1727563, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1533231, + "PoSeBanHeight": 1727940, + "revocationReason": 0, + "ownerAddress": "XvG1STcEcNQUmLfiVuiFbgpgAafrZEtVrx", + "votingAddress": "XkQZrYKchKjHzPJcvxWshhrwgeaTLWtLqc", + "payoutAddress": "XhhWEvCdq2jXgDfzzYtcEqT7PxeLTuu6Fz", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "8a276b78a1b0ed30d87ca07e1d9188d746d25011205afacfda17be8d800a12d6", + "collateralHash": "88327fd354647b108e802f21944769b1ded05275b7135c143dd4b231cba54d6c", + "collateralIndex": 0, + "collateralAddress": "XpDpYKoj6uocmfQv7vTbQpYFffzXxLFHyf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520698, + "lastPaidHeight": 1724564, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726379, + "revocationReason": 0, + "ownerAddress": "XtGPzYmkPzjEquYBJFRM7fkL8hPLo8QXmX", + "votingAddress": "Xvk95Sv3nEQHHFT9Coa75gUkNRFvoupqZo", + "payoutAddress": "Xx8jkXqMBo3ZZkFeK8NebtgvT4GzyonxQT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "233f109446f91a054999f2ec3a76fb8e2193ebb5723fce9e3fb388bd7d91179b", + "collateralHash": "f50c3de67b33576707450403400927cba7cd858c4001a2056533ce42c9fa5979", + "collateralIndex": 0, + "collateralAddress": "Xsj23dSLzQqnnR2C8WjU8XWBjheWJBE74c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1520702, + "lastPaidHeight": 1724567, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726870, + "revocationReason": 0, + "ownerAddress": "Xmfa8BbKro8QdkmMovENhpkSmhZHMYcxVK", + "votingAddress": "Xu793BXJ3x794SDnKUgxasF8HB8KoneB37", + "payoutAddress": "XcQgxrv2hshi86fwefbiVU229WsdXC2tCe", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "22c2ac2b888a26cf762a5d3d9bfce84a996c8de7236269ea74564ea17817bc6b", + "collateralHash": "605b8642345e2dcccf3e68d953ad22400136dac2c262bd82e111d75f58175263", + "collateralIndex": 1, + "collateralAddress": "XdFt1ZHDWG75xz7UwcUfQotyF8qWgkZgAK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.248.59.50:9999", + "registeredHeight": 1523402, + "lastPaidHeight": 2062157, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2038590, + "PoSeBanHeight": 2063253, + "revocationReason": 0, + "ownerAddress": "XvBTEU41FtcpsECSdp1fkV8NS5mPsgYEjW", + "votingAddress": "XvBTEU41FtcpsECSdp1fkV8NS5mPsgYEjW", + "payoutAddress": "Xed5ai8vMy82DgFTYPaDzmbmLqB5DSn4x8", + "pubKeyOperator": "995d6e73e9247c8300049b052fb5aff52dabdb9663618cc035dc9d61913895eff7b277d339b245af121e8abdbde2a707" + } + }, + { + "type": "Regular", + "proTxHash": "7d346739032d4236856a75b6b3830f5cd476c71fb200a203b17b8424242fc512", + "collateralHash": "62cb9be2d033ce4dabba09289422f930a35e7a06f2924df40e0da2c0d0a07f16", + "collateralIndex": 1, + "collateralAddress": "XkrmkE7VnpbhGVop1cKMw3di8ucijU9TU8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.207.7.9:9999", + "registeredHeight": 1524164, + "lastPaidHeight": 1985633, + "consecutivePayments": 0, + "PoSePenalty": 3971, + "PoSeRevivedHeight": 1987311, + "PoSeBanHeight": 1987818, + "revocationReason": 0, + "ownerAddress": "Xb4VF2HXvkRgwwEz78fNL6VGUrEfHP3X3Z", + "votingAddress": "Xyth6GN9hMqap1UfvS4RNYNeBK8Vnnespd", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "0ecbad499c7d2745633699c199bd28b6a71aa9ed65e89cb16c71c51ae7e1fd2ed6502c13b673cfc4468cd3dc70d4f594" + } + }, + { + "type": "Regular", + "proTxHash": "a2f3e21f50ea970420d45af69106625fed93edb265ef4a7c347526fc45dacdfc", + "collateralHash": "9f68e41686e250f6d87e7e1c42910ce7695cf3fecc392cd496c3f9679d18eb79", + "collateralIndex": 1, + "collateralAddress": "XhTyWEFVxfn86xwpmJfotXsPX8d7hptJ2x", + "operatorReward": 0, + "state": { + "version": 1, + "service": "184.72.94.231:9999", + "registeredHeight": 1524168, + "lastPaidHeight": 1985639, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": 1986577, + "PoSeBanHeight": 1987797, + "revocationReason": 0, + "ownerAddress": "Xx5yXkSAUosK4VDtPUVuEkkeLx9piqZZ22", + "votingAddress": "Xn4YmxRrD3aHpQASixY7ozYysqF11HGUCm", + "payoutAddress": "XrDEqiyAAL8str52eej7rr7A3fpp3md2uR", + "pubKeyOperator": "056023e136911e7f0508d885bd7a78a9b90e558985c958c4cb9f90b1866ec4cd6c177ef37f4c83f08f657a62ed53b193" + } + }, + { + "type": "Regular", + "proTxHash": "2cf22fe7d5658571eb111b72c31d4a20a0578647e4673a20e2e2a76a3865fc04", + "collateralHash": "7382964fb4c17ed792896edd5eceacaee997eb024f37ceaa22d3a6c86f1a00ae", + "collateralIndex": 0, + "collateralAddress": "Xu6CXUWApEGJ2bNr2b9Dyrv3baqUVLqBoH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.122.32.230:9999", + "registeredHeight": 1524695, + "lastPaidHeight": 2126749, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiP9zS1hznp8w1WX7KUmE9KcmDRGYawn37", + "votingAddress": "Xh2Rhien2Jemd2vjDX5tqbzfZ47zB9tiWw", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "8c4326eb13a57102f4634210c25c162a3edc87eb9520b241808d1edd227d3a3a14d3a61a4a08a44266d4e5fdb95e5eee" + } + }, + { + "type": "Regular", + "proTxHash": "709b6291ec9495c10dd8b51905df4703adf26ce066776b3e08600f69a57ea123", + "collateralHash": "2e6ed8df460d3fd928e97cf9298a9a25e4e0cf8d8ae63c875dceb7e1cbe9f06e", + "collateralIndex": 0, + "collateralAddress": "XdVqC1KEeEGH271BnYQCoBceihMk1p8HDW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.60.13:9999", + "registeredHeight": 1524698, + "lastPaidHeight": 2126753, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg1oNuCdgEb3io8vAQf3YB5xFt2aKpvT5Y", + "votingAddress": "Xd8mFoHmr43LjyW1Tu4NYA9MmJvSgyuYva", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "9542513908972b9c0c9b51243982af52d502604dae52eb08a5bc67f8dd94d0795479598a88299384726d01347ad6b3c1" + } + }, + { + "type": "Regular", + "proTxHash": "e0f467ceca3137f6e4d7fddc88c61ec43a7536a5ddf62e9c0c7affdde943fd8b", + "collateralHash": "40cc2fb4e825ca9d43eb88f0e4a15ee6a548266765f393e4871407169f20ad8d", + "collateralIndex": 0, + "collateralAddress": "Xxu4FcdNxpyuD5ESfx7xZFsreRVdMUQBrb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.205.145:9999", + "registeredHeight": 1524702, + "lastPaidHeight": 2126759, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmMQu8fN7wQfFyxb4TQAGoaitCgBHZkWQU", + "votingAddress": "XifWgoBVtooJ1fs7Ay2LjMDkrkgYV6qhsP", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "0420b5160aa3deb742d4dd3d079f5d798a3c3defd59a34ae25b1637cde754a4b9642a380012729ca6810e97899c04fe1" + } + }, + { + "type": "Regular", + "proTxHash": "c7d45c00de87649d1873260db91546ce2361f7900962c4675c9a01dc9910614f", + "collateralHash": "dc0ce56fb82ba00936128789dc87a2f37e6efbe33a64fdb82a0be16cac759726", + "collateralIndex": 0, + "collateralAddress": "XrPPY5FDBb5KMsVvuYF5ZP57tWnZnuhgFU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.220.199:9999", + "registeredHeight": 1524702, + "lastPaidHeight": 2126756, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrNgLSPxFig3d2LoJVGcPwkrP1A9R5JiPy", + "votingAddress": "XjEnihaWCgzApXvf4XFjThriprxr2yrfj1", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "064c3c7d54bfe94031e5b5e547bc668f5a2826fa5623c1dc0b5a76703442203c4b063e49efe02f729611ddc890ef137e" + } + }, + { + "type": "Regular", + "proTxHash": "840df5710fbe22a7d3242400d145572ee1fd6b0cd26d917cd65bdfbdc9483cd7", + "collateralHash": "b499dd9bb319189af4feff958956086f1274a1ef57de13f499f891859abc1da9", + "collateralIndex": 0, + "collateralAddress": "XkXJRbDrujV4MFBPg2DbJR8WWWQPHEc8sM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.123.69:9999", + "registeredHeight": 1524727, + "lastPaidHeight": 2126635, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1927339, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnw62Jga6Uiu2pLjL3rAWYA1jW4HjArh9n", + "votingAddress": "Xjbzy3m9s1rfQhXz9n6wRZojHckCzV7eW9", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "86ce2f9310595679e57443f4e594768148acccebb3c5a77a50b73a78c561422da0d19effaf16e646af96b35ffd13d17b" + } + }, + { + "type": "Regular", + "proTxHash": "9c147afedbdd10428a78ac9b450ad3fa97a631828d47d47fdb4cec38c46c1721", + "collateralHash": "96b78aaa606348f8aa61df02416268f02751abbf752734f12b6d4068c9c05e8e", + "collateralIndex": 1, + "collateralAddress": "Xhftb4ues8chd8gm5A4z2zrnVqMSc8WLXY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.245.193.129:9999", + "registeredHeight": 1524734, + "lastPaidHeight": 2128157, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876632, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqSgxAaKN73LiLcB8i4EMPRn2KTe4gR6AT", + "votingAddress": "Xhasg62CAa8uAW1w9sMFcNzmjYjyTyFunW", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "8d78e2ee57dfcb7021ba583e7e37c03173c58e36504d2f428a7ca1dfb0fe5542acfc02e435783885b169af383fb3a532" + } + }, + { + "type": "Regular", + "proTxHash": "a9953cc3422fa52a0b3b6ef24c020e7d3c55846fc0e2f4cca371a38a0fcf35f0", + "collateralHash": "cd8100cbaa108af89de4f28b559c1d215555ad30b05d18902d2f439845f5ae5b", + "collateralIndex": 0, + "collateralAddress": "XepMNRqV2HjtdeNr59QawFPA1zmmaktCes", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.230.210:9999", + "registeredHeight": 1524735, + "lastPaidHeight": 2126741, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1821932, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm3DxEhNGJ8Nyz5pZS6SyhikYWk1aEmRZp", + "votingAddress": "Xw4cCHymwrsf4PwVZKCeeg6hRDmobrV3Hb", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "16b3b5c84cd0ab4ff85afbf36d0fded2e21a0925d23ede1e41d09a973183c6b4daccedfa05fad43b935776d696c62249" + } + }, + { + "type": "Regular", + "proTxHash": "8f3c31571df00f49027536bc5748c662b85440530cb5f4c2073c9e9cfc1171c1", + "collateralHash": "51fbe680acf04bd230776c1a33c45dc0c29f51d0eae94864cc4760038fd9aa4a", + "collateralIndex": 0, + "collateralAddress": "XgsEsfWUVCsTCiffm8Lj8SgKcSduu7xffV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.128.72.114:9999", + "registeredHeight": 1524944, + "lastPaidHeight": 2119597, + "consecutivePayments": 0, + "PoSePenalty": 1121, + "PoSeRevivedHeight": 2127267, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjpUxrN9ZLvsoynAKWj43GfJwVboBxZVxt", + "votingAddress": "XhrxSp5d8kfag6SM4YUt2ScU5ns9ST5Yj3", + "payoutAddress": "XgsEsfWUVCsTCiffm8Lj8SgKcSduu7xffV", + "pubKeyOperator": "125c7c33baa0ce81c1ffdee23d5b7d7c07d4dc3a80ced2563cb647dcc83126d0a686857d7930dba5e35a8c65dd5fe465" + } + }, + { + "type": "Regular", + "proTxHash": "4926a229fc77a7fa1048b25606ff226830a1c1f0a4acb977da26b27d00980a01", + "collateralHash": "c816eb3f8e9d9af12101409f30cce81f741377634b45459292975228ea36387a", + "collateralIndex": 1, + "collateralAddress": "XeehJLUc7fniS21QFE2serYRUzYNfD6Ebz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.14.155:9999", + "registeredHeight": 1526332, + "lastPaidHeight": 1725554, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726620, + "revocationReason": 0, + "ownerAddress": "Xw6h88svckQ4KzjsRArHeVEdTnQVzq6NAT", + "votingAddress": "XpK7XvEv2iPRgtiYWoeRHJAVfKVHT2NPt6", + "payoutAddress": "XrDKziRhGSQMprCNiQnefB2Ch8r53Rs2a8", + "pubKeyOperator": "14ebd8d9d5b9798375c879f9fae5326834f74fbeae476e9a852df44d91a9fb102b46dad7d66b2579b2207678675e2423" + } + }, + { + "type": "Regular", + "proTxHash": "ec73ad50e661c48d6e1759c30ee83747c84eee26bc4065e51986882e55606e1e", + "collateralHash": "a917678053f6191c0c2f5ca2eaf731d88d9e847f4d49cf8e7f2f25ff8636cf83", + "collateralIndex": 0, + "collateralAddress": "XoGkR7oPSxEWhMdwv5iT3drVyB5318m21X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526333, + "lastPaidHeight": 1721450, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "Xe4nymQFVbhkjDsR65LB67hQk88CDFcdVe", + "votingAddress": "XgSgjYmWQffvyymrvc7Ez4GUmEf38LRAR8", + "payoutAddress": "XsLChigJ57X2NksLkcURBmdvWhBChFBsm2", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "21a02f56813292b849c1647281f961b4f56e6f8727fe635c70bc168df5f9d67a", + "collateralHash": "a9b95274aaa825ff760c4e0184232338b0bf8302d627f08a3988f8474c7f2fe8", + "collateralIndex": 1, + "collateralAddress": "XdGsTw9TGNJS66zR4ZSv6jEFFVuwo5auQ3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526336, + "lastPaidHeight": 1721456, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724868, + "revocationReason": 0, + "ownerAddress": "XgZAj5qYzBQhrRnNK7VgiJWX6g4Ypkc6oS", + "votingAddress": "XeqZrweDA9vZZJ9TJnLJG2yMK6uqDrdeZD", + "payoutAddress": "XdY9ZovBDRpfHucR1uq7UfQ8s47Kda1PtK", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "13f70c06d242b5cf1263eba31bf4a36a3c2a67f4adf1e57b7836517ab72a8338", + "collateralHash": "f6824ce39a68f0b30c729fce8f43537b7eedefd4651ed9a16d5b6fbda7b48657", + "collateralIndex": 0, + "collateralAddress": "XiApw7u1EiZ8LbgHsSiM3YVrQ2qpqNCASi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526337, + "lastPaidHeight": 1721459, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724388, + "revocationReason": 0, + "ownerAddress": "XvaYppR3cJsoTKcUKTbaBWP7kR5JMNAP5M", + "votingAddress": "XtwgGaYC1qzwYRgM6KcSUokbrz8DNLJPyN", + "payoutAddress": "XwbkzRJ5o27xG43uxo5JVEmLieYzrnWhGW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7576a88d50cdb3f7f743778c85dd0370bb44760e90a5cc682cada5c88769a694", + "collateralHash": "591a0cabf9cbeea6478cd1e39a8e2ae82de10bd1b3dcbc08ab58546b81a50736", + "collateralIndex": 1, + "collateralAddress": "XyfPCgGZwKa5erTe1nraFfDQDZCzL56YVz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526337, + "lastPaidHeight": 1721461, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XnHeBRAiBmTFcDjLDPYP3kfEo62UgozV4p", + "votingAddress": "Xf3EYGvDVfXicrffGYRc3b5J8ahjXuHSBJ", + "payoutAddress": "Xf1FqkC97RLHaqHJ9V2KeqUN91i43m5P3q", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a7463888cc18ab5ec9878ee5f2a1a80471466c230412ed18b76a06c97714e578", + "collateralHash": "9b4975c3384070b86d8897bdbbc636787cc8052a1b63a3c913a5640d2c018e27", + "collateralIndex": 1, + "collateralAddress": "XxuZrT6Cx44fF4kVgcUjzS8fSksTs6HRza", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526338, + "lastPaidHeight": 1721463, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725299, + "revocationReason": 0, + "ownerAddress": "XeR42P2gbQrpUX2L6wwb3FvWW1gRnqTExA", + "votingAddress": "Xr4DQkfFEDa142rcto2MPa2GLDsEdmsoGq", + "payoutAddress": "Xs3wBAR6ASXBGPNoRUi4RL4KfYfmMuyYVX", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "255c26ad38ecb04ab753cf0c4732689286447eb9450d31828ea3b6750176da11", + "collateralHash": "6de2852fc0350c52a17d70f5c74a74f4f3ca390df6016e0850fb8d1887abd343", + "collateralIndex": 0, + "collateralAddress": "XrMrXgT3J6JJRxU7tdLewozVi27dw4gaxz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526338, + "lastPaidHeight": 1721462, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725108, + "revocationReason": 0, + "ownerAddress": "Xggj84vymKiRMeRQFVYqGVWbu4fnxsRLQQ", + "votingAddress": "XwVBv2waw4VjRgAZVe7LrsLw8d95idvmDW", + "payoutAddress": "Xwd7ebKk2cYX2ZYgrDX1DeUuJwTn1KcUqp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f73b21be523c7612574167fc9e6030d2cb07da242e79f98ca73542da593706cb", + "collateralHash": "0f28151501db63af6cc54c380927c8deac41c9826eab1e34bb2d65c7cc550a0e", + "collateralIndex": 1, + "collateralAddress": "Xdk4Y35YeA7zRpJ4ksp7Fcj3UwS2hKrq9e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526339, + "lastPaidHeight": 1721468, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "XemuoBGr39nQpLRzjXv5FETCPQoYpxXR6e", + "votingAddress": "XffTJS3KGjz1t2ZowkaUw7ACDyEiPjhVu4", + "payoutAddress": "XsYoaavJE6ec4XMehaneSrxqHboVsXBjth", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e50c38681d93cefb4cd20d88c722e6f3f8243f9685d803f1166fb95debe2b816", + "collateralHash": "da47b42375d69e14ea16065c589f9300f851e7593818c33a79bcce6f08d1914e", + "collateralIndex": 1, + "collateralAddress": "XxorvZkFXbp8WSQVdFbUcfqv226zRsirTv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526339, + "lastPaidHeight": 1721465, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725035, + "revocationReason": 0, + "ownerAddress": "Xm35pMbvsC2kjAUFgWRtjPjU9FcRvdMyXX", + "votingAddress": "XceYYj9MCGcNUPoxcbQ7pZDq1JPABLzWxf", + "payoutAddress": "XbwFTE7mszyyZckfrYLZsdZxMtjNaNpgUB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "090745328d55a6fea9da1dd55daefa787d5e62e773ebb12d291bd5d7d292a266", + "collateralHash": "ec536ea7dc1feca0b058f8859a2c74001be8e736d4c83e8211a952fcd556b089", + "collateralIndex": 0, + "collateralAddress": "XtNgFb1N1392LKd2cTiQcaJtXJqXYoc8y7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526341, + "lastPaidHeight": 1721469, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724795, + "revocationReason": 0, + "ownerAddress": "XnMo1AMZcgzyo7VgWkeTvDNxPmsLwdq2TH", + "votingAddress": "Xf2x6eB3tsvDuEBrv2xqVjDsiqdpVqPY9h", + "payoutAddress": "Xoe7M2Vz6KFx7nkyGJi6TkNxM7pPbzTQmU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3dc0295583f9d44ad854f9abfb6f6de0ff2b946f8f65864c51fe7852e7588395", + "collateralHash": "a183c334a7adc74d4407f795d9c46d947842b4d1e11173c367c7e4b8388469a4", + "collateralIndex": 1, + "collateralAddress": "XffcCGC84GRCDXddrwY88N13YN7vpm4UMK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526341, + "lastPaidHeight": 1721473, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724916, + "revocationReason": 0, + "ownerAddress": "Xyjpd1zi3S8EoAMW77zMZf5dBsS7swnxdK", + "votingAddress": "XbZU1YRwLzEB3G8HkxYjCFQb3EfNqocySz", + "payoutAddress": "XbWWUSCeHM8N6LrNbYvWSjCfvQWyrVf6XQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bbcbd529ffbb3ca6d1df434c8e1e1b75ec41bdead9789fcfb38a4a3399f1e17f", + "collateralHash": "73c221070316f6df6ce531cda379c4c6a3a637f148d47396e3e7f8041fd0de86", + "collateralIndex": 0, + "collateralAddress": "XavpARWHqLLrsrW1aakJgetz726Ent53Z6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526341, + "lastPaidHeight": 1721470, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724853, + "revocationReason": 0, + "ownerAddress": "XpgKSSkecRftGyRfroHBFtjG16RSisTGD1", + "votingAddress": "Xv7taToCyTFmdWoBx4jcG4Yp1KDkFPpHqP", + "payoutAddress": "XwypG8uWco4DTTYeRAb58Qd9UncYZHsBBk", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d483c62968880371160883bb040a52e93bf1aba8e36ea489ced7c8a29c825db5", + "collateralHash": "9e86f3d6bfcccaa79cb25cf760f7760bb494c0814fd071ebd63d79e466f61fbd", + "collateralIndex": 1, + "collateralAddress": "Xcp3o9XFFvTEYqCz6fPeWRYpk9qYHTzwrH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526341, + "lastPaidHeight": 1721475, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725372, + "revocationReason": 0, + "ownerAddress": "XoprguKRonQ3f9qBx3neoWg9FrdDb7423m", + "votingAddress": "XnRzVhLfL5dKpfr9xbWj8aCP9AekKkW9pg", + "payoutAddress": "XunRgW3VXJ7kzb17Puyqjpq3Tmrm5mXaRk", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "00be6bde5965da1124406bb2ca4a334ac9c7b7dec74634daffb4311a7f2b319f", + "collateralHash": "23c0b0023974a1c5b9e88f118a2697e25dfedf5f5cad2a989c8558bf7cebf95c", + "collateralIndex": 0, + "collateralAddress": "XfUR1DHBp78tjvHxyaDWZpVbtc4oZQg3yx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526341, + "lastPaidHeight": 1725569, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XdQnMkG1DCSoCi3ZHRch9FoyQ5Sy1oW3ue", + "votingAddress": "XvBSr6QYpcFsqpZs5L1Wj8ybQYWWtSUeKe", + "payoutAddress": "XooofoprRXK71SH12WZfsRTaBTiE8UcHij", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a2abec533788726165c12a0872b4e8a7ae21daa559e82c89794c1226b94ad5ea", + "collateralHash": "ae6cd27af4fc3a924c2a6d10b1584a8766d3ddeadfa143e63e2847050ea9d6b8", + "collateralIndex": 1, + "collateralAddress": "Xy7QKJKEMiVd73xu3R1Qf61srK9x8czTFv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526343, + "lastPaidHeight": 1721482, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "Xn9kMDU3o52WFpK4NKHdCsw8FW8gWNGutF", + "votingAddress": "XieinzrLe9sDwKmDFcDwoD685pCrsUhACQ", + "payoutAddress": "XfYXR7HEQJMBqKDboucrHg6j5ougPxeRt2", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "cd6d17847132a88dfc04f54745a2c1361ae14d1f5c96a5ab6f0b7f3297ad8ca6", + "collateralHash": "c8a0a8891a7da4a480b1e748c536045223439495fb946d9cc40e35f370ee2da9", + "collateralIndex": 1, + "collateralAddress": "Xj9ZgvjxQXc6EMq8FS5eWbjjKKXMDkWNqE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526343, + "lastPaidHeight": 1721479, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "XpxZNbjTuUrmmJ8tvE76bx7v3p1w6ndxUv", + "votingAddress": "XeRE1Ewk7hF1EEqvC2XNGsN3o3EVewzv4M", + "payoutAddress": "Xxu8V34r2njnCLKo7znjir75AMyfbbazkm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "aad478868ff0ace6dd0c97b0d634fb64970e58288152734c4e7f131d3ba04623", + "collateralHash": "0d1e8b59aa4e70f4ac0b92aaeedea69a8d3fda8cf0ba82d0466ffe2cc3a653f2", + "collateralIndex": 1, + "collateralAddress": "XgUL9XZze2iywfB4kqBq5Aphq3CvqxeRN6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526343, + "lastPaidHeight": 1721477, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XeD4mzSoE9chQGJnC4TYCNJJSVshjw9Gvk", + "votingAddress": "XqmZVCwD2oVbUjfDgnj6nkTf14L8rRr6VV", + "payoutAddress": "XhdDF3vsG1ksQSdwJzqStvFwJEdqj1dV1K", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d8c7dbf1cf7b9de42b0f10d94226e3b1126a96e25d2ec794b7954a0c8a7d680c", + "collateralHash": "f02d9594cecf416d012c92ce28a2765c127f06ec3730bc31e01f7488e62e55a7", + "collateralIndex": 0, + "collateralAddress": "XjmH2awjeSYX1tm33jFEqrDhVWM81Upy6X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721487, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724507, + "revocationReason": 0, + "ownerAddress": "Xwwb98uFSBU9pqBNo8qL8fpa1iRFpDrfnb", + "votingAddress": "XgF1gQdHmJpeyTipJ7PvpANvTP6tHdgTKV", + "payoutAddress": "Xb1BHTF91xTNNsAooysieaaQ8CEhD6HiQP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f76fe27e951c6af157be07e3cfa17b33742075ee49c23589a872f7a6bcd2adeb", + "collateralHash": "2ba52530ec3ec02f1a13aac97fcde2c59645dd3638418dc03d5f1a4b35c1bacd", + "collateralIndex": 1, + "collateralAddress": "XqHKHeJjqYFjQ7j8eFwgFjCnKFmNJ7WFP3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721499, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724916, + "revocationReason": 0, + "ownerAddress": "Xm1ni8jtsRsdjhCQJ3C9gEy3JxoP5erYQB", + "votingAddress": "Xdnysy1eTe8btDagFgdiCHTToHBgZqhXDP", + "payoutAddress": "XtRm8eBxZfufmwbmsUXwUFBEpve7wuzKoj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "32f07e8510eac6c87542352816b2f977d6965a459debfaa4580aa303365a6d2d", + "collateralHash": "2c7c6ce4735667163d6e53e913b1cecaf0ec0d98a46079f4e6a628f3d1c6fdee", + "collateralIndex": 0, + "collateralAddress": "Xfxnuvsfris43t5k3k4uDRRbZ53YKreueh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721490, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725348, + "revocationReason": 0, + "ownerAddress": "XnLUw8YvRbmKAQLSSwFDjYEo5NAatHw4u8", + "votingAddress": "XiqWvAGZA2SxJK7SnSA4kkUyL9yyZGLvcq", + "payoutAddress": "XnGBC9w3Xu4Be9vU3D33cpUQNKVBbvY1Zw", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c8b88a66bac4d2945419488fe67c9329b88d0a0afa1b29e1fb26e59062bbb06a", + "collateralHash": "da3b94b849c0c3bad7c9915498745a438545702f08a47e739970c6b46da7a6ec", + "collateralIndex": 0, + "collateralAddress": "Xuz4BPeYP8U5QYuo5DmKvc7WBqahYzu2nm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1725578, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726595, + "revocationReason": 0, + "ownerAddress": "Xj5tNBC4ZhnLLvePDgYb81ys8sdw34n2W1", + "votingAddress": "XsTbNRUgWWEkGHbkXedTV1LrxdNTGs7sDk", + "payoutAddress": "Xn4auGX7wyXqaRthndZfvgnCLH4mR92QTv", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "325ae1da2755b3f9cc3b29623418583f02742b83a5b1010431c15886730f4500", + "collateralHash": "aaf668b6e4cf0776457a8d1516438db7a10e60a280e49ad799dd04d18583fb4a", + "collateralIndex": 0, + "collateralAddress": "Xvbbxn8bNKTzhs4tTnNV2CberN641hyZb8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721486, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724844, + "revocationReason": 0, + "ownerAddress": "XoZajw7SmRmbZFnpvRycoYvmvdYRE5jRZo", + "votingAddress": "XbykdUQ3jJQdXMgqLt7HbgGNCXwJggnEn3", + "payoutAddress": "XniU1Guid2CQSRSkPNjkjg2jctjQX3aTjE", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "751a45dc311703a129174640122e838d40fa48476a7e7fa7d501104e401a6050", + "collateralHash": "0b7466a36b3591299acebc7c6f8f7bea706680dc974bc08cb93c0eea643b0748", + "collateralIndex": 1, + "collateralAddress": "Xkwbetgh6f7HKz74iarQoSDJSEaH5tCWJS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1725766, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": 1624919, + "PoSeBanHeight": 1726620, + "revocationReason": 0, + "ownerAddress": "XdQVcEEVDop42rpKTZ5Jyaw8D256c6s8N5", + "votingAddress": "XjdLsdzgcpYzX1msuR8nqG7i5yAAh6Hbgg", + "payoutAddress": "XrfN1Lnz8VeXb5bJSTu9a79dvLWNHKmSUo", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "71db45ddb6fce7bf11a0050ea6ea1a50f813204518d19a9f9305a472126ba36f", + "collateralHash": "c225885c8dcafd4c193da4a3e55cde8146cd2f2a3e496e93d82159e4b337019e", + "collateralIndex": 1, + "collateralAddress": "Xm7x6RZXFr8JoDzMvsuUa1jTsQXvaRVa4k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721494, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "Xk2T9CkmUZxvSTPXEAPboPgbthgdCQyKXU", + "votingAddress": "XuqR2GPYQQLtrpvGPLxQoFjtvaSvnk82oG", + "payoutAddress": "XfKmE7AHqUshRTGq1S6xN8ggiiqfiyCjjf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "673fca00097b004420d3192e6dd1f6b04cfc5b2c9bd85697ed399b7c40d9aec3", + "collateralHash": "c07491fd46f6ddef6214cacd71196689187a9b76c2b880f3b6095df38fc2ead7", + "collateralIndex": 0, + "collateralAddress": "XfQ8K2BEGWzugduVw9ta8r7zN2Pxaip6xQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721498, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725156, + "revocationReason": 0, + "ownerAddress": "XyHVPRuef66TvqZgmg9no734HAxDPCSauG", + "votingAddress": "XbuaC3M4Jdez7GMAwFAakE8S16Dd6B5mFA", + "payoutAddress": "XahiLVr9YZGXfMZEWLZBA84v1gYucf5PZW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0314c060ddfc51cba2d341a3785c2c83db8db14b19e6c4e4f00c9a66561ae36e", + "collateralHash": "085434d81821325ed60199183451aa4e65815e1b7d32c1227b67fb45edab6af5", + "collateralIndex": 1, + "collateralAddress": "XcBWdseHPMwkCHXW6kFKyf7ENdCPb91K2H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721493, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724580, + "revocationReason": 0, + "ownerAddress": "XvhF16evQLn1TzyaaJyABqbTjpT7XBnsn3", + "votingAddress": "XuXkMUkLg2ofUobK4eX2CoAuJJ188Y23yH", + "payoutAddress": "XdpNtpggKMzqcFEirLd8Fq2AeJUVN5RBTi", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "dd71d209a726020896af07b926ffd8ad8af5844400ed7977c2bff038f615d122", + "collateralHash": "ba8eec5339c84f3610181b7237529fc54bfcfa2e58029cc59479a555e695aaea", + "collateralIndex": 1, + "collateralAddress": "XgT1QViCakiK3d9fxxVT6i8aYaejwVyPs1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526347, + "lastPaidHeight": 1721489, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724891, + "revocationReason": 0, + "ownerAddress": "XxGNnuphphNfnPKyWS2LkM5CTxMNtzNqGN", + "votingAddress": "XiFPphaFXQHcyfrQC3NbnqexvdHkaxNs28", + "payoutAddress": "Xki6LutGLy4eneLmzkNquRhNdnNLBoVm88", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a53c0d23ec2e9cc05312e24b8ad49cec5069f371d188ac655d8f5746cf7d2320", + "collateralHash": "a20e25be42818087cbc11ef9d84abba6d7a23b0606b641db7882b39b6513c408", + "collateralIndex": 0, + "collateralAddress": "XegKFxx5aEruYUSkJB1JPzpKdkFhaQHDXS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526349, + "lastPaidHeight": 1725584, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726500, + "revocationReason": 0, + "ownerAddress": "XwxLM21y5y84nrQW55581sZdVdgoi3BRkw", + "votingAddress": "XfNYMT9YXvvCc9qrZ7oGDcDscQJtXayEKx", + "payoutAddress": "Xshia7vrTJViPhjw3J6ZtB8azgNbdYrpNg", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f05e9ce8f6656863f67930861949bb024240bf5358ada4d951243636046b5344", + "collateralHash": "e61e1236e17b246ede0b329bb66cdf80281ce0ee000bdf9758b2bd83d1a9340e", + "collateralIndex": 0, + "collateralAddress": "XrRyGDagPHuCEpJd4pFCMzBry9nfEtFooH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526349, + "lastPaidHeight": 1725586, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725708, + "revocationReason": 0, + "ownerAddress": "XjKHeeHWKqzdvybvwLAgS8ESCjeUiM129u", + "votingAddress": "Xvh7tCqyQNkmi1WrjtRkyyywiGJmY71Yza", + "payoutAddress": "XvUe9BgQ3aMhgd4upXTHCfVT1X793hRB7o", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "598852fd536bad4cdb5e02d98293aba4b7e19a725d3ae0a51b99c6ea75b352f6", + "collateralHash": "b93ed7c5c5a286a8a051ddef2a383f57e56e99724211ff3fd2d9738377844280", + "collateralIndex": 1, + "collateralAddress": "XrFptN5z1T4p5GuWwFs4xRdUVt5RLwYKek", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526349, + "lastPaidHeight": 1721507, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "XupYdeQm7iVjdEPWvQrVmeJjjz8pXCE8qm", + "votingAddress": "XiQhSsjufBEx8NJyXTw7Um2SK3FR7UnurX", + "payoutAddress": "XcHgL5xjEa4cpqZmRFhNCYk3xiFTk8QfUP", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "67ba45567fd2d0fb8f341d7c0770af1616ca9ea45a2657aecf718599e4fe810f", + "collateralHash": "9f17f7558fbaf094c6f632ce8c23e54afbc5f5a22f71388172086ecb717a1263", + "collateralIndex": 0, + "collateralAddress": "XqNr5kJv4HW2kKV2627bNYSCXvmosjfGDB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526349, + "lastPaidHeight": 1721500, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724675, + "revocationReason": 0, + "ownerAddress": "Xoxqnm7iTVAZ5rHJE7ijhAonoik2EXqPv6", + "votingAddress": "XnAsVv8LpZxqAbZFAwPRospNcr5a53ctyS", + "payoutAddress": "Xoo5AcLbmoziki8zkkE3B9YoznFZC6pUSL", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "25c477584c93d23b3c8960a838df0a04eaa68e6f934d424a9918649dfae22eed", + "collateralHash": "b7c1cf557ba9e2c984844ce1c57e61728231f3992a2db7e14053f1ab1330ea89", + "collateralIndex": 0, + "collateralAddress": "Xtafe27ZQR3aVBFvTNNAWpqJwrLevmLnAS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526349, + "lastPaidHeight": 1721505, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XiYU3s1Bkr5cx77yepTUHASQBppCoDfWJF", + "votingAddress": "XdpyCwTosAFj8GuLqJ9a3P1Frk8PRLNKiX", + "payoutAddress": "Xy6kRwMP2Cq5WHDugyYh7KwEpoDEpReXmX", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d56ea522f7670539d9a4b12054a803b0a40fe97c0e3218b5c061d76cdf88604e", + "collateralHash": "bcc2a717b8f9125a439b11c47455f1eccba6e192212764d6078ef37e0d098006", + "collateralIndex": 0, + "collateralAddress": "Xj6vnn8TKHGRRDRiKioEcBHodvzHDwCTSR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526352, + "lastPaidHeight": 1725589, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "XdSt1V512eHQvxUQj6yPezCYWj7KXtAVGL", + "votingAddress": "Xo1zLR7tajQygCuE4AcQbVJMeT8Z3gAeTa", + "payoutAddress": "XxU8C2ZGoE3YwRhPB4MR2oKCKpiHWZsKjp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "0dc91efd618fcb5b633b0574caa8e8c268d4779c60575cf633010bff8cdc0f91", + "collateralHash": "5c6ceb3b30d5c478614a3bc79dd0132f9621ffb449e7595ddc3f634757b5ba1b", + "collateralIndex": 1, + "collateralAddress": "Xn1NRsvTacXLZ3ShmQrRqXbeqk9TgU8fmS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526352, + "lastPaidHeight": 1721511, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725083, + "revocationReason": 0, + "ownerAddress": "XkGDfNNqTPcNs5nrDuWUpVxRX1vw8pkM8o", + "votingAddress": "XciSnmpyZLqnVCMio97vqoqFgnjTxPwiHz", + "payoutAddress": "Xd8yGjwU9aWfSQLB9hQXatofLLfKjWxZRG", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5777906422126e0016e496e5f130df050bc094d1739c906b8ae3a127333ba8f1", + "collateralHash": "48ef5be18ad0747f1970d497a28ddc1d8b0da93d5dbe8677794ba06363ba704d", + "collateralIndex": 0, + "collateralAddress": "Xe1bn4yXDPkWHrZUEsuPAAdJzLEm9cs1TS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526352, + "lastPaidHeight": 1725592, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725948, + "revocationReason": 0, + "ownerAddress": "XuX7Lpa87sT34UiT6kP2CFzUr2ub9qfXUx", + "votingAddress": "Xq8LT2PDYUw1bwe7SF7YADWSV8NyGkUyZg", + "payoutAddress": "XuhNWshDp3i9mApiDSAn8TJBwGeCiFZ9z1", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2d0af2ddb7e9eb38df414ac5dfc111d24e1ad2486331641d60fb2af38934b2c6", + "collateralHash": "8de105f1f521ebe9f5216d2c2c8c4221726ca874a09077b4eea974ffa7cea92b", + "collateralIndex": 1, + "collateralAddress": "XiBpd1XFiu4KkMvY2Z1i7MCnSkzLm6iCHe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526352, + "lastPaidHeight": 1724695, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1632430, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "XdS7cQkCVedhTWb3SqoATNiWuNDRReAcm3", + "votingAddress": "Xo5Ww1dABS4d1oEJfYUvrT5ABe2LKciQjb", + "payoutAddress": "XbBiUNCq2qQQkhGYYPwWqEiiehm9JRmHGd", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f0b71d7ebac195028466c22f958e223444da9e3fa79b3b2d58527b78cabc5170", + "collateralHash": "2a0397e32c0e6f5566c01cfd590009aea290b10016f102f48d41ebe61e1202ec", + "collateralIndex": 1, + "collateralAddress": "Xb6eehhHNsL8SuvnNxoZgcZ48pt18X5vXu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526353, + "lastPaidHeight": 1721514, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724627, + "revocationReason": 0, + "ownerAddress": "XpG1z2wbUbXNduVAgFZ5M9BZdCaY94Qi7z", + "votingAddress": "XoNjs6Ei8tNheP2yr4bUb1RtPGUaYkZhm1", + "payoutAddress": "Xm4r5H6REDFMrp8Ri6LgWW8MbbWSvEnTDm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "4897cbc9af1c231f38c234d800b2435ab1dcf92ddebd82ccee64f39d661993ca", + "collateralHash": "f83adcf8153f454c20ccaa776e1099b99af5da0cdb607fb15dd263985c46aa5d", + "collateralIndex": 0, + "collateralAddress": "Xfo5psA2dqma8hMWrmpPJe8oxstZWuxb3a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526353, + "lastPaidHeight": 1723325, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": 1665242, + "PoSeBanHeight": 1725612, + "revocationReason": 0, + "ownerAddress": "Xymb1MfMZ4iPKt5UsCKBJjZuSK4ESjttpS", + "votingAddress": "XdT13msRwqbA6ozXQ9rKBdSHu33a14WMHr", + "payoutAddress": "XcPMMjKKbcMH8hQ5FFvYEavo364fpgcvmb", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d7137824fd38da585a4f5ac4a9c1e1aaa28f91ff59eccc3dc12f4e425ff11f97", + "collateralHash": "6bcb403ff789b99a1eec8c35f66c6423c0bdda9bc82ed29631e56c249116ab08", + "collateralIndex": 1, + "collateralAddress": "Xe1sjkbXULThdt4D7GWm2pVc1ogRsKAgzX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526353, + "lastPaidHeight": 1725593, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726294, + "revocationReason": 0, + "ownerAddress": "Xhi6xDFVTpsnCYEnLe2d4WT435N4Rr1Wyi", + "votingAddress": "XwYSBuFfY2rgBQRny5X1LpLef2kCtG8yD5", + "payoutAddress": "XgMnKxFwFJXAZqn64f4kwLB6BT2WpXBemC", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d9cbe4702e5fa9042080482b431ea45c703277c2fe8ef46536dadbfad7b2b748", + "collateralHash": "290a5ac4e223b7edf40c11a7d74ae80ee4d33213bec7cf9021d3b627d8bfb051", + "collateralIndex": 0, + "collateralAddress": "Xi6QXL1zjG9oDf4dkUsZz6ArpPYGVhZV46", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526354, + "lastPaidHeight": 1721519, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725324, + "revocationReason": 0, + "ownerAddress": "XdeSqqnFjr9FrLe4HeXc6RB5FYYtbH5uif", + "votingAddress": "XnkN12zVcZhJtQRyui2rWLi9i9jnFsVpEX", + "payoutAddress": "Xjq66xsYAKSXqH99zP6ZDypFzigDCpmdyf", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "ef3f0e9ce714b900f5f3149ad4c362e96be50e744704f641d016614ddcac4f11", + "collateralHash": "68b405e17f3794520feba00b0e6c218287db96d58a83988c99b1177335e995bb", + "collateralIndex": 1, + "collateralAddress": "XdmJigVbNegkSrLqNZoon3gBqQDT9c2zq7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526355, + "lastPaidHeight": 1725597, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726740, + "revocationReason": 0, + "ownerAddress": "Xd5wruh29vBXZwMw9gHsjaon1RpXDegta4", + "votingAddress": "XfUR5wbKeLVU8TMqpUSm9m95rfRCchqPKb", + "payoutAddress": "Xkfskpje2UN5CGieZwRQfvY7zCuysXG8W5", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "607d69dbbe986c4af990e72c17362daac9da4c76ee1d96ba0e8975c82b64b7c0", + "collateralHash": "7925b800d9525b9a844530e3aa8733bee14b0e84b069abce0a87165250d908c6", + "collateralIndex": 1, + "collateralAddress": "XdpWWouTnJSjnsTqvpxGr4QVV3sTFLUThf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526355, + "lastPaidHeight": 1721526, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724580, + "revocationReason": 0, + "ownerAddress": "XiMtRpescqBpFML3dUs1kGXK1ZzRQ1nWtk", + "votingAddress": "XvqRpTxkA5V3s2mzbv8agGSB7QL32jwFGk", + "payoutAddress": "Xw9ERbmSLH66Pxym7XJaCXg6xnFAw67uMB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c1adab490fd804d9911fc1eb9ef6b29c00c5ebb2e947f59d135b54e9d8d453c1", + "collateralHash": "ee56895a9a2e80f8663eba2b5845310b10e90c4eeaa40b26181f7c8e003f2f2f", + "collateralIndex": 1, + "collateralAddress": "XwZz7ByZkNvbP8EFYNtvStdBC8HfKqptSy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526355, + "lastPaidHeight": 1721528, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724747, + "revocationReason": 0, + "ownerAddress": "XvT3UcgT5eA83pTCoJChpqGEjqDWCaYMXe", + "votingAddress": "XndUidbFWp5As9n9XQDdcCnDpbf6KYoNL2", + "payoutAddress": "XmaszbJrft2vseYyyr7aXhonpYWjFgd1P8", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "86450aad6d1e3447868f42a027f302a7ed940184b896a9cd16e25b0b0f1aa9fc", + "collateralHash": "af35da075d4cd7cec09b88d23dd4c4dfe22626d43098fc16bc4ca21b13836630", + "collateralIndex": 0, + "collateralAddress": "XmYC7taNXUdnJBBMzRR1VtjhzjXHj9QzGE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526355, + "lastPaidHeight": 1721531, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "XdLffAvVyX3dSVLpqZS3iRgpJoZZawtxoJ", + "votingAddress": "XuKJijgzN5fwSCQVJoJhseCvMC55JW9jN4", + "payoutAddress": "XvAXZV5QT72Aqge4w5av14rd8aeKngWC5A", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e4293e91cf517f6ec51ea715af4f9342807f5dc5d64590ecd4f59c447e923e8f", + "collateralHash": "2f78ff165b2f49b53cc0d22493a308e5e5642fc81e62173a366998444f107090", + "collateralIndex": 1, + "collateralAddress": "XooL6bu3T2ZmfjQX5WzL86oz3FkA1HmwZh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526355, + "lastPaidHeight": 1721525, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725299, + "revocationReason": 0, + "ownerAddress": "XdqJiPwwB2YF64Er9A2p8nrETF5oUPSZRH", + "votingAddress": "XuJotyMDHWTiyTYmgPxTkGMKSfnzzrqpJg", + "payoutAddress": "XtJW7pzJSpCR5gDe8gq2WJ7SZRniuqq3xQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c2bec66a4d123c9eccc8bd6eb023f7fe6d16b378b2ec48178f108678e43dfe33", + "collateralHash": "e5a602534c82c92d0e3a2934809552d94fe0678de67044c31b178379208e6fb3", + "collateralIndex": 1, + "collateralAddress": "XozpT3oeV4pqmhb2zyvtJSKB9V1GCwVVt9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526356, + "lastPaidHeight": 1721532, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724604, + "revocationReason": 0, + "ownerAddress": "Xh5U3MLXw3hqUmnPK4gAr6MSWCaPAEoHYT", + "votingAddress": "Xku5VgPDkM6SGk7smXnyJ77SPQpiNJPads", + "payoutAddress": "Xrx2KjKctRNZvntvBHAAESe29LFMrQqJmq", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "a68f2ee96ba47093776e40d8ed0c5932d1303253d49278683f1de97b86adab86", + "collateralHash": "99e34d19d9bb218a6e1622beb1cb25f7eee1948dbe1246fe35f0e23c0132589b", + "collateralIndex": 1, + "collateralAddress": "XbTJsnWLXpwwB9CKA4o6VEWZBdXxM1CiQC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526356, + "lastPaidHeight": 1721534, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725012, + "revocationReason": 0, + "ownerAddress": "XwaBwBg1WAQ2gaX6pXBYKv74Jihn3vuP8U", + "votingAddress": "Xr8CRog56TxTEGYNvK3xrebPVSiiNyXzYy", + "payoutAddress": "XnfuKwLo3yEfepgdshVxz8PoD44W97GRBV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3512a01abeefade737ee513cfbea5697e9de82ccad22270efa649b1b6263bd1c", + "collateralHash": "8e748fc0e3058db157ee5aeeea64e2ba87abe6845449458ef5fb18c4cbfd99d7", + "collateralIndex": 1, + "collateralAddress": "XbzMdpqYbC94dSSQYVZ6pWY3zQ8uuzwJD6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1723321, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1665238, + "PoSeBanHeight": 1725108, + "revocationReason": 0, + "ownerAddress": "XcW8BwuRKDbK9UrGbj5Y2NRc1mRhiyAaYU", + "votingAddress": "XqqFgH33UJ5JtjLx3RyfWQueAgehcjtUo1", + "payoutAddress": "Xi4jKfiDKUKcdcrALFV1YRBaoJr5Wq5XiJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "fd36c168701923a0e87558b535150d9ca6f49de00aa1b04837e04014a64b46d7", + "collateralHash": "4d69587e0aed46f4e3fdacd0d58b78eba1262bab224e71e9577083b2405cc91a", + "collateralIndex": 1, + "collateralAddress": "XchsyCQSQk7gvtfCnWB1MEKNgrGw4fwB5C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721553, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725204, + "revocationReason": 0, + "ownerAddress": "XvZDnDYjUsWKCbJGfUeLyPJprncgPm6GBH", + "votingAddress": "XqchsPDvCbZTXHT2KrCErmVfX57zFbM8xZ", + "payoutAddress": "Xu9TBVwMzkVejF1mnGqgD9odyy6x4GiEMR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "672cf250ed6da5b35639df500f03b9b5da0e811f57c142f51400f459ba022f2e", + "collateralHash": "e691496410ff3ed3dc69762f044604787e106d979581466593d8668ef9364f37", + "collateralIndex": 1, + "collateralAddress": "Xyz1NYfdHNgDL1m3mfasWRQpXkGsFBFcTm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721545, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725156, + "revocationReason": 0, + "ownerAddress": "XhLteshUxSHqiw3weu4bXUSRRKay8iscMC", + "votingAddress": "XmLB67iCVKm9vWCgixg1D7qvi1e6XUHGpn", + "payoutAddress": "Xv2NhBmijCDfq1V5GA9xQ8VP8bMH1EG5HQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7c3ca852098c1791daebe4add18303867db6cd093523010066b69f6c9a44331a", + "collateralHash": "a5b30e054dfb418f8ffa82ce522b0ee1fbe160f1f6ec457f1e0eeb76e67d9539", + "collateralIndex": 1, + "collateralAddress": "XnYS7ZuxvoKgBCAXbDHGVUCs4VWxLQAEkz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721541, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725060, + "revocationReason": 0, + "ownerAddress": "XrPFLVbmhrBSZVzJABeYqoD7LbK1U2gTVo", + "votingAddress": "Xyd3PC4AvxdhWCpZD94c1ZxJpTWQJYw2Wu", + "payoutAddress": "XdphuEBW4wDb553PkCTSTrBJaX75PgiL8V", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "7ef32d572ec8698c03993d92b97efe0f382e69155402997dad2e01360342367b", + "collateralHash": "47ffcfc95026fd153f78bb54c7b2baa4e3814562c9f110e81c4b5db77bd1fa06", + "collateralIndex": 1, + "collateralAddress": "XmSLNZBhGwc7Lv15MC9EG6qt5ny6W3WcpA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721549, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724819, + "revocationReason": 0, + "ownerAddress": "XvrB9AXkYayNMDYJCNEutr9mm34JnZ7yv9", + "votingAddress": "Xx2TXvvbgxzAMa6EyxUR86bFxeYHRpmWLq", + "payoutAddress": "XpN8qFQjdCZTNdndrtoEaGYd5HKYPQ2kvm", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "277681c3029b7ba97e9ea5c645c7ede5bbfdad797d56985b7a1a324b9e9fffbb", + "collateralHash": "080c995bb167dfa1259dcfe55c1bea2e39c90ae7f0dd1c9b6d91f1b564b6574d", + "collateralIndex": 0, + "collateralAddress": "Xx8wwBusn74hCS9GuUUtuqEURYDgz9szJH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721550, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724747, + "revocationReason": 0, + "ownerAddress": "XcTfcyeH2oBYjRx9bsBPQA9oyvumNF78HJ", + "votingAddress": "XazL6KD8pMDnhqVJRk1xH7mzhVUGV9F9e3", + "payoutAddress": "XxrVY5kt9unEhi523vVmYY2g2popRWWNNe", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c8b15344a0a46ed8955a85a1a5d620f4f5ca8bd6158f78b671b28b89d393a1d4", + "collateralHash": "8fb809476cd54b1cb181d8fc024070133e5d1fc0337dc361bb83e71950d39276", + "collateralIndex": 1, + "collateralAddress": "Xb9YGt3gt9nT3xvwfyUmYaGhT61bJBmFir", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721552, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724555, + "revocationReason": 0, + "ownerAddress": "XjjzV7ups45HbgY6KiNvyC9Z424spxGJTC", + "votingAddress": "XarAQUpXtC7aeEnrBgPqX3nfm2TzCQhMRA", + "payoutAddress": "XvewQGhezeBuDqDZQ6eJxfocqvHa2ZgR8Q", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "565df1e10c3230e371e561d5f1d7acff1af2c2242c8aa6115d1df93ca800e229", + "collateralHash": "035c62ca5152d50e4df9bee3b1af6357f5006694e376183c9f3615187a644a58", + "collateralIndex": 1, + "collateralAddress": "Xvsq9gSS5rznRg7jT7m2CE4YpJkF82Qo1J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721542, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "Xb5w41ScJciWsTByVb3YDPbPx66AUhPkb3", + "votingAddress": "XgYKucyPJe9uCcSHeEiLYtMZc4L8vEdT2Z", + "payoutAddress": "XebS58EJz8qELCJ2cpCt6z8ghfn1RNRvet", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b4dc56d22a95bdeb643d70c9ec739aefe84a3d8a4b9e09d4679e6e01a35969f5", + "collateralHash": "86a386093abbcde23acb20cf60e97ff71841dcc7c672279510c73366fee0b914", + "collateralIndex": 1, + "collateralAddress": "XdBdtWjHXAQbRqRSQfBvokDaYhCgb8ptSQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526359, + "lastPaidHeight": 1721554, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724987, + "revocationReason": 0, + "ownerAddress": "XnzWET87hZW3DfXykb7UcqqhhoR3t5PTrN", + "votingAddress": "XnmPEDcVfGcAM82RWgtufBd8BTu1qZ8uM5", + "payoutAddress": "XixtGxDfnkxhVmWbmVcg1hiMxxCWwK66CW", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "83e75d206c930b2a1864d4e0a03169d0d2cdf42c47483feae3ae06921c0dbc24", + "collateralHash": "acccbf328323cab4382e0f23209eeb99390ec916b080e7832342f3bf67cdd4b7", + "collateralIndex": 0, + "collateralAddress": "Xxijmg5T1abhrv4TSRynnGBtjA23hamUyQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526361, + "lastPaidHeight": 1725617, + "consecutivePayments": 0, + "PoSePenalty": 4451, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1727459, + "revocationReason": 0, + "ownerAddress": "XrCcmw7ZqoQbzSacamutsmYv9buvYF4vWN", + "votingAddress": "XxaCsTErpuwfkw4T9NrwRiPSjn2zhXoYpD", + "payoutAddress": "XyhhPeLvFovksTCKnGdpmU6G55xnJ3UMbw", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "e9f9cc2cab8f03f94353196513903f2cef416f96c53774e289441621ecc332c4", + "collateralHash": "d3803491eb051ed62510139067628a083a5842c1d85250a08eae35ce742f4795", + "collateralIndex": 1, + "collateralAddress": "XmQwu5SxJf3t1rbwvpkFSw4AGHrfeSb5yT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526361, + "lastPaidHeight": 1721557, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XhURakTCX7h6Xx7djhhe9fHDN5wr8uttHc", + "votingAddress": "XgwiQfSFxhN9nadfYenwFgpz3h7Wp9uSCb", + "payoutAddress": "XiP4Z1sVtjSrcLRsz89hB9xfkLxdnTXhQY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "88d4ff161f4833bf72475b5ec32f7460eea820893c881097126d846fc00c501f", + "collateralHash": "86d551eb89cc27c103eadf45d4563c62ec65ef103bcd66ed42e597bdf29fb4b6", + "collateralIndex": 1, + "collateralAddress": "XtTZnhZgT2XXzwa4jWQ4yyiK6VKhG84ogg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526365, + "lastPaidHeight": 1721560, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724795, + "revocationReason": 0, + "ownerAddress": "XePdiEyxsKVAAnh2VjQ7TaCRJ7WStCiDoq", + "votingAddress": "XwHr6NiBFbkhQpjnVUZSHrwKLhVVHkaNpc", + "payoutAddress": "Xf4ajweWgsoMY4dfmcsgwKyNM8o7nKpWeZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3c1ffb551b1d3b7ce47ded4440d34b1b88efea97f73ceb7755691d070fa87617", + "collateralHash": "c8feba9463964c117fac311df638e6774da525b6b7844e0ffaf2bdfc18d71194", + "collateralIndex": 0, + "collateralAddress": "XprJG8qYt89dUN4JDHR2jqzoe4TcgLaF6g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526365, + "lastPaidHeight": 1721559, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725251, + "revocationReason": 0, + "ownerAddress": "Xg5ZxhBNQVG2Jo6kNKVUgt5TowhhYLc5jZ", + "votingAddress": "XeuSS2WCNfVumpmh9VreMJjmxP4MYRJg2c", + "payoutAddress": "Xn6f4mDF3gEbebQCteSJhDXsZsHHbb4oCT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9ef322a0ad4277b3ece9a5e8b8febbed8404e07a6d2dd045cc5ad058bcf5410e", + "collateralHash": "d10ceeb217e171a08f0f6343642e1247c5efd052cd9288999e2cb6413dd4cfce", + "collateralIndex": 0, + "collateralAddress": "XmFunq7wVkZ7SYzV9FFLE16oRXo8thqMYc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526366, + "lastPaidHeight": 1724431, + "consecutivePayments": 0, + "PoSePenalty": 4453, + "PoSeRevivedHeight": 1662124, + "PoSeBanHeight": 1726163, + "revocationReason": 0, + "ownerAddress": "Xq4w3oVfPbAtx6tkkMMbm5P7pDKie1g8Us", + "votingAddress": "XmTRKZzrEJESziniM6sL3T5KUKU8RTgZdJ", + "payoutAddress": "XmcYc5uLQXEgcmGyknFbuPkmNWMzauD7Cj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "3a00656238f207d47e72e4b7c6088b50ffe6eebd6712c4e81e2bba30a4fcc6cf", + "collateralHash": "13957a5202fa215d72a88ca388babf46f8f67bd10734cea24fba1e7db7a0f985", + "collateralIndex": 1, + "collateralAddress": "Xtm1PGB4oMR2a3N3tjq8rTkeJB3SLCKYKG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526366, + "lastPaidHeight": 1721563, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724483, + "revocationReason": 0, + "ownerAddress": "XrWRfjFQTB3Y94u9a8is1EVU3hCxXWaNcn", + "votingAddress": "XsqETQh4BRYWXSjss3nyPZ8PBFZJLC5Aqv", + "payoutAddress": "XtxTicgk9SRGPrWSXUbevGBE7yD5GvDtk8", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b54b5e2bc24f835a7ce1262bd6235800f4f173f5c4cc86f7612a43713f403156", + "collateralHash": "b8d2a5025bd17cc60f9fa5950be97dc24693beaedc8b8bf24db270d7cec7be1f", + "collateralIndex": 1, + "collateralAddress": "XseP66vu5hjgua15ugrfdNWk7r84kqAHzJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526367, + "lastPaidHeight": 1721564, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725468, + "revocationReason": 0, + "ownerAddress": "XxJiwVqGcKtxJCNtyWKZNTd7WneunMxmUT", + "votingAddress": "XnR3gikHfgvUPABS6qX9iMfmuHRDFQnri7", + "payoutAddress": "Xqi2Lx24HmJ2T1Fod4PctArAnYWDiTaECx", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "46d32df104ef8b0859fa04a38fb581ac2474bf4e988a06ae2f09b0284a178ca7", + "collateralHash": "21f78c4af3c301c932c66fc047999efb67ed2ec49b8d168b1cb166a04efa101d", + "collateralIndex": 0, + "collateralAddress": "XmGUkT8z4UuWvpEuG7s3wSxogiAXCGEQLT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526367, + "lastPaidHeight": 1721568, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725156, + "revocationReason": 0, + "ownerAddress": "Xktq1vgRAshVsNQQq3i9NQqQUpfRn6YxHF", + "votingAddress": "XpM5gDSSSsftsgSg2aoSL68kH54i1x6qES", + "payoutAddress": "XiVvCdjZ6JiXBoHfLXZDUqv4iTRZnC7W8V", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1a20d475bc38f5d1410884a1d75b012bab5517dbdaabc2b0caeefb5f621e85a2", + "collateralHash": "8f185086666d9221cd10cdc73216c2a6aea02e04b4c4d26fd87804d6ce932d39", + "collateralIndex": 1, + "collateralAddress": "Xjb4PZqevNNG6Aw9gVBrTmvtMyWzbYKs84", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526367, + "lastPaidHeight": 1721567, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725539, + "revocationReason": 0, + "ownerAddress": "XhfVoL9hja7Lj8tXiyKVxhw2E7GqVVQEv5", + "votingAddress": "Xyovic2eH1gUrgz3Nb9XwLYiJNazGXV44Q", + "payoutAddress": "XtvwL42pV8gH8CQTseSiYhEDUNqnv1Kyv7", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "86a0e908a4020ce85d6d3162a142915814e078609a56945e90a534fdb52d1d62", + "collateralHash": "bee239b8a4f58e2572ab39812473d4652340f1f64aa9086e1d346fc2057dee66", + "collateralIndex": 0, + "collateralAddress": "XoEydriGwtNzv5wKmsrWyKBP7XAYcTfMeY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526367, + "lastPaidHeight": 1721566, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725430, + "revocationReason": 0, + "ownerAddress": "XgN8xpsQ6yyqmvwPTypM7uXkhyqztLpY3j", + "votingAddress": "XdHAibhJdw1FqRRCyy7pLV1qJvPYDFwEKe", + "payoutAddress": "XpLhRFD6m1CA9AsLz3tbnPWr9DDupuFMnV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "62a9d301388ee2fbcf8d7664c35a7d450b5d3e6e96a7f4fe984f9c2614f27d75", + "collateralHash": "b5463042c22c5941faf66a059c49115508aebbd4d6e8683ecb4452a3665f6e05", + "collateralIndex": 0, + "collateralAddress": "Xp2n7Ysc5npBYtJRySvunb6XcQH3AnSj56", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526367, + "lastPaidHeight": 1722289, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": 1629812, + "PoSeBanHeight": 1725131, + "revocationReason": 0, + "ownerAddress": "XorUYaV6GRKAYRETXj8QsFG6oJBo1FPiZZ", + "votingAddress": "XjekgUeagdaF6FuPTY5du8okgxfPUYiT6o", + "payoutAddress": "Xu6XEm3NkWe8Y3TWd4aT5LhJ8teQV8DH6i", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "33250e1101a0e422efe44328662b1d24575bb316e2eeaa13e9b277e14378e24d", + "collateralHash": "6704256ec39e548069379a9b0b5553dfeb7c915c0b4ae58ac168ac1b80c7cac1", + "collateralIndex": 1, + "collateralAddress": "XwUKRTn362SMVXVhmzpNt7AEaJX3JvYBNK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526368, + "lastPaidHeight": 1725623, + "consecutivePayments": 0, + "PoSePenalty": 4452, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725718, + "revocationReason": 0, + "ownerAddress": "Xfi1yCnaqEjQDe1oaKjTgcFgzHYsC9PrH5", + "votingAddress": "Xbnwd3S3Hux8KtrXUbschpmFAHnJoAgRq9", + "payoutAddress": "XjB6nUE6r8mhMA3wYd7jzcnyyEm77HSHvp", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6bbba33548023cc1479ffc42ad767a0693c7d273ee2ac87478140fefb97367b5", + "collateralHash": "30ccac9f2d6061080398580d187efc4bbaa01832b2d845fcd19b349fed5f5851", + "collateralIndex": 0, + "collateralAddress": "XiF6utS286jcQkqiaRTBhkGktfvD3E5raV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526370, + "lastPaidHeight": 1725627, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726379, + "revocationReason": 0, + "ownerAddress": "XjegWLTH1oyexRPExsFa8YUPHeTnkFuY3x", + "votingAddress": "XsN8TZDzGiyZtZtG1r3ud6T9GcGezf1Lk7", + "payoutAddress": "Xt3wxmRM9ABygHweE8HbV5f3CDY8sapHCT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9dd02230281bc9dd58ec51f2d6cfa46e8b82812631c356551d9f90ff83fe3ef1", + "collateralHash": "9d83cfc3ba5fdbaecdcb0a95dd696265943249b638bbe8f5bbbf18ce82dd4ffa", + "collateralIndex": 1, + "collateralAddress": "XusxRzF5krZYxMV73FUzPafD3F7FmsQWsF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526370, + "lastPaidHeight": 1724690, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": 1687614, + "PoSeBanHeight": 1727988, + "revocationReason": 0, + "ownerAddress": "XdpvjCEEB2gZbUWYC9gXu4VMUeXD36bAsk", + "votingAddress": "Xs56K9krN8y9bx7Bc5PQVvu3UCNxiYFK45", + "payoutAddress": "XosdLiNoJpf5R99ULvGsY2EL7rErkqJdbY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "08abbbec1043163ad32bc248a232c720f20fd96c861813c8aa9f4c90197fb85e", + "collateralHash": "2efbc83a91078d3431028ed859f3ed4f186985c6deb3dc2099281f95733ae09a", + "collateralIndex": 0, + "collateralAddress": "XrppKAhZCReTYDXws5cPrPjmXkm2rKQD4K", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526370, + "lastPaidHeight": 1725626, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726236, + "revocationReason": 0, + "ownerAddress": "XgJ6KR291VSb1UVJXQtrB4B5zJAuMaBzsC", + "votingAddress": "XqBU9exEnZWoBQnwyWH5b1N8FzYWabBefc", + "payoutAddress": "XsCFVg4BCy8Csk3FLPCsN2won4okieoM8e", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "55437bdc89f7e81fa78391f4be8c49b090a2ab5c59d44cd9f1a777e6b8975755", + "collateralHash": "b27d243764f6310586c795d9fd6e6e9c80b8e3479e6360583413b19b629bc920", + "collateralIndex": 1, + "collateralAddress": "XwEXmHu7shePK1TtnJyuaERdUdE89XoHHm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526370, + "lastPaidHeight": 1721572, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724507, + "revocationReason": 0, + "ownerAddress": "XrqPzT59YRPPvQn4MGc41UhQq3S6mpyAzN", + "votingAddress": "XnY1uhXNbcv47ZWVA4sLPirpcCw4r2phQ2", + "payoutAddress": "XcM62d45AvjtoFZxW2Bpewpro5Ey1Xrm4S", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "1228ab001235a90e0f7f82563a9237dd11403cf888f8b61312cb9a5b92acb5d3", + "collateralHash": "306cd18ecc003e292c5d66d552b3f465f053ee4a760d2da0de6eb37353fd6c56", + "collateralIndex": 0, + "collateralAddress": "Xm5Frn5BMotmys7ZM2AyqQGAyfaPLHHWiP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1721585, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XbEtZDxaGohBkqaP1p5t84db882ASEK9Gf", + "votingAddress": "XpdSPch8ATaFumnRj9q4qTMsQa7Fn4AT5u", + "payoutAddress": "XemUtkrFXMSePtXAJfSo6iWBPPdVVrXQuM", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "2de7021b44575d03d1bc68af1e8170c7caf93c3e003cabce445bc1d6016fb5c3", + "collateralHash": "0d7fa70414f17c5aa59b6943a63b329273726def43ba2cec40cca248edd733cb", + "collateralIndex": 0, + "collateralAddress": "Xv7h3aGoi2rXieYBc1cpJcwxPQ4oKmcv4f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1721581, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "XbhdyyBAVPQawFngu4onpPjyU3xSo9fYqJ", + "votingAddress": "XrdSEFgqZG1f3mtCf3sx6MwqTE8Z1jVae8", + "payoutAddress": "XfHkB8K7BuaLedcXRLkPe1nETywVK8trtU", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b89c5a516a1dfabe65ada9b52c0c759c635c031e5f591a3a6d7c1b507785cb49", + "collateralHash": "ef1f5da92a0073c00f268e640f95cd0a365f3d97460e4be0721ba35067a6d46e", + "collateralIndex": 1, + "collateralAddress": "XfBq83p1kLLhNFWiPF4C4e3PRM3sgKHeDS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1725628, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726236, + "revocationReason": 0, + "ownerAddress": "XnaF1TGFEafA3F2rMUJeJhBDuedTaY2E8C", + "votingAddress": "Xdpr7PkVVx1NTSKXooYMEcxEDdLfygPNp3", + "payoutAddress": "XavuopmqxovsjKge8JQ49nqhHxKXTwSri9", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "02245c5981af2ad6021f57ea9911e813d67065ccef272820edff1f54c7937c6e", + "collateralHash": "0a3888fcc0f9323eab4b2ec1a37924ab23cc46fefde92814f2755d9a13ecd3f9", + "collateralIndex": 0, + "collateralAddress": "XwE6fqK7AxNSP64VZuNCYYu8YCohTTrePk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1722504, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": 1612592, + "PoSeBanHeight": 1725444, + "revocationReason": 0, + "ownerAddress": "XxZdzzgKKdRSdEcwDgPfJXT8F7JiTHXW2Z", + "votingAddress": "Xw6uvV828JG8EUTqYH7N5mfQKSJtNxBqrh", + "payoutAddress": "XdNdintY5wAbqcM9dhj7pypBvK1ja5NX4P", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5d0271f807ee17591193cdc9c858442bf26825ddb43b3d6d78a74d656628fbdb", + "collateralHash": "98863c9c24da37632b1e4a45ba83de869adcb7f40a91f9fb125a3af339fc4ffe", + "collateralIndex": 1, + "collateralAddress": "XuE22HqNxJV74iyMuNFNwt2Fqt5z9XWKTr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1721599, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "Xpgo1uBjirQW1MoG7bKaHSZp88hCfUvp1s", + "votingAddress": "Xm1nsWnt1NaiD4W236SrVhvei1T7LhxVnA", + "payoutAddress": "XtyqRWBNic4emcD4bEeVgKkKKLxWwtiHcy", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "9bd5565cdddfb6604139ea6f0cd49d6d357795486fc5215bc2e4ac6e4b3dc0e0", + "collateralHash": "34d0167b61a2319226014ee2aef1dd4c5d685af5fdfedb937e8a3b7e6a7402fd", + "collateralIndex": 0, + "collateralAddress": "XuK5LtvrERZYqWNWfV6j9JxvxrP7WH4Hkz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526372, + "lastPaidHeight": 1721600, + "consecutivePayments": 0, + "PoSePenalty": 4450, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725395, + "revocationReason": 0, + "ownerAddress": "Xc25cJv1xhL8qw8m7absHHhnDepRAV7hPb", + "votingAddress": "XgEhAN2qpxv87qcENngcP8SNm74FBchnL4", + "payoutAddress": "XnBx8yPVqLHQvV4pSVZKnkikJrFEutk2nZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "64ad1cf94c1bd4ec0d560eba522576e65e6fdfc9980dff93f7650add08ba5092", + "collateralHash": "a79e7ba04427c2ea9541f0fccbd5a179fd3876e0ae80e437c9720d21ea8d3609", + "collateralIndex": 1, + "collateralAddress": "Xu1ajX7g1qWFSrgYKJqKZrH8ubUbBYyGn9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526373, + "lastPaidHeight": 1721606, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724747, + "revocationReason": 0, + "ownerAddress": "XpXxtSAPRtkrUuBhi7MseR8ePysFZFhWUf", + "votingAddress": "XteGBoKnBwbuENLJuNeQpJqJ1K9LpZfmp9", + "payoutAddress": "XjWTxtdAaoB3ckXaB3jAdFzotJL1gS86PR", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c047506094af8945f45edad6821ceb6c7d08801298262f5e1a00010877b4c562", + "collateralHash": "6fe61d1185724bfa7c4668a6af787618a86047f82955b9ded18f9cb96c0ac372", + "collateralIndex": 0, + "collateralAddress": "Xdr4Jp6opQhRMB5cUeXLVvWFwpUs6AJmyK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526373, + "lastPaidHeight": 1725652, + "consecutivePayments": 0, + "PoSePenalty": 4455, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726620, + "revocationReason": 0, + "ownerAddress": "XknngMBeEZoAnJD8NLhBNftho3rbC6uh4h", + "votingAddress": "XsJDZ7MYPo1QaM8jDm3GKiwvLSxFdthNj5", + "payoutAddress": "XuV2DHHsXHtwA5QHz6Th9RqNmMTqhTCpna", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "48560808aca7273955f33216e633ebcd44972b2097aa8e231aaebd3661395b19", + "collateralHash": "154894f15dabad277c49714ccb465075fc1f564668df9b013b5ecb2d35694f37", + "collateralIndex": 1, + "collateralAddress": "XdMr1Gkmu2aBhnWi2CtQtWtVD5YTDpakcx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526373, + "lastPaidHeight": 1721601, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724771, + "revocationReason": 0, + "ownerAddress": "XuVzf8ivbpJ9yrALZHkcSvg25q3kK3Nqes", + "votingAddress": "XfYcCBAtb3fXUkWh6auTREh8nXychjrmtX", + "payoutAddress": "Xv3UVLSjDACTg4CjQwzao8wJYzLcRNBCpV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "108c66a14f1319af51b035fe522dc2991640e9451439969887245ca015b497fb", + "collateralHash": "53c0bbc8fb211b5a404aa1ec7f594ab37805cb39232f344fa0297ce638618b64", + "collateralIndex": 0, + "collateralAddress": "XuQBUqcfoj5sHnSPWrHYXMM8CLmEQjZMC1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526374, + "lastPaidHeight": 1721611, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XuBcGFGAnjv2miPda8PTopRRmTn7LaU1eR", + "votingAddress": "Xkc6ayieiLktqyVrvcZfXqtCL2tfcQnJAv", + "payoutAddress": "Xc9VQ9KmHj4fo2a1UedJBPjBe2x4i9aDaY", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "98a22082844afc8996c44205a1280c6e9c37ded0bd29b8682b482907b55ef1fd", + "collateralHash": "7c19bcf7db9db2009040c1b5141495d1b96f37b21e614563051dd8b1e6b03d89", + "collateralIndex": 0, + "collateralAddress": "XqwCyJeVcoBBEEBKuahAmXhADYtfd2MUtY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526374, + "lastPaidHeight": 1721614, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724580, + "revocationReason": 0, + "ownerAddress": "XvMEQ2v64RRbWQXdzLTZHgxQDvpvc8aJpk", + "votingAddress": "Xn9jNMrL1vgj7XEM9Zn9WEFrQ5Lspt6w1N", + "payoutAddress": "XvDXuqsPCA8QMmYzD8HptfJURxCNouHLZQ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b2553b964c80d7af4f674aeb0955a1dca6ffa69d6bd3944f1b48a9a6ec88cf91", + "collateralHash": "cefa444a7e5c0ec050e7aa54e85fc84e238afc9cd4e3e02ff791583c1f0223d5", + "collateralIndex": 1, + "collateralAddress": "Xf4gQN7phq1jpnwCxWZT1SHqy8cd4y1EZp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526374, + "lastPaidHeight": 1721609, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725141, + "revocationReason": 0, + "ownerAddress": "XfPewhAYpTMLSAkkUZ3GzSnCwQU78aHAVF", + "votingAddress": "XfHKKHHJ7W1qcyLgf8MpHp4tDBMS8r3LFM", + "payoutAddress": "XxDLzFqaC44oQtR46DqEQoeZTPRQ59soea", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "24d9c815d4b81f692a06a3195f48333075f471b9f4047b6ec81c3a2669980a15", + "collateralHash": "f3e8cc6f37b88ca15a5e2645f7edcdc9693938cfa6c4c077e95e28e7e069a037", + "collateralIndex": 0, + "collateralAddress": "XkAa4jvf1FVsGZVYqRJSzFxSAyVXnbusRu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526374, + "lastPaidHeight": 1721607, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724652, + "revocationReason": 0, + "ownerAddress": "XrLpRdeWWKvsYaDqzkJ1aMt6gGoFvebL4b", + "votingAddress": "Xf6Nn5SdG3Jfe1yZYLhZgpi6RNumcokRqk", + "payoutAddress": "Xf22GaueAY4PoYZJmLscnhqhq88iwugKBi", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "d48a7dd52dd86a38152c8d7ddbe59c601a70b063c373c6b55cd0830d60ef86af", + "collateralHash": "a235ba8462992b793f598340dd3ac8396ecf7735389af5fa9b148adb8c6b6154", + "collateralIndex": 0, + "collateralAddress": "XqcrKv6ZuMtPKUrg6S1vULDc69H97LibHi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526374, + "lastPaidHeight": 1721610, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724987, + "revocationReason": 0, + "ownerAddress": "XccgcF1YBHhs1wakmgUy2tJnZB662pRL69", + "votingAddress": "Xz1hsgbdb9h4QyoXZ8tiqHF4dzUpyRWqLp", + "payoutAddress": "XeVEFEBsuWccugo9HcgzWyxsDWA8jLW2AV", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "664bbc97831bc2a2c2d9c47aab777335227d8546ace96958095a4791ec2e08b5", + "collateralHash": "c62a803423f16131205218e0d82b1bd0f210d60be69d7afc01b7261551fbe981", + "collateralIndex": 1, + "collateralAddress": "XxNT6MfHWhgPjL16Dt8zYBjkwD1bnacR48", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526375, + "lastPaidHeight": 1721616, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1725156, + "revocationReason": 0, + "ownerAddress": "XuMpFyyw4SFPpriT21Dd3dxpzC11DgKM6c", + "votingAddress": "XxkHE3k8SkdSgEUA1N8MH8RVwozaw4ifQt", + "payoutAddress": "XjqEGrECDPJdY4CBLhwdoC9UdP8XCPJF3h", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "f7a18a5ec28f85c96f0f4ff7976245c6f090c7851c45a774a2be0810cbc9a568", + "collateralHash": "16e8e7bf2af0116e7326e48adf8d0e0323159f3cafa540aaef72e1142037d546", + "collateralIndex": 0, + "collateralAddress": "XyrDH5nD2MKzPJ8CGbGUBSVx6eN7XWewUT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526375, + "lastPaidHeight": 1722332, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1625501, + "PoSeBanHeight": 1724565, + "revocationReason": 0, + "ownerAddress": "XsBrEMLt5Zwum5Xi5FS6i3QjYJggmJZWu8", + "votingAddress": "XnWUTofvH3PiKHWscKT2FZBqtuYwERdNGo", + "payoutAddress": "Xd2UyZ84cRkcPbGnG2oauheTn8uE6jfahj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "021be59f248e59d479015bd7060611d4ec5113690e831b533903656aa4d44bce", + "collateralHash": "373d85d222bb865b715e4f2e34a5ac206dfcced31d3bbfc259f91fa5e68cbe63", + "collateralIndex": 0, + "collateralAddress": "Xo8SMGPGPBYTb1mrCTPALVFa4U6AXpTJog", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526375, + "lastPaidHeight": 1721627, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1724844, + "revocationReason": 0, + "ownerAddress": "XhPN2bBzoykp2CVowQLi3LHDgsrVErGPvG", + "votingAddress": "Xfyw3WCQUdFifpzSheW6UiViV8bv6rZhwd", + "payoutAddress": "XnzJ61Uz4wZ5izSEZYUcqZRku8jYS8dV6Z", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5d77cd2868b6a4ffaec76df41259278fcf983c993611a7350f505bab4257df1c", + "collateralHash": "1c6673803d536e757a452e07729f424ce2045c51d89901eb9bc88ff42ab91ca2", + "collateralIndex": 0, + "collateralAddress": "Xfc6iKbPASHEYz9K2xPaYEQsoPodbLUc4C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1526376, + "lastPaidHeight": 1725667, + "consecutivePayments": 0, + "PoSePenalty": 4454, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1726236, + "revocationReason": 0, + "ownerAddress": "XryoABeHX7ESAfYtHwCGfu4WnMJ8oBbvbZ", + "votingAddress": "Xwu5MtmzF2xSByvuKVyTtnGYvY8fCeqrUP", + "payoutAddress": "XsVUFnuuiAYW8bBXR2QQm5UFmATZdJH993", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "bd0742170f987cbafbca92bf02ec4c318f8ee24c73617f26fcdad6bbb2078c6a", + "collateralHash": "690e9e9e713ae7c24f58ab8c08a8a778217d46f5ba56a243d03b212fa458c52b", + "collateralIndex": 0, + "collateralAddress": "Xjz4zkB1Zhvtn6umJCcCi7H3N7jEANmeNK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "103.160.95.225:9999", + "registeredHeight": 1527243, + "lastPaidHeight": 2126929, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120884, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbNkDkipLRQhCuYqNa63EzSTHSetQPBFWM", + "votingAddress": "XiphzJA4zU7d4vgXhXt24nq8EqhA8nQ8XA", + "payoutAddress": "XftE4fL3EpwWhticQJaqUCcjq2WZebT5hc", + "pubKeyOperator": "8ed5c4bd85ac9faaa2b8a8f005c7182fd147456d00b32c72cf4de50cfc695beaeb02b07ffe8f82d07092a4cff13eacc2" + } + }, + { + "type": "Regular", + "proTxHash": "16d040557ad124f9d9c99ed664f668df2b1d9931432d8180d3459dbb2bf35d74", + "collateralHash": "0bb47f74492a1363149158881c12e468f55134aa8c49fa765311fc7fec20ba91", + "collateralIndex": 1, + "collateralAddress": "XydnGEEQs3pfCdREyjB8ZWWvQnaKoYeFHT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.106.73:9999", + "registeredHeight": 1527705, + "lastPaidHeight": 2125825, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvZ82zT78JLXvhz8co3Skm271ELkwJbxFL", + "votingAddress": "Xx1AtHAWGVev9z5DwBam3asemn1WksJkxi", + "payoutAddress": "XdDvK3HgcAPLHsB5tk9252NL8SPrxQPPbe", + "pubKeyOperator": "82a6d7f5810162b56f0f46e48615a7330a24ae2d68ab4d886062d915e0da5c165090da9a928f2b68f4e4620e1e055064" + } + }, + { + "type": "Regular", + "proTxHash": "17df4b74bd30621517993251ac7928e9973954763c2875d1f1100ba56c9700e6", + "collateralHash": "5f3baaff220a8945dbc67fef3c7fb320a6143811dd3a558d45cdefe1c9a8b34f", + "collateralIndex": 1, + "collateralAddress": "Xx8YeToip96nDtq6FWmszFamcZVUq9WvQa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.56.181:9999", + "registeredHeight": 1528570, + "lastPaidHeight": 2128533, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1883758, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsh1XzgyCA826R43LrHyrd9sUjsKSVSNUd", + "votingAddress": "Xsh1XzgyCA826R43LrHyrd9sUjsKSVSNUd", + "payoutAddress": "XjLFbH5CxtgVnEuWFP5ei8H773mj8FSz33", + "pubKeyOperator": "11c8147072418f7406cab944517233d6d7ae02f01775b0cd18af340f4c35a206d2e8cce23e6ccb00c0bb969760144a3b" + } + }, + { + "type": "Regular", + "proTxHash": "19faa586dee7a28f2cb35f679b41f4bf9e88f6496e07eb2ecbabff9ae1093856", + "collateralHash": "4ec668b298b513310ee819d361c7d408612e6db6022da9829334d8bce30167df", + "collateralIndex": 1, + "collateralAddress": "Xiy2ZVAjWvZ7RFDSaCr2dtB1nGFyhu4mDM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.147:9999", + "registeredHeight": 1528937, + "lastPaidHeight": 2125823, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2102851, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XckxBmQjLNEJZBrqDgZjcNLk4pRpTVx3JP", + "votingAddress": "XckxBmQjLNEJZBrqDgZjcNLk4pRpTVx3JP", + "payoutAddress": "Xiy2ZVAjWvZ7RFDSaCr2dtB1nGFyhu4mDM", + "pubKeyOperator": "16a5c6f69b8f1f6a6f5dd58b5e8d22de258b0822f85274c4fa965866cb5ae5efb270ae308dde556f34f0cbdd6ce9452e" + } + }, + { + "type": "Regular", + "proTxHash": "72efaa8a7bd3bd4c2a5a16d0425745fb5de8947af9f15947ac2cadf77a906261", + "collateralHash": "e955687796c5d9e7da3f204be23db6d515e303180260275e46da0f3dc1243b29", + "collateralIndex": 0, + "collateralAddress": "XbyFcVJVV1VthXNSmKtGZapkCprDN186PW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.149.239:9999", + "registeredHeight": 1530068, + "lastPaidHeight": 2128265, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976876, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XswDZppPPes3Ldeb7jsJNXrLuHzBJiVpQ2", + "votingAddress": "XuGR81JSSEW3hjmpK4FaQyNTVAbRQegnfc", + "payoutAddress": "XmzwRhFMnoENyYFphBFM8wvPCrQd8HTr26", + "pubKeyOperator": "1269474fefd10b055edc4d942be8e6541af6ba620481502d4c280859439f68067ffa9d4a00b3e66864d3507e6659f402" + } + }, + { + "type": "Regular", + "proTxHash": "7f23d5f1914822466bf28317fdf5baeacbc985d4400155b2a94fb46c87199c16", + "collateralHash": "2876fc6afa076534071e83d6afa513529caa6c259b21c52a51f92740edab58df", + "collateralIndex": 0, + "collateralAddress": "Xczph5bEYTTGXFceNiAF3Jqxkb3KCvNR9Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.22.95:9999", + "registeredHeight": 1530087, + "lastPaidHeight": 2127370, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyPPy7MRsMb65UdUN4eknJkFPYR2CtThFY", + "votingAddress": "XnxcCuvyvSWz2Fe7RRPuUMa9A4tP4n4zQR", + "payoutAddress": "XmzwRhFMnoENyYFphBFM8wvPCrQd8HTr26", + "pubKeyOperator": "0112e706a68f8eeb72617366b7ba7bf26bda65cde6c9ca7ff2a43a458e468a01a3cf86be865c74419f3b3d3253b78b37" + } + }, + { + "type": "Regular", + "proTxHash": "c661655f19ec698073bf489fcdefdf1cc32e3e78f134a0f584c487b309d7e367", + "collateralHash": "60aec69b39bddbdc0c3f20a2284774da755feb2fe925eaf7ebaf80073664b2a9", + "collateralIndex": 1, + "collateralAddress": "XxdCp2V2QzKTmWgKTQJEXoFbGL1R31soNF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.8.64:9999", + "registeredHeight": 1530574, + "lastPaidHeight": 2127595, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1935675, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuSz1K1zaeEpDNJC1nf7hRxV1C2gmqDEnJ", + "votingAddress": "XtCCUPxEqzHXKN6UGM5P1ZyoXyYmFRkTaX", + "payoutAddress": "Xk2MktFQN76mQBjXDX72G8Kx1j697N5SKt", + "pubKeyOperator": "85f31268e6b2667e36bf32dcdced8442288084b322fd690bc3b0b81b77268e190546cfe1664a12ccf29ce96dec34eff1" + } + }, + { + "type": "Regular", + "proTxHash": "16cd4d921f8b8363f5390fca8113c6dde2cd00a941242609ab196190afed652c", + "collateralHash": "f02fd51cfb0ee7e7e8745e470a28f8ea061fbea9101bc258abd9db161dfd13e2", + "collateralIndex": 1, + "collateralAddress": "XcpR6fy7AM8waGXGC3VD1zDEZWLQzcgxoE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.33.156:9999", + "registeredHeight": 1532275, + "lastPaidHeight": 1714539, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1715244, + "revocationReason": 0, + "ownerAddress": "Xr3cTo7FK93PxnCBs7FQ7ts4Y8DH2cvD4x", + "votingAddress": "XoiRtFs1SMvfjnrHjkxeNCPZnnFqmVhReq", + "payoutAddress": "XcpR6fy7AM8waGXGC3VD1zDEZWLQzcgxoE", + "pubKeyOperator": "975fab0ede49d9763ffee98b70c96bb99952c6d09a7eea9237b64b1b20cbf21d0f20bddcfd1bb4897504cc01c37533c3" + } + }, + { + "type": "Regular", + "proTxHash": "b129b62d5d03a8b11279ed89879ee2f4be33b4f90030f12c2bc8bfc5cd00d2a6", + "collateralHash": "dbb5f6fb7f7ec41082ff62c745165c210edc63b9db349ed4e622a7c6e5cb3b83", + "collateralIndex": 1, + "collateralAddress": "XeRCp839CaVZKj1C5wTVuEkJL6xXMXzWFU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.92.220.138:9999", + "registeredHeight": 1532275, + "lastPaidHeight": 1714540, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1715435, + "revocationReason": 0, + "ownerAddress": "XmkLkDDQgyztCvAjN2JHs3MPAJ9qPTdptE", + "votingAddress": "XbjqJSybowyk5hKfzYJEpaBMZzic9uDw2A", + "payoutAddress": "XeRCp839CaVZKj1C5wTVuEkJL6xXMXzWFU", + "pubKeyOperator": "02e3463c341e16bc8237e15889a3fc82b69118acf13e44f706ec909a177acea3199ccdce496fdced6a2e363d0267dc9e" + } + }, + { + "type": "Regular", + "proTxHash": "2b96ad72b883391103cc3a4a0a3e9b123cce69d497f6fa9b0ecda9c2abc50137", + "collateralHash": "29a6b99a9496a3604089c1b8f02a48178bed9de04777554284eac3e71ec47b2f", + "collateralIndex": 0, + "collateralAddress": "Xb1pZAn1R3KSCFjD5gGobdwEf8yL19dkZc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.87.194:9999", + "registeredHeight": 1534478, + "lastPaidHeight": 2127200, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsTjdQrtqhsE5v6PGK3efXg36enHRpYLwB", + "votingAddress": "XmpXzMaXDnXZ27fJBq3A3v3z8RXrAGEBGE", + "payoutAddress": "Xb1pZAn1R3KSCFjD5gGobdwEf8yL19dkZc", + "pubKeyOperator": "0f7077767b2cab9e436dca9c6e9ad8b4d5c5aeb24c0278d48fc2f0bb111115d0e5f4a3bee6322268aee7eaa47ab0044f" + } + }, + { + "type": "Regular", + "proTxHash": "867fca87b176b1a937566907fd048266f6e062a68765e3de89da0fe8b052a173", + "collateralHash": "25f0cd54a5e90cb04aaf1aa4c9f80e80ed924811f96ca48bd5eabfcc4fffbc5e", + "collateralIndex": 0, + "collateralAddress": "XdwbahWM5aj7uE5JqZJb5pgB9bdUC1PW33", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.65.155:9999", + "registeredHeight": 1536017, + "lastPaidHeight": 2128159, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876632, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XggrKZMSoB1uGMnkmkBzja8ZXRRYhWG7E5", + "votingAddress": "XwdWnCSsygDhFgvGis1gJBk4NkAjjoBDD4", + "payoutAddress": "XxC4GAazucjuKeT1qCMNdC4nP99imnBuW8", + "pubKeyOperator": "888fe3b956176c1299297a3ab11ffcb4dfa410b2f1b3e9a9317b3a8a287116e7ae1b952555d695c6f90b03926ea140fa" + } + }, + { + "type": "Regular", + "proTxHash": "71abeddcfe85a1879c393d0f3438250008bde1e7748cdb04580a3a913bab337f", + "collateralHash": "f0e16d97433bd584188592048349efc32e972b0a99df8294dc4bfcb6606e5193", + "collateralIndex": 1, + "collateralAddress": "XfcFLHLu4AYAEmyqFJbQJNt9Wrvqj4S1vB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.204:9999", + "registeredHeight": 1536399, + "lastPaidHeight": 2128705, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn4j32231MB2r73to1QgkCLXsyXyaBBAJ7", + "votingAddress": "XvoQfjHQT5ee4aUbMTcQc9WtTNAJgHbZno", + "payoutAddress": "XpaqEzSjafG7Yu77FzUKkCCz8cuBcJDtM2", + "pubKeyOperator": "89b1aab3b76ccda3df40b73c9cc911e8455679a0b613fd41f22675332439d9980ce0b867e91d2a040f293b147dc1b88f" + } + }, + { + "type": "Regular", + "proTxHash": "4251e194ea2d3f7e9b6fb9bb3d196d631d97ff945bff60c53c3d9d374ca37984", + "collateralHash": "3821bf65142581af6c049e32f47e64e4a81e62d68a238cf2983f921a74021c14", + "collateralIndex": 1, + "collateralAddress": "Xp3k9UFCaqUE3fR7477cP2T2Vq3ft1t8tu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.106.26:9999", + "registeredHeight": 1537194, + "lastPaidHeight": 1824818, + "consecutivePayments": 0, + "PoSePenalty": 4449, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1828554, + "revocationReason": 0, + "ownerAddress": "XyYwEz8C2eWrpxxZDERkVy85s5xNYLq6s7", + "votingAddress": "XyYwEz8C2eWrpxxZDERkVy85s5xNYLq6s7", + "payoutAddress": "XmrWXp2sk2JBsSxjNmvr5ULhtdLW4KfXzj", + "pubKeyOperator": "8e5c63f4eba8a05fe10c4fa383c2e9388091ecc16f3a228f7621b737b2bf9074d13b11127f69db5f018694427aa60675" + } + }, + { + "type": "Regular", + "proTxHash": "7d6f2c4fee74b350f906a822c88510375ea06f917445abe5ea8b7efb6907548a", + "collateralHash": "dd078c6c1e0b7ac34f342e33fa4bd9a72d917548232531379f1a32b609a394e5", + "collateralIndex": 0, + "collateralAddress": "XjSThvGuppfjdWFr2iHdFzdarsmqdnV94A", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.163.101:9999", + "registeredHeight": 1537795, + "lastPaidHeight": 2128824, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbnyvTrFv3Fk9CYSLwWpvNneY39n4CCLjf", + "votingAddress": "Xsm3VngZTHspwhsPdXdGd9e8hmcJ1Q3C1p", + "payoutAddress": "XjSThvGuppfjdWFr2iHdFzdarsmqdnV94A", + "pubKeyOperator": "0b14072c3a03543886de0b0c344669bce4c707c13e626b0de62f15b4aecf38fe91595be641f9c12df945483907904d2d" + } + }, + { + "type": "Regular", + "proTxHash": "4ad133a1b73271ff7ff2687891cecf7ab7c8e3a3deb32cd70b2f700104251ef7", + "collateralHash": "143fc85bac918e6b4d56063c69bba331df4e627f1ebcc696e50c6be48328c45e", + "collateralIndex": 0, + "collateralAddress": "XxEyJEMoKNYGJLhjFrd4FJE3PeMvZzX6HF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.216:9999", + "registeredHeight": 1539338, + "lastPaidHeight": 1757949, + "consecutivePayments": 0, + "PoSePenalty": 4448, + "PoSeRevivedHeight": 1783117, + "PoSeBanHeight": 1783914, + "revocationReason": 0, + "ownerAddress": "XeJvmucQHTvcz2sUBym4WgM7staS5GUeeh", + "votingAddress": "XugM8LNSvBsfTZnR4fkSpf5bfS6UmTRyez", + "payoutAddress": "XxEyJEMoKNYGJLhjFrd4FJE3PeMvZzX6HF", + "pubKeyOperator": "0fd996fd993eb06737bc7615e259be8af67499bed37b3b7a9c8d375f003201d624169aac89e5b4dfc43e370df0f2c898" + } + }, + { + "type": "Regular", + "proTxHash": "b01b0a491efae3408a21cc3f78c49f23f18f27fabea5a657dcde4fb5934ed50d", + "collateralHash": "d48936fd1d7c9f6bcb2219000d8fba4ef77b125012d35a1295f293727b002f1e", + "collateralIndex": 5, + "collateralAddress": "XwRDZs1qjhkkk5G5wDYFnTjRVpo588eM9g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.123.57.194:9999", + "registeredHeight": 1542493, + "lastPaidHeight": 1915038, + "consecutivePayments": 0, + "PoSePenalty": 4212, + "PoSeRevivedHeight": 1737522, + "PoSeBanHeight": 1915509, + "revocationReason": 0, + "ownerAddress": "XcL1AqdcGJBSFLWfDWYcz1QWAa4yETdpWj", + "votingAddress": "XtQymqMuBYZd2QoFrj57kZPmKLDnTrevuY", + "payoutAddress": "XwRDZs1qjhkkk5G5wDYFnTjRVpo588eM9g", + "pubKeyOperator": "04a5ff46aaf9a699d25ff3e76ba77fffd8bbef57edc5e4f92683c1185cd739e1ebe4d87b25789f5c8300ee91031e235c" + } + }, + { + "type": "Regular", + "proTxHash": "48a7769eaa1285be95f82df563dfae92f402328ff1d0f234c90114c05a7826da", + "collateralHash": "93d92f1b892af6035af3152bbb5745e44ba15b6f3e287f1d671cb4145650a1f2", + "collateralIndex": 1, + "collateralAddress": "XqV5aDW4WpoikM7UVDJRX2MgvBZAo8p6Ku", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.84.41:9999", + "registeredHeight": 1542715, + "lastPaidHeight": 2126626, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcxx8U7ntoYXmnXaKMYjrkVfQFmDkLbB7s", + "votingAddress": "XyfAhRxhcLqFhYXPDoTfSyGQHwVfLcXx14", + "payoutAddress": "XqV5aDW4WpoikM7UVDJRX2MgvBZAo8p6Ku", + "pubKeyOperator": "842f68bacea08f9534d06747402cac9a1bb8cb184619dda260a274631974ce51b0cebdd0bb83f0376770e0735221c87e" + } + }, + { + "type": "Regular", + "proTxHash": "c62dcd8f7b9c7e0334d7c13706d37098ad552d934687f21d57c47071c5c6c45c", + "collateralHash": "beb178d0491822f974fbc59bea5d635b0f42990709cac781aaaffbf32aa49120", + "collateralIndex": 1, + "collateralAddress": "Xea4nqNbRtpCtYuCPrG3nMmyowQyLNkTWq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.175.70:9999", + "registeredHeight": 1544883, + "lastPaidHeight": 2127549, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876069, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XojSuhShLTiG1WAnL2TchRxViGJZTMbSu5", + "votingAddress": "XyvmdYV1WzURfik55vrBSxac4BPWTJ6QsL", + "payoutAddress": "XcttHUDqKATLz498iFino1cDAVrsysrdG5", + "pubKeyOperator": "093b5f909582eb062f44d2402a8465aab545d2fb36adfac3c18be7c67f885d9d1f017544d26cfcb18354d74282a8581f" + } + }, + { + "type": "Regular", + "proTxHash": "1e129fe3478430242a3f77be2f9c945aedaa330b7663ce8c6bf019827c87b8a5", + "collateralHash": "1256b5964a6ee39c4368ee2d0d1c3f1159fa09a2bfefb9bac722591ee5f98fb1", + "collateralIndex": 1, + "collateralAddress": "Xmad1DdHDKCg4KoSEbQZCJmRFafLpVPeSP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.16:9999", + "registeredHeight": 1545478, + "lastPaidHeight": 2128645, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx8Wk8X6sP1NVnZY3pZJFtacojrqBLVnev", + "votingAddress": "XvQEV48J2sNEFRXSVFsDTcEeJ5iWkdLhhr", + "payoutAddress": "Xd4xwbq2xAFtEngoqjiJtLkwSAqEiZDkBB", + "pubKeyOperator": "854d74a6ad83619af4a82f9ad811ae7af16e0920dd0b9ef278df3d448dd39a79e93fc7f1b75557c68fd8953a884b183a" + } + }, + { + "type": "Regular", + "proTxHash": "ed5d3ce381b74aac2015b752fc6e8e166836e1f37a93a5460449648c57e44dbb", + "collateralHash": "08ca598f8c6a1f973fbc6cd0dfc94f61027facd20f331974ec41797d3738228d", + "collateralIndex": 1, + "collateralAddress": "XubpVBXbCBA9n5Yvc9dxBnkzxo6EAb8Y4k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.211.210.20:9999", + "registeredHeight": 1546976, + "lastPaidHeight": 1986191, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1687371, + "PoSeBanHeight": 1988949, + "revocationReason": 0, + "ownerAddress": "XosjroFUs1kQunUgWbRyRLE8yCNZPuRm8z", + "votingAddress": "XhDwSSSXTvobRvDaSrxQwcnvx4u6yUwbwU", + "payoutAddress": "Xws7w2rAViyu66xLVWjfcPiQa9uuHtfU4r", + "pubKeyOperator": "0247de6ccbf1e0827bfda892cd248434cb47a20c9378e5b93df2d038dc381826ad2078a222735b03003cf5e470c2c7ad" + } + }, + { + "type": "Regular", + "proTxHash": "31a47b4f1eb898333a84f9b6bc1121017e72970ad32d3881849a5ec5b8b8e38f", + "collateralHash": "cb845cb6e7b7b8280e5bc7096861eced335d0cae68e2f84ff618a341ef9b9760", + "collateralIndex": 1, + "collateralAddress": "XitvZnsZ4Ne7JdQfFCYug1yz74jCnNiCKV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.98.21:9999", + "registeredHeight": 1547612, + "lastPaidHeight": 2128251, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2108859, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdA9qHmTwiiVgKJ9mDzwLMPqqGxQqcTVi2", + "votingAddress": "XdA9qHmTwiiVgKJ9mDzwLMPqqGxQqcTVi2", + "payoutAddress": "XqviAfTnshDoFBuvcyohpEGLTFGfoNRLgX", + "pubKeyOperator": "8e3111abfab23379dce77250e97ccd912f35a00cc190c52e6c383b48f14a5085a79dd54e567eb64d0a7f3f4725fd2485" + } + }, + { + "type": "Regular", + "proTxHash": "ccec6335aa29d4511b34b12631a82cf09f93762894cc5eab0edfbea2760ac128", + "collateralHash": "5c5ec519b94d90cef19626a3adbf44e5a7a50f6d8ad6953d17af12189e29584a", + "collateralIndex": 1, + "collateralAddress": "Xj8EKX2hsGuiK4XhUBitE1BDMxzeiyggox", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.80.227:9999", + "registeredHeight": 1549045, + "lastPaidHeight": 2128884, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1718486, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqthMJiu94Wa8JTiXtomEcumM2Cvo5tf24", + "votingAddress": "XwwFBEwANTSNiDBhLhKTJiTkZTWXbj8raY", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "87b288fb9276d9ee276bc088d96a9b1e59917eaf74338472124dbaff2e0949667c8302933a11b00fffba399c738ebaf1" + } + }, + { + "type": "Regular", + "proTxHash": "f73c6eb09203aff628549d23d9f82e842a57c08048cf77cc56d450ca216d5b2b", + "collateralHash": "b84531964700a80b140696d77177d8327433ce9a8079935363fb7f92aede9e7c", + "collateralIndex": 1, + "collateralAddress": "Xmp4rQNfYjEBpRSzsCWJHNYxAb81nLsEsf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.135:9999", + "registeredHeight": 1550083, + "lastPaidHeight": 2128650, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrpwqv1SNX9tRciMsH6AU8y65ZaBBxW3so", + "votingAddress": "Xfd8SLWMBmTNcXZkj7Lj3XU7xEykewEbZD", + "payoutAddress": "XcW321LYrpbUzMbitB7NDNmYDgZVfofHFa", + "pubKeyOperator": "903196d8d39ca96cad943b2a043031585dcbf746735b2db116620c112e2149dd309d299c6595ddc04c760157df0804ce" + } + }, + { + "type": "Regular", + "proTxHash": "c5d3848a66392f8c1b0c369f565562cb6d2adcb2cd232db7ffb9c2a7602e9ae0", + "collateralHash": "5cdd4161254b3dd5395bf95089510e7db176cffce7052c759c3c6fe45e1a4909", + "collateralIndex": 1, + "collateralAddress": "Xn3B3BS67C8kJG6SPca5nhJvmh14mxg5x8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "42.194.133.119:9999", + "registeredHeight": 1550591, + "lastPaidHeight": 1733490, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1590041, + "PoSeBanHeight": 1734780, + "revocationReason": 0, + "ownerAddress": "Xqri3Jk4BdQg3DWSjW3q1VqnAEopDH1TRi", + "votingAddress": "Xyf7QubmHYvXB7Tu1sF2zYaPG57c7dP6uv", + "payoutAddress": "Xn3B3BS67C8kJG6SPca5nhJvmh14mxg5x8", + "pubKeyOperator": "041ed7aa6667ff44539bd796c8728da0cf7d1d2b32d193dc4b72013a29c0a8b4c0c2545b853e76105b269ff43f98a5de" + } + }, + { + "type": "Regular", + "proTxHash": "df3fb2ea0369f9fe2b66953a8506fd64c3e09b784465304c069bc96a89f93a6a", + "collateralHash": "8985c8e5346f75d2d4bc5e895b316f18a089770e707d23e1a1c4fec3c276b5bb", + "collateralIndex": 1, + "collateralAddress": "XgHwfr9UuVv7wLjtvtus81YFztEJSWicWn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "81.71.13.165:9999", + "registeredHeight": 1550594, + "lastPaidHeight": 1733291, + "consecutivePayments": 0, + "PoSePenalty": 4465, + "PoSeRevivedHeight": 1642066, + "PoSeBanHeight": 1734588, + "revocationReason": 0, + "ownerAddress": "XsoXca1QWtTnuTV2zCPeSCgA4jeojX5P85", + "votingAddress": "XyScFA7WssW99xJucNYen5JzR1V5mWLmST", + "payoutAddress": "XgHwfr9UuVv7wLjtvtus81YFztEJSWicWn", + "pubKeyOperator": "8cbd9f9bc445cb6ef8be1ca9840c9275313a518c0af852e4b7289aa7a03a681a7f50dd540f6f1501c3cf8134f0460461" + } + }, + { + "type": "Regular", + "proTxHash": "1e702840e3dd3104a96baeae306dc034530f06d809c5e3310ee74d1ba0feaf81", + "collateralHash": "873f08c8599a23b8dfce4c724785d2de987c73dd7355983a3a26386cca2e5d41", + "collateralIndex": 0, + "collateralAddress": "XfhxTFiGRiBCK3PSo5vJiiLtS8yXEDvX6R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "202.182.102.237:9999", + "registeredHeight": 1552700, + "lastPaidHeight": 1807087, + "consecutivePayments": 0, + "PoSePenalty": 4425, + "PoSeRevivedHeight": 1822223, + "PoSeBanHeight": 1822794, + "revocationReason": 0, + "ownerAddress": "XiVyfqpu1Uqofpw66KjN1eAmCNWtSJfcgR", + "votingAddress": "XvV1qhJhede1SBWUbCtCnyHvsqw8GLECVz", + "payoutAddress": "XoRokzYSYA7HYkQKcQJwPBatkoaoHeuVtp", + "pubKeyOperator": "8d7f760f2686e42d85d29b4a0b45da294beb0f52a2c6c93a717532515354fc846e3028642e02324750a5beceee6c685c" + } + }, + { + "type": "Regular", + "proTxHash": "b88e2759ade3a6bc6e982c72f016f005a38f0e4f90c5be1d89f3b2b2aac76233", + "collateralHash": "fa5f27c49e9f52ef199b23df3f025001e179ab6144d997b05693a41f1f56a0fe", + "collateralIndex": 1, + "collateralAddress": "XebHiES9XhYpeCqVfZcoYn1heGB5ETfjYe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.202:9999", + "registeredHeight": 1553162, + "lastPaidHeight": 2127217, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv2HRTxnxcv4WDF4wB6iDU38HGburaQXZ1", + "votingAddress": "XsgL9yMvBgEXbCwWDfga3SR7ojPeGDTK5b", + "payoutAddress": "Xn4zfY77optcYjFQ1NGfAvXo66ag2HN9pm", + "pubKeyOperator": "8318710d26fa031e5226c18a650760aaa8f845c00b0d027ea9c81d687bdb6573005cd2c9439746e834e3dd5220ab7652" + } + }, + { + "type": "Regular", + "proTxHash": "cc543fdc2cfa9439d5faba833c37375bd799f1d6fb074143e9bf2aa42c1d5542", + "collateralHash": "1b8b965b39da2240959fe2bcf43a4fb330cde5737fbc03343d7bbfa2dfcd22b4", + "collateralIndex": 1, + "collateralAddress": "XrmZbZwxR3aPBvHvCCjynfN1uEuNBMQnRp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.105:9999", + "registeredHeight": 1553494, + "lastPaidHeight": 2127626, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkx79HU8J12he3crjJw6xyMvdGTKbXpVMs", + "votingAddress": "Xit3ynPjuTG5UHPuaL8WAGo9mWgykedDw9", + "payoutAddress": "Xp3pXeZK1zgHudxHvXUVy9B7EXz34XqB4o", + "pubKeyOperator": "12585cfaac58c81f37ef716c449476f14e1f3c3a8a91a918bb15a72cc4ae957e8e7109af86f858ffe91899e1d29a1812" + } + }, + { + "type": "Regular", + "proTxHash": "96e449b66ae6822025c27c4d192433224a8704095f9f7113f6c1b85f3e74fbfc", + "collateralHash": "4dd3a53e1c66c2a8de6209e0aee535deeffbd596fdf9f131f64ef99660991799", + "collateralIndex": 0, + "collateralAddress": "XieAcWGsCTWVbQwB99RNCQgX12C7THwUdW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "84.103.169.136:9999", + "registeredHeight": 1553657, + "lastPaidHeight": 2127014, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1687382, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdgBgQRzCuikzkZNP8zCjhsBwqiV6BkV9t", + "votingAddress": "XyDJAwXWeu1VUK2eFiUz9ahTtWb1XVFvSF", + "payoutAddress": "XigRCZW5H4yDfm3U848Dm9w4Q6v4sgPurR", + "pubKeyOperator": "114cb1b02f8e636f75a1f3a1313dfddfaba9e11fcb91cad5fe30cecfb85f7e06f9dce0c49adb2700d696d1e4e19518cf" + } + }, + { + "type": "Regular", + "proTxHash": "cfbfb127849a9e931ed0d35a399b241c0332dd1a4bbaf530c362edff6f772ded", + "collateralHash": "62cba3fadee2b54d5188c4000a24b5220f2251bff52cf32913418c5626e05837", + "collateralIndex": 0, + "collateralAddress": "Xx6i2Bk2QhUqazspdWRDHEaAwKYfAptbki", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.20.115.163:9999", + "registeredHeight": 1553948, + "lastPaidHeight": 2127969, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmThLDvNDkvYaaLNVn4rWyVrb2h2XDpXuG", + "votingAddress": "XssyM5sSesvth17zfGnb7if8oncKAb6kne", + "payoutAddress": "XiC2JN7H5SYZetfGThG5ttnYtziYwfmdsg", + "pubKeyOperator": "14a2602eb1ab92786232cbec13c7aa73f8485d06b1907bad1f1a59fd98aad8ff6f66ab1ba767c5e75a5f99011ee87615" + } + }, + { + "type": "Regular", + "proTxHash": "3ef857e664aef540716524ca88ec816c43c059e09e71d8770dfb4efe06f741fd", + "collateralHash": "3197a666b65d1779f9a5dc62f1aced404fc9ac352c7e3d001ace47f2dfea846b", + "collateralIndex": 1, + "collateralAddress": "XrUqNSGsrBP8p4m5pCLLLbQt8XL2wqa6mr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "38.99.82.230:9999", + "registeredHeight": 1556954, + "lastPaidHeight": 2114007, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126065, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsLa8K7DJVnd7CxEpZJtdrC35h7HbEQTT7", + "votingAddress": "XsLa8K7DJVnd7CxEpZJtdrC35h7HbEQTT7", + "payoutAddress": "XrUqNSGsrBP8p4m5pCLLLbQt8XL2wqa6mr", + "pubKeyOperator": "0d21f5b8f44057b2d6e48d91a70232f255a004a1a3bfee81ce6e7ac4e22f127b95114f38953b36685c2a6b7fcb75569c" + } + }, + { + "type": "Regular", + "proTxHash": "01ab6185339d04b5d89dc51398427551be19af004dd3db8cfa78683581b9634f", + "collateralHash": "797285b2ca64e2ebf362213c3a63400f26a118a20efc59c87659b3000bc4a086", + "collateralIndex": 1, + "collateralAddress": "XiwpuXLqPQ6eijiDLw9nGEePJJk1oWwvbi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "92.255.78.94:9999", + "registeredHeight": 1558995, + "lastPaidHeight": 2128425, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfmXEeF1tLzZ3Eb4HnDiWLty3TvUEzrVod", + "votingAddress": "XitwSuc38T1T7JGLWzDiQtH5wDJ9ZKzSeM", + "payoutAddress": "Xv3xRcM8yWpuXNaHPRTNzxqKZMhYrkxniN", + "pubKeyOperator": "99110c031bb9e8fe28694bf8319b01ce3e76189a8f5ea6ad16d7c50b0bcc4da8e99f72a1044bb122ab3738044b6952c5" + } + }, + { + "type": "Regular", + "proTxHash": "d811aab2f427f36a73402c07221b65a6d9c5d4f27b5c7e5908e314b3db505b18", + "collateralHash": "29214cc6415dea6fae20a49a3e80a0708165548f97de382d94d83df9081d5274", + "collateralIndex": 0, + "collateralAddress": "Xw8kUKWJwFtdfWqtiwZDV15FhVJrcwPAEp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.19.65.66:9999", + "registeredHeight": 1559016, + "lastPaidHeight": 2128692, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1563909, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYpEftpUwjX9YBtdi6obhSf2hnb6RYRsc", + "votingAddress": "XqvhH7BYYtPjKSRUmLAbJj9KGvoMPbXQga", + "payoutAddress": "XqLxd2jgexvhsEdZKxsf6ts1ictKDdtKLf", + "pubKeyOperator": "0be7cd290fbe9c2de8b9314c8a5bc1345816b20508e46026a512f77d00a914ac7e9f204ceed4002801bfde238a14e0f2" + } + }, + { + "type": "Regular", + "proTxHash": "3926da8fd5ac954ebb9c16013d6b9ec6956c32b3f5c19f6f25e6851acded89a3", + "collateralHash": "c125663ae5a9a7310ba9d2eb38ec5fd284c1909837a7df638c340b4b99b217e6", + "collateralIndex": 1, + "collateralAddress": "Xw9s6jgRvAnkr3rBvxgEa1qt5yc6eRkfme", + "operatorReward": 0, + "state": { + "version": 1, + "service": "217.25.89.203:9999", + "registeredHeight": 1559029, + "lastPaidHeight": 2126831, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1561491, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeN267sAt9BSQMEP6goeVzL2FPGzAK2zN9", + "votingAddress": "XjVsTZpP76S4rA6hLVC5MGuXkcb5v3Maq4", + "payoutAddress": "XvDUfMGA2rW6jXxTZE4zUYeh5R7S6gztuJ", + "pubKeyOperator": "023f5cbeeaf1cce563b864937c96d1109a086637106021d009aaa33aea1d8ee817055abd53213ab8700ae4c03c8234c6" + } + }, + { + "type": "Regular", + "proTxHash": "bcf5209ca5e2774853d6945cde0b96d4c7ad8663f196734639044fd658e38f5e", + "collateralHash": "b8dd6a90e0e4b04eac3bc61bd301c61a0111f173f7082247c241179db87165d3", + "collateralIndex": 1, + "collateralAddress": "XyvHDvrEf1qEYVdxjd1jUmrXKUdP5EyQ6H", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.90.185.169:9999", + "registeredHeight": 1559033, + "lastPaidHeight": 2126188, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2049107, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcFewoPt9zYi8ZnktJAj6Diyxu6XHMqUMW", + "votingAddress": "Xvj2G4w63VFEPgD5mUkbjFPDCFT7ZqGTyH", + "payoutAddress": "Xntiwi3XE92A7GvoWT5psvFCtR7tdaVauU", + "pubKeyOperator": "8f2d54ffb351acc9fb8ca90726b02320832dda589a83fae040611d96a0a6917a5fbac2841232e18312f675c6a5aee670" + } + }, + { + "type": "Regular", + "proTxHash": "4f8d301a6e0da0882c271b20b6ccbbe22905f4398ac0b4262f749ba5d570aae4", + "collateralHash": "b036761efecc0d91a418e73c2b027c121980083835a2489912086742ceea9585", + "collateralIndex": 1, + "collateralAddress": "XjDMSHHaAnFgpu6TmtJhfw2QvtUgxvxKKM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.17.200:9999", + "registeredHeight": 1559721, + "lastPaidHeight": 2128585, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007672, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw7ifgxvuh6fV62nd38ZLJzs9Dm8axNZtr", + "votingAddress": "Xw7ifgxvuh6fV62nd38ZLJzs9Dm8axNZtr", + "payoutAddress": "XjLFbH5CxtgVnEuWFP5ei8H773mj8FSz33", + "pubKeyOperator": "8422fa54f8839b8c3c38b8c2e0fe006d435eb7ef4724b414787f7eb448a7cde184e73c8e0dc74d3f75185cf5f769c3fe" + } + }, + { + "type": "Regular", + "proTxHash": "fcd379784d24cbcb09850379108868314a71c2800e1800157e1aa1eac3b64f55", + "collateralHash": "075270e5ff7d2c3f7accd44d01927493d4876067e3fad1cc2484566443c5fb22", + "collateralIndex": 1, + "collateralAddress": "XpNoPREEYvmjHh9nJm1dZp5mwW6TWHxkAJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.136.98:9999", + "registeredHeight": 1559757, + "lastPaidHeight": 2128587, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007674, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe39xC7u5rT9hb6hLFDFGSXZE5Yd6BWqYQ", + "votingAddress": "Xe39xC7u5rT9hb6hLFDFGSXZE5Yd6BWqYQ", + "payoutAddress": "XjLFbH5CxtgVnEuWFP5ei8H773mj8FSz33", + "pubKeyOperator": "14b0ced7bad21b25ef76fbb7dd656a35fa513a9cf1cb82aa1b04d8e22035ba8ce0961a8f671aceb0b0681395ff8732b2" + } + }, + { + "type": "Regular", + "proTxHash": "e5561bdef3fd46232c3b6570c1f9c06563c112158d72acef7f7e8b2cafb85ef0", + "collateralHash": "828691b81da244b264f112a15317c8a561f124a343cc1a147f8630577e184b51", + "collateralIndex": 1, + "collateralAddress": "XmmRkHDjKQhYNT4Voq2bXBceVVrYuMhPg3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.209.20:9999", + "registeredHeight": 1560810, + "lastPaidHeight": 2126288, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1734945, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwZpdGexFM8VVJcE3avDkUHQv15TS1qmiF", + "votingAddress": "XwabTxPxTnUMcko8ZTX18gewFSYauqEdfd", + "payoutAddress": "XeA3vYAM3ySXXaBNQepBiTE6mdZd2XHurD", + "pubKeyOperator": "155659aa39843240bd160421fc49bed1fd4dca35c21036a8db44088060cd5665db8bcd6bcfb983424e75e5578abcecfb" + } + }, + { + "type": "Regular", + "proTxHash": "9968dd7f3db24f65d0cb56b8c78281ea6eadf68c077e21fedb61974c6f8b8f7b", + "collateralHash": "8205368c0ef8018b8fdedf6f28b2ee0b4d065cb01ad77067a9271556cfc07472", + "collateralIndex": 1, + "collateralAddress": "Xx4WGs9GyKe2M1Pen3bNPwSprB3N9dGrxB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.139:9999", + "registeredHeight": 1563437, + "lastPaidHeight": 2128195, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsJiK4nQAi6UE8YYD3xswFfMq2wG3hg1Yn", + "votingAddress": "Xcnq4ABcpBEgRYb5QVw25oWmdpLYLsEcJm", + "payoutAddress": "XcttHUDqKATLz498iFino1cDAVrsysrdG5", + "pubKeyOperator": "0e646209a68a0fcce7741f0030b290cd47559ec757820c1e82f6baa62e28408ce38aff3c34de5f85ef84837bb1f67ba4" + } + }, + { + "type": "Regular", + "proTxHash": "fcde28ec31d86b57bd536c0ee818c27bb016b11f9408595c760912084473f993", + "collateralHash": "f2126dea2820fc7cfdbc74a99f5b1aa29529e1c7f9c4b93a7f23dd87a74b896a", + "collateralIndex": 0, + "collateralAddress": "XqLJPL2yeN78PxApctuzM9vsorpjqnWwp8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.202.230.83:9999", + "registeredHeight": 1563583, + "lastPaidHeight": 2128448, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoeHPJLmUPwBdEQWrHfjzWCSZvRbCV4fLZ", + "votingAddress": "Xtsrbj7CVDYoFGYbxVFFnsoh1nhw1ECHGi", + "payoutAddress": "XncHpA7hP5BmQcgaMVdV4cPW1u2xLahEAB", + "pubKeyOperator": "0d6f95b3f2e522a21badac5569b62a09fbe860d302cd7389a35511c0211cdbdb0cb623c0dc40f8577fd172a62ec569ae" + } + }, + { + "type": "Regular", + "proTxHash": "94ec9cf9726317a29ee2e12bc84d8d374048083c9b5aec5e3636d9c7fd55a165", + "collateralHash": "6acc79e598d51e2deb5c7b86b816ff145c80af34bbf81ee1207a8731cee737e4", + "collateralIndex": 1, + "collateralAddress": "XoPvt4J6dGBuhezLa9JqQhr16Rr9TTd9Jw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.233:9999", + "registeredHeight": 1567884, + "lastPaidHeight": 2128103, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbK3UspSu5ZFyyMyqMQ93YZNdcGiBZpyxQ", + "votingAddress": "XeCsFi9EihRM8oggHafq9VMCu4FFhrNmdw", + "payoutAddress": "XoPvt4J6dGBuhezLa9JqQhr16Rr9TTd9Jw", + "pubKeyOperator": "105fa81b3df254a135b3d5a03476e5129cf5aa032e3a2aefda9920deed648a5ccd96999c270edabda333d5f4a98f0e29" + } + }, + { + "type": "Regular", + "proTxHash": "19109d253c15e6aac3da35d2a3523a03a3417892decf1091eab57ee7677b1636", + "collateralHash": "d8a377af0138d8cc816109d12f78873131a607cd45b351b4e94301d16cd9aa3a", + "collateralIndex": 0, + "collateralAddress": "XgmvvXvijnfjaiGNQmYxzzVfbtRFpKNtgs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.0.167:9999", + "registeredHeight": 1567998, + "lastPaidHeight": 2128244, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb43K43KrkVwDosvJEFTsHwg3g3cfEivJ1", + "votingAddress": "XrQeLvcF7x4xzDmYAsCovVazpNABV6a47S", + "payoutAddress": "XgmvvXvijnfjaiGNQmYxzzVfbtRFpKNtgs", + "pubKeyOperator": "81fc5bd96b82e81bbba5e4f4fb24450cb8a101271114294a817e35b38091095962a4527e2ae53a06587a4e1b6bdd9511" + } + }, + { + "type": "Regular", + "proTxHash": "637df4b65988e80364bd0f19d9186d0587069086ecdfae0735981c2ce8ec6360", + "collateralHash": "7eeca6292099bed23751deb03ff88032a511285e716d7e4e8708c92b3759d0cb", + "collateralIndex": 1, + "collateralAddress": "XoFVDz8xTPHyTDLd86saEhn3ziPLABFZ27", + "operatorReward": 5, + "state": { + "version": 1, + "service": "45.77.169.207:9999", + "registeredHeight": 1569506, + "lastPaidHeight": 2126215, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuyvYsHmj4VsDBdaRWohN519YWN6uXabWG", + "votingAddress": "XyTT8tj7a9Cn513nKS7YpsJXmPELRqe3Z3", + "payoutAddress": "Xn3q31Vfk1XCo8WUsRE5gUuKSDgzPAuZRK", + "pubKeyOperator": "170551fc9efdab34d3133855294d4cb0c0225cc128651e24697d2e149ec6f988c0bffa078209d8d9d2902aae3dc58037", + "operatorPayoutAddress": "XumqYJJKyRKYgow5g7uHJkFAqcxL9v5e3k" + } + }, + { + "type": "Regular", + "proTxHash": "d7fdb52d9df50d9401239fbdc1a2865d3a587f70791c5edbd9a025267c42dfe6", + "collateralHash": "389776d9021bd509ba1e783e35e7470e66e1249e99b3906201f555d41acf1baf", + "collateralIndex": 1, + "collateralAddress": "XqQtoA7ff3KMm2Yk2TF9CG49eEZHSA945L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.127.230.40:9999", + "registeredHeight": 1573819, + "lastPaidHeight": 2113041, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 1991132, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xw6CswEXn8baES5abL3PpB7D5kHJms4e8d", + "votingAddress": "XoATfJgQ86YWC3ShTqaSMNjRkPTqx4XS2u", + "payoutAddress": "XqQtoA7ff3KMm2Yk2TF9CG49eEZHSA945L", + "pubKeyOperator": "9958dc78de85c9d511fde3184cfa664623ef78c52367e29fb88ab40e83ee8dc843947ef51e1d0c32d1b4b2cebe4a74c3" + } + }, + { + "type": "Regular", + "proTxHash": "1de6e6e776cdbbd61b64bc73146fa78985b31bc253490390911624ca0365ccd7", + "collateralHash": "db6f2f2a443302ef8a3e9be7d3f6ace0952aa5f6b5008af07e4dc9eeedb286e2", + "collateralIndex": 1, + "collateralAddress": "Xs8AtmUeT5ZwcvRbLCpwGcyfe71Y6WvXo2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.9.237.33:9999", + "registeredHeight": 1576621, + "lastPaidHeight": 2127968, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvBgLraDWr9sJ1MqNTBRPmFNeCi2x5DTn8", + "votingAddress": "XtW9Yuy5h8pidvg4a1c4SBs7LAjAfLWgzv", + "payoutAddress": "Xs8AtmUeT5ZwcvRbLCpwGcyfe71Y6WvXo2", + "pubKeyOperator": "874a4030ed11f5b0e8da01c74828befef03fe961c7141e2de5ae1d76a7199571eefd7935201b17bed667a88b3e107da3" + } + }, + { + "type": "Regular", + "proTxHash": "7fecde2f19db241e15d862fb557004f687e1a91b54b369a0ddcf1d3efff5880e", + "collateralHash": "c69921cc360261aadcf2c307df14f7908fc5ce3bf18d5642a9693a33aefab735", + "collateralIndex": 0, + "collateralAddress": "XcCvMEsN5n48Smkj4HvYajNtDgMNGmfEwk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.236:9999", + "registeredHeight": 1577096, + "lastPaidHeight": 2128439, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcexTThgasZqPQXaiXDFqFTSitu6TzeAa3", + "votingAddress": "XfB8PEkW9jo15wCyGUqpNs2Tt9W9kzZR6a", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "0629e1d0da6f4763583b18a0c18ba75cad207b83df86e3cd3fc92ffb57ded80bb65967ff3ed686b19a1f4cee5cd170fb" + } + }, + { + "type": "Regular", + "proTxHash": "d48265eccb1c8f7b2dcbc203e9350f12cfd00e526541c5ec97d992d7987a8ec4", + "collateralHash": "ea548be4431d1719822892880500e9587da3c51f1c522d3aa5bfa31834f79f3b", + "collateralIndex": 1, + "collateralAddress": "XipvyGN4iR77mhUU7gDXCgfmNkg1zpdyAV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.96:9999", + "registeredHeight": 1578409, + "lastPaidHeight": 2126200, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgVgmohf7ksRJVF2C4ediKGXUHXG6UCs6E", + "votingAddress": "XsE2FgCutcz1oEFQgomEpXD3rkMzLuu2Zi", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "999d132539c6918859ad505969ee740a268ee42008bfeccc441c41f06f384880dbc0992739ea7cb71d56b233790aedd7" + } + }, + { + "type": "Regular", + "proTxHash": "7c36131c1d034cc1344481b1a8ee246040259b22ba73c1da759bfc63e3f065b3", + "collateralHash": "c8481c3c21cbff633374215e3a824eb091fc6fb6381a8da6b2e7517f0fd285fb", + "collateralIndex": 0, + "collateralAddress": "XpgR8JLiz3Hoh3BNhjScSBxzAKjgoAmcDw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.138.11.164:9999", + "registeredHeight": 1578625, + "lastPaidHeight": 2126286, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxXh2LTXZ6xmWrC9bU4RT1vAjSpSNddyZb", + "votingAddress": "Xpc5CNdKCkn66ydgi4Sc7zSRXXLjfXZPNX", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "8604ef894df6ab2663104682381f04212eba519872d098906e33b247d67ff2d5e4e029a3203a9980ee00d4fd8c21b296" + } + }, + { + "type": "Regular", + "proTxHash": "2846bca0f1b919cd984e74fbf2137a3e90351fa48ff96bf8e3659458567cd97c", + "collateralHash": "c0f567e1d1d4db841229cbedf581067c67e87a7de7849c971e251f2f2b9fefce", + "collateralIndex": 1, + "collateralAddress": "XiNzFSr23uCtEYZ6eAa4XkRMJJz64Nz1WD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.133:9999", + "registeredHeight": 1579288, + "lastPaidHeight": 2126731, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi97Cjbcuuxxqd4i2mx7eg9FbKgWpMkiKk", + "votingAddress": "Xnk6FVsYA6krcsvpUGuzdKMNWXTx6iSvk7", + "payoutAddress": "XpgMBq8ypbKSfWMugZPV3Gj8uWjyHjiDXE", + "pubKeyOperator": "0e6723c137cbe0de445df186ac3955adad08977f45a2f0a660d3a12226f7b5a43ae727607f1ac072d0c80a58ca6a39b7" + } + }, + { + "type": "Regular", + "proTxHash": "851871f2df90c6127535fda2ae07cdbac6ac8c632288a627fee28d5f4356c2ae", + "collateralHash": "2745390001427597bec49ddbc9237456d350b15daf3d5736936152fc9d6f5ce7", + "collateralIndex": 1, + "collateralAddress": "XdD8QhC6eTbenuabT67xPXuMzB1sgUHHHe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.2:9999", + "registeredHeight": 1580569, + "lastPaidHeight": 2127623, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx1YbUHJoFhoiWn2gLs2QZeyTRU7Y5fqGy", + "votingAddress": "XtYuWhc6ZPwYU4ZrMfCVck5Mxbvwm1V7QK", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "04a019f629360436dcdf88117b9d636b1494bc4b20e9aac77f6f62eb2f99c06bd18b713d23e005e405bbaff26bc34022" + } + }, + { + "type": "Regular", + "proTxHash": "c3ea85026d5b223de4bd74eb9ea1da81862d791d8d85af088b767cff6277ad3e", + "collateralHash": "d3a28884b2ebdedf56204fa45bb3a613196fd7cf71a7392d4b11d02d0b8153ed", + "collateralIndex": 0, + "collateralAddress": "Xif4ZNsaB3ogaqhxdm5WN7a4kBgYui8uNi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.13:9999", + "registeredHeight": 1582044, + "lastPaidHeight": 2128883, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjMKbLzoKKjaqATexWVcG8bQpUbvRyq72v", + "votingAddress": "Xsc7JTNwSbwcNW33D6bBq5H3igRpYkXRRR", + "payoutAddress": "Xdjs9UtZt8nCg9EZUYCT1K38SB6yoPdmnx", + "pubKeyOperator": "0a5769895f3e51b37567be9cf22f8ea076aa51a9eca878a385d3721ef72804b4472a5e9808f274bded67c4d5ddc6c8f1" + } + }, + { + "type": "Regular", + "proTxHash": "ee67bbcca623db6f3ecf4c2a8067fde7fc7e38b4380583aeef76ed90594ecbe8", + "collateralHash": "3ace59d0512d5393173fce59947f7faec6512a95a4775a6028c06a3b86dfb743", + "collateralIndex": 0, + "collateralAddress": "XghUuoqomMPnHHFb2tRAnHB7bPB8B2j6bo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.189.12:9999", + "registeredHeight": 1583338, + "lastPaidHeight": 2126503, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqQnvpxYg3v2x9M6JTvGskQ9X5sXqjD9uE", + "votingAddress": "XgrFjnX8LCF2guQTWVF1TM2vayejgft8LS", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "95325ca37c3faedbc11f2bfd772069e2a757f5e45dcd376a187cb461ce4609c5545253df78bf033c908c80f650594ea0" + } + }, + { + "type": "Regular", + "proTxHash": "a75c65443807b24a4bf2bead6deb42e32527b1593956847fdee18042ec4fa6ba", + "collateralHash": "a23737def734414b207686a38b3d2415985a3ec786294912cf7f7b611e3cf5f5", + "collateralIndex": 1, + "collateralAddress": "XnnV74pzaX8AbkHWYfwtbo9m29ZniRegtF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.226.149:9999", + "registeredHeight": 1585072, + "lastPaidHeight": 2127135, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1949956, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk1TaMvjC3FN41u5N7XQg5J4DAouJQjqts", + "votingAddress": "Xk1TaMvjC3FN41u5N7XQg5J4DAouJQjqts", + "payoutAddress": "XeQZmijVwfL52zJL5qxv8NHJ8UMLrJ5AFL", + "pubKeyOperator": "8aeea29ce50d5a5612ebb89bbe631387412cf8a4ea06a4d3583aed8893eb56f53f3939da688fb251733b8655df653b18" + } + }, + { + "type": "Regular", + "proTxHash": "a476da5c9ea334a6cbdc78d6c1e2e61a90cd94c55d3fb7d2b951d90fc416d1c6", + "collateralHash": "a34256a0f07521b9125365f603afdf1ce2c462abda8496cf184e456cca138e83", + "collateralIndex": 0, + "collateralAddress": "Xso1x1Yx73sFyXnuuDkYAi1kWoCvPcNQQ9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "77.232.129.13:9999", + "registeredHeight": 1585831, + "lastPaidHeight": 2127011, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2073650, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfVptrx7Gn3vpAZRHCYaiSURAZFZ42zTvP", + "votingAddress": "Xw3BSHbyN8hgF9jWAzPgotSCEnxotwzZGK", + "payoutAddress": "Xs3xVBLNUhfx3WM7wQibFqrRPivLwAyxfM", + "pubKeyOperator": "006c904a63593b64a548a67ddb6ca82a746e07319b135fedab88fcbf416ffc02fb84600513d76534d76bf5819ceb35e8" + } + }, + { + "type": "Regular", + "proTxHash": "82388b53ce47135eedfe2f89aac07fbd9fa0b1f50a19507b27ec8b56618aa26d", + "collateralHash": "9448015cbd36a10dfabef8e05457026f1b55632ad43b0b59043c58352e165cb7", + "collateralIndex": 1, + "collateralAddress": "XvR9npHdCkBpf1L3BpTDCYKHKd9ka38aoj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.191.13:9999", + "registeredHeight": 1586177, + "lastPaidHeight": 2128588, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007675, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqSPLQWLCUvvuPuMx3JQadzGpwxy3HpQbY", + "votingAddress": "XqSPLQWLCUvvuPuMx3JQadzGpwxy3HpQbY", + "payoutAddress": "XjLFbH5CxtgVnEuWFP5ei8H773mj8FSz33", + "pubKeyOperator": "9029f581eb30513f6df061b721a47f51976ff4f620294bf32f968aef2ac61af8c8cfda5d126db097e3a275cfda5e26be" + } + }, + { + "type": "Regular", + "proTxHash": "7ed3a05d17c50a8fef717c4fa21b3c4aa5b61b42d7ee9fce45363ffc4a007df8", + "collateralHash": "95c845c2d625d94a5f42a980715de9a1d63be2e7207bf47d0277741f6cccf593", + "collateralIndex": 1, + "collateralAddress": "XapCUPSPANgL5A27RoFxv6rNJuMo6ffpWu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.153.70.237:9999", + "registeredHeight": 1586357, + "lastPaidHeight": 2128869, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdPKL1sJwMNoRHcbqELkXRiXS9hxgQpxeh", + "votingAddress": "XfFYq4cFzPaGaSzgp6XBgnrx1b3U4b9VWh", + "payoutAddress": "Xik9nmQdEEaFpkqrCjFTEiXJ6kudgyG1eC", + "pubKeyOperator": "0274f1eba753b1c32773fc56e626658c3ad0565ab4a35ca667cb9a455b7d758225e21baac003fec28cf75ecb56738d60" + } + }, + { + "type": "Regular", + "proTxHash": "d78030040e0da53e6866eb004082570679917dcb2101f46053dcb8869f99d957", + "collateralHash": "dc3af9cdb204166272951947f9de5b11892987ac1529cc24693b5db2a5d5d8b2", + "collateralIndex": 1, + "collateralAddress": "XhyVwYLCrN8hRXLhGj7eikuKuDLkwqtoZb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.13.239:9999", + "registeredHeight": 1587396, + "lastPaidHeight": 2126290, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xho7caSzLF7JuZxbaQJCeS33HwXQrnidqb", + "votingAddress": "Xho7caSzLF7JuZxbaQJCeS33HwXQrnidqb", + "payoutAddress": "XxX1UxidopSUGd5M62KNNWTqG62pSnJLUL", + "pubKeyOperator": "098278320a3d3eaa665a35511e23138a03466a40e59108dea02b350cf84578582e04a278c7843f4fece154a9fe11c585" + } + }, + { + "type": "Regular", + "proTxHash": "242939f5b5efacd2396553e5ab0b834e519fefa3bb00286280bc99ad39e50ff6", + "collateralHash": "c642c8fe6e3482f25fa6fe9382d4c28dca472c3e617ee4e76521cd647f5ee7ec", + "collateralIndex": 1, + "collateralAddress": "XoKMo6ZPnE78P6c2Foi6MCZdwdMHQtYVBv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.80.33:9999", + "registeredHeight": 1589785, + "lastPaidHeight": 2127860, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2054102, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxs6whPKE8eiQYRv1YV7qqsum1jiNt4q35", + "votingAddress": "XihpSpvomekJNV7Ty5ZNuJUjLgSMwVs9zh", + "payoutAddress": "Xrrz8dfLZzRoQBcnQ3i1DRmHPYxrYmx7Zx", + "pubKeyOperator": "034c0aac6724aee5fc45b5d89c1f6e434814f78249374d7f71a7587ad952b830e9aa7f2fc4c26e7a8cf2bc2d06761ecc" + } + }, + { + "type": "Regular", + "proTxHash": "62e7eb2755e0ec6622cd32c231a0947434fa2e296c5424bc54ee4add00afded0", + "collateralHash": "37278a265fd0dd3de54605cd3c7e84c265775bf69c406245dffe4e778e6b47b7", + "collateralIndex": 1, + "collateralAddress": "XtQB6zKm77bCFJchk3DuT2DyWYDuUmhX2j", + "operatorReward": 0, + "state": { + "version": 1, + "service": "92.51.39.230:9999", + "registeredHeight": 1591218, + "lastPaidHeight": 2125883, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb6JWfF4p4PERVvFX7LArhgPveEreu3cVY", + "votingAddress": "XhRBAWEV6A7PnffKHGQjSzDWGyoRzgqRD1", + "payoutAddress": "XrxwWgHimBn51AUfPi8dPRSBhmjSzYeEMv", + "pubKeyOperator": "0b8e0f9fb4e37f04475f36fa62a3082ee5dd4e80c29d8a4ace110d44e43221fce353412210f58a91d3be8f2b9bbc72be" + } + }, + { + "type": "Regular", + "proTxHash": "ae6a8702632bb3c6a4f2c9ca89bd713bbb25babaaa1f8aaf808c02ea8006e3f8", + "collateralHash": "1e8d4e34e905e06f0c77061edb747d91676842d1e50af4668f1bed5929ca5606", + "collateralIndex": 1, + "collateralAddress": "XunfdZZi38t9TzGRjVy7Tu9WEkFZJCiW79", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.42.42:9999", + "registeredHeight": 1592477, + "lastPaidHeight": 2128696, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1718313, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbnZT3LZXZubBaou3ZJ7PKgi6XU7EKGLAJ", + "votingAddress": "Xudco5u7ucgtavFUaLfoAaxQRZdyCmTHRW", + "payoutAddress": "Xrws6tZ4yk4LDLoWAmu3Tz95aSAPbT2pLm", + "pubKeyOperator": "93d3ad755e1e56d8168f988ba61e2d034a8b746685a9286e1e2b6ccf5124c6c3812a98d06b49f1835f41a2a35018861f" + } + }, + { + "type": "Regular", + "proTxHash": "8bf38c234264d6e89a5f9121de2d765acf8075862ab42c2c0026f531242087c3", + "collateralHash": "fb3eb811c1aa140191ccbe5dfb7a559fd443c6f94575d0d40d3e6fb8818146a4", + "collateralIndex": 1, + "collateralAddress": "Xgje4u5zjHreV2ThdHr2qMUCM5J8uoDMFL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.195.230:9999", + "registeredHeight": 1592537, + "lastPaidHeight": 2126766, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoNTNjWEV9AwnvnbTUnTSyPuSuFEKhmZb1", + "votingAddress": "XhzRERqHq8nJ2MWC1UBknyEx5Ci9PvsKLQ", + "payoutAddress": "XtnPpKmCdg45onukSdLUL9FfMWgZ6FaboJ", + "pubKeyOperator": "0af741440fbb7382b47b31433be23a911b41afe40a1fb8c9ebe22c6946b370d351e5cfa1db891a8a9f749e675c56f61e" + } + }, + { + "type": "Regular", + "proTxHash": "ecfd7f8b774855f1604c9b946cee860cc40ae606adc27f7341a87bbf11f40e21", + "collateralHash": "bd0b6d88d6a746a1a5f3fc3e6d4c33bc6378a5724d39a8ac3b9915c3d45c99c8", + "collateralIndex": 1, + "collateralAddress": "Xh8d23oYkMqZQciqkEcFiTg8KuqVGw8MN8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.75.5:9999", + "registeredHeight": 1592641, + "lastPaidHeight": 2126821, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuyodNJfPo5KatiJfF7AA7AV8rcG48gFR1", + "votingAddress": "Xuo3Lxvwki9i1v9Pf2e82QotQP3rXkHyWq", + "payoutAddress": "XsWyGCbn9dogxWmoEjQycWHtrPDn6bUH9v", + "pubKeyOperator": "81bf34de9c88dadfbc1410c4186bc4ff82bc81989f4e0b974858ff047f9b026794bddd535c1b1ce87185ae67d2b9ff78" + } + }, + { + "type": "Regular", + "proTxHash": "ea7d7c591a65f2db220fca82ccda55b28cf17554aa298e7f2611d0684cb16c00", + "collateralHash": "d91c4ecb80a2c266a9c3a8bad2926c05c91c4d084e148d1a9d311e399a9c0d70", + "collateralIndex": 1, + "collateralAddress": "Xc2XeXMGY5shdAsuCp8PZNfPTksZbs1MR8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "77.232.129.99:9999", + "registeredHeight": 1592817, + "lastPaidHeight": 2128148, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1857944, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe1pphM4acfgaU4Tna4LTmRMNZ45KRsKxz", + "votingAddress": "XgRG8UfmMjqTBz3k9dkVNUomjxNkFUjpMo", + "payoutAddress": "XdL2PYvB43nVVbMQzNsZWxFYovpY3mGk7P", + "pubKeyOperator": "0812499df5a01647ab95b13d3495e3fa60125a68e435e7b3ef8c2edd11172d768bd331d4b64101dc9b37a03b30b73431" + } + }, + { + "type": "Regular", + "proTxHash": "78621c5604a57175796c322d58b3616f6412018964e56273ac05317bee6c4ff5", + "collateralHash": "580cebec439d48405f2fed18ba4d5f87b5009163013e8883fc98ae98aa587629", + "collateralIndex": 1, + "collateralAddress": "XrXLW6KHTbvMijsWJ3CTFWFFX5yWmFBbGZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "83.147.244.46:9999", + "registeredHeight": 1593507, + "lastPaidHeight": 2127463, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbrg7qyGTpuXN2vJsWAvYhwwkmanT69VK3", + "votingAddress": "Xd9LzKtR8qvHx9Ydsa8QyaQpbT8mgBwSYX", + "payoutAddress": "XjdLSr6CQST6YJfQkfKd6BoryWxUrn1Uoy", + "pubKeyOperator": "041e82a4c3541cde0a7ee58cc97f644e2f2806e6443b11b26ab9e5de35e2279e723fc8c4439a93a053cd49ecab43f4a9" + } + }, + { + "type": "Regular", + "proTxHash": "d50871f27e7110af34a20687e73a6dc44cec39734e908aeaf9a75cebe76fe2f9", + "collateralHash": "2b7e968a4a26a79ed2f42358d79026124574e9d42806d6e97bcb66811cdd50c1", + "collateralIndex": 1, + "collateralAddress": "XoWkC2igCCnGZmk1AoqvzZxzG5ywTJXqaW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.228.114.56:9999", + "registeredHeight": 1594079, + "lastPaidHeight": 2127940, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhjv26FRAAUozZ5DSJoDjTR76YgqiHNjTd", + "votingAddress": "XfR8DgWGjQxb1YzcGxMVdS4Rs5W1do8218", + "payoutAddress": "XofuxJ11tNxEjHran9UoUMTD2M5joU7CMS", + "pubKeyOperator": "846f6438be8b64563d8b87ce73497143c10b1c6e248296b408d2c54f1e1a9085ae7181b7f659e19498b96b15059b52d8" + } + }, + { + "type": "Regular", + "proTxHash": "797eca1df452270e9de965b010a1ac25c2421c46a0aea56fa55efb1e98668aca", + "collateralHash": "25897b8f1225c8b16d01c7fc8e29deca61e32fb65cfe712a99c00bc4a2a4890b", + "collateralIndex": 1, + "collateralAddress": "XuXeLZoKUJ8ZSu4ewk43fMESYfxUqbGjYH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.31:9999", + "registeredHeight": 1594090, + "lastPaidHeight": 2127955, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyzwGKo3aFY5qby1CPp6CR7aGHgjK94SRB", + "votingAddress": "XyqUUevPHUhRBH5ExT4x5STqjWSYBNbLsC", + "payoutAddress": "XpyUXEDs7ChdACp8YnaT4gABhMMM2acRzi", + "pubKeyOperator": "92058ad273ac46e18e4f43a20b5bcfbabdcded712d80387eeabaf190d4351f45749db9a9d1bf4e13e4ae946a03ed4015" + } + }, + { + "type": "Regular", + "proTxHash": "c63a1caa6e08b9658f960542f525d15fbab5304f11c96a501dd8c512926f5cd3", + "collateralHash": "a5c83cd7c707cdac9277f363c8e42c2a2007755504913be195d77d32648ff7f8", + "collateralIndex": 1, + "collateralAddress": "XbUGh89aHauobMfaSWt86kPgx8Tdqu69gg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.203:9999", + "registeredHeight": 1594440, + "lastPaidHeight": 2127224, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt2KJpzJUM93TzwRF45Ez6NTtgYknDhFfr", + "votingAddress": "XbaZMBjskQQNaMshExy3eaHnJJb3bk7S8v", + "payoutAddress": "XromNYK81cS4WZRME2tep7bqPotZgyi6zt", + "pubKeyOperator": "88b4342a1c9996f56589cf46fdb7372b37a0dcb56252acca3c56e17b87eb21d6d2bffb3a27fc641bc98f2574762f6bf4" + } + }, + { + "type": "Regular", + "proTxHash": "476fa7729c39bb2202e1eaa3df224502d3ceb17dfc2af1989c5621e1dbb3aa61", + "collateralHash": "e80a8ba15dfea05843ede209e588b412f69dfe650ddd717093f04a819931416a", + "collateralIndex": 1, + "collateralAddress": "Xux5hoDLT8JymoAhQeT5cz3c4X5ZYyTarC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.153.70.6:9999", + "registeredHeight": 1595156, + "lastPaidHeight": 2126074, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122924, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XidJz8phJHX7N3CbaSBEgTz3eEviKvpQ4U", + "votingAddress": "XygQEQF97zi55WEaV4DKbajjzZhKuweR3e", + "payoutAddress": "Xf9365gs5smhe7vu4kMZazFRZmCeK6ZBwe", + "pubKeyOperator": "13127d14f1d8416f3bbf8776d53f6f15a2e4a7a723c52ced623cd117b87f1038d4d11dd7fb887bd1ec85561aede3bce8" + } + }, + { + "type": "Regular", + "proTxHash": "821eb332f3d3f81fd9dbbadea70c081135cec9a57288163883edde8902cde837", + "collateralHash": "dcbd6d9aa761e844276b866c7f590f5e691af548811290ec08ee650ec0eaf211", + "collateralIndex": 0, + "collateralAddress": "XwhRpF17bcRGqvSFeZTd5Wt8KEfpXXKj8R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "103.160.95.219:9999", + "registeredHeight": 1595622, + "lastPaidHeight": 2126932, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120886, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvaNQjpQdmqcfNLQTRRpTjWTGCFnDGR3C7", + "votingAddress": "XoU6hjPQ38LzQ4tuBQ73DTfzvXVLqpCvv2", + "payoutAddress": "XcK1f6ahJuKmN6jpEF7QmzjRXq5cCpHbrs", + "pubKeyOperator": "9568d0e92c50e6071312d8b415fdb2d53113cf17820ccf91d7c6cb181061ba461ddac2af6ada58d7fa27454c90101879" + } + }, + { + "type": "Regular", + "proTxHash": "e842125cbcb76977fbeeac961ab8ed90e230e6cf5e144103d28f956370a01bb5", + "collateralHash": "a56375b5ceccfba2f398b958b6e324fdfb92cd6e95eed5b31c98dc6368705052", + "collateralIndex": 1, + "collateralAddress": "Xx11EsMAaeiWqwof5QccZe6WkrJyHiVppY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.212.198.217:9999", + "registeredHeight": 1596028, + "lastPaidHeight": 2126031, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2028737, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XamEV3eBBcUfhCWDqzaL3YPtMUemJ33W1v", + "votingAddress": "XamEV3eBBcUfhCWDqzaL3YPtMUemJ33W1v", + "payoutAddress": "XoLYi6RHPMBpFUFqjH95JAb73uzUCfnKbj", + "pubKeyOperator": "12ab20fdca6e15fe2141b81e5dc4c6d70195a8e69ba0ee72e13b9a0750457e2b920d8ec676f5f112bbf4e0c87b0abca8" + } + }, + { + "type": "Regular", + "proTxHash": "f1c86f973a31dd58069d83c9770829377f9794a6118b562b530a2882f8312227", + "collateralHash": "01d9d710f54778628d3c5dd559dbd3708cc9f794eb2ec522ee4ee668956aabbe", + "collateralIndex": 1, + "collateralAddress": "XcB9EP9ZBDg4dCFZEQMB9pq3s655i4neFx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.150.124:9999", + "registeredHeight": 1596246, + "lastPaidHeight": 2126350, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfogy4eYzvoZAJohgTE7usphKhB9jBPNZw", + "votingAddress": "Xi7Sswx8qusG63mfb2JtvvBgU6BgBYkt1v", + "payoutAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "pubKeyOperator": "85a14150f54d08bf8c1c6c6cc418f5b652351e50f2bb00af02dd7bb98043f81ce9e5abc38db952af25b6d656f5d4ff2f" + } + }, + { + "type": "Regular", + "proTxHash": "c94165785c79e736bd151f213306c662930007269268d183c9692e5a94a2b8b7", + "collateralHash": "f52d4a63282a2f6a349a231dbc4341c9eafeb626170f0713a21067ae890636ff", + "collateralIndex": 1, + "collateralAddress": "XsmwLURNcnfP3dN73dCDmbfah6AiPVXsNt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.219:9999", + "registeredHeight": 1597358, + "lastPaidHeight": 2127043, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq9BPAyPNaWPdWt3au3pEMc5CVEnfS4zzg", + "votingAddress": "Xf1kwpG3fvJGzQMek7ipMENbUBhJTxRJcd", + "payoutAddress": "XsmwLURNcnfP3dN73dCDmbfah6AiPVXsNt", + "pubKeyOperator": "06c91d5b8eab7539e726d6745ecfdf69b250d299173a6d3f946b1a145454946993e3f0a62767c914264a5265876242c1" + } + }, + { + "type": "Regular", + "proTxHash": "726317ab324617913198eb59f3661891dda5bfa8eb992e751d70a750437b7721", + "collateralHash": "8b2b54f08bd3668578d0524f87d03ecead31c10900b0f82e1aa17264b3445483", + "collateralIndex": 0, + "collateralAddress": "Xf8NqaACTrHFR2yvCwEjE8AaJPrXibYyxi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.63.58:9999", + "registeredHeight": 1597767, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4605, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1598315, + "revocationReason": 0, + "ownerAddress": "XjqT5AYcqPEYmPQcmeXJajmwgYswkAo6qt", + "votingAddress": "XcqXdS3RJ7ExzWU7mBRKDHZt7Eg5wq1TPU", + "payoutAddress": "Xf8NqaACTrHFR2yvCwEjE8AaJPrXibYyxi", + "pubKeyOperator": "194d16858f84ac09bfe6c66f37ca42d5ceaa25b24b9938cbbeafa96e5799336ccc5011f7a2279345e75a974a6b9e27a8" + } + }, + { + "type": "Regular", + "proTxHash": "d4e91062e17b12cd111e61b6368f1b09db3d0292d3c51696eaf05c945985e607", + "collateralHash": "59509f487e490516855314a6867448d096ff0878df0a9f9e75eadb2545051b4d", + "collateralIndex": 1, + "collateralAddress": "XphGLYS7F65UzHzhGp9j2ePooopsWK1rmb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "81.200.144.67:9999", + "registeredHeight": 1599353, + "lastPaidHeight": 2128678, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn1VhPz4TjMQ4igQPzr7aAa3dveHVkf3bL", + "votingAddress": "XgQDsdjQQo6bR5gWitM1QFQMfNT56HfNwy", + "payoutAddress": "XwCdhUi4RQ7eodCMMq7NE14vUzadmrQwQ8", + "pubKeyOperator": "18d3c143ff890572b1daf50d57a1fb763255a5fec0e8b654897a474c7028a0508744b2eb3fd885d79d9445eb8711a1fb" + } + }, + { + "type": "Regular", + "proTxHash": "92c9037270fc16e54f62e5502f72c6f429e0f2249dbb16a85c727e01b185002c", + "collateralHash": "0980256fd94ca4c88febdae6cb279eb2ed73460331a1851b09be8e94a1703e45", + "collateralIndex": 1, + "collateralAddress": "XgZWBnyys6K8isedfqkcT3CbMDzxmQZ1eL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.234.143:9999", + "registeredHeight": 1602459, + "lastPaidHeight": 2126591, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2079929, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm3VL9vWS2kTZpn6QTiJLWDAyWE8VY3JjM", + "votingAddress": "XeAPNo26nV5yFV23UBgCkNRsXvJbxThzh7", + "payoutAddress": "XxZVpsz9iAUMTU3uRpHYpFufyi3WFKLRU5", + "pubKeyOperator": "098b2c2f1ad59ed60b2c25e648fc4e50898143cbb1afe80f140f21d69a5739e41c3356d47bf9c9da89c3c434133e6d78" + } + }, + { + "type": "Regular", + "proTxHash": "58a2806455c5c1a2114d49c601f89fbf89dc6ddf17c10f8c45775f9bd1ca18f4", + "collateralHash": "ce730a7f94d598d73a052ae62a701747dbbd1e70b8262f852fd6eaf1db9d0c11", + "collateralIndex": 0, + "collateralAddress": "XvrTwVVdYqP6C7ckPZfJxEKVXsPACgK7xS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "106.52.121.218:9999", + "registeredHeight": 1602587, + "lastPaidHeight": 1732211, + "consecutivePayments": 0, + "PoSePenalty": 4464, + "PoSeRevivedHeight": 1666424, + "PoSeBanHeight": 1733004, + "revocationReason": 0, + "ownerAddress": "XtXEP7cgfC3NF7SugrraVUnMuhRTcSPxGA", + "votingAddress": "Xn4eyfProy3V8TQHHUduZSjyosXqXscthQ", + "payoutAddress": "XvrTwVVdYqP6C7ckPZfJxEKVXsPACgK7xS", + "pubKeyOperator": "035e208fa98d424dfd8f86b5151a74c57981478341f7e66b69b21416f09e010d3448aecd4a51a2a055cd978383b4e098" + } + }, + { + "type": "Regular", + "proTxHash": "2b6aaddc8b3c59ed813bdec5943130957399df163eb4b4aa685e05b3a08b3cac", + "collateralHash": "146d993bbf2f5b3cfb97fecd261c56f18d73e4a280a7fc0c3fbcd6d2597d51d4", + "collateralIndex": 1, + "collateralAddress": "Xy31q3YKhAryad1TmfZWgwHWvkQRSvtMPQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.2:9999", + "registeredHeight": 1610068, + "lastPaidHeight": 2126755, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmzxkQ8hcN1Mqt4TKX4Cb4YZnYN7UVM3Un", + "votingAddress": "XdEx9PwVKicJivVR9QJWM3rQZUWyaj55Ad", + "payoutAddress": "XqR8BV2DwUK7CrTDUbcTHg3W6TUH5yQna1", + "pubKeyOperator": "14cccc0d63a1cb8b5e434442cd1983d8a19d31ca5bb0e32d1401e4fab9b6919363dc7674faf5a854b92a60c1a615471a" + } + }, + { + "type": "Regular", + "proTxHash": "eae5b1c863af17227ee1673d483963d42b2b8e4f6d600223f19ce75fbf95f823", + "collateralHash": "22c9d8df7300bc5b9c42adf12061e8d77889a1632a841ab24da5783546a41bb6", + "collateralIndex": 1, + "collateralAddress": "XvbDVqfLsn4A41FWWoCqRvBupscQhwooev", + "operatorReward": 0, + "state": { + "version": 1, + "service": "38.99.82.21:9999", + "registeredHeight": 1611022, + "lastPaidHeight": 2128660, + "consecutivePayments": 0, + "PoSePenalty": 2192, + "PoSeRevivedHeight": 2125489, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmnNaNyagdMBsXRm8xBMRZMbuo9354tTB2", + "votingAddress": "XmnNaNyagdMBsXRm8xBMRZMbuo9354tTB2", + "payoutAddress": "XvbDVqfLsn4A41FWWoCqRvBupscQhwooev", + "pubKeyOperator": "901e88ee4dae968aae87fa1fb6155eab7c579ee044aac262932bbda42359ae40ec6b521f07b5d0ca728e89bd1198178c" + } + }, + { + "type": "Regular", + "proTxHash": "51786cccad68c8a330960e133dee17b79b8de9856444b6cd1248d285251282e9", + "collateralHash": "4907bf810fe8a97287db61760e6e4ecbadb76942d130f0bda1c6e6e320f58451", + "collateralIndex": 1, + "collateralAddress": "XyzEnrAawE7wFYYVhcwauvZS9U5T54juoA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.195:9999", + "registeredHeight": 1611722, + "lastPaidHeight": 2127976, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwwHgiuEqmaEw5Lgrhb9Xs2fFbuvkBxWVa", + "votingAddress": "XwwHgiuEqmaEw5Lgrhb9Xs2fFbuvkBxWVa", + "payoutAddress": "XkBShWazeh1tFiqiCoMjpyJ73pJt44DqMK", + "pubKeyOperator": "97172eb4f02800554682ef87d7d02cf882c37e6a7630b1ff03f5ff7cc38d9296f4bc74a5f5743275653c0335ea17103c" + } + }, + { + "type": "Regular", + "proTxHash": "b7abbc1aa1eab53ac35a7cfeffc67c10df4a7374e02c4c20662c0e88b31ae717", + "collateralHash": "e2421b5e4308c261d750a60ca5f8c90a5b6710765e0d001fe7c3c5cfc3136d8a", + "collateralIndex": 1, + "collateralAddress": "XmqpweWDrkPx5Ri93SYvykkU48tCuoX1sC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.194:9999", + "registeredHeight": 1611725, + "lastPaidHeight": 2127282, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986419, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmWHL2mk9phVwiSeGE3LK3LaPhDVf345PC", + "votingAddress": "XmWHL2mk9phVwiSeGE3LK3LaPhDVf345PC", + "payoutAddress": "XjQGUeNqSxiExeT7SyaapEuCj5XaYzQJae", + "pubKeyOperator": "118b2bf21cffff4781a54b5e9f3661d47a87927618de7444fefc9ad9890e28f48ce3e428e7ef06895aa7eef63ce657d3" + } + }, + { + "type": "Regular", + "proTxHash": "9940e671555c9c98e5785bcf602a70c9d7b2dd4c5431e02d42a82d0ead8c7060", + "collateralHash": "af0de332f513802029cc82a97f3dc311e4962f626ddbd88f8345d6fc427d05c8", + "collateralIndex": 1, + "collateralAddress": "Xc1bXkAwXG72TdKZNkgtnNP4xDnrprjHKJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.193:9999", + "registeredHeight": 1611725, + "lastPaidHeight": 2127977, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbEshZUVHH9YRZsNNQPA2vy1Exe5tRhbyh", + "votingAddress": "XbEshZUVHH9YRZsNNQPA2vy1Exe5tRhbyh", + "payoutAddress": "XdRWPGy7MGSgtNtp9ttPT1r1eyZoZhCkMe", + "pubKeyOperator": "8e7b5534ce6613403233070c0fcbd57143dfaf3c24df08306c02356bc227072208a58309e68b520321953540e89dab10" + } + }, + { + "type": "Regular", + "proTxHash": "04a63ccb2112395a9974e39577f6c5125b519be96f15d16779d10359775e6db5", + "collateralHash": "0ff57bde8a5129be46b025e7ff1d9622723ed05adaea4bb1a83bb3b8d2d83fe2", + "collateralIndex": 1, + "collateralAddress": "XoJuEJRjEuxv97iT825TtDBqpmPiuAnCsm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.196:9999", + "registeredHeight": 1611725, + "lastPaidHeight": 2127978, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeF4FHhrvX3B3MwjbsioyewE8XiNmA54aq", + "votingAddress": "XeF4FHhrvX3B3MwjbsioyewE8XiNmA54aq", + "payoutAddress": "Xc4XTrDu6gtXkasATeAHx58Q8Eydc3tsKu", + "pubKeyOperator": "945f6ded4626c20a8afd236ee0f205c3b88f4547f10579b13e22bbf691871327807a1871e450e5188672b98d4f06b24f" + } + }, + { + "type": "Regular", + "proTxHash": "12a4774757e6fea44d937f5e4daabaa34cf47aeab62ae6056387447db678bdc6", + "collateralHash": "3fa8931c96c5fb7993b389982e6157a1541cffe3182c9631a2b1bff1af3992ff", + "collateralIndex": 1, + "collateralAddress": "Xp6XmRdVnPmPfA6og7V1dzKek7hCLG1KQ5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.206:9999", + "registeredHeight": 1611726, + "lastPaidHeight": 2127979, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjnQbHR7yogo1BX9UxfHDPb4D74ezg15Vz", + "votingAddress": "XjnQbHR7yogo1BX9UxfHDPb4D74ezg15Vz", + "payoutAddress": "XxPUS2D7Dp3nvD9suHpAW3dCMmk7jR73K2", + "pubKeyOperator": "824f2cd76c3bcde385910d875f2965ddbe6f9f2271771d61ab2a51001d82da7835d4e5dce177ed24257789c08e91640c" + } + }, + { + "type": "Regular", + "proTxHash": "88011a1d0f18baa81f10c80b679886386c0219fee6dd2749c8f591d69e9be1e2", + "collateralHash": "1633efd3b8d484d1b82e78d2d62a2709d5d7b51ae04e5c1bd4be4549011622e5", + "collateralIndex": 0, + "collateralAddress": "XgFTnWhQvmytsjdeGh7bvQnQrmYajqaUxg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.205:9999", + "registeredHeight": 1611726, + "lastPaidHeight": 2127309, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761534, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtRfFFrhDRDo2Yh2XMbEga8qzRr56Bbbnh", + "votingAddress": "XtRfFFrhDRDo2Yh2XMbEga8qzRr56Bbbnh", + "payoutAddress": "XpFqTNbBTWbUfVtkk7CDgZodg7tq3MYi81", + "pubKeyOperator": "0d073450ae604f003f17e182d7653bf90da453744839bb123990f1abfeaa07b021438d460e8eaac144fe98994b7af432" + } + }, + { + "type": "Regular", + "proTxHash": "209ab67cfd5f757e47cc26034d0bb2e46884636f853b35a7ee92c776c1237684", + "collateralHash": "80471125c4b6a8d12199a03aa1fdfa9594f16d351f7bb965c2a1082e450cee7e", + "collateralIndex": 1, + "collateralAddress": "XuWnD18fKMnozJ9Zi8nFaBtQQXBnXHats5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.204:9999", + "registeredHeight": 1611726, + "lastPaidHeight": 2127218, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw3EEU4ESna3bd9CokLvu42MtwzZR6M88X", + "votingAddress": "XxejaoxfKR7ZpVFTbVxM3LWKf16v1Uwke7", + "payoutAddress": "XsBn8BjYC8CXtyQsw5JtBjYY4HbqtaWCjm", + "pubKeyOperator": "80f1158da31f8c805f6249486d0dc1b57b1bac6e1d9f9f0faba6c2cedd974e20d4c5335bd991d0fb9c7df862d1edbc01" + } + }, + { + "type": "Regular", + "proTxHash": "80b4892bf01e19ef12a11e87b1b595e3003d13f2a30dd4a9e4ee14525acee24e", + "collateralHash": "1c9d225ff34c81ca5d0519371aab357292a1a30a8d5d4cdc6c6ebb224864cb72", + "collateralIndex": 1, + "collateralAddress": "XvBCUVFFhZCmhTRboixfT6WcYWLn3vaL98", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.227.165.75:9999", + "registeredHeight": 1614612, + "lastPaidHeight": 2126901, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqJdwwXVhqKaA8dfPw8KRRqdrBezjAjrrb", + "votingAddress": "XbS5qku53g76AE6sj98dCXvHgaYboEQoN4", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "14a25d333ceca6a28752e60ee2e862c7b4fed111074d1c73ccdfe7dc22f999536c6f8b59080dd1c1d397fbd5aa200954" + } + }, + { + "type": "Regular", + "proTxHash": "83680aaafe08e21cb545f658b7f4d81414e3a3e710e36baa49ed325a37b1880e", + "collateralHash": "ee701f6763078b0cbf28e310f207452d6acde698f3532a3fb00236343827ebab", + "collateralIndex": 1, + "collateralAddress": "Xod14Ltur7aKrLtovxTVjvoSgcn4Z63ZkE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.203.47.250:9999", + "registeredHeight": 1614618, + "lastPaidHeight": 2126906, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxH9HkyCbQ5w6zkzy4gXkB4XeiWWL7kQCK", + "votingAddress": "Xg6mThgRpw7RHihRsBKtobi9sDk76grAqp", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "95467379b1e5474254884d990765dce13f7d9cbc9d439fbff77db113542bc4cfdaf3142e364f394ed05a1c46d2e04ddd" + } + }, + { + "type": "Regular", + "proTxHash": "8dd17b0ad8de171518bcec04461809d3c6404a9173b46aa3ea92d4e75c750f43", + "collateralHash": "78aa59c2bcf2d73f44b74aae9ede7e6a860ce3aa365c0409516e9cdb3c61dccd", + "collateralIndex": 1, + "collateralAddress": "XeFnws8kRveRxzthuZGxKgbS8prJyAQ6Ce", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.160.163:9999", + "registeredHeight": 1614621, + "lastPaidHeight": 2126908, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeVqt8x9r9nawNvmBZWFVvNaPjMpnwuUb3", + "votingAddress": "XqwbBbAi7DRgbsqeRhAYWHMsvqCdBc6MZb", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "08e8249d271621ebf0b38c83285e519bd73e417f61f4e059eecd6410d1f001ed07862749f6c7fe2d91afe2c94cc024f9" + } + }, + { + "type": "Regular", + "proTxHash": "7a169a665418adce927a071c0fa21050abadfde068a2d053f06f0da723ea1d48", + "collateralHash": "b4719e9cde486eecb6f0acb2e446f2ae140557fa474919097569886ebfe90acf", + "collateralIndex": 1, + "collateralAddress": "Xdw6tVaVfuyAnX6RxKmKdCmAzjDSWV8ppn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.223.60.202:9999", + "registeredHeight": 1614651, + "lastPaidHeight": 2126927, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpdWpJ4E6STQ4jxZwap5AJd8fdJKLumLf9", + "votingAddress": "XxyazGEHKrNUsLMP9HBG21ceESV2KpSTzf", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "027207eef74d579a943a5c606c445d1616e80a46b3d0cdbe73142b4aa60c878ec8c9a940cec3fca6118a35503c3b3164" + } + }, + { + "type": "Regular", + "proTxHash": "8791812c27fd9e3fe3fe5ba400c9d709ee09b2c3399a53d32d55e0ef70182c51", + "collateralHash": "0088320a45337f55477ff30863063b452473c4a8ef98efbca04eac509f677e42", + "collateralIndex": 1, + "collateralAddress": "XsGqxobngqu8PUjkdazJaFe8PRAtLd9DXA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.231.57:9999", + "registeredHeight": 1615160, + "lastPaidHeight": 2127332, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuiMt81AyinNcPMBpn4Mn4eTabWhP1Q3Jw", + "votingAddress": "Xbtn2EC5P7ifZWuEHbX6goahobc62eQP6H", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "14ef57b0e1c761b0fe0add1d6b761d0775d979b9f5c84faa95f82cd7d169f2d9130995df5135275706a81426819cc849" + } + }, + { + "type": "Regular", + "proTxHash": "633047eea0093b67ac89302434e1d6531da35dc2714fe9f5cf5e32a90289ec95", + "collateralHash": "31b46ff7ca55a3aaf14c1c5baaee1f3e39916ab35248274b7e676dc2a06b5c6e", + "collateralIndex": 1, + "collateralAddress": "XfM2Lc9gZ8eZkrDXVaVFFhMQDW8ERmrpAX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.194.72:9999", + "registeredHeight": 1615615, + "lastPaidHeight": 2128128, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876599, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhLUJXg8qrVeHiafFoRJCTHQ8gDPAum5fF", + "votingAddress": "XavV4xfonRqK35jPfivTn5fhrFFXnQhP1Z", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "11e57eaab33b0fc9c10ecc23159274b26f4610dfaf30ad7a1ffb23e664eadad377151a82d5ad3a493c5031c36f8ae830" + } + }, + { + "type": "Regular", + "proTxHash": "f46ee77c0098acfc0b2734936cdf2ce036aa52a0edebd9770a6f157c09d80c6a", + "collateralHash": "194ae4acc8de3eb8265a339f66abd8587fc24ee4baa5aa8280cb4428e25772d3", + "collateralIndex": 1, + "collateralAddress": "XkVqQxypLAiB6qi3YM1uq5LaZa9QVof9uB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.206.41:9999", + "registeredHeight": 1616288, + "lastPaidHeight": 2128589, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007678, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq4swHbfUZo6X8VdAUdZS1ti317iBjjLiG", + "votingAddress": "Xq4swHbfUZo6X8VdAUdZS1ti317iBjjLiG", + "payoutAddress": "XjLFbH5CxtgVnEuWFP5ei8H773mj8FSz33", + "pubKeyOperator": "986dd89ef653717cac967efd74380fc593f6d6f28cf4386a778e5e0991a398a2e2fe15fde624fce157c551f400402b70" + } + }, + { + "type": "Regular", + "proTxHash": "67d73dd3a9462d426b8dc9d8e792a5227d6702ce76b101540312ecbc63e03d2c", + "collateralHash": "10f335c75981551d171e05d6dee5ae5dabd4649e95b84eeace2c0522a6428b92", + "collateralIndex": 1, + "collateralAddress": "XqS3G8qjJwsntySTxp5tK5v4Sq9ur87jhz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.184.233:9999", + "registeredHeight": 1616359, + "lastPaidHeight": 2127946, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876406, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiVejdLUhkJ8BBVam4Udqam226yS3dsSXz", + "votingAddress": "XhRfduTVzk3W7QsYrqh7T3EiAPq5dNVPgb", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8360606734511b836679cb34f6f166c707db3c76e88968edc7d95e66ec233560d6fe916a49764ec56965618f6b19cef9" + } + }, + { + "type": "Regular", + "proTxHash": "c2a1621c37eefebf77cbddb4d6bb0eaf03d4037a3936aea7291859648996a4a1", + "collateralHash": "c4d03b4882ae47aaaf6d70b9194ba5ff146fe772590f3bfd8a1a82b2b86565e8", + "collateralIndex": 1, + "collateralAddress": "Xpzq9E2bbUjETQxB7dAt9YMTFtSTMUftAC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.242.218:9999", + "registeredHeight": 1616726, + "lastPaidHeight": 2128570, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbdLq8tb5BRo7f9gksVbPjd2yMRGXtjpNo", + "votingAddress": "XciYf9QwvfKGQnBACh5eHvq5b4pgKY479k", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "912498832a2fa34467b226770de76509bef6737ac3a0b13e77e03848bb4f7c8918c7683f5eaaa62369b88c1f5ab17e64" + } + }, + { + "type": "Regular", + "proTxHash": "d0066cab07fe8de2d0af2389f2c37aa6332951bb8e253e544c32fcfb94429e91", + "collateralHash": "b901284d9b5a3d4f1befa7de1cd30878c8b660fbf3bba8c2c1b1aca24d2d2c4c", + "collateralIndex": 1, + "collateralAddress": "Xb1pYQ5pFyg44qKFXfyimfmBCL4wgu7TSA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.131.18:9999", + "registeredHeight": 1617056, + "lastPaidHeight": 2128879, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiVNojUczeU65RPdqN1qWptonVcZFXqwJR", + "votingAddress": "XwE9bdxQ1rXu9igJQm9vJc5Pqo4NpVGoeE", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8856299908dd3c820fb18a051e32f1a6f3bcab996413b6d91c9078ec12b79979539007433d5119bfe9074dc14718ee53" + } + }, + { + "type": "Regular", + "proTxHash": "360186441914d7aee8d160fd5f1538e6a81c738d34439e4b92218189f4db05a0", + "collateralHash": "4c6c0b4a5a8df162eca5d5c7f98bde4d1fc823bb15ae2b970794e1816f2971eb", + "collateralIndex": 1, + "collateralAddress": "Xqo59DNZ8ZLWqvka4X8nBgbuhoy6JbhWYg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.110.128:9999", + "registeredHeight": 1617173, + "lastPaidHeight": 2125739, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuXpBwauDqscgxmB465jaqyeobnRxgPJeP", + "votingAddress": "Xk7c4qDNj4VnGU5byDkZ6rGadzVutVEa8B", + "payoutAddress": "XjStpG37QsMCU2nw9d2RXBwzAuaR5pi4L9", + "pubKeyOperator": "138e5f79e82fdebbb194bf87a43093330f628beb4211d35d217e2f745df3c33b9684bca2374b8a16b7cb963827841fbb" + } + }, + { + "type": "Regular", + "proTxHash": "793d8e852b1731563911bd6cd665332303f2759d74ae4d41648cd6c3bc34b1f6", + "collateralHash": "39252fb1aaa6516e3525fc0f1500402ef8098a0cf505107ec1b472c02f04dd0c", + "collateralIndex": 1, + "collateralAddress": "XcW7B1btmZZgWt2RVPLpi9Bz27K9oab7LW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.198.43.168:9999", + "registeredHeight": 1617254, + "lastPaidHeight": 2125763, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtK8GrxDZQPzSToTU9NJDQbtzRqQFa54zW", + "votingAddress": "XfVrpNcQvNqyQJWJSjBVZRo1G8aJPKB5Lm", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8474139725c4627f2f0c47e20af6d8926216a21da0d4d9c7e898665d5e378e86b215284de9c9d25d98845131668c810a" + } + }, + { + "type": "Regular", + "proTxHash": "b385ad38ac251a732e38e066f49b9c442f625cef784fec86673de7d53c0fa4a0", + "collateralHash": "0ec26164559086ac324505e2b25d99504246f8d81097bef3456a53af4f1d64dc", + "collateralIndex": 1, + "collateralAddress": "XnABk8wHbcHtvp5jnQZMpCocA3VkbQzb92", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.182.47:9999", + "registeredHeight": 1617269, + "lastPaidHeight": 2125788, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XijQDtHJdSf7haSWV8ELtZGNfCXXQGzBBA", + "votingAddress": "XjJCvm8Pjf6YE8YVhF8Ma3hpbP5iyCxG25", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "1608402a6abb96704f6dbe808448e9d89ece60c8dd6794bd790840f119e6b15bce54f6c4a75f5c7aaada35ce53778897" + } + }, + { + "type": "Regular", + "proTxHash": "b4073b8eb46369de8361e50ae829c24f7aae5b4c6d9a60853a022a7698acb88b", + "collateralHash": "95d5fc49fb425b3c58581fba9d09c4dbcdd5d43dcb76ca9c260b17311cc8e97e", + "collateralIndex": 1, + "collateralAddress": "XpJjpjVoANGBmdAWQaiSRVvosqnSVvFbQH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.139.23:9999", + "registeredHeight": 1617366, + "lastPaidHeight": 2125836, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwgM4rC8QRosN4KYv39W3tV85x1k2c2etD", + "votingAddress": "XqJx5XtVwZJMEfg4tfTizDhpMujU7uB2iu", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8b7bbdf6e8b375d798e14cfc1f72fe5064bf8f618fb4163fc71f30dfee2d7c9e27275aa416141468ef412c567c41cd1d" + } + }, + { + "type": "Regular", + "proTxHash": "12dd85ca6a817a8929979c5586f61654c9ade206c1efdae7f863f157ebe422be", + "collateralHash": "8ceb1bdbfab5bf82f5171f62698c049ca18317b3ef894a563edd85d790c91a94", + "collateralIndex": 1, + "collateralAddress": "XhxuCv992UP7PRapSZDULZw1Z7YSq4aLKC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.134.57:9999", + "registeredHeight": 1617551, + "lastPaidHeight": 2125959, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XniY4qyAynm2UykGzZXUu9tg5LcuFjGJJh", + "votingAddress": "XyPJDGRaMQny29aN9WKFUkiWZApysfoMtX", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "84a526b91dcdbfbdc5ec380a6cbf16ada7dae75c4719f492cfed0706d2be53aa7a5261feb87376d752ad48551fc80006" + } + }, + { + "type": "Regular", + "proTxHash": "3d20bb558e424c6352e4678b0c55759bed15adf5e1f7c5fd6bf88ac0e7fb7cd3", + "collateralHash": "a02fffeb2c6a27feb07e7d58e749e9b7903221db7703c1a86927c1c06832f7a7", + "collateralIndex": 1, + "collateralAddress": "Xo7JtP2By5p3w6455Jri4UhYYJQWCWq3UP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.158.232:9999", + "registeredHeight": 1617563, + "lastPaidHeight": 2127859, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1696454, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xz1ao8gMrUxDAegfBbAipsYwByGFXZPYUs", + "votingAddress": "XfKrEKFHf34d6xJvjrxEsKtqDqk6oMDX7o", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "953ecd21728bc274870260f4276bbbe4ed0ff3cd3f7708ea9560680bd618f9bb14b2482f77170fb634bd64dd997cf2bf" + } + }, + { + "type": "Regular", + "proTxHash": "b76603556d6872b9cb85b56dcffaa75e202dcc969509a5bdfb6dc07eb9e1112b", + "collateralHash": "40cd50054c6c931c0e414e676963f50bc5c9ff55f3662e96c374fb98f1b52fe4", + "collateralIndex": 1, + "collateralAddress": "Xz1QHYW9dmmkPrreC2vFk9uDc5qc6AEYst", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.69.249:9999", + "registeredHeight": 1617579, + "lastPaidHeight": 2125972, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnxczyip67YYoeSKiNnPoAKseqPvioXUp9", + "votingAddress": "XwemxqDWHBmZpc973GiAW1Pgz9ppXX3kbG", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8285cdc93e77a1267f24839dd08e177860268583167290bf60fcb3b92913fc1d37bdeafe42cace0a0c754fe5d4fa6370" + } + }, + { + "type": "Regular", + "proTxHash": "0f338ef2f198a3f2166a7c6a537e7f31bb9e2a5588d719ba81781d3e02d270ba", + "collateralHash": "9043446cd66c70fa7bfe2d65e299c74907f3fa3d73521c2502ef75a2beb53f1c", + "collateralIndex": 1, + "collateralAddress": "Xh7suujtCML1AjXofU671i9kuA71CcQEkN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.161.208:9999", + "registeredHeight": 1617580, + "lastPaidHeight": 2128048, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1850155, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfLS4JBuWaS7rKu6VJTvh5mWd9wRxfzygu", + "votingAddress": "XyKtZ3fayNPbbxBhj24d65rk5rRisUiNjY", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "0bd3a0ddf2d6ac04ba5ad0a39cd857d322400d7d3a5661bace08bd41afb14c256d18c6f6643d22a46eab81903d601f8e" + } + }, + { + "type": "Regular", + "proTxHash": "9db07647ecebfd67b71a6d015ef373353641ed189b1157420ed9a4f1559b7c7a", + "collateralHash": "d3ee99a1b2298ca3da4d0289ee4de459ef1b6b17e46a30b96c9c32378270f7ed", + "collateralIndex": 1, + "collateralAddress": "Xfw65pEhzW3YcsTXRdjq3imw2emJxisqHe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.222.239.115:9999", + "registeredHeight": 1617597, + "lastPaidHeight": 2125983, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuC2Mpt5XqVBBy4KYsmCu1GCqAYyB9T4ZH", + "votingAddress": "XnzuoCyA9KibnkNR2Fbno8MkVrx5ZBTPxx", + "payoutAddress": "XkA3HayJ9wk9Wg6i9eRmSBQP28g6eFsStY", + "pubKeyOperator": "90b0d61808377eac02d62986d8a384729d23ea23afb9b241875bc7aaa7119668d459c559726b902f057dd65ba685c42d" + } + }, + { + "type": "Regular", + "proTxHash": "de67171e5d781f5018267f196bd62e4efc36f6d7d9356e3732322194555be799", + "collateralHash": "0d55747bad107c59fc636ff8449c95d33479e1945494a834a8873bf9559f50fa", + "collateralIndex": 1, + "collateralAddress": "XsqCvfiKhXYjrhd7ug4V6hRvmJQc88zenL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.254.215:9999", + "registeredHeight": 1617597, + "lastPaidHeight": 2125984, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbzdfzFALQydbbXhTWEqSBRY7zAxgb8M4H", + "votingAddress": "Xia2ZwaPrLe2gikG8dnwpJi68q88EUgB75", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "0c00e62866ee89a0484b5cb405c94396e564abd1d17658418251e765dad9a6771e882cbcdfd80d1a10f1085ef11a9c24" + } + }, + { + "type": "Regular", + "proTxHash": "1736153caee0ea7c2d0fabdf073df839f3f43a33cc1849b838239f819c06854e", + "collateralHash": "405203a947625df68e1e03de7bd65664984e5abc2f5e7f0c734d4c3d1796e359", + "collateralIndex": 1, + "collateralAddress": "Xs4PK8hD1GwkM9dQLwwvJo93ZgjevEipm5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.38.4:9999", + "registeredHeight": 1617598, + "lastPaidHeight": 2127854, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1857491, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvEWiqQEqRPhmRH1urRHUZP7nc5hRSQWDs", + "votingAddress": "XjjZWr53mRDqU4znmuU9wh8X39FmaGkqeU", + "payoutAddress": "Xpj3bBKTKDK2FXwhBQXBreqDBKkbk7kvYc", + "pubKeyOperator": "88784ac62ed07a457d0cc4ebc7359365442321e5fad0d124cfff4539a13f6f3d571fd57345202714b968dfb00ce3a8cb" + } + }, + { + "type": "Regular", + "proTxHash": "c577a10dbb543660001fed181e79d52e6c6fe9af18bf51d54fa0228cf711bd87", + "collateralHash": "a9ff19029d83a946ae10f801fd3543df75d58d0e449b91d7b7c316428ee6eb56", + "collateralIndex": 0, + "collateralAddress": "XwD6yYuSauTS9R3rL2AF7T21Ug9G4yUv1m", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.87.254:9999", + "registeredHeight": 1617598, + "lastPaidHeight": 2125986, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgHpYt8Q8TmnmLE9TUVbQp2iPseM84EHW5", + "votingAddress": "XtdDbw5oF3ikBaUXjhpzDdy4bU4H8BJRZt", + "payoutAddress": "XjxZEPBZ8Vby4amE2uvqmewvsaN5vx3uMp", + "pubKeyOperator": "8a6fd134debae8b191837067f8913891e13c45dabd3ac3db92a52586ccee40c8ffbf20ee8370945f47260a42a285effa" + } + }, + { + "type": "Regular", + "proTxHash": "369d281ceb4c4a25332c7741397aa7d815f210d6e379a155bc72387c41f52b61", + "collateralHash": "4b18bdcf2d7cd3fc999bfcd0748623ffb12505d431a1847fa4da4a0419aac5de", + "collateralIndex": 1, + "collateralAddress": "Xu42AVr2KUHGbbAC3YoFR958PsVQJqq7z4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.222.239.126:9999", + "registeredHeight": 1617598, + "lastPaidHeight": 2125985, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwUi2JF9ALiUX9w5LGq7bEBpc3VSSX7Lm9", + "votingAddress": "Xe4JLGnLtkg6bTHMVmHK92dF78SzpFC1xd", + "payoutAddress": "Xqp3Qdiw3fuhBCX9M1kb9ukC1JnBJwpmt6", + "pubKeyOperator": "899b91f07736c40773089a0a93673e7d7ba4fc1f39f0596f32bde17d6ef982ced5706c0b9941de787bdd93a8e64d814f" + } + }, + { + "type": "Regular", + "proTxHash": "ffa516477af8d6a3cea068a625401415934585f71e6fad72c880ed157da95f92", + "collateralHash": "bbc119c1263e9640d24e47d9a2cbf0d7435c56e1ed013a3f7cb51921f8c2262c", + "collateralIndex": 1, + "collateralAddress": "XtFvYwFS14DbpXVStbP498LKUhoSnbCJrf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "77.232.134.121:9999", + "registeredHeight": 1617598, + "lastPaidHeight": 2126323, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1956419, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPGAXWJXgeR2wM1ETVK1zonLZcNXMWkkG", + "votingAddress": "XxZ1LGgNecnrMMoup426h1YST7FfkmPb83", + "payoutAddress": "XewzWFoc9LU8oohhZtevCWYtresMRTzPm2", + "pubKeyOperator": "05ed616c3b2a4efb56f998c8c692e6345bd3287fefcf083989452f5269a34dc38ce2e97ebe3090c6822817055b3ef10b" + } + }, + { + "type": "Regular", + "proTxHash": "28e24a013ea100fa96da70719a94080ad12a33a93c5d2197bb0a369338b9129d", + "collateralHash": "b1f9ba92c3c3d76e77c7c30bd6079aec651520cb515e287864cc9f03500c548a", + "collateralIndex": 0, + "collateralAddress": "XphDHe8WJUbXht44Z1BhcYz9K8oPCJkFGe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "91.222.239.69:9999", + "registeredHeight": 1617618, + "lastPaidHeight": 2126002, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbpvh1uCpxhSo7ATdqtwHyzpvDsguWq7kU", + "votingAddress": "XdQtVN9fWC68w6fzTxT9yEpZjgdZYw2UED", + "payoutAddress": "XriWpvRBt29aXFkB2ErgAet8vWJcX5M1fF", + "pubKeyOperator": "82b4b2e1a673d3403511898dfdf66d0b00e275194d6ac15ba09fc0468bb63050fe97948a9440d4a5ac82c16f1435910a" + } + }, + { + "type": "Regular", + "proTxHash": "d8d6aa0fd3f639299e2d673c6d3332d32d765bc3830415f7e7749e38f4e9a7e5", + "collateralHash": "a25108b18d6b49ec375df686462df2f90ea3cf3f1efa50e045b75a5ffae89ee2", + "collateralIndex": 1, + "collateralAddress": "XgxSKJzAgVG4Rtv35N9aJ49BqyvkE2F4bC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.17.55:9999", + "registeredHeight": 1617801, + "lastPaidHeight": 2127559, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876080, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgt2X48rwdHtodmBK2SGfwVRc1mxWAAqYF", + "votingAddress": "Xe4QnnzKQdfhDD5AWUqhKJ11xCJzFM6K8p", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "8939f949047e3fdebda01fdf0c6b16b4b616e86ca9af56e208018da8a9916744fea13dca548e6e38f5f284af0d3a1cf8" + } + }, + { + "type": "Regular", + "proTxHash": "49f18efbf5d19809e697d4c726d56b1a5a4568f6ec073168eb05a1407919c613", + "collateralHash": "730f9503b5458989b54ed76baa7683cfc8bb296d7b823defdbdbac0819731066", + "collateralIndex": 1, + "collateralAddress": "XcbQjZ91R1NRjpsH1dKF48C1K1LhxPEaPb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.151.61:9999", + "registeredHeight": 1617819, + "lastPaidHeight": 2126203, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XygoMA75gW8Ayy34L1p8YDSqC88oap44mW", + "votingAddress": "XoBB4QD4BSSJ3XMZ5a68f3YMoS633nrscK", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "922f51fea28c9c398704200edc44166fae040ceb21b4de1b57f28f52b879de44fccab9055bd68bd74c18af6165f8978f" + } + }, + { + "type": "Regular", + "proTxHash": "1b42af375a0c3f260c1ace1f658ea209d4b333f3c214ff79270f568fd19bb811", + "collateralHash": "854df9d9888f2b3616eefc9c66a47c930d287b1d15364cd0b856057ac775e328", + "collateralIndex": 1, + "collateralAddress": "XtjdtWxCh666RWvCpXUoE5MVvVeYHb8ETi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.255:9999", + "registeredHeight": 1618401, + "lastPaidHeight": 2126534, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbKBCh8PQPTyCV4PCtJo9EbCP7Zz2UoHSe", + "votingAddress": "XstBJQaQM3PW1BGriKp6KRNjyXmtD3bCZE", + "payoutAddress": "XtjdtWxCh666RWvCpXUoE5MVvVeYHb8ETi", + "pubKeyOperator": "11190a114c1a71448556f9c2729d9516b6a4a6c91d8e4cba6faa3ab8c6a8ad28081f555e87b14d3e19e329e62712fe2d" + } + }, + { + "type": "Regular", + "proTxHash": "a29b36a4fcc2611ecc3aeab51abe52684a3fe5cfda3db429101c61bc333a94fe", + "collateralHash": "261e24319edde6f53f7903192e7765af7d56ceaa84a5d08d5f38de6fc69f63f5", + "collateralIndex": 0, + "collateralAddress": "XrXTdxT5RjkkTtMYGdCU7cFM5fCYS1mPys", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.199:9999", + "registeredHeight": 1618625, + "lastPaidHeight": 2126698, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc3PPbw9J7B6oUnUUCbvksseqAboaRVWCT", + "votingAddress": "XiPPN5dNiRb9aukckTto4KGLoaj4itc7Kk", + "payoutAddress": "Xetd9yBEp2Xa7Ypv7XrSST1qKGv587h5f6", + "pubKeyOperator": "13274c2e22e9e9881fd5132ebd22d59dd02959707553975e6ff602b2422f37675c0aa54de399aa92e24da378fcd1c5f7" + } + }, + { + "type": "Regular", + "proTxHash": "9390c31dcabb3210715503d1ce36aedc8a74607abf7fe877330d12d254a85547", + "collateralHash": "42dc9db3d199140ecc9558adc0b4a7092994a0acf3a94c9994c936628271c389", + "collateralIndex": 1, + "collateralAddress": "XuRzNckh23UHmHvEym8kz6aY9rpEmnapWV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.21.220:9999", + "registeredHeight": 1618813, + "lastPaidHeight": 2126842, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1764852, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjhtzYge8fWjqyKc4bq1c668WS78BwmjzK", + "votingAddress": "Xfvkbp3fQpMhWExVQn3mRrbQzfXG8eWorB", + "payoutAddress": "XkLJRGGYpDu1xp4pMFhdxyUx3JHcTJ68ER", + "pubKeyOperator": "0008b41272e26df09f1949cab4ccb1612d4c2cf4b3a31a1c84eac68e7092583726bab4a3a96e5482ef79bbb74dfbfc9e" + } + }, + { + "type": "Regular", + "proTxHash": "27d302288df88b929cd95d9609111641fab19c017de0c793d0be9318162b442b", + "collateralHash": "cda816ea7578f561d31ce3d311ae7db926675620cf400996e46943082a410056", + "collateralIndex": 1, + "collateralAddress": "XvGvdi3dMRo6D8LQWkp2pBF1P3wSatN854", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.169.30:9999", + "registeredHeight": 1618821, + "lastPaidHeight": 2125812, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1843534, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xef3NaLyVMzK6r7sdj8cxFtWr9TX4AFQdK", + "votingAddress": "XxY1D8jcdXSYae3grD2hdpgjEuPqdH1vnN", + "payoutAddress": "XfTBeeSU6uYwMsHjPYgKEHFcgqkp6R419Z", + "pubKeyOperator": "8e0239e05f012639f6cb37dd2c4cb8527ef94def158b67b43eeb01d0cf570dd77db67b66f0cd47502df50ce0c270b885" + } + }, + { + "type": "Regular", + "proTxHash": "24956d9a8ae6726bea900c738ff6c564039a054b90aaac9a793248c08ceb8f25", + "collateralHash": "bf28302683aa02dbb97a4b0ac6aaf39b4eeae3364a18b3197bebad169a8a8422", + "collateralIndex": 1, + "collateralAddress": "Xt6h3Y6aLgLA9kMypZrwmZZU7cCM2AJeSt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.21.189:9999", + "registeredHeight": 1618822, + "lastPaidHeight": 2126773, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoGNoZLyQGxSW2uRA87CFyFwihrtC6oc58", + "votingAddress": "XeznjiJWT5RV5F5rQGPTyKEbAUj3SGSmPh", + "payoutAddress": "XfTBeeSU6uYwMsHjPYgKEHFcgqkp6R419Z", + "pubKeyOperator": "16439399b3f2d66fe071ecf6f1f4b2026908abb197f25025252b1609df48b6f37879926d78e2e807cc30df617711c1f7" + } + }, + { + "type": "Regular", + "proTxHash": "6220c40004546db10362c389754225eadd434f709d42fa964302d9bfacfd7c95", + "collateralHash": "f16db15ef7c7955aa019792e212d34a102f76a7aa7ecfb7c7e64386f0e8df0bb", + "collateralIndex": 1, + "collateralAddress": "Xshy2m3qc5icPf7Qaz3pv3mJg3zRntF8zs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.223.61.242:9999", + "registeredHeight": 1618822, + "lastPaidHeight": 2126774, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvPK5gzSGbuELVCwXyPY5sRj6yxC279XHo", + "votingAddress": "XoTjyo6C2vD7nEi8vtq6GuauZmi5Zs1Gbo", + "payoutAddress": "XfTBeeSU6uYwMsHjPYgKEHFcgqkp6R419Z", + "pubKeyOperator": "095dabbe6572c5b3b4d5d595506afd871647c6410db9c6259f931f86c0f247cf6ac1552f8626ce6f8f1e30b58c61f731" + } + }, + { + "type": "Regular", + "proTxHash": "6d5fd520ebf4db38e2e2112a96b04d85bcc154fa389eee2698f0d3b9db08c6f4", + "collateralHash": "73568ebf7a589c0ec7ad89411497b8ae2c20391bcbfcdbbbb30515d3442e5a69", + "collateralIndex": 1, + "collateralAddress": "Xtd5ZcWQuVtWKJwRbadYqdq1utZCZQ15SN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.172.95:9999", + "registeredHeight": 1618825, + "lastPaidHeight": 2126776, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnrfC6svcAGdt6tDwCFSsvjvcns7QJmPn5", + "votingAddress": "XfoGfERBX7jjVkCMMcmhq96JRwADxaLAJg", + "payoutAddress": "XfTBeeSU6uYwMsHjPYgKEHFcgqkp6R419Z", + "pubKeyOperator": "1720d8f48359ebc536fcc3be90e1de4f39c1dc111f718dbef77cf60a351978274ed98c8c966dbbf89bb0281528d7946f" + } + }, + { + "type": "Regular", + "proTxHash": "f3fa4f1146151a704f8ff7270f3428750cd22d68a2bcb7deb284058191f0b67a", + "collateralHash": "d53375fe838bc2800573e3b4309a59e06164de0fe432cca569ccb1b51969a417", + "collateralIndex": 1, + "collateralAddress": "XnHaXCSe2LESPXRtZZFQdonLiiC78F41hT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.52.92:9999", + "registeredHeight": 1618856, + "lastPaidHeight": 2128184, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjiRXdjDqPSyiyDPdMiEF66RCbmwHyo3VV", + "votingAddress": "XiYedWiaZCTMsKzohbxsbJUVWCyk2cemVF", + "payoutAddress": "XfTBeeSU6uYwMsHjPYgKEHFcgqkp6R419Z", + "pubKeyOperator": "07864345d950dc891a4364acbfe98651ec66843146453f26e181bbb612af170197cf9f72daac2a65ff46707ea01ac734" + } + }, + { + "type": "Regular", + "proTxHash": "8dd770ec3b319c24fe7796e3785b9186fdbaf3daabe1c60c17ad13342f11cfd5", + "collateralHash": "976d1342797e5eb69d63f59e43b61a979708b4a5b2b508a7ebb827384a1205ab", + "collateralIndex": 1, + "collateralAddress": "Xy5RkRZsqA7guKymtUBkBW7BGgd5goff5D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "157.230.36.4:9999", + "registeredHeight": 1618970, + "lastPaidHeight": 2128220, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876694, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfC1TXJjgp44mzcmauZ3bYGWv5DasVfytu", + "votingAddress": "XwWnTdQ12nS5h61gB6nH3fhG9cz3j3qRZf", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "1720d92f31c9001ceaaa7132d7a7a1031cfd4b38bacba9b2a448f214104d5433ebe317a30658738fe774a14d4b62299c" + } + }, + { + "type": "Regular", + "proTxHash": "d6d0f543773830b56bc591b226d3638ac530be778741f19e29a0bf111687ed36", + "collateralHash": "9bf99353fa7f7575851715f8fcde358ee238a1ff0749017634d61db2dd2a0209", + "collateralIndex": 1, + "collateralAddress": "XxJg7XxMZvuTQw4W5MnTtKiWyeTfxjTzcG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.189.48:9999", + "registeredHeight": 1619247, + "lastPaidHeight": 2126704, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1757174, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnf5NVL1DAL2EHLoxC2KtX8nnW5Vb6jkVW", + "votingAddress": "Xxms3QTK3fBLBK533mv95UE8tBvKKpdfk6", + "payoutAddress": "XcxpRXvPLdjxmBi9gsiDeYw25bz8E3odV2", + "pubKeyOperator": "0090963a2121a507bd1a886689e294494b66723a695816e00d65887f7055fb055fd0ba7379588c88fe3f42d92ce9144d" + } + }, + { + "type": "Regular", + "proTxHash": "8297e9ec9c1e8283f9f6fd3b7e36e41928f7231df971fd7884a3e4dd90604477", + "collateralHash": "bae1d4cfeefa6d17a94ee2c441e6354d59f5de2347eb9ee50d8462d8225fa75c", + "collateralIndex": 1, + "collateralAddress": "Xpgo5ehbb6gG49zftbNLTYPgYHXxKkxn87", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.178.147:9999", + "registeredHeight": 1619248, + "lastPaidHeight": 2126705, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1757174, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XciUUnKJmvSiePDX9Jy4xNpFBiUrFNW1N4", + "votingAddress": "XbvVpVN7sESwBMUJvWtj71gaAcETgiHRCG", + "payoutAddress": "XuTLWBVyDjhS9uVSvw8hi4JepFufQdtESY", + "pubKeyOperator": "09e70f206e2d6b25e9ecc4f4c54f0d7d2656aeea0cf2d78e18aba78ebe950da87dcee01652440b045b2ad4e00ccafc14" + } + }, + { + "type": "Regular", + "proTxHash": "844f2130dbf3fe06e4faa8c976005ab8e74478b6284973ad14a1634211c96565", + "collateralHash": "847c96626c5ecd9372f0959145e91098452a0b92af5164efce03e43e56ee3866", + "collateralIndex": 1, + "collateralAddress": "XpxmgXGvjZE4oyAetm6Wy7qwG1ZHjr9tzi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.28.109:9999", + "registeredHeight": 1619478, + "lastPaidHeight": 2127315, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwh6FRMrDUqyNz9sWR5eURBEvHCQM5zSpW", + "votingAddress": "XjCXjPwPDSgFz6qcs6s1GYTyy9bJkrA2Sx", + "payoutAddress": "XpxmgXGvjZE4oyAetm6Wy7qwG1ZHjr9tzi", + "pubKeyOperator": "99197e05673f1d21dbb09c5db0fbd44988a7c567beb8350f6461d3c3027368a00a2cefcc74005f37d4fb8e0ab7284a30" + } + }, + { + "type": "Regular", + "proTxHash": "4e63dacc6937d8d0409a5aa342a9cf681854ce495cc1dd37c309c29a11f86647", + "collateralHash": "a1259c48c7884b21bed2da6806a2e742d0ca71b407509cbbd53f7b5553f591b0", + "collateralIndex": 1, + "collateralAddress": "Xye3Vhm3oWCEUB27EFNsrMfVkUrdMEP78N", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.107.166:9999", + "registeredHeight": 1619496, + "lastPaidHeight": 2127319, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoSG6XTuA2K3ECkCwvufMnRfQCHCGU1vHj", + "votingAddress": "XyiPhgshcr4Z1eKyRUE4ST1SZ1UaZhbWRv", + "payoutAddress": "Xye3Vhm3oWCEUB27EFNsrMfVkUrdMEP78N", + "pubKeyOperator": "08ff9920aa7391cf47e0a1a816ab4c67e037a5d448d2cf28b4d8c7c4008c459eadbe5134f7176804046521ec0b49341e" + } + }, + { + "type": "Regular", + "proTxHash": "d8af561a15d6569ec3c84ff86b1a2b2cf5f8a73e71356aa90df8ad9044034fc5", + "collateralHash": "1fa60881f34bb04e365686ed8b12766d92b2f2397e2854320d7ea2ea20a271dc", + "collateralIndex": 0, + "collateralAddress": "Xe2yyohVSsmyDGcvpfje1hMcmWByuHrnGV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.4:9999", + "registeredHeight": 1619593, + "lastPaidHeight": 2127395, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqbVFzdfZyumXzKkwN4NH7trm2NZ1Ron2m", + "votingAddress": "XfatsaMpH1AQJtsXZhB2tsRvsECpWPjJfp", + "payoutAddress": "XnbwVAVMPhqWVBtTJq5GnSVgi4nPND7YWr", + "pubKeyOperator": "94f79f0167e904ef130639e793ad191bffff79f410f89a8fc65c141a9a16f5e48314fdf1e10ab76979d79f8a5203abfd" + } + }, + { + "type": "Regular", + "proTxHash": "890c9ee2e41f914b29290cd906c3e437d81edf50b339e49a821428560216b63b", + "collateralHash": "ab2f1220cda64ded90d89aab8af57234290c91edbb26b52c719be641e22b95c8", + "collateralIndex": 1, + "collateralAddress": "XcYZa1LNSZmVbd1aNojmr4EXaRiULiadY1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.249:9999", + "registeredHeight": 1620320, + "lastPaidHeight": 2127961, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvngSsXPKhs5bXVSq87XGpUftvamMuu2bu", + "votingAddress": "XwLHjXK5UREuQ91ZXBzGvvzf9WDoyJx9LZ", + "payoutAddress": "XcYZa1LNSZmVbd1aNojmr4EXaRiULiadY1", + "pubKeyOperator": "19f17cb890786576a7e25a930289f1c71c2560490c6bf24faa2a234cf634ceef4c823145fe13712e18543b4dd9c5526a" + } + }, + { + "type": "Regular", + "proTxHash": "e826a20acf15c6ead96c6c36be8b69c6bb663540e6647622ad10b19cac03f253", + "collateralHash": "993069bb8a78f2ee714de2d8100ec5e9898c59a9f7c5dc58d0b40ad0d048dc6a", + "collateralIndex": 1, + "collateralAddress": "XcVNzv75NpE3RCPTpr55YXZa5LFc4SK2a4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.207.128:9999", + "registeredHeight": 1622016, + "lastPaidHeight": 2128158, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876632, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuhcC3H3Bgtn59DLvHWGt3sAfaNfGeC3rq", + "votingAddress": "XwGqtt3RgrQiWxgZWJzQmAuVNFWhEmnKw8", + "payoutAddress": "XcVNzv75NpE3RCPTpr55YXZa5LFc4SK2a4", + "pubKeyOperator": "0aad1c7f45985e73450171a37dbb7a1e19e8dd39e81609878bd0c10712a8a8f95e354bde780c73da3923cfb3fc6a28ce" + } + }, + { + "type": "Regular", + "proTxHash": "6c08c964bd41005e75fc2bfe589d3b938445cdb986309ea361d413aacb7c1fab", + "collateralHash": "677f848f8e31ee52b2e8848281a1a86cf0eaa7769cc45220955b3126a70ee574", + "collateralIndex": 1, + "collateralAddress": "XsKPNUKT7gvE6GsZ4SFuErVxRPEDQUowBy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.200:9999", + "registeredHeight": 1622145, + "lastPaidHeight": 2126197, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmbe5WJdecXBzzSZ7uh9sXf4whgKJAf99E", + "votingAddress": "XdhfQkMsYEUTr5E3ncrJe7cMTgc9hkPB7T", + "payoutAddress": "Xf2r6xY75WhQ2VTj68unqxTokj4rjZKeei", + "pubKeyOperator": "10375da59be88b6faea37e77238a1c83d0ce1275612e0999088a1a9070d12bc9db9893f104571410b5e240538b69d88e" + } + }, + { + "type": "Regular", + "proTxHash": "a1a5f31da90a76d93b7af2be5b821783e459c80f91788130854817fce5159800", + "collateralHash": "6403466602accf199f16e61c6ff3289c3f38e8126a596e5cea8cf3395d2e82ab", + "collateralIndex": 1, + "collateralAddress": "XfqTA7RjCYDYxWWdxDuMzigiapXnYgDsm8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.71.158.58:9999", + "registeredHeight": 1623435, + "lastPaidHeight": 2127971, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124799, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XktWWe3GVR8sdgsydYbNsNNRN2UspDskRS", + "votingAddress": "XktWWe3GVR8sdgsydYbNsNNRN2UspDskRS", + "payoutAddress": "XmJt8JSyzgGFwpMdhBDUS8zzqq3y7AQnbB", + "pubKeyOperator": "1335e1ec72de4cb59ae213dc0977d62dddf0bcae1674ef71a60c8f5b1516055673e9e294b88faaeff4a01c485ad56a85" + } + }, + { + "type": "Regular", + "proTxHash": "59c588d510591e75066731b4f5e425620c5ec6b13068cd5961a0f37edcb59235", + "collateralHash": "159304138e20fb8ac14e3fe8af1d92e48a7552d82fcd132a4cf66e2382369bba", + "collateralIndex": 1, + "collateralAddress": "Xq9gHyNoKj7grf4ssWE77B4zmwj1WcJwEz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.24:9999", + "registeredHeight": 1623551, + "lastPaidHeight": 2127037, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo7bEgsqYoLNSxpbykjE545xUeqetJkrdU", + "votingAddress": "Xknz4vTnVN6TchUmBySBMEz8APFTNeZbJz", + "payoutAddress": "XtuQhazyXcNx9U3p289U8TkSdyUkxDezxg", + "pubKeyOperator": "9603f5ba6cd2d13ca3d031c93f3b8dbcdbe4003c7c9d553ea6fa58b92b8bf1630f6d7d6e956a59f58951f0e887c8a71a" + } + }, + { + "type": "Regular", + "proTxHash": "a1c2cb5e077bbe87573061aea0f5f13bd046699bda99ca7732347f010c613314", + "collateralHash": "a7dc252fb14c2c39f715194a7691bc0ca274581769ffa21ad153775ea1c3d82c", + "collateralIndex": 1, + "collateralAddress": "Xh6KjJP5aFStsutT5oJY6aAPyjm9WbPjGY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.26:9999", + "registeredHeight": 1624818, + "lastPaidHeight": 2128003, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1811989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqJm1zPB5kGTrYCBmCTFhoLsLKmRM3fCEB", + "votingAddress": "XfyAVLLZSKd27RdRoaEEoCncDQRmmGXmtd", + "payoutAddress": "XgER529bP1gCCdx8kxuNR8JZ3ku2q7Bz1B", + "pubKeyOperator": "0f632192b8c313743474a20ba23c22d4b93c69b38090bf43ba1571651f4ab5eb0842341ae14a33aed5a66814863ee725" + } + }, + { + "type": "Regular", + "proTxHash": "d91fb1eb92da94094eb6ed73418e7436d0908e684b5329dee02dbfed02f8c481", + "collateralHash": "5dc95291c68fdccb1de52ba2eeb02f6356a52d59d0f40ea56dfa8d908ce4bcbf", + "collateralIndex": 1, + "collateralAddress": "XtRLresyKtncCRiyo7RWMaw9fmyLHmMmP8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.208:9999", + "registeredHeight": 1626106, + "lastPaidHeight": 2125860, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxoK9FnsyMe4wXHWpg7nB5FKfwpiqPkwLC", + "votingAddress": "XnxjJAJxExP7TRoe17WNzy6PS7eaqTSDWg", + "payoutAddress": "Xsnbq1XW4sD8NZSAXFRjRc1hN4tAAxWVPD", + "pubKeyOperator": "01f444a45f32c21ae048627996cad12b9a7b327d2d52652b0107391d008261ff58bd632c794bcd5aeadcf09a81542482" + } + }, + { + "type": "Regular", + "proTxHash": "a04b68f20480d8d66efeec22c357ba77f115793ada782e20d5c33fb33c32d7f6", + "collateralHash": "1a5129398dcb79f5a73184dcadd045565028b3786348bcfe732119bcffd3c0e9", + "collateralIndex": 1, + "collateralAddress": "XtaMw77WY7XpXfcnYbf6kHq5XbAyvQnK18", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.132.55.103:9999", + "registeredHeight": 1626418, + "lastPaidHeight": 2126060, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmTbZX1wcQyJRiWCHLhC3GsZYaLCCw1tDf", + "votingAddress": "XmTbZX1wcQyJRiWCHLhC3GsZYaLCCw1tDf", + "payoutAddress": "XsipyQ1NnzR3Czv5MT5bvASUqu7QymUaYB", + "pubKeyOperator": "1335202b451a6175d33ec5c647e5c8b820fb89cdd56ab18aeab9061850db7dc398b3d51b135fa2cfdc9e6edc502b0f1c" + } + }, + { + "type": "Regular", + "proTxHash": "8b9132cc1b8631e95caffe5e46facc07425c74b77e74cb5dfa6978107f6fe60e", + "collateralHash": "b731699e1ffeceb7989b90dfc4d5304ed30e6275fe8c8fd26572ab293110eb75", + "collateralIndex": 1, + "collateralAddress": "XviZW7GmWzburrnYBwuaYgQqX11CXQcDFs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.137:9999", + "registeredHeight": 1626594, + "lastPaidHeight": 2126221, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdjndkgW87vBeWwcetnXdfdp4MYoWq9uCv", + "votingAddress": "XfbADxNgiemqzP4i4E5eywdgQc4e7vj77T", + "payoutAddress": "XviZW7GmWzburrnYBwuaYgQqX11CXQcDFs", + "pubKeyOperator": "02c02a53cb66b84e8da1a1d134a4c7ab92e5eb93d0db3a9efb9dd54f6d875428fac15c44a2f189461f00ed67bb41459a" + } + }, + { + "type": "Regular", + "proTxHash": "1e1c5f9d893dc132e648dc99edca7ed1692d18d0c0045d6534a5c48f7fbee63f", + "collateralHash": "1af04de890b2cd2fc0c58fd766f523edb67bfc3fe01828d34883f4e5c634c3d9", + "collateralIndex": 1, + "collateralAddress": "XtbNwpvFBreXpoZUcvs5uXB1capKVi4kMB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.23.148.205:9999", + "registeredHeight": 1627948, + "lastPaidHeight": 2127047, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhPzJjZDs68jdiNdhJTfF8XZLRHZLYrmJ2", + "votingAddress": "XhPzJjZDs68jdiNdhJTfF8XZLRHZLYrmJ2", + "payoutAddress": "XpxUDc4sUF6ZxRViJh3jNqq8yPfvn1Brkc", + "pubKeyOperator": "8f0f2886fcb55d4dfe40bd5f7e4e2b9d0993faae20b4dc4a7f18452e94f03b5eff80ad2035f929c32d0f0c3dc9865eae" + } + }, + { + "type": "Regular", + "proTxHash": "c2da6e0f0b6deb5c6eb2664d33a8b5c89d5195671b64b4fdb5997e50f2f657cc", + "collateralHash": "835ebbfe1eaf93142a0a20e675dd45d9d70f9b3cd03dfeadb3ba95db536d9ae4", + "collateralIndex": 1, + "collateralAddress": "XfKghmF33sxupfPPuCSKzhDA4MqKCPCRtd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.48.40:9999", + "registeredHeight": 1629331, + "lastPaidHeight": 2128046, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgJujvsiMoigbWR7zE84m5qJkD2cCWn6sU", + "votingAddress": "XcjHUsLh8tTAB85QQcf7Ay3WTzSYEhqH2Q", + "payoutAddress": "XymZqNBbWgmdndSo1o6GfmvZuRfuzB35iv", + "pubKeyOperator": "139ea5b4b383aa96aaa50979e864d5e7e7718be81952e3187788b48fe0ca7bd9fb3eb0ec52057381111bd7c6cb5437ee" + } + }, + { + "type": "Regular", + "proTxHash": "528142667a3a6a62096b58ed43b137548421421501985cdb31a7d11c8bb05e91", + "collateralHash": "7b7ee0f7d0a2c2095e75a58322ec837d0429dfa38aea3bd5ab772d86a8dbd6d9", + "collateralIndex": 1, + "collateralAddress": "Xmgmon8W16L8UV2ok4XjBmQ5JFnkSTJRJg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "137.74.231.172:9999", + "registeredHeight": 1633450, + "lastPaidHeight": 2127974, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtXFjPHPDrWCuHbuGv9G1fUjtFEYM7gbvW", + "votingAddress": "XtXFjPHPDrWCuHbuGv9G1fUjtFEYM7gbvW", + "payoutAddress": "XndNhkgAcg5ztGuzzUq8aeDF8osSkxCN8x", + "pubKeyOperator": "88972c91feb8db66a6c32da61fd1986a37939469841a20b88be44ba6695cec48db26c0da2c8ce62063f3fadd001b3ff6" + } + }, + { + "type": "Regular", + "proTxHash": "6cd07585b6d1f0e208f2fa40302a6dfec36e176cd555ee960c4e2c90e959bf77", + "collateralHash": "2302db8c8f92e8b8a645d4ca3359ff30fa0e2dbcc800bf2bc12c2320062b4e2f", + "collateralIndex": 0, + "collateralAddress": "XmoEGKmcqvo5qyW1aQBGXzUimg4t3BH1FC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.156.166:9999", + "registeredHeight": 1635189, + "lastPaidHeight": 2127099, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjbJswDvRVNbhtNFcZQd7i9feGVJ99in7w", + "votingAddress": "Xo2byrbqeSjdGUfRkzgSJeKvXCcfZXLCRu", + "payoutAddress": "XmoEGKmcqvo5qyW1aQBGXzUimg4t3BH1FC", + "pubKeyOperator": "11bcb3266c44d3dc0b3e2f0e4a684f07b27e53dea63959b437bb56f6b13e7dba9a8d9c1481cb0d48b72a65f1488df4a9" + } + }, + { + "type": "Regular", + "proTxHash": "b83852cc3c717e18d3b2f74673cf3b7eb36688ed2918785f323b3720f2d28b80", + "collateralHash": "f1760ab39bb9761bd4b70a3ac1888bdf913c40b6003a61d1e0a74fd97c0d11be", + "collateralIndex": 0, + "collateralAddress": "XdNEvNuYVsqJi2G82sJRFCrxmzd7hwVRs9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.118.113:9999", + "registeredHeight": 1635201, + "lastPaidHeight": 2127100, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbF6RC2ULPBGaeWb8fKxNkrjkUpiLkAoSQ", + "votingAddress": "XpbgcWtYn1XnjycwYR1PHZDszXxFa98vWQ", + "payoutAddress": "XdNEvNuYVsqJi2G82sJRFCrxmzd7hwVRs9", + "pubKeyOperator": "92737a064249d3e8cdebdab8babe58a5d9b4d9bddf312b6d0295ae3841a36589e8ba22ea911b749790a5aae1f13bf985" + } + }, + { + "type": "Regular", + "proTxHash": "7a09ed228766fba1d0bad010cf6d5749dc6d09d98783fd69aa3227aec8440be9", + "collateralHash": "40894009cde3b1847ae22ee2173b5f410c92c0a54b9cc1a156683e8562fead33", + "collateralIndex": 0, + "collateralAddress": "XiqZPHXYQNCXdXnDepyTLcbMmg6mLkUC8Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.73.213:9999", + "registeredHeight": 1635201, + "lastPaidHeight": 2127109, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121032, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs2DKeESh7GPASz69K2jQjJ1y7uPryWA7W", + "votingAddress": "XakkmCgmGVKEpfgBLKT65fWJBhYjfbpxeD", + "payoutAddress": "XiqZPHXYQNCXdXnDepyTLcbMmg6mLkUC8Q", + "pubKeyOperator": "03b810b5fe540ac892498eee075e3e36467322999175ae81ccf7c863f90310ea3a1bd4f5fcf0536aca87f03f5335c66f" + } + }, + { + "type": "Regular", + "proTxHash": "1b4f75790aa4bc6867a3306f4e7407e342055a08767b5e0e321cfc54d6461e86", + "collateralHash": "db903d4adc83d6da91a86b16462a1c5f7dea20310ac82610f0a3d9d05a49c0e8", + "collateralIndex": 1, + "collateralAddress": "XkdBga97444HT4qZgeNpjQtN2An1Qn18yr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.166.229:9999", + "registeredHeight": 1635651, + "lastPaidHeight": 1825432, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1829219, + "revocationReason": 0, + "ownerAddress": "Xn8N6DJ9K9vZ48ZLwK4gegTqGaBBr9mcU2", + "votingAddress": "Xn8N6DJ9K9vZ48ZLwK4gegTqGaBBr9mcU2", + "payoutAddress": "XuhWKth8LeigeuMJDs7kPwLFWym4Pj8XQ7", + "pubKeyOperator": "9961a2df5a2a1a79fb810f748961c4970a5220dd0f3e7246f55d5eece6249f67758066087b17f837e365310ea80acf02" + } + }, + { + "type": "Regular", + "proTxHash": "035b9cbe7f9fd2c4674b34008200927a331abbfa89c3371a4c21e4f3c7a7a6f8", + "collateralHash": "3c48a3e7b701c7b8e1af0f1b75ada0d5242ea0d8aede4aa5f60cbbfa12433078", + "collateralIndex": 1, + "collateralAddress": "XiJbHzi8yewumvCNkQvfE67Ub96XuhJGYF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.71.158.54:9999", + "registeredHeight": 1636050, + "lastPaidHeight": 2127975, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124800, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbsJXzQ2hAjdDwZ7xnTgWJJ41YMyXomNuC", + "votingAddress": "XbsJXzQ2hAjdDwZ7xnTgWJJ41YMyXomNuC", + "payoutAddress": "Xr37Ma1zyqhPmP9Sbo3ADJ7mz6DMYkZrZX", + "pubKeyOperator": "88258d708024ef91d4f8e43a9f1a43c46efa5e49834eec4ed43f041c7bbcb3c1467c4398cb58ed4801a166b98f10c8c2" + } + }, + { + "type": "Regular", + "proTxHash": "8284ca5217c4cdc9f1c055bab3b089b6a8400f59ea81001d676034b243636674", + "collateralHash": "d4287ac8c083c75578266cbe932755260b9c2d5500a0b922f929e27c22ff37fc", + "collateralIndex": 1, + "collateralAddress": "Xi93uk9MDuZSRXsba51cADjfW4Q57JLPKV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.71.158.63:9999", + "registeredHeight": 1636056, + "lastPaidHeight": 2117733, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2125850, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoTHR2uMYg29x8Hwi5Lq8cNLkpRYMn6ruH", + "votingAddress": "XoTHR2uMYg29x8Hwi5Lq8cNLkpRYMn6ruH", + "payoutAddress": "Xr37Ma1zyqhPmP9Sbo3ADJ7mz6DMYkZrZX", + "pubKeyOperator": "96ab699e6e9d4664cb77a22230aa308ea6d468920b23431e07626a6e017ea252f51e33c73fd08fa132ad96d2a7882fb5" + } + }, + { + "type": "Regular", + "proTxHash": "cd1d11b4c20bb7c861f1df84a39b6d5970bb8a05f771991baa3b115944cbbe0d", + "collateralHash": "6019856434e89c42755ea061793c7e49ee0bdf9a2cf1256a68b36c8a24cd0891", + "collateralIndex": 1, + "collateralAddress": "Xbrv6BwNLzDwHGBofSTPwB3dLYRbZsPo49", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.122.110.220:9999", + "registeredHeight": 1638088, + "lastPaidHeight": 2128194, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjphQoAzpbGbQRW5o12vM1XxXr95w1iq9D", + "votingAddress": "Xh7JWoqgCVNP1s3jgKeVkWnzHUX3Etfo33", + "payoutAddress": "XjdCHcJcszMFQrdUHdHFaMwSUAvDMBmsGs", + "pubKeyOperator": "0079209cbcf3d3b198263250078c15ad7e6a95bbd90b0c0e31d49e8e1aaa2fb0afab9ce6e92a83e6de31bfe98f15f7bf" + } + }, + { + "type": "Regular", + "proTxHash": "3dafdf7eb1f56dc7cf89b2ab05c4e1f9066e03d1894974678f7564dc0d17f421", + "collateralHash": "98ec25de1afeb9e8b85d139282149968faa480e5e317c68af17f70b1e00c5efb", + "collateralIndex": 1, + "collateralAddress": "XxbNFTmb8DXcacL1hyxHYDZ19WSAnyfehB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "87.98.253.86:9999", + "registeredHeight": 1638998, + "lastPaidHeight": 2125822, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbAswEXNSVhTkbsrVMvC3da1k8nTAe4QKw", + "votingAddress": "XbAswEXNSVhTkbsrVMvC3da1k8nTAe4QKw", + "payoutAddress": "XnZMpCSo9zvoa4dk8knXYBQ1ZjcfWCKFnG", + "pubKeyOperator": "03c8d2bd19af500faa7784e6ecad662b37c021d915da4cbdca48b2d8fe360604dc361262fac9f1c92e6e271d6f87d97d" + } + }, + { + "type": "Regular", + "proTxHash": "44f52e1a6ba950ea545043b2cd5c8ace009265fcd737e19a803f397c4ee99ff0", + "collateralHash": "15b8bd41a01d2a413476ee9a11a2acccbfe5a0131643e3011ed8cd5454c75209", + "collateralIndex": 1, + "collateralAddress": "Xm3rkDE8SViPf29uHfr7jaDQug2npikNAt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.23.171.243:9999", + "registeredHeight": 1642921, + "lastPaidHeight": 2128783, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XueC4LFcyG26zW6xLEXFPBSJGMKnNbPfpV", + "votingAddress": "XueC4LFcyG26zW6xLEXFPBSJGMKnNbPfpV", + "payoutAddress": "XuaiN6XYzeqgUBAPdjxAuYhSDHVGPYDdJR", + "pubKeyOperator": "9647f0e57f7f66bfa91bb8cdaf0a3ad65cbe5aaf98c1ab4b26d39f5340e7a7261ea189ddfb44fb01daa5490904988469" + } + }, + { + "type": "Regular", + "proTxHash": "4c75decaf4d0ccd5a0b823a650d9efee875636c52039c5d3d3d8ddb3b091d456", + "collateralHash": "ddc92cf2c31bb6a0b79e4ac1afce17df8fe7f94cab2d2c3612113a35bc25986b", + "collateralIndex": 1, + "collateralAddress": "XmXc4JjTMnPnz5FbFTxq5dwaXGVBt8A6iC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.59.153.204:9999", + "registeredHeight": 1643573, + "lastPaidHeight": 2125996, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw1xyCeZ9DDYo2vXuvJ3iVQfijqZoWuciD", + "votingAddress": "Xw1xyCeZ9DDYo2vXuvJ3iVQfijqZoWuciD", + "payoutAddress": "XcJB2nnFKbH5dmvXkZmU8fxWwcZPsSzg63", + "pubKeyOperator": "10694a217916dc239879d350ac433595248d8ffab0a98f105c79f1f9ef2d616096705a954b35b616c01d75fb4657154c" + } + }, + { + "type": "Regular", + "proTxHash": "d682be4c0a1e5ef524d6710ea23b44a6b71ceab4dd593500f5c9d0a7810d0472", + "collateralHash": "180ed7fc4e296efac027dfb838928b30bbbb9f10bf5e9bb8aff27fddc853f3dc", + "collateralIndex": 1, + "collateralAddress": "Xg33mRUg4oVhZeWwZrAbZFfxfTD1BPGpms", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.161.53:9999", + "registeredHeight": 1644000, + "lastPaidHeight": 2062159, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2038595, + "PoSeBanHeight": 2063253, + "revocationReason": 0, + "ownerAddress": "XgyNgpurgwg1615WUq7QQx46ndzjAmqXZZ", + "votingAddress": "XwSvxd52U7jkuGmjRakhN4TWSia9fQDxdq", + "payoutAddress": "XhUfVwAayZtkpYZoCaNWno2aNhRpfGV3Gz", + "pubKeyOperator": "14767b1f7f31df252d31f6873c5f6fd0b6642068369b49644a9d239a28d4f1ef86f00ed252a2c44b405a5c79fa2d4dd8" + } + }, + { + "type": "Regular", + "proTxHash": "ed5bd241efff72d591eb8c84cac2a32b88abd1c99dacfbc3e7a7147ea628a9c6", + "collateralHash": "db6a14d251cf25b077222636b18e1d3e1701c970abcdfb63de0a0eba724e17f7", + "collateralIndex": 2, + "collateralAddress": "XyELDQ9GAEtshDpJiB8o6682axJEbyZuQV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "202.182.105.95:9999", + "registeredHeight": 1644764, + "lastPaidHeight": 1868886, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": 1865043, + "PoSeBanHeight": 1872330, + "revocationReason": 0, + "ownerAddress": "XtkUUNp9AK6yQW1U9RWF42N6Ym7Xjs1b9e", + "votingAddress": "XpcodnvjDE7MinQXXjoJVEY7kWgoYAHzkA", + "payoutAddress": "Xxnq5ftNUyYp9YVVkWtnpJPQBT9C2aEAE2", + "pubKeyOperator": "17ce83abd8254cc965a97aecfae7133dde5d5e7c51d7dca4094bc9f63b6dbce846e5b4c682ea6efecb235d623077db27" + } + }, + { + "type": "Regular", + "proTxHash": "2708e549e48306a34ce74c529d07a2ecc8f11e777d3fe023996c54891c780d2a", + "collateralHash": "ebd0ef5bf6c80c4769d269501b3dc735a6ae78e960fe8ec23536b9a021616faa", + "collateralIndex": 1, + "collateralAddress": "Xqq2YDpK3p8dP4DaqPAwPnwuPejJNXRvdw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "151.80.244.177:9999", + "registeredHeight": 1645079, + "lastPaidHeight": 2127026, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvHue5mudEF9aVxsCd53GT4r5GsXQntVwV", + "votingAddress": "XvHue5mudEF9aVxsCd53GT4r5GsXQntVwV", + "payoutAddress": "XqKyXVwLLr2k4FKE5ifPn42cWYQvCBGRj5", + "pubKeyOperator": "0cbe6802bcabf08a382901aa2cf58f017cb0bb865d23d98b511eba0206052c7dfd390128d052b6ad3c3071ef081871f0" + } + }, + { + "type": "Regular", + "proTxHash": "3569469fd805d104386c2f55e7c2c07aed9022937fe9c5c6e08f900d8533c50b", + "collateralHash": "4700fb72ffaa5e07d69279fda9d3ecff8b7f5d27e47cac7cf7bdd93afa04399e", + "collateralIndex": 1, + "collateralAddress": "Xd32PN2nF4Z5qu1MDN1CY2jrgoHQhXW2i2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "87.98.246.117:9999", + "registeredHeight": 1645511, + "lastPaidHeight": 2127372, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuPQ5HYfxQd1bs5dnUKCcdYxsUBz6maNnf", + "votingAddress": "XuPQ5HYfxQd1bs5dnUKCcdYxsUBz6maNnf", + "payoutAddress": "XmhVUYmJDX484tqCn6wf4SupQevKDnK8Af", + "pubKeyOperator": "8b1595e880dd49339dcdbbd32db7b47b78999f9d08043499ff4460d7f644c0f4a2b058bf2f6024e7f0e9d83790d72f8f" + } + }, + { + "type": "Regular", + "proTxHash": "a2eafcb12e78f91ff47ded232ad0e45af2db3f10b1f331e8f5f24785bf79899b", + "collateralHash": "59d61ea092b56c0db76623c74a714ade35e41d78e40b954fd4d5e4a59e0da4a0", + "collateralIndex": 1, + "collateralAddress": "XtrUFtExVNRwHTg9Z7CnFRBvxSGC2Aiyae", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.53:9999", + "registeredHeight": 1645838, + "lastPaidHeight": 2126881, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114553, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcd75L4fmCyNdj2HKqwsggobo5z2vW4hb1", + "votingAddress": "Xcd75L4fmCyNdj2HKqwsggobo5z2vW4hb1", + "payoutAddress": "XtrUFtExVNRwHTg9Z7CnFRBvxSGC2Aiyae", + "pubKeyOperator": "085c12a75ec818b23d38337f58a962a6c7145c537d8859e65561bd8ba92e81ef45e1cd2431408476b69512b6b72bf96c" + } + }, + { + "type": "Regular", + "proTxHash": "0e8a2ca4bcddab9cfb68015fb37864cb26346a2937302e092e147c0c615da98b", + "collateralHash": "029483cfca3ddb63944abdfff7f4aaadbd3b71338a82c76aba6a487364067ade", + "collateralIndex": 0, + "collateralAddress": "XjQxScWmXL7ZRzc9ztqQgx2b4fSM9i6DdD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.132.186.240:9999", + "registeredHeight": 1646349, + "lastPaidHeight": 2113197, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 1891271, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "XeVQSFR83mihFbKZ6hFaxbuGereQR2icmJ", + "votingAddress": "Xs5i4P7FA3td4P3JZndNrQiAW2R2GAUgkT", + "payoutAddress": "XjQxScWmXL7ZRzc9ztqQgx2b4fSM9i6DdD", + "pubKeyOperator": "0920e97811838905eeb7d7a448ca90cdc0e64316aafe584c71ae3b6d74dd0ad6e653a6e3c8b41bced546ad6933966d16" + } + }, + { + "type": "Regular", + "proTxHash": "68da16c36f7238a621fe8fdc097959a041ae5cf73cd5d4a1bce3b75d66506f74", + "collateralHash": "7f79a01c808a9cfb55a78a0950bb9e545ccc24bee648f05465d7ce816d4e795d", + "collateralIndex": 0, + "collateralAddress": "XcAFFSPpUeeM4TN4vv6jgQp4iJvRf3D4Rh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.208.230.134:9999", + "registeredHeight": 1648920, + "lastPaidHeight": 2126746, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn5SNWKUNWTc4gUxPh44Af5SYCRSxzafKz", + "votingAddress": "XpLsfD1ALYvHkxURQkUFnynijxQLyREM9X", + "payoutAddress": "Xom4fgQJEhoms5G5zyxFH1UG8fh6qF6b7a", + "pubKeyOperator": "1122e1e4d72e2547c928c772644cbc5eabc057d49f2b1a447971b6bd124e7e1b56e3483f2a26e227ed535bfc76a88298" + } + }, + { + "type": "Regular", + "proTxHash": "c8d7a31b10e009a9a35caf57d20bbd874870bfbfb850afb7380b9c48d9454002", + "collateralHash": "aa8b0417efa822c8bbd6940df8554877940273e6ea896d51b6780cfd15776714", + "collateralIndex": 0, + "collateralAddress": "XyzbJgRUdeFrqx39sJtRwSQ2Zf6oP4cNXf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.70.100:9999", + "registeredHeight": 1649983, + "lastPaidHeight": 2127499, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjYvZinp9nKjERauZLUYQitKpGLofNHxBT", + "votingAddress": "XnkPoFTDvoQv3R4QwhmahwvD4wZExPRTvG", + "payoutAddress": "Xwexyzjmg6UVfkiYkQ1n3fP5KEfSkBt5hR", + "pubKeyOperator": "8356748ac871602e89f16c58d862e32a194d499a355b43dcff378000a4c0cd091a3e4edecdb78711fc9e04b081033f38" + } + }, + { + "type": "Regular", + "proTxHash": "f0aa7bc9df9e9e855172ea47f199a0cce14facf9466c770c96d784a0e9fc1b76", + "collateralHash": "4614904409aeb50b1dc8cde8eaada331dac4710f2bbff71aed3726e1a3d4aef9", + "collateralIndex": 1, + "collateralAddress": "XwNqVuiGwXBmVftE3pvzSvyEamkkysActc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.133:9999", + "registeredHeight": 1650318, + "lastPaidHeight": 2127865, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbXz2kPnmHgq4QF1x9eUymP5Xq5oPg2VR9", + "votingAddress": "XeU3NtpYM7Gs8GEVR2bDvX5oJoD822pRTU", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "0c86cebef43bc0e93014ad2d38cda55085af4bbd5d7191e7728ec50733ae6a21a42e2d598abfd4e6298e4d263ecaed75" + } + }, + { + "type": "Regular", + "proTxHash": "1b48a3d93e3db04be83239c2be6689c6c926cf5bed7355ae2ed7fd6d6cec7246", + "collateralHash": "1159fdde3410c4a6f05611e2ef292c25424b1efc0baccc428198d7773f98a804", + "collateralIndex": 1, + "collateralAddress": "XdRsYoftmYjkvJpsDm4EPF6sD7gp1bXaYV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.58.70:9999", + "registeredHeight": 1652895, + "lastPaidHeight": 2126544, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjk976CLagkd9JmEtRdVRSyEpQMZSvCqcV", + "votingAddress": "Xta6V2x14pWM4zbq1c7QXqADZjjj26JVzt", + "payoutAddress": "XeHMTufLPoSt5MNmB3fiXnZVzqnaGWWMjP", + "pubKeyOperator": "8330cbceac6b4eee305dce288dc62e4699da2700a53588de85a8f0601f5fa76bf739e2cb28f0894ed1cd02e35341624f" + } + }, + { + "type": "Regular", + "proTxHash": "edbfd8a7ba045c7a3015fe3c98ac1750139e8f475aa20c2c3ea03d61b4c57fb3", + "collateralHash": "cb05512c92f1e3b23d0faa13c47ed8251d2f75378d0f9eb3aeaead849dcd23ec", + "collateralIndex": 1, + "collateralAddress": "XwU4Gocp6UysqytuBdoFhMQp8KXTbYEqJq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.75.224:9999", + "registeredHeight": 1653149, + "lastPaidHeight": 2126742, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtX3BPpjexBvjSBqmF7bXkho67VqZchSK9", + "votingAddress": "XxwyCL2hqtMGDnJdjC8WxyGHKQDtYiTWzf", + "payoutAddress": "XhbFB257XFmetd3v2wTdp2YMVMTv4MuLPs", + "pubKeyOperator": "15d1d295a04f7b8b66955d93c490105638418b6369e8f92fdd09fd4f96e18dcd794abaef343ebd010d746fc740993f8b" + } + }, + { + "type": "Regular", + "proTxHash": "26f37262d71255dde97a347001a898852c3e936ededd5d58c8d2d1a126b905d1", + "collateralHash": "1591496851373d749bad2de5960f1ccd222e21cd7b5104651c7c7fa9ff7770c1", + "collateralIndex": 1, + "collateralAddress": "XhptiB13S3BA2cQDQnc9Hp7hiRoWphmKEt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.84.153:9999", + "registeredHeight": 1653270, + "lastPaidHeight": 2126772, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnCE4QKa6wjyD8ZAv2jh1UthQDBBxoK3Yc", + "votingAddress": "XahKvBnYk3CT4dDgfHoDWQUeEQvMAQE3rN", + "payoutAddress": "XgbMeUX95HKnopzEC1kpQ5CHnrTbvV7MoT", + "pubKeyOperator": "8b817dcf0c4233d3c71ceae42db90a1b630f1f97285b4ffd265387a088a7d38400cd705ca090bd9c0f4619a225e16c73" + } + }, + { + "type": "Regular", + "proTxHash": "200ccffb2ef1da266efda63b35bc80bc8a547f29af3b8108f81ab222a1ceac35", + "collateralHash": "685d052066f93426888d921ef3379c55c567a16599dfea55a61e36c841ab8883", + "collateralIndex": 0, + "collateralAddress": "XkMnxVPmXcgbb2TkMwpKbxXCHZK5MXUW8f", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.178.172.166:9999", + "registeredHeight": 1653385, + "lastPaidHeight": 2126850, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmELPGHm4ryginLSvb462Q3hEpSrZaWVkG", + "votingAddress": "XmELPGHm4ryginLSvb462Q3hEpSrZaWVkG", + "payoutAddress": "XwK7WWvFSqzbh6WxU28NdNEJs8KiPHDrgn", + "pubKeyOperator": "00200857ea7c8e1e897697d338bcdc9213edf7c338ac8260807f3586bd949657f155f6b9bbd9710eb2a8285cac1f4396" + } + }, + { + "type": "Regular", + "proTxHash": "c227d53dd911cf01296a201afe3a2ff4983765b50610c20fe3173af6c73f3bfa", + "collateralHash": "071da0722b4f42b5ee8a01524415133ad21ed4364c9057e95a9753103ea7b81e", + "collateralIndex": 0, + "collateralAddress": "XihfmzZ32cHAAmpETyeD3oLnrzhRoQdonr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.135.51.72:9999", + "registeredHeight": 1654829, + "lastPaidHeight": 2127963, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTHKoXSJWS34QBYzkcA4PaYfLQNcAuvS9", + "votingAddress": "XrTHKoXSJWS34QBYzkcA4PaYfLQNcAuvS9", + "payoutAddress": "XmXxqsXDhFVkTmbsk9wvnMzAfgUMUUd7vC", + "pubKeyOperator": "1072b0e75f13644d58714e04a7485620ea7855eef14a49901a7e0c90c47793b671ead02dfa11b3b6c06c3ac0cc9b2a99" + } + }, + { + "type": "Regular", + "proTxHash": "10289f2582f1b5d3a5fdfaf839925a36d45746fe5cfddc1072d759580792de3b", + "collateralHash": "66e01782cd886fea977f5f28b92c9102787c9f0f4dbaac4259a8e64d596cffac", + "collateralIndex": 1, + "collateralAddress": "Xp7M3jCHn7WwPRvjDVo9SkBcG3W45v2qSz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.100.225:9999", + "registeredHeight": 1655212, + "lastPaidHeight": 2128592, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007683, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvrsbKXbAs8hXMXJ5RSY7cL5BCgWBuYHHC", + "votingAddress": "XvrsbKXbAs8hXMXJ5RSY7cL5BCgWBuYHHC", + "payoutAddress": "Xsv6sv6TKvLX2NbrLxFb5efkp913xGKBxK", + "pubKeyOperator": "8eccbe7fdae5137565fccfcc85d24c8a8fe2d29bf364b1b4058feed5e4cecfa2adb0b53beaaac5fb1e8b44221390ff4d" + } + }, + { + "type": "Regular", + "proTxHash": "33f65e4de4f0859cf0d865374590889dbddfbaf3811a10c4635e9e0f80878f7b", + "collateralHash": "85e62804144729f53b3b8c5e6c6ed69296b008d8ab0955f17feb943567269d37", + "collateralIndex": 1, + "collateralAddress": "XvshF1khvrguMpd41BHDxpCRgHxiEB7noj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.175.69:9999", + "registeredHeight": 1658694, + "lastPaidHeight": 2127941, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1879659, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgtBJbfwaVjz8Z7hgx2oL92QxrSyY9xUNa", + "votingAddress": "XmJjX9dsFjcQAYWy7LNwjmSS7Q2aMV1bLq", + "payoutAddress": "XtjCGsqQXUQpn4yet64qdtRYPBPzeGvzLZ", + "pubKeyOperator": "157ce7a10d31e0941c2f01edc703a689aff04349378ce5872e1a4f92158a22e6b2945f2d0cfc6ebee171f2e9cd7c1c79" + } + }, + { + "type": "Regular", + "proTxHash": "65c26cb5ae42fe93f00c5340347fc8b70c9192dd52164d7d80e2226a9eed7f65", + "collateralHash": "74364e447f7dbe5c074d17c03dea5cc0cf393c4158d5e6eb194c8cf981e10ba2", + "collateralIndex": 0, + "collateralAddress": "XbiYojYogpfFauuyH82zJaJ1ZBMvm2JnRv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.114.153.110:9999", + "registeredHeight": 1660768, + "lastPaidHeight": 2127334, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1761571, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpZ2Mz8f7HPNv7GxAa6iSuNV6semb6hmUF", + "votingAddress": "XpZ2Mz8f7HPNv7GxAa6iSuNV6semb6hmUF", + "payoutAddress": "Xt9R6M5gRrDCvi4f7mJKLyAtSgs6QnWfew", + "pubKeyOperator": "0919ead5cd20ce4b0871533e72505d424ac4cb6aab22a61806cd4561deb1c6a26ebd2a823a12f5aa5942906549a1ca12" + } + }, + { + "type": "Regular", + "proTxHash": "c2b0580eb48013b92ba9bfd0bfe98d76e5490cb62d918a89cf82aa45d3ca9c63", + "collateralHash": "51bcb22f4225cc7fa7e1700861467a629ca65d1c36cf112215dca9ba5b871aa9", + "collateralIndex": 0, + "collateralAddress": "XfZLym5pxnaxA7k9zZFBhbjy72Gdzgjoor", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.56.159.141:9999", + "registeredHeight": 1661519, + "lastPaidHeight": 2125995, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1981509, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjDJq1DnPkwGWG6BEkNBre7FG8V9VYZtit", + "votingAddress": "XjDJq1DnPkwGWG6BEkNBre7FG8V9VYZtit", + "payoutAddress": "Xt7fYAGMZqzLPSPU1VFSRJthXpumweqLFo", + "pubKeyOperator": "952a80d650fd773d6b986bc17c29409468e46c3b05f1433e7ed9f0039346f648481c4117d3d5d141e30c7b669d4bb64f" + } + }, + { + "type": "Regular", + "proTxHash": "d0a6da19f6a801763c691ee72dadb1db1a1ff76e33b037c19c41076190a85c6b", + "collateralHash": "fb273eb3845d34a46c0de90117fee14b869ac91e568841f92a93df799226caf0", + "collateralIndex": 0, + "collateralAddress": "XwKyAGrmRvQNFqwJ6Zy9X7X78Dz7zcTto6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "15.235.61.196:9999", + "registeredHeight": 1664098, + "lastPaidHeight": 2127248, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1986388, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvocQzwDXRyf2prChwiwgbiWPwcmSfxiQ4", + "votingAddress": "XvocQzwDXRyf2prChwiwgbiWPwcmSfxiQ4", + "payoutAddress": "XvLj7LCj6QFkDmcY3THDY8kKCxvToUdypx", + "pubKeyOperator": "93a86e5817b5c38f880be037390261fa232c04594dd0343a78ae510b6cd9cf44e3ac6c94d82cf8cca989a3bbc50f742a" + } + }, + { + "type": "Regular", + "proTxHash": "89cde952d0fef3387df4860df2bf06f731410d3598ff7dc312c12a52e9b5ff89", + "collateralHash": "b54fad3d15720cbd9e0ca2553e5eeb99c073ea976ebce9d6278bab769c64e083", + "collateralIndex": 0, + "collateralAddress": "XwHPQK6YFERBypY3MQaYEX3T8DUocKE43Z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "15.235.72.248:9999", + "registeredHeight": 1664604, + "lastPaidHeight": 2125791, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrfr3GB7gNeNyyVsKi2cUuB8HeuWJVhxG4", + "votingAddress": "Xrfr3GB7gNeNyyVsKi2cUuB8HeuWJVhxG4", + "payoutAddress": "XyLyCWinE48kDcZiyvF48fPAtAX1TV8aE4", + "pubKeyOperator": "9696d7b4f3375e640a697d66e0920ef31b13bdb98856d819165c64cc9db917cb4022c34943da08984393a161075bb330" + } + }, + { + "type": "Regular", + "proTxHash": "4ea27896413c952cdef0df94f8875d870414a039b827ddacc60d703084cbe98b", + "collateralHash": "bd0b7013f4d86a657508d855d195c005dbdb0a1c742f282a8da30e5f5b3e8f30", + "collateralIndex": 0, + "collateralAddress": "XtfaPPVvUwjqzJSN3XUzQeH18HCjZzzEga", + "operatorReward": 0, + "state": { + "version": 1, + "service": "15.235.72.253:9999", + "registeredHeight": 1665201, + "lastPaidHeight": 2126220, + "consecutivePayments": 0, + "PoSePenalty": 831, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuMadZT7BySDQbcgrpF72Jwfd1XcVvhu8C", + "votingAddress": "XuMadZT7BySDQbcgrpF72Jwfd1XcVvhu8C", + "payoutAddress": "XtS4cuqgr2EH1V4v51rNsUEzL3dwLuR1N3", + "pubKeyOperator": "0435753cd32a916ad051451ecee454139ca16cd7ef40a16d1a45b8816c53f9a7082e613b17aeafd3f2f02f31dd5d7118" + } + }, + { + "type": "Regular", + "proTxHash": "638ff7161ade356206bb9a6136faf24ec1e9d6939a993fd9730668c4d0cb1fa3", + "collateralHash": "e988ddab295d5126a7f62355521d376b9fe24c65c341ceef9c9ab6e8a9150084", + "collateralIndex": 0, + "collateralAddress": "Xi11G9xsTVA21QRWbN3ohx9KhywTUFJetX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.139.146:9999", + "registeredHeight": 1665379, + "lastPaidHeight": 2126937, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114606, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyrsJFdayaFmugJwDJCqaEV9Pc1zASEk5g", + "votingAddress": "XkqsnfFZh8Bj2DX4NsAaBvkMgKcVdqUyD6", + "payoutAddress": "Xi11G9xsTVA21QRWbN3ohx9KhywTUFJetX", + "pubKeyOperator": "945a0cfcf67e868b4ba34c18943549472b17cdd60a2dc93739fb475fdd0e80d7b93cd148508a54f1e4f3802a1bf7c505" + } + }, + { + "type": "Regular", + "proTxHash": "be4af6fab2cd48941b4ba13110cd4843090999ed9a80bf5228c34143042927db", + "collateralHash": "be4af6fab2cd48941b4ba13110cd4843090999ed9a80bf5228c34143042927db", + "collateralIndex": 1, + "collateralAddress": "7k41CDEGdYR2onsY5ihZeSXniZna3vkvdf", + "operatorReward": 46, + "state": { + "version": 1, + "service": "85.209.241.102:9999", + "registeredHeight": 1665386, + "lastPaidHeight": 2126356, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtBkQjUT9bdMMfEbjwh9vFRgTTzKnFQ8dZ", + "votingAddress": "XnEoK8pdvt73WBUxRJWZMfMmgwtThdD3X1", + "payoutAddress": "XdMcnBWRZF7ujeFCAf3L4wdWn7hFwwPeer", + "pubKeyOperator": "8b87fb684d432b19f583f0a3c1f52fa5ecaefe4690190219eb44e2150fa1f9fce4ed0951ddb2b82d25a9116b0f792026", + "operatorPayoutAddress": "XpFjBanoQz5J812UwFe5GDixWSnhYGMQe6" + } + }, + { + "type": "Regular", + "proTxHash": "516c384e7544561a4e3277dc8888669ef9468af21b62d9be4d667376403c8b66", + "collateralHash": "517fe7816dda28fa473ea5efbd83825bb9e7d38a3bf238caac7cd8e2ceef4665", + "collateralIndex": 1, + "collateralAddress": "XmrhuXFzRawb7RdtG8Mpa4dpo1CBRt8Lps", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.71:9999", + "registeredHeight": 1665390, + "lastPaidHeight": 2126364, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrujfNYosmyVAbVwbXWhzsNN8EPwT6mH4k", + "votingAddress": "XwG3QKubvBjhXcMARLig7Kf9FEqdsHdwJa", + "payoutAddress": "Xqz2VdpNo8S2v6U4iSsANfD7X8n7JnjLgs", + "pubKeyOperator": "84b64ad2bf739f6ecfd9088d5616ae71ae96f3cda5f3a46f75b11afcb6f68c8f265b7fb83d52453af0c9eeb366139901" + } + }, + { + "type": "Regular", + "proTxHash": "afb19b622c454a662ecdcb3381911c091b7ec9034ca7bcf1e391c30e9d9afe61", + "collateralHash": "90cfae5634d9ea72bbbb08200ba727c7653f89c359daf40f8aa0f603335b3893", + "collateralIndex": 1, + "collateralAddress": "XmukVLcgjFBWY5rKmqUkQZpWGfMvFtdUT9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.92.193.218:9999", + "registeredHeight": 1665617, + "lastPaidHeight": 2126509, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjR5W7ZgG2Z2fpH7HHciYdZwLwHLq68hkN", + "votingAddress": "XfB5mwf8yv1eVCBwBP6RxSPbajtAa7SkrD", + "payoutAddress": "XdHHWaVG3o2WTGgSzDjq7SfrdosUknC1V3", + "pubKeyOperator": "9479c49a885d0dec2e28b96e3e25756bc5584cf7d218020df720b1cd927a6cdfe5c8387dfcf1502b046ed4bdbd50b7be" + } + }, + { + "type": "Regular", + "proTxHash": "b1dc1066b02823932fc19eb645aecab3151a817f8d9d54a5e636dd5f5f1293c3", + "collateralHash": "3e5bac6d7fcfb39e94fe90778697fa9410e8e93c9bdfe20018b161b69f549aea", + "collateralIndex": 0, + "collateralAddress": "XgpMq94Em5x8Z3dW8WfXNvq9rwcoi15JaS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.159.40.105:9999", + "registeredHeight": 1667818, + "lastPaidHeight": 2119992, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126979, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhLAEG2ueHrrghXfjXNyUTvopKTAu1tDQ2", + "votingAddress": "XgVG2QEAQB3VCr6npUf4eqRumBk3VDZMTf", + "payoutAddress": "XgpMq94Em5x8Z3dW8WfXNvq9rwcoi15JaS", + "pubKeyOperator": "141e23fd67b1ef003d01fdefbe67af0146739e3485f465f0b973088ce6cab08ea5b008d6ab9f0ad76514df46f7edbde1" + } + }, + { + "type": "Regular", + "proTxHash": "178d95904c685bb590d251281d2c285e9a5400026652c97e29ba07cbb78222e2", + "collateralHash": "167cbd072e6fa3cb2ce58d0900381136bb4d0b484a3e8b41ee0329d4580d3ef4", + "collateralIndex": 1, + "collateralAddress": "Xx9KoPfRnRKzzg6Gid6LDHXewV5gS8LnGD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "208.87.102.91:9999", + "registeredHeight": 1668000, + "lastPaidHeight": 2126386, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1878090, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoqdCUiFyGRNWd4XM674nKjAmGSxq5A3Wm", + "votingAddress": "XtRUVd2DvRD29ZFVnn7Bs5ezbBZhEMFqPQ", + "payoutAddress": "XqRKgfYFPFP1ctnQ8BTCdpxF8J1K7TncLS", + "pubKeyOperator": "95684d387c1c2d453ffb7b80fa4c6660f378a1d9aa43933819cd89c0061465f8ff4fff93bdc40c09c64eb42f5cc9ef38" + } + }, + { + "type": "Regular", + "proTxHash": "1a79ad1acaca9bfaef9e7dcd0cbd087d6839b930e3319f6b56e1add59109d4cf", + "collateralHash": "056186ac60d7c81aaef7d075e8d0b8ec069a8b88638584a056585a2487876202", + "collateralIndex": 0, + "collateralAddress": "Xfde2w2j2PEAduoYNgfLPkEEdTavvn24Jn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.59.45.235:9999", + "registeredHeight": 1668443, + "lastPaidHeight": 2128708, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq4e3jyhtmtFGiBNu1qbsEFeP4fuir7VPE", + "votingAddress": "Xq4e3jyhtmtFGiBNu1qbsEFeP4fuir7VPE", + "payoutAddress": "XfWPJqEvT7SFW7seoyzk2cDYmUegGswKCE", + "pubKeyOperator": "81166a917f9a6838fb25b79e396ba9bad521dc3bb2d3e5630fd0e01431a250e8a15a9117ba17476e023a02ab7503a767" + } + }, + { + "type": "Regular", + "proTxHash": "2e8a6833dfde976186f01bba4e2e3df2e0897c374b6b188c81e37ed26f6bd703", + "collateralHash": "3f588f5260ad1c6c3171cfa79f42c21c740c9a18b995284259be920e99aea679", + "collateralIndex": 0, + "collateralAddress": "Xf9JmxNERGFv9Bugq8RQtLDz7FB6zm8r7S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1668531, + "lastPaidHeight": 1722549, + "consecutivePayments": 0, + "PoSePenalty": 4447, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1722838, + "revocationReason": 1, + "ownerAddress": "Xf2QTdfxbcfsXcKB5k2EBJK5vgzH9a3LUA", + "votingAddress": "Xs4FEFqxz5bXY4ZGRarQF5Cg5WxkkxUNLU", + "payoutAddress": "Xf9JmxNERGFv9Bugq8RQtLDz7FB6zm8r7S", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "efffdcf217ab8668fb575b4b68b9e555d0e2dc956714579cbc998030507410ec", + "collateralHash": "fc2b09a5765b534226cf0835b5dd2ca64c183c45006ff741fd7e3e42b75fc539", + "collateralIndex": 1, + "collateralAddress": "XhtcBafZRybiDiApYMC2etFLDjp4vztNP9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.59.131:9999", + "registeredHeight": 1669097, + "lastPaidHeight": 2126005, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdQp1QV27Ehep1un1tDXTp552eg6zy2TAP", + "votingAddress": "XqVFsJnTkjrcEfxArfV7M2anUYwFqfkcP1", + "payoutAddress": "XeGsys8j2T1n6eKsvHuxzNkJsij7RfTcv9", + "pubKeyOperator": "0bf4f5ff2c81fd949745ac6b7d3a4727266d2f72933c1ad936ad555df6f0bdd9cd7f206836a667c648981de212ffce97" + } + }, + { + "type": "Regular", + "proTxHash": "db6fbedc75d6acd52b505d9f553716255c8e25b434f8df211a190bc17dd7e4ff", + "collateralHash": "5ba1651c0dccc111d04549df57cfc371d2e2979fa7c304b7ff77b65bd78b8ab2", + "collateralIndex": 0, + "collateralAddress": "XvwJPsP5ppGjR8WRujYDDcYZfZ2qoFaAM4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.38.48.7:9999", + "registeredHeight": 1669536, + "lastPaidHeight": 2127493, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1983218, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcmPq1Zrizji3qLGmvDG9sJrwuj4g9mcWr", + "votingAddress": "XcmPq1Zrizji3qLGmvDG9sJrwuj4g9mcWr", + "payoutAddress": "XmjC9hAGtKJELSzvJHTba6drP8t5yEyFp8", + "pubKeyOperator": "073bfaf7732da66b89c1794590873d10bf85640b018e1ab43017fc5777f2c891cedf29584aaffa0b68568b256d49a8f9" + } + }, + { + "type": "Regular", + "proTxHash": "aadd2eac24d6cc9a0b439d3c9d5483b0ed64ebda21786760bb375efacd6e2a67", + "collateralHash": "994fb463bf64fcb89508771eaeaf5516d6c19676b0f69ef4387c6f27b3449975", + "collateralIndex": 1, + "collateralAddress": "Xcw8k6VgVakoMmXJaagxRcC1KY8SbyU3vo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.89.115.54:9999", + "registeredHeight": 1669655, + "lastPaidHeight": 2126427, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XypPeShrFFBBCSC6rowr5LwJFiyu1KNM7Q", + "votingAddress": "XuxL4rx5HVUhWp4VznweYxC8wdb33N97Kz", + "payoutAddress": "XdRhRQw9pJ7agxULSukCqAYEtimhyzXGbF", + "pubKeyOperator": "88995ec4d65e3ce501d80d992a9bf9b6c6578811d14a2af776bdcee17fbed7a6495f9de40f29ab5b4f40c841bef45cf2" + } + }, + { + "type": "Regular", + "proTxHash": "e8986f023edfb81278fcc306cb57c433372ef3fac1ff195738117d4def1c6691", + "collateralHash": "0a203b698c0e0f424ae32fe626c2cd8dfe70295701b33eb50fd5e14faf6736b0", + "collateralIndex": 1, + "collateralAddress": "Xgsmkp5P1w9SehPPEgHMW1rzxWHof43EMz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.150.248:9999", + "registeredHeight": 1670156, + "lastPaidHeight": 2126744, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfcWPKX4g5aXHveXQBAt5mEr7M3tm7jtYE", + "votingAddress": "XgxHagki6PbybTy1GuX47YgVUecwhAFCxs", + "payoutAddress": "XkZZr1KQUAbkkVcWaKGbLGjCKrbdWQVDiu", + "pubKeyOperator": "912d7fb96fd23512406e178e5ddbba9beddaa5ca3de925232ecf11af80db1fc85f513d21146f1e09a296c718d85e0261" + } + }, + { + "type": "Regular", + "proTxHash": "45527aa15ad7a3b2634146b40959920805179439f63fbc847a7fb5854d8cf6dc", + "collateralHash": "dc58c4203c436eaaa7c671b50c784e0755460df26e971cb7180eceb5056c8d80", + "collateralIndex": 0, + "collateralAddress": "XdbT3y8tL6hpkA1d7foa23AT7cBvm7fwFN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.38.153.77:9999", + "registeredHeight": 1671784, + "lastPaidHeight": 2127964, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpr8XHmnN25g1b8p8XXknV7v61BCo5PL3X", + "votingAddress": "Xpr8XHmnN25g1b8p8XXknV7v61BCo5PL3X", + "payoutAddress": "XhYach2aMPA2ciAm64vewvrNcwvuS5ND6w", + "pubKeyOperator": "847a1d139dc7806f209c87d56c345ee6d2e4a15d49c1edb45e3e1539d1c76fb702363844c4e3fc8ac86a5d0c912e3686" + } + }, + { + "type": "Regular", + "proTxHash": "39865264d3b66ca9d26bceef7d3fcd25c5872ad0f453ec8ae9f7026f48720901", + "collateralHash": "4232f6973f96a4c128d0e0013bd47971baa405939f18ed140ea9f9d45bbf4bbd", + "collateralIndex": 0, + "collateralAddress": "XhmMz6HDRNDNyasRUGrtCjk8mGZnLbeyjn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "145.239.20.176:9999", + "registeredHeight": 1673391, + "lastPaidHeight": 2126658, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978739, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxsRFcqLrfkT6Zo1m8umXJmRdM4jicK5ot", + "votingAddress": "XxsRFcqLrfkT6Zo1m8umXJmRdM4jicK5ot", + "payoutAddress": "XtpY2ruHeFbLfALL5sUjTsk7AHHfPQoXZN", + "pubKeyOperator": "1089ece5f54e1ea1eac7c293b54f92fd4f74f11f75af3d9eee16f52fcf3c7c05636de52b3b4d1a07fdc78cd76e419f1c" + } + }, + { + "type": "Regular", + "proTxHash": "56d3d205fe14631dba42666696f3e125206697bedc32cfeb1ca18daed44b12cb", + "collateralHash": "f067cd64bba919d38be2421d94db478455fd9af98c8b51d5fb601b2fa53da273", + "collateralIndex": 0, + "collateralAddress": "Xuz8SYEDuT9kuSBMd5HKZ8m8eUuTYzeb4D", + "operatorReward": 0, + "state": { + "version": 1, + "service": "145.239.237.77:9999", + "registeredHeight": 1675559, + "lastPaidHeight": 2126668, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985866, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcf9dMdua3yLbJtnnRvF5XGrPJWvKUQqN9", + "votingAddress": "Xcf9dMdua3yLbJtnnRvF5XGrPJWvKUQqN9", + "payoutAddress": "XmTbXULJ7BFX7pVXvDo9GzX3g4Tt2kbcRC", + "pubKeyOperator": "9135ea25c7e9c4e8651c856ef39c51390ec7f2d206e0cef29801d1eca7b5a10912d85ba9589553f870207c74edb769bf" + } + }, + { + "type": "Regular", + "proTxHash": "d33f508a3177d10617e79a4ace5c8d039592c1c68fa3c16b1493932f99a84fd8", + "collateralHash": "a1ae82467f01fbcb89174da147238b58bf141fcf8a62bcd22b44046ba289ac2a", + "collateralIndex": 0, + "collateralAddress": "XfEqkwkRtPYw2NLtzW4Mabxw8WXMUUzEV9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.195.47.118:9999", + "registeredHeight": 1676620, + "lastPaidHeight": 2126986, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1982678, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeeTr7MxPuuyzZ6dwAswsnXvncAL4h62a7", + "votingAddress": "XeeTr7MxPuuyzZ6dwAswsnXvncAL4h62a7", + "payoutAddress": "XpVQkWwZfkovQV31Pz5UhHwT81HwD2h8cX", + "pubKeyOperator": "91b405667b3d64c0f7075acf20e10d1f9363e8656d322e5636f5eda3624143beb59e0b9cd97b7bdc84ac24bd86815c77" + } + }, + { + "type": "Regular", + "proTxHash": "9af45707fb53927b2d251fda7e65fab3d68a4b54fd38251069d05821844c02b6", + "collateralHash": "98424d92143ac21a228d5a874cfea3c1ac50db03ca48014b5daa73d138be338a", + "collateralIndex": 0, + "collateralAddress": "XbXsAWVfyMs23D1cL1tyQsKZaWid3rkUAu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.194.157:9999", + "registeredHeight": 1676732, + "lastPaidHeight": 1733976, + "consecutivePayments": 0, + "PoSePenalty": 4467, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1735509, + "revocationReason": 0, + "ownerAddress": "Xb38u1Tf45AsHaYNo5VejG6576488USiDE", + "votingAddress": "Xg59cNkwqPuTckeGe8AGuAZTtQ7ynUbF55", + "payoutAddress": "XtLa9Y49eYuiEZdWDfpfRwGPZ8NdvTWHff", + "pubKeyOperator": "06f972ae1ad09d8b0594217ebaadbd2df561866ce90d2da26f18f678b40fe0f26b5061fe73824416c8f05081c1a962f1" + } + }, + { + "type": "Regular", + "proTxHash": "15adbf1d69693bc5917f816000f8902d8777ae78551908a0d47b63a7fb3585f2", + "collateralHash": "bfeda03e9f97b2e294fdbadc76dd5a64b189b3a6a226cb3051d7c8f2cc97462d", + "collateralIndex": 1, + "collateralAddress": "XjkEXmwN5J3isVcVDiBSpDhFoQs4dVqyLz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.190.24.98:9999", + "registeredHeight": 1677056, + "lastPaidHeight": 2128593, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2007684, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XapAvQD7bAdZJmx4BgQeyFvzLEDMTcmSj5", + "votingAddress": "XapAvQD7bAdZJmx4BgQeyFvzLEDMTcmSj5", + "payoutAddress": "XkRGMaAAsBtwNTzqvR1ZkADPinbgHZSxfy", + "pubKeyOperator": "0c6d6d9055847419cb118dfcb410602539e4ca252b2bc956244f55116a8a012b62ac9d01bf98febe031907b86b5e1183" + } + }, + { + "type": "Regular", + "proTxHash": "d0cb1e7b8a516e302affabeb234a3864890e4e22b39fc872d6861252d6f2ecd6", + "collateralHash": "5378fb5ec1b7abe68723cead25155c4bab9092939dce6466eb4ced32a528a232", + "collateralIndex": 1, + "collateralAddress": "XfLQ9PNfVBNEKuG4kBhtz1tobaTNSGt8Es", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.181:9999", + "registeredHeight": 1677395, + "lastPaidHeight": 2125937, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsRN3xU3f1F6AqRDMB9FhgBkfMyFkAMEtg", + "votingAddress": "XjAQtwZhqkQokkrEHgpXnNby7RABvNXWBD", + "payoutAddress": "XfLQ9PNfVBNEKuG4kBhtz1tobaTNSGt8Es", + "pubKeyOperator": "00394c1240672607984ca3eb991d456691122f6d7a416d97c6ff7776e4154cf56a002a795e0e179ef6df19785e596da0" + } + }, + { + "type": "Regular", + "proTxHash": "731d99bcd08780005e805657bbe5f6b7b3244fd82d2e46dd4108f35969e20709", + "collateralHash": "603709ed63fde8a3ff8a9d2fe9bbc8e395c4159bb6e28eea45e93f701fa487ca", + "collateralIndex": 1, + "collateralAddress": "XsddXAUyB9mtWNkj7fAewjKrfcNLeQ8dP3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.122.40.186:9999", + "registeredHeight": 1677663, + "lastPaidHeight": 2126186, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrNMwzNLGK3nDZhfjV9zHDzFFVuSJKCFxk", + "votingAddress": "XokAEu6663FnXHHF8oRZWgyfi79WutLhjG", + "payoutAddress": "Xg196GWNaPKAud3QktuWABTd7n4wLEK8Dw", + "pubKeyOperator": "8bbe3fcfc4a1d2cef01b05ab66aae131d000d0577cccd68452061ef24e143cfedcc033c2fc47d8f9a2fd60b07f0f135d" + } + }, + { + "type": "Regular", + "proTxHash": "77afacf1e55e721aac2a2e41a87700539fe1b175b1f1aa95351570b52d642b88", + "collateralHash": "e4d128ce7b2ff730d17c7598e70264d0dbac4d485f9ab1a0d478f19c0500556e", + "collateralIndex": 0, + "collateralAddress": "XyPUqr9tc69i6PmPJnhTudZNS8evg38Hxi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.36.238.247:9999", + "registeredHeight": 1677978, + "lastPaidHeight": 2126381, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbtGgRPdNBjHX2HMjdVtf2GYf4G5mU6zYL", + "votingAddress": "XbtGgRPdNBjHX2HMjdVtf2GYf4G5mU6zYL", + "payoutAddress": "Xxx4whopQAGyVaKCiCRPxdfktM4vb26bLb", + "pubKeyOperator": "054aefbf6622ed71ae2c86fa04dbaf2ba786c2b697a51cdd2aac8c14fd05e72fb47cd28c5f966d37a5254186b5c8dd32" + } + }, + { + "type": "Regular", + "proTxHash": "d88f4e3bd578aa8fd527078bb8a107f985d11de03079927b75ffabf093c2cbea", + "collateralHash": "0b9d18877566be35e6fcffaadf0adf09adbf9771505a95a9d750718e98557f39", + "collateralIndex": 0, + "collateralAddress": "XnbipfXVgjw3cf2aCbGJ1LveHyD5BRA1Nx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.110.47:9999", + "registeredHeight": 1678464, + "lastPaidHeight": 1731732, + "consecutivePayments": 0, + "PoSePenalty": 4467, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1735403, + "revocationReason": 0, + "ownerAddress": "XokMhinvKCnPxd5V6ckzufyzUx1iwFQ8iV", + "votingAddress": "XvjbANnrLusshxJ2JKGVLAUKWzjNCjWR74", + "payoutAddress": "XtLa9Y49eYuiEZdWDfpfRwGPZ8NdvTWHff", + "pubKeyOperator": "026d828e39ccb5d0ab5c374fe8753bdb11d183d63d56e6b5a9ab62d505e3fee87065b6c744df59b0cc7e9fcd2b2fe71d" + } + }, + { + "type": "Regular", + "proTxHash": "4f1af60cababec4e3d79557fc9371314eec11e41a171ee2d653912d1a5057be6", + "collateralHash": "508ba81d3200ac67b3f810463a50e5ccc07c1520199d245a6d5019a52e245aef", + "collateralIndex": 1, + "collateralAddress": "XgXwnNKxskPaoBthZNiv4rCLPeXriMWS7h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.101:9999", + "registeredHeight": 1679218, + "lastPaidHeight": 2127234, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsggYhdnSimJ1Cq3BZYLh3g77eS1TTYuec", + "votingAddress": "XrtZSvzJ34CpQNC2uo7hdi25GcshEPpDSU", + "payoutAddress": "Xv71QJocY7RMgQeyFax1bkwTkPYKodDRja", + "pubKeyOperator": "8c05c7233fc90fdd6897b3c1f166d1009b2b586057f8f84db2a47d7abc8cae9ff3212353a1a44ae3555903a275d5e96d" + } + }, + { + "type": "Regular", + "proTxHash": "53ac7a956450e59f169fa40249a101f2fabed1e0a8c35f439a1acc2456b0701c", + "collateralHash": "a4d7f3160b0884f4ba1c37cf49ce4ebff9fcd55ad7b7c74de6d46a7ab73bb9f7", + "collateralIndex": 0, + "collateralAddress": "Xy6546JoAjZZAgNhgpRjNkBitoh86ZEwRr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "162.19.134.119:9999", + "registeredHeight": 1679462, + "lastPaidHeight": 2127403, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeQfVXYAH2viXCUyC4v9dE9Mjuqb1gCLgg", + "votingAddress": "XeQfVXYAH2viXCUyC4v9dE9Mjuqb1gCLgg", + "payoutAddress": "Xfo6ZHaZoYRCrtXggvsLusQTWQzK1bcbF6", + "pubKeyOperator": "063a250826accf1807292d8285b29352b2bb72797d2e416bfa31f5195d0b2caac6e7c55406b8497ba2ed4f3aea7b288c" + } + }, + { + "type": "Regular", + "proTxHash": "b24fa9e8cfa845b2b7cc3e0fc8610b01abfd79ddad34a129b91b8d318d4da6f8", + "collateralHash": "f4a01325f96b52d04f07716745763171d3a650c5c23044412c028c9942531af6", + "collateralIndex": 0, + "collateralAddress": "XujcGtWanUBnVtumqgTX1L4czrTDPRB47t", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.100.84:9999", + "registeredHeight": 1679963, + "lastPaidHeight": 2127903, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrskXXVwf9VHtxsxN3G7ENE51Roc6uSwtH", + "votingAddress": "XyjZw1cnqou2eHBq4HZdB1NTTQQYncSxE3", + "payoutAddress": "XamykfgxJSWqPnxhdjUQxo4p1mgsfPsX1B", + "pubKeyOperator": "040ba3cb165c2444aad28904f3f1416798fa814c0c2a06764ebd5e0d0baa123e7725887be2d8af99fded5791470c77b6" + } + }, + { + "type": "Regular", + "proTxHash": "acc250e9c6aa14583b0ff5e330e763d5a36edde0f4f99f0b86ac63f8952fd3d0", + "collateralHash": "f78646a43c7cee5f24f096d2a406ae5d698c2d49f3032a1e40edc529ab7dd420", + "collateralIndex": 0, + "collateralAddress": "Xy4e4cpwnR5ivzvUNRcWRwwsYP8BzFNc2B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "141.95.91.228:9999", + "registeredHeight": 1680500, + "lastPaidHeight": 2126660, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978739, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqFTHVtMcvrcuuDFJ1XXj59gUj98pEr4kF", + "votingAddress": "XqFTHVtMcvrcuuDFJ1XXj59gUj98pEr4kF", + "payoutAddress": "XrLhsRYrafJTvKTiTR6eAafAhKMfykUwHo", + "pubKeyOperator": "95ebfa6401023810ad9db0689cf0681538229f9a16aefabd5a8d68eed34b1747d154afcec60cba853ab950a18f87fb5c" + } + }, + { + "type": "Regular", + "proTxHash": "c1bad00c50e8d7b0543e83f0600e312fe581cec36df2f1b03689c22b1c43d27b", + "collateralHash": "ed4eeba50b81e3bba1812daf461bca6e234cce50a6c758e493ca8d7f7918f391", + "collateralIndex": 0, + "collateralAddress": "XiyoQLznJatQueVTjJDBjq7K6bwYwSFppc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.89.94.254:9999", + "registeredHeight": 1680659, + "lastPaidHeight": 2128776, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1980950, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkirVzXBfCdAyYuUecRAhg7TSJyRjZTTrN", + "votingAddress": "XkirVzXBfCdAyYuUecRAhg7TSJyRjZTTrN", + "payoutAddress": "XkBiSUpjqxmjn5hDeQorTducQSdGqxrXm9", + "pubKeyOperator": "1048309853f42927428042dbe14dd973d2e78e18afa830d64e60258dafd460b318ce0b610e6b731b0077cb8440aac5f8" + } + }, + { + "type": "Regular", + "proTxHash": "6ad8f93cdf437ffa66d8f5425a5f37e11f6a2b7a09fe29ab9e5eff4e929e5e31", + "collateralHash": "a25d2cca9e811f360205089493020c6e82c3512334a9a26aea14038ca74fdef2", + "collateralIndex": 1, + "collateralAddress": "XoXSUqFBBG5Kwog1fh2SdGyigxuqwy8sMy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.128.109.250:9999", + "registeredHeight": 1680946, + "lastPaidHeight": 2117760, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127634, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeMjTbQCNjpKMEqF3U3GbJLouvn3EvzLZX", + "votingAddress": "XywU1LfdLULLKPRqv979xx3VjnhnwJu7Fn", + "payoutAddress": "XoXSUqFBBG5Kwog1fh2SdGyigxuqwy8sMy", + "pubKeyOperator": "91d1be870ed2b60fe5ef61752a1c54299a2d5f3485d81d80b05913c774bf83c9c4bb4980da5e88de4d091bc52e4d433c" + } + }, + { + "type": "Regular", + "proTxHash": "82acb850f60678b0aba281c57b0189caff10d9c52c8a13a3b216fd6a794b7465", + "collateralHash": "468be7f81ba57a424899591db07214b24003093a5d6374ec36863d508cec0fc9", + "collateralIndex": 1, + "collateralAddress": "XbjQA4sJxiSb4rRaLf5MAYMoZAYd4JKJrC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.15.233:9999", + "registeredHeight": 1681565, + "lastPaidHeight": 2125912, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyoNBmSbJRsgJcsefB9tFi5sUbcqurMj4b", + "votingAddress": "XgLuYs641XwQ8uzNb4nbnLp4nPxw8iHMx1", + "payoutAddress": "XynqTPPfgvfoqt1ckccc2EuzvrNQHyHR4A", + "pubKeyOperator": "141bb94ce6a696e88d709006a651476299eec65948b5237f03dbccf26f4fcd94d73fb98cc950f5a0695afc1ba81f4d7e" + } + }, + { + "type": "Regular", + "proTxHash": "191bfab0a0dbaabd77855a7638aad22574a825936c8793deab47113869874284", + "collateralHash": "8fcd5443db50c1a916967494ecfc90f78b19ec078ec5ef1b92542a8ad7e07b47", + "collateralIndex": 0, + "collateralAddress": "XkzLw3umqANAPoRM5CZcS457UcS5VWP5Y6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.195:9999", + "registeredHeight": 1683452, + "lastPaidHeight": 2126075, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1760201, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwdGho6XjjZ3fsKccEA5ErrfAVAJu33hCQ", + "votingAddress": "XyLGEudi3bUHPmaM9g7MfR34Bfqv5KLXKL", + "payoutAddress": "XkzLw3umqANAPoRM5CZcS457UcS5VWP5Y6", + "pubKeyOperator": "04030d614315516dcfcf2a0be426603c4e08bf33574ae3afbc3f9a0a90f2cb4bc6735b0430a5d084175c261efb0f4544" + } + }, + { + "type": "Regular", + "proTxHash": "5451bc97eca61f9bd705109d54b7d0247de1a916849b6244c8a42e8708778c62", + "collateralHash": "17253246acf3e7490f92e2a069a2054564f48cbe8686abe6cd0cbb63d7ff696b", + "collateralIndex": 0, + "collateralAddress": "Xoy9rPTNPnbZH4YYMMQv7mr55be2Rdk6Eh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.227.38.243:9999", + "registeredHeight": 1684178, + "lastPaidHeight": 2125851, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1836045, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe9qs8nA8pytVnWnUWB1xGJ5drfHA47jZQ", + "votingAddress": "XfoDfBHQ1gqM5hwYCzwbGmxtz1dkqsdqDw", + "payoutAddress": "XpoVxvcJWMKCgFqntbhgjX1g8bxWjnHyQn", + "pubKeyOperator": "0d85498c66f70f541f1b248146efed7691234acec6b942cf5e83a1c4c2479031b57a520f309e3327777cc1630b2c903d" + } + }, + { + "type": "Regular", + "proTxHash": "a9357e703917e431ccc0ab9d6de8f18bc7b29d6ba738419e1da30d0304b89045", + "collateralHash": "78ca74b266ca25f02a88fd8d6d3cea04ad7702f245a298d9ae22816b2d3afac9", + "collateralIndex": 1, + "collateralAddress": "Xty7u7dXKk6Nxr4RUT2EKvFawYpEaE5MKG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.72.63:9999", + "registeredHeight": 1684285, + "lastPaidHeight": 2127935, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJASw779h7zu6tVvTL5XTE9GvX7EX2Yxw", + "votingAddress": "XfH83Agz7XwfmPPNrmkDYJZnS3wAuUga2N", + "payoutAddress": "XqFUJEowM5dxaqbPV4AjhK7fHfR68fR2ue", + "pubKeyOperator": "074f109089daa0b2d90ce44ea34142a346bf8021511b1a2ade5375a129033fe0a63afa04b8add17e63447c6207bbe7e0" + } + }, + { + "type": "Regular", + "proTxHash": "680b9bc91bce520f53d159b1620bd9bb2ffeadf217f22a93ce2699ce35cf716a", + "collateralHash": "496efa6895886821d8537e7adf0983b159fcf05e822664f42a124afbbfadf060", + "collateralIndex": 0, + "collateralAddress": "XeSiPbeJcF4NojVN2hbdanv8kao2R2zFbT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.118:9999", + "registeredHeight": 1684300, + "lastPaidHeight": 2128435, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1759101, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwMnZrdFnK3gQK5fRFBdBoR8Xi7dqygQZN", + "votingAddress": "Xvnva2AbUkLuG21tu5JxddSwwCWSCb22fb", + "payoutAddress": "XeSiPbeJcF4NojVN2hbdanv8kao2R2zFbT", + "pubKeyOperator": "994c10c2b3fe48e78426d11fd7e03162e7d69a55a2e09c28350b0f2c54c4719eca03cb0f761f96aea67ef7e20308d9ef" + } + }, + { + "type": "Regular", + "proTxHash": "195b6c16d5789e68be357c43ef2a69b2c9c3a98ae5c46e02b9e4a31ac1a1da23", + "collateralHash": "e5be81e50701e5819942313fdeb6167a7b859a024398cfde47cef0163723162e", + "collateralIndex": 1, + "collateralAddress": "Xw7xEz2Y8VkkriZJErDzh1CYkUM56gj5zr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.69:9999", + "registeredHeight": 1684648, + "lastPaidHeight": 2128067, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqT6BQfJJJGXEefGHDj1JjejqTQVybn7Gd", + "votingAddress": "XeiXaG41zDHJ1AxzgCKdvRwcKQBDrwBLE4", + "payoutAddress": "XrErgbEfJfU61i9cCsPPpUKfSfp3Wmkri1", + "pubKeyOperator": "11bed9c2c16b0ea08dd385976e6522ebca5e946cfa7824a7c8bad20a3f63a4f1eb40ae7d1b85f8b3585e1211fedc0d6b" + } + }, + { + "type": "Regular", + "proTxHash": "a37020753d7f2bb7028d82fc366b7774702bba2f65a153f95e4ebc3e110ae3f0", + "collateralHash": "3beb26e1554d352ff809ceb20f7bfd6e6b86f03a134f81ec91701597ed016b4c", + "collateralIndex": 1, + "collateralAddress": "Xdu2PKdTst5efpLxuoXn5Sot5Z6B87XYP6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.52:9999", + "registeredHeight": 1685019, + "lastPaidHeight": 2128521, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvrtUAEm5wahQwQCtZcrDD4tk6SBacHjPK", + "votingAddress": "XvrtUAEm5wahQwQCtZcrDD4tk6SBacHjPK", + "payoutAddress": "Xdu2PKdTst5efpLxuoXn5Sot5Z6B87XYP6", + "pubKeyOperator": "1652ef22c52f2bda1cce5275b72a75ddbdbfb05ddd4308bc79ac5862e8e8f495236ab2c59ed88b08f746702730a68807" + } + }, + { + "type": "Regular", + "proTxHash": "54022c3696d84dcee3685d5858b001330e6ad7e4c8babe0c645059e521d06d51", + "collateralHash": "941fc3a0ed9732a7b1c2e8e282b53f2e58d5c65032a75f88a52efee3d61211ea", + "collateralIndex": 1, + "collateralAddress": "XwdxteAGwahpS1ic3hzq4gJsv3epzbBp1X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.148:9999", + "registeredHeight": 1685051, + "lastPaidHeight": 2125817, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2102843, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuEHaKHgWLW6HSNhdztVAFxo5bJXWWJfLu", + "votingAddress": "XuEHaKHgWLW6HSNhdztVAFxo5bJXWWJfLu", + "payoutAddress": "XwdxteAGwahpS1ic3hzq4gJsv3epzbBp1X", + "pubKeyOperator": "08873848ec595afc2f468792fdc757a299efd8158697a39740486cde19f6a893c4ec7096f43927349ffb22a5e75855b7" + } + }, + { + "type": "Regular", + "proTxHash": "4c681bcdbf40fe443ee7b9cd2bb420cc94b40347eb578518667512d928b1e81d", + "collateralHash": "92c39d9a82703e7d8142746478a9c5f57052cc497094ca20a86ea2de5f5dda0a", + "collateralIndex": 1, + "collateralAddress": "XmaPu4pe52TZGyHJEfrRHb829Nm8jM2o9C", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.158.111:9999", + "registeredHeight": 1685479, + "lastPaidHeight": 2125737, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsiq2CZX5YRCCWDuezmnawJERK9pkjwapL", + "votingAddress": "Xc3VCUpKevsJd5afMqNMDJtN6vfEcj7UEK", + "payoutAddress": "XdE4XpGBDYJpLmfQRdP58V7RdFsbBALp1U", + "pubKeyOperator": "96b7e4f9ca9af7d1b881447ab40b81d1204226db7942f9ecd8631429b232f2c362817a55e691968a5ad13f5c827891b2" + } + }, + { + "type": "Regular", + "proTxHash": "51ccbcd029613c166ee37f9a5c5485a78524e3c4160f9c4957551f905e1d1a32", + "collateralHash": "ee7c864821eae88bff881a42f825acb6847c05cfbab758c05a8be7399a4beb3f", + "collateralIndex": 1, + "collateralAddress": "Xm3obRjydMPaU4DXbYj3GwCDPXV1aezHqB", + "operatorReward": 65, + "state": { + "version": 1, + "service": "49.13.209.157:9999", + "registeredHeight": 1685982, + "lastPaidHeight": 2127379, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118178, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrgjB5yxzLZnVYK1iziz4TKNs8gFpY2XFW", + "votingAddress": "XchsKkAhLCkGXc4tKghXitBJGhzj86mFSd", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "1112026674ac425ad312b368903b1bc60101928719b4e51bd821746c5dc1094e6e0cb057b4a5e17578fd278d94780248", + "operatorPayoutAddress": "Xy1amte6e6YqXnLjaRjudxojo4h9kBcwz1" + } + }, + { + "type": "Regular", + "proTxHash": "68b87ed8e158d358873307470e5f5ebd77df1998fd18e942e1555a500a093da0", + "collateralHash": "279580faf0956c6e973b1407d7d0eea3addced7af8f2923f55954a5e0827fc79", + "collateralIndex": 1, + "collateralAddress": "XszEeSRANvUEm6kqJzmhpXM1Jiy8gxRpxE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.254.204:9999", + "registeredHeight": 1686513, + "lastPaidHeight": 2126464, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoHwQWEBPumhY3w845gXavMHC8mH5VUVBp", + "votingAddress": "XrnYymE1ajMvfh5eZbVrwG4khtj99yC91L", + "payoutAddress": "XmEShGnUjX15ctpde2nizQ8MicT9rAL3wq", + "pubKeyOperator": "835b5a112c0132431aab447edaed938c6224e6895d0b57ff847c86d602ef0752c62b1179e586670684eacf6ec420d858" + } + }, + { + "type": "Regular", + "proTxHash": "5acdf4ec4fa90a6d3cc301ac584bb29ea1c8ec8bf9dd6f1ee030cd76c187a6c3", + "collateralHash": "38aa049dae750adb7ef58ca3b9a1eedd0203468cb5a33c174adae2e31b8e0fc3", + "collateralIndex": 1, + "collateralAddress": "XuQBGQRiY3iujpgLMxUtkgaFNi3wkepVnb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.153.207.47:9999", + "registeredHeight": 1686704, + "lastPaidHeight": 2128837, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2102663, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuKrcRs6GKfCMevFk17soSoktivbuwHHg7", + "votingAddress": "XuKrcRs6GKfCMevFk17soSoktivbuwHHg7", + "payoutAddress": "XukCxQKsMr8MKWmW6HthvRC8BRuA8qSJ5t", + "pubKeyOperator": "0f9336c7a3e6318c2476a86903025e399cf0420a6e9aa9d1aa03b311cc343b01d51dcaa940205db81229f8fd272d4d73" + } + }, + { + "type": "Regular", + "proTxHash": "7f6873ffaa7d28aefde1223b4ce01d804735da54d4de6a7f00482abcbe94e358", + "collateralHash": "b53bde80519c044dc8c0a5835b49b7dc420f0f5dd44eb72584e54491c152eaab", + "collateralIndex": 1, + "collateralAddress": "XtgyYMP1YaqpFzEwULCyX5rfLYEYFK3ARm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "116.203.244.222:9999", + "registeredHeight": 1686757, + "lastPaidHeight": 2126463, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2096812, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt2sHybVtK2TW9jErxSD1QhGuceLrTstyN", + "votingAddress": "Xxi8zwJNcvdGmiDaMjne1frVY8bwDZ9tY3", + "payoutAddress": "Xm1zvo6Z7VNrxK8SVQbJFX5rSJM7Y97yzv", + "pubKeyOperator": "81b447e421c7d3c785432a253849a15baec78246a53bc89c1bf0526a89d8b4cb0470f5954b979ecd5c52c0366127371e" + } + }, + { + "type": "Regular", + "proTxHash": "e8abdea010d2ea7a042e37e487dc6048ad1d9907ecc64203253904bb30fa6ecb", + "collateralHash": "1e5be6c8ea694d0c623efa14c1cc773da63bc84cf3d6373395c2e69092a10be9", + "collateralIndex": 1, + "collateralAddress": "XkUnyNf4yciQKEfVZdC3Zjm8DRXmU4FjSr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.56.61:9999", + "registeredHeight": 1687011, + "lastPaidHeight": 2126752, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5wYVWBRFLBMjD2o4KEimqdLub9PZcXLD", + "votingAddress": "Xfux1niXHcopYyqn4rPXtsdsfdTioGCmon", + "payoutAddress": "Xx2ffFD6BTRL1zr75MpENdLLv3UieRoWn7", + "pubKeyOperator": "8f02fff5a80e2175d528c6cc97ee90e1d41f23f3e54398031d4db68ee6819413bc525522360f4095d862dc6850b246e2" + } + }, + { + "type": "Regular", + "proTxHash": "3a91192ba54e4e43f93eba00e864791f89786747c999a872e2b07b672a2ff188", + "collateralHash": "37dec67ff0d3f16440e22b58ce9719031ca49887eee1f03711e0bf99fa82b6ff", + "collateralIndex": 1, + "collateralAddress": "Xyi5wKxqTB9t31TeZx4qiR2PQXFrohmwS8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.198.41.70:9999", + "registeredHeight": 1687020, + "lastPaidHeight": 2126758, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqBWcuQLEV1AjjKQfPip6DBmJduiH4eatW", + "votingAddress": "XuScj7pwz6nR3RGE1Ba7xM5wfjwYxS3Co9", + "payoutAddress": "XbzXRJBFB3aiN2b1GRkC4RHjTKhYrdYFqs", + "pubKeyOperator": "10085cd6070ba1324e6864a32d2ab940278a3731411f9f11b0d02da64292f734bf6b18411353f82a8e8542fb2a9d872d" + } + }, + { + "type": "Regular", + "proTxHash": "a5c050a6b74be5f1dd41e76f740b7bc8043c556b3935fbc14eaded662a187f50", + "collateralHash": "08d406ea88db1977c1f73b96530151786fb45ba1ebbdde8c30e116322422094d", + "collateralIndex": 1, + "collateralAddress": "XmeEZxQmpsGNTk9VAhe2tRy7hAioPKrdwv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.73:9999", + "registeredHeight": 1687845, + "lastPaidHeight": 2127397, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgCZHZkt4GHBasuM6WH7TPnTgcx5V5ytRz", + "votingAddress": "Xbhrpn4AxxrkCVBSr9nVx7Wntc5xrgi1eE", + "payoutAddress": "XnhUFHjBiKbotyvoFpncPvz2Rpf3hnLJku", + "pubKeyOperator": "8af95a884355ebd1b0d603de448db546e5d2411f2f725742fcaecf0e155c7efb31dbb44452cb2e19e3f76793baf0b70e" + } + }, + { + "type": "Regular", + "proTxHash": "dbc9c5c53e80c200c51b14efa75bbf9200b25cbbda2e24e4afade26117aa8aca", + "collateralHash": "a6b3e5ec697ab4baa34f4fa42bc3a9419d32b8153734e1438433dd0aad644a1f", + "collateralIndex": 1, + "collateralAddress": "XutHSRwVDjxGMnTMAPPpCMiHta3DXhyCxW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.217.126.229:9999", + "registeredHeight": 1688200, + "lastPaidHeight": 2126619, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2059687, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwWbcbn9wkufDtYjFX4YXyShYR3Ctk2HhF", + "votingAddress": "XjJVyN1RYGMMeoZJQhmCzwHgvSbBq2PpPJ", + "payoutAddress": "Xctas1KiBHxR56dePjDqhGVYqMhZGsqBjg", + "pubKeyOperator": "85f651895ad58017a0a555c48fafa9c08abfa2bd4ccf45af8e7e9c180194e2d22677ebc1af602fa6b9f148a3398a6bd4" + } + }, + { + "type": "Regular", + "proTxHash": "25da1991bb9d488698dd15a005536df573f2597a78ed0b5f6f443070f73f3e72", + "collateralHash": "705c608fedb111eb0fc44f4d8b8eea7d69db4db7bdd52cbe510cb4cff3c4a023", + "collateralIndex": 1, + "collateralAddress": "Xtc9Mw5FUZtKrcUzxdW23rZGhQXT6atrDz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.208.51.189:9999", + "registeredHeight": 1688208, + "lastPaidHeight": 2127762, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb2QfjP7ckwbS7ryW1Pk1cF58EAB2EUzKt", + "votingAddress": "Xjyx55a3aFkSBWTubCzpasgimEXCZ4nuJX", + "payoutAddress": "XwZBzHMb2MugML7i3ZYJra78MjyyU8M5A1", + "pubKeyOperator": "190cbbb53cbfd66c04f337dcaf1bc09aa122626fcdaa07253eee7273194e681132497917072f0a81682e0e19fad946f2" + } + }, + { + "type": "Regular", + "proTxHash": "1ad069965f261a004999989b21713f1b154a328caf5142ef8292a46119ba838a", + "collateralHash": "163b2b82cb63c3a5e178e97a69c461b62102ddac584e53d8981ac60e39a026c3", + "collateralIndex": 0, + "collateralAddress": "XyGEC4gNqJRM9DeoxpVhG2UTdwrURW2mh8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "35.170.112.109:9999", + "registeredHeight": 1689060, + "lastPaidHeight": 1984145, + "consecutivePayments": 0, + "PoSePenalty": 3975, + "PoSeRevivedHeight": 1986173, + "PoSeBanHeight": 1988394, + "revocationReason": 0, + "ownerAddress": "XpH3bBmUvR8h68zDPXycMaXUFRYYG9n3AW", + "votingAddress": "XtqiiWDXqGio21QjTUK8fFv9vUDdACpaA4", + "payoutAddress": "XgBfi2nUcW7iByUyKwtJ9UGzg2NNneEQBj", + "pubKeyOperator": "8c3b085660be8ddb3bb1b6589399291d13c28a87079eef10f0969b17f5b0c2ac3052768514473ed9b708beaa99aac79b" + } + }, + { + "type": "Regular", + "proTxHash": "4c84f01e1a07d0b91bfdfebcce89e1a06b48673723615134c034dd2d9bf00853", + "collateralHash": "bdd0d8e4edced247e2a6b90a089f8aa847a5d216dd42802b4a2aacca83a3717b", + "collateralIndex": 0, + "collateralAddress": "XvVX47vYbeBYypg8gJm8FLF3f52TjZggQM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.244.131.179:9999", + "registeredHeight": 1690833, + "lastPaidHeight": 2126198, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1847831, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtoYpGAPfYoYkBX5G88USu23VWbptW4BJV", + "votingAddress": "Xt2KJef3of2onyY8FTTe1cqq2HFt2GtQ21", + "payoutAddress": "XvDMjtRBEmMzYnTYFbCS46WSQpt2RdCExd", + "pubKeyOperator": "82b54467c7da75ad857d04a9ee6a7d1a9a1850dcc5138c53ce86fad4a3d4826d6f3be73f5033b21bd1f0929ec038bdb2" + } + }, + { + "type": "Regular", + "proTxHash": "ead7e991f7117afd265c6ea18229dca5877412181ad73ad8a0a027fbae5a605c", + "collateralHash": "cb70bac49f4fc6aed10faf709643cfd8e00481f58f4bc171c87181284695ac50", + "collateralIndex": 1, + "collateralAddress": "XgiossjHj3AGVaNKADkssjGPKatbkGfMUX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.101.37.234:9999", + "registeredHeight": 1690839, + "lastPaidHeight": 2126661, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeZPkCB5EpApWaqQCMJvhbuKxyRJym7PFe", + "votingAddress": "XjrpEiwe4LFkdP5Ukky1bXaMPrhgcGNMFm", + "payoutAddress": "XgwLv3Kqj6MaEyUBTDZwppRzNv7Xj1RqYc", + "pubKeyOperator": "991edfec8cc1b6c732eb67959d17c493497be581402ef2d8168fa3dab96e711a37af1cd15125c3fdf951ad495d58b5a7" + } + }, + { + "type": "Regular", + "proTxHash": "72b0847688c3a6b1da36927f8cc1d07c43d3f5a9e4c5e9648745b2629127608a", + "collateralHash": "acdb8ea3a2bfe1455a6a1fa87d9ae21767962ca446bf1e9782dad44d5aec6bd3", + "collateralIndex": 1, + "collateralAddress": "Xy5BBeVRqwcwoP5t4nr6HHWfg2dGby9jeX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.199.30:9999", + "registeredHeight": 1691208, + "lastPaidHeight": 2128307, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2125131, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xirki8FKsVxTZ8fUv8w49aExC4W13q2qh5", + "votingAddress": "Xirki8FKsVxTZ8fUv8w49aExC4W13q2qh5", + "payoutAddress": "XuACAfC1czdervZAzL76UuYAVE23taQzzz", + "pubKeyOperator": "19703377a21f82ab91afb0d0ef77ebffca765704eb31e3df0b23f9bbc3f75b1edd2e88deb9f40d394cfa6472a3180830" + } + }, + { + "type": "Regular", + "proTxHash": "fc9630c1a23f70c94b19ffbcb1889eca8870d7c1f65a232f7ac28a9557b651a1", + "collateralHash": "bda3899f55ed4a476e91d61defa03cf7bafd51b6727d6ffd245c06230726169f", + "collateralIndex": 1, + "collateralAddress": "Xipt4X3fedk4YDqJ6sjhkbzSQeGhhDaSxh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.203:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2125934, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820968, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjLEd5jcZ1GmqYVYqvPKj8sFRhez7yBeAY", + "votingAddress": "XjLEd5jcZ1GmqYVYqvPKj8sFRhez7yBeAY", + "payoutAddress": "XnVqjKBgRDPgFUF2APeTodwmHRJaqokVWL", + "pubKeyOperator": "19cf33257deb1470a58f294123788239b97d46456db54f61a437a2236646ff75192f8b84cd0a69c17d9e203dd008eaa3" + } + }, + { + "type": "Regular", + "proTxHash": "28e7a809285a690c2f2cba0f1369000cb984774ab78c0c683fe5babb1beb2fb7", + "collateralHash": "3009fd00626ddbe74bc52493d964c85de99c34f0cd0a96b9d925cd72b75cd8d4", + "collateralIndex": 1, + "collateralAddress": "XprGBx1pvjaENyiJY1EvqiwVM4JPrSeXNZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.202:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2125948, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820979, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwfwvAEGRowufKN4HKcw5rwXdQ79d2xG1A", + "votingAddress": "XwfwvAEGRowufKN4HKcw5rwXdQ79d2xG1A", + "payoutAddress": "XsPrfoqzfXARPjQbGA4ebvY1CW7kZu4ECs", + "pubKeyOperator": "188650a881fc99dec27ef70308774dd7abf6a580f42c1c05732b2cc145bf33918fa95f72e8dab7b88c36bf85ea322fa2" + } + }, + { + "type": "Regular", + "proTxHash": "29be36ec41b8e39391d76390c69273c51322ce51b6ea907af11c8fa443813b49", + "collateralHash": "01fff59c94cbf03a3b0d8169c1c850bf1f258bbeb36ef1b224db6b80595b0481", + "collateralIndex": 1, + "collateralAddress": "XuxHcdg56fDMMW8unaEDajxccu5imYxkBg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.201:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2125933, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820968, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxzMdMSGkbYJXuc9Ccbojpe1wrM4sTJiSk", + "votingAddress": "XxzMdMSGkbYJXuc9Ccbojpe1wrM4sTJiSk", + "payoutAddress": "XfXCvqbRjLfS4ZDgz5Hmch8JveApH4oXi2", + "pubKeyOperator": "8b63f059b1e8dcd492a86f9512af2208fde1c99f4c13007f2a6a358f5d5ba2c2090ba19621825144367e23ddc10bc6de" + } + }, + { + "type": "Regular", + "proTxHash": "bc8c58c5c2fb325345321d5c4a984bb30d13b794a23515cf34ed24a940286902", + "collateralHash": "d172c43344710842707b05adc93a21790ae16671c06f13a885281607d345f3ee", + "collateralIndex": 0, + "collateralAddress": "Xdb6mXpfKwG71McmSVM8RBBrcMTqKwbP2L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.206:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2125945, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820979, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtNobd48oe8Q9EK6E7ukvMSE7ojV8SF8oT", + "votingAddress": "XtNobd48oe8Q9EK6E7ukvMSE7ojV8SF8oT", + "payoutAddress": "XndWYBQV6KB6Ccztj5bTVdzyNGT6Wudyr6", + "pubKeyOperator": "8669034d1d188d96eaaa33affdc2983890a33e4f07dd3fe02ca837c2feb2d53b73ec5378dfa6edf180dbe2117591c8f4" + } + }, + { + "type": "Regular", + "proTxHash": "6bac5a5fbfe5e6430b6eb78f947acb3dfecdaa347a56d8a883284a666b75a807", + "collateralHash": "b26aa1d8d34f02fba3a129f3e045bb18e3c5381b7c51e514bc03ce2f69ce38c7", + "collateralIndex": 0, + "collateralAddress": "XeJLRo1yjzNX1Gtp9ZXqRMdg7LXMzS5b89", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.204:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2128450, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdKTKSZy2p7Xgrwak869DVXZEjrrxJxVUT", + "votingAddress": "XdKTKSZy2p7Xgrwak869DVXZEjrrxJxVUT", + "payoutAddress": "XpNj2oKmJZeZLtryDqquMbNykHK9wrrrTH", + "pubKeyOperator": "8e5dd8d75927752b6aea7ee31c98819cfc5526a6e3ba84ce88c07982b8111c0129cf2f0e95a09d02146fc888a4ca1d79" + } + }, + { + "type": "Regular", + "proTxHash": "eaacbf8944cd96f2e273f74444f72025dcf56472726ef420fc39263f379088ae", + "collateralHash": "d7779e133301617465608c9646be1cdf5d717098c192811a4a7658f604d2b08d", + "collateralIndex": 0, + "collateralAddress": "XfHy7VH4jiSwiY8W5ig9xd9rdSGaqh4SYj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.205:9999", + "registeredHeight": 1693152, + "lastPaidHeight": 2125947, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820979, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnWG8S6D4ybfse39pvpqGkg9eXxQyKpmSr", + "votingAddress": "XnWG8S6D4ybfse39pvpqGkg9eXxQyKpmSr", + "payoutAddress": "Xj35S6egA8qDMKH94XZA5Gg5FxEwUNbK6T", + "pubKeyOperator": "07c5655490e676566d7024cc967a0c9de1a74ed0eb23d09735f3c6084ca45e89de36ab916be5b45276b178b77de17c39" + } + }, + { + "type": "Regular", + "proTxHash": "620419714bc9f15815639e61078cadaf497a68583c4a9d2eecffe50ea7d04a07", + "collateralHash": "f9756371c13c019f4c9e702514b2bead8e8273a5aea0d263f03f6c099fec7df1", + "collateralIndex": 0, + "collateralAddress": "XmPwTF8ptpL1FdxhkTFdz64ZM9KCccBHGi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.207:9999", + "registeredHeight": 1693154, + "lastPaidHeight": 2128453, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoZoVXHA1ZkEgA1mPtpoK3b7syvx4mNxzv", + "votingAddress": "XoZoVXHA1ZkEgA1mPtpoK3b7syvx4mNxzv", + "payoutAddress": "Xbhb8N15PnKTmxEJidZJeNiUY6hRTZ7gyj", + "pubKeyOperator": "14ac9897775ce9f14e1c791d22114d527d8909f26c053fbdab39d91d035601c2e4be0e4daf7d6550155d9735a7fb4719" + } + }, + { + "type": "Regular", + "proTxHash": "9bb2df68fc180fd68338f32f4d6faccc8e94ffc9e8be9236e80c80d4d419cd64", + "collateralHash": "76efa8d4d666282a8f3c066190980a69ed8fff3e85062be201ea6484b39acdd9", + "collateralIndex": 0, + "collateralAddress": "Xc3DjXvXYFRsUhJyQ6ZGWg5FMy45f8tLaV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.211:9999", + "registeredHeight": 1693155, + "lastPaidHeight": 2127025, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1695523, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk1U6GqHUrLjAHSR41eHNw8YnAaFiuEaUu", + "votingAddress": "Xk1U6GqHUrLjAHSR41eHNw8YnAaFiuEaUu", + "payoutAddress": "XqZ7yBNEZbQFnp3E3SpKtBKuS3xQ5aYEBT", + "pubKeyOperator": "0ec3cc07abc9478105452505767dd850dae2328e43130985d5e1051fcafa9641ed27c1b3093aee1dee39ab36eb6789d9" + } + }, + { + "type": "Regular", + "proTxHash": "2591acb50280534f948b23228e363a74c7672882005e7ad8afb28e13339b932d", + "collateralHash": "e625d9024384b6699511534228fb0e2a6550a3944cc4ad60d56208610b6104b4", + "collateralIndex": 1, + "collateralAddress": "XsqRq2ezNeRFJSmC3EoiZAp1buHdQAtoQn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.209:9999", + "registeredHeight": 1693155, + "lastPaidHeight": 2128659, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2011158, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqjEceF1LNBL45hQzYQtqPNjF1ZM3JeCRt", + "votingAddress": "XqjEceF1LNBL45hQzYQtqPNjF1ZM3JeCRt", + "payoutAddress": "XuS5DvzEd7rCfgr9HuEdRDazKLG11eZtbB", + "pubKeyOperator": "04c122ca613caa9b37e75cf2eb58d35eabb623537412ac3500070595911b9184cfff5bb59fae19953516ee018a2bfe62" + } + }, + { + "type": "Regular", + "proTxHash": "e46b5899a99800ca675a1a2e039c298418586eb0d2b38eba7be4f874d2d7c445", + "collateralHash": "3f972109bd95bab87c37a98d8d7089941a3e83ba0415aeb4efda71e13add4168", + "collateralIndex": 1, + "collateralAddress": "XxgsqXtZfYzhaUeYmquxNwQkoAC5X2Nww8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.210:9999", + "registeredHeight": 1693155, + "lastPaidHeight": 2128455, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhqZ2FB4WxoDHKs2jBnXpnpPKw9LUPhaGq", + "votingAddress": "XhqZ2FB4WxoDHKs2jBnXpnpPKw9LUPhaGq", + "payoutAddress": "Xmct5eSz37dAQvN8mxtDTxvcHYCgffsuvS", + "pubKeyOperator": "92918cd9276bc709337022f262a45feb93750793f78d292fe51774672bca81cf9c092c35d9800278b4ca249a685bb617" + } + }, + { + "type": "Regular", + "proTxHash": "6d5b2711a032820005bf8a631d445dfea69ce458ddbc6c954e6567ab02b9974b", + "collateralHash": "c00d700e2ef22ee7914f20eacca6ef50af344ca36332faf855ea7c36dd8467c6", + "collateralIndex": 0, + "collateralAddress": "Xf2MRBqpy1iXVfN8xX4ZfSZedPc6eoPjLf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.208:9999", + "registeredHeight": 1693155, + "lastPaidHeight": 2125949, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820981, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwtJv6t478wx8AGzZZ7d5dWWd1oaGfGPL1", + "votingAddress": "XwtJv6t478wx8AGzZZ7d5dWWd1oaGfGPL1", + "payoutAddress": "XjGkY5ebwqaSXKN1iwrsw6J1qtSvTR91ne", + "pubKeyOperator": "10068f152fbb1cce0092ea35083e27ceedc5a25c3a0095a9bd279e3b396bc1df9323a45fef2c08a34a6a9ffa9b4a160d" + } + }, + { + "type": "Regular", + "proTxHash": "110d16a7e4f4eddb9097cd8071455e96a3143293e6734227184e97895ebf98d6", + "collateralHash": "0bcb97f77a57d59fab7edf65b4d3821ea025eb866adf4d1a27f3771215a7d7d1", + "collateralIndex": 0, + "collateralAddress": "XhMQRRp5aUgoDV9SAAiDp64gwcLDioygus", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.212:9999", + "registeredHeight": 1693156, + "lastPaidHeight": 2125957, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1820989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqcdPwBarTqporZGCQXbwQPLQfqCfNwo2p", + "votingAddress": "XqcdPwBarTqporZGCQXbwQPLQfqCfNwo2p", + "payoutAddress": "XpKQssVTFusg3H2YHajNkv9smQMwrYrY72", + "pubKeyOperator": "18ae95b135aa06e06975923b1225b05379f951ecc8ce587d3684b5594c9466ff5d072263d233620790b4be9259373809" + } + }, + { + "type": "Regular", + "proTxHash": "730dc9367c4418c1884ba078a58a6ce7fad6384f9b4cc4f76375c4ed462ae978", + "collateralHash": "030eec1ead7cf708b8b55372e3331173a22ce47910045bae89128a429d718746", + "collateralIndex": 1, + "collateralAddress": "XuDggzyhJUwEU1URBWAwWuwNM6isy4XUBj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.213:9999", + "registeredHeight": 1693156, + "lastPaidHeight": 2128456, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkNLoc2PheqpzKCokp4hJ1YWAtD1ydSoDC", + "votingAddress": "XkNLoc2PheqpzKCokp4hJ1YWAtD1ydSoDC", + "payoutAddress": "XsFFtmBo9QSFKTmoqBH85xE5XMYk4jPf6C", + "pubKeyOperator": "09ba528c79d06a9eb2adbd40a993315c3defcb11984ed6e2b880f4059f7704d21db555679eb7a7205662bddc0f2316e8" + } + }, + { + "type": "Regular", + "proTxHash": "0afa3cc579687af98dc92244f1df15b55d78d2963979fdafb1b063b7ca13a9b6", + "collateralHash": "ae4e923264568ddb1c537ffb41d4120e37df39d5e17f7bc293abdea31e6a0d4c", + "collateralIndex": 1, + "collateralAddress": "Xhffufo7wcFvr5tF4DCMbovz9cAqp9KBX1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "82.211.25.214:9999", + "registeredHeight": 1693156, + "lastPaidHeight": 2128458, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjSRjz2Hq3c5ZAd3ukBA2MaiqCYSu8kecc", + "votingAddress": "XjSRjz2Hq3c5ZAd3ukBA2MaiqCYSu8kecc", + "payoutAddress": "XikwSjJbFugyE97jRxgDafgtLwc3pYB5nz", + "pubKeyOperator": "02da0211ee786876d97b0aa7815e12311fc3d3aaab535e1b2201e178d389ef854a9262ebc58d4e88a334af53f5ceee64" + } + }, + { + "type": "Regular", + "proTxHash": "f893d22d88a64e17124f9802028a454fa7546d45b61ee3e06e51a85c7cac2dff", + "collateralHash": "1ed667fabf9fd387ab7c7efc6dc3f98d413f4a6ad4b9367044418d4c6c01e8f8", + "collateralIndex": 1, + "collateralAddress": "Xir5Hru8sAyGajrn9zbwXdg99jRrK9NDrn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.215:9999", + "registeredHeight": 1693168, + "lastPaidHeight": 2128473, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhz99cN2qxQFqhcqSkB7jUAjRerkB5R4Qq", + "votingAddress": "XpRTnzW4gfSfcU184vikDXBf5TLsGTuWnp", + "payoutAddress": "XfML7tvZrKK2Nd95HsR9ncev9h5UwhJkfA", + "pubKeyOperator": "89a733a3be676b9da9784fe1f34037b9f5905b19090f9ac27aae8b3557219961a0f54f4a5749bc6f0bbea628a28e71f4" + } + }, + { + "type": "Regular", + "proTxHash": "1e773aabfd85d0738b17768e46c642779e7f833adb413433a2ea437a085ea9e0", + "collateralHash": "50f0e27b6199470c64eada611ce257e7c1ca33ef98300c1efd80b432651f0003", + "collateralIndex": 1, + "collateralAddress": "XmimwX75NgtL6wGJ79QmAUYqyfGjZnwa3s", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.67:9999", + "registeredHeight": 1693261, + "lastPaidHeight": 2127275, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1979323, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmifng63sJXuUgsJStQpTSwJ8VDY8KRAoD", + "votingAddress": "XmTQLNTcMT7XxsTqMvoAnXt7WfakCtdpa6", + "payoutAddress": "Xof5AYsyeeuSRx3HmHhN6NisdhX87CjMT5", + "pubKeyOperator": "85aaa1b03e2cfc46924d6ebf492af8ed1c05c619149980b61569f579961e1e070b71b272e7b63db5a7a162b0bd36f0f0" + } + }, + { + "type": "Regular", + "proTxHash": "c38f64477f03f4c17957da50f9297aa15053ee22e721171987fed3aa1ffe76bf", + "collateralHash": "0e679133dd7c950cd49b95ca299d7b6ff67cba9afba7bed1d062661b53f3775d", + "collateralIndex": 1, + "collateralAddress": "Xi8JeaKxHmF8E8AcMybnY6XWd6YN35xANi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.251:9999", + "registeredHeight": 1693272, + "lastPaidHeight": 2127273, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1979323, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfNcgAZeNJMLRLcGwaz2LNo6uuM4UDdnnx", + "votingAddress": "XgXqns6oTYRzCcKEXv8nrGSS4c5sNMaJks", + "payoutAddress": "Xp9hhPTMCF2ZXhJWv7gXAqZtRQytkgTtts", + "pubKeyOperator": "00b8c8c70ff46e0a33ce7c9054cd4d00b56bed0081c02b44c2d9406feedf577288cb19034099fe6bdb50a11ced1123c6" + } + }, + { + "type": "Regular", + "proTxHash": "4166d3060dcfb9df66de266b395d3d00a10a56ee7e20b1605c3c069e96860216", + "collateralHash": "eaad3556e4f4bcdb9deeb82f58ad0482fa11c38b531ef83b59ad0c8e3f2d10a7", + "collateralIndex": 1, + "collateralAddress": "XhJ4QGyzZ9jm3fkY4WZ53WXJkDT8F4KGdR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.213.24.34:9999", + "registeredHeight": 1694346, + "lastPaidHeight": 2127544, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115201, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo2ayB6gzLYS31V4dgd1JZ8tJxR16UU3tq", + "votingAddress": "Xo2ayB6gzLYS31V4dgd1JZ8tJxR16UU3tq", + "payoutAddress": "XnVBWX42z6YTz44DhtweK58Mb5tfQgWnXJ", + "pubKeyOperator": "0a5fe8f7f28eb4d8ed9290b7280810953d1548d19277b24bd63a4f6e945e909638b3bc6f2cc0075496edd18718c0f3a1" + } + }, + { + "type": "Regular", + "proTxHash": "1fa146dd609f7d1f4a46b85b5fc5047213f722539d9ec8f51a99fa64460dc409", + "collateralHash": "043c22143a63180f39c81ab903c4a915be335ea4bbf24990df7448cfa298ee75", + "collateralIndex": 1, + "collateralAddress": "XpafDLzRjyjNU86KGp1ox4ah6CFt6Qan9n", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.54.104:9999", + "registeredHeight": 1694909, + "lastPaidHeight": 2128470, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2109096, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xik8e1pPXPPxaDysYYXfeAxMBQXVKn51ze", + "votingAddress": "XhkQcFsYMaxHHVQJWvLekE2H14SPJYeVX8", + "payoutAddress": "XomYHMMAgYCLsKqocLWeRmi6sw6cFVW9Hf", + "pubKeyOperator": "824fb68c3d8268c335884368934dfef6969f79ee93bbf7d575a37812c9e5a014f02513f9e9bbae3fee5283e9363d0e38" + } + }, + { + "type": "Regular", + "proTxHash": "200a4c237150cb06a3e55af689bdf13cc1f2be2fe5873b0a62b9b970fa4f6996", + "collateralHash": "4fb061bc73a28e6561bf6fa532430f500146e1fda1c8976035cfdddd594ed581", + "collateralIndex": 0, + "collateralAddress": "XoYSbNR55pvsruVWzNWdDB4oDrjHKJ5R6B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.155.148:9999", + "registeredHeight": 1695488, + "lastPaidHeight": 2127155, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xktdden2pkjrK8QB2UeaoC6oPMUVesHVzF", + "votingAddress": "Xp7sk9eN7fn8qNCMyTzV69kRs9f7LPtK9i", + "payoutAddress": "XoYSbNR55pvsruVWzNWdDB4oDrjHKJ5R6B", + "pubKeyOperator": "11d7824e73537c60562754312232d19c98a0a9a593e541388ebc0b3b58cde406edb77dd333b8f15330dee009f3270ff1" + } + }, + { + "type": "Regular", + "proTxHash": "1535d7b317c8b15874152756b644ad4df3128cb44290b2a782c37daf22776f29", + "collateralHash": "a06868360522f449027468f619b8480904b2bc706e49291af7b8d33db2f8fa81", + "collateralIndex": 0, + "collateralAddress": "Xez4QFhVfEcR9YvVAVD5neh3LgLkCFQh6L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.115.236:9999", + "registeredHeight": 1695488, + "lastPaidHeight": 2128796, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyTJVi3pSVQjopAYRMT4MJvzZaGQ8sLXsC", + "votingAddress": "XbwF4EGS7v6RSe9ErsX7bMmR4J4u2WPLj4", + "payoutAddress": "Xez4QFhVfEcR9YvVAVD5neh3LgLkCFQh6L", + "pubKeyOperator": "9799709b1f7d39da3b24df0190ed9a49b17d6d26210508c2cfd1a4a19b7a7776e5ecb71c8f909d06fa596696513fc9d7" + } + }, + { + "type": "Regular", + "proTxHash": "61b9b95e33a0b69cfccf82f6f32f3c914f98c41da83b224fc89bd8b3752b0387", + "collateralHash": "cfc65821b2cdd1d63010733f27dde7e273b6e1db467e337bac51aa76ffa8ee87", + "collateralIndex": 0, + "collateralAddress": "XnevQAAwQYx7FHTCsAUfat9QgHjyDbgZ6g", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.43.103:9999", + "registeredHeight": 1695489, + "lastPaidHeight": 2128823, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr6GXwe955qX33NiiQfx79mHg89Yv6F1Qw", + "votingAddress": "XbN35wRnwnB9w2hVmTgtdeAhuAz2SQ7GLf", + "payoutAddress": "XnevQAAwQYx7FHTCsAUfat9QgHjyDbgZ6g", + "pubKeyOperator": "9412f798bca41e20b91e27292cdeeb36e27a0097f37fe53fe27a0d7ee443fa4fd0ac1b0957f3e021b78220a6dc4fcdff" + } + }, + { + "type": "Regular", + "proTxHash": "d7893c90e604574d6364fe5abfe783d37bfe41e55895feb9fa0810d36fbf4bd9", + "collateralHash": "ebcf2f3deda0acb5725ea9d9e83b480d587119bf922590e530e077f9e7bdf684", + "collateralIndex": 0, + "collateralAddress": "XggN7WywB7ztCg95ffSCWCAM4rYThb9JXx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.157.129:9999", + "registeredHeight": 1695493, + "lastPaidHeight": 2127168, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxJ56qqU7zGNbyBXjHSNE91ZJ3sZFXQ6cB", + "votingAddress": "XqrffgJHpwuJszML4g8Pz9u7hXud6gMW3P", + "payoutAddress": "XggN7WywB7ztCg95ffSCWCAM4rYThb9JXx", + "pubKeyOperator": "087f4df82477c4ae9fa7992bfb1cc713895f03b4f0fe8d658a6184778f41420035111dfd2efa282b93a9aaef28a35cc9" + } + }, + { + "type": "Regular", + "proTxHash": "6f8fb2171d074cfbaadf7c9e1aa98045cb23e88b689a37c93705c8df5656f9bd", + "collateralHash": "d1fa453de9c7daa6c70438e7cb62b3aabf6d90945dd89d246430aa88929626fe", + "collateralIndex": 0, + "collateralAddress": "Xk1kNZP9Eqg8vhWFSmG1Bd7fKYNNNhpHBF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.68.32:9999", + "registeredHeight": 1695493, + "lastPaidHeight": 2126588, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvoYxTLtaLUUdUj2GCcAXnnzYMvn1Zrzyd", + "votingAddress": "XkoECQachXwV77LkdijuUpJdPeeTBTXi6d", + "payoutAddress": "Xk1kNZP9Eqg8vhWFSmG1Bd7fKYNNNhpHBF", + "pubKeyOperator": "0b8fa237857f6c5972c6312c2c7472dfa9aa2d289ea9aca623a80476c6f15fa84c6f9b8d736be8ac7ab06a008d496b37" + } + }, + { + "type": "Regular", + "proTxHash": "9f195b87da7880f5a68e9015aa274dc9800dedf5438a06ac15f822435147b0cb", + "collateralHash": "b868c19e18619f88402a60e8ee3b13a0adddfbbe66a3df44f6dcd03b7bf1d101", + "collateralIndex": 0, + "collateralAddress": "Xm2wVaEaNciVFodZznv8AjgnjT8YfGUvBS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.170.108:9999", + "registeredHeight": 1695493, + "lastPaidHeight": 2125759, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078934, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XidgntSrSTDvfRaES48YJrsUgbKTTVSxLM", + "votingAddress": "Xq9qkZY7oMp63oEzor7Kke9TWaxWv4ph2G", + "payoutAddress": "Xm2wVaEaNciVFodZznv8AjgnjT8YfGUvBS", + "pubKeyOperator": "0d1ee01d8a3f1c4e3e18b1c7e6e9f4161e245bdf3178d09742e81e6113d67ac173edd7dce17c0828fad95568cd565c6f" + } + }, + { + "type": "Regular", + "proTxHash": "1948f3beda90d4aac1ab6bff3c04bf83d5a3862ea7dafc3403152fba90742d83", + "collateralHash": "504dfca756ba73ca67381e279d8d6d6a3761b3e70557b8b49fff3552d9fb9ecb", + "collateralIndex": 0, + "collateralAddress": "XiAJeVSYFq47iNqGgk7YUp8PZhze3KLWNF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.158.128:9999", + "registeredHeight": 1695493, + "lastPaidHeight": 2127152, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvVcFXVfX1xMpLWUuNC9b3eRbNe89XU7jW", + "votingAddress": "XcGhrHTzgjkNmZEguBCK3NBQUqQ6C9vqq7", + "payoutAddress": "XiAJeVSYFq47iNqGgk7YUp8PZhze3KLWNF", + "pubKeyOperator": "84e3c51e50a0e2f36871b43a61fe594450b5f59053093058cc063adb71d04c12fc40400203ec0735733d768ae50ae059" + } + }, + { + "type": "Regular", + "proTxHash": "0927256960d4e34b1fd00ef8d9a5914ee041bf67989ad266015ed7c9887d8dad", + "collateralHash": "7dafb9c7637a4271410b13162d56130b60c3b92d615f9a9689b76b6ac2893847", + "collateralIndex": 0, + "collateralAddress": "Xjsb37bF3fq4gvFo8iumyTxHtkJyWm6MND", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.152.191:9999", + "registeredHeight": 1695493, + "lastPaidHeight": 2127161, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkFW5TtCFKvnmyb5wFPRe1beN12VtQXZkY", + "votingAddress": "XrXVf3vXikcgjr5iA9Syda2NtZmVBqsqgW", + "payoutAddress": "Xjsb37bF3fq4gvFo8iumyTxHtkJyWm6MND", + "pubKeyOperator": "966373ca8bc9de6528cc9e45431f6d3806f6d352913d3a2fdd12e2962a08de74869f03e6e8d7396e8ca349227f3a0340" + } + }, + { + "type": "Regular", + "proTxHash": "180b9e2017d5a33086d02c4cdff0fa8d2814003dfb4046d639c873ca6d5f95d4", + "collateralHash": "6688f62a2b1f2975fbfddfe929bb5cee517f96284d4ed46628c7561eef614076", + "collateralIndex": 0, + "collateralAddress": "XbqmcAMLpZJ6sQ41uJnZqSzynwiYoZ7axE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.126.128:9999", + "registeredHeight": 1695494, + "lastPaidHeight": 2127166, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk3BqRx1goi1bGfqNDDBgMbTPKRcizH6s3", + "votingAddress": "XrU3vasVVW5SYK4dXxLSThtZR5PMwab2Jo", + "payoutAddress": "XbqmcAMLpZJ6sQ41uJnZqSzynwiYoZ7axE", + "pubKeyOperator": "10d4a334b9f032f196660052f911cbbf6a847744df83481ccd833b0e40e55ab4f86be22979ef4f69541d45a8719e27e1" + } + }, + { + "type": "Regular", + "proTxHash": "90f884c76dc5961f02617a23a2ce6183bf94c749a2ab256a644bd513dabb7df0", + "collateralHash": "3e5bac6d7fcfb39e94fe90778697fa9410e8e93c9bdfe20018b161b69f549aea", + "collateralIndex": 2, + "collateralAddress": "Xqai293hTwbQ4ninqXKTRN2BHWgnKtmMyJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.153.210.252:9999", + "registeredHeight": 1696009, + "lastPaidHeight": 2118202, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127633, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwdR5FLdQdBFe7TozQs5f4ccvmdTFQN57i", + "votingAddress": "XwNmG9bR1FxyeDwmiUkPS8X3bA7oph3NFj", + "payoutAddress": "Xqai293hTwbQ4ninqXKTRN2BHWgnKtmMyJ", + "pubKeyOperator": "0390bea817577ff49f6b0524aa344130e3645e319507b40173485bdc2ecc58faf091a2508e53fd346bd02ed590883ad9" + } + }, + { + "type": "Regular", + "proTxHash": "d5b1bc864f4980642b0ad75c48ff2382d31d4e0ea188b663c91721969c6ba1b8", + "collateralHash": "dfd14d070a3a321f3c23ad881a9f136d97581ed12c05bb406859e67e323aa765", + "collateralIndex": 1, + "collateralAddress": "XiXATEN5DC4MBtsgaAMrSisPabPXyLJrHE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.239.39:9999", + "registeredHeight": 1697261, + "lastPaidHeight": 2128440, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeT4RdXcyFvzi4RRV6A8EyWNPQGNu8k6YC", + "votingAddress": "XquF4zgS7Jgtn5GRJVeL27d1KFgE5dbPmW", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "030fa94967533bb1dd6d143b8d7505e187a783d25e0a40ea167309d269ac47f02c66f095bbc6c9d60e9828b5f1427414" + } + }, + { + "type": "Regular", + "proTxHash": "63f6a153ea24962ca403988fb71fc820c881246c1b74f08b8b49004a0a5d8903", + "collateralHash": "a6f82b4a8f18542a59d8e2f4905854fd8a282d29291d3226e676c159fa6395dd", + "collateralIndex": 1, + "collateralAddress": "XbH2zYxxzhshjXu4P5br4zC7uKxBLTkdhm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.65:9999", + "registeredHeight": 1697262, + "lastPaidHeight": 2128441, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnKk22LrUAZrxLwFuyU3eb73qbWhgy3ZuX", + "votingAddress": "Xcfyvhr3cjmGcxobnF2M3ccdWQDKLEyiHx", + "payoutAddress": "Xfj9fRUYYoccLJamuLDvdiZN2H6WXngqia", + "pubKeyOperator": "1352dc502f30a76e8975fb779a58b0587229befaf5dee6d3943d2840288b286fed33ceb79871ed3490c1731f129252c9" + } + }, + { + "type": "Regular", + "proTxHash": "5bf280655cca677f2f91ee8af4a19d1f63378cca1e413c9b3a5d7b229d8887a2", + "collateralHash": "fe7ee3d93373f7c8ff775440f6d23ac43354c58fc8320fad23019369a8645b65", + "collateralIndex": 1, + "collateralAddress": "XvQdfzFnKg9s5zBK5EP6kSnCJDJtnM9Afb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.206:9999", + "registeredHeight": 1697609, + "lastPaidHeight": 2128693, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkH6987MsFNVKRi2oiBroje5gKJXgLHDBq", + "votingAddress": "XeJstVFgs42YDbzK8vWU2vRg7dsEK56pda", + "payoutAddress": "XgBTg29BK2RsM7i42x5f6Xp4F78bs4TzXs", + "pubKeyOperator": "10e16be447ee472c60d1b8b885a6efb8131471fae250c7fc581fb537fdb7e6353dfa901dc92befeeec420cf4ce936df5" + } + }, + { + "type": "Regular", + "proTxHash": "0d2656bf77e57b9de67025328fde969b66f5e92cc0eea7b7c9b6ca88f5675089", + "collateralHash": "d396be27ded7cffc465ff8d7cbdc172175225587d4e97f33d2d03324835d750b", + "collateralIndex": 1, + "collateralAddress": "Xc6GxC3PmYry4auupNLsWyeUq1qVuugo41", + "operatorReward": 0, + "state": { + "version": 1, + "service": "209.250.249.75:9999", + "registeredHeight": 1697744, + "lastPaidHeight": 2126737, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120685, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkgRyy2XSaE4SytNZEdmfHFn5CxdJfFJtR", + "votingAddress": "XhcAm1mCxieSYmCMtvUB7LUPWs4Pamq9ks", + "payoutAddress": "Xo1kpg8WE7s4wEvHF7quuPdJXPi9cbXNJJ", + "pubKeyOperator": "0a1a88512a3c41e57ad762f3ef20337d40b8d2b91b0b4e48910a2ffc799523120998be35fa7877f8b0a4353acb342c56" + } + }, + { + "type": "Regular", + "proTxHash": "59c1b4e2ccf90a6d8b282748bd198e9180840937caf17765cec3e490455d71ae", + "collateralHash": "3010b57c854728d708be92ec7194160de14f285b0b242d9ebf5ec00eb66f0f02", + "collateralIndex": 1, + "collateralAddress": "XsacRnwKHm5YiJcgazGwgxfd7xu3MsN7dA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.245.95:9999", + "registeredHeight": 1697930, + "lastPaidHeight": 2125758, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhQK3gqd3NLPBeE6iEBvNgSg2i3o5qqWY8", + "votingAddress": "Xazt8pwjb6tJYWhQXc3aw3xRF8PK2sQKW9", + "payoutAddress": "Xc464h8KhvHjSDFWqTcFDdKJnsV3sKsKtJ", + "pubKeyOperator": "97c5728c37f74e27b0164244b6fbf9291029477286e1885e4ae37dcda9176587697dc1d7cdd8f1191602fc5b53d56af3" + } + }, + { + "type": "Regular", + "proTxHash": "f10b640b494b5be544f3af48b72021279e4100bbce3cbf3b42364032b67ec481", + "collateralHash": "9b6e6930426254def6ddd6cbc23680096b9354d2a6d3865234d682faeafc56fa", + "collateralIndex": 1, + "collateralAddress": "XdSehUwDc1vLdcFFMTZ6boQ9UkRcWp6md7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.223.26:9999", + "registeredHeight": 1698614, + "lastPaidHeight": 2126344, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnoUq3ABGGNuSJ5usBrxXSozB8gVE8fjLy", + "votingAddress": "XdSbLRJTyJvijNUsWWNE5JNkUwdHgTt5TL", + "payoutAddress": "XqZJwGTfEU3mXTmpBWfDyY4YFqLMvGxHik", + "pubKeyOperator": "153ebb7ddcd0bc70cda811cdc5fb7c4039b8f60fc9924844d8ec33db42a43223c320e9ef1cae1d53079f21ae7a29246b" + } + }, + { + "type": "Regular", + "proTxHash": "6ae15ced830710a6df17da5e857fe2061169198504699e395388fda30cf30a48", + "collateralHash": "0c32d3c78fc63ef5412d52c9767a35f73d124c9b29fcef03ea0b2cbb0febd2ab", + "collateralIndex": 1, + "collateralAddress": "XefoBVPppZAFj2q5fSgRnzv5U2Hrs7ePyp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.138.27.74:9999", + "registeredHeight": 1698620, + "lastPaidHeight": 2126351, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyMjVQ4m71y4CEWQQa9UXcLGdSJ2zuwvrF", + "votingAddress": "XiaNGXCGiwoMLXPtF7GxvtUWwGookGLHNB", + "payoutAddress": "XsopyDDbYuMacHayaHVa8Esn5yeHYTe5aV", + "pubKeyOperator": "0ed31d4ac649a2ce7ecc893217ac29f0b882458fce3c8501ff7cbe0602325bddd102cce8c17e02fff6f818d81649ffdf" + } + }, + { + "type": "Regular", + "proTxHash": "6a19aeb470921a85b70539f9b58dd2f9d523778bbea1dacbc22443b0af3f855a", + "collateralHash": "9ab1019e9553f419acd89178b10cd4d41e1514cf95710d184eebb2f6f690a8e5", + "collateralIndex": 1, + "collateralAddress": "XgEnH1nWuSZqevj8GxBGdAoz5bpgBNYdwU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.91.147:9999", + "registeredHeight": 1699860, + "lastPaidHeight": 2127134, + "consecutivePayments": 0, + "PoSePenalty": 522, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc9iPemY8XJAiuGpdAW5k4VMj5NHDC8JFV", + "votingAddress": "XmWHLvcgTUg1iBfg1zaFQYFrUxNYYYUheh", + "payoutAddress": "Xi9VF3rj4HEZw2W1TKVUSGaQW7GsRPKZ8K", + "pubKeyOperator": "04a7b96075c675eda9595dc7d0243da8797e1b3948d396b04863cd03394fcc3aae73c956bdda3658a594f46f317794cb" + } + }, + { + "type": "Regular", + "proTxHash": "d46f75a83c75924d61e281492aade860e9577010123bb047994f77d8888ac2b5", + "collateralHash": "03ac2ece73a07760f89b41d54234dc91ae64a6d25106d3f3d2392a0dfe4f2cc6", + "collateralIndex": 1, + "collateralAddress": "XjXiW9E3deAK7zaa8gfk5pgbVXj9CrKvPj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.170.80:9999", + "registeredHeight": 1699872, + "lastPaidHeight": 2127197, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqaVn7sDjwtStJiEPFwEhruFS5zuwc6o5E", + "votingAddress": "XpBftkhttjiS7gfBwx4eTLdQaKrBRvpkKJ", + "payoutAddress": "XjJcyb55TnmJuPWunpnuzDi1DZyjzdj5Qi", + "pubKeyOperator": "1289d52d5f8ef304c05286114a3d54f14aceb45c5449edab613fd4a0fe1d44d265f12f18840fb15465c7359b90dc0a18" + } + }, + { + "type": "Regular", + "proTxHash": "c12129bdd5d78740de3a407fc1a57f322835e062d850781d4a42ff7c795eb257", + "collateralHash": "6ac56788cc8890d5ec6f6fe763536825a3cc640d8843b79b0edb3f796a6044b9", + "collateralIndex": 0, + "collateralAddress": "XmJNJzx28nhCpzHKEcvbFYjqk2rScJAGVW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.180.252.62:9999", + "registeredHeight": 1703310, + "lastPaidHeight": 2126743, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv9zMXnNh6r8FtFBxYtGVGLwA5gKUp1nhY", + "votingAddress": "XipSZHkecjXkgU2ts5sx8Mw7hrPsvbyZHd", + "payoutAddress": "XpdiYq4qE8u5uQR5ctbgdNG8kAGgajfoWr", + "pubKeyOperator": "997568ae59a6446cc5eba7a8066253e7738da12b1c6c99cff13b3143d1863de3ecd6e9c295e1c365073b143f5e74c978" + } + }, + { + "type": "Regular", + "proTxHash": "f87e72ae20c3fdf2708f76903323994d86a4e0292c6825fb51e263fc553ed2f8", + "collateralHash": "6a82ed1eb9a25bbfdbb22d5ffc310434b013eadb473ffdc0014650f8609e6aa7", + "collateralIndex": 1, + "collateralAddress": "XiDeEdahfVEhNb4CFxtjud7icnFuu1WuVT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.202.98:9999", + "registeredHeight": 1703452, + "lastPaidHeight": 2127844, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876262, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XejMNvEUxM9xufZTiWS5dXWxDBXKx4bRzy", + "votingAddress": "XeizVB25ukg8h49agYFnEQE31YbSkgXzqN", + "payoutAddress": "XmW7dQbXVFW91ZoKbVs367UZJygQSLyA2u", + "pubKeyOperator": "17370dd45ca5cba60cdfde187fb4ce37dd19c5acb9d2d7cfb9fe9997476eb503a10165f6fa8f72d866f4a0a1102d5658" + } + }, + { + "type": "Regular", + "proTxHash": "b0219f34cc8fccaf88796889a8cd034eac82415cd7f7f3baae950c841857f85c", + "collateralHash": "67161fc631e60f28104f2a4f9aca622cf355da2a26d8afa66c3ef67d645047e6", + "collateralIndex": 1, + "collateralAddress": "XgYwGW8uFoetJ5oNqEkb1qv5Sui4v9Ab7o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.98.124:9999", + "registeredHeight": 1703465, + "lastPaidHeight": 2128005, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121740, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr34STX5BJFhuyKykUAiKDcA1S5JSAnnDY", + "votingAddress": "XhgyJDKttprg94MzMbkfDpYgrHbzyhuQdJ", + "payoutAddress": "XmW7dQbXVFW91ZoKbVs367UZJygQSLyA2u", + "pubKeyOperator": "974b0b9c7cefd7da6c3ea08085c70c35af190d9b923181aa22707fe9245454c8eb9b50036ba21220379963f4ec758f82" + } + }, + { + "type": "Regular", + "proTxHash": "3b2c432a3e1f896d88e1468a1e8a9707f2bcae308ce937a1048b87fb0540b321", + "collateralHash": "67818e7319d2b785fbb6c6b25a7c7262e98b5ee15805ef213a6d4979b1920d48", + "collateralIndex": 1, + "collateralAddress": "Xkhe2xysemCNgWEqz76qvLSQd2j39bBBW4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.46.33:9999", + "registeredHeight": 1703547, + "lastPaidHeight": 2126878, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtJHCA832CE9g2nahYSC6LhoqiftymLqNt", + "votingAddress": "XpaKD6cRyKyEDMkARLkFxiWbrkNf6XGfwd", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "11d46b200414caa15a92df34febdfe0fb4b924ed61bba6cb759023ad2a902cc3b5baff3e056d5bef2805fe40826d15a9" + } + }, + { + "type": "Regular", + "proTxHash": "712355089a257f3ed2fc1b0351e1af60f17e352d0ff88b201bf06e8ebffe64b4", + "collateralHash": "20cf54901ff714ca2ffca43a3c252db7d89d21a7820af38fb0a74cd115405a04", + "collateralIndex": 0, + "collateralAddress": "Xx9nyLVbvSyHg3bCARucuCepATQUthko8J", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.111.245.30:9999", + "registeredHeight": 1703707, + "lastPaidHeight": 2126330, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2113886, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw3BfVhbLa1X8DRZJLTziqTyq6QdstPTQ2", + "votingAddress": "XumSAXVo1UKqyssQZ9g29wXXgAKuCwJhGi", + "payoutAddress": "XdMibVUYEBYvXnVtgFSPU3o7RPsDWKEkC4", + "pubKeyOperator": "8963dc9920ca57fde67ddb71f6496a76c5c02f1737282ab57a0a5acaa76d2eca962c5ff64c23233f3502b5b7c9d3e60c" + } + }, + { + "type": "Regular", + "proTxHash": "018b0376636fdecfab62a02c23d703ee4f4a30cb31542c91e9b372f7a9f100c8", + "collateralHash": "c5d27a55180b88d988ef299166f6d600f5bc197d6be43d9feb606e197b90abfd", + "collateralIndex": 1, + "collateralAddress": "XoMdo4xCYsn7WySfjRrGS76gSyXtinS12c", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.59.244:9999", + "registeredHeight": 1708001, + "lastPaidHeight": 2127045, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcU2QAgX44AQpQ11yZ8PmcSk7khfi7upKJ", + "votingAddress": "XtNa3hc66Rd3ojfoJj7XVNzpeRgx7GkgGG", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "94540e1aeccb7d7a7fef992e73935baf67a0f7c32bf9b7cdcca9d26b3a8e65cec1c8fd9ded6e7273280d7e9d8f06ee9a" + } + }, + { + "type": "Regular", + "proTxHash": "d8cca070f42af9b252d59ded6a588c22ea2ab7840e33635047ddcebb207b0c72", + "collateralHash": "eed540831b4491b052d973943a5ed297c2647712678fb84023b669cc61001a02", + "collateralIndex": 0, + "collateralAddress": "Xdwb9yDq65pkgMwEWz1XDfawakt2kathYT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.198:9999", + "registeredHeight": 1709738, + "lastPaidHeight": 2128484, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbbf3GZCTukQagtM1VkEWiYds9rqWDJUXa", + "votingAddress": "XnYjDYFEQK6UAm7daPz4e9bpHNc9qwMmRg", + "payoutAddress": "Xidy4qemgkx3L648qZHWBCzNJ7BAaQ6FX7", + "pubKeyOperator": "0e062962a5c47095b11224f1c88269937832e2660f3d165d216ab03ba6442e92fd60a4eae834a2de05c45a40f06e5d4f" + } + }, + { + "type": "Regular", + "proTxHash": "86922fb9c8130b4834d021a24efd8e1c2126be6921670bfd7b55dc587fa97f7b", + "collateralHash": "edfc316b9120b83e2aa228768b6782ba6d1367897afc610784afe62468ecd8dd", + "collateralIndex": 1, + "collateralAddress": "XtydPsm3q7s6daBmG1KbwQfgVRptAgQhxX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.125.100:9999", + "registeredHeight": 1709788, + "lastPaidHeight": 2128500, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyuvtZx21Z8w12MkfYNDuJabo645vRn4am", + "votingAddress": "XkdZhtmkQdXQfp7Ux7YtqZCBAjiu3mZpNx", + "payoutAddress": "Xrj93xoFGzrXEBMBHhSvhQp9yqtujakz49", + "pubKeyOperator": "0fc0abc65510e6c1b17b06f3ccec240889cfbbcc0c96e1136f8ed42c4e9f8a28fc09f5671425d66efde55d4260f37bde" + } + }, + { + "type": "Regular", + "proTxHash": "3681187d4209f47c6e430a60866fb1e7dc5e1d59432844541a22b4d1ade91bb0", + "collateralHash": "855b186a00089eca745f9d35d25d67d254b23c59214a4b2076b55506ee78e10e", + "collateralIndex": 1, + "collateralAddress": "XpW3Z1J6A26Lr7uTCoxV3QfPEtD3Z1Ked9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.121:9999", + "registeredHeight": 1711275, + "lastPaidHeight": 2128436, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1759101, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiBTw9Rj1NGgE5aQGsnmNc9DnWgV5shgGG", + "votingAddress": "XsJGuwyxVb1mqmF99kwNfThCgx8tsprFXK", + "payoutAddress": "XpW3Z1J6A26Lr7uTCoxV3QfPEtD3Z1Ked9", + "pubKeyOperator": "0b6b0ee296a3785d5374bbcd830dbb0285ea6eaacaf859b42468d358d427e1a48cb00e2be3e3c6c8a0f41958491ccd5a" + } + }, + { + "type": "Regular", + "proTxHash": "87b0764ed73d2af3b2ef16d147b5eede36bfb82ee61e99dfaf890bb25594ed13", + "collateralHash": "03c9292df50869fc30eb0b97bee9a4c7c9594d4e7b9fe32ff0379f971f4bdf18", + "collateralIndex": 0, + "collateralAddress": "XbLzmvJMGexgAoRVhTAQA6b7wSXMYgj7Zd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.181.133:9999", + "registeredHeight": 1713099, + "lastPaidHeight": 2127911, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XykbUwriTm5Vy92SKtMnmKn3NR7RNC5fMx", + "votingAddress": "XoLsKPmR7ozzeykrBBJzh948w7HgocUS6r", + "payoutAddress": "XbLzmvJMGexgAoRVhTAQA6b7wSXMYgj7Zd", + "pubKeyOperator": "924f4bf8a3ac575c77ed08a0737cf81d3ab36d263158b252dc58ed3b4bb3ac34f1185e501245b87bbbf4a69433e35509" + } + }, + { + "type": "Regular", + "proTxHash": "d73353f3ad3ae5300056d52e0fc4b56afacbe9711161cad612a5710be6b76d99", + "collateralHash": "c49c1e90c49698915875dbd0c9083fe994d7dfe47c553a547890caf3f4e9e233", + "collateralIndex": 0, + "collateralAddress": "XoUgJN12yZtsawTPipEHnxh4CBkKzd3iz3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.111:9999", + "registeredHeight": 1713686, + "lastPaidHeight": 2128217, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XowiE6fHmV9fNA8ZbkZZdPXh8Sz5pBRrue", + "votingAddress": "XvDXYwUU66fSnutkAdfokqzgMSjsQtvydB", + "payoutAddress": "XtRy4wxh4u2wCCmioEyXe9LeG47uQvYsuz", + "pubKeyOperator": "8fa4fac376405404d3e673d2770d6829b87c5fea976a6d40d9e03bce9d6c4bedba3ebf4bf9e719c3cc46bd378e2bfb06" + } + }, + { + "type": "Regular", + "proTxHash": "656c1745f2c4906c784c49e922816099303d706b54946d2822c5bd671f12d0be", + "collateralHash": "f3f08a07e033010e142c6283da043f43fe61b36c3d909e6f9e09e978a96c7c2b", + "collateralIndex": 0, + "collateralAddress": "Xhw3WovAJZsN5jESyeykbguEk4CRXAYJ8W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.5:9999", + "registeredHeight": 1713750, + "lastPaidHeight": 2127757, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976302, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrTtBmTybJeVZisJgAvM8TGKkSrpLGDH1U", + "votingAddress": "XjiR1i1GuWdcL5ce4Y8TrMWXGiQY3cpsBL", + "payoutAddress": "XgWxnqMA7YpPzfJqgC8Gy1GJihhMsk4VeS", + "pubKeyOperator": "09f8a0fa4d99f0370e57996c722a499d1eda917b74655ffdf6507af5fd5ae9f42659ca35d5b6748c8d05b7be56237f22" + } + }, + { + "type": "Regular", + "proTxHash": "57145b85b062eed0ed474268b27dfb76e0d1655616f3208b7bd85a71571034d6", + "collateralHash": "14f628d4bccae964250963c7d44177bc98ac7cba009e439f50b4e2247218fb13", + "collateralIndex": 0, + "collateralAddress": "XghYUtwJ3E9fF5kbTuSETQWEoRVptv9SRm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.228:9999", + "registeredHeight": 1713779, + "lastPaidHeight": 2128405, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfQKkPV9SMgUrnPoccd4ceLv59q1Xvnrn7", + "votingAddress": "Xf5FLctVDkYvdcFJ8zjPp4hVU8CwgySuqX", + "payoutAddress": "XnREJKuiuKyiCtCYgH4N1UuaCt7C69Bf5P", + "pubKeyOperator": "874514e51f7bd2b198968b768ea71128e5be6a2c3b721affd477ef7e387faef4e1713fe1e2180f3f4a0910f4a6532875" + } + }, + { + "type": "Regular", + "proTxHash": "480d9f43cc80f2ca606910cdc77bdb2eeb043f7800f57b4b2087b109a267a32c", + "collateralHash": "19623bf688aac94f011429d92d2f1f360199d3a7404cb68c2c20bee9c7273374", + "collateralIndex": 0, + "collateralAddress": "XqoNpBw5T2uSAj3WSxuJg82ArHmSUPSvxd", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.227:9999", + "registeredHeight": 1713804, + "lastPaidHeight": 2128414, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvmT36Wz4eDrTKBgzvikNjbfdV9vFJw3TZ", + "votingAddress": "XyQqTDKAA8fTJt3P81EaGx7JokBctAdBYf", + "payoutAddress": "XnREJKuiuKyiCtCYgH4N1UuaCt7C69Bf5P", + "pubKeyOperator": "0ff76c386f174097287e7de5181d894ec60fc2fce77b64cb17923285044b0ea71a336e28800660cced6e0fa848291670" + } + }, + { + "type": "Regular", + "proTxHash": "752df201f51fcc4a4c124287f81cb97ad1dfb0f320f7172b73c5e75d3813c671", + "collateralHash": "45a7be22a7679901ab55614da1190ca7c4955463ed584cbd9718c3c3ca809005", + "collateralIndex": 0, + "collateralAddress": "Xqhfx6T4XsTUURL5w7eTbY3aQtj2TKx1TS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.232:9999", + "registeredHeight": 1713828, + "lastPaidHeight": 2126439, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1738696, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XntaYwHkFk5WEDac7VPoKMwCy3F55HrFFY", + "votingAddress": "XmirYLFaGydDoHdJHiUrNDpP3a1cnbATep", + "payoutAddress": "XnREJKuiuKyiCtCYgH4N1UuaCt7C69Bf5P", + "pubKeyOperator": "9948c49f3c5357252c0fa5355deaea37fbd1465c90f67b06108eb3db3049419b7d031d3aa0eb895b6db0762a2d39aad2" + } + }, + { + "type": "Regular", + "proTxHash": "3a754b31d456b9cad9c78258fcc6a0bd75ff7d208f340cabb3415e5fdfb00319", + "collateralHash": "3795c0b5601c99cdc334f9c72a30fa6de45d92a7f804af8f01e0534aafd55b28", + "collateralIndex": 0, + "collateralAddress": "XrJidr7fmy8BK375Ngcg1mYv8kXQz5dwSe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.25:9999", + "registeredHeight": 1714183, + "lastPaidHeight": 2128183, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvsDim49PZvTZ8GARJfWDy5e4H8uuLSocd", + "votingAddress": "XbSbpcaE2EUXPhhN8yuZQviHiyi6C5ofdC", + "payoutAddress": "XtRy4wxh4u2wCCmioEyXe9LeG47uQvYsuz", + "pubKeyOperator": "8c3ef6a93e63e18de055f68b92f3db88e290c90bde9732b7f1dc5b187b5b788f0d430c6d848e5331595393fae53397df" + } + }, + { + "type": "Regular", + "proTxHash": "c7c1b2701986dff19395a53763123bab0521198a2bcdeaa31e57541bc30a460a", + "collateralHash": "5330eff20cab7f8f0dc24426fdc0f2e53190677514cc903caf801dab20fa8036", + "collateralIndex": 0, + "collateralAddress": "XhbNRwX7AYqNzvd6VkwKpFuLAAzsJGfk73", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.137:9999", + "registeredHeight": 1714204, + "lastPaidHeight": 2128704, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuvZknpq6G4fStbBier3Qwg6jzrePqaCXg", + "votingAddress": "XkKdjbd4GmPSodrhYJDNMokHAVY9Hdd4aH", + "payoutAddress": "XmhKUpRnUS5P5QBZZg2D6ywuWLiDpDRcMF", + "pubKeyOperator": "11f539666e7544218b33fc866bdb1ee13d2ab8c179b2be25ef6f0005d9d59852a69d8942ba67a76dae78827f18912941" + } + }, + { + "type": "Regular", + "proTxHash": "5948f76d923fffd2320ec4ddb108293d8d504be84ac4c6ae4b17736c28340945", + "collateralHash": "fff908c203cbcf1e6ac80a9737cc75d6af49807bb4cf067cd53432da0f3b288c", + "collateralIndex": 1, + "collateralAddress": "Xq5M1gzAP8dvw9pUdK2WSXX4YcRqmsmjw6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "54.37.199.237:9999", + "registeredHeight": 1714237, + "lastPaidHeight": 2127923, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2003621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcoE6foLVsdXTkARMz4MdEeTgd5exGNfBP", + "votingAddress": "XcoE6foLVsdXTkARMz4MdEeTgd5exGNfBP", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "86e7781eb401f76e9184f5ed6ba0718700fa7e6ce84bb7dbe58d870af4559ec7fd3ec4bf85514e24177766d2c10247a5" + } + }, + { + "type": "Regular", + "proTxHash": "7809806921bd837b9f1540aa1aa7efbb1a0572c784f4d97e1dccd4d14c33b018", + "collateralHash": "f2038fcac9f7261dee51689d68298edc2d6c5a8ebb888653ea721ec64dee1b10", + "collateralIndex": 0, + "collateralAddress": "XqbRBkJGpmi7RK23okuLS5uXpYJrb9ZjVn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.17:9999", + "registeredHeight": 1715207, + "lastPaidHeight": 2126379, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu9dba5gUL2f1erYcXkF6JC1r4vu9JeUft", + "votingAddress": "XvGogFQwb9ibjgrFd7q22dCeFLWKT5bCt4", + "payoutAddress": "XnREJKuiuKyiCtCYgH4N1UuaCt7C69Bf5P", + "pubKeyOperator": "13d525fcbcd03d6f8cba238ec5874f40671afd2741f9ed151fafcdb5275de937bd2b1d769465c73fe4bcd10b58e5b19a" + } + }, + { + "type": "Regular", + "proTxHash": "3b3401b097d7b1fa49e0e508f8082dcdba2302a0427fdb8fb8355fbfa2866612", + "collateralHash": "e817960aee108df908ccdf563c8588fa2ad7c0e4747f569f0b2e93821bb58d32", + "collateralIndex": 1, + "collateralAddress": "XtRGixzqmH3idJiTpetLMwv2GNBNnTzhA6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.166.44.211:9999", + "registeredHeight": 1716399, + "lastPaidHeight": 2128406, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876789, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpPYYjTXadsf8hciutZrXGVh36RHq26Hdk", + "votingAddress": "XeMGuAx7iqSUJ6dzz6CbMVsNoCAZR2H71j", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "076f7d1ce45ce82200acfaa2ba45297ec22ecb2c784ea8b2b0e85ebcd3d60c30bfed5661c2d5069ea0cc839a167870fb" + } + }, + { + "type": "Regular", + "proTxHash": "d1bc15478d0b5b9b2f95ab858460bab84476c1cdf4010cbb3e365208289b7850", + "collateralHash": "4c748801fef3aab01836a513b28433c0247de9d2dc5c57ac9bcde9d0f7cae795", + "collateralIndex": 0, + "collateralAddress": "XfYyS78GZ4UZgcFHYStZEQu97GjgDQ4gGt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.23:9999", + "registeredHeight": 1716431, + "lastPaidHeight": 2127175, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XofBHqZiPxx8qMxaLQiTbMDfcMqDeDZ3Xi", + "votingAddress": "Xhbt5FnFizsGZ7rfLzxVzjayniApLPBmJB", + "payoutAddress": "XnREJKuiuKyiCtCYgH4N1UuaCt7C69Bf5P", + "pubKeyOperator": "86b1366ad8e29883a76591b6cad43e3c6448645c485f499405dd8d908cbdded4e0b73fc3a85f8f8de3a2ba418c87aee0" + } + }, + { + "type": "Regular", + "proTxHash": "81ef8269e056cb08de7983185a37afbe1514eedfb6752163186e7c41e2c8157e", + "collateralHash": "eb4af2a5711995d991bd4d573cc1de72dbc61c3338250c903669b42a53b19dca", + "collateralIndex": 0, + "collateralAddress": "Xx4iP9sTf52zZGkwekKHGPCJiVfGsEKPFP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "108.61.117.249:9999", + "registeredHeight": 1717460, + "lastPaidHeight": 1819588, + "consecutivePayments": 0, + "PoSePenalty": 4424, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1822980, + "revocationReason": 0, + "ownerAddress": "XqWD2y84YDBfkfLwtwLEp6QJHQYizkZ4yB", + "votingAddress": "XdCoWG9RfpYqB4ZgqNBwR9LddRJgkZCktk", + "payoutAddress": "Xh9QnkNRwYJXzkZ2MscUarF1V8TW9RQXXy", + "pubKeyOperator": "137ca75d4e22a6b7d7b7a965a5df5861c1f1265f2b3136d9dba34cdaa982f30039ac7103f48da9e713943a3996f1b2c2" + } + }, + { + "type": "Regular", + "proTxHash": "15f1987af214e2d148af903057548d6d4e983e0784346b3ee9f8856a9fb69abf", + "collateralHash": "dca4e71b4e9066214675705da0d1b6c831fe2a2bf12a708edb4d6e9621bcc7da", + "collateralIndex": 1, + "collateralAddress": "XrhgJ8wJPvBxECJNKM1xZmwDKpKqAiwuwP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.62.196.119:9999", + "registeredHeight": 1718367, + "lastPaidHeight": 2128784, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiPsjyKEw1j6zMMaADE16WWXgDYVpKFQCV", + "votingAddress": "XhUNMZi3dGooAnX998ALVmK263qrYZjKAK", + "payoutAddress": "XrhgJ8wJPvBxECJNKM1xZmwDKpKqAiwuwP", + "pubKeyOperator": "07e8332894a61db65efd48f3e9f4400f14b0e904e9f55c13d7ea45275cc4ecb25627a3a5b33b0ff851d65fd20c6440d6" + } + }, + { + "type": "Regular", + "proTxHash": "1794dc9eacd7e5c35abb72f56df1672ecd4f6986745e92463f958cc9732f4a2c", + "collateralHash": "193258d5e43613fe1df30966d24e1ec939e87eb4b566dd531661e56dac8ed3d5", + "collateralIndex": 0, + "collateralAddress": "Xx2sJvZ32SbZ4oKGbyxxBMbnykQYm9pwE9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.108.150.87:9999", + "registeredHeight": 1719020, + "lastPaidHeight": 2128555, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2116090, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs7zqdbtPsGLF72KzVGqgMtQEZVn1vDfpT", + "votingAddress": "XsihgDs2W22UbrE6DY58YnRPxxcg3NAChz", + "payoutAddress": "XfEoiYYYeRi9zF3BDf7c37uhT9TstPr4RW", + "pubKeyOperator": "846b1ef76fbabf5448e4fe86c7cafbeaf5b1951e586dfcf0d8d2e3e27e375a92a80da82c8790c0a40d03960e36b7f85b" + } + }, + { + "type": "Regular", + "proTxHash": "4f69de48c2f509611265603514da270bbf8b581b3d4733982b32a76c24a19444", + "collateralHash": "b94b0d7a8ae04269c7bf09a74b16a660241bca6bbfdc58e5815cf4cb04d53f3d", + "collateralIndex": 0, + "collateralAddress": "Xs4bpUBR77vHwjPMsSJE9rPkrNGV33eqHD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.254.34:9999", + "registeredHeight": 1719648, + "lastPaidHeight": 2127143, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgxiFV7yMwHf8xw84rRJgwkARxd3RoYU8D", + "votingAddress": "XdRMF3TjxDxuaTaX5Xw9KAG4dxQpcuLyNM", + "payoutAddress": "Xs4bpUBR77vHwjPMsSJE9rPkrNGV33eqHD", + "pubKeyOperator": "12d204cac127c64988bdd46ea845a61751ac79d5afe61e2f0baf08b79a73c09c3a84fe6683be69c32235e186f339177c" + } + }, + { + "type": "Regular", + "proTxHash": "080b38002f7e178bb9ba795a1852c4641ff1e98467bc6e526d8614f9fd8b1538", + "collateralHash": "e1e7e2741093030d2ff765442eead1283581c17ce508e7e23677cc03470047ba", + "collateralIndex": 0, + "collateralAddress": "XtEWmhMPjxLmmxyiJc6mvFzym61oo5w7C9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.144.6:9999", + "registeredHeight": 1719651, + "lastPaidHeight": 2127139, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuKTe8uqAAydqk1MTFvxEmpKvuPtRiSiuV", + "votingAddress": "XgcitM5xZo9gYunfwRdQRBmwV4bZMJBwci", + "payoutAddress": "XtEWmhMPjxLmmxyiJc6mvFzym61oo5w7C9", + "pubKeyOperator": "14b568d3c0441cec9907bc9612fcef99108470e99c901f8f04051aca12ebc2a08596b7561d83154f6fe582794c284fb2" + } + }, + { + "type": "Regular", + "proTxHash": "806f277741d096ef7d1883278606d205a603ea89b89871910e9e16042042ae86", + "collateralHash": "c82e29c1e7b7fc1482b595a441b0e9cdabb05938f4a4a5dc63337cf50ee51972", + "collateralIndex": 0, + "collateralAddress": "Xdk2pZomLGripBbMmubLb2aG7niMwPT2Pt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.77.76:9999", + "registeredHeight": 1719651, + "lastPaidHeight": 2128822, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnoXLdNxUMQ2QJXRHqeT5m6h7xFmCk1nnf", + "votingAddress": "XyM6CqB1wK3YdYY78ohuugpH5j6cmtf5zt", + "payoutAddress": "Xdk2pZomLGripBbMmubLb2aG7niMwPT2Pt", + "pubKeyOperator": "0d578c6cfeeae596ccce10d2093820d8270eff64c093fd92c0fe832fbf9f08f765ba64cf97c18405deb9b6e4e7828fad" + } + }, + { + "type": "Regular", + "proTxHash": "0ae5804e7ce572b46769724e13e840d7e60cd2cd2860a19bdfecfef52f74c0d7", + "collateralHash": "08edfaba3797388dedccf93a47a191b4b4f7d08d91ffe5aecbd9093038bf86e5", + "collateralIndex": 0, + "collateralAddress": "XiZ4gaeWr3dg5DNuEJE3R3Lxj89FJC52Ce", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.123.92:9999", + "registeredHeight": 1719651, + "lastPaidHeight": 2125760, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078935, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgcqUxk7tLsZKmcfkCLMYjy8HBHwDiQuy4", + "votingAddress": "Xn3szDLc5b1SyvEb16qEpG3LnwNn1bWu5k", + "payoutAddress": "XiZ4gaeWr3dg5DNuEJE3R3Lxj89FJC52Ce", + "pubKeyOperator": "980d9cbfe63468e27b06bb20224f9f5a443a3a8d31fd4e7d52412121c5b7b2f6036089eae3dbbf36a1a7fa2fc1de654c" + } + }, + { + "type": "Regular", + "proTxHash": "2c493638dc58d5e1d14d79832d25b8a92536098db4bfb83619b0127af0a94551", + "collateralHash": "34a0dd241eca8af50d49c638b7047a856ac2b3c2ac997fea276ce9d8939cec3f", + "collateralIndex": 0, + "collateralAddress": "Xt7WVH2HPLDq2php55VYvtvjUzWEkp3Zwo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.131.231:9999", + "registeredHeight": 1719653, + "lastPaidHeight": 2128810, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcEBt7BCfK1J5D8AtYtHUqxotqme6QpCpi", + "votingAddress": "Xk2YJmQv5QzUVRYSWBrCVfead4zTMWThP8", + "payoutAddress": "Xt7WVH2HPLDq2php55VYvtvjUzWEkp3Zwo", + "pubKeyOperator": "93963f48e49e92d2fefeb56dba1b1655021d7c093c47cd2de9f06affe6069d17e2d41e5bc700467ea34ff78c36197af0" + } + }, + { + "type": "Regular", + "proTxHash": "de4888a7ee3b1fe154a70f46115a9b7c061ed0e326131d86f654b86052229930", + "collateralHash": "1c244b87f6eeb51127e990d03a15c518da43c83ae25a443e0f6ebb0b3ecb3631", + "collateralIndex": 0, + "collateralAddress": "XwDQgfknzhgY5nyHaPshacijvrRb9V1Ah5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.123.168:9999", + "registeredHeight": 1719655, + "lastPaidHeight": 2126584, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtCMSL5P1m9u6V1BLCm46wWP2Kk4kFWKYh", + "votingAddress": "XiwSHsy2Y4mCkR3nASFse5zpennVvq3qTX", + "payoutAddress": "XwDQgfknzhgY5nyHaPshacijvrRb9V1Ah5", + "pubKeyOperator": "8526ae55259f588847f8c2fc4c793a74571e801fea690ce467b2e355a88c9d25cea289a0ae724b5af1f075b3f4085391" + } + }, + { + "type": "Regular", + "proTxHash": "3ea2422b2d86f9abeaa4e340338eae7f2daec577f40028f4f28af4fdc4f9c798", + "collateralHash": "309e1682d56977c2e05f4853e410dcde67d39a193359655acb10f9d35cbf3589", + "collateralIndex": 1, + "collateralAddress": "XeYtKpmz2fcTAcqvdm49Ror3i1eav53KuW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.197.128.77:9999", + "registeredHeight": 1722277, + "lastPaidHeight": 2128591, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfWfVqZL45tjfa7kBcPkDQuuk2hu7E1xp7", + "votingAddress": "XwiWULmEPC6Pg9diMFxk6dF8bFNh2LcFf3", + "payoutAddress": "XeYtKpmz2fcTAcqvdm49Ror3i1eav53KuW", + "pubKeyOperator": "96f63f2ab3c0ea487282e37b7a31ad46b047566932d7d920a981d738616518ecc63d81bbed100f49642eb7a3f7bf6342" + } + }, + { + "type": "Regular", + "proTxHash": "9978a995672fb6397df7eb97b0e24d0ba7aa489d3dad7edebd98bbf70824f941", + "collateralHash": "dd3cef0eabb8bb7e53fce50e5832f0e3c8b02dde16ba73e2619d8a53e4c440c4", + "collateralIndex": 1, + "collateralAddress": "XqBvWXXmwNskJyPcMK5TaJzG77LADJRWKT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.115:9999", + "registeredHeight": 1723404, + "lastPaidHeight": 2126329, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvudjxS4jG34mjYbyYQEL8GPmHstLdzYSj", + "votingAddress": "XhpAkaWBuBaV5GrnJ9m5ZFEYdob94qkD27", + "payoutAddress": "XqBvWXXmwNskJyPcMK5TaJzG77LADJRWKT", + "pubKeyOperator": "0869d8fedf9732a7c72548b6598e4c0b12c9403b7a149ec062ccbd2256bed946c6195a80f2df71144545eebb07ee6491" + } + }, + { + "type": "Regular", + "proTxHash": "f9d8fbb02e8f909b7922cc34b8259ea6b73dab88738c2af2e02e1ac929ccdd5e", + "collateralHash": "792a9f61479f785be0bae9a65eca24da4b51c5919ebe8e4154d142476cdb0bfa", + "collateralIndex": 0, + "collateralAddress": "XpFu3KFRe9NQwxqonEjqvWzxSmbDU1R8Ut", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.130:9999", + "registeredHeight": 1724950, + "lastPaidHeight": 2127400, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtzAfoEVdM9Z6kFzSq1xkKkEBE4dtCriyf", + "votingAddress": "XvwdQi5NgiVbbfx8XmHMf3UnkF4X8VsYES", + "payoutAddress": "XatXVTo3w1q8QwiJ1Z89UkJERGd3z8iS8z", + "pubKeyOperator": "09c6ec183d9464e2d78ca7e33c0c9891b500b9f06b473e3d3b26584819dd58e8fc091371a076afe08ba0ebe900f3a317" + } + }, + { + "type": "Regular", + "proTxHash": "be740e438347006aa3b68c8961be73ca7f5f90cd7af98787854050befa3cf6bc", + "collateralHash": "52cbb49369c98c951413e08b60b1b31fd8014b339119bc2acc3024fa5a0daa44", + "collateralIndex": 1, + "collateralAddress": "Xt56DXBwqk9XxnYZ4HBfQaAcvuVrPZJrZ2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.41:9999", + "registeredHeight": 1725217, + "lastPaidHeight": 2127602, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnZSMz9YAwUPTtEAAwyngFkeMuxTqMd6DL", + "votingAddress": "XhXaVKWMKX91feHCkfEvzcqbGfRXYZ5omY", + "payoutAddress": "XrzkHxLb1xwyFrw9ZNzhLhj4Scv3U3nKSp", + "pubKeyOperator": "191a2e7e564fe218dc410a01581d0a8ce057da5e0e6ccde7e5c52c46b8951c557a68661d5eac7b5f384c3c96ab369a49" + } + }, + { + "type": "Regular", + "proTxHash": "a8ae7439851693326fe88f80426fe350384fd89287c522089977758e0ea3af0e", + "collateralHash": "22310ba63710741ea469d2f6444c558351d2cd4ff182336cb79376e7a77fe521", + "collateralIndex": 1, + "collateralAddress": "XsF6ThDxyoHDiQNtAG2CU2FstLFtJ3P5HK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "38.91.101.92:9999", + "registeredHeight": 1725641, + "lastPaidHeight": 2117227, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126070, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuS3P1TcvCmiMaJrNkcZZ3zCsxYK5FtTKR", + "votingAddress": "XuS3P1TcvCmiMaJrNkcZZ3zCsxYK5FtTKR", + "payoutAddress": "XsF6ThDxyoHDiQNtAG2CU2FstLFtJ3P5HK", + "pubKeyOperator": "98e400fc2430edf8724a1c4c23ea1d20187ecdaa27d32f41ee51c74151da7c1ca9b95e05c8bae79f1ce6fa6404b5916a" + } + }, + { + "type": "Regular", + "proTxHash": "5eeaa47168de6773f951ec22830c3adf9b583a720fe6ff11332f9ffd60fb2ad7", + "collateralHash": "c116ef9566d84e5968aeb8f7629de07e2b3660b50955f46d098e1c1ae04778c7", + "collateralIndex": 0, + "collateralAddress": "XhWstkA9J56v9p3Xm7b8QFxR9NkzsT1CzM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.21:9999", + "registeredHeight": 1725675, + "lastPaidHeight": 2127989, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhkiHRRogDn19TJ5fnBLPtR2tQua5dr8iv", + "votingAddress": "Xh6E5vNwwnBpGDvLdtbULtFSzNtB5hv1Vf", + "payoutAddress": "XcS5SbV3VtMWtrVJKATEoA4QVeJQCo9x7R", + "pubKeyOperator": "0e10de0ae11b77f8efcb08db3c241b01cde3e3b01366fa6acbdc9192898e5be952a636b0ae3db2dedf8d51347465f4c2" + } + }, + { + "type": "Regular", + "proTxHash": "cf5649c6ba139efc231ab20acb1c13eec508898dd4c3c2e9c0772e2f4a5ac443", + "collateralHash": "3c305633a899035df58931d0bcba15820d777514bbf2b4eada757724f11a120a", + "collateralIndex": 1, + "collateralAddress": "XvyeFB3dxRmnhP7P2w3F186JrfYn1HpdTu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "43.134.180.113:9999", + "registeredHeight": 1725950, + "lastPaidHeight": 2128471, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876879, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdT5sVmBMNv7hJ1Tcmy55t7by4ASc4WRC6", + "votingAddress": "XyWYYf5cFdQzEfoumcAbFpXy7D2vCv2CvV", + "payoutAddress": "Xr4vJHK2rz6CAuTimve8UW6XGfPuFVmPcn", + "pubKeyOperator": "93d686e450dbf1fc6ce876043651ba7bf07e5baa337b25ab650017efbf7f1dce3d2f8e952905e6e0dae75d4d70093ff2" + } + }, + { + "type": "Regular", + "proTxHash": "d36a0ec9b6d7eb2bf41946ed27ca29617708144f89cd8fe9b50e24a6a1eb56fd", + "collateralHash": "d37eeea145bfb2486b95400320b2d0c50099cb91bd43dcbd123ba3918fdea9f7", + "collateralIndex": 1, + "collateralAddress": "Xk4EG8cqAuZgFLdWbuQrH7sdqDDXz1LtxD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.236.93:9999", + "registeredHeight": 1727625, + "lastPaidHeight": 2126475, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XshAoNitaSCWwRBRnoj514hWvDTMRREUr4", + "votingAddress": "XoL6qMYr1g1M3Y2C7f5mAoCERiskyqg27F", + "payoutAddress": "XgWzp5LirZrwHu9f5WGtEd27gyuaThstb7", + "pubKeyOperator": "0eace8a0201ea79ac2cd7d654afaf5ee02d49394d416f1cd9fd0b935cf0dd9da2b375e744c38bfaa42ffe9e47353db7a" + } + }, + { + "type": "Regular", + "proTxHash": "26c3b778040df0b5d2c407ba46a4113604cca6503150fc8c09f13318a620c9f5", + "collateralHash": "908678e7d8f42f4170260cbcf57e93aab3d3e144dde76973db5750d379cdc17c", + "collateralIndex": 1, + "collateralAddress": "Xp5EkNNNbT3AfYoW6fY5RYc1JA4oQwbvX5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.92.66:9999", + "registeredHeight": 1727630, + "lastPaidHeight": 2126482, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XksFryeU4WQBjr83rTmpLVTGVSmh3muNJC", + "votingAddress": "XtpcizXJRy2xrQ5HwCbZdDzxZQvP2dRxwJ", + "payoutAddress": "XtGeRYhVYQVqZk1MqsV3WNamHfcxxTwENE", + "pubKeyOperator": "0dd178dc2bcd994f11e29a7d23a7d4e9b6bb852517a316e37a3e5187f8b58784db5c2a68219598054da5c0b3ae8d5337" + } + }, + { + "type": "Regular", + "proTxHash": "9fdb9dc9fd5b5103fd9961484310a27590d15d94ee4bff67f5b2dfcefbbb7436", + "collateralHash": "62b44e19d38540abff6d467a66cde9377285cca1704bd298fc9aaf5f511d5b18", + "collateralIndex": 1, + "collateralAddress": "Xq8seqLt61qwpHvHjRk8ee513bvid4NJNx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "94.176.235.197:9999", + "registeredHeight": 1727633, + "lastPaidHeight": 2126429, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2066256, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjCwRukKyo8T88Zu4aPmSMqquGExsKSbF7", + "votingAddress": "XwCeq8qLHXage5fXsFx7qrUiYbRsDafe9o", + "payoutAddress": "XqWdzfbLfPSTLdGj1qk3CZuoR9pezXDTuU", + "pubKeyOperator": "9337bb13f2aabc53e50f054f4cc6abd7ba5923903eb47b49ff29ce6a1b90a917d172fd8e31b20f479b309cfaecd5f139" + } + }, + { + "type": "Regular", + "proTxHash": "00e7abe1d2a98c50a924385da4382e0017e40f9834bf0a4e4af44b6c97163aca", + "collateralHash": "6d0c42d7a7e049831c4596d7c69c8a6a2dc13509e3ae06038aa1a0bc10bcfac3", + "collateralIndex": 1, + "collateralAddress": "XgEq6W6wiDPajwgVs2Suikam3Pg1yKxpwK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.223.141.147:9999", + "registeredHeight": 1727642, + "lastPaidHeight": 2126489, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt1dGPmRsBdDc1RD95483nuoJupxRuhETG", + "votingAddress": "XqEez46uWCzcX53MjdKqqSogDCNbwcUr28", + "payoutAddress": "Xb3bKQpCGe6JCvRYjMKHMJ1hkm8asYVqmp", + "pubKeyOperator": "0ae6ca9e838f8b55b9d1c1d3cda0ad0fe0413673eef0d0829ad1425d463632e8da59aba6e389c6b68e163c39156bebd4" + } + }, + { + "type": "Regular", + "proTxHash": "aa9a2528ed43845bd1ff2911b97bc0761313b884bc7d8b4821b4e91ffda81e07", + "collateralHash": "de5a36fdb534c1fc95398b2333c02ea9c401d51bafd2145edcca8220e80bdc72", + "collateralIndex": 1, + "collateralAddress": "XsBC5sPmQTmFz3Qku1yi6ufJ6UCisbeMJh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.223.143.167:9999", + "registeredHeight": 1727655, + "lastPaidHeight": 2126496, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnzHBjnRNRBrwNNUjcj6v2BTdYgeZtr2T8", + "votingAddress": "XrNWFmqNrg8JqVqB82iLodXYQqVDZYXtT5", + "payoutAddress": "XgyhGEEKuTKomTxpePX7GBWyoWJteSGXn1", + "pubKeyOperator": "0efaa416b97d55c0dfb1361d378e6797c75f932722729e702706d1e1226f3ab53b3c05d13c36e972cb043dc6be36280d" + } + }, + { + "type": "Regular", + "proTxHash": "7855dfe920ebd5e23371a1cdcaf211219b69a6aca4edfa97d17647af6b71fee6", + "collateralHash": "4bf66a5e8b2f40f51b5b98be208d05624f0f13078b04695f5dab8f2a29ac1331", + "collateralIndex": 0, + "collateralAddress": "XfqnviLpxKkFhPY3yEM536YnF7TUVuTioS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.161.15:9999", + "registeredHeight": 1727670, + "lastPaidHeight": 2126510, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn2sfaGWTbj9wE5LhdxZXvYS9WaZcZFotW", + "votingAddress": "XwgvoDUqmEungbuHFmzCfto8QaRi6XC48G", + "payoutAddress": "XjE4y97PKUgcQFbpg28MUms5ojUUTNiuFn", + "pubKeyOperator": "9728366710f2a3c9e93dce594fee43182fbddd7006438860f333a17d814c65ef43691d02183efc8c1205b789ddbc708b" + } + }, + { + "type": "Regular", + "proTxHash": "592740873eb20908a14b68ba297e68e0ab9565d3801aa52314930828bb6a5062", + "collateralHash": "6430afbbc546f6c75fec568123491a5bd6384019e906f4515055e7b6e6c4ab48", + "collateralIndex": 1, + "collateralAddress": "XcVD2fSHeKqn1cNntU5gkwPhbVYsNcuHb8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "109.235.69.170:9999", + "registeredHeight": 1728190, + "lastPaidHeight": 2126915, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiXv7CkEcWkPymmSV8YUwzCiEatbH8ZKxY", + "votingAddress": "XnqttBbAos3u2RXsY9z5zYLFityr2eMdjW", + "payoutAddress": "XbkpMjNWJ2MdUVKqLdQdv5qCHc7UfmuPuo", + "pubKeyOperator": "00fd436c07c921e463447b1671c72f2cf0e087c255a66dd9f20ebebcc381f2d593ef069c50b7e817dda34d39842279d8" + } + }, + { + "type": "Regular", + "proTxHash": "bc02134a856c3a13033567c5783a3f76c535bb05dc538478825c9a6e2fc61973", + "collateralHash": "03a8d0b745b3eaf377b0685447a3e9cc382e70fe4452d177c10e80393dd71def", + "collateralIndex": 1, + "collateralAddress": "Xh6HBMdT3NnC9PH5NPuWYcB5Hd5f1THUQx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.229:9999", + "registeredHeight": 1728940, + "lastPaidHeight": 2127496, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtrWDGqPwXgLjrk1Gh9sGjL1X17tcKn5Wb", + "votingAddress": "XqkTDwsfyqyp1EThBf1qANAuZdsjxcCsB7", + "payoutAddress": "Xg1fWiHnXmQTBKiYna7mmdQt26226AtZ97", + "pubKeyOperator": "9251e04a08caefb48c1139482a2e5f0beb695b2b2d0b2250f05af240106fe368b28e96f86a2831858626605856acc1f9" + } + }, + { + "type": "Regular", + "proTxHash": "9d4aed34ff2c5cac11933609a79b35891104695f1debfc0227c0571d1c9a0041", + "collateralHash": "38ed8be00dd77bace3bf5fd42c73cfa66c2d3271ead861680995f5437c0f5859", + "collateralIndex": 1, + "collateralAddress": "XinbCJBCeKRiEfNeuBrHonyf2tJBSsGfZ3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.216:9999", + "registeredHeight": 1729507, + "lastPaidHeight": 2127980, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhWWAAgLs3wno2E9dM82yRf4FLQRHeufHY", + "votingAddress": "XpkMHC3tjBfpCfsTtpaGaWi739Cy9fh7La", + "payoutAddress": "XinbCJBCeKRiEfNeuBrHonyf2tJBSsGfZ3", + "pubKeyOperator": "19464f857c07c15bcf36e89130580ae44a5519fab05a031c73a11846f2809387f5ead76f4ad88c3df0928f49bec53416" + } + }, + { + "type": "Regular", + "proTxHash": "ad73ff40a23aebb20563f0d598a406e294b3f15a2332f3faebdcab126aa0bfdb", + "collateralHash": "edba4cf6a1ba2832943f8b7db252afb018502901494c56b96adbb0bc1ef67f17", + "collateralIndex": 1, + "collateralAddress": "Xp1u8fr4jXeddNrsMkjgA9TNVDZhBB6RLy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.194:9999", + "registeredHeight": 1730004, + "lastPaidHeight": 2126794, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1848716, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcAzLxp4yH192H5nfwKhknVb2q1tucZPYD", + "votingAddress": "XoUJJhe422UoiQn6NJK5XafdndA3K2Ustm", + "payoutAddress": "Xwm4nYnp8hxDcB5Aq9F3NdvN6jJwQWd3uR", + "pubKeyOperator": "8c8b20f919482cf576c172d33fcafefce72314df252ae9fc2487104c35ac5f89b8d1e390d239b478ba3b859046274833" + } + }, + { + "type": "Regular", + "proTxHash": "e681288f030775baaf3514b8eef0fe235fe235aaeecde01c32b742e6cb79b442", + "collateralHash": "77e46edab217b8172a5d5a781c7f7b4094162579bad74247eea272e162e82617", + "collateralIndex": 1, + "collateralAddress": "XfdjdPoiiYprrkwGS6mn55MqZ2i5Y2eNgv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.134:9999", + "registeredHeight": 1730007, + "lastPaidHeight": 2128482, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqcAFLkmyTasb1tncWet8FQh4Q2rqnv1vi", + "votingAddress": "XsX6cPBvMJLkkv8Cuz2oMepqCxRHS4CAcy", + "payoutAddress": "XpSUXuNF8q272Z73G5SyUHCFncyGaSfu8C", + "pubKeyOperator": "00ca402515cc7cc8ae8e69c8f5ac398da686cefeff5ed78556cfe0ab6bc91a67164da7d1a75be2c7f1af24bcf34ce10d" + } + }, + { + "type": "Regular", + "proTxHash": "7bec5ce500d80cfba0ad5e1c2ac54bba349b4242fa2f9188d824b0084291885c", + "collateralHash": "23bd29e5e4cb550b53160f7f201ebb3b38fad0f17769a6f1b3c90455a95b6fc5", + "collateralIndex": 1, + "collateralAddress": "XkZcJ8Dt1WkCqSqEzYXABd36Mwc93LKS5n", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.223.60.121:9999", + "registeredHeight": 1730649, + "lastPaidHeight": 2125790, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw1sYqotv3VcwJ9DRj3j71c7GAtDkxDgov", + "votingAddress": "Ximh44hoAhuN7yXeAUgXTnSXkEubh6muTh", + "payoutAddress": "Xcc3wR7JtNU1UtUwaMjWro86WfCv7dvg7z", + "pubKeyOperator": "906fbe029aca39fc2b529db0e6adfa53ec82c82bf9a627b457f4ee2d5fd104f293e1aa1334c74ae47a7925b230a4847b" + } + }, + { + "type": "Regular", + "proTxHash": "48b5d23f56a7f64a5a7f704ef490b345fbcc498cd970e8884e08f06c8db022ed", + "collateralHash": "57dc0837aa758898f715498fb8e9b72ee45f1be133a71addb09f93b7bf8661ee", + "collateralIndex": 1, + "collateralAddress": "Xobs8QhU5ZcZzduR5NAjfakg6a4CNRZbHU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.156.141:9999", + "registeredHeight": 1730776, + "lastPaidHeight": 2125876, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtkYWuHLxEx3DgU8aEXhzFENT8GUantSJz", + "votingAddress": "Xr5cR3CwiVirw9LBvjiRdZ4pcdX7urbBes", + "payoutAddress": "XmopTkbDuK5HzgistYg1sBCvfgVS7uXs1j", + "pubKeyOperator": "162eeda188efe32e6da82da383602c0f34c0f002e52aa8ee21413e6cb564dc6d8b0b13465c5c0e23e257bdf3f9dd0858" + } + }, + { + "type": "Regular", + "proTxHash": "fc2d4cf3afe935da68a322e2eaf85bff401949b3182c274fed5560201c6905ad", + "collateralHash": "45e1ba626b6995f66dca70d218311efb4ce28a21bba9a74849f27f26f2254a9b", + "collateralIndex": 1, + "collateralAddress": "XqNjagGBt96chCSFLfQZCkqgKsqfzc9ZrY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.8:9999", + "registeredHeight": 1730907, + "lastPaidHeight": 2127925, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876364, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpwR5ruRU9M6Ea551eDurVt81W3Z2iABPV", + "votingAddress": "XdxYiRGVFWufzy8Y8jjpRorVETBCmdEsYr", + "payoutAddress": "XwNFk4Q3HEE4Y91iCEyFj9mTuFwFMP9Dxc", + "pubKeyOperator": "19fd0bd11d717857e9f1abd50dbaf3d54000b9fff555c8135dcf77e6026a8262265020df8c0baa03a83c0ae32fd56416" + } + }, + { + "type": "Regular", + "proTxHash": "0e300b22894ada6393fc7b1c8cea896f17afd398864fd2d0302661b532186683", + "collateralHash": "e65e3da022b3760de0029e434e8d5681a05b654a8fcfff18c475d457dc2aaf3b", + "collateralIndex": 1, + "collateralAddress": "XtSV3D7PnAE5bjDiS2uA7L1q8EQdL3MqvG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.198:9999", + "registeredHeight": 1731991, + "lastPaidHeight": 2127927, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1754893, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnMqwLKaDkcLNngd7omd1jv3qohZiTohDA", + "votingAddress": "XsGgvNJD1BRU6efR21ffYaBKeGPUEr66Da", + "payoutAddress": "XtfwtRNQ9fk4QT9TMf5RnjTBx7nrmmSm81", + "pubKeyOperator": "847c21638356ce9eda48508363a2341105e052c0b8b8d90e574761cc0d83474680e2483230594ffcdf423a044fc382aa" + } + }, + { + "type": "Regular", + "proTxHash": "62d9bc7564f15c172ca8aabce2578ea84869e48f5bf859093ce5cf4ea2f0ca6a", + "collateralHash": "17fdc11a1006817786b18606b4126d61d09f829c07cd01f1e3266bfcb77ab283", + "collateralIndex": 1, + "collateralAddress": "Xib5yuD2K1dArnJ4W2LaQPL3y1MqiJAwEh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.54.96:9999", + "registeredHeight": 1732088, + "lastPaidHeight": 2126955, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgargPqADLxTnHYb4JgdKbUGAVBKVnVK8h", + "votingAddress": "Xd6vxaxb4bVVc2mtdfg1pFKwV3DyTEix6v", + "payoutAddress": "XkJxsiUPsqCSat6ZZwcAN2jBP9wqbeghUY", + "pubKeyOperator": "19e73d954d34567950b5d35f3e28f52a395d69dd34cbfaa9c0d8d51f6c2a749bba5597b9bb6b9c40291b6394578f6636" + } + }, + { + "type": "Regular", + "proTxHash": "f82323a4690736ac63da7040224db731e2fe52d19cb4ff0829620d9e79a3c11a", + "collateralHash": "5465a9ef41e96c95df471f55909d1a553cb8a38bd46821e19f58cb7c412dc184", + "collateralIndex": 1, + "collateralAddress": "XfehswjSfD2AYDAoFCZQiZpUMgixpjpGRW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.196:9999", + "registeredHeight": 1732827, + "lastPaidHeight": 2127560, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqYPG5747iJApqZoK3mcTwJoNL63wrUe4N", + "votingAddress": "XrTkKuqv8iYbxPPeffZNRHoYQ4P7vpxRUU", + "payoutAddress": "XyN7uVPBRVjc6bJhaoEeWcXjeScSA5Yb4K", + "pubKeyOperator": "0c106348d6b3000c8d41d80f2a3ceecb5ef1791fa4b490d439737baec101ca11baf3ab53c27503b808f367f9988c9ff2" + } + }, + { + "type": "Regular", + "proTxHash": "70e4f40bb888326ab3f77d1364ec4fbdfda3a3edca2e43974b51ebc4a24adee8", + "collateralHash": "6b349f26493fb62571ad249f513147437b0fdc4f8a7f8db5340a89c4778bac38", + "collateralIndex": 1, + "collateralAddress": "XrqRuj7gpzqTnL2WjoXx3P52FygwXBcnbo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.91.94.217:9999", + "registeredHeight": 1733490, + "lastPaidHeight": 2127458, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1900282, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcy2cXooVrd5KeM2Lc1KyY2DpRHdgfsiJV", + "votingAddress": "Xcy2cXooVrd5KeM2Lc1KyY2DpRHdgfsiJV", + "payoutAddress": "Xhe3R4VfgvRjZzHH2VKpS8zqHKKzBCFH3k", + "pubKeyOperator": "80ba0b03133ddad81e91ae6866b8f352f82d03351179322b3934e9897e2356ed8a05467e18654fce4ca2649f7874d60f" + } + }, + { + "type": "Regular", + "proTxHash": "24a36a43646b1358258000de2023b864b45e6d6c5c5b30b4a000ef3ef5134fa1", + "collateralHash": "7e775900fef8feada496653faa5a0471c0d482a13bec2f455c4a009d2671adbb", + "collateralIndex": 1, + "collateralAddress": "Xyja3e8v4qhbqKcdWbnc6PUZmyisHV7e4e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.198.26:9999", + "registeredHeight": 1733650, + "lastPaidHeight": 2128611, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119335, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu8YnV6JvVwdomwP6NqVDeohps3MPHL7US", + "votingAddress": "Xy8kh9f5krruuJAWSQ7SPWrJnWBz3VTfFb", + "payoutAddress": "XstrDN4MSQnoYKpDSqEnVppQ4vPJpiPrbk", + "pubKeyOperator": "88224ae1a2a6ed639730e76969d8ca970cbb28e257f1b9e59f8b3c6d9f10e11184036e77bb3b017cafb0c9dda6c0c4e1" + } + }, + { + "type": "Regular", + "proTxHash": "4047e86455a99b077db85231ee2bdfc83ea3df4d1f5c9673765095b379d28f6c", + "collateralHash": "cabd486adc66b55397a90a0711d95e18285607d9cba23d95d6f3b57298ae127b", + "collateralIndex": 1, + "collateralAddress": "Xb95EDPvc3kSGa4WdJzYg8RRgSBL4Dt8fh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.195.116.35:9999", + "registeredHeight": 1735114, + "lastPaidHeight": 2127392, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2046951, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo5k2VsmQPUipYxFhyYJP8MvSW96jFzppP", + "votingAddress": "Xo5k2VsmQPUipYxFhyYJP8MvSW96jFzppP", + "payoutAddress": "XkRGMaAAsBtwNTzqvR1ZkADPinbgHZSxfy", + "pubKeyOperator": "08ad73bdf32eee8335d0e960e68c924a14c04cd13a07f61f8fd878d4b0c87bc560a239af342c50416d1e0bded2eff300" + } + }, + { + "type": "Regular", + "proTxHash": "4618d59354ca53946b1f20f41857e012e9819ce7e42c689daf6c72868b8d9fef", + "collateralHash": "1876964c1bfda20eeb381bf54c75a6d4b870b284ecd3edf4bf117473e4cc3ea1", + "collateralIndex": 1, + "collateralAddress": "XnABKSqCKgUZgUE49HSNMC3dxPvUZcwq5i", + "operatorReward": 2, + "state": { + "version": 1, + "service": "147.182.191.182:9999", + "registeredHeight": 1735711, + "lastPaidHeight": 2126458, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114054, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xms1gTzb8xAfX24VL7BXma2oKKFigujMLK", + "votingAddress": "XcHxTpXbhUSKGw1gyMDAVAjKRq79vsTTpt", + "payoutAddress": "Xj48ZS5jRAjvxPgSK2to1R6UVLmDQU3YGm", + "pubKeyOperator": "064451f17b5898826ba2357f3428ac823a3afc065bce3852ed5a3da151aa35838ddd55993ccaccdeee1bd84c8fe2d66c", + "operatorPayoutAddress": "XwsYT7CZD366XGH9wVwDVzgpHwEqTuiv8s" + } + }, + { + "type": "Regular", + "proTxHash": "6f58d3df274246328dc22a55c6352bc399e7650cd1ab14c349de7300966788db", + "collateralHash": "9ae474751165bbb20c6229932927e3f406b75ac2ada9b8d8ad3950a9412560ef", + "collateralIndex": 1, + "collateralAddress": "Xqn7TGyLJ2z3tBvDZNAKkMcK6LJqsnttyZ", + "operatorReward": 2, + "state": { + "version": 1, + "service": "147.182.210.97:9999", + "registeredHeight": 1735712, + "lastPaidHeight": 2125843, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119776, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvdsLQboLoSu93vKJamEQxku8fCPT9d5Sq", + "votingAddress": "XePbcQRagL1mPvXtmcsgvjiBR5PKYRM61J", + "payoutAddress": "XdL6p5Wzpqq2W4SKZFV7aqarFJJYCkQS1V", + "pubKeyOperator": "894131ba8b284fb90ead5db09ac48f412ee4ac5120c77f84241960861bcb7bb2a457af4d6bdc94b4a6b4ce868f8194d3", + "operatorPayoutAddress": "Xy2Ri1DhE7ZSJarGgp6bgaoQdafUmJVDCM" + } + }, + { + "type": "Regular", + "proTxHash": "34f3652d00b037affa47d1e79ebc0cfde37f1d6dfd2967daef829a15f3752038", + "collateralHash": "52e0e9716e8f208a68e9ba3b002df302b58872203cda21c47db999d3339d308d", + "collateralIndex": 1, + "collateralAddress": "Xid4HhrSJLh8UtCE1zRKc857xKPAHRU1St", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.132:9999", + "registeredHeight": 1735906, + "lastPaidHeight": 2127046, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnKwhJjnuZ1i3yfyHEnhtJWEmzxD7n7gAM", + "votingAddress": "XcASM4kHamdT8a9ZsBbEFF6HV9QLR1G7d2", + "payoutAddress": "Xy9jpJ5aHWCsWzhDzecHHUg8jxcPHo27yk", + "pubKeyOperator": "1999fca81b0b7d831db434b9ecab31a7f0dfab37050af79d8aa93464e1a3f6946bf0c4f36a0dbd506d6ae65036741c3d" + } + }, + { + "type": "Regular", + "proTxHash": "c12b9cadd461e1e501280b9f513be09f2a0993684b19b77211809a4c8d309ee1", + "collateralHash": "bed4451e311d4ec04ad2cccb5fadb4d46aea7af8a348a94df4b0a845be082fc1", + "collateralIndex": 0, + "collateralAddress": "XgNBP552cFnaN4x3GnCJqmi4wLGAPTJeQa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.21.48:9999", + "registeredHeight": 1736372, + "lastPaidHeight": 2127472, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu2nLLB3egMb9aZFugCj7bdJa7ZXWFJKca", + "votingAddress": "Xczj7552vHciqvTP7LDjET7BY8T4hMkCUq", + "payoutAddress": "XoupEkBM717wLAMcZVieTv5eeg2epv6Yf3", + "pubKeyOperator": "11cdc4aab0fb071345a2f0cc16d3421be26fdcfa1272dc4e3134a651de646952eaf2ce6a60f23f1264382bf981641d28" + } + }, + { + "type": "Regular", + "proTxHash": "45e0d7bbb4aa053152f46640a8095e46049493659deef7efb85927537cf18aae", + "collateralHash": "0d352c34ac238bc4ab97bcb01c840338a42cefc7e4d08f0c0254731fc0f1c130", + "collateralIndex": 0, + "collateralAddress": "XgpHeetxdch51W8tQFt2HqCg7ZGc5GK9f7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "165.22.236.90:9999", + "registeredHeight": 1736386, + "lastPaidHeight": 2127491, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkhv83M6w2zBwVEr7vyhqw4sFk1zBeuSZU", + "votingAddress": "Xk76dWoym9AUTh6CuC3iA1rV53XascF6Pa", + "payoutAddress": "XoupEkBM717wLAMcZVieTv5eeg2epv6Yf3", + "pubKeyOperator": "8eedd2c3ba53f0cf6ad4e2a4bdf5d1b85fba8288ff16d146cc1a1c256f39b1d51dda3f758079814f4686c941bec99a20" + } + }, + { + "type": "Regular", + "proTxHash": "b0af8c4ba35d62dd056311fa0c0e0695d295b6896a18cb7f2839670203f4fb52", + "collateralHash": "482eb7b0826225e34874c57e19a619fa514941d2e64c5a372a3c70600c294142", + "collateralIndex": 1, + "collateralAddress": "Xc9jEcv8TZcnzCh9gfCk5QVe4j5DTUYwpb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.128.243.194:9999", + "registeredHeight": 1736452, + "lastPaidHeight": 2127524, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124357, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd3ZkAJ8Ut3ztXR73DBCLrcgvydQZuTt9u", + "votingAddress": "Xd3ZkAJ8Ut3ztXR73DBCLrcgvydQZuTt9u", + "payoutAddress": "XfUXdmrY87e728By3AqnQN7ysK3tkHRJoH", + "pubKeyOperator": "0081e4ac02e777fb31465936e39f1257187e266a16ed0a670ee1dcd4239ae345d581fe06cf2e87a233b054907529ba9f" + } + }, + { + "type": "Regular", + "proTxHash": "c0849d285b5809803d13992edec8119e703e73bff98f417da317155a61a48100", + "collateralHash": "99784f6e1f89eda12c708ac048bd2ed38c8cf0cae1e09ac9329bd630aca1d32a", + "collateralIndex": 1, + "collateralAddress": "Xr65mGdi5bWaEBhxvfTJo98nfAwnvEiT6X", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.127:9999", + "registeredHeight": 1736470, + "lastPaidHeight": 2127563, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsHE7DRdJjEDLSmLRsEharEKtev5pEiUFs", + "votingAddress": "XtdL3dNN8fuPF7J5ppanjS9vgYGZVBuT8V", + "payoutAddress": "XydofwbfiEHs12yJQ38XopGtQ9jrczGAJ6", + "pubKeyOperator": "8e8e11b85e39a3bae5f7ead09f7b5578e7eb6d9a2c23524b2768351698008bcef29e93123f8fd4e03e638fbbd16e7339" + } + }, + { + "type": "Regular", + "proTxHash": "5c237996a54b18ea998167dab89698c047510456e000a2223a4d644e4d08226c", + "collateralHash": "ab4938b652e876f7965d1e2ecdc12baaad4bde9c88990732d7102a5ff9ea3e3a", + "collateralIndex": 1, + "collateralAddress": "XgYPkp6UeMTEtUtaM1cEgW2GdJreFGEBRA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.92.249.64:9999", + "registeredHeight": 1738732, + "lastPaidHeight": 2126467, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg1HSNVQTPg6oGf3ghG9ED2uRx4pnxmqdj", + "votingAddress": "XmXihnQaMrZHhQBK243djnwrQj3LikkYeR", + "payoutAddress": "XmC7grcEWKdVtcNSsPc65gFeobHZg6YRkR", + "pubKeyOperator": "88738969075cb51b6cd31d5ca494f62f0cdeb5e2473a60b54101fc24a72b4f3fcce8f4edced23841ebb342187c8bab0c" + } + }, + { + "type": "Regular", + "proTxHash": "650220452554bb099afc6875e855a2d3a13c653d7f42ef61c15391059b4ee4b4", + "collateralHash": "9c2d14a8978d4875cdfda8f0e1638d3be59d9ae70355d58e0868a5d89baa4558", + "collateralIndex": 1, + "collateralAddress": "Xm2qdENHBpmgos79stX3f8FesCTkK3a9jm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.152.242:9999", + "registeredHeight": 1739232, + "lastPaidHeight": 2126935, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123773, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbrdJViKcCBym2aiYY6De4DrF1HAbKuYjR", + "votingAddress": "Xp4FaUcMxzkEYws7q4eZdJ7pV7apnQMBjE", + "payoutAddress": "XumNzpm748TtdZE1AubwLm2K5FexUZMpvJ", + "pubKeyOperator": "0b8d1d3355a0f37a365d9e0e42410ebe6442e36a0f1ea3c74467d68145870b2c68177867bdbe11b138303482da470e7d" + } + }, + { + "type": "Regular", + "proTxHash": "043905d429eabc849fec92708a7337aed4b18f7fb5fba48cbb0a015d913fc893", + "collateralHash": "70a136b7274c5ee77b367673899c4f492e9e1f7f3484fa9eebce00cf2510c766", + "collateralIndex": 0, + "collateralAddress": "XoWeFvKDA77nkKt7KWQkvWaJe3FiLLcpz7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.248.169.180:9999", + "registeredHeight": 1739236, + "lastPaidHeight": 2127646, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124477, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdxRNP8C98JdsS9aJJRvJCjAP2V7MQrrdK", + "votingAddress": "Xgzw5YUJcQpcjYMnqUWZQpkuqoTqF6pDC7", + "payoutAddress": "XbvH73QXNmrVD58rhSrtFsvJzTk15jsExo", + "pubKeyOperator": "82d34a72d41d963d6b6a98aa09080a8f98ed2cc0acfb7b7d4204de14cf89f120f6f144f3fc30c415a375d79bd40b9fc5" + } + }, + { + "type": "Regular", + "proTxHash": "e473c79726c18cb3f7e0865a2705a91e0993dcd2904b1e088b333a6bd7698bf5", + "collateralHash": "0696f0605dc10dac45eb308105bd9f58422d3cb98da9f048059670de5441d9eb", + "collateralIndex": 1, + "collateralAddress": "XpcwMSPVerzyqaEVRmP2WBK8xeUpr5mdVY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.110:9999", + "registeredHeight": 1739742, + "lastPaidHeight": 2127335, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkLZ2tJEBeN1jJBmTMzUKhSYDcwA9krt6H", + "votingAddress": "XdZS2be7h1NxtLQGLR1JJ6YczUKP5MUfmH", + "payoutAddress": "XpcwMSPVerzyqaEVRmP2WBK8xeUpr5mdVY", + "pubKeyOperator": "978b896ec439635e856aa2ff258af1af52d08c6f3b41db7bc2f097d01624fad691a4f5e5aabf8bd4b8fbda0a3ae42be6" + } + }, + { + "type": "Regular", + "proTxHash": "93b040be3a56605fd1ab32f58f58677585dda482de626c6fd2d71e95d7b3ad06", + "collateralHash": "a590190e3a5b0e663b4a388fd782f2659a3ff2bc72266d70078e3d85e5b542c7", + "collateralIndex": 1, + "collateralAddress": "XwK1Tss4qbCWx3TLMgAtwtQE7ttvEybX6G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.112:9999", + "registeredHeight": 1740237, + "lastPaidHeight": 2127858, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfQuQLs36ZonZtCVtDfobUU6X82VnVYczc", + "votingAddress": "XnEF6cYrXkkCWXYwXTgWiKgaML6R4Zzce8", + "payoutAddress": "XwK1Tss4qbCWx3TLMgAtwtQE7ttvEybX6G", + "pubKeyOperator": "135f473c23f97d9b930f6e257a1602105c4ad4cf5a9f81a8f875777462cee36e3a3ed1eb6082d1c4c1a41165b67878d1" + } + }, + { + "type": "Regular", + "proTxHash": "44f6dde7fcc32a6c2bc83a6845cb0f4074c44fc35ef3605a523632c4a14c028f", + "collateralHash": "1b4f646ed95e6a04c92f67a6236ddc138a16dacaa9fe668e9a303684ece2d36c", + "collateralIndex": 1, + "collateralAddress": "XmvZfTE6RrQobx5a8S4KvrfXFczATA5BXz", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.86.40:9999", + "registeredHeight": 1740755, + "lastPaidHeight": 2128207, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdXmbcnpxHNBLRuTJ5aVaiiqu3K7B8wkNi", + "votingAddress": "XtngPVc1jpTDiQZaYewMSH3WLjMmENiMWL", + "payoutAddress": "XmvZfTE6RrQobx5a8S4KvrfXFczATA5BXz", + "pubKeyOperator": "147060478ba25f392f2274aad80178a64fe5fa038bf4ebfc4af1ecb119ffb9de236b25ccf8e472197c2a0495e6c285ce" + } + }, + { + "type": "Regular", + "proTxHash": "1c458c0b0d51bb1b6be7282ddfc6b7b6e173f4b7cb291f446eba0a67e059fac1", + "collateralHash": "ebcdfc5a5ee9f80883a38825ebb10e758511a9f032471cc0b9f19eb152d81025", + "collateralIndex": 1, + "collateralAddress": "XxWfRfXqRx9f51NTn5gFi2kW63dnyU94DX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.36.40.242:9999", + "registeredHeight": 1740926, + "lastPaidHeight": 2128430, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122133, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnWzpzFUm6Fdw719wZ1vptrpmods2Cbde3", + "votingAddress": "Xru2J3o5YPUyy2z8gpzuuwGkiv2Z4GNfU3", + "payoutAddress": "XxWfRfXqRx9f51NTn5gFi2kW63dnyU94DX", + "pubKeyOperator": "8d90fb5d80d4ce47fa3d46f4eb69c516d7ffce5974938cda8a0055d4e1e4f445251c86b75327e5d776618e29b9c26ddb" + } + }, + { + "type": "Regular", + "proTxHash": "de39d1980a7e9f5c86775f0e0767ac67f8113b74441a635d442f6d09050c11ed", + "collateralHash": "e829aea823d8063d2bcfd742c11d9c8a02f2cfffb8f4cec723c7ad97614d3a8f", + "collateralIndex": 1, + "collateralAddress": "XbJgMoHvwhr6RYdGVXW28qniJ1US2Y31Ez", + "operatorReward": 0, + "state": { + "version": 1, + "service": "70.34.210.105:9999", + "registeredHeight": 1741300, + "lastPaidHeight": 2125813, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119744, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvzrQqTGp6j8EKrhkitDoctiEKMdcRgTay", + "votingAddress": "XqJPFWVGhkyF9cTWrjU2fXeNMYjoPEUJga", + "payoutAddress": "XbJgMoHvwhr6RYdGVXW28qniJ1US2Y31Ez", + "pubKeyOperator": "13d0fbbe1a6812c94aefc2e34d517652115a09de4695deac39a7d34b34f1de302414456352f589de243544bf54adfbca" + } + }, + { + "type": "Regular", + "proTxHash": "eb63f6a09dcc969de242a18dd7fddf8d494dee7fb6c9c841f4a47a52c9923d5f", + "collateralHash": "74e94d67503407b0207a579e8c5597a84f49f63b6e65b5c61c474d2acc48c9bb", + "collateralIndex": 1, + "collateralAddress": "XnhALun5NxMudmkM8wD5aBwFc9TC5TnJEa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.125:9999", + "registeredHeight": 1742043, + "lastPaidHeight": 2126226, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdwrnpzS4hUFoujP3fxBNfoSCPVi2aZriB", + "votingAddress": "XrRcC7L89TjECfkP3hDTu9Jyo9whis9dGb", + "payoutAddress": "XnhALun5NxMudmkM8wD5aBwFc9TC5TnJEa", + "pubKeyOperator": "8c46ad5720fd370f39f126838c0986ad9f1178188a4fb16d9738494dc1c5730da7d36458acee3ffd620bfe392e361b0d" + } + }, + { + "type": "Regular", + "proTxHash": "84623586ec667faaed53174e1252ab26c5283e768cda0d0f9c06a63997b7aaee", + "collateralHash": "3c93786123b908ec05a7e1447cabf07d1b48185fbb4b85e470e83644aabd55ea", + "collateralIndex": 0, + "collateralAddress": "XyPaTtSpWefYJ2YfgofBwhYRHJy1ekQmKx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.122:9999", + "registeredHeight": 1742047, + "lastPaidHeight": 2126231, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfxgVC4phy3ccdzCfpW1RLE9cGgzrMjXrN", + "votingAddress": "XhwBf8srRDf22hthKWBQPDGe3k4Sq7oKpx", + "payoutAddress": "XyPaTtSpWefYJ2YfgofBwhYRHJy1ekQmKx", + "pubKeyOperator": "890ff1f431f2b4d3d6b77872fe40a13ba7bee65956a8c509534b7c1d101d937d45afd7646cb75735a39a533581182e56" + } + }, + { + "type": "Regular", + "proTxHash": "4d9e7cec54885592f2324c3e96fd2ed3a4647fe4ec25ca38652aad12ed241e63", + "collateralHash": "70641aaab979aa26f25d0899814d05d0f2c824d2f8035062dd1d7524c501c04f", + "collateralIndex": 1, + "collateralAddress": "XrFXGkKJear78Xm47TsS1Msb6paP4PR9ZQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.6:9999", + "registeredHeight": 1742708, + "lastPaidHeight": 2126050, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1956141, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xobg7a9xG2KYYFguUbAGNdA6bLRpEpV9Gc", + "votingAddress": "Xj9XEShSWxeP19khxTg85LcDt7NG5AZbo1", + "payoutAddress": "XrFXGkKJear78Xm47TsS1Msb6paP4PR9ZQ", + "pubKeyOperator": "06461cd1cad6b0659bc9b2e066e550bc04a940dab682e3159262c6788e23b5d7636e7bbc8dba16f4d0835d598c6db2b7" + } + }, + { + "type": "Regular", + "proTxHash": "9878f0e05a8fad988295a2fa2a4baf6ddfd8623e7c4e5ca2daf33ee387d37876", + "collateralHash": "9bc19f37b87140d8b8b6f65ff3dfc68f71a02c77e239044b2cc8d7be8f562017", + "collateralIndex": 1, + "collateralAddress": "XsdLrQzYjY6WFM6xjTgGstySBDnQoheMqr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "70.34.204.189:9999", + "registeredHeight": 1743709, + "lastPaidHeight": 2125982, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985053, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqVp4xRXcCSFm3VJE6smBHUxs8sFxipsS3", + "votingAddress": "Xgfb3HsYgAGg3SmudUSiG2CWMwPGco9eCT", + "payoutAddress": "XwyDK7VvCyic74Zp8Ub6XsU3X9QhZzvzqz", + "pubKeyOperator": "b22f7e89ce5875f11f824957e5fc4513be38037de94de3d11020b3201d09a209210230d4b9bec6d8205258d1f2db4070" + } + }, + { + "type": "Regular", + "proTxHash": "8e5edd7e2efca9e276aa0bbcb9f5bd6193de0c91aecca9d668cfb9218a0eb339", + "collateralHash": "6d4700a2146cae7700252351d7d5b7e49ce29282ef8972db99e38f39217ab0ed", + "collateralIndex": 1, + "collateralAddress": "XeYLCr3VVYoB5WJhWFuYEYkccZhi4jLFhi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.120:9999", + "registeredHeight": 1744270, + "lastPaidHeight": 2127399, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1765464, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XucRAbWMJitUxEnQKkjDfZDWmDFdqKSLff", + "votingAddress": "XhvPbo8Cvhw8B9bHZ2rotWQBuxMLMKqjPh", + "payoutAddress": "XeYLCr3VVYoB5WJhWFuYEYkccZhi4jLFhi", + "pubKeyOperator": "02fce0055e7809d2a23f9533d5966f23306582ec8e845467ab2b51a0c4d1ad023d1fac365b5f672a267b5d797176dc67" + } + }, + { + "type": "Regular", + "proTxHash": "c5bed38fd315533dcad0b112a3a6e3bcf9a2e388a8bb8691d2832ef44ffc4ba3", + "collateralHash": "c8d9bd034e82d320c88d64bc340cbc2d2d1cde754173ea4bf749c6862678ec95", + "collateralIndex": 1, + "collateralAddress": "XtdpHKWgDiEspT3uPaVnwHkkrjRfJJEgnw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.123:9999", + "registeredHeight": 1744290, + "lastPaidHeight": 2128130, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdx9tVBtgoNaHHjjH37wdaukeXcRd9xYQL", + "votingAddress": "Xkioc4BXAdwxBS7oAPcv5pmNsZAKg5J17n", + "payoutAddress": "XtdpHKWgDiEspT3uPaVnwHkkrjRfJJEgnw", + "pubKeyOperator": "10eaeaefefc70f275896756f8dbf8df5205118ea03265aa4a31236c5d4825f6d7fe6a29ca6606158df096f9f8b6a36fe" + } + }, + { + "type": "Regular", + "proTxHash": "f5d8254fd33c06cb67299ca013de93f287d8ad922fd40c24b4b4d0abccb69cd8", + "collateralHash": "96477ecc20be124c0151176939a063386f7e90e6c2c860b8bbbd8435808f54e5", + "collateralIndex": 1, + "collateralAddress": "XhfK9pDNX47NV5AbghCmS1mXKofBeEtZkc", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.90.185.139:9999", + "registeredHeight": 1744579, + "lastPaidHeight": 2128487, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xai4D8hSYNaQ1EexJ3KbhGDoonTPp8HBKv", + "votingAddress": "Xq5mnvcb4n7kssxQ2CdD83BVAw6e8vwdFe", + "payoutAddress": "Xqg3BvtT5s8SpL7NhtSGsC6tjH8xKgPmKg", + "pubKeyOperator": "030f383beef3c5cf77f34f77db500c055575e59955a6b6f57c1b791d8d96fb2e67e1af5f45351ab7c09ce616f7addb97" + } + }, + { + "type": "Regular", + "proTxHash": "f7c25adbbbc69d4fae2c5deab142e494f90ac557b908178de830f5788ba8c81f", + "collateralHash": "7c76f049efe9bbdf04bfd789c62ee55594cb66e58ea23b5aa7133a4a64dce949", + "collateralIndex": 1, + "collateralAddress": "XejBiJ3AXnYsrUzuBsdgj7hDTjiApMn7Pm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.122:9999", + "registeredHeight": 1744909, + "lastPaidHeight": 2128744, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuVYDuDuzNYS3a1nTFfvBCkUahCk5P3aPk", + "votingAddress": "XrQXWAfV6CjmMtwHSQCvUu7DneBxfp1xKv", + "payoutAddress": "Xxy5wBdRRtsWeoqiPSwbSv4EQvLnmi8VpX", + "pubKeyOperator": "132619e2a85f960c4d643cdc1d8433d0469a2b17931a117da3f1a33b38d8d307cbc21b9439dd43f14ed6113b05ebe8d0" + } + }, + { + "type": "Regular", + "proTxHash": "5189175aac8cb983ca656fb032c35bee0a4e18147f9580d14925b079d9b1a4f6", + "collateralHash": "e37d139d6f0c1be4cc9a9388a942d5a8195f3c9f8d0e9bef9ea415a7ea169724", + "collateralIndex": 0, + "collateralAddress": "XjzRuF46aCMzbEiPnRiYPCi9Zh3ERsVGDX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.15.254.224:9999", + "registeredHeight": 1745080, + "lastPaidHeight": 1870286, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1870890, + "revocationReason": 0, + "ownerAddress": "XfcjwpL7cpsixXXdiMPAN6i1NpQtKGjRAG", + "votingAddress": "XrDFL1pNoEhysN1EDXURMPjFxSkFBBSjqQ", + "payoutAddress": "XjzRuF46aCMzbEiPnRiYPCi9Zh3ERsVGDX", + "pubKeyOperator": "073c7b9f6d5a5c120e1b4e041fd891ccff9ff48feefedea76b35be6e2c59ed8daaa1eae813af20322f13717f144e5646" + } + }, + { + "type": "Regular", + "proTxHash": "24a19a58c286eee86660e759edb046ad152f23f9d493de16a33f0e9571ed70ae", + "collateralHash": "cc7b3031256a75fa91f06d72def7c3c6b87dc9684579884164f31938176cb25e", + "collateralIndex": 1, + "collateralAddress": "XynLBCKxKYWSBWNnLEXpYP5vbUZ2zr4oyh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.64:9999", + "registeredHeight": 1745527, + "lastPaidHeight": 2126033, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfVsUDxoHNHuCEGGGiXucqbPso87Hd5kJJ", + "votingAddress": "XeCjwkaaZBRscYh8YH539oG96nETx4m4qu", + "payoutAddress": "XePcGP2KTMXjvAPo3s6zZDazTgPXzmEZL6", + "pubKeyOperator": "86df3cb8be2dd8ffb766330099593c5e271cee4960aa029d4d984a4dd394918348e8912e6765cdb87bd8a3ed476be8b4" + } + }, + { + "type": "Regular", + "proTxHash": "61686948244f19b81bb199ccd09e7023240663345146a81613a881519bbb5fbd", + "collateralHash": "a479bb1ea2ccd7c7d6927717371d14671f74adb5a4347d072eb95913f683fc0c", + "collateralIndex": 1, + "collateralAddress": "XerXozwpmAyZ6pMvo3BNzS2nteuLjnGAZ5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.113:9999", + "registeredHeight": 1748021, + "lastPaidHeight": 2128221, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoxLxuG6QDozm4Fm99A94r2Yuwr9inqird", + "votingAddress": "XrbUDq2iN6fdGMcsw32N5WKdDH9k1HxaEe", + "payoutAddress": "XdRoUGbyypRizQytJq6VuSWzGDxmUSZkuN", + "pubKeyOperator": "00503498fbe6c47a3ef63c885e2b91679194b389e423a1f061f2a5304fce52765cbc93fda64d6950a27fb83e862e42ee" + } + }, + { + "type": "Regular", + "proTxHash": "f6c6fe7db623427dc3a0fb6d991369d00c89a05f29f46b9ed7ba7fdef3ba3230", + "collateralHash": "eab5d93d112c92bff7c0e6efef0f5ce15c6b78bf81633e305cc46a5da2760731", + "collateralIndex": 1, + "collateralAddress": "XazPtDaPmD69FpY9vdgTC7ymGaNHtYjKGx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.71.158.108:9999", + "registeredHeight": 1748806, + "lastPaidHeight": 2128535, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2125360, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiXKp4pQVk1QhVw8rthkuUyFFTBh2Vdyx5", + "votingAddress": "XiXKp4pQVk1QhVw8rthkuUyFFTBh2Vdyx5", + "payoutAddress": "Xx5Awmc2LGcL7nKN7MRW2eYJmPT7ffiL6c", + "pubKeyOperator": "82c7cde4248c81060606a2d1f4863e26f4709d5ad4f81a054c17af63560905f2d0870d249d51b818bd38b0497d4ef583" + } + }, + { + "type": "Regular", + "proTxHash": "39903a0d576f05bcd9d53be0620dbea4dcfde37dc98984652ec8f06e1cf004b0", + "collateralHash": "bac0c1c5a15d284c7aaf7881f9e1900b46001b86e285d531039f49de9150ee36", + "collateralIndex": 1, + "collateralAddress": "XydE3LaKWMGt9Nk7256SNuh59PtyaKSQSa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "52.207.162.14:9999", + "registeredHeight": 1749847, + "lastPaidHeight": 1950811, + "consecutivePayments": 0, + "PoSePenalty": 4165, + "PoSeRevivedHeight": 1796570, + "PoSeBanHeight": 1954122, + "revocationReason": 0, + "ownerAddress": "XsZfuEenvHUPmSBa62SEEBVn8AGMycxYwF", + "votingAddress": "XnYSvfjGKwC4cTCoCFncKfQKNWrumauYzC", + "payoutAddress": "XfmUd3ehuE3oYXTpTzf5GghD1yyCUrZ2HZ", + "pubKeyOperator": "8afbd1b3bb2e5f53552699c0302e08efd8a9aecd566a94651810595e527691a789c7c8b8301b082579ec1d6b6d0d9aca" + } + }, + { + "type": "Regular", + "proTxHash": "caf370f972954d872776738bafaf2265bcf4a7b3797bc7bb39b690c6fa621b3a", + "collateralHash": "8ed4a10b6a194be29c580040c38bb484f3b80b6cb27a9bf6759c081138a70500", + "collateralIndex": 1, + "collateralAddress": "XbpYfZqS4kvJooGm8JKJkVr2ffGSSAidHW", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.140.19.201:9999", + "registeredHeight": 1750132, + "lastPaidHeight": 2115611, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": 2074586, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XxpeY2Wnfb41WK68FyJ2AKGN9f5N5Sre55", + "votingAddress": "XvubSmQgeKwivwBFb6t7jxDwyQrNrEYPNJ", + "payoutAddress": "XhNaNdJrHs2j3FpFnWux1sPm2FVzbFBmqm", + "pubKeyOperator": "068622696e97ebbfbb14f8e644d160084865bddbe0aeaeb70cd7e834e46de57aaf2c2fcf1ce56f8bbf502456df6423ae" + } + }, + { + "type": "Regular", + "proTxHash": "0e9728412b7431b360799b1178514f167591c8044ae0fec2aa6f95e25a5134b6", + "collateralHash": "7c7873c9e190cb5a9699ca18ea10393a4e8f5846678934517ecc09121f6d0637", + "collateralIndex": 1, + "collateralAddress": "Xu8uEWdiWUuzSVnh4GCioUjCXzAGapya1q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "31.148.99.104:9999", + "registeredHeight": 1750156, + "lastPaidHeight": 2115966, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": 2014283, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XyLKkarYQyc8bJSpfmWcnoRJrDVSUz23iF", + "votingAddress": "XeSK51MBvG9YX6AFw2wrg82kh4L4AFPZo7", + "payoutAddress": "XwyHaBFgSLRcNoV5oUQKu4e8YWGFaHdTKN", + "pubKeyOperator": "8660eac51fc395c803388273a6f65a90ce2e06160893cac61e325c7bc3e279f32d1b2bb3655aa1e667b2e4a81083b460" + } + }, + { + "type": "Regular", + "proTxHash": "4b803da2f9fd9b01f18b931a6f3470adcf348ecfac71bdf0817251511db3947b", + "collateralHash": "87da16a94d2f40fa3d2831e15104c2d6cc86955c9b08985d92a600109f4cc014", + "collateralIndex": 1, + "collateralAddress": "XfMixgiBhtafv7vCqzTYkdNEbqGe7GDt1M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.126:9999", + "registeredHeight": 1753494, + "lastPaidHeight": 2126694, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrYeJ59u5du8PanoeE283oVJu6ujUfRH2T", + "votingAddress": "XetPoF2jGxEhQ7rt6P2dMRwCu6i7zJHFA6", + "payoutAddress": "XsMWr3FpAUVFirpWX8FnDEb63Xd6WnxDyM", + "pubKeyOperator": "86ff372694b3421196c066b8c14d292d208e2379d0044a6d274eac5ab11fd12de7b1531ee1a6e92931145c9a77879b59" + } + }, + { + "type": "Regular", + "proTxHash": "f8f1f4968231434417ef6c5cf3ab9e4916407ba2d798dbc87a1e2bc9f88f6ac2", + "collateralHash": "faf036e73537e8c76443b85034596393968c31c877b96c9bb8ce6791dfff5b2f", + "collateralIndex": 1, + "collateralAddress": "XiBgtXyz2YTrkFEhC1QYTqNfVvZoNALGzd", + "operatorReward": 10, + "state": { + "version": 1, + "service": "194.135.84.96:9999", + "registeredHeight": 1754731, + "lastPaidHeight": 2127853, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsajuYDbsWV2za7GuxhcpqJwPXumkcMTwy", + "votingAddress": "Xp97KREKtzNFPhYqyKDNNd2o5Dzrurgo6Q", + "payoutAddress": "XbR1nKmR2zxaiEJ6tRk2XCB952MoqTugx1", + "pubKeyOperator": "892444eae6d068c6dd098cba2b9942edb321bda68d96b9079b1a7b5decb1f130befc8ce261bb3ef6fe526cd2e93c09e4", + "operatorPayoutAddress": "XorJDsCNofsrBAFJszuthpAbpEucL3eDrr" + } + }, + { + "type": "Regular", + "proTxHash": "bdf8eb6498cf70e88471b593e430b7c6cb208a9f1579d9a2e020816cb36cd05f", + "collateralHash": "bdf8eb6498cf70e88471b593e430b7c6cb208a9f1579d9a2e020816cb36cd05f", + "collateralIndex": 1, + "collateralAddress": "XqLfwbBdTdvH5z86enRXW2mA1KvssEUG4Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.205:9999", + "registeredHeight": 1756410, + "lastPaidHeight": 2127213, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121078, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqa8mANJVhPQy72smHsLNTy9fMze43kLmx", + "votingAddress": "Xy8r3CF7ze9Bjksqgo1buujuVQZ6511yDc", + "payoutAddress": "Xt1pwGbfbmTDsnF24iccJheXfqE1rZb9yg", + "pubKeyOperator": "91fa29c961a28f46d7c0ef9ee0e079521f2659de7da34823441565f10f7a9f44fe104d32418cc98612f5daf0413b0af1" + } + }, + { + "type": "Regular", + "proTxHash": "cfcc0eaeb015205c668ceace1f2092051e64ef60b0b1f4e384bae6cfee308e59", + "collateralHash": "32667376e6b201b024b0758a7fd60079b68632d9eb8b60c07d9298a2a3157a1e", + "collateralIndex": 1, + "collateralAddress": "XrxEEz949RrpMrQodVGvyXAerWZ6gEtFLn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "18.213.197.116:9999", + "registeredHeight": 1756414, + "lastPaidHeight": 1985367, + "consecutivePayments": 0, + "PoSePenalty": 3981, + "PoSeRevivedHeight": 1986173, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "Xjufe1aN3TfhGdjLQ8PwS5tTGL92s5LEMB", + "votingAddress": "XhQQn3kFSRCb1yBmaRJwBtCVSv3N41z3ci", + "payoutAddress": "XqayMsJqpQcmLcm9gkkgZt5EwhCbdGKC1U", + "pubKeyOperator": "95243cdcedf347dd77946115e77bc1250d4fabbb1a41be6ea8365b96d567c75a9f56f9ae98b4535fda8eeae405acf8a5" + } + }, + { + "type": "Regular", + "proTxHash": "2908936ffbf1294fe729ccdfdb5100715bd63eb4804b1f032d728ee9de4a9c35", + "collateralHash": "ba0fdaec06dcf9e4582cfd07ea337471458c3cd0095c345f0ce48c116a8b1847", + "collateralIndex": 0, + "collateralAddress": "XhVoUfm6sGF77ZBWKz88aoiNMFurzHCqxY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "88.99.11.8:9999", + "registeredHeight": 1756935, + "lastPaidHeight": 2126526, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcqSgBwzDFDTxzJaFXYbj3yJnaFq88deLg", + "votingAddress": "XdJncS7h44d65Q68cU1WBjd7YAeVw61NoV", + "payoutAddress": "XjyUwAUUPMuBtvuXVxcdNzLxjg6osdevib", + "pubKeyOperator": "125bd865ac3ae84bb91f31d2c6ca6feb6514c4bd48fe8becde6ba582bc1b3e1891f1016015e73002ce43ab54e67631a0" + } + }, + { + "type": "Regular", + "proTxHash": "70e1c86cb5afd02ea3892f93f7a5d1bd9cd77634f1cb42015a192253c29f7ae7", + "collateralHash": "a9b6e9727ab6882e9822a6bca230f2c6453036e8f3852dae1b46bbf2dd3f4580", + "collateralIndex": 0, + "collateralAddress": "XfVXHvmJGi1bGojfG22VnKbnXARUFgDUUF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.5.55.191:9999", + "registeredHeight": 1757205, + "lastPaidHeight": 2126745, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMToG94aAtzkZ9QbfXKwgD34uEDeVmNoD", + "votingAddress": "XcDCKAAhDzn14wPfjGXrn7BZnC5KgpCBiQ", + "payoutAddress": "XeeD1tevMBXqR4KfuskuDpiVXT1L6f9obY", + "pubKeyOperator": "8c72bb52d2eb54a3aed9f3362cfd1094bfc2d667c31aa122ad5a5616afead18384a531cf2f1d9041332b52ae4527914c" + } + }, + { + "type": "Regular", + "proTxHash": "630207b9bb7cd379dee63f05b85349068ea95c0910e4545f05e4bcaa16dd5ef7", + "collateralHash": "b5aa953b474737ba198f1135d6e62757615b9db0dfba9998b2a7ccb2c2002809", + "collateralIndex": 1, + "collateralAddress": "XpYKu4HKwxDbYSKieFY9zEj8rqCRceVB7L", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.237.129.144:9999", + "registeredHeight": 1761211, + "lastPaidHeight": 2126252, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120186, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtLMoii8Nw2mEEts5kqZggRK4qpUao781J", + "votingAddress": "XtLMoii8Nw2mEEts5kqZggRK4qpUao781J", + "payoutAddress": "XwmssLzJDAHanGVGUFJPPKqyWpcy4rfUFr", + "pubKeyOperator": "8e8339ab23dafcfc90ba0f2427b7c83b9b5e078031d203bd42584d3445861d0366636d75d0959df9cd85e83e1f10dc50" + } + }, + { + "type": "Regular", + "proTxHash": "73156aeb83a98e9dcd8e7bece4f42467a480bb0dccaed8e4598f42acf14cba34", + "collateralHash": "a7e5937635b0f19db9be14b18437da76e1148d8ec9f567de0f6f57d6d35676d6", + "collateralIndex": 1, + "collateralAddress": "XeeLrJk5dMZHpZre9ATZ3U98fyw6ETdVVu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.8:9999", + "registeredHeight": 1761215, + "lastPaidHeight": 2127407, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1872408, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xav4Qo8peLoFGtHCpL2v6g5DCUY7g9XTEC", + "votingAddress": "XpZp2dUhxiPz1KRZ4bPJWDL89UKHHdTNy5", + "payoutAddress": "XeeLrJk5dMZHpZre9ATZ3U98fyw6ETdVVu", + "pubKeyOperator": "8d48800c9b2a45a642b3ffd9a9601a6cf9958368596c2bb028a7f7580e2491a15a64f31c067656add32f2e5456ef4974" + } + }, + { + "type": "Regular", + "proTxHash": "f4077bc50fa94fc1f47a3f324a79a585c07518965039ca663e809ad942eef8bf", + "collateralHash": "bb4836588c28c44098e5d418ff86bd065e014c2cfdc95b2b09248d0a64209dd0", + "collateralIndex": 1, + "collateralAddress": "Xyu8JxPH8xS78A13C35TT2rFS6bQRjfKyq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.21.183.4:9999", + "registeredHeight": 1762547, + "lastPaidHeight": 2128134, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeTqgt4Zpq4hqsTtcSTz8dsfsGPNEz5oJx", + "votingAddress": "XckR7EgFDPCnK9EWV4JtUGRUDRnMbTzRkS", + "payoutAddress": "XeQi9CyKRXvXYV37dVtHob2TiL8LXpZijE", + "pubKeyOperator": "04550d2a0337b05f72e5cac9157d84ab1f9f7d852370982eebbb5db64eb1f9eb1aa7718c49824dd43cf071410f4c0529" + } + }, + { + "type": "Regular", + "proTxHash": "26547cb7f7f9a37a1d9240051101365d33d1714547c43b132adf862a20bfa9ef", + "collateralHash": "47c3991a6fc7efa8d4260dc42d8e96281282f05545819e7e7922e9dd4c2fe3df", + "collateralIndex": 1, + "collateralAddress": "Xhf86okHrFfNUKZ7F5wr6oy9H7tdvCU1q5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.39:9999", + "registeredHeight": 1762788, + "lastPaidHeight": 2128432, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbmcQBLWP14g5ipDg1P2fuJwq8S4vW8FSn", + "votingAddress": "XkWU28xBA6T6dXdioXhdDsjCXajJYRL9Qk", + "payoutAddress": "XozQ87uf1kacH1CaRCRjdeoQK1Jt5st1RT", + "pubKeyOperator": "1548eb293b1b278a37343fb6f771818e916b8ce4e0e1fbc910a398542eda2e8dafafb725e83b3f127faf279166087a15" + } + }, + { + "type": "Regular", + "proTxHash": "245618dacd729375017ade5563802639127f382aa58b9d224a01fe6716112e39", + "collateralHash": "0f175fbb048ffbe6a634c42f438c55802527b639cd928d2860d4c1ad69eb7e3d", + "collateralIndex": 1, + "collateralAddress": "XdQvHwfAJGpcpNZ589EgpZPDyQBRw6wDS3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.161.110.79:9999", + "registeredHeight": 1763038, + "lastPaidHeight": 2128596, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvFbonfGn5hSKoZh1cEAsH4UN2PDtLdHBD", + "votingAddress": "XcUzyvoNni8iWNShriX9yayK2UVotcYEtq", + "payoutAddress": "XoVodFx5ZbzZ6qSTyxWQrdgNGqiRnxdo6R", + "pubKeyOperator": "8bc3e758d28c44c3610d800e8f400f3f11921cfb4bd2d49ea68c8a3b2e3eb1ee1228f273e4b72d3daebf9678bac28c92" + } + }, + { + "type": "Regular", + "proTxHash": "b5146ade3b6e1c4b7265ef2d2781a74ac8125d97f5d559c5b76f2292a5f06869", + "collateralHash": "642b300db8b8c9ef9616ab28a241715e7e69dfc2b34ce5740f21a4d1955bc5d6", + "collateralIndex": 0, + "collateralAddress": "Xw6ghy4U1a5XXLynDgDsyLk16eVGd9vv8r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.127.237.243:9999", + "registeredHeight": 1764640, + "lastPaidHeight": 2115459, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": 1996833, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XoZhjWL5jM6n1oUbiT5DLXrwqUjxPStbQZ", + "votingAddress": "XwoUywYdmQhTUCHFzd8FxAc9KzoML74jJz", + "payoutAddress": "Xw6ghy4U1a5XXLynDgDsyLk16eVGd9vv8r", + "pubKeyOperator": "0260dcb73135557becbbd7b42899c0d85060a883ed24004d4365424b0f7c859929f39d74cf397ca8c93964f8c229daf7" + } + }, + { + "type": "Regular", + "proTxHash": "f9532482e7801b464425e557e739c97766213e2f1344f65920f3a7757d8a8191", + "collateralHash": "8fbd18589702f390cda84460b472ca737f2010a6e2e4a9ea9a370137c81f19d8", + "collateralIndex": 0, + "collateralAddress": "XvTqcHFKsFRJiQDVNwF9TqRCBiP9c8QEBE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.223.137.129:9999", + "registeredHeight": 1769869, + "lastPaidHeight": 2127932, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwcDvJve1Y7nne3ebwEGQaZqRcJVnk31hg", + "votingAddress": "Xj9PJMePVncvx73gQohZMyChKSyRGUp7m7", + "payoutAddress": "XkZbWm9Pfp4RNJpUnCcXdjpZhGZLrSx1uj", + "pubKeyOperator": "19ba174ab6d09a8d882b09cd3b9d37a6783a96a8d57f3c4c3bd8a38288390c7f66015b33cbb15567154d9cc8f7736193" + } + }, + { + "type": "Regular", + "proTxHash": "b03483417f6ae162b17502414de14e004d1c1532d4b31ecf893bd9a9385e0c5f", + "collateralHash": "062d30d9a0934a78fa55fa21ae96d0a7f37511d7f5c35c7b39150e51e48d2ef4", + "collateralIndex": 0, + "collateralAddress": "XnraP7KnuJP1ajrjEB6HuhugwHus19idxy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.185.137:9999", + "registeredHeight": 1769990, + "lastPaidHeight": 2125735, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1884119, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfgHTwNGbFtX95xfJSxwAKokCtFnTwtoP1", + "votingAddress": "XfGqH23yMzgFh43NzV8RXhCnqyaGVjyLTg", + "payoutAddress": "XnraP7KnuJP1ajrjEB6HuhugwHus19idxy", + "pubKeyOperator": "98c9c678b0c8e6a665a69e3b9035d864a81377263e5ec7b0b10c351c43fd8d1413646c0d6a8fa6508d2cfe7f182da518" + } + }, + { + "type": "Regular", + "proTxHash": "bed8e001df4137ff55d8ff6cd76ac0ea065c11c8d1ffe76499cbfc9211e67910", + "collateralHash": "b1e43c2523d8528b984e99d9b0d6cb49dc5c86318744b99249bf7da80cb41fb6", + "collateralIndex": 0, + "collateralAddress": "XgnCAXsWTrsVgFKoxN2H2GFhyUmh9CSood", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.38:9999", + "registeredHeight": 1770356, + "lastPaidHeight": 2128403, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr9NHEhZ3bXJo1mELRsi6q2SL7R4571MQJ", + "votingAddress": "XiCJwVVM9Fu6xGbUTHyD4M7pxoEmyodQdy", + "payoutAddress": "XgnCAXsWTrsVgFKoxN2H2GFhyUmh9CSood", + "pubKeyOperator": "035c1c7b89f7b67233e0124a538cb61e8c6237b31f705713d01b957ac5a5162e97702a52f688626eefbdc7737ce436db" + } + }, + { + "type": "Regular", + "proTxHash": "660f203c6189a9e05d4d16b5a4df33943d3b14a5e366b61936de9e1e4161bd05", + "collateralHash": "a9950f0f50b702f05542d7b818a49f8fd2166d006303eb86cea1b18d7627b1e3", + "collateralIndex": 1, + "collateralAddress": "XtiGwjWMxRdKmPub7Z9ohWFMfeXGauX8Tc", + "operatorReward": 50, + "state": { + "version": 1, + "service": "95.183.53.44:9999", + "registeredHeight": 1772747, + "lastPaidHeight": 2127077, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsb8Y9ziiU2WFTGbCpfRQu6LfV3RLfJCr2", + "votingAddress": "XduCDLfubDVhAszRoQprNcA1zkbPT4DSWM", + "payoutAddress": "XgRszsSkzpqCscxUWP8jE8kg9aLoTuvDcr", + "pubKeyOperator": "187cbb120c1a104afe1ea464a65ca0717eeb5770887ef94fce97372d0ca4564288ec101e2ec87d365b8b0d1aee047115", + "operatorPayoutAddress": "XtAw1wTpAPcK3wxTud42xoZ6DXBKMmjfhG" + } + }, + { + "type": "Regular", + "proTxHash": "78bcafa99815cc9d0bbfaf1dd97056b3a55c70c75112d3aff6cfc00551c58130", + "collateralHash": "c9890c4e8363f826146f537f04d8306221a20e4493edb681c191e82b4bd3192e", + "collateralIndex": 1, + "collateralAddress": "XtSVGdfPFo1p9SJGjsYvhqdtXFG4uDmSsv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.190.254.227:9999", + "registeredHeight": 1773665, + "lastPaidHeight": 2126428, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2059477, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdqyScFS18Ue11CSYZG5mjKS6xDgpXeVMi", + "votingAddress": "Xij7kgu5uCjd15DmMjzYHjTu8qPNqgiUk1", + "payoutAddress": "Xg9WSevgrehcPHm5TvKXMPYCB9qBLFXthV", + "pubKeyOperator": "17e0dbc1ec02e89251a2e2dcfe068f21ce6db82ca6d5af45513bb45e6d9f589c3bb78f6424bd78598788be40d4f34525" + } + }, + { + "type": "Regular", + "proTxHash": "74f0be72ebd849742f39fd42cca9ef392a5da69778aee4ea8d2cbd3bf7168dcc", + "collateralHash": "f43521dd0e1849606bfd4e4d570c86b7aa61b69329a7df5d12b55b9dd431e4d5", + "collateralIndex": 0, + "collateralAddress": "XvpesXs2RKNU1dScmKkyMzDqyRfiMdZcn3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.84.100:9999", + "registeredHeight": 1774306, + "lastPaidHeight": 2127388, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1872356, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk1QGjwpEJiphjiXZXcgqmXP5fTywbgnSF", + "votingAddress": "XtBperQA9bsEBQ9tLYdzjAs6cYddaDmemE", + "payoutAddress": "XxXwSDqNVEEumJBgXSEfa7CVQcgXjUWEVs", + "pubKeyOperator": "82eee95b09b990ea37b2b03c7d960efe714ef14a113c78a6ac1eb7da2bb41f00e9a0c3a98d670485fdd32fce92d47a4f" + } + }, + { + "type": "Regular", + "proTxHash": "ef123c64acce15bd8871074d7b1912d427d713db0706825a533fd7a4829fc61c", + "collateralHash": "bc75e7f32b6706b5c6ba43b450e428635e3d994922a5303d4e0e96ed434dbc0e", + "collateralIndex": 1, + "collateralAddress": "XkAXByzaqoh4rLWQ9DQGbDSuvKuMS2q4eo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.69:9999", + "registeredHeight": 1775488, + "lastPaidHeight": 2126333, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuGt8bLW5Sh4TpZvqE2VET73JBAqbmLMGm", + "votingAddress": "XnCRETMZNyPz7wPtgHeEdBYP5w1UmpiEw7", + "payoutAddress": "XkAXByzaqoh4rLWQ9DQGbDSuvKuMS2q4eo", + "pubKeyOperator": "10942d8928b905b6fb3c4dbe3ea8f9773d6f9c782d23c95451b94906162507b074c0a3341bcfe9c24d488065acf4f2ee" + } + }, + { + "type": "Regular", + "proTxHash": "b79aac61ca0192f5411747d820e7ccb784d46b84ac91ebd81b578dcec05f201a", + "collateralHash": "a7e1c965fc7fda743452ddb032c8707f0ea36cc00408afcd471bd5d1180977e8", + "collateralIndex": 1, + "collateralAddress": "XdUd1aFzmJhoses6C4KYb4DH38wEh87xJi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.37:9999", + "registeredHeight": 1776922, + "lastPaidHeight": 2127486, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpQ61Ng4ohfMov9etKVdZ7ByCvmhZLEwPH", + "votingAddress": "XfEKL9GVR9rcdsudXwKLr71PSmuhxAX8Hk", + "payoutAddress": "Xc8fD4Suqmhoxfd6PNZ1KACTHk1ZzgjFFy", + "pubKeyOperator": "02aad965a6efa23a7f5955d725d744a8ddc9d23408bc593ca2f9fd4c4e5d05d001038886cdf6c9f2bb47af46c9f3e50a" + } + }, + { + "type": "Regular", + "proTxHash": "7a1218e508c1e6d029b8c48d2b203b83ab56078069dd839196cafb419d89add6", + "collateralHash": "e8f2c0c6e5b61f7fbbe3ff85f9a7b39b26e34e46e9fc2ec73d602fd608f707f5", + "collateralIndex": 0, + "collateralAddress": "XxP2MCA6ecAvMi9xGkCpzm3p5LJzAN14qY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.68.223.94:9999", + "registeredHeight": 1777156, + "lastPaidHeight": 2125852, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119784, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkM2N4rmeBuhvyBe54JkCDeK2aEhcSNDMk", + "votingAddress": "XrLKL91XdjYs3G3TNj2fRE88UDp65gTeCS", + "payoutAddress": "XvrpsUUvqScmCkrhKeq1DspuMx2xk9ERL5", + "pubKeyOperator": "026c9b3d5e494d948ee0503e81b19775c6482e0411fe8a9c4dfa55d8481802705f88e70790a6a7f542a3825048dc1381" + } + }, + { + "type": "Regular", + "proTxHash": "656baf01c5a3f63e6442a8986cdbd59e449884cbc4ebc8f2d57d3b84e1dd9564", + "collateralHash": "106f5e0872cd738a57899f6ce471d5f1d7e05fe64b18079db739ddf8ccceb4d2", + "collateralIndex": 0, + "collateralAddress": "Xgh4gC71ZzrSJh7maLerNm732ZMbsM9atM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "77.223.99.4:9999", + "registeredHeight": 1777217, + "lastPaidHeight": 2128868, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1891075, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhuxd5TYFTYAWwPvERfY1WrcTWeTAip1qU", + "votingAddress": "Xdntbfp7saZwSao1EEwz8ZSfVNQhe1Jc2W", + "payoutAddress": "XwXnXnj1h7bKD2jeMavcfskx3A5kqRtoVq", + "pubKeyOperator": "837524adb1b1407c69d2d95618c4f1213cbb45e4f9b3d91e0ca171c16444826563e9d540b22b64148cb4dea40bee3243" + } + }, + { + "type": "Regular", + "proTxHash": "056178378002cd44847b470d0c6409ef369354dbaca6cf7c0e763f5be287f459", + "collateralHash": "1009093311876d37543168f1870f75c2c4cf0f9e2fc8a3f637bd55c95afc5b68", + "collateralIndex": 0, + "collateralAddress": "XrCeaLPDyPzepAtpY65VHi4VJdBn5vYGKN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.53.124.120:9999", + "registeredHeight": 1777595, + "lastPaidHeight": 2125853, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119786, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xry8KU312DhrLJazjMm98mGg3R1tLsNZrM", + "votingAddress": "XocL1NNXkZoKfeGKY5ez84QHZtYyipnfkJ", + "payoutAddress": "XrECT8BiWTHZRbbbdeWzvJu6H5YbpD72es", + "pubKeyOperator": "8afd6df4c2b77962d0000ecdc535b617f855c7e2a2604c7d9125c6749060829dac2c2e13b58cc72ced7892b0370c77ec" + } + }, + { + "type": "Regular", + "proTxHash": "8b4483e06e341f91489a2aeb54c47360d54c87de76ca78fe5534d495ce8440e6", + "collateralHash": "896986d8467004e5cb02f8cb7c38534fe7af3935c3e82a8bccf3d918b79697c9", + "collateralIndex": 0, + "collateralAddress": "XifzpbbYP4FLSyFGVDD4MxmFXDckaaJGMG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "103.160.95.249:9999", + "registeredHeight": 1777661, + "lastPaidHeight": 2126939, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120890, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoKmEAUpHkJiueBZB38PLDpCCPMoneNxxg", + "votingAddress": "Xw6DHLweNvMzet1QfyxgqCKWM6VELMk962", + "payoutAddress": "XioZgX2Q72G2FtXDtgLTjoyFZcRm1fPeDv", + "pubKeyOperator": "921614b92d21a2267f9bcfb936cdf4902734808ec7a37c53c075e63d436a03ab35b7af07c39d1772a8b512235b467fed" + } + }, + { + "type": "Regular", + "proTxHash": "7565c207732b8e08071fd3535c0138954043fa36527fe2742c54e3d33e6dbaa7", + "collateralHash": "e7494abf884dddfd7c7a83a1083104440624725d374d730d27527b61480254f9", + "collateralIndex": 0, + "collateralAddress": "Xjjhjbk2fW4SGhoZzFuzdxz69zwwPQ4Efg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.120.194:9999", + "registeredHeight": 1778284, + "lastPaidHeight": 2127158, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr72NxMvbzJwcZouP273QRSfrUg4BtikZk", + "votingAddress": "Xv2Z8KtKTXq4YXmX6fveBCw1ehHZ89MRW1", + "payoutAddress": "Xjjhjbk2fW4SGhoZzFuzdxz69zwwPQ4Efg", + "pubKeyOperator": "95f125c17a4f161e98b1d44956ada7b3ceff8e53b92bc43b7c892b815925921cdc6f673a8799ea14add3fc7ac301ec91" + } + }, + { + "type": "Regular", + "proTxHash": "fb1163008b6bdaac82fc6e3b9f14fb58fd235267369450d86dd234d05ac51204", + "collateralHash": "6a4d68e86e9c340147b0b463ff4af19b2e2ebdb0ba8e50e4548d1fe3e3beb888", + "collateralIndex": 0, + "collateralAddress": "XthoXafnHMh3xKiWMdnFwKux9y7WtHV3CN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.163.64:9999", + "registeredHeight": 1778286, + "lastPaidHeight": 2126583, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfwZ6wxVDZwFKfVt3n3rmPCgXmYu5zqaLM", + "votingAddress": "Xg8DCPGjFDDKmaTkzg5VcftozDruU8oUD1", + "payoutAddress": "XthoXafnHMh3xKiWMdnFwKux9y7WtHV3CN", + "pubKeyOperator": "17dcef805b49a1256488f710d72698df0e35d702f29e62f0de5999bf99ed7c68857b0664a7483b2eb2799b17de8c9e58" + } + }, + { + "type": "Regular", + "proTxHash": "7af5f57b1a86a263719c78eef03b6fa2f6a119aa0fc5dafa4460f3569bd9434e", + "collateralHash": "32d4ac82ef83994786dc89bb83ed2276eb07d5f8b89c4198860c71ddc1a4b6ed", + "collateralIndex": 0, + "collateralAddress": "XxE42Zv9erEqQH6sKiiNrVpWUtAbVAXGxo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.147.88:9999", + "registeredHeight": 1778286, + "lastPaidHeight": 2128560, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2017832, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiuN25qL5fa6RETebECkuSKRKie73wuA3d", + "votingAddress": "XooawJgpi49GYDWPt7LXC7cPBHcrJ9JsP6", + "payoutAddress": "XxE42Zv9erEqQH6sKiiNrVpWUtAbVAXGxo", + "pubKeyOperator": "1872bb73f8b2ce3469c4f60fcfdefc2b3d48cd2b1a3b89ec52463c1f44ba5d9a63baef76dfef8cfe6470e068ae94d0f3" + } + }, + { + "type": "Regular", + "proTxHash": "4233fd4ad7d70c0718fea402f6c5cf88efba3c2b7003e099417706cba50d9d4d", + "collateralHash": "1107a8a76656eb2c8d759b609060071e652afa57b94e27c2320ef070d0d97934", + "collateralIndex": 0, + "collateralAddress": "Xfc5pcrzqBL6rfB7SWPnyX3PZYXrpD3Ah1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.190.167:9999", + "registeredHeight": 1778288, + "lastPaidHeight": 2127144, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbtyrCJCGERwhi7eR7dmQcrMhRwAZ6413J", + "votingAddress": "XgLCTD8g4JUvuDeYc47eQUyYr27KbfB3gD", + "payoutAddress": "Xfc5pcrzqBL6rfB7SWPnyX3PZYXrpD3Ah1", + "pubKeyOperator": "8a4c1f3b1d4cbd0805a8e4e06783e2af99bf9af87a8d33dae310254637093a77e3123a86450d48214156caa72fd6e738" + } + }, + { + "type": "Regular", + "proTxHash": "cf04420d4660d9fb339e4414f9c067ef5159082a7174633a8bd22c1cbd2a90ab", + "collateralHash": "ea59f23e77580f240e52e4e9a6fe35855215ff53739cad575db7bb0e7b209e9b", + "collateralIndex": 0, + "collateralAddress": "Xg6T4ZAeS3TX5XhXy91cdsVCCHRD6Sqtk1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.50.185:9999", + "registeredHeight": 1778290, + "lastPaidHeight": 2127159, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsQeS6NSJx6DfczToYDRFydnJGo4wazePe", + "votingAddress": "XxrT85ndpYUEwTNXepbNC2bZhTwGjHDs6H", + "payoutAddress": "Xg6T4ZAeS3TX5XhXy91cdsVCCHRD6Sqtk1", + "pubKeyOperator": "8cde276631b3de42371e91d89266ab4003afc5f935be97ae0a07f0923012717d2eef352f50afa17d0a34de44b86fe37d" + } + }, + { + "type": "Regular", + "proTxHash": "c43abf1906ae0561434a93187ccca63cae4f9c1454c2eb04d43d0e7d94fe4aac", + "collateralHash": "90f39cac47d9bbe682c468ec2d734ea8f458c8ad59a82989a6923c61b0d8d967", + "collateralIndex": 0, + "collateralAddress": "XbDdDoRMAZJFzuubwGsxUyhvFSNoSfbRHZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.77.47.170:9999", + "registeredHeight": 1778292, + "lastPaidHeight": 2127160, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiSYMTQuogAiTP3N7FSG4Vh3pM7Xr8Eq8y", + "votingAddress": "XuFY6NRhkKcxc2cTAXW98UJ1Hx2MeaBGQR", + "payoutAddress": "XbDdDoRMAZJFzuubwGsxUyhvFSNoSfbRHZ", + "pubKeyOperator": "0a705536d45b9b1e481b42ffea51d9e0197a2084a7382ce7fae49ff0a1e92ca4f00c30ad0b91288055c824a33612d84e" + } + }, + { + "type": "Regular", + "proTxHash": "87e6720b76fb69fb627abcaf2e18c43fd1c55de59b4f2b3cf1b5be6dd8398e0c", + "collateralHash": "f436239746b94433bd195cfb57a4e0eb94327315a902f496a5b517774d53a1e9", + "collateralIndex": 0, + "collateralAddress": "XrEbMcNzKTLXwciQFGhULgfexSXa3ZTK7B", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.211.81:9999", + "registeredHeight": 1778293, + "lastPaidHeight": 2127137, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj7umGASWrggt1S7PQr8YgFA8LWkpJ6Hn2", + "votingAddress": "XmWcmqEtc3rxKPK3TPsaGWpiEGnhy8goiR", + "payoutAddress": "XrEbMcNzKTLXwciQFGhULgfexSXa3ZTK7B", + "pubKeyOperator": "107ea3c630712f65234b0085c5c63d99405b9503f5ef7ebe6486c338826060b31c6f9c0bfea6705b006a61211f349b50" + } + }, + { + "type": "Regular", + "proTxHash": "c28d28656401d582e168da08395a141517fbfa00506a798fe7618195aca7b842", + "collateralHash": "6ac818c21fe6cf1f8f8d49e0e739acce8d7978c568e95c6b782df2bbcf6be7c9", + "collateralIndex": 0, + "collateralAddress": "XjtE4PzsnSkTfJsCphPT3qDjkujQghKuiV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.121.69:9999", + "registeredHeight": 1778293, + "lastPaidHeight": 2127142, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtiM97LvrRfiUV7z7P7P1ye5CELabfKtBH", + "votingAddress": "XvCsgbtWAnk7RY826bST2pL3tiPbmbwP1d", + "payoutAddress": "XjtE4PzsnSkTfJsCphPT3qDjkujQghKuiV", + "pubKeyOperator": "1796aea205961adce1b04055fb822250ab1028505d76c4a7888673e48bd11c4497a66b9c2dd493fb000e263b414fcba8" + } + }, + { + "type": "Regular", + "proTxHash": "81c8b62528bce99fcb8355892d89e42dbca4016603a15932721b30c18aca8b5e", + "collateralHash": "2c02685c57ac0eb7a34d2b1b15a6271ca8a28848643143c9de6226e38c47151d", + "collateralIndex": 0, + "collateralAddress": "Xf4bWRQXWm1kmZ39SqHAtZACVDpMjTembx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.159.199:9999", + "registeredHeight": 1778294, + "lastPaidHeight": 2127149, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnEGi6V4bLYzxfULdLmZoGNRGutveDjGe5", + "votingAddress": "XgNDeGgAzQdifd9s2XgDJtq3fnm52G7TXg", + "payoutAddress": "Xf4bWRQXWm1kmZ39SqHAtZACVDpMjTembx", + "pubKeyOperator": "02f858c489a4d9e152f68c461fa234a70573cbe4f3e0835657e7470f1616d5c7aac3f7cb1e0df016475f2235aa363df9" + } + }, + { + "type": "Regular", + "proTxHash": "681781be1b2439575bd0df4c039dfb8efa7410f5a0d43ff5e936749f38883ec5", + "collateralHash": "98792e9012635d11d77cf704bd34ea2a6b1d3b7be9c38882727c689bb2e94d16", + "collateralIndex": 0, + "collateralAddress": "XuS5kLNvuA6F9vn4K6Xjvg1W29HHHDxA9F", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.147.65:9999", + "registeredHeight": 1778294, + "lastPaidHeight": 2127162, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrXUWE9zbujTKT7ZmQNnciFBJhrrEXJkXU", + "votingAddress": "Xt1E2qkPGXNHC5Khhhd4y1Q43193Tc6xgQ", + "payoutAddress": "XuS5kLNvuA6F9vn4K6Xjvg1W29HHHDxA9F", + "pubKeyOperator": "964d60c70009baa39725e80716a71860e243a1cdf47b0d62e5145eb7493de0453943220d572d52e372aede5d25e0ee99" + } + }, + { + "type": "Regular", + "proTxHash": "db709ae7b437aabbf153c3e9dcc8d68ba232138097136489b92a4b2dd9e377c5", + "collateralHash": "63e56bd2045fe86af858a6c19b0e06e0942d818e69c83a20debcd4cc9d08f0c1", + "collateralIndex": 0, + "collateralAddress": "XhVkDGUtY9WuptckKhdeXEgcNfHVXyz83Q", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.107.34:9999", + "registeredHeight": 1778294, + "lastPaidHeight": 2126589, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjP11XT95YzsdaJYhRmQafNxYPzEZTSdgH", + "votingAddress": "XbDaAz8kQD2uNPFJwFAwguuFaiSVMvVcdf", + "payoutAddress": "XhVkDGUtY9WuptckKhdeXEgcNfHVXyz83Q", + "pubKeyOperator": "9620ca9950e7f57137c7743d6fd295f33f829772ecf406ba30f4344fd175ba343187c7ca16ce513a3e30ece278c5a51e" + } + }, + { + "type": "Regular", + "proTxHash": "7ea81723964cb105af40609cce9ed3f943e4b3bd9eda924223eb94539335e7d1", + "collateralHash": "19776bac1f3d2d492c3ec05c7a84314b4ecd0a1c9872f737438ab0a1726b782d", + "collateralIndex": 0, + "collateralAddress": "Xq45uvePHpL5PQasJKD3VhRhtziSxARkfF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.137.115:9999", + "registeredHeight": 1778295, + "lastPaidHeight": 2127165, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg4sjXQWbNGdsyN7zCwvMYiZVfdmwnfpQJ", + "votingAddress": "XjVSJwjzNeSmtEULqWizRvZgYpH8FXN232", + "payoutAddress": "Xq45uvePHpL5PQasJKD3VhRhtziSxARkfF", + "pubKeyOperator": "0955e06535de3ea076e1d2724163cb874757ec691306e7a8f9cd025baecef7eccd9727af8d57d70f2a54fd8ce749f69e" + } + }, + { + "type": "Regular", + "proTxHash": "f15780c749558cc40e46c55c1b083f431e2f17f5cd194b07b0325723853b63de", + "collateralHash": "52ff079d8c433062806ac1c0580d23272162aa9c097da8e525c160f4fef86d8f", + "collateralIndex": 0, + "collateralAddress": "XiCXMmSkPc7c97S4MhrcEFEjf7Tmeivhtv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.158.112:9999", + "registeredHeight": 1778295, + "lastPaidHeight": 2127169, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp66CHmGU4c767TFqmCV724Y7aPEEyx3VP", + "votingAddress": "XdXTKR9TNbDQM7fZ2ayV8Nz2mZGkpvWFqq", + "payoutAddress": "XiCXMmSkPc7c97S4MhrcEFEjf7Tmeivhtv", + "pubKeyOperator": "8d0fa2d48c30cd4ffe962be1a6a5aac65496d2074a83dc9c76495bb250038ff3f2faa1c7c3e9296b580bdaad625b0bc8" + } + }, + { + "type": "Regular", + "proTxHash": "609ef9a5c1b77d6dfb13ed1b99def8ca84c0bc468fe58f2a108db807e5938efe", + "collateralHash": "05cc761c614bcdfe704a39a250e31e9a61490c7ad72b366ddd744dc76ca5270a", + "collateralIndex": 0, + "collateralAddress": "XjRBAvFeXpi4P1GFnpoAgsSwHK9i8AY955", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.208.173:9999", + "registeredHeight": 1778296, + "lastPaidHeight": 2127173, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfytLGkfsM8fMsmpomq5zs2367heVdWXzT", + "votingAddress": "XizZMHg1mLg4zXM8ja9rNJitPNg18apc8C", + "payoutAddress": "XjRBAvFeXpi4P1GFnpoAgsSwHK9i8AY955", + "pubKeyOperator": "12b08fd564a3692168e09588d4de5659bf403577a935aba8d0b9af3c1a6d2e93c4c9a8f55ef8abf99017e64c3a246aee" + } + }, + { + "type": "Regular", + "proTxHash": "25cf387b3e468fcaff3a2ef7332825291e79f20af0b571ef10ea11ef770cbb93", + "collateralHash": "377ba75d7f20eb8347b854fe9fa424ee01a6667862ed2b0f3bbb60880e509003", + "collateralIndex": 0, + "collateralAddress": "Xe16NB729Lxx1a5T2Ss9ipGJE8yaEzTpZM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.150.170:9999", + "registeredHeight": 1778715, + "lastPaidHeight": 2127154, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuhN34g3fAm82ChpFYYTXyCtv1hcWgdj3Z", + "votingAddress": "XxzoUnfwyUCapywUmxhqXv8w2fsL7zsdPK", + "payoutAddress": "Xe16NB729Lxx1a5T2Ss9ipGJE8yaEzTpZM", + "pubKeyOperator": "1621367dbfc7dc03ffa35d9baeb24f16eb50307aeebb8b81980c74c53c68804276e3b51a14df0eccca3025db2f0d8c95" + } + }, + { + "type": "Regular", + "proTxHash": "294a325bac5c9d58c280ff5405f8356a0d4787c9a2201401664d999123ca99e2", + "collateralHash": "a83e00a133d05b436699e78704901038b9cfb465eb11b74bd322740cfd3342be", + "collateralIndex": 1, + "collateralAddress": "Xt2FZL8o9qRVib9xZWV5Xv9nrr6HfXNfL6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "104.248.166.192:9999", + "registeredHeight": 1779174, + "lastPaidHeight": 2126242, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbhH6JWYvFMXQEKNZ1B8RDatUgHL5rFTam", + "votingAddress": "XtD6t9YLqY5vhEEMm55h8PAt99tX1zVfrA", + "payoutAddress": "XrFzZUjNaE6xdJESuPwFjao6t1WetAyv8r", + "pubKeyOperator": "11bae981d539da0ee9be60e272d53a578b193b3e3ea6deccae0a9d0c1732baba95d4c1581dcc202d33323d623b6c0ece" + } + }, + { + "type": "Regular", + "proTxHash": "168157f2d00ed21605b94456777e8c38a5f472c0120a5ff8a3a59d49b7b94600", + "collateralHash": "19f1007960b4f3b1bd2f8d853e9de7d571e7d9128198b4f13275b2b093a1fd73", + "collateralIndex": 0, + "collateralAddress": "XoUA3aWQwEPyE4zEjTGTtKcQ3Mwq5HAPYy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.8.250.154:9999", + "registeredHeight": 1779661, + "lastPaidHeight": 2126291, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117069, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeSvQHcsD7xWZUA6cn8kWKuWNCbfgSAhGA", + "votingAddress": "XvkMqWTg9kiAYF9azKG84tVtZqXMk8J8TN", + "payoutAddress": "XvEDt3wS3hx4LFiKgtMkpMFUd2XMBqPHiA", + "pubKeyOperator": "804dc6b5a5063bb5ab45ef44f58fa415ef00a79ac3096f4e4dcef5755450a7b86ccf6bf5d2660813f27809c9eb6882fb" + } + }, + { + "type": "Regular", + "proTxHash": "e6e2c5bb8056c3bd170b1c7801d590b1ef26d497fffbe103e6ee8136aece8873", + "collateralHash": "e5d457f2ce9140ebdb47cd6b66d11b8e0d08f8f3eac71b21126b4cd3dbb2c19e", + "collateralIndex": 0, + "collateralAddress": "Xse763QmASN775AztUwxNGVqKpeu9Hp3T2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.249.147.8:9999", + "registeredHeight": 1779673, + "lastPaidHeight": 2126265, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117054, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhLw5PhpeP62jFG57XLvgzxAbjWugzbD17", + "votingAddress": "XcTbAUJ2zE3dBbcWzwyPMHqE3QP8Nh6cGM", + "payoutAddress": "XcP9NBjr7N5JqjcEZZByFJhgoGPgk9211e", + "pubKeyOperator": "9482b8ae539bca1c611b64f62434d98aac768b53fd88929abf708719639b139bc3be9dde0d03b0ff1508c66a82508a90" + } + }, + { + "type": "Regular", + "proTxHash": "a690fa4bb26378bb4b1a929c1643b3a8b9f778ed8d25664cb081edc267ec5bf9", + "collateralHash": "9bf3f1e5d5c24295643b7bb7b9358747f8b8bb2a15a10cb0314706924ce5776c", + "collateralIndex": 0, + "collateralAddress": "XiLaTJ8rXgLj3UY1jXacXNWJBBLPgwNti7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.200:9999", + "registeredHeight": 1780384, + "lastPaidHeight": 2127172, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfu6L8GkqPAPMGevviuSRhWPU4oh3epMGj", + "votingAddress": "Xj4TFAXsqsX3mTgaj5iBp7n2iMgprtNUeR", + "payoutAddress": "XizdZZtJGa2i768wrLm7jYMf5iFAjTi2jE", + "pubKeyOperator": "95804cd054414e3f8a3577bcdc64430f7c5fb0b1c373188449c637945dc261f98370b346c964d412f799fe143b4781c6" + } + }, + { + "type": "Regular", + "proTxHash": "a604705dda2e4998448516af87bf35a44b363bd0797c02ff399a5dd8af7fde14", + "collateralHash": "0e8a9056619805bc00b8303c09e1bf2788beb5304c41c3c5f94d93077bbae18c", + "collateralIndex": 0, + "collateralAddress": "XquoATJYgVJuHSo1SqTgXypsP9Tnpy6qPh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.82:9999", + "registeredHeight": 1780390, + "lastPaidHeight": 2127195, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsq7BDZwyF4c2Fe18GdhRbgqSQFMCkaALc", + "votingAddress": "XmyCj8Qv2jKbq7xcvgmYgExdhR1nCewhds", + "payoutAddress": "XtDsjFCkDBFXjny8A4988yGGsPXWuysesY", + "pubKeyOperator": "87d26451e46cf2ab1088a2bab24dde16b8a883a01e0ce185022a7e62bca15cc8ac099fbe666981c5637996ec1498cd9b" + } + }, + { + "type": "Regular", + "proTxHash": "88ce9dd3bd53442fd8bf461638c2d7c60ce1156d73a4b8e3a3d06c9e6530a69d", + "collateralHash": "9b773ccdad84949881e5ddf52124c5c4c8471ca6c0ab72df8cb975784a53d286", + "collateralIndex": 0, + "collateralAddress": "XrZU7CJC3XndxNkqmoUoK9mp9DLB8Zy7q4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.80.8:9999", + "registeredHeight": 1781503, + "lastPaidHeight": 2128106, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn9kJtJqaNRg5q3N5cJgRVmwdbK7JuhZHF", + "votingAddress": "Xnp6BekQ6G1H7de2LFDAy2DLjFvPk4KpCB", + "payoutAddress": "Xmah8zbEr9o3wxN6UzHT1SCz5iAsFXS1iU", + "pubKeyOperator": "05bd379f37fb73c6d4375f895229ec927bfac6cd39bd77bdc42e5557dfbc5ad5806831747f0d7960bfba3496f544570b" + } + }, + { + "type": "Regular", + "proTxHash": "7b6c7c559704c8752eabae067f557653742bbe03607bef7a2116dbdfd746b347", + "collateralHash": "2896fce0509e30ad326fe609fb6c9560e9936cfcf16ffe30c1331f4727c926b9", + "collateralIndex": 1, + "collateralAddress": "XgQnz8SFYhvnYGCAjW8cH1FBob6Ufzbu81", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.52.0.210:9999", + "registeredHeight": 1781771, + "lastPaidHeight": 2127448, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1900276, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoocABiUs3ufo1QDNLD4NsEiSQmXJRX5ik", + "votingAddress": "XxTqbn3zNuiYXy19rv3K4XvC4odT1bVwLX", + "payoutAddress": "Xq3R6WNgmNqQYKZpVnyhskGjy61FJWHCMU", + "pubKeyOperator": "864388d88349c7db23e21fdeb21dbdc9076f2661b51a6c7c00c487cc76a716ac3ede05ad3056db52a29b5ca897ac8074" + } + }, + { + "type": "Regular", + "proTxHash": "880551e949445ed5429ab456318a8b729a0142303185552a9568e1643d3af89a", + "collateralHash": "3e265f5045e89851233a375fadfaa82464c1e36ecd60954fec745339aee56cd5", + "collateralIndex": 1, + "collateralAddress": "XjAhHsX8qFrcQ7YCpcH2JQzYRQDm3vLpF3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.103:9999", + "registeredHeight": 1783103, + "lastPaidHeight": 2126337, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpCsPz1zkAp55DJtBtiTNMdtnDqjTpRaCE", + "votingAddress": "XbtoWhAC96Q1jr5fMqrB1Dqa7ihkQBKiuh", + "payoutAddress": "XboPdzpmwMpVo6J9i6mTubWp7Ji23zqx7t", + "pubKeyOperator": "880868010cb24c669883758df832f7c3840ae912bb726ca7778b0109ab09c02c6d9e4bba5bbb6f39bfd91a0d44e5b93b" + } + }, + { + "type": "Regular", + "proTxHash": "25047cc2a049ba0b8669cf3df62dfecb7fb6d71b339b5fa36eb5ab3b2f0189fb", + "collateralHash": "d35dc5de837422042f7a50232360b5ddaa6a8f86747c5558c8e78e2afd684d34", + "collateralIndex": 1, + "collateralAddress": "XkT3cYhVniVvCT56BAgcUgDzfMD7TrxswV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.70:9999", + "registeredHeight": 1783547, + "lastPaidHeight": 2126641, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoiMDaMuUyGeujEgQ2LzAzd3LzeaEcVurR", + "votingAddress": "XqNV8DYwMotXHaxvruSmyDUgUusEbGbArr", + "payoutAddress": "Xu9MUEV4Tjf5GiMMJcTH6LyvtqLyHthP9y", + "pubKeyOperator": "0290dd9673f6a3287a1416e2333982bec2a1909ebda0165cdd665ec1b995bf1be4a53a0a0d5acdd56fd176536c56e107" + } + }, + { + "type": "Regular", + "proTxHash": "08e7ef5559ebd0765772f3c97b37ebb0a1bc1edbb6aab48c9dfb50ac5b97c8f7", + "collateralHash": "df45d84f0e491b45ac3d235c93e1ec83abb6f9d8d437b058f5ffc0e2dff753e8", + "collateralIndex": 0, + "collateralAddress": "XgvQPTe4H5PEbRD6Tem32niVG6NRq4zGjq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.249.144.187:9999", + "registeredHeight": 1783677, + "lastPaidHeight": 2126292, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117069, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxhKX3ubxJC8dEXkgF7vmvCrUXAWk2jJpc", + "votingAddress": "XbsqpdhQ1hExVDdTfStg2aTAdjF1meVxPS", + "payoutAddress": "XgxqxZW6z1kdaB4yHp5cs1XtzdeqCA475r", + "pubKeyOperator": "823c0acf3e7ca3969ab8e586b9e5f428b523a7e347101d0d6d62a5265f421563a7c9ac3ca52ce1b4399aec0ca42499fe" + } + }, + { + "type": "Regular", + "proTxHash": "3f892c559ddf354a7389e3652fa9a9ff72172c5cd31e40131a2c6faee3326203", + "collateralHash": "18681878ee855dacf3c1cc6af35b9397368f28b2660d283926a370160b9c67e7", + "collateralIndex": 0, + "collateralAddress": "XySGEA6xaujHfDXKefSZ7uDowf9ZK7UfAj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.8.248.145:9999", + "registeredHeight": 1785298, + "lastPaidHeight": 2126293, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117070, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcWR51rR4nef1b8ZAwPq8otXSBkAdNpTKi", + "votingAddress": "XxkNwEGRr85WfFpcowGbfmuXCE1fBEq4ZN", + "payoutAddress": "XaosotWGTQsbfHBw5mzyk7HhzsuDRGsWzP", + "pubKeyOperator": "8eff3348415a92643257881faa2ec61e225362a97bd20cc767067b8e553f111d4eb66990b2b23ee2ae620357c543bac8" + } + }, + { + "type": "Regular", + "proTxHash": "983adedb7c045b324bb8d69bc4826736ad86e76ce4bfc5d2b7e4dd69235c4616", + "collateralHash": "2e39e81f6aa44884af8d48279190cdb0cd101d5fc4928e0fbd353ada57f6a9d1", + "collateralIndex": 1, + "collateralAddress": "Xvwhyr758gc4UPZb554vF9G4sntHFyseMu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "83.239.99.40:9999", + "registeredHeight": 1789354, + "lastPaidHeight": 1984391, + "consecutivePayments": 0, + "PoSePenalty": 3994, + "PoSeRevivedHeight": 1890861, + "PoSeBanHeight": 1985226, + "revocationReason": 0, + "ownerAddress": "XrJ3rS7egMdo52tfG9T3PK4yCj2gQwwx2c", + "votingAddress": "XrJ3rS7egMdo52tfG9T3PK4yCj2gQwwx2c", + "payoutAddress": "XwAZcVd3gkYNFwCmMKG2gXKfgurS8NCXE4", + "pubKeyOperator": "92b085fd5595e59d133d343eae7f8eb34da2754fc3ef2a250fc8c317401d7163126e3fee33c58a5ac70b7e04a176fe66" + } + }, + { + "type": "Regular", + "proTxHash": "9fe424cf9269d647ecb4a65e191253f9fc44eed3ea1409c744b962d5ebc17efd", + "collateralHash": "46a3fa8a371e86a9db5735106f2e21f3ce2202eda01e1d5d66b26200ab3c7e35", + "collateralIndex": 1, + "collateralAddress": "XjDxFYgNmMm3YXACta6zNT6gB4uXQqcKQj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1791112, + "lastPaidHeight": 1859908, + "consecutivePayments": 0, + "PoSePenalty": 4421, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1861098, + "revocationReason": 1, + "ownerAddress": "Xh2AaX7PVjWE154fW4YexAfJHf6QHsfeAt", + "votingAddress": "XosnXZ7RSaLqgiuh1Pv7ZpXd9TFJyJGjZM", + "payoutAddress": "XjDxFYgNmMm3YXACta6zNT6gB4uXQqcKQj", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "b47e7267d411d39f066ca29b15ead6a3abd3cfe2f7ff65b51258bbf4b561186b", + "collateralHash": "5f476537c9b61efc4e92165f40e90560ba266ffee18e48d63cf832e0f4348ff4", + "collateralIndex": 1, + "collateralAddress": "XtAUu3Bxo11MW8HedfjFNgQiPZvYSv5psZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1791112, + "lastPaidHeight": 1859903, + "consecutivePayments": 0, + "PoSePenalty": 4420, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1861386, + "revocationReason": 1, + "ownerAddress": "Xj2FhePBEXcztjZPzak7AnBZ9Pa5E78h5s", + "votingAddress": "XuS8VkQdkyospoZibXH8ovf3C4j1bdBVsj", + "payoutAddress": "XtAUu3Bxo11MW8HedfjFNgQiPZvYSv5psZ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "c3a628d525f3de6e96c34cdbedfd94398674f3d105a7ea1473e676fbb43873d8", + "collateralHash": "7adfe021f6702bb0d913f0704ab57603a66537ee42e00af8fddcf2fd00c232f6", + "collateralIndex": 0, + "collateralAddress": "XrtSGDqNQBk7rSXE1jL6LeKbBtmiQEY1zQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.147.202:9999", + "registeredHeight": 1791112, + "lastPaidHeight": 1859906, + "consecutivePayments": 0, + "PoSePenalty": 4420, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1861211, + "revocationReason": 0, + "ownerAddress": "XwrsTp9H7EbGafm2T9wzft9z3cEu8GbDmb", + "votingAddress": "Xdpstqw5a5ZrcdZ2hw1aBT5p4t1F8b3pUF", + "payoutAddress": "XrtSGDqNQBk7rSXE1jL6LeKbBtmiQEY1zQ", + "pubKeyOperator": "829841bd088418fdecdeeec7420b30f66e2021f9d4c889d66437506c0ded6ff6285eb2c5728048e6cb1ae80963ba8272" + } + }, + { + "type": "Regular", + "proTxHash": "c7b1cfeca9341f0d5d77ff24cea6566302ec22825b46a87cf0adfb443cae47b1", + "collateralHash": "a3cf655f5a867ae065dbb2fc12f88daa5c94c9df68b4fd07641c01fee18f59ba", + "collateralIndex": 1, + "collateralAddress": "XryL68FBZHZa9tDkvYCxzc3vcB2GNf6TFB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1791112, + "lastPaidHeight": 1859905, + "consecutivePayments": 0, + "PoSePenalty": 4418, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1861955, + "revocationReason": 1, + "ownerAddress": "XkHaSb1WtLYBgAtuTXCurJLtVKY1MWoct1", + "votingAddress": "XxiUgYt1fgz4fGmFgLsK3t9tnuWoNf6LH9", + "payoutAddress": "XryL68FBZHZa9tDkvYCxzc3vcB2GNf6TFB", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "6d60cb8dbec6a73f85edab6b7193b420dd4d9d6e3f573881aeda38ec7e71c44d", + "collateralHash": "a1a25ca1cd9833ab4df102cea37c42bfa6f73f255768957566c2dcd7e7ced126", + "collateralIndex": 0, + "collateralAddress": "XpQu57Mo9rD4XrBXofh4B7R6riw1zuSGdL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.208.178:9999", + "registeredHeight": 1793504, + "lastPaidHeight": 2127145, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi8oqTEb6mL5tPrSeYkW8LDyVKVcwq1WWt", + "votingAddress": "XwaGVDDoabGLnhTkNWqsrgvQtu3dfvNwCr", + "payoutAddress": "XpQu57Mo9rD4XrBXofh4B7R6riw1zuSGdL", + "pubKeyOperator": "0ec35c4b88e8501e21f46347a1910db9d6fe0a2452415a986ca009bc0a175bc2d6afad05c502cab3d1eee30ebd6489d1" + } + }, + { + "type": "Regular", + "proTxHash": "687711b0f8514f5a269dbc0cff1a86de49474581d13a1a293e9976d8a947f7a7", + "collateralHash": "43ee19a7d26ae1bd114a691f9c125e5d22b7561e23cac26de7a282103e8afcbe", + "collateralIndex": 0, + "collateralAddress": "XfkJDzSB2Zm2HAuJXTJcDqSuNNQxMngF1k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.147.231:9999", + "registeredHeight": 1793506, + "lastPaidHeight": 2128561, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2017832, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnfoJSgrFWWdEArKSiDB671qJjecfyi68q", + "votingAddress": "Xh8jeKFH3noMr43gtCMdVSQjDC8LgrrhWF", + "payoutAddress": "XfkJDzSB2Zm2HAuJXTJcDqSuNNQxMngF1k", + "pubKeyOperator": "8c7a46a89878b6a2b4d575ad31256f93db08cbecebf0be4d2b66cd47d49e5f4d33cf0bc2142a88bae2f10e6ff06785cf" + } + }, + { + "type": "Regular", + "proTxHash": "c8b72cdb034ebb8328044e1bad6aa796c1387cf5036714ff764027f3c9a2983c", + "collateralHash": "6fa1aca7cd9b648fe4fca2a8c11d5ba5fe3d3ded18ccbd59b8493734c87a9d5c", + "collateralIndex": 0, + "collateralAddress": "XgVMUj8mMcxXQjExomg1fkekxTzQidjrEg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.119.93:9999", + "registeredHeight": 1793507, + "lastPaidHeight": 2127140, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkVetxDZ8FbxHHMaifP9Yh52cH8gTyg3z9", + "votingAddress": "XnjRwee7jKbHwVHjXY8CJdM8pcimE5WpEC", + "payoutAddress": "XgVMUj8mMcxXQjExomg1fkekxTzQidjrEg", + "pubKeyOperator": "97f07b28b066304e19d89d3cf97dd03768f2e848eca12ea140cf08307a46e733b1d5ce0e837bdf87e057b931fc1e8a28" + } + }, + { + "type": "Regular", + "proTxHash": "a59a5a495e70796fc143fcdd9b7f1da1ac375e5e82d9c45687de269db375d296", + "collateralHash": "07b42131adab8f3062dd8541a04659a211541f4b17a672b9ef453e7a6e1677af", + "collateralIndex": 0, + "collateralAddress": "XrSujns8A7zxqXAerFNnji9zuW6pwJnKbq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.176.80.228:9999", + "registeredHeight": 1793507, + "lastPaidHeight": 2127156, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkMn2gFYDfKnKUEG5T3GNvdosXo2maxsdJ", + "votingAddress": "XsB8E4Rfn2pnqYwExx3aEFS5qWksyszQgN", + "payoutAddress": "XrSujns8A7zxqXAerFNnji9zuW6pwJnKbq", + "pubKeyOperator": "06f14499577feede9ecb06ea26f789dfbb347c9295f7ecd051febce948ae33b80307586cc530ec59ecd794d71e0c509a" + } + }, + { + "type": "Regular", + "proTxHash": "218cadd3dd270da240176578cf6c337a529dae97a4a894c80ea384a25bc01683", + "collateralHash": "b4d70868d952a3a1eeb069699035a48d1907df9e9472584040af7ee9bc36246d", + "collateralIndex": 0, + "collateralAddress": "XsXGV9k8dXnUTCdiykSJgEmDQGDM7jU6Aw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.211.103:9999", + "registeredHeight": 1793508, + "lastPaidHeight": 2127151, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv6Uyhq36MtzsUBCBCdqvnGvhuGSfg4i29", + "votingAddress": "XsMc3VRRKXRFsvQ9FDrXBy3x9N9tgcgyjb", + "payoutAddress": "XsXGV9k8dXnUTCdiykSJgEmDQGDM7jU6Aw", + "pubKeyOperator": "858d18297caf36a02dd068ee811448b11aaddc29070fe109350e14f270acc84e6f21ce4e76ad685dbfe1f75f12b123ee" + } + }, + { + "type": "Regular", + "proTxHash": "52cb57b41d2dcc2131401217f557880132da1dba3829eaf5124d22d0d2f93030", + "collateralHash": "4f40766fe68d921c17be94041343a956cb535289f9330eb4712638d9bf29f661", + "collateralIndex": 0, + "collateralAddress": "XqiMzhi7iVeNznBVY3XY6Ft7vgaY5XL9Ao", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.153.42:9999", + "registeredHeight": 1793510, + "lastPaidHeight": 2127138, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWXbqbqd7Fbvuw5gBCKuzGP9Tq4sj654o", + "votingAddress": "XuAUvmDARXokJwfEoK8hBifKhCSNvp8W48", + "payoutAddress": "XqiMzhi7iVeNznBVY3XY6Ft7vgaY5XL9Ao", + "pubKeyOperator": "09af1cfa3af55bc3b888127d1450e89bae70c825cfcc73bf7dbe80e2a68bd63cda3a2533c18c33dad6a41035815e5a77" + } + }, + { + "type": "Regular", + "proTxHash": "aa70f7098016af6a516ed98b5e2fa383212fbdbc5da888d620e6ca85eaf8a7ff", + "collateralHash": "212e3e7460e6121b002ffd98f42ac39277c8c632108a01a82ed22a6d56bf0893", + "collateralIndex": 0, + "collateralAddress": "Xs44jBedRLMXNFFr2F6NqizNfB5BE68GG3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.58.154:9999", + "registeredHeight": 1793511, + "lastPaidHeight": 2127174, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuzhMzJNTNpQHQJ5pNZ2kkcNjZg5vZmdJm", + "votingAddress": "Xd3FZKHTuDYvN4PMTYosQfriZLM1LJ1xa9", + "payoutAddress": "Xs44jBedRLMXNFFr2F6NqizNfB5BE68GG3", + "pubKeyOperator": "931a0e4d04b1140627656d788f4fb2f0b08beb238b1048edfe0dea0b1043e096687e9df4d806f3098aba28134c3c5c38" + } + }, + { + "type": "Regular", + "proTxHash": "71908afba08b4f5512b4fe9f9a492188bf2d08ce37c97d8ed9d35aa4e601a8b2", + "collateralHash": "03e9ae4c2a8e38a8c17b68d3aaa5e10f03be6fa1347a8edd9f83d6890e5332a9", + "collateralIndex": 1, + "collateralAddress": "XwDEndek9aMQ2FwYi99aGyxFzVQj4aMY6W", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.163.168.244:9999", + "registeredHeight": 1794709, + "lastPaidHeight": 2127539, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1989890, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyhUvuYCzY6xEMoBckxQ9oaZUdzHuL5H6W", + "votingAddress": "XyhUvuYCzY6xEMoBckxQ9oaZUdzHuL5H6W", + "payoutAddress": "Xy5141GjYYPPGDDMnepx5jteoMBU6cwdcR", + "pubKeyOperator": "07f8ff7f4ffd06f9f33585d479c672de62e202125729b0d77d2a2d318a6a847b970cfb97da6b7c2a4ccc99f765547006" + } + }, + { + "type": "Regular", + "proTxHash": "ce1736ddffa708dcc8d9ec7aa1f7dc1136c45ce5038c6b5c5487870c59b3eb86", + "collateralHash": "706cb3ce8306737060f82846b694ae9c09c2ebe412c44435c57379fbc9ba57f3", + "collateralIndex": 1, + "collateralAddress": "XjYQF8eqRgDhQjVvdiwLTVEvCoZ6hBEWb1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.250.97.52:9999", + "registeredHeight": 1796077, + "lastPaidHeight": 2126199, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120136, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcWFxYXjm6gWA1bBbzQZVsfmPA5HvRuLJe", + "votingAddress": "XcWFxYXjm6gWA1bBbzQZVsfmPA5HvRuLJe", + "payoutAddress": "Xc3vnqgx2MiWqQzizLtzbXkGz4Q3sP1mPF", + "pubKeyOperator": "1645fb6c0c86d5d2de26afa3c78acc6101d0950fc4f29f313fded488928af1aad37e8755d3850d8912059954999456cb" + } + }, + { + "type": "Regular", + "proTxHash": "0420e415b742f2705f64082f54254a01e10d1f4352b886cc4cb215c912250a59", + "collateralHash": "502d444fb1500b7557b0b7402299fbcd8ff02923e4d61782b9dfc0f6c499d056", + "collateralIndex": 0, + "collateralAddress": "XvxhC53yeL6EfNRyGK2kAoTJmf344KtbAL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.158.125:9999", + "registeredHeight": 1797351, + "lastPaidHeight": 2127148, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkD4nEaHYMhjZeEEb6ZtbX5yJUhTh71BHA", + "votingAddress": "XhooyMu3xQNcwnna5KzKBLD6bnwR943fd4", + "payoutAddress": "XvxhC53yeL6EfNRyGK2kAoTJmf344KtbAL", + "pubKeyOperator": "19f5ef4c57feae98906913360da7d15f1ae2c84bec8bd3a2f520aea2987de4ca64460177067ce6092d5bd38931f8f1e6" + } + }, + { + "type": "Regular", + "proTxHash": "32596393f2ea654daecfa8775b32c206074ef6538d3cb066b8099f067d91829d", + "collateralHash": "e69920a838b36f21d55d1a5ff7909de0e1f5f651bd74046e5991a646b7c3d122", + "collateralIndex": 0, + "collateralAddress": "XiTYFDxrpjqAiQM3p6ujKQLCLGmeC7i5MC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.144.6:9999", + "registeredHeight": 1797351, + "lastPaidHeight": 2127157, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XusKm7GjkXjLjaU8KuCk7B47QAMBRpwGAT", + "votingAddress": "XkfgEUgYpA26bsjHegByxkpbUsUCeLDmL8", + "payoutAddress": "XiTYFDxrpjqAiQM3p6ujKQLCLGmeC7i5MC", + "pubKeyOperator": "81ff33cc0a512265dc78b3b629db019c386e04a6734bcc6969649e7184654ba04d6ebeba85ee9311f63ceae78117fc46" + } + }, + { + "type": "Regular", + "proTxHash": "4112d78386ac5f78666ff63c5bde0b01237289a0eb30958e344390be18154475", + "collateralHash": "daaa0d2b3db4a454ddfe464f46a8d6558117233bbcd0b3f4ca943934d87f634a", + "collateralIndex": 1, + "collateralAddress": "Xb2t6PibPdHfAZNNRiFeUeruG8wcxwguNJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.255.106.192:9999", + "registeredHeight": 1798943, + "lastPaidHeight": 2127058, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2100898, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxVaexiEnYCeR9PNndDj85HY9SCRwk8M8W", + "votingAddress": "XxizPCYic1RRKTjqV59ybeppQ6JSGtEdig", + "payoutAddress": "XyuUYPWBAHPhgSVbccf3XQ9P5N1FMa5uDu", + "pubKeyOperator": "12954e602b3f82a33cf7ee3c4b2267fc37f1681ff855e7cc3e9977a64ab74f3a9ede5644d6581e1f9af07d1adfa8c8f8" + } + }, + { + "type": "Regular", + "proTxHash": "5705b98a9e4aaf21722c59e538c3572f39c7123e2b2c6e851bff89f43c560129", + "collateralHash": "3d2deb45f8c7e39c9ef43cd83ce668c1f48a426ab351e8925e4406c78c9648d5", + "collateralIndex": 3, + "collateralAddress": "XvEC2BYE9u9Dift5jHhJyKbVcNWVfxY18a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1800162, + "lastPaidHeight": 2060774, + "consecutivePayments": 0, + "PoSePenalty": 1956, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2062950, + "revocationReason": 1, + "ownerAddress": "XhP1ZCyL6hEuBEv7N67CrRAoCnTsN7Ycct", + "votingAddress": "XbzHCnFiPnVNvqXfTy9id9A6r8eUUEzHyV", + "payoutAddress": "XvEC2BYE9u9Dift5jHhJyKbVcNWVfxY18a", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "5543a38d0d24a7df97c10f979e93bbcc4879e167e1871c6e0118fb2e2221067e", + "collateralHash": "a9b8500bd781379a42ab39793c4686c752755cbc22e5141edce7577b168e06b5", + "collateralIndex": 1, + "collateralAddress": "Xbk7Lsk1q7NGJhNMYpJUGUr6eg93AbXcjv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "195.98.95.210:9999", + "registeredHeight": 1801395, + "lastPaidHeight": 2127252, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121110, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xei9ArTNwzRHv3qBASfPiWAQUmuiEdrvnm", + "votingAddress": "XhzVD5o2zrp18u7acBMrEqj9EZrNiZ1peu", + "payoutAddress": "XeV5WGdH6ztS66CCz1qiVNjdZXrJx7KPGY", + "pubKeyOperator": "019a66139c4052009b8615c73dda4740357bbb8120603d641de76911bcbf4ed747c2c5a1b88069a5395a442dc1cd880d" + } + }, + { + "type": "Regular", + "proTxHash": "280705af7ab4a5b00e0c4cef3339afb62eb17bb09859b91a38e1b35b7b0aa132", + "collateralHash": "bc930fc88b08131d76859f3c001bb08f26514eac600a594124c87b42cb0b8ba8", + "collateralIndex": 0, + "collateralAddress": "Xx3cCZ1MKVrwcTLJe5hw3fTbrjPjjeNzBe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.143.208:9999", + "registeredHeight": 1801791, + "lastPaidHeight": 2125814, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1843534, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv5GtWtD1K3SFpPCv4f6Pb7UrcwThJ6Siv", + "votingAddress": "Xeo4HvftMDv9cu63MpDdME3cCvgmD2dWnz", + "payoutAddress": "Xw7tErwUc5kLtPBZvgQiPkRcoL1Y1ANLDR", + "pubKeyOperator": "066777c651ef622876753ee878e4b0d77755ed6aca97f793add7225a4658c4ee912403ead16950f7dc67b941959f569d" + } + }, + { + "type": "Regular", + "proTxHash": "9eb193e12eb19d6097caccff7dfa2ccc12da9e9a7a653153a344f8cfa0cc40e5", + "collateralHash": "0ddf6fbd117cfd6217600ea40057c07e95cf2b0c7522dd1d73cfcac8a7d1e438", + "collateralIndex": 0, + "collateralAddress": "XwYGYTNaCTkwszFKjG7uEYEXKS8PxoymCX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.88.22.66:9999", + "registeredHeight": 1802185, + "lastPaidHeight": 2126250, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpjRFzNvNvzaN3K9BhsGEF2VTtJp26Pkaj", + "votingAddress": "XhrUfzgxCadmHYBPVFA3MkrGrnZMdTqvce", + "payoutAddress": "XwYGYTNaCTkwszFKjG7uEYEXKS8PxoymCX", + "pubKeyOperator": "8a2b8298b1727fc348ba4b34417d6d901bd23b10c6440dcde0a01163c1b7f5a2624432731c1b0f5bbea57f97166a3592" + } + }, + { + "type": "Regular", + "proTxHash": "e4fd444819ffa2fc55ffdfd9c3620d131b49a52a1467eaf19a945caea588e11b", + "collateralHash": "6e8629b94882b6639a52ff1e98817b3d4704aac33c4fafe31fa54ba66f74f42f", + "collateralIndex": 1, + "collateralAddress": "Xscie7yHGAnNurPDCwRcsjSyUsdTdni2kU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.204:9999", + "registeredHeight": 1802431, + "lastPaidHeight": 2126400, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XepD4vSo1i4ta4R73w4kRKMcnWPouQeuY5", + "votingAddress": "XdXXxc3KCxmfPfwPKw7mHNpitFFL6ba4RJ", + "payoutAddress": "XdkghZQzJFCrpC8vKX2Wxe9mt36dnv257g", + "pubKeyOperator": "0d8001a321a8639db539d44cb5590660ca272d2bc32df131c3f31ecd2978784ec90f0ac9ebb57f92987c45c58bcd7739" + } + }, + { + "type": "Regular", + "proTxHash": "57da1145a70518412703581308eb1069ef3cbdf996b17171a194d9b76f2b7507", + "collateralHash": "db4ee5406bc0b4f38cb40e9a43081fa27decc50f5c05fd60b5314c263daf5a3e", + "collateralIndex": 1, + "collateralAddress": "XwMfVe1t5qzEsENFvXCki57jMJeJT2KTCg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.197:9999", + "registeredHeight": 1802438, + "lastPaidHeight": 2126406, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhcKgm2hE4Y2JrZYNBrXouhK8TCLhWHPZ7", + "votingAddress": "XqskDuSF4jtjW89X832S3p8wf8GP19HcB3", + "payoutAddress": "XwMfVe1t5qzEsENFvXCki57jMJeJT2KTCg", + "pubKeyOperator": "8d98ee46188be48a1cdac2b5257d6f90f5bab21d02d7eb03c540ae38b85f6f6f6bca52dc92320eb7a34d8736ed078bcb" + } + }, + { + "type": "Regular", + "proTxHash": "d35bf81e3fd0e70f9db6e7f228fe6becdcf3fb0eadf407dfcc7eb2307d51cd2c", + "collateralHash": "b7ce7685c5bf8ecffb1247455166874719e1e01dccf4c16db521abc36e7a520b", + "collateralIndex": 1, + "collateralAddress": "XnDtKmBdocsHU1X9891v5T6ecrU5j23umP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.99.199.59:9999", + "registeredHeight": 1802956, + "lastPaidHeight": 2127523, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2124357, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWqQSS63buwEDTtisaxjCbqdoTPDoHaoW", + "votingAddress": "XkWqQSS63buwEDTtisaxjCbqdoTPDoHaoW", + "payoutAddress": "XfUXdmrY87e728By3AqnQN7ysK3tkHRJoH", + "pubKeyOperator": "91b34ea0026f3db528c47d189e2f37039604ce5338924beec47af59caf16b209d7772f854e725b4c1af92412d4237396" + } + }, + { + "type": "Regular", + "proTxHash": "ed27be244d17bb1739491e8295027c489d2f662f87d20783e21648247e422cd5", + "collateralHash": "ed27be244d17bb1739491e8295027c489d2f662f87d20783e21648247e422cd5", + "collateralIndex": 1, + "collateralAddress": "7kpCbhxwxv1ihPuymeN8LnknTNTsk7NyJC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.24.104.60:9999", + "registeredHeight": 1803153, + "lastPaidHeight": 2128229, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976857, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfefyzTHKN1soC2ZW68vhzKC85BgZjcUZQ", + "votingAddress": "XynDiG1U7iU9E452vXVHV8Tby9stNCKq4D", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "96aeb4f84b2858f3b5be23522db5d41e3a0e4217546fefc1c7766f86b1ca7f3bae071c67421c689bf164270322f97be1" + } + }, + { + "type": "Regular", + "proTxHash": "e72c3dba5424a6ca76310a3f95f0c4fdf82d33e08fa5de74e13f85e263242ace", + "collateralHash": "a9330c45a195fcd9724bbb49f97e9f31be024dddb50269582402a84bab42f1e7", + "collateralIndex": 0, + "collateralAddress": "XyZTGVAj1a2DfieMm7bGohr6dANwDZsvs9", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.155.99.34:9999", + "registeredHeight": 1805062, + "lastPaidHeight": 2113118, + "consecutivePayments": 0, + "PoSePenalty": 3727, + "PoSeRevivedHeight": 2127448, + "PoSeBanHeight": 2128074, + "revocationReason": 0, + "ownerAddress": "XuPZUXVVu9HdcVb3zZHofXwKuCcoFLcUmL", + "votingAddress": "Xq8k8cRQkutyzLecAmUW4nvBErujR2zEKy", + "payoutAddress": "XwAMocyFyJoTuNkeBoJxm2sdvcsfXrgSYt", + "pubKeyOperator": "17e069a11672cd900cf521cf25c52264b54c36e9e5df3b819bfbb2ed998dacb2cedb5e26b54687d78a05796991c3e434" + } + }, + { + "type": "Regular", + "proTxHash": "85e58aac069f5d3422705e482ef80401ee56b1324eb6fa6e0a610e57febd4e98", + "collateralHash": "682b515c0359596ff8aab11baa0e4f197c22670bff1d84cb9f64526f379d5d5f", + "collateralIndex": 1, + "collateralAddress": "Xqkhxb3HCwaHd1QePgSW7mjjfYHywfYGzT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.140:9999", + "registeredHeight": 1807196, + "lastPaidHeight": 2127405, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1872407, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpUakzsJkoHJu5SrkRm19jHh66dxFTCgA2", + "votingAddress": "XkYBYzvhEFkiAgq2uXi5R96XhMvk984rT6", + "payoutAddress": "Xqkhxb3HCwaHd1QePgSW7mjjfYHywfYGzT", + "pubKeyOperator": "80f999d42bfcb08a28390021155840d5a9464ce67ce209eca98da4bf6e80637b6a058204377654f98674fcce41044095" + } + }, + { + "type": "Regular", + "proTxHash": "2ed7b3471b988297cbe6a5d1367209522927a03dc814e2128c66e3827e130ccb", + "collateralHash": "16cf688282315a63e8021a841b5c04882d4bab9d79c5c4cdbdec36025ad9d0e0", + "collateralIndex": 1, + "collateralAddress": "XnjD1jrLnF52AofUUZFLWSvK8tPk3uyQci", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.87.128:9999", + "registeredHeight": 1810140, + "lastPaidHeight": 2126481, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbTgv6f5isEKSgfmRgqyZNipyQr5yVuM1r", + "votingAddress": "XmzMH427rwyH8WgqSDC6RgCJuV32haXRj1", + "payoutAddress": "XyVGNsmXftkn6fU3eLzy88f45g2LFTW8hW", + "pubKeyOperator": "18051a2d947fc1772edc420e4478f7b0e440f70cc0dd14f3e5248ba81719e45fb16a5d15e82d4f11218fdedd2e35fa24" + } + }, + { + "type": "Regular", + "proTxHash": "cb314ca77f490f31a6c404c7de766f663927ebfe05d44361087edbee7b890c34", + "collateralHash": "d625f8f52c79b6e988b8df4b9abe03e88e5d1fab7357ce07ec2f85223cf4a9a5", + "collateralIndex": 1, + "collateralAddress": "XfRMTNNU8j2J9YEJvy49HVbW5K17icRQyg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "68.183.208.90:9999", + "registeredHeight": 1813221, + "lastPaidHeight": 2126498, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1967721, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaorbKjaYiriQkMHrJiGmRFEHS9b4L8zbr", + "votingAddress": "XoLr5MWMhXaPz9E9D9Xu9NpsCnMyy2Jre3", + "payoutAddress": "XfEBpXC1iMdfKKUhivGKntQ3TSGxUBYyzh", + "pubKeyOperator": "9744dc7804c97a442697fd8130fc9e39d48abf929f3d7c62536d91ed4f735150fe1a52bf1fbea7f37e657d50684d317c" + } + }, + { + "type": "Regular", + "proTxHash": "4cb8fc33832d1b88975345b31055506cf9668e9306d9cf647cb6d1ebbdd7ebfe", + "collateralHash": "fcd51e01672f2e1907a50cf9bcc52b254c2e73a6e9feae190556ed1c8e383469", + "collateralIndex": 1, + "collateralAddress": "XxnJKpxgHUv4KB5LqLqXq6pNANABsM7RAv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.88.22.64:9999", + "registeredHeight": 1814899, + "lastPaidHeight": 2127257, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj9cohukviMYQjxMwAE1g4ZLBU5awGWEzP", + "votingAddress": "XeuwaSVXcvfMbTFQwmi9YS7KRESkRfHxPN", + "payoutAddress": "XxnJKpxgHUv4KB5LqLqXq6pNANABsM7RAv", + "pubKeyOperator": "08dd3064f9b96ddb5e0362a1c56c8d758e333afd37bc4d8fd7aa4ca906c1d89114ac59e4706665c4abe9bccd0e608ff0" + } + }, + { + "type": "Regular", + "proTxHash": "13b694fd6b0bb45c89a5ecaa10a010284323c5258ff734a4a6b13a6b210bb823", + "collateralHash": "e11cf3f9aba00f8d2c7965bbf287e7c990b5e8a13c7486b5a24ba61cb0d3b31c", + "collateralIndex": 0, + "collateralAddress": "XokTW3FocfpekepuuecHNjx3rPqAmJ98TK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.135.88.227:9999", + "registeredHeight": 1816163, + "lastPaidHeight": 2128385, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs2GmBnWdgTz2Hd4i9HprQ9ZHvtEBgc24W", + "votingAddress": "XhcbU6yJ8czbch3DvWpBnyFJtCJd5zvEpG", + "payoutAddress": "XdDgdMqGG7Lop8XAbiN6VXUJXzhrtMY2zt", + "pubKeyOperator": "0e5802f41430ae7cb59a51c32e7d6acb0ee81df686bacc7c96ac2ffd3a91cedc5c002538bdbbb6d802655ad92b70b5e1" + } + }, + { + "type": "Regular", + "proTxHash": "384808300a9d977463352d92aa51e70c1e806a3e6c311075b7fd28ea83ee154c", + "collateralHash": "1a0bfe5c57b8d3e1be5d6fb962360acfa85315bc621e5313c20b41a995383790", + "collateralIndex": 1, + "collateralAddress": "Xdr2amVc4UUBNu6fMJvR5AnwtEPj59gDPv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.48:9999", + "registeredHeight": 1816464, + "lastPaidHeight": 2128234, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976861, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmj1aMxcnpJE3EyEvceh5KWMG3hsHC1799", + "votingAddress": "XuiBJx8YXnAz58JdeQWqPT8KCbBknH5FLu", + "payoutAddress": "Xdr2amVc4UUBNu6fMJvR5AnwtEPj59gDPv", + "pubKeyOperator": "0b673d2950ac3d1d264f7b86fec5f6db9432bef6eac90556ace3f4ad26a04feb978fd7ff3c2ca119dcec44a8fcc04dbc" + } + }, + { + "type": "Regular", + "proTxHash": "2e52e4f272c24a101b7bae01d3ceefa2894a3644c9dbc3b5d8cef753d803327c", + "collateralHash": "7979105ee3f761755275924acf4b462744b1549e8b82c86a9a5cf5138d7998e0", + "collateralIndex": 1, + "collateralAddress": "XnEegkosmUtkbdyvNQSBmckCCiXDCxq8pu", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.185.40.115:9999", + "registeredHeight": 1818924, + "lastPaidHeight": 2127561, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2037045, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfkQQCCfVShWiz1jFMZ4hUxHxoBLnz6ymk", + "votingAddress": "XfkQQCCfVShWiz1jFMZ4hUxHxoBLnz6ymk", + "payoutAddress": "XurnYU6h4mPTCHee4V5Ty5pVSSW5n9KBD6", + "pubKeyOperator": "059006d7ff4e224adef379706a464ac79259ac859f40390106482e306527092125cb8aeeb30de2ff55a5bb1bf166d3c2" + } + }, + { + "type": "Regular", + "proTxHash": "94a02bd4ea7208534ef41d9900b19946832fb47faf8728918ae4e603e99e3597", + "collateralHash": "8e4fb52bd45883f750d091448fa0a262b6bee28497aaa2cc4e1f61e20c24d5ec", + "collateralIndex": 1, + "collateralAddress": "XixXNENUTghdekJKQW2JqnBf5xo74B5aYi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.205:9999", + "registeredHeight": 1821091, + "lastPaidHeight": 2126029, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvR3huxrdYbZJ7YKyuEfyHU4VSCo7yX9FQ", + "votingAddress": "XtjAxAsh9Ksi7UxWjoBoj4V41ioZquChiU", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "19829e821d704f2c5c5b056e234c441b843fceaefcfd9f02d2162e0b279b5f25065e161241fcd23f07c2bfb666d0d9d1" + } + }, + { + "type": "Regular", + "proTxHash": "b24d8a7a4bafa63704990560c163b65b284a8c6a9b44495452e9ae4539df8378", + "collateralHash": "bcfe64417ebb8e1e9480e314c74b88b28771245ec2f00deb1a123d04b6f1b32d", + "collateralIndex": 1, + "collateralAddress": "XrrYiYSBwCsKSJMFacvzi41ukm7oAJZ9MB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.142.37:9999", + "registeredHeight": 1821099, + "lastPaidHeight": 2126035, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbtT8FyKTkDVGkUrYdRg2xVgWA7omY6Gnv", + "votingAddress": "Xr7C9VCS5CuQk7VjBJH64hCCsi4BxtmyKU", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "0e36726ebf0d8dd454c3da4aea3564b1bc31e65bed170a8a345704982d26b29da7a79378a28b9cb1c9e61b6da3470f76" + } + }, + { + "type": "Regular", + "proTxHash": "111bc0f0402a2dfb26091099669543e7f9c3cdb66f69bd01b3a25662905ba4aa", + "collateralHash": "37198e5efd8d76fdd3e7c110b87748adc3188709adf6f423add13a76824b0a76", + "collateralIndex": 1, + "collateralAddress": "XjMCUv41HCv8iiWFs3c4bPnAuZ1Rg2Xub2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.79.226:9999", + "registeredHeight": 1821101, + "lastPaidHeight": 2126300, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1828935, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgaak4KLVkbmRdDZEAz1ZjVPTQhhMyU5sD", + "votingAddress": "Xw6Lw1WypchnXHEQQGz42wLhjQQ5uYwg2r", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "196ed17dec32d451636c741b7c42e40d04a0849c1c8c99664a5b0a01da6b2bafce9b214d407a757b2fc6146c1cb7a1c9" + } + }, + { + "type": "Regular", + "proTxHash": "3588ccaffdd398a02337f25b8493d9f366ae141afa705ecc2e1994911d76686e", + "collateralHash": "3030345f1378930ba746330597695fef3d1fd3e91624c21ff5d2aac1c1d694d1", + "collateralIndex": 1, + "collateralAddress": "XffX76M9GhQxURT5dmQXAT655sYjCJGEVS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.212:9999", + "registeredHeight": 1821104, + "lastPaidHeight": 2126039, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo3mLUp8x6dcLk2yJY9kJKsYhDhHkzRhaH", + "votingAddress": "XsiPCXt7SoettE97WQ5YUBYjT44Xdwmtnc", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "0533ce07d027a7d5d5924a1a050e051a39514ceb58de62ac10075a3aca3d6434f41b5e17e82162494364704433e1e1c3" + } + }, + { + "type": "Regular", + "proTxHash": "502c2eb07cc483a7770f6bfb7fe89509e3d41d001ea755cdb384ac9279ca3db8", + "collateralHash": "663496e681033f1385cb06b64fe7e8d919bb4949f4edf27df55886133fd99287", + "collateralIndex": 1, + "collateralAddress": "XtRznm9Ef3htAj7qxWRLVLuVWssMaSn5ZM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.222:9999", + "registeredHeight": 1821107, + "lastPaidHeight": 2126040, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhYVvZkLDwkTGGese7QZv6b2QCkburnKbe", + "votingAddress": "XcoCXQwHjkMwFm3kTWqiQMMxaYEKsLQx6M", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "86b6f6ebfb00d34a10f765caa1dbf096cb32275a56443b99d35e895a7f8c468ceccd77eb1caa89098bdc6a945dc518b4" + } + }, + { + "type": "Regular", + "proTxHash": "0eba73fdb5dc4ba8d652d2d063b33f8e0304e0b85884842e05a3e5da06db8128", + "collateralHash": "9a54ded9b0639031dd5a55a5c513e557ef39f7b60895df10c02da6ad7e27ee3a", + "collateralIndex": 1, + "collateralAddress": "XqqerAWnXvZuZfTFiZ1rjseVPdgewa7ozE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.50.33:9999", + "registeredHeight": 1821110, + "lastPaidHeight": 2126041, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrbZdH3psa4UbrHSPPmXinhfRfdFpzS6Ub", + "votingAddress": "XgFXe9ZF4MjjraSbki9Re8LUPsrapMTaCe", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "891cb3ef97b128cdc6158ae8949ebe7d3d473441cca9699abe9017033c7776814c4a50f50b6b24b397f5780f2b881500" + } + }, + { + "type": "Regular", + "proTxHash": "2eee5b0d827572026c8fa66ed1c24d55a1c2821f2fec1aa8afd400ddf3fd2543", + "collateralHash": "d235bf05b487bf2803b4a55a35855abd90570941ba3480211b13532f34801d80", + "collateralIndex": 1, + "collateralAddress": "Xsx62LX9VAMPRApAi9YAdbVZLoYVuNz285", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.96:9999", + "registeredHeight": 1821116, + "lastPaidHeight": 2126047, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgKQ2ms1N2L9jTzsXxRjf6cJyZmKexePZM", + "votingAddress": "XrK7dKotZd1Vorq1WqtpZcB6KfUQGn6r7f", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "0ed860a0bbdf9007769b3b60cddd1f791089d7f6c24ba1711f84c860462edc60d2a3c6404f4515e3a356ebb2bf806628" + } + }, + { + "type": "Regular", + "proTxHash": "ebeed09fdfdba3d626366ad2729c8e7754a664413f3939e573d29e63b12314ed", + "collateralHash": "040fd69dcc3ce5b1249a92546ad5235b4b54679351ab75a6589150788f916a86", + "collateralIndex": 1, + "collateralAddress": "XoZmLVg98GRdz9Tdjna89mFeHmsMHGmeXJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.103:9999", + "registeredHeight": 1821120, + "lastPaidHeight": 2128258, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876718, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtn3TCqEvc5A9q3yLebEsVx6fpdLkK71NL", + "votingAddress": "XnhUGScCiokUvJ6DXBJykByStx8Dk3g94n", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "03abf258b397a0f9b9cace91eb369a22b28c9f9ba3a071df68858611ca0904d3ad677da8dbd988f62f3525c1ab22363c" + } + }, + { + "type": "Regular", + "proTxHash": "fd0897136e8df3f84c63b67ca6b9dc1923c753ea8b5ee452d1d38e35e1422217", + "collateralHash": "044ed2af6bd081a9d6075c799dad9ffc599219b30380a927816f2971a219b28b", + "collateralIndex": 1, + "collateralAddress": "Xs6vBy92juYtUphNgDgwz2raor6iB2DAet", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.231.24:9999", + "registeredHeight": 1821122, + "lastPaidHeight": 2128182, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtrxRgLdQtEw6PCaCcp9mbKJjznzUKQ1vE", + "votingAddress": "XyHizL2ik6M7yv8FimACkTRZNY4LqTg56u", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "954fab6114b6e9c6a626ef6c82efea965c24f937fc46a56ca98daaf3685d556f07c2649e9c3d636cd29d41dd9f7af640" + } + }, + { + "type": "Regular", + "proTxHash": "96e8173b44c8ef1593d9f8e121ba6e77c962d3ba8232b441dc1b87d07d50f3b0", + "collateralHash": "7f48d656e75b3c1410a2d878361de2ebe543631779adeb0f5565404aace0ef0d", + "collateralIndex": 1, + "collateralAddress": "XiNCgy9T56z6RxXcghAqHQxYAJQzaGuFQE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.193:9999", + "registeredHeight": 1821123, + "lastPaidHeight": 2126107, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwKTUXQqKkqperv6DRdB1ZAXwZPudgCBDE", + "votingAddress": "XyygPGouMZ247uxAKPbxCd8NiLVWPVhk7T", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "191b0f9f3481afd2575d55788bea49836a7288832b42924c60d0ccf6444dd4240a3630d98ae033924d18b550e385f3cf" + } + }, + { + "type": "Regular", + "proTxHash": "7544ca3b9824d54cab2053d999caf770486db4fea1f2a4dc95bb84ccd417f542", + "collateralHash": "8c1c61fae3a82a195a8c4ca4d4a5727504eaf9db4aaf841b2f4c0014429f4c3a", + "collateralIndex": 1, + "collateralAddress": "XscNVxLXcKGK6YW6Gf3RUX5miEAt3SWuR6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.214:9999", + "registeredHeight": 1821125, + "lastPaidHeight": 2126120, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw9sEB9YzWneD1JjUW47A7JHijwkU1u4ce", + "votingAddress": "Xe4BKYPatrfhjDgQ1EPrBYHQUJBmR8zvci", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "86c41c5b30e1f33a5bb3469bc98ca32f6c450851d567c731b423c977011b659087c074ee163f70191170214e6db295cd" + } + }, + { + "type": "Regular", + "proTxHash": "31ef84ee0614a38a21d836392b1db22c999b6ccc3854789662aa12796fccfe3c", + "collateralHash": "53e8c5c143753aff2c564b92d2c33a9b72292c0094b4f2266296bf7ca22b32a9", + "collateralIndex": 1, + "collateralAddress": "Xia2NCvYeMR1eeNBTX6haW6wo31GUmiZK7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.121.131:9999", + "registeredHeight": 1821528, + "lastPaidHeight": 2126416, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdyqwpEtmQD6mLjZzpC9fhMc39HGFpG93R", + "votingAddress": "XmKtiz3ShxiQjC1R3sYWBPic2QxXU4Tdt2", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "9188e1d70c404f31d3918eb03622d9909a13411159aa5e7d620cdb9035fabb3d8d96d0dc0893390d6c7b36051b3b3775" + } + }, + { + "type": "Regular", + "proTxHash": "56b257caab48f1c6a4c88dd1c86e38a2e52ee028ff45deb55efc82fa5e3b458e", + "collateralHash": "29ca8d4c5a08e35bddd876c0962b4966abf6a17b0f73a1629a3d6a21bd94ec56", + "collateralIndex": 1, + "collateralAddress": "XuZiRBuvkRLzRYSg42PCgrzwcdZPkQ8Ykg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.175.72:9999", + "registeredHeight": 1821530, + "lastPaidHeight": 2126418, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhu2RdkUD3CJY1RxaVfycSBVWPWtGrV7C2", + "votingAddress": "XbHfMqZ2nwhkJc8GqqY1CEBgSLVU77zWLi", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "838d8fa80eedf154877df254427ab23c9377b3553b21c0c8ebbd882f870b3e2e14297a4e337ec5aae3e05c710a2e664e" + } + }, + { + "type": "Regular", + "proTxHash": "da9e4354c7e2708c8bb3b0fc7e566d428c19dc3c6532914b82e3acea76fbb2d4", + "collateralHash": "7a1b76894aa1a59ad41f90f766e720718294df1d8deb8134f9221a5bb9d6e761", + "collateralIndex": 1, + "collateralAddress": "XwXMetU8Py95Kbsmr3v9YaGTy9keoQa62h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.134:9999", + "registeredHeight": 1821530, + "lastPaidHeight": 2126419, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xtn6ywRHLDYbRvtKqfEBQXsCaxjnytMRPm", + "votingAddress": "XbFiZL3tbbWoLvoZQojhpdhPqcvfnQL9zM", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "06301a86ac33fe0ec430c3b947c40a3f465a6b9d4b97587b7f54ca07ebe34fc0dec8b2b6690e10abdf201df79ca4d985" + } + }, + { + "type": "Regular", + "proTxHash": "2fe1dcac2f4b742f1f1526d269c00412cbe660d9137512698962e0641a94b33c", + "collateralHash": "1a27c5b796eac7f00c699517ad77dad313fc9c6e426dc32ca09e509366762fe3", + "collateralIndex": 1, + "collateralAddress": "XayoZkQ5pGVnTj6tW8reNTenvpmLYT6ByG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.36:9999", + "registeredHeight": 1821817, + "lastPaidHeight": 2126634, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrd2ATxSt49xz32CzdTJSipD8tRW9iyZAM", + "votingAddress": "XnkUweSiWQsmKcdCaNp8n2Q7k7E8zfsS9n", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "127e9f16a74ddd9b6247e2ea0c8f45b8fecfbe8608c923b2a4c6214caba3d24817264d06d7bf7a0de649c29c0e259b97" + } + }, + { + "type": "Regular", + "proTxHash": "54a0e55725a32c0e34f977d2af7172baa8274bcd9c7fc30ac5b543cfba6bfe94", + "collateralHash": "2e312b792e01786378e609a9a920badd5579be8d9afce6474cf8bf122ef3522c", + "collateralIndex": 1, + "collateralAddress": "XfsbRoJATrZpFy4CBsjcwoT3boZZje9zNg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.255.76:9999", + "registeredHeight": 1821817, + "lastPaidHeight": 2127755, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976302, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtNXqGaCiFYV68cJXMxMBSqck1ZXP9JDpQ", + "votingAddress": "Xeyh1rmmM2cPaYJ7SeMFqkbQuP6JLUc5xr", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "1536dd75a491252feab620f662e53f50ebca0a096b83051ab03ef1ecf8c22469410679f2c0252f1c61bd06a474d81b7d" + } + }, + { + "type": "Regular", + "proTxHash": "b884a876b845e787cdc08191bfb6820b9c4f47000eddf7d4879b292dd31df1c4", + "collateralHash": "e67e3a602808354e5f69c7f62d61c9c8032e0c2fa767f42eebc4c6426284f056", + "collateralIndex": 1, + "collateralAddress": "Xmte5EcvCpuPYxey4WokCRajR2auVfSCno", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.98:9999", + "registeredHeight": 1821817, + "lastPaidHeight": 2126636, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhzkN2AQcxmXpcLN8ZQpQyp2H1RVGWbiT3", + "votingAddress": "XyCTXMCANP2t4rcZBTE3J6CdjnY2en8w5E", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "912944b0623a11da91bf03bf71ee5ec647b49c81034effd7ca2e9b2fdb0bb30780d909a286ac9b2bae1bd9dd783593c1" + } + }, + { + "type": "Regular", + "proTxHash": "e7c5e345e8af1e7cc29a0a32fa40c09f7a691ffacd7c084b7bf9571d47c1d240", + "collateralHash": "50f9e8de586f16dec8550befcbe174c06e574ef4719645043366f57c0c84eb0e", + "collateralIndex": 1, + "collateralAddress": "XfNEWRLMNxguB2tJCNjAQdFLtg4am8zqEQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.99:9999", + "registeredHeight": 1821821, + "lastPaidHeight": 2127751, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976302, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpyuyinEEKz6LBuHrBtVZSm2kGHy8t6Wcw", + "votingAddress": "XrNHWrzSX6Uue9RmxCiPrNLRpdxhjgHGVR", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8cba87d2cc96739a43b063ceed9dc6a9a0f1a4aff48e38c20c501db498d58eb46284a398e112dc28d62ca1db51cb6ba5" + } + }, + { + "type": "Regular", + "proTxHash": "6431fd5421f73facf0d6b810679132d2300c30f3cbad3d2dfa2a5e684a4bb12a", + "collateralHash": "da9f140977a8bb8f499bd379da58288e10fa6066e66786950303c762e8a5e0e5", + "collateralIndex": 1, + "collateralAddress": "Xpg44ue1BsCvmCw4nMWW5yn2r9Z67o5rQJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.48.98:9999", + "registeredHeight": 1821826, + "lastPaidHeight": 2126638, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgrNpLvp6kFw8bEHUHTMU2wkdSja3pvfAf", + "votingAddress": "XuoVmRJAJrbSm7qDsSJmKjknQromYXMdjg", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "923cd738250f706432353fa96cda97cc6e576714b53a1711d33a75e2899d37198faa68ca1b93d72a5a41ee7671f1e993" + } + }, + { + "type": "Regular", + "proTxHash": "fe967b77a8cb3d79ec1d6c0873665f6b1e16030460b0326efe977b2c4b9a30fe", + "collateralHash": "b56d7dec3e562bf7e7955de18908eb291cb3662ee8cda9419bec97bcc90db16f", + "collateralIndex": 1, + "collateralAddress": "XhacCdo5b7NnS9H7Kg5vedvJPxUKQsJjBG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.101:9999", + "registeredHeight": 1821826, + "lastPaidHeight": 2126640, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbubAmiav9LVXzRNRsuLAqMPQcKosRb58Q", + "votingAddress": "XpXuKFneeiVa2QZMfoav92SPdi53kjbtUf", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "0053a37f51ad40dda964a5ba5865c109aa5d1a71c59bec14c66cc40d2b2348a03031034be5cb3536b4bd8c603b78d18e" + } + }, + { + "type": "Regular", + "proTxHash": "6f17c87b5a515038ec5d3f412500b298013841fcd300e91414fe7c68803ad154", + "collateralHash": "baebb38daa8301fb6cccd64ecfb3de649d20b27fe644e1f6ad39cf785e505cf0", + "collateralIndex": 1, + "collateralAddress": "XngM9L66YAJPp3yhbeaNU7nKn5f7HS1xkT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.203:9999", + "registeredHeight": 1821826, + "lastPaidHeight": 2126639, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx5wBG3BktHjx1M8gR6nbPa8Cs25NKnFas", + "votingAddress": "Xnay7g3Arw8crVhjdirSqJ1ip1Brf7J97R", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "06ca5885128152a0eb2f2ed064d642c9cdcdbf0a94ceae07820f40b6e1796add459cdc0cdcb46c0bf7e1921a50c682e7" + } + }, + { + "type": "Regular", + "proTxHash": "033be55c8a3338a2e4c6c71be11170fcba88ba83b23f2c2976a2deeaac7856e4", + "collateralHash": "bd322439e0a5c39dd7d0efa9dbefb50c811e37446c8897e591d1c225f43dce63", + "collateralIndex": 0, + "collateralAddress": "XfLEdSUnQfTERdeFMDQg68V6yYunTukPWv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.248:9999", + "registeredHeight": 1821827, + "lastPaidHeight": 2128185, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtofAMA8rWo6KRmZezGqhD8iTQAvjHWkbd", + "votingAddress": "Xq6yxUJ138VP9hLH74JZfvPEEuchktbdxU", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "140a8215a5ebaeade9dd9aa57053fe020a26230de4681523e24cfcb885f9f603102f6c50f259fbb0c3e1f163c2f404d7" + } + }, + { + "type": "Regular", + "proTxHash": "e7f99188f76ef9ed0529632e7840ac6adb746b20fb6e78a88a85943efa3f803b", + "collateralHash": "2411f8f063216ddfbd72b8b1b75ff61b2c8cc0e6e909c017bf4ec5d206456099", + "collateralIndex": 1, + "collateralAddress": "XimS8R6sdpyYvhefvhrBPBF7TZeVwWnMgK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.104:9999", + "registeredHeight": 1821836, + "lastPaidHeight": 2126655, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyVC1xGqYdxwCeKL2gwrCQ58RUzvZXaajf", + "votingAddress": "XcAjUYjsEZ6TpYxhPXfQnKix6YFZVz3BbV", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "0b6a013f29291cceb2130a0a65b39d5c62a78e5208ce6ea289de20d4701d25c73cab7390f3d254766f7ee3a277b8897f" + } + }, + { + "type": "Regular", + "proTxHash": "1364d12920ea44df0e8e4f26a5d58fdaf60d8c34bfd5f35701620e3eeef56cca", + "collateralHash": "a498234143c79e9d8aaa74660718d75a281ef9ec79c389c20461565dd53c0c01", + "collateralIndex": 1, + "collateralAddress": "XxGZWcxYFstYKKF3gVPQAvsRsY2U264QBi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.108:9999", + "registeredHeight": 1821836, + "lastPaidHeight": 2126656, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjCvYAzhUTsXRdwDi4UTUuiYrDUuhdb32u", + "votingAddress": "Xk6BDgdgwQ718uKZv7XNky1Wo5jTRzCHuE", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "162f48be26dd637b2ed3740aeafc8453aa7dfc720d5093bde2a0287ea5706a90f7ae99d2d26a425340e82c6ccc789aab" + } + }, + { + "type": "Regular", + "proTxHash": "77b4c5a7d5da5aec1b19ca50260b3d6f73b0780b66867db45aa91b87d97d0781", + "collateralHash": "51b34d92841feeef790045683a661e4843988a270f8d47472e7b1bc609d133a0", + "collateralIndex": 1, + "collateralAddress": "XykstwZuthq32StLhNQQSSNHxoDt1GFPB5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.202:9999", + "registeredHeight": 1821837, + "lastPaidHeight": 2127052, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1979160, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy7vtUDu79PAVb6XmVgoeb8DRJRJqYWrXW", + "votingAddress": "XhzKytMXoxKjatqSaMQpTKxRC9t7fSbCQj", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8d387c910cdce5ac6cb36e49db3a320873243c7e1374f95fde77996a061110b73296d24047b42b7da0ee7e91a5ffd202" + } + }, + { + "type": "Regular", + "proTxHash": "f11306c779ec635da5b5ea97d27acf161106d8bb1e4225642e552c6e7d36c1ac", + "collateralHash": "11ac8b6863dabcbde067b115d21ff5a50220dd06337a2fc696a0acd8d5a49537", + "collateralIndex": 0, + "collateralAddress": "Xgf64rxrQ1av1cJUpRsuo6nFXp7KwVnrUv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.238:9999", + "registeredHeight": 1821843, + "lastPaidHeight": 2126664, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrbU3kJdMTtm83ZLvo8H2PZWJapKoucDvZ", + "votingAddress": "XyM8PUJTANjq93gjnZQvqSasHrvUoDdmGp", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "110025c7814269844900a2a1e3a36e835efd98887f6481d863e267445a87adfd152ccc6212baab1ace5540fd86604564" + } + }, + { + "type": "Regular", + "proTxHash": "e6da04aa5bf8f1dddee6a2ec3599b7a927e52c4f9be06a48d34145f3aed7398c", + "collateralHash": "f2207ededb04cf7b4393af7e984f37b879dee36204a369fec8d3aba2fa5db7d1", + "collateralIndex": 0, + "collateralAddress": "Xv5TTCyH4vYB5ttV32wtpHiDuPo4faVM4S", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.115.131:9999", + "registeredHeight": 1821845, + "lastPaidHeight": 2126665, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoo1Wxqbmax72ux5gNG6UrYzDV2r6WaJhx", + "votingAddress": "Xd4MRzTomj2PidzSxuYsYA7ph8BGqyLJi3", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "92fd14452b614a98d7457e231dc3a90bf6ca8354ecf2c73569a1b79d9c3d8bcc4e94537e2ba74cb146cdfea7b5fe3f9f" + } + }, + { + "type": "Regular", + "proTxHash": "ff93208c66329768323a47711f7e8c211c8b42dd38b8a2dc36118d1d70fe673e", + "collateralHash": "12e39de740b25dee3e6d0f95a191aa1248195afd6753ba6a2fd7e4e762ce00db", + "collateralIndex": 0, + "collateralAddress": "XjNeHYVW6dQzVh11pGdwAnJERvgFCmYTfo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.106.35:9999", + "registeredHeight": 1824265, + "lastPaidHeight": 2128798, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhCSPiDjdv2tBoRMBAGWtuDrnNNBjMVbhv", + "votingAddress": "XisU2fHxxPUZZBgq9wWLVDbdNEWBoZEU4x", + "payoutAddress": "XjNeHYVW6dQzVh11pGdwAnJERvgFCmYTfo", + "pubKeyOperator": "1776617d2590cb377fe8fd55dab9ba9a2d61299b59aad11d97d2f9505f4b31dcbe10a7f43dbb49061b79da300e8f4dc5" + } + }, + { + "type": "Regular", + "proTxHash": "d6c57cade9810b0d417c500fd77a9965069a0f481967804bf7395c6dafb6e6d7", + "collateralHash": "426d3a586cf4d931c928d1021833a327c5ac87d4f0c522d3261023d9c81c6224", + "collateralIndex": 0, + "collateralAddress": "XxUjdKziWhn8qfrG7WpbE7o3NEfLwUFgBn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.60.131:9999", + "registeredHeight": 1824265, + "lastPaidHeight": 2127167, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeX6U9dxgeKxW8rCC4yE8JDYA26EfsFNqV", + "votingAddress": "XwVxc6Fza2Kmye7Nb77QFnw3naHxNXmYxU", + "payoutAddress": "XxUjdKziWhn8qfrG7WpbE7o3NEfLwUFgBn", + "pubKeyOperator": "09e24950eebe2b8835fc340ec6bd6362ac6eacfe231cf67119bd370a7cc4138d205255db47ea6be572f94481fe1004e3" + } + }, + { + "type": "Regular", + "proTxHash": "f71752563bc099d62793804e476ce225a6875fc0cea8b84cabcf027472000c6a", + "collateralHash": "f2ee5dfa81e50b4c848f2b5443972219dc70ab2a3b33878767555382c1b8819b", + "collateralIndex": 0, + "collateralAddress": "XckwPCJVmgzVfQtSPNFF7MhxVMfmz6gv8G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.160.165:9999", + "registeredHeight": 1824267, + "lastPaidHeight": 2128819, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPjHGhdJm6APMdtHcsSLeiixwmuwgcQPD", + "votingAddress": "XkuwfcHfckVkYwJpSApGUGrZ8WFTE5W4b4", + "payoutAddress": "XckwPCJVmgzVfQtSPNFF7MhxVMfmz6gv8G", + "pubKeyOperator": "8cc0f9f7cfc044474e4ab8e182736c44c9305fc86448685390715a9076331a7198e0a4c9d2d06fa260683b076184c0cb" + } + }, + { + "type": "Regular", + "proTxHash": "9f88f12d2bd5778de3e85ef78c51d4bddb565359904b02cacad58bd6e2ec23ed", + "collateralHash": "70370c56f464b4d9bb388f66d6fd26e3a797629306cec4783b8fb2482d67c787", + "collateralIndex": 0, + "collateralAddress": "XbVcfAg53QQRTrtxCVydkAAYFdhk3qrnyM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.61.119:9999", + "registeredHeight": 1824267, + "lastPaidHeight": 2127170, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xob3WC8hiaX5nEcVmCX1hxX2G1tzdA217H", + "votingAddress": "XwVnH5d2LZ1k2wPqUBnjw66k2nMsFB2rCc", + "payoutAddress": "XbVcfAg53QQRTrtxCVydkAAYFdhk3qrnyM", + "pubKeyOperator": "067dff8921d762fd4689062e4776663e394db26ccb59c330602c84da1486cd89c5c00d3984165547476b24da9c8c6c1c" + } + }, + { + "type": "Regular", + "proTxHash": "98822caf82e1b2231b92437dc934b62cee404cd2746c1589438a43b1c0bac0f1", + "collateralHash": "29dc3e8dd25280042344dc88dddaf040f1c0b14970a1f64cffcdcbda66ed02d5", + "collateralIndex": 0, + "collateralAddress": "XxQXNA5yKu9vJBYhbhW7ZfoQ8XmtCEbp5i", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.185.169:9999", + "registeredHeight": 1824267, + "lastPaidHeight": 2127171, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkBMLtMxmpcfAcVmJJ8vpmtiAkUKkKPMbX", + "votingAddress": "XpFHJv3CswbezfycTqndzHVYFnX82VcZjb", + "payoutAddress": "XxQXNA5yKu9vJBYhbhW7ZfoQ8XmtCEbp5i", + "pubKeyOperator": "1106c3b30e79f4a48142161ba3851fedb93267639286d7a216d3526e7d15859934441d13b9235ac0f62a8be088673613" + } + }, + { + "type": "Regular", + "proTxHash": "dcca047cbe1850f71bd31c84b25831a263957ad10470cb2a22b3cacaf19761fb", + "collateralHash": "cc8558a66c458404855e163d73bc52b8a53cb9bf749821778205d928249b6156", + "collateralIndex": 0, + "collateralAddress": "Xx4WdGEpN1GQU8w1EVpkFtH3A9A8DKhYcR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "66.42.51.106:9999", + "registeredHeight": 1824267, + "lastPaidHeight": 2126592, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985796, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn6rutVVSzSBnZHHfi6GgaSbZzKzjpUQXE", + "votingAddress": "XfciNUvMvuGHuKsZX6tG9LHiFNkGy6Wpnm", + "payoutAddress": "Xx4WdGEpN1GQU8w1EVpkFtH3A9A8DKhYcR", + "pubKeyOperator": "8510ad5a1b94e6db07f73568bcefab1cb3d5cda6ed6c7e5f67fa2f6306c718d5a1906e90d1bb650d40f51a49043ffbe4" + } + }, + { + "type": "Regular", + "proTxHash": "c55d8786adab9a39aa2597925bc97dd10606596856a171c52cb27ebca48db753", + "collateralHash": "bb18b2e0c3a546764799c9da4a4e5c98212b75bd0a99f2db659709897be21442", + "collateralIndex": 0, + "collateralAddress": "XqH1h6HsMKaX723GYWaCGbhAHXRFoXoRrM", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.64.151:9999", + "registeredHeight": 1824268, + "lastPaidHeight": 2127147, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQd84bmSdFUaYPGCCeFHo2joyt4CHyqvN", + "votingAddress": "XeqnK5Yqq17ki7RdAAeVk5JJdfoFuG4qkr", + "payoutAddress": "XqH1h6HsMKaX723GYWaCGbhAHXRFoXoRrM", + "pubKeyOperator": "1512bb597d5b058638b2fe16c2a585fce26c7374145ee46796525af43e8ee0d3b421a0f5c3eef53161d3a78fc1ce27ca" + } + }, + { + "type": "Regular", + "proTxHash": "7d23bb8dfca0a0f92e49264d4603b693887361e2d0c06b875e21ea0d37104b2d", + "collateralHash": "0114024f8f41cb663c06c79a02d4fa7d2449f0211f4b411188320d35c8a6a504", + "collateralIndex": 0, + "collateralAddress": "XoJGBfbf8BmduYZMjcXHpn6Rf4gM9jr8vj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "207.148.116.104:9999", + "registeredHeight": 1824269, + "lastPaidHeight": 2128797, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkW5z66MEPz2s6FNUdCDCY64t1uArKcVBX", + "votingAddress": "XmoS8apDsBQ6oP55boYT6ZyxTHs54yGGFY", + "payoutAddress": "XoJGBfbf8BmduYZMjcXHpn6Rf4gM9jr8vj", + "pubKeyOperator": "8de514e4f6a964630d239487527fc3a190758d15dba299e342516cb32942a6bf8ca9c7218fd2daf4810e4006b123d825" + } + }, + { + "type": "Regular", + "proTxHash": "12e46bce64971700da615da8c988a3e9fa887172900ffb35f267ab9273e31e6b", + "collateralHash": "c5befa90c0a5144ea72fa7516b56ff1198a8636f61085ca0050a231c8e0f1364", + "collateralIndex": 0, + "collateralAddress": "XfVA658S5cwmcXHZXcZacNRPxAfuntwa8M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.28.154.79:9999", + "registeredHeight": 1824269, + "lastPaidHeight": 2128820, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XboRyfmeam5VrwPLaTkQJLLkGqnhcPNNcw", + "votingAddress": "Xxpo9P1FP99farEyKWTLh2xsxgEmf3F4ju", + "payoutAddress": "XfVA658S5cwmcXHZXcZacNRPxAfuntwa8M", + "pubKeyOperator": "104eec66980b46a1f288db5c75cb0c785e577aae128fb860d89725e738411d579743a3949551b2885118e8e8532f5be9" + } + }, + { + "type": "Regular", + "proTxHash": "89f8b6395a38c4808206da31334a95c7e15fafafd6ea91974bef9989fd6e9886", + "collateralHash": "08759978eee21ebfd36c1fb87261828f75c6960e75c388643cb20618965ea54c", + "collateralIndex": 0, + "collateralAddress": "XicjjLFdgHJgYhGs85K7JSUVvamvDJNC4a", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.190.31:9999", + "registeredHeight": 1824270, + "lastPaidHeight": 2127153, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjmeaF28suwDqdCQD5JKNoMzzg5car9XvQ", + "votingAddress": "XeZnVRTTeZyAT174x2eie5zScbTBoK1CGA", + "payoutAddress": "XicjjLFdgHJgYhGs85K7JSUVvamvDJNC4a", + "pubKeyOperator": "13bd53d61cfe03d46d7131182413620901e575b1082fe5f19a96379742d0cdd6f619f86edc5d4b50774938d4f1a6bbe1" + } + }, + { + "type": "Regular", + "proTxHash": "c160cdf965d6f510d41277e3a47d3c8c79482c0fa12d354c77d9a42770db26b9", + "collateralHash": "c7eebc2c0b233f493eba68ad0335baf82fe4e0a0067cd60dfc33ba6bbba2eac0", + "collateralIndex": 0, + "collateralAddress": "Xw3rdyXVNG7cPL5inFTgfHHuyv1frVEYrL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.32.116.224:9999", + "registeredHeight": 1824271, + "lastPaidHeight": 2126938, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114606, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsnBTdnX5fKA9Fku2ZhQ781JaPFJ2VhSNW", + "votingAddress": "Xv3DV58zdfDcD1A2snQHDJrzqx7tAiZQir", + "payoutAddress": "Xw3rdyXVNG7cPL5inFTgfHHuyv1frVEYrL", + "pubKeyOperator": "8480119bd9ecb7167c84847b3ef45f284f730fe15f3a8ca3ea2ddf4dd19ff2b9d8f57e07c7420c61dde3283d5afd5c37" + } + }, + { + "type": "Regular", + "proTxHash": "82a75dadca666a5499b655a0d1613736f0f6e47eb9139b8eec286b7cff453fd2", + "collateralHash": "74861c46da974b7682fe12320e517073f4884293e9de419b37c2d6d972f8577c", + "collateralIndex": 0, + "collateralAddress": "Xocs1gJUzhgLg4UURcrcFb36qxYhdY5qKt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.180.144.223:9999", + "registeredHeight": 1824271, + "lastPaidHeight": 2128827, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1936986, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnDvvRQKxBqsmFHi6FQm5okZMEv6iY6UyU", + "votingAddress": "XfqoQJWZbJbVUxVvk2CwfiqodCPLGUVBsw", + "payoutAddress": "Xocs1gJUzhgLg4UURcrcFb36qxYhdY5qKt", + "pubKeyOperator": "8e872574dcf9bb53abc6b2323d2d3d0fe22d61a3396829b014b05e902e76dc0543cb094f6966e8818800ed9b8af15c04" + } + }, + { + "type": "Regular", + "proTxHash": "85237145429f7a234a6572848d01a65fb216e423b6a9cbcaba8c5b09a6ca30a2", + "collateralHash": "d9f692311a079f78f07f2ed34b5775bb073bba339ed8aea9d1b471ae51bd1116", + "collateralIndex": 1, + "collateralAddress": "XmfSEmf4YWDBwTebrd6byRibF5tnaPR4Qa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "65.109.93.110:9999", + "registeredHeight": 1824695, + "lastPaidHeight": 2125873, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyRPfuNFMq6pypzMFu98Mz78Qfe6Jvv1FR", + "votingAddress": "XhnWqsdghRnFST9qd5KS2whyhUhik8Kcds", + "payoutAddress": "XysBEn2FgRtVR4knUVSM3despzeuj2eNEV", + "pubKeyOperator": "913b4c7a648d641638c96df72ff5b1fec0f17d605ce2890dcdc4cf67017d7a098571c020a9916a8c994a5110bc08841d" + } + }, + { + "type": "Regular", + "proTxHash": "deadac5e0d1bea2bfc8aca4a18d8ad7e404d5b82ecf39daf69e180276a6328df", + "collateralHash": "96aa850f768e9e0a46e9bfd75cec72bc26b5b2782b12a47d5377f714d3cd5702", + "collateralIndex": 0, + "collateralAddress": "XwBLYMLdSsdBi7sDf9VrMYJLPRvuD7Zoas", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.200:9999", + "registeredHeight": 1825238, + "lastPaidHeight": 2126363, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx5NLxrr8skwepULxAA4LAkRQDhqDybXrP", + "votingAddress": "Xf24gBSwhukSkmNEsBXs5V6jihTFS84muM", + "payoutAddress": "XntdJy5NdcG2d1LjzKLihWobCYGg8GfsBy", + "pubKeyOperator": "8e75193279e07615842eefedc094e1cb2d3b8768f67c47acfd479e914eae5b9e6ec4546154b7b3eab05791caa213efdc" + } + }, + { + "type": "Regular", + "proTxHash": "75a261807aba6b9ffe985ad383e2fb319b00e55b6fbda0b7d88699d3db4dc189", + "collateralHash": "cff4c5225711903373f09844dba36b2a49480f7201f9d74d4fcc348f939f684a", + "collateralIndex": 1, + "collateralAddress": "XtecW5t916sWDcexruUxeMaLb7MtqbLTic", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.49.236:9999", + "registeredHeight": 1826733, + "lastPaidHeight": 2127590, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XajuJQoa4oCxgvpnDonmLnDGaP6rGMMAoC", + "votingAddress": "XcvE3Ws8NsWeFNv13AvAcVkkanbwDp9aJH", + "payoutAddress": "XdWnvxR4shXr1fLFwpZU4FC14aaf6tfAbN", + "pubKeyOperator": "01ae3e001a68c330d6ad69172d5855764e1a5b566b12859b5a509695cb909566c417c85282d8e50aaaecbe3f46eeb86f" + } + }, + { + "type": "Regular", + "proTxHash": "114335549418eb61993e1a89a8432151bb2a42a2539992d9c459a8ec9b17e610", + "collateralHash": "76d5d30cadd8ff04c16d09655ec7f3202083c4621537bf763890f3fa1840702a", + "collateralIndex": 1, + "collateralAddress": "XoMacEkTdJUYwgYG7RfwmhAPAghfqcNKN8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.73:9999", + "registeredHeight": 1827886, + "lastPaidHeight": 2128641, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeJD5Eu9SWEDJN6JGPNQpzEdKENiSFbYum", + "votingAddress": "XvXC1ZjLzN3mNAyYi4r88rjwrZLdW1QkKL", + "payoutAddress": "XoMacEkTdJUYwgYG7RfwmhAPAghfqcNKN8", + "pubKeyOperator": "0c4a920f75c4f071c8babc2edaa20a895f330601b134a248d5ee0611da6f76f4291c841b8bd0c80113377286c86f2c68" + } + }, + { + "type": "Regular", + "proTxHash": "8ca4618f0e08108acb1cf7eeee71b9ddb15d3db3a758bb3f3ef1e7af9b2bb76b", + "collateralHash": "6d9b1e73a4e001b5a592c44ffe2fc7577b69e01728edcc7f5caad8fa17fe1fcb", + "collateralIndex": 1, + "collateralAddress": "XtUknodwGxWa3Z254oGtzr53jjJLzEVBhA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "31.220.72.125:9999", + "registeredHeight": 1828519, + "lastPaidHeight": 2122710, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126970, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcVgfV8p6vgAfqMAtLbr5KGr5ASt5sWKsB", + "votingAddress": "XwFPsLyM7kafR5n9uhYgDpxvnUsRjdypQj", + "payoutAddress": "XpVBMwdU9XVjXF9XqQpeesNJRnTLjdmZ8y", + "pubKeyOperator": "09b2bd564b62a0c53663d6452a8df738da74b7682a18872fb76e3e273f23efda864732ba1f316e86a7b6848dbeaf2de3" + } + }, + { + "type": "Regular", + "proTxHash": "ecb64f2789df128fb318661a90fb05594362e1d561c2b12f8c041705aee90c04", + "collateralHash": "cdca732c2a37c89e49af92a3f6f1b87317551082c753cbdc1768d934b155a9e7", + "collateralIndex": 1, + "collateralAddress": "Xv1jGixpw5M91sWPCJ9i8tnjQ6orEEbH1k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "20.25.147.8:9999", + "registeredHeight": 1829431, + "lastPaidHeight": 1871512, + "consecutivePayments": 0, + "PoSePenalty": 4400, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1874058, + "revocationReason": 0, + "ownerAddress": "Xvj9V7qtoUmMXdb4kgHv17t6WFPz79NbpC", + "votingAddress": "XmsfJ1SHfgfJr9hz4BcSnzVxzQxX5J6dMg", + "payoutAddress": "XySW1Z3opDCmXaFvRS4RCSN5KWD2wXLbVo", + "pubKeyOperator": "8d1a064bb3fd391ff2d73197d8dc854b1763d03b6a0d61619a8146db22005bdecb74696077f807d09f71ce92b7913753" + } + }, + { + "type": "Regular", + "proTxHash": "80b6a0c2bd98a49ac548feed07e9b0b9160e5aa4d5739f2134a9704b4fe6f5bf", + "collateralHash": "be9c394a508ffaa813969f6ac5da3f92277af12fa0715303bc8bca949e7833c8", + "collateralIndex": 1, + "collateralAddress": "XbUMRghCvRt3zEYf2X1xZf9QMbuUhJ7o9w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.206:9999", + "registeredHeight": 1829710, + "lastPaidHeight": 2126820, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxusoGt71j2e1vRbsnt3n4WySQXeUGa7F4", + "votingAddress": "XxCsB2X49D9ACHDqXFZt1SgHT1bbovrpx1", + "payoutAddress": "XtpyRaa3zzYyFzz6ZotcGyTTntNm5Fe9aB", + "pubKeyOperator": "10ce3bbc05853cbe3e748da8659c5d740c1eea1f88ad3a227938cc91c316083f9894869b58acd74a1430dbfea6395aa2" + } + }, + { + "type": "Regular", + "proTxHash": "957df0188188cecd1d1f6c880d4a599554e97deb9df50ea2eac81fb277faa712", + "collateralHash": "abe1bee6038c6cd9cfb0c76cb626d5fb22e32318be6443a2ff8cf104bf41daac", + "collateralIndex": 1, + "collateralAddress": "XdpQLJFGkpkrexW9LQ5PWQDNKCM2KLkMTX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "134.209.158.119:9999", + "registeredHeight": 1830375, + "lastPaidHeight": 2127427, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsG7YtoF4tMHNYU6aBfQDMdPtov4fnYCwA", + "votingAddress": "Xe1H8siL85tVNb3vB1nCZDfEWJp5GXUBxK", + "payoutAddress": "Xodt5GW3r5jWupMRbowHPbthkdRkpcePv9", + "pubKeyOperator": "03b44a0e2aebb51194d28d1d74b2235fbc8cc94a2bda6172a479664ac07e8b362b685242e85f0931f5d9f1f11fe38817" + } + }, + { + "type": "Regular", + "proTxHash": "2625baa64de9e7aa9ae5001a714990a30a490287dc05316d5d1380b5c6d2af54", + "collateralHash": "4f8d5e7d75d080d0ce4b3bbd639ece2936ce0c18ed05e82b58f0e6243c51be77", + "collateralIndex": 0, + "collateralAddress": "XvtRo2PfY1upiDetPuhUCsxoKeE1p4YVDJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.131:9999", + "registeredHeight": 1830671, + "lastPaidHeight": 2127775, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcekXHEDfC7SL2jsX5tUSTDTVG5Bt2dMsC", + "votingAddress": "Xx1jKara8fARp5bbuSD8K1cqyxJHGXiQGC", + "payoutAddress": "XvtRo2PfY1upiDetPuhUCsxoKeE1p4YVDJ", + "pubKeyOperator": "92b5b6ace64c3c3032d3b4e8faf18c087a6ccc2684d81a70f585c6cb7bff70989f11675e1670330daedd315cb3a3318e" + } + }, + { + "type": "Regular", + "proTxHash": "70b7ec3b79e8696fbcaac96df3451a23876878ff5efa9880fb9a9aa6eb4c3be0", + "collateralHash": "847c4a47309b306e71e3e428580108c45f99d5bafc18c9753fa455b5f497302f", + "collateralIndex": 0, + "collateralAddress": "XpNiGjmjTXRqATtKkzUwpAnnubrpejpPyk", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.48.100:9999", + "registeredHeight": 1830673, + "lastPaidHeight": 2127777, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsGdhBYEvEqhJuXyAHFdehxG2awqK2jrPV", + "votingAddress": "XyLsx49nTePxGhTJG2LiVUfoSwY5NoXBhx", + "payoutAddress": "XpNiGjmjTXRqATtKkzUwpAnnubrpejpPyk", + "pubKeyOperator": "0ddc0a32035b05f3ccaebb381d2871bf9a5e599a472dbab858ae25a86e7316392ce34836a1f1689d18ccd74e0b46d687" + } + }, + { + "type": "Regular", + "proTxHash": "3a83f18afd41ac2620d9ffb3f6432929b07fc49679046dcdabcafb1c41578d7e", + "collateralHash": "54bb8d91f681fe245a14efefdc3de07978e9765589cfeacb0721440aaa792a16", + "collateralIndex": 0, + "collateralAddress": "XpjoSvx97rGXh1zoZtCSgka1MgjVh66wP6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.115:9999", + "registeredHeight": 1830675, + "lastPaidHeight": 2127781, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xiu2nQLbHLdcEedA9rLHoibveMwiQwndg8", + "votingAddress": "XhJc5mCua2CRGH4TzkL83YNqa4zL4mEq7k", + "payoutAddress": "XpjoSvx97rGXh1zoZtCSgka1MgjVh66wP6", + "pubKeyOperator": "80d2af15a72417be8746de1afaf90f3d4eb836e0e3235ee85fe24662f1b27b7f8504ca9cb2235ac4a44514396f2250b2" + } + }, + { + "type": "Regular", + "proTxHash": "5f7e649dc00d0b067db9e7f054c56b0f9d2b057e28699be6e554d447dcaf6feb", + "collateralHash": "84cbd30d4fe63e2714aa5480459bcfaa3e97e9a57a2671ce7db29bd85ed1f1f4", + "collateralIndex": 0, + "collateralAddress": "XmfjVycG2Z6RrcvCvcuLJwvySPuktP8jUG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.134:9999", + "registeredHeight": 1830676, + "lastPaidHeight": 2127782, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoMCX474A9sffkUEbZchmr6xss8z7C2djk", + "votingAddress": "Xggh9JSj2Hrstz1rVhZpTG8kYbSBcrWhxH", + "payoutAddress": "XmfjVycG2Z6RrcvCvcuLJwvySPuktP8jUG", + "pubKeyOperator": "86eae2e5fa1fd14f4223335c3d6918ede1b8fa1b9b541544ccfefe8ae43ff7297c6fab3a121f8d28cb4eaf36a7b52812" + } + }, + { + "type": "Regular", + "proTxHash": "c64786f53d6171ef5d0412d239251a9746f452e7935019c1fec5af05b98fd7e5", + "collateralHash": "92c59bbdf7d173ccab9ab8c13b486de1f73249a93da314cd5245f01003c2984b", + "collateralIndex": 1, + "collateralAddress": "Xh5nLdYEksRrApNTiw4Md9YUNP7TgDdfRr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.221:9999", + "registeredHeight": 1831883, + "lastPaidHeight": 2128778, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xokd5aLu8sN3s7Jv8jrmxtLhjJ4VbRKUj3", + "votingAddress": "XfbpVtaq7sAQQQsu8NBnPEuspLzfv9jpaD", + "payoutAddress": "Xh5nLdYEksRrApNTiw4Md9YUNP7TgDdfRr", + "pubKeyOperator": "8374dd614661209acc6ade7bad0d5291ed81f41416dec5f87dbfe580169796da471910ca7ef57bfaf5b2bd46169105fe" + } + }, + { + "type": "Regular", + "proTxHash": "b9b002693a41b32ae55be408392699520353db54b48f5fe29233e8b35492dbc7", + "collateralHash": "6bddc96cdd666bac13283335a1e8b5a3bc1a81b922a7784dec5227cfca5f6c2d", + "collateralIndex": 0, + "collateralAddress": "XpjpCp7rh7GvZ63JezwvWjo1juedCFKLzy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.108:9999", + "registeredHeight": 1836437, + "lastPaidHeight": 2126230, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkXYPKP1rbW2xgwjbvA67ak3CrBMMZHfYP", + "votingAddress": "Xs4V6G4vKr3q8ovB7V9TcssjAwZ7L16bLc", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "9565560b866cf3af4b3e46069b0e535463710d2b705eae5fd45543168918b9b6773c1029068c9596e13c34f3a26a3a46" + } + }, + { + "type": "Regular", + "proTxHash": "b7a0542418989eb2ce6dbfa58fcc94cd3880b8026564fd37d478854a73333aaa", + "collateralHash": "5243ea986b175f15dd8026cf55e9a14fbd73d5631b8b1dea860f23e70db41556", + "collateralIndex": 0, + "collateralAddress": "XovVKf9xGw4tYdRemjcBAkserkrwbVwyHa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.129:9999", + "registeredHeight": 1836440, + "lastPaidHeight": 2126233, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsR2vEqBDEQ4s8eQ6Rh1yF8aSLQYN7pUpQ", + "votingAddress": "XczJyyQHrzbBWQxXrmSfAKJFtskGQTEKZr", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8737d1f7b6f4d22a3ed996d3cafbb2b95f5209a434b35d92ff04a33ab007c723f1e7f0fc6978981c3fee371c5825925a" + } + }, + { + "type": "Regular", + "proTxHash": "c2690e15104cd0d17df48317af7324de02f187c0805348718a00ac807f2a0ad5", + "collateralHash": "e69230b3c7948d9a32a8218a95081f25e9327fba8253072645ee3deee68894ca", + "collateralIndex": 0, + "collateralAddress": "Xxm9QTjjP2GNb9extAL1REhA5Jsmb1kbSH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.120:9999", + "registeredHeight": 1836441, + "lastPaidHeight": 2126234, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnFSGPsrcWhWNEGZs1WzxR98AdZrfGkxVc", + "votingAddress": "Xidsa3yATXHYtohjRNZG8h2d4Q1oKgjiZd", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "013ccc6e5419130ef168e023fd6d17399ddcd0612f1aeccb9f72aa1711a349b1c51e49398111a298e5679fc90d93aac8" + } + }, + { + "type": "Regular", + "proTxHash": "7cf1f341487e3173dd1b43af326e58cad617a6f4e6a0ac771870865d447876da", + "collateralHash": "fc1ea2e621283f3391e84260e57490c6ef11abf74222b19f9a4936b3b7752b4a", + "collateralIndex": 0, + "collateralAddress": "XtqrNCjtBAtumQ1fxo7tjY1mPBGJSu3XMs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.205.6:9999", + "registeredHeight": 1836441, + "lastPaidHeight": 2126235, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp4Z6A4tHjjozrvJGMCtHMmsR3F61GcmgT", + "votingAddress": "Xik6nKnE5JhV5pmzSQpdN64XCSyu7WYDon", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8f23834ceceb0e5043f616754028fef566b583f6b5fd754003dc8592cf40db505438290c768db0d066b4e61e568dcadb" + } + }, + { + "type": "Regular", + "proTxHash": "b61e02cc18da85a1fe78d13788377ab7e4493dc279f0119ec554abec506650dc", + "collateralHash": "9a576d572990de22704f3875a238088add5f68c0b9572f854be3f6f4297c328c", + "collateralIndex": 0, + "collateralAddress": "Xqfbc71bAvjCpB5fMaqWm1ojCeJUqRtbzG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.230.102:9999", + "registeredHeight": 1836441, + "lastPaidHeight": 2126241, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrHquCLQzmL7xp7svjE1J5X6PzGU5Mt9gG", + "votingAddress": "XmSKfxL83haHXTVDqvXE7TYkqad2CSHsFw", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8d6df513159f26a3a63712f70abc38b97f3fa0af297845e74e2dbd6be7711ed04ea3f7798d1b967ecf906073c83840ca" + } + }, + { + "type": "Regular", + "proTxHash": "fb214e914de22c716c8bbe724236e3f3dfa437edf4bd644fbbdefb35ca415add", + "collateralHash": "0f72c541f62bc83172ccdcf02a3ec933b9721b3563e60a38440b9d85f3bad3f2", + "collateralIndex": 0, + "collateralAddress": "Xmko7C7FGu8gHXYfCnBfzsuwX4enPxiLMX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.232:9999", + "registeredHeight": 1836442, + "lastPaidHeight": 2126244, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnBNcD63VBK2uW1jD1hRxErn3W8KjBMw23", + "votingAddress": "Xqd5aBnnR2NTNWZWDxztaQtyGKjw4MzPnv", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "84dd55f332701884f811460fbc40056aec09c5bf1e5ed11485c439b8ac12b7e524359c8982dbf5414708aa18d47b980d" + } + }, + { + "type": "Regular", + "proTxHash": "81dbd7d6543a002ab33225f8ec597cfba0d17b3d5226122ba9ca2b8afb2b0a2c", + "collateralHash": "d64777fa0cc1545d65107d9b35eada9f7ade1b71510b2f8ecfbfbec771efd018", + "collateralIndex": 0, + "collateralAddress": "XdHNG2meGH4FCxq8mxfVutZ2dcgvvwSkdH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.76.128.61:9999", + "registeredHeight": 1837348, + "lastPaidHeight": 2126907, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1960811, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqvhzN3vDqNGh9Pw9BpUwAhofvAjfLz9Fk", + "votingAddress": "Xe5zh1Gs657twpBrNJwbNDQP17LxzSn51d", + "payoutAddress": "XjiCE6VMp8XRPP9YgFjP6c3T145FfRK9zg", + "pubKeyOperator": "143de01e9690228288e8ae2d465fca4a164ef8bf3c2eea2d18dda2972ce7d637014c8db285259fa3b19c94b54e0bf645" + } + }, + { + "type": "Regular", + "proTxHash": "849bdfd2fe1b32fcf9ae83b6b4440e9700916a928a192a20fb5402dcda988a0b", + "collateralHash": "06e011e71209266c4a1098e94248220569e90da61220fd99863d0d43db8a5bb5", + "collateralIndex": 1, + "collateralAddress": "XtSqG8E8ptAHEwXBHDWh8Vmsf1wsPDfchb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "193.31.30.55:9999", + "registeredHeight": 1837494, + "lastPaidHeight": 2127033, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdkdkYKZ5VXD94uM6KfgsbgFYG9RZnVo7Q", + "votingAddress": "XdkdkYKZ5VXD94uM6KfgsbgFYG9RZnVo7Q", + "payoutAddress": "XrULGF3ZSpufhf8shvrLjvGDbcLEoB9Wpe", + "pubKeyOperator": "0cfba11a26e06981a88790d1139611ff3ab3592f98ee467b7419dbdaacd1e176bc18ec75906b5c34d2191ea5386f243c" + } + }, + { + "type": "Regular", + "proTxHash": "f5ebad648498e8953fdbc14771ced083abf29fcd018d3258e1bd3565337b0c2c", + "collateralHash": "2d0c4a688d645e71f477f02416e54c42965e6a15f336a0b65bc26410adfbf4b1", + "collateralIndex": 1, + "collateralAddress": "XyfCKxLkaMokWJPGDFPUQAwk4YNHHVfYpR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.49:9999", + "registeredHeight": 1839561, + "lastPaidHeight": 2125731, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf6eycDajZUmjqAAdU4cmM5Rw9nN7jRQq8", + "votingAddress": "XfRskGuBY1j9bfa3XcRVf96MuoBEr9Jwqw", + "payoutAddress": "XeveFqVC7HhCpSA7KtLZis64TwUquVjbe1", + "pubKeyOperator": "894013f551142e0357ce063ca8ecdf54641ada1845fb1fe1384161a3141a51a174ffc00855ea3a664cd0dd4f4bd1be2e" + } + }, + { + "type": "Regular", + "proTxHash": "8a31cbc2d4ba083fad0c6cfd38b885581a821194b2bec20b80e07cef32c949e9", + "collateralHash": "9ff21c8938b4899a5b35c3f1657e466c8a1569e79e6c741832c35b14bfc688f6", + "collateralIndex": 0, + "collateralAddress": "XfxWQaDqpAiaXSpspXDV3RMTZi6M3K2vL2", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.113:9999", + "registeredHeight": 1840115, + "lastPaidHeight": 2128186, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876653, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XshkqJ8PvuUzrsACMDbgHiCappYMubRapf", + "votingAddress": "Xp6KE3u6Fy6SocPRiGxmyGrHECy88ykes3", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8cf17887349e616c96dae8c74c8d281f4fe7324f0ea229e0c107edbc31c2413564dfeb49237e1bd3e08b57857646fea7" + } + }, + { + "type": "Regular", + "proTxHash": "0563c2057d4fe4b29119ae13d45164a20172fd1bbc2a5832ab1bb649fd250f03", + "collateralHash": "42f43961da9d797f1972bd5a9a1a69bf43664dd864dc85f64b8738c2fecfc748", + "collateralIndex": 1, + "collateralAddress": "Xrr1Lai2BEoG2vgiWQ7C5sH4p5rx7jVdMB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.228:9999", + "registeredHeight": 1840876, + "lastPaidHeight": 2126672, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcLKs6jusLQGQikkTyV79C9UyeByNaf2hS", + "votingAddress": "XhrvPPWjDPrbXCee2RimCvP6wLvvCfhhn1", + "payoutAddress": "Xrr1Lai2BEoG2vgiWQ7C5sH4p5rx7jVdMB", + "pubKeyOperator": "8c86d4948e039be1842b9a6a165670bc872428b606246257f27b98923216980c72dc8429277490cf209d4ca59a564ada" + } + }, + { + "type": "Regular", + "proTxHash": "cd7ddfcf2a14181c21027e61c9d0143ea6bd73db2c9ade17d803163187840c08", + "collateralHash": "b1e9c68cb3fd4dc08b71c9f5f4be63eea71af72de2288a2e2cea43bebfa102fa", + "collateralIndex": 1, + "collateralAddress": "XpQhfUpkw1HbdGE1yaGrQnWgMoUuruSWo3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.218:9999", + "registeredHeight": 1840876, + "lastPaidHeight": 2126673, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtE9VmtbfaTeeua5dr2nZApPYtCDcXdk47", + "votingAddress": "XsHPMTi3PMakJXzaNYyvm6cjc9SzumLDFj", + "payoutAddress": "XpQhfUpkw1HbdGE1yaGrQnWgMoUuruSWo3", + "pubKeyOperator": "13eaa96bf6e245c6625cc86bb1f243bb570aa76a30c17a4879e642b4e7de05b8cda042a416b8e85e5e580965b4f8f8d6" + } + }, + { + "type": "Regular", + "proTxHash": "64f3b1aa839287b5b7a5a72af03d697be8d7f5968a169770c63df7ac65bba472", + "collateralHash": "d6f9f47d6e83b6af149a8dd307d2f8dfd5ae23e673bbf03d37ca2fd9cd4abd0f", + "collateralIndex": 0, + "collateralAddress": "XjzfZn9LidDjMxVjiiHgK3P9WJgj6FqLLF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.175.65:9999", + "registeredHeight": 1840876, + "lastPaidHeight": 2126677, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxZuC585Bb5ryh3ZV4bUT3MQQWScSoHek2", + "votingAddress": "XbX9iD1JnRcnoRVknrUhP3DrQFiWaaWamF", + "payoutAddress": "XjzfZn9LidDjMxVjiiHgK3P9WJgj6FqLLF", + "pubKeyOperator": "8d57ea2cfda3be34b068acdb5f40bc50887dcb78e06c44eea7521c7ddbfba1b22ad458dcf1bb1b735f088a5d230e4e2d" + } + }, + { + "type": "Regular", + "proTxHash": "f0e09b61276a0eb1ed49851d46c6d3f0a9a5e14a1f009a47a72f1ac42cd31817", + "collateralHash": "bd7b7253e90351a20f0ff47d0bb7a3c0c206f2316f9c20747749a4f48ae54d3a", + "collateralIndex": 0, + "collateralAddress": "XsRaPzU4ksebknimu4zmo86BmWuVp98473", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.230:9999", + "registeredHeight": 1840876, + "lastPaidHeight": 2126675, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLvzjLpppA4gSHNnzZHCU6xtmvLnUJucV", + "votingAddress": "Xtu1pyAqz9ZZirZjp96KwtNuFDzAfQYRTT", + "payoutAddress": "XsRaPzU4ksebknimu4zmo86BmWuVp98473", + "pubKeyOperator": "8cad1e665815f39255a6f206c086a6e2bf6f6261441844611ec8777aea8a8b1f25e35cd98775ef9d16225de3636cacdb" + } + }, + { + "type": "Regular", + "proTxHash": "ea1a360b0d91190aa57070a9348def86197c35652f623c70304bdd38a72b7a63", + "collateralHash": "c85fc7536b6252b6287d2779dc7c0f97f26ef9449044be96aca0a3d75f69b8dc", + "collateralIndex": 0, + "collateralAddress": "XuvsBn986PuqC12V1XgqJK4g3u8hahYUFJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.225:9999", + "registeredHeight": 1840889, + "lastPaidHeight": 2126695, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyMYQyTqqNSJeCPaepLg1hjzH7f6eYfkJf", + "votingAddress": "XiXurTtw1MctGd3uTkbC961GwLTXTTs8jy", + "payoutAddress": "XuvsBn986PuqC12V1XgqJK4g3u8hahYUFJ", + "pubKeyOperator": "97c716196b925303446f86950d97a48c9640df1e6fec3a9b1b1abf2b730d13de42c5c7fc3bacf6fb0cbd182584ddbcda" + } + }, + { + "type": "Regular", + "proTxHash": "b72241cd8b8c19faa1e4ba51a433a087e7d5271454815a15142d45a7a583c966", + "collateralHash": "247fa6778518bf64e4b0ef9a7f1b0abeb0d01305d0db0c262907b942c29a85be", + "collateralIndex": 0, + "collateralAddress": "XdvsGDkKG5YDsDzxQz4VdEZiBQT8sBZ2MX", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.226.81.185:9999", + "registeredHeight": 1840964, + "lastPaidHeight": 2126751, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XydbYVdAUP5FuKgXuxEbTgAX45E53UEAuR", + "votingAddress": "XivgEMzTpxAYUor7UoGsoDaWMUKTJz3ZRH", + "payoutAddress": "Xr61LugpKXKSJVFfUL3GLf9rBnPp6Z5PyQ", + "pubKeyOperator": "81da562b49c92ae29dd9fb72e3d2838fb82eb31b7de9ab1b319218aa2db1b83cd7fe627541a784dde59a6ab56e522cfc" + } + }, + { + "type": "Regular", + "proTxHash": "bf8e3ace3639e4b77a6597cda0cc221e4cfbb5db382005c1b27b986f386bf90b", + "collateralHash": "fc9cdf277db5c63d5a5b1cf909e8b8e250b44cabb355b2819c6dabd619031a7a", + "collateralIndex": 1, + "collateralAddress": "XunCmXrxbcntEFzZYxH8aEYp4Ge1T3NhYr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.202:9999", + "registeredHeight": 1841273, + "lastPaidHeight": 2126834, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1899692, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvEVP4aa5bjQ7PTELzSkYbQTeVFf8etZmp", + "votingAddress": "Xhc4qzmJEZYzdc5NQ55TQbduigJx2UehuW", + "payoutAddress": "XunCmXrxbcntEFzZYxH8aEYp4Ge1T3NhYr", + "pubKeyOperator": "807cd5e6b2eef967d3a23625ce0bda83061680c655d9244874a9c42800c9bed8ae7b89ebd7194ecbddb6c7668c3e9322" + } + }, + { + "type": "Regular", + "proTxHash": "f4e1a77592ce2328c8a02c0ed2135abc6c8063eeb359ea0708d7ad95801fa62c", + "collateralHash": "9fb719bb2f4f8ed6c40371b9a9610ae7a1543468e42022230a731da710a8d2dc", + "collateralIndex": 1, + "collateralAddress": "XsMij6eZyGLwap864JUMf6kUwBbzquLboi", + "operatorReward": 0, + "state": { + "version": 1, + "service": "194.26.138.21:9999", + "registeredHeight": 1841555, + "lastPaidHeight": 2127293, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpyxsQSxbBhqenWJqXZpMshSm6LEtVdpER", + "votingAddress": "XviHtGFnmVG9KDmGY3Mp2zTfbmVpfvgCDZ", + "payoutAddress": "XwM2wnEw3hkp4vBU1BScxbDnpiYWEShadX", + "pubKeyOperator": "86992436d9de68ff7b32915091f5e167f425ffa485529c5b7dc9e62abf659646d169909790a542a8f18b88d0ff51763c" + } + }, + { + "type": "Regular", + "proTxHash": "cdc4b51ae8b17a54aa276b9eed27190f69699db30c782fef2bbe36823ec4d3ae", + "collateralHash": "5c98f9edda7ca70a4e50fa55e2a82b7432a0a6d68657fe5d8dd103a20d48eb98", + "collateralIndex": 1, + "collateralAddress": "XmHjAmJxHNjTJuqLcNcYbzSs6FfeGZX3Wt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "83.147.244.148:9999", + "registeredHeight": 1841555, + "lastPaidHeight": 2127296, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdMkgAjwcUfMcGmJMRzHTvCEkmpTNW1Bgb", + "votingAddress": "XnMK58K2XFXPFsZdsBr9zbdGEj7A4R3QEa", + "payoutAddress": "XwEvXZXaRzGhf76HXvpBkSD9JB13zi2w8e", + "pubKeyOperator": "903c88bbf847a4f5c29227824c6b43733ba44b621ff40279253eb58a8471f6bce886608d4f10619c7757db9e568fd885" + } + }, + { + "type": "Regular", + "proTxHash": "b104d3f51bf495e1920a82ffb6bafb8507053a36fc772b6b1b100f04488e3142", + "collateralHash": "3b4bf25da5206aa71dfac51759ae743d5c8e42edf6596013e26d618d6580450f", + "collateralIndex": 0, + "collateralAddress": "XcqeXCgyYNobukLQsdNYRzZswUjz5Ug5R7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.84.26:9999", + "registeredHeight": 1841690, + "lastPaidHeight": 2127402, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoNL3Py7cf8nkhNKUNkBViMunCQv9KQhgX", + "votingAddress": "Xu3PA3MXC6kQa1TWZsYqEyDrNd5LzUBHki", + "payoutAddress": "XcqeXCgyYNobukLQsdNYRzZswUjz5Ug5R7", + "pubKeyOperator": "8932029c108066f15621d9009f70e1bbacf3064eace9099ce923e85001893301b50f19e34842921d9936fcad462418c8" + } + }, + { + "type": "Regular", + "proTxHash": "b5d05872d0bb1d9d3888e566bffc70804658a2e4c80d3ed91b6d4b0de8f036d1", + "collateralHash": "d86b62f8e4b2a09d321581c1a02ac23a2707ecede671e4d1974bf9d60722a420", + "collateralIndex": 1, + "collateralAddress": "XxTH3hoDTjiDHNtps1HbcaS1VzcCMU3dz6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.137:9999", + "registeredHeight": 1842128, + "lastPaidHeight": 2127856, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1842132, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr3CLhYyGcNwojHDdZ1iG7RADvANRNPDa4", + "votingAddress": "XhioYTnTGwbaa78VQAKBfJ6cgYSMJPxHDo", + "payoutAddress": "XsSsqCJgVUSATCAR2rzJ9i7j3DwD52U2cd", + "pubKeyOperator": "933cf6828415bd9875a18629084c8e610adbed2a68ec87eaaf4cbb190e0b19f5207fa2b73fba3c4dcead5b79a5022e60" + } + }, + { + "type": "Regular", + "proTxHash": "45d0c1e98f6091512a7c064d53426ce0ff14aac6c2a32f1ad5362e89aa56b1ca", + "collateralHash": "31b52f30d5488df88f484c2bc3b862c16b74f59dae1dd23b73c8454fbceb1108", + "collateralIndex": 0, + "collateralAddress": "Xxi5ih6ptHbrS1Jd18u7VP1HaX3t2NruuG", + "operatorReward": 0, + "state": { + "version": 1, + "service": "34.244.130.174:9999", + "registeredHeight": 1842371, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4419, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1842954, + "revocationReason": 0, + "ownerAddress": "Xj7N73mSghFQHAgr2Cty9LsDcTyes8zvrw", + "votingAddress": "Xyj7UWSYhfd7kWXdyCTmSfhLTN9Nk6vrWc", + "payoutAddress": "Xxi5ih6ptHbrS1Jd18u7VP1HaX3t2NruuG", + "pubKeyOperator": "8b584dc227700c13ae95bf081f2c1708f50c226865d378556893f600a04ca8723cbf26d8f70afd9abc9905e2f9c988c8" + } + }, + { + "type": "Regular", + "proTxHash": "92f3812fd3013184cd5ac59bdebb4abbdd7084e2211e5c3da9fe011d82be5eac", + "collateralHash": "db2ebbee0a02f56307bc3a4e55ac886ec902e531ab7b2f38a6f574d3e1c0c972", + "collateralIndex": 0, + "collateralAddress": "XxXWtCCq8BjfSB1GYUT8PVoG3tvaoFrCJQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "176.9.210.15:9999", + "registeredHeight": 1843381, + "lastPaidHeight": 2128782, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1854765, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsmf6XcWco2xF7SuSW6BT6ButmM9rEr3Zk", + "votingAddress": "XeyR1EqNRfNZLMjx9STgpRjsMAMDWZr8FT", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8b990abfe12946a38ee44edec55cf9aa190d0c6a532a729a74bb1e881fb3d45ebd6460341f778c8e9fbb8aba0bffb07e" + } + }, + { + "type": "Regular", + "proTxHash": "d0de9450f5d99452c59c12135cc6373c7077255d9aec6e0fe6e4d9a12a5890bd", + "collateralHash": "16fa0e74b8aff31d2e8c2ac7d36a11d09effae864ad9c917d3ae5cdf23658ef5", + "collateralIndex": 0, + "collateralAddress": "Xeo9C8AWZxasmzeyrxZscHxrU65nHY5GEQ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.68:9999", + "registeredHeight": 1843431, + "lastPaidHeight": 2125743, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmAW9eu28xgt8aQVZMdJLomnSg1yYTxemW", + "votingAddress": "Xee72U43SwvGtKG2neYV2aqpQGD8TJgzhq", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "826a8b6000f758dd5d16eb5fd86f78fac2cc4b2119f2fe3dd7702dc714a43f888fd1dc7e9c5ba52260a8191d30bb4c5e" + } + }, + { + "type": "Regular", + "proTxHash": "0dc9b52ff9a692371f61958faa65ad9561853bdb02088ba8ca1fcb16a9e1528b", + "collateralHash": "7ee52f31d920ce31282b67469b8d5bcbb4bbc5232f896600a6d83c52733cc341", + "collateralIndex": 1, + "collateralAddress": "XkuxsYG6KMcDL7SCExPMBLgJLHxkVCkSXS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "161.35.207.170:9999", + "registeredHeight": 1844467, + "lastPaidHeight": 2126486, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcuYjXW6F75oGHfrSC3LtiCu7rfUjedqPg", + "votingAddress": "XhvG3vh84FpKUPFGHdkPFcYFseRZp21Xv2", + "payoutAddress": "XmNKHVxGQaWHpVEdm7q4XoXWBvDcXQNzLy", + "pubKeyOperator": "0685bbd73cee500698c31f79fe287be2b14def46499dd8edede28534b60a1b9b17578b13fca6bd51a76e0520b42b3c0e" + } + }, + { + "type": "Regular", + "proTxHash": "f4dfa237f6b65d747080c7b291f2d6df590bbffa99db4b19d63e1c1167ce25f4", + "collateralHash": "e9b01ecddce694dd74a82526ead476e9452d43aa1447b230785649a69c1686e4", + "collateralIndex": 1, + "collateralAddress": "XrbznfJEcZgVc6tCZrNy6HKRqHGEMPM4Z5", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.140.7.186:9999", + "registeredHeight": 1844773, + "lastPaidHeight": 2126657, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1902784, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvxdhNcsiCTa99aSjJLc5pkELcrbthKvWo", + "votingAddress": "XbekbSQFd4a1yMjS9dJaAnHJ5e9yzGMAWG", + "payoutAddress": "XoeLatnwakAKkyCWiDEqMXKGNymCxnNimj", + "pubKeyOperator": "86e3c6125b38e45ac439cb95c2045fbde0c42733f205f4925eb2ba9d23fad0ed856651f1378aeb364c480837de855c37" + } + }, + { + "type": "Regular", + "proTxHash": "d24c364d16915cfd46ad3adce7513ede5d9cea02f586b5f21c161acf58c57292", + "collateralHash": "374b405fc10b31477f6dcdfb9cdb13dc9ea659798b021be7a1d9f058c8a9127f", + "collateralIndex": 1, + "collateralAddress": "Xe1DBXi1ousLd7PssHTUVkoQFq2erQyw9e", + "operatorReward": 0, + "state": { + "version": 1, + "service": "195.201.35.7:9999", + "registeredHeight": 1844834, + "lastPaidHeight": 2126662, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1902789, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtfNWgggi8cHLhNgt7UJm1jsHxqKaufFT1", + "votingAddress": "XexsLZ4M7C7TTFw4mGfRZzqPWpvJhaNET9", + "payoutAddress": "XdcAGVdQxeZbGmknxUEXuXTH1vK6dvxeaj", + "pubKeyOperator": "98e79e2a81001122ff2f9c2e1e7ee4329ffd0df15d3bd43d1065a46bb0db27662a6de28b19218032b46acdf5c5c56c0e" + } + }, + { + "type": "Regular", + "proTxHash": "5543983a394d7238d3ff51526343892dc9463c9910dcd9112916265cb16b6008", + "collateralHash": "118f3c665fe9c0b43e4093f00f434e244e615ead9dc93f6e6f3ae205a0c0acb1", + "collateralIndex": 1, + "collateralAddress": "XfRYQkBFTiRG2McAPs3puy7n9usqHcNoJr", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.10.241.191:9999", + "registeredHeight": 1845139, + "lastPaidHeight": 2128309, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2119012, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjQN6e8PpJD4TckbSa4v3oCgAJqGRG4DC7", + "votingAddress": "XjQN6e8PpJD4TckbSa4v3oCgAJqGRG4DC7", + "payoutAddress": "XbUC8HXVTSTYciAw8R4FJakQygrq78srS3", + "pubKeyOperator": "82d60b38e24d7623ed6c7f5af41d967f18136c6b1b4c9ae2635c9a0e75c080f9c17bbd171f4457cdf3246ccf9852afc5" + } + }, + { + "type": "Regular", + "proTxHash": "b6ce1add2badf8bc9551cdb8120fdf01cd7483fcaffdf304764c10b129be0164", + "collateralHash": "e39ba9c7144cb6f8cf5bb7a36014dbc7282940a9a76cba99f47e1b51687b767e", + "collateralIndex": 1, + "collateralAddress": "Xgv83AXwxgQHGrbjQbDJYBffxeo2xnasxm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "83.147.244.129:9999", + "registeredHeight": 1845473, + "lastPaidHeight": 2127375, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw7frU2yRmNe3ddxWkMdVkkV2dByg6uWhe", + "votingAddress": "Xb7oHhKUjR5CVEqQX4GiNe9gQeqHMYBPN8", + "payoutAddress": "XuhKMNRyTZ7mJMJV4GBGFrVWZSo9htshed", + "pubKeyOperator": "19bd9c25a89fc4ae3cffdc117ed21e8b0926101e5c0f40d8c6a6d9bdfc96bd4af3ef873b434222a64882bba71795bff5" + } + }, + { + "type": "Regular", + "proTxHash": "8411efa9e286831d6d7b4fbb93d84830c64df9c11243dea4115b8c5f210c31d3", + "collateralHash": "a2f611128801060cb04d5d01473a130401791406a03384c60db6ba8e6276bf17", + "collateralIndex": 1, + "collateralAddress": "XwGKxPM1oWXMCqQCE3SN215C2wEo5JEKHa", + "operatorReward": 0, + "state": { + "version": 1, + "service": "143.110.182.63:9999", + "registeredHeight": 1845920, + "lastPaidHeight": 2127831, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuotRfwfFsVeVNgDyobYMGRPUFvSMVaxjw", + "votingAddress": "Xx5CG8aRgNT9NPvcjDsNzoMLwAbdeSZJ43", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "80ed1bf165e0f18589478a5df31c9d2d73c817b8e882a460456ebf920fb4b248d3a88d9ba6290a6fc10f87594593598c" + } + }, + { + "type": "Regular", + "proTxHash": "04a8dd62c3686b0d5c106a20190ff6f49c15b554546e17370fbdede760962a58", + "collateralHash": "907192235bbe3e1642cec18b5c1c95c00dc9e25d35a541587e45ae6bf2d30e1f", + "collateralIndex": 1, + "collateralAddress": "XvdAdGCL9gYAQW7iqQJJNTEq4Ek1oAaYQ2", + "operatorReward": 2.5, + "state": { + "version": 1, + "service": "46.30.189.251:9999", + "registeredHeight": 1848605, + "lastPaidHeight": 2127634, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121478, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgZC5ydJzWZpTh4mEpAwTKKzfMNuPV9qTZ", + "votingAddress": "XgZC5ydJzWZpTh4mEpAwTKKzfMNuPV9qTZ", + "payoutAddress": "XrS3uHCYh41Yma7sNbvTEqGvagrJ55aivh", + "pubKeyOperator": "11b96022504e08656113a7757c13727dcf2269fa3f8fefe9a665f56d76623fec8d13e522b441c02886f280a4c2cd726f", + "operatorPayoutAddress": "XuNsQvK88MhwQXkih7jvLnUjC2XZTxSVHN" + } + }, + { + "type": "Regular", + "proTxHash": "bda4d38656cf581ad35b9511364d10342699341d1ce80a70e289c8cbeeac33c0", + "collateralHash": "4f62483fd1a43255d660be6f8e236a93c946d1aa83b3d5e27d2b3c32ce4e3874", + "collateralIndex": 1, + "collateralAddress": "XsacYjnHk2KenF6ZeseQ3J1fheV3TTQY2b", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.147:9999", + "registeredHeight": 1848714, + "lastPaidHeight": 2126788, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoXWWHkonTwfTgtinix5prJ3NGGTdCGwmB", + "votingAddress": "XuzcEgZC6NAxaukB3F3bGmAXAqdqFwiFvT", + "payoutAddress": "XiP1gxzy2ioYEQ1MUvcCgsVvJWPPujQefY", + "pubKeyOperator": "947467e12c51e0dd596b1c54e368586f89580649b65850f76b60e351bd836d1294d35018fd4f8a14ae48f1f277753dc9" + } + }, + { + "type": "Regular", + "proTxHash": "fe31eb3f6e81b068a2f7b359f03894a8d1ec8d9af4bdb07e3e5c03507b05e8da", + "collateralHash": "4f4980b6893d6fa24e2a7ca7d99f53465246185b77cf6757a3d682827ddfcc85", + "collateralIndex": 1, + "collateralAddress": "XgMw7ZxaETCdY8FW31YkaC1AgfibNi7t4M", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.47.162.215:9999", + "registeredHeight": 1848714, + "lastPaidHeight": 2126789, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf7bf1AyCJpioJJ3cADT8duerunde2kJHR", + "votingAddress": "XpC5A6ST2Pq7BEskcg6SBwjbVAvyJaynFN", + "payoutAddress": "XiP1gxzy2ioYEQ1MUvcCgsVvJWPPujQefY", + "pubKeyOperator": "8df70018970325f062d6b00f35ecff0318e7ab357664100302abcea5e86b2f199525d54cec89da48e338ccfbff3131ec" + } + }, + { + "type": "Regular", + "proTxHash": "a2f154ddd969df645073f1fd04b3c26b91010cfcdbd5ce5aae11ae4c0a5442d2", + "collateralHash": "823717aa8bc2d73c93fb6a3f886dd4de9db62f59959577309eea18177e08db5f", + "collateralIndex": 1, + "collateralAddress": "Xmtd99CSPdChVvsCfKjc7FFysZunNtbu4G", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.153.70.128:9999", + "registeredHeight": 1851002, + "lastPaidHeight": 2128877, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XegwjxWCjULRMSXaTkzdY8PgbMwaYifj6D", + "votingAddress": "XsdbSaGXJpmKmbEU3qQ8GShwpyJpmmYacC", + "payoutAddress": "XtCFSiPKpezNFSMt4sVjVF47cK6oF3siWJ", + "pubKeyOperator": "8bda26ee0bb7df5927f056730c43175aef77dc80e2c48aca6a5fa0ddb5884195cfaaee0cc183b34e9afee1578d93f578" + } + }, + { + "type": "Regular", + "proTxHash": "e9e313b8c4bf5b38deaa842f7d1ec0ff84618b2399d113b9a1a61490eded5515", + "collateralHash": "2ec98f913bafc526e75aca1bdc8f108adf20cbeea33ddee0dc48ef1829322bd4", + "collateralIndex": 1, + "collateralAddress": "XqTyuLgmBmPYC1bLrhnZUxJYGYyJ3kN28d", + "operatorReward": 0, + "state": { + "version": 1, + "service": "87.249.53.31:9999", + "registeredHeight": 1851012, + "lastPaidHeight": 2128881, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw2j2QwuvPChTidMpUU7nhTwGoUW3xihGg", + "votingAddress": "XpXcDet87DuPyow5dCUvM55aqzzrAydhM3", + "payoutAddress": "Xy6csQXf5y9g6KLek2yGDoSmYNtgkF3PJR", + "pubKeyOperator": "0ee9b832d0b1867db21209fe5b151982d4fe1bb6bfcc01a3ea0c7525ab0d1f7f32a124c6f0e8ce2c656752f25a409c25" + } + }, + { + "type": "Regular", + "proTxHash": "0d90b3b37d00c242a43a61c5ef718e09d0823c958d11bf73256448acb357d425", + "collateralHash": "df0a13e0172de785e157501233eb2245d0e995f0201aba05782d894c69ea2f2e", + "collateralIndex": 1, + "collateralAddress": "Xx3Wsp1sYcGsP3B5qVMU5rRCgciqz784Ya", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.223.2.245:9999", + "registeredHeight": 1852378, + "lastPaidHeight": 2126676, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsV5CW6XL6dT2hkH1UNN9S1ztzm2SvFCfq", + "votingAddress": "XiDCzJSnGsxXMG26zk8bbaTEfZqdUb45X2", + "payoutAddress": "XjRAyvVk2YZGR7y1BvMyBwhRhYzq63PHY9", + "pubKeyOperator": "1972c3a450a9b85ad5e5f2f8f83e869b4ea05dd8ea0de5b61de0f38e1063f1612f830969c3e86ea3f2d3205a6272a2ce" + } + }, + { + "type": "Regular", + "proTxHash": "312960fd81f10d81ad04a9e687166a72215b7b68aa917648ac2504f22f593b24", + "collateralHash": "c04d008c741cc636f86d619de51e1a6ee17b2bc66cdc5ab8bf91ac3fd138263e", + "collateralIndex": 1, + "collateralAddress": "XpV1DK4XsEavf1QqQvYW9tZCz6F1zXN524", + "operatorReward": 0, + "state": { + "version": 1, + "service": "90.156.224.183:9999", + "registeredHeight": 1852652, + "lastPaidHeight": 2126896, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdUAYFvpkMbjvKaXAA8wuQj8nR16DrwEnZ", + "votingAddress": "XopMmzXbDEkpVQXki6tMSm19Xs5dNiGz22", + "payoutAddress": "XpwfaSy5AEMjLoeyqTBTYBA5QcuF3sp6Uj", + "pubKeyOperator": "08399da5c032edd233ec4eb1d14564a8af9f7f15d225bc11d2dfd6bbe2dbb1759e3fa982fde032a24f794c91e59a57c2" + } + }, + { + "type": "Regular", + "proTxHash": "4268bf176064b8152bae247daf1b1d0ec8338263946542b7a06a8dc9ff12f381", + "collateralHash": "eae080738251055b5c172b36d3a48797cddbadd1be365210a0743a17e1c80266", + "collateralIndex": 1, + "collateralAddress": "Xcxb7q4w526CtCQJijxEcJbvNzDAAuKMjm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "83.147.244.131:9999", + "registeredHeight": 1852673, + "lastPaidHeight": 2126910, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwvB12Kr6btzPeMJQrVrcVXVoH4APkHzrq", + "votingAddress": "XoKCtrxTq52pZ8YoH6V9tYvQcYtzHQCQZW", + "payoutAddress": "Xymr3PUBtxUYtMRj2U1LJsG6uZTKAhdm2P", + "pubKeyOperator": "86105db36bce1e67daae5f82388d8d46aebe4fe8c52e9d1068c7f1b73492b475a099e9a67b9cd909aee5bfa82def8464" + } + }, + { + "type": "Regular", + "proTxHash": "e2bd1b46ef27f60588f596abf4b18b8b7cd46a8ff5072f3b740a41541a1f221e", + "collateralHash": "e2bd1b46ef27f60588f596abf4b18b8b7cd46a8ff5072f3b740a41541a1f221e", + "collateralIndex": 1, + "collateralAddress": "7YeRpu8hkpSHRpmJ3jC1Z9bafQjdnxzRCA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "80.209.234.4:9999", + "registeredHeight": 1853903, + "lastPaidHeight": 2127970, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiZyGG951essA3KkkN5CWWpHGWAXyFP2gy", + "votingAddress": "XvLgmk4dB1yCD4WnonKqo96hFnM9zdMeHp", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "026524cf6dbd08727749b1452f0dc27eee8490ccf4dd9d07c6403ac3fc222924aa178a40aee96ac044dd3d34727e4080" + } + }, + { + "type": "Regular", + "proTxHash": "2320e263b65769d0238e5993336fbc3a6e6add332854a036c838c5ea634ce32a", + "collateralHash": "3e127030d9e2d42c8235e9c9816b018c79cfb489196a3018a0ba0e3c1f4f0a19", + "collateralIndex": 1, + "collateralAddress": "XkXxAY16f317bQ7BTNhkP4CeCgrVFCebM6", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.241.99:9999", + "registeredHeight": 1854330, + "lastPaidHeight": 2128422, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbhXBxkYf6sv6AkmL6YSwaiptws7aUsqFN", + "votingAddress": "Xsu5yn7ddozvayf6GfmRjNSE7bXLM8jj7N", + "payoutAddress": "XkXxAY16f317bQ7BTNhkP4CeCgrVFCebM6", + "pubKeyOperator": "8f77d978cf98d733ded65b1336f6fe857d6c42c1f6cf2643e65c5f241efe39f2d85dba35f2cea1929801ea2b26202ab1" + } + }, + { + "type": "Regular", + "proTxHash": "a367b847d8d9ebf08b3e031ab1c405d3e5a0dd2b6d4790aa4ee75ec46cdd4d08", + "collateralHash": "0de93ad18994545668655a9955a9c3b8760acc703d090a96a97c0286715647aa", + "collateralIndex": 1, + "collateralAddress": "XyqYvuWnLCYZ11rfVqZZPm93YNd1LBP9io", + "operatorReward": 0, + "state": { + "version": 1, + "service": "216.128.180.106:9999", + "registeredHeight": 1855379, + "lastPaidHeight": 2126403, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2113992, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XraE2j3Muy9ChXgQwDuMt3K2YJ5dwHJKfD", + "votingAddress": "Xp9az7t9YnNF7hmoxYi2wv1c5cNMiCofKc", + "payoutAddress": "XjWGFH2koCa1icuKkhcQ8NGB7wbABj2YAv", + "pubKeyOperator": "8ef9e71746ba14aef421321d7b6648f079c00d4810e840c0b171fcc9e093dceef5a817770165c9225e36a6b955b9acc7" + } + }, + { + "type": "Regular", + "proTxHash": "d07a7d89e087d101fa60bd269d14fc7dae9df3502640268919a7b8c61110dc6c", + "collateralHash": "54fc38608c6cf62785b336ffa5e3f79f71782f66257535fee3c638c3575f2488", + "collateralIndex": 0, + "collateralAddress": "XidCdpHsUzC83FzUdwCwxJ76Rh6HR3odFP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.245:9999", + "registeredHeight": 1855863, + "lastPaidHeight": 2126399, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrrk6PinaBZPGfeB3oHtbNmiApBJxDkzVR", + "votingAddress": "Xheu1JQzHkdErKRMiGYKS8kFP54ymMcjTq", + "payoutAddress": "XidCdpHsUzC83FzUdwCwxJ76Rh6HR3odFP", + "pubKeyOperator": "025dd209cc674c09162771d69b59c6196c674ef434d434bc0238262b345707d84f61fd9d02de0076a91ba6e4a9c1a984" + } + }, + { + "type": "Regular", + "proTxHash": "222abaf161a1698842b521056f950149c18fefe09f3bf71e1b230800b30b8974", + "collateralHash": "aa4c03a41db685c381672a19afacf3dc665d5ca6fc7841b0a27b09757f81daef", + "collateralIndex": 1, + "collateralAddress": "Xbo2dLBcLW2XB9gL1ZXScpBdZY47R89Trw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.150:9999", + "registeredHeight": 1855977, + "lastPaidHeight": 2125981, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2103068, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyqbLe6bNG64LAPcLBhbvDxvbdJAynt9Ah", + "votingAddress": "XyqbLe6bNG64LAPcLBhbvDxvbdJAynt9Ah", + "payoutAddress": "XdeXpjtyh7GTyuU4x6BK4gC42n2M5U9z8F", + "pubKeyOperator": "8bbccd10a37c4e365bfe1f3b44fcdca720933b336b2da5191b9c514b004c4e20c301462ae6841913a8ca5154342be511" + } + }, + { + "type": "Regular", + "proTxHash": "58a54272ab75d8f3bd8eef57e25a5bb1c4d954c03adcac0df9e71a8d771ed635", + "collateralHash": "0176e36997269f4ed89ad788089fc26aea884b7567e895de141534b9b5689392", + "collateralIndex": 0, + "collateralAddress": "XjMV37twCv6S8WkDkSLV2zdpi8gstw36Rn", + "operatorReward": 0, + "state": { + "version": 1, + "service": "38.242.228.65:9999", + "registeredHeight": 1860287, + "lastPaidHeight": 2127826, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876251, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XroKsGZ6Huow4Bo9F8ZnMuZnUsYwPTb1bp", + "votingAddress": "XtbUNkdj3no6JdxvVZgWS459gbotA8Z2yL", + "payoutAddress": "XyrCPeDcuLD8X4cESwRC258ZwYpRyarbMU", + "pubKeyOperator": "0bcbb7efb8b964e8a90954e99f36ef5c8155dbab4f3f05792ffe309f39123113481d3c8118034354d97cb4a2f2a44914" + } + }, + { + "type": "Regular", + "proTxHash": "50e484ea48a0b9b1a21977125fcc56a09c7f328558fc11e5d15009f2a4db63f0", + "collateralHash": "50e484ea48a0b9b1a21977125fcc56a09c7f328558fc11e5d15009f2a4db63f0", + "collateralIndex": 1, + "collateralAddress": "XxMbNv4iVm8EDBWgFfuDWaPxaLk6CcuMxJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.206:9999", + "registeredHeight": 1863196, + "lastPaidHeight": 2128369, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115906, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyoW8L72UhNFib7N6tKqa9NrRLUF2xkmgJ", + "votingAddress": "XrARRH3tbwRw6sXV3g5pW7EE63jSJuDVU5", + "payoutAddress": "XfSSzTychv9HyiGxA54QBMikZ1PTYdVi55", + "pubKeyOperator": "032beb39ba276fe99a9eb004b97eefe27fb3ed1c2741869fe821b8f25bc4502abaa4905bc52cf80d23896092a4bae77a" + } + }, + { + "type": "Regular", + "proTxHash": "cf75468bd031c4ef4f1c5b960984a65a03bc0ef953a5c0a213fc8d67ed1fed2c", + "collateralHash": "6105a637d118851c8ede9c7ddddd2ba09f7adec7c55377e4e12aa42f1fb4c8c7", + "collateralIndex": 0, + "collateralAddress": "XgYR4CR7DePnU9auYqVa7w4Qc5bX5vwhDB", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.35.107:9999", + "registeredHeight": 1863595, + "lastPaidHeight": 2126423, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsiwU3ycNmftqAJ2FRuYhZsbswXemgZ23b", + "votingAddress": "XxHmGN12FCkAqqCmB6q4zN9AzFhzAAY5JR", + "payoutAddress": "Xs8hq6mSqCPfAa35AtipKsvcHD6PEQ2wA9", + "pubKeyOperator": "880ac3698120d39035db1de0924026aec0e0c57978b4f1871f2b92e792c69c9db5552f3d365aec6a26a13ec96f3dde80" + } + }, + { + "type": "Regular", + "proTxHash": "8bbde268378e506231383529f0917b5114d0d0a8bfa5199607943c9c3940de31", + "collateralHash": "8bbde268378e506231383529f0917b5114d0d0a8bfa5199607943c9c3940de31", + "collateralIndex": 1, + "collateralAddress": "XeyenFK8vXxnC67p4EXPYEU9Gs7KA5ubsR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "174.34.233.207:9999", + "registeredHeight": 1863632, + "lastPaidHeight": 2127209, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121075, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdajrizTLgcCC7iEDCKM5VnvBu6wRNnPPY", + "votingAddress": "XmNWfhYkRhwY4kCEm6EBzwf5AcByLycGcE", + "payoutAddress": "XfvBxF3hsvNWGu27Uz668zr8R5zL2oXqwz", + "pubKeyOperator": "8894ccf8e3c9e31a62f4363bbe9ad6386ee065047ae24263f5374c236b069ec450b6863b9137b74db6ff1aa58f72e1e9" + } + }, + { + "type": "Regular", + "proTxHash": "e58773dde44ad891c2d667cf67265d96b344e7f143199756269bb8111c7d39cf", + "collateralHash": "7a82acb93285ebbb17ce8c16dab6465715a7bd4504ab4baafe42e59d0d2d60a7", + "collateralIndex": 0, + "collateralAddress": "XeRXmFndxbNHoeghRN8iaeG9rAnd9f584r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "212.113.123.107:9999", + "registeredHeight": 1863969, + "lastPaidHeight": 2126708, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwnTKCfSewSHXQLC55f6Gvgf5xJq6jHsA2", + "votingAddress": "Xwhduf1dt9AXewsNCp3qMYhYvsfZxNqo7w", + "payoutAddress": "XnKokopk51U7xwvbQDvWS7e2S3bmcphzBi", + "pubKeyOperator": "1479e69e24e17104bb36ba869e96916b2cfd2a4a8048b079f66971f158f96a7339f79e33233bd9b27c432b1603f722fb" + } + }, + { + "type": "Regular", + "proTxHash": "61b09312bcf78a0c373ae104567a557707ec6bc2fba3a0bb41ec1c6ee4b3736d", + "collateralHash": "0f4e2be262c4166ffb5fa8aba22a5908565186bf91fa9233215bc13b0fd84eba", + "collateralIndex": 1, + "collateralAddress": "Xwue5d9JppYPJq623xijuvCF4b1WuszobR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.233.187.132:9999", + "registeredHeight": 1863971, + "lastPaidHeight": 2126710, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvR6xmaTU8BmM4X7F6VeyzzNaZcGm9EPFb", + "votingAddress": "XuEKt4DPe4yxmCd8LPL5DbvJfCDLRkob1K", + "payoutAddress": "XrpYoJk8kGE1CNvPcSpzZHgTL7FwYUP4ca", + "pubKeyOperator": "0eeb91c7ecb66788d3bab1d4318c4cf1fd1ceb29a2cd0d873280b6334c266ad28409c856778e274a03756c5deb05533d" + } + }, + { + "type": "Regular", + "proTxHash": "8fe1154ab9324acc3c0d8b296502ac4f2b2ad6fda86692c7ecffc1287d2739e0", + "collateralHash": "8233de4a0b4ac93ded64b150da5b0385d402a27e1bbf189bcc2a4c24462e1787", + "collateralIndex": 1, + "collateralAddress": "XiJqCRXVXAKBzWjGAu8BxH34pAqwfxjvze", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.84.203:9999", + "registeredHeight": 1863972, + "lastPaidHeight": 2126721, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxqtRMq4PCcV3DzSbaxaBL9rwNhu5QRFoS", + "votingAddress": "XtGvvBv7uDXVN3DRSTn7fMHbwdojYATgrZ", + "payoutAddress": "XtmMCGPRdoMM7Rf1GCpbcWieTpXDn5DPgT", + "pubKeyOperator": "09772ed1230aa59ee2870ea699fb23ed5283d3d3d964393432020a6f77b7d484f55fd078f77a8df424cfb04a70b2956d" + } + }, + { + "type": "Regular", + "proTxHash": "b0cfe2f82907c5a9804bfc65bb98ba1c78951252bfed6ae0ddc0e35809b74b23", + "collateralHash": "705cfcc8cd67545e0a4eca0911f58e2de0d60722a0e14dfb529cfbb36ca2b734", + "collateralIndex": 1, + "collateralAddress": "XsTZdJez1atS2Vj5VcbxFypbde1vjS81Qs", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.225.84.3:9999", + "registeredHeight": 1863973, + "lastPaidHeight": 2126722, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbuxu7adGNji88Cf2Dre5xSaLYsRMaQCnw", + "votingAddress": "XpKZRGD2EQPf7XnyKCXJnANJVnZWbtYrwq", + "payoutAddress": "Xoy3cqnHfvfihe2TUGyt8uWyhPNyBeabP2", + "pubKeyOperator": "0a2fee62cd4f2eae4e19039dbc5d77126d50efca27d2596840aa51e40035ae1562c9a1227468f3d9b075b9aa83ae0bb6" + } + }, + { + "type": "Regular", + "proTxHash": "f73e7c0b47679cd2bcc67f8c7d7af629c4b4deda28bb5ad26d2b9afb7cf998b6", + "collateralHash": "9dc398fb50ccdd42345932c27a5ba4b6002fef83b3f465f7e9692363f7890f03", + "collateralIndex": 1, + "collateralAddress": "XgqQz7oasCVu7BMGgvMQx26XANrusFWPCD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.99:9999", + "registeredHeight": 1865136, + "lastPaidHeight": 2127821, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqQxWymCsBZqDAhn6y1cm4Y22BiSrgdnmG", + "votingAddress": "Xc9F6VzUjBR2LJYUAFdgehA19scUxVHpKa", + "payoutAddress": "XnbzasCtZCkWPoCjFf85JSjhtzSABJrNHp", + "pubKeyOperator": "05c03837fd8c08c9e1541bb689b1088e5b700c6c59a567e9bd4404a987784408425d5d00ee479fbdb9bf8d245cd614c0" + } + }, + { + "type": "Regular", + "proTxHash": "70dff49b0395eb2a62dd076b1580dfb2647fc3cd1aaa5bfaef73a31fcf3170e5", + "collateralHash": "317a3a082f4b413efe0dd900fa53efd1e884ca91e1dd8cec24985a4f4a70828b", + "collateralIndex": 1, + "collateralAddress": "XqsfgyH3wHDR3zUV9q6W2kVrkkmy4oMQMK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.198:9999", + "registeredHeight": 1865139, + "lastPaidHeight": 2127832, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuFFVSH8H7vJibrNj8UmE7doTPYS7WjJyG", + "votingAddress": "XvXPx1w5KWNa9nwFvxgQMtW4XAGxjsj5Ya", + "payoutAddress": "XnbzasCtZCkWPoCjFf85JSjhtzSABJrNHp", + "pubKeyOperator": "83eeba94ddea1bc4dd75c07e80da268be62150b3765858e9a66c1b21896f77e5a7803fa6fbdb16a4d4d09d8cbabae50f" + } + }, + { + "type": "Regular", + "proTxHash": "7a1e5cf10031f7b97926ff79da4004579b3e2bb48491529d6f050217c7177cd7", + "collateralHash": "f0b2740b05e10432f8576b273c8420ffbd7747ce8b2f93837fd12c0e9dc81220", + "collateralIndex": 3, + "collateralAddress": "XynAZNH1SuHRzg6fGDAdCFHUXNDz2eRH8y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.223:9999", + "registeredHeight": 1865142, + "lastPaidHeight": 2127835, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx7XgY15EzTGrcbm9FWYnFQYa4MhXxFzsK", + "votingAddress": "Xk1SLYmNm7TBe7gBVGt2S8zmjV1yEAFpN6", + "payoutAddress": "XnbzasCtZCkWPoCjFf85JSjhtzSABJrNHp", + "pubKeyOperator": "091b5e04c677b7d6d425e167d8e695e60ab6e2031c94f8b115e17b8fefff25b8d140444bf73b1564beafa1bad4420103" + } + }, + { + "type": "Regular", + "proTxHash": "81981dfc3daae32c18519a76dcd2da4272e779b48c2a6685501a22091133606c", + "collateralHash": "f0b2740b05e10432f8576b273c8420ffbd7747ce8b2f93837fd12c0e9dc81220", + "collateralIndex": 1, + "collateralAddress": "XhiRHmNAobLhiRz94amiuJLdPfd4hSuLw7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.226:9999", + "registeredHeight": 1865142, + "lastPaidHeight": 2127833, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx7gqyfCUcyn6AbCnQhMFKhYq6Z9DHqJRn", + "votingAddress": "XsiNneEEfrRFYVR8zEJs99bCNNdxkCqfHJ", + "payoutAddress": "XnbzasCtZCkWPoCjFf85JSjhtzSABJrNHp", + "pubKeyOperator": "13fa1982b40c4539d4c345dbff85eb62e60d0db856f78012e9cb58fea7ba3544023c5293e2bfc2c971c7bba21c892bfe" + } + }, + { + "type": "Regular", + "proTxHash": "3510b0f3f1635eb2568a56db642c9502b72bd78e3c89fbef098f159a139d9d6d", + "collateralHash": "f0b2740b05e10432f8576b273c8420ffbd7747ce8b2f93837fd12c0e9dc81220", + "collateralIndex": 2, + "collateralAddress": "Xr8WCTuMVi6sErXCvD7zeTVs3y7k8vtJ4h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.8.83:9999", + "registeredHeight": 1865143, + "lastPaidHeight": 2127839, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjwzr4cCcegZhZPckJQNWVYjDaiSZy9jdQ", + "votingAddress": "XgXkpbxZvLzDYMRUmGkz3QkpzAi23LsjxL", + "payoutAddress": "XnbzasCtZCkWPoCjFf85JSjhtzSABJrNHp", + "pubKeyOperator": "1615d592000e2c8e31b574e160e4f3ee32f272c8d9dd4ddf3e5df863f6499bbc06009ca98a902b976872cd9e585270ed" + } + }, + { + "type": "Regular", + "proTxHash": "85c1f20f85a2149ce9bf1532cc6dd6b82ffdb8043efc479efc06e5ff12f46785", + "collateralHash": "0ac0b8eff364a76235035663808ad3225740a32214b15106284658888a18e301", + "collateralIndex": 1, + "collateralAddress": "XgPfFxSWivz7an3AXpeQsE3WJ6BJQTorjt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.190.39:9999", + "registeredHeight": 1865680, + "lastPaidHeight": 2128199, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgaiMs3QHsuzfZt9kiKLhbWzQRdutM3Nx9", + "votingAddress": "XmBjssbKsgQqSUSjWPDkJmwSQkwdCxCPfN", + "payoutAddress": "Xi1v6RzpX87WVpGahrqxCFxwvT7uTVw19K", + "pubKeyOperator": "8e4aae6b0463afef74ba6504da63274e8fa5f85a2b111ab06ca080870e0bafb424df487bc340db8878ca2f5893cf636a" + } + }, + { + "type": "Regular", + "proTxHash": "81b7f30abb2fc8f2853369be30fe918dc6bbb42296a00291c72b74d2adb8e7ee", + "collateralHash": "74e00be0f876cf79dc07789c32f40de4799284f9060e0bd8463d2632732af1d4", + "collateralIndex": 1, + "collateralAddress": "XufpUDhpPR1wPTGxAQ5EdueorjBH5adB4R", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.79.224:9999", + "registeredHeight": 1867207, + "lastPaidHeight": 2126321, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxukziXZAZuNbt1xg4aGrgd5zksgXDehB5", + "votingAddress": "Xm3CefgproY1A8MhNA7rGGNiwCt9hnFEvC", + "payoutAddress": "XufpUDhpPR1wPTGxAQ5EdueorjBH5adB4R", + "pubKeyOperator": "11791f54606e15547880a8184366202f2edad3676022c0ace9eea5969dafce10ca79e53e61f71cb668bd43bad12c20ef" + } + }, + { + "type": "Regular", + "proTxHash": "47d8e41410e9f50938f6b277c64890a8ae8e8ba839fab8bdf085a2c1a02c3d19", + "collateralHash": "5f5641d14a94d474eca96af8236381fbb7854f50779e736d66b3f2d32d363f57", + "collateralIndex": 0, + "collateralAddress": "XjRDtdioAorGPM6fUkHY2siWKnt2VsrdfZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.17:9999", + "registeredHeight": 1867323, + "lastPaidHeight": 2126366, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XetqGjai9jBZfqqSq5ZncXJbRWY4cJGmcz", + "votingAddress": "XuiQHucQP3mxh46DvxqYcf5NJSU72zeDdH", + "payoutAddress": "XnvTsZKSNCiwcZznufnDvoqP9xDRYBzQKD", + "pubKeyOperator": "91619c6f13b38a3974f9ab92805d5b5ecba9a39941644b69c13c56b051b96bdb7d9ed6bfb1666186679e3976e91eaf02" + } + }, + { + "type": "Regular", + "proTxHash": "d68c509e60ca40ed9bac73c80714b711d49ead5f9a6ebf41d4be9f9cbfdcde3d", + "collateralHash": "59c25ca2701126852f834c49d59011b973c8eed825a8a52c7225fef69768cff7", + "collateralIndex": 1, + "collateralAddress": "XgoPDhMC1Qb7F2HqQSYGwB1dYVp6SwRurA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.163.14:9999", + "registeredHeight": 1867589, + "lastPaidHeight": 2126530, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwX7hXF5qPqH8GjNz5UDqfYusXMrXLm17g", + "votingAddress": "Xj9DcCfXnQNdbtvsdpiLFBMBzFeqVFQzVo", + "payoutAddress": "XgoPDhMC1Qb7F2HqQSYGwB1dYVp6SwRurA", + "pubKeyOperator": "0a3b15fdef76eed4093b5d1876bb7777afcf5063d26d82904899de92117da6188f10becbc18d29f7ae43f5a0454b553c" + } + }, + { + "type": "Regular", + "proTxHash": "981bb38bcab920beeafd2371ec4d8a3458d38fb3ca8a8c0890923f6e4f452f16", + "collateralHash": "c41cf91f2c92490424eb149d5a793dd0ce0af41d6ad54ce94f1debc70c0d236d", + "collateralIndex": 1, + "collateralAddress": "XsNAapCo9Ghr6uKK55NvaFkD1ZP7RKicBt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "138.68.184.108:9999", + "registeredHeight": 1867748, + "lastPaidHeight": 2126999, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2016332, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrth69bBLxThCsStWbH22A33ZrTY4c9EP2", + "votingAddress": "Xm35AZRdN7ejPu6uXDfwdRt1cTfqFQhZYJ", + "payoutAddress": "XeNG2rakAxQSBtudjdqccZE5g9oe1RVCor", + "pubKeyOperator": "0b6c462d4d4455dec217460e94155bbaa09e8cec2f26bec6a354d261d0f6e7f38f04b2c11ef1eff5772e939019270362" + } + }, + { + "type": "Regular", + "proTxHash": "f64f1a5c7a214df9d015b0016ad59922088423f124c70b47c8ac64c75124d1f4", + "collateralHash": "f64f1a5c7a214df9d015b0016ad59922088423f124c70b47c8ac64c75124d1f4", + "collateralIndex": 1, + "collateralAddress": "Xriu1kqvfQHcnZZt4iKWJeEzxmmvAQdKtk", + "operatorReward": 30, + "state": { + "version": 1, + "service": "3.128.38.105:9999", + "registeredHeight": 1868536, + "lastPaidHeight": 2127076, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121021, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjqzVpueHRwey8gajyk1SFwBjVnpE91yX4", + "votingAddress": "Xk835Ahr92QuHK9KcNELY6DXt9mVhVKauh", + "payoutAddress": "Xk3EDAuTSythMBAv36fDFmGZoXhLYK5svn", + "pubKeyOperator": "146e4539fd0ead3b9fe3382fdd646bc64f4ebeec92f84e55096b30d851c3e46b17341717fd794987c2458f6e84723698", + "operatorPayoutAddress": "Xjx8htnWsBqqJT2omcWeAbTfE85t81Bifc" + } + }, + { + "type": "Regular", + "proTxHash": "c275846e82b6839a398a97ec7802ac5e44b5990338bfdcea394e014295b962fd", + "collateralHash": "4e9ee84384eadf6d0208c0a615694e28de2a09fb60892e767d5fa19ddef750f1", + "collateralIndex": 0, + "collateralAddress": "XetVxwqSHKTfC5whAhtAhUtHE1E1RYHSvg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.86.70.251:9999", + "registeredHeight": 1872506, + "lastPaidHeight": 2128737, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2099074, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnDtNzxCJtgj6RuyMZM3bdLavUBEuk6g6c", + "votingAddress": "XoHSiXz242xXRJt9NfFSLq6p5gdjRJddsA", + "payoutAddress": "XtRc7RA6gYSZSxWWo4EacFqeBtg1wdtHX1", + "pubKeyOperator": "8db3b8e37486a26f1513ad22c7a0fc41ffce9a0022062da82fcbea0fe2c06569ee51336dbc954fa24ce2f2ecbc03f483" + } + }, + { + "type": "Regular", + "proTxHash": "e40fb7aa4e742b8ad1a1c3c8f9291486b8a11b9301b94dc4aef8e7111da68615", + "collateralHash": "4b0f2187b9abd6baf2c39f22f55abac8a3208639cdbb657dcc0eb8ced04b9cc6", + "collateralIndex": 1, + "collateralAddress": "XooX5L2VSjvRTkA7JPUwaQ5TznA5CguCRT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1872536, + "lastPaidHeight": 2108232, + "consecutivePayments": 0, + "PoSePenalty": 3842, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2108778, + "revocationReason": 1, + "ownerAddress": "XgfQ2kSUQwocKzoEkXs5rbL1Nqq6XTiua6", + "votingAddress": "XjNM7CF57izrUK6A8Fj2U5uGQdBx8xVYGY", + "payoutAddress": "XooX5L2VSjvRTkA7JPUwaQ5TznA5CguCRT", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Regular", + "proTxHash": "944f9d0eeaf4464f6c96cc4af6dbd877a011c80f00d22fc10ad05ba303ad4189", + "collateralHash": "48a1b4e14f90beb7262cfc6da00eb9020a60b60ccfa956de694bf324c7cd9530", + "collateralIndex": 1, + "collateralAddress": "Xoic1ctSJPYDzfZwheV997ZEE52jPaNVCV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.226:9999", + "registeredHeight": 1873648, + "lastPaidHeight": 2128541, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XunWwB4PXsobRx4983saeqVysTUY6gLmRZ", + "votingAddress": "Xwt7a6wtcq4RCzAdWrKTWRjSgXMtKkPNiJ", + "payoutAddress": "Xoic1ctSJPYDzfZwheV997ZEE52jPaNVCV", + "pubKeyOperator": "9560368d71dd848559099c419c5ecc70098d4e4877a490a5e3f2d8bf2e1e20d36636ec0444805a41e9b6cd2c3c01d20e" + } + }, + { + "type": "Regular", + "proTxHash": "778cc721843f820cc8ed258eea7a8a0f65c96315e41e8bf099a04f42d3c30523", + "collateralHash": "205801c49b8c7d80e93ea65a1986b51436ee49605d08172511ee0f2745f778f4", + "collateralIndex": 1, + "collateralAddress": "Xk1Xar6RBHGbDUnr7VjR4sdAhMGPy9ZRBC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.207:9999", + "registeredHeight": 1873863, + "lastPaidHeight": 2128835, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsb1176sB79NFqHP6hMKEXmhgfYehhbYor", + "votingAddress": "Xez6kM4bdxJgSpXhjfeLJUAZwnrFULEGG9", + "payoutAddress": "Xk1Xar6RBHGbDUnr7VjR4sdAhMGPy9ZRBC", + "pubKeyOperator": "89462a959678c13ac4538652a65ab3729ca4170b764a21b29ad14569b760f87a96c2551272e59bf1a5b7159a323dc0b8" + } + }, + { + "type": "Regular", + "proTxHash": "7aa96af2586ad5648da216613c993c546037044daaa508a2d9a5229d9f92d0fc", + "collateralHash": "aa53b58d0ae47e5ac34844485ab448fdc2db715088794ebd6cf5a559209ce17f", + "collateralIndex": 1, + "collateralAddress": "XrVyEdWT7CZZXf5ojeAgyfcA4n44F3nKYj", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.13.80:9999", + "registeredHeight": 1873908, + "lastPaidHeight": 2128870, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpWqQV4d4An6f2FSf5D8Ym36tA1zgzfvsN", + "votingAddress": "Xppk8eQ1f6yXAb1BonRztLeCWaqSEd5yZa", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "9483a65ca2b73a2052c75c6e2be644f5a534e6e163c5aafc056fe39a17cc26950014ad1bdbfd905e42069ca33fa2a9df" + } + }, + { + "type": "Regular", + "proTxHash": "fa9e2c144dad9461b24cabcc911bfc7251c8257be53da5ed014afd9caaa99cd5", + "collateralHash": "88782a3ef58614c55ffef441b9c465d7b174a0e3abc86d6f09daa3b147c49bd6", + "collateralIndex": 1, + "collateralAddress": "XxFww28SMwdnmF5yrMa1cRGjcAM6NR6QsE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.131:9999", + "registeredHeight": 1874526, + "lastPaidHeight": 2127552, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1876076, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg7SiuDeYK5J6Rqk2F3DpXLW2htep8JDFF", + "votingAddress": "XymPJ5BCTYPNi5DiK4VtRWDvtVeBctSQDm", + "payoutAddress": "XkhSS4CNQZyDReKU7DcrohZtd46jnBvjUu", + "pubKeyOperator": "01089bf54f2e7b80718efa546ce2d4f520a2c55d58574193b93b97c9b4c9f70d123febc8b7d23442bc3b0f4f48b7bc59" + } + }, + { + "type": "Regular", + "proTxHash": "6d21fbc09b430f2b18faef0920f16a293f42c5df9b2246287244251204f5b4b1", + "collateralHash": "032a2f084efff4a2151a1e30dae703957937abcc2be7952d6456ed2c86fc82c0", + "collateralIndex": 1, + "collateralAddress": "XoVHRkb33J4DBCDNK8dEuNkrQHUoBiF1CU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.199:9999", + "registeredHeight": 1875492, + "lastPaidHeight": 2126959, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm6TF8CN9pc7KMbyb2FyZFCVmPP6osHecC", + "votingAddress": "Xe4YCnrA3PN5Gx4Q5XkhKZCnJjiqfR4oni", + "payoutAddress": "XoVHRkb33J4DBCDNK8dEuNkrQHUoBiF1CU", + "pubKeyOperator": "8459e6248e2c40a7ddcdd416a66be93a14db9ef5a4b7d8d2977c9b52cbc162085805f23b1c481f554b255dd0a026c072" + } + }, + { + "type": "Regular", + "proTxHash": "6bc7044f49cb26dbeded20ab94e426a5c2b5afad8435bb7ae7cfbdf767a8993c", + "collateralHash": "b5392b9c754270c59c5a926f51a8ebe076cae9b0e529881f2bef747288ada84d", + "collateralIndex": 1, + "collateralAddress": "Xxv5FeoKi3khqzncEcm1ChvUG34BeKw6TF", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.192:9999", + "registeredHeight": 1875497, + "lastPaidHeight": 2128162, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1897479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XixVn4HwqeKDZ3itUwQMScDywPkwhdX5di", + "votingAddress": "XyvcaouoAcsm5pLus2P46jdsr8dwUvhdA8", + "payoutAddress": "Xxv5FeoKi3khqzncEcm1ChvUG34BeKw6TF", + "pubKeyOperator": "8a62c1db09ff7f2a8869959d21b3e333f8e777b6d00eeac4a0217faa19b528250aec4914d17f4092d23f4b93a8150a33" + } + }, + { + "type": "Regular", + "proTxHash": "99f3250a2c0a2d5d92a4ecd0feed0b6aefb52d2d50e42aad8b84b7666582c336", + "collateralHash": "47eea4aad66cf6957cd7bab59ad4870fb9b4671f959468d955e3422bcea1d601", + "collateralIndex": 1, + "collateralAddress": "XjfyG4TBcsa2Xt48Asf98BFHZmSPUxy487", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.16.188:9999", + "registeredHeight": 1875785, + "lastPaidHeight": 2127294, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XseXAq8716yEsF5CEXgkkGikzB1Fkm4D8V", + "votingAddress": "XnN5GJLX5u65kiy6UieYdMz3aDofhFaNdA", + "payoutAddress": "Xbz2gtGKwgBGVGXvgMJEY9R6guBXZQG55s", + "pubKeyOperator": "89489e1b43bae9cfa539e1be7e0ce324e1f46939963a1ad8ad1579e211f1115e680b73029598c8cb05d3e3427519cbc0" + } + }, + { + "type": "Regular", + "proTxHash": "53c902f600b06d3befbb7024b4bda8f4475f2803244f9ed23602e9a03ae97828", + "collateralHash": "cfe61bebfd78302ed2db23236083c6d3cf61bf4821462a299d6d2d941e529039", + "collateralIndex": 1, + "collateralAddress": "XpGKWGi9UtCDcJUE463D2q2C2gFjHD8yBK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "206.189.90.249:9999", + "registeredHeight": 1875811, + "lastPaidHeight": 2127310, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrzDQhunHnk8zhqomg9uzo7vu7WprafsQ8", + "votingAddress": "XfZWkim2vXiSYsPWhQoECkWVskeWvQAriw", + "payoutAddress": "Xbz2gtGKwgBGVGXvgMJEY9R6guBXZQG55s", + "pubKeyOperator": "914ce88cdc464ce0e31b928a2fedd30ad3bcdb6de80549b953a8d86263465974efeac4a4a1186b7dd041e04d4f9b9230" + } + }, + { + "type": "Regular", + "proTxHash": "341eca6bbef9ff7e137840a558d719fb74762c50e39cb28a93b4ec60cf55fa1d", + "collateralHash": "7ddb2b0d86781f5ae0ad358dc6cafecf6c417c36a3160ca524735917ec887013", + "collateralIndex": 1, + "collateralAddress": "XtbzHkicLPXqV7hxkKnxsddWj5FVcPo1vA", + "operatorReward": 0, + "state": { + "version": 1, + "service": "64.227.142.227:9999", + "registeredHeight": 1875813, + "lastPaidHeight": 2127313, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd29DFgKBe4VjbXAXCM8Yj6HPXbhNndwfT", + "votingAddress": "Xqmczd79K13uovjjqydRwGE74MCbHtyR2p", + "payoutAddress": "Xbz2gtGKwgBGVGXvgMJEY9R6guBXZQG55s", + "pubKeyOperator": "977c4dec53dfa4962d32042e1f37fa04a8bc123d6b88fdca8415958a0639470be830f8996c0fb2d1690040b80d9ce955" + } + }, + { + "type": "Regular", + "proTxHash": "ad954279f2e61d8c1207b85dc486e8b15c2c128084d2da4f66184b6c5f79b395", + "collateralHash": "7700ec3edc2da8779b320237793a85a6dfe51d1f0ef99ffeac31c337bd7bbfae", + "collateralIndex": 1, + "collateralAddress": "Xc3KLfajSw4NLZMurNsgpf3euiTq5RJUrx", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.223.213.29:9999", + "registeredHeight": 1875815, + "lastPaidHeight": 2127317, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrsbfAhfZSdq7nonp5YChknSyAKUqixSEN", + "votingAddress": "XitkrHWJU7rN6Djgz74QVcFy9TssDjrxP5", + "payoutAddress": "Xbz2gtGKwgBGVGXvgMJEY9R6guBXZQG55s", + "pubKeyOperator": "9479a7851a2092bf62df1176ce6381b4ad1a38c1a3e00394b011a012b9db8f270fdc824d020b72d0dc02a7a7078b1207" + } + }, + { + "type": "Regular", + "proTxHash": "b08b4b92ebd356f36e984bb305b1862be4088c16b230cf7445fdf265c2ca2c59", + "collateralHash": "e416b40aa62045285762e9ca787e75cd58ea8ee81037dd120d78d90b5c8e6645", + "collateralIndex": 1, + "collateralAddress": "Xf8yz8W8MSEgvMw5WPro4AkWytFziVAmek", + "operatorReward": 0, + "state": { + "version": 1, + "service": "164.92.216.171:9999", + "registeredHeight": 1875815, + "lastPaidHeight": 2127316, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xofh2dGGyj1ApQ2eFMhnZgynJAZ8JmjpqN", + "votingAddress": "XdSEjv6XbqsDG2soxfQRJFtatLbUNUXfo4", + "payoutAddress": "Xbz2gtGKwgBGVGXvgMJEY9R6guBXZQG55s", + "pubKeyOperator": "16215aac14c44cb77912df97eea8020574918619d3013dd01f82e7b18e911ba4257669db7e387a62dcef08b4bdbb6754" + } + }, + { + "type": "Regular", + "proTxHash": "317f1faf42decd1a59b31b191a6917579519656b694fe3d8fd7bf07c4fea4d85", + "collateralHash": "e1c17b4a895548710b2d8e59fac0412f2ce7082a9240c290c5dd2e9d5950ebc1", + "collateralIndex": 0, + "collateralAddress": "Xp7YUBaguq8wDgRGYY89nZSD9nGPq9TA6w", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.230:9999", + "registeredHeight": 1875866, + "lastPaidHeight": 2127383, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp5NsJTiswYN2C9e3XgLD2J29XJL3LDCSu", + "votingAddress": "Xws8QiLod5SUi2CBmHCTZ6z49kYtgrcNYe", + "payoutAddress": "Xp7YUBaguq8wDgRGYY89nZSD9nGPq9TA6w", + "pubKeyOperator": "878323657a873143953539c06e860f0400b81680663c0b0571071ab9911d54c33fef373064a9d4dcb4fc398df3b01ec6" + } + }, + { + "type": "Regular", + "proTxHash": "5608cf94101958f7a5c9b0d6a47b0eacf9055666348858e4b1819b2189c50c3b", + "collateralHash": "56175dcfe7234f534ac3300579c69a6c1658aed5704d6cabd3d75fd4570d62de", + "collateralIndex": 1, + "collateralAddress": "Xegn51KzoB76RLvKtiTZmTFYNynihhzNAU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.197:9999", + "registeredHeight": 1876218, + "lastPaidHeight": 2127783, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiK4PrGjC7w3KqacLx51pfJqZngrt5n7BQ", + "votingAddress": "XmFZ28ZFGsUNnnbrCv3WWeWC56qh7k5oD8", + "payoutAddress": "Xegn51KzoB76RLvKtiTZmTFYNynihhzNAU", + "pubKeyOperator": "992cafdd8189644f6412e9165161a6ba26df1073f2396fcdd6d2bca32a794047d2b8b6e0c4a417bca54e2d93dba5ae4d" + } + }, + { + "type": "Regular", + "proTxHash": "b65f51322fa70dcb949405be58be6bab0e8269ff967316314cb1a6caa2c75508", + "collateralHash": "6911f4095c15e69a20cbe5a2698afdfde4d5cca410d065c28ec0d414f0ae91a4", + "collateralIndex": 1, + "collateralAddress": "Xcth5onuDS8HQhvs38N4otoYker4VwzNCh", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.54.103:9999", + "registeredHeight": 1876231, + "lastPaidHeight": 2128084, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1897388, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgHqRXq9jRYZUW1kxQyDUFd6s4L3Gz2rPW", + "votingAddress": "Xtvmak3TK1Bs1y3iGDrqJbdia7QuaAMMjb", + "payoutAddress": "Xcth5onuDS8HQhvs38N4otoYker4VwzNCh", + "pubKeyOperator": "846144542e80ce13cbbeafa891c2593e6d8bc60dbfff8620ec4d3b4d7dece41f72cef3e3f2d96d4b91d010861fee3210" + } + }, + { + "type": "Regular", + "proTxHash": "d55fdbe997a33de3ce892de452e8c80657175923bfa7177ab9ab024852e99926", + "collateralHash": "87091f10b917183daafd6f365ab84ed3d55a0c79ca4e7d34b880007ae806c2c9", + "collateralIndex": 0, + "collateralAddress": "XbZbjTyU2XAiiYsewEeaMWbAWNuxNe3mjw", + "operatorReward": 0, + "state": { + "version": 1, + "service": "178.63.236.109:9999", + "registeredHeight": 1876373, + "lastPaidHeight": 2127928, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmv9tKoiZR3XJBQ4vAPfJayb9AWvDKbQ4c", + "votingAddress": "XiH4V6LwZGsGMbRdLsbmF481rZHZvv4nVJ", + "payoutAddress": "XbZbjTyU2XAiiYsewEeaMWbAWNuxNe3mjw", + "pubKeyOperator": "0213dba55c18cf5c5174d22246dc639db402620fe748b6f6a4750d3aed18cdb9519aad474ff77e919b224089c6337e69" + } + }, + { + "type": "Regular", + "proTxHash": "47cdf2afd4eaa7b0151ac48d74f0a23d05b31d730b70f2b7fa826900de0800f3", + "collateralHash": "c8afa6b832788ef89a8cc6b1d78f254e07967c6dcd8c3e26e35e98cfac75ae4b", + "collateralIndex": 1, + "collateralAddress": "XkytWzXs3JzqAbyKFxatr53dAPnriKFTWJ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "139.59.156.27:9999", + "registeredHeight": 1876458, + "lastPaidHeight": 2118889, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": 2007233, + "PoSeBanHeight": 2121450, + "revocationReason": 0, + "ownerAddress": "XtY2mTQduD4GAkXcMZsp93xiZFx46AzYBU", + "votingAddress": "XoiTZUVa7ZTyP7yCaku2JSNhpiCu9g4hZo", + "payoutAddress": "XdTmXPQ7MsFwkFAVvL3gEs73x5azHaUyu2", + "pubKeyOperator": "810f9d8ab43d282ce3f7726c61212a6172e25e4461d56245649e7396a830bee375e9bc539f806ca81e01822861589346" + } + }, + { + "type": "Regular", + "proTxHash": "944cef7c21c3d6da86e0b627cc1ec1574dd8344549533cb410171d1db2a3f01e", + "collateralHash": "e8788bc6e3c43838ce883c2cb58a9f5e9cf359c5bcbec402f6107c5e54589c5c", + "collateralIndex": 0, + "collateralAddress": "Xc5qUaC1wA7aYKGzG7Pc9iR2cKGx1ZC9aq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "173.249.60.11:9999", + "registeredHeight": 1876602, + "lastPaidHeight": 2126046, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2079278, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiHiTu1azAoQ8csfiViUCSo1NVQcfnVgVV", + "votingAddress": "Xyce6XT6uJwfz76Lhp2dZnuzAPtJbzMEPR", + "payoutAddress": "Xvc1qH3cEkmMLRrCBxGtwJzPMwN3q1MB9t", + "pubKeyOperator": "a3151f69900ab81b68b2ba5bfb9a015ca9d05b6aaac3688f9094bd954e6400078d6880c6c33cd5693f43931a13d861a7" + } + }, + { + "type": "Regular", + "proTxHash": "61f94298a0182da6925d05f79a36f159ba0367c829ef3bbc04bfe74609ab01bd", + "collateralHash": "afc876ab6349ed809e0b5437fd12b4f3b17772e0357a8947a702f4ad15adcc13", + "collateralIndex": 1, + "collateralAddress": "XezQx682cVtpFg5UWxu1ViTdL8HpN7qRcN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.53.131:9999", + "registeredHeight": 1876807, + "lastPaidHeight": 2128420, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsH2DmNKRcQa6J822MD1fyFYpeJQWskQ6R", + "votingAddress": "XyZg7LMSuvyhTLiQDyyKLvjbxy2XxnkZqW", + "payoutAddress": "Xdm14Mc9ti3qvSWQ1Fqg9F5NKSqBSjcX6S", + "pubKeyOperator": "989176d23a1f98a64ebd0c83af2925cb51fff599eb3e6f024f589fdea0c06d421a07bc00aeb28675f006f088584a4b3b" + } + }, + { + "type": "Regular", + "proTxHash": "ce7da0137c15015753ef5d03d9a5f7e21d69938ad57bc11c9912ee46034bed24", + "collateralHash": "c37fec2a69893b418c2ff1e19156a780483720889bf8b4d248351b9db413b7ec", + "collateralIndex": 0, + "collateralAddress": "XxCXJ8FGAJ8cJViBN1Y14AZkaMiY6FQ6wf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "5.189.145.80:9999", + "registeredHeight": 1877403, + "lastPaidHeight": 2126531, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120477, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd3qsnmms6B8AsDTYej34eHzCcvNHMJpRq", + "votingAddress": "XsXyD1bLDUcdJciwA6j8mZ1xJXEV7Xga6G", + "payoutAddress": "XcZbn51pMGrKXZUU8HUZQCYtfmh8EnB4Bd", + "pubKeyOperator": "85d18638f086b04567c4602464a842c55e69b9a60202b17af953fe6dd0b1a05eeac6159c7c5a3c56927794df7f828b26" + } + }, + { + "type": "Regular", + "proTxHash": "d20bfd90360cc88cdabedb639618a9ce1afe2573de6f70c6cfd41521dfd3bab7", + "collateralHash": "a13e4ac9feefa10fb94f1d9991486a72da2eae17981c7d706336916202e05dbb", + "collateralIndex": 0, + "collateralAddress": "XvxPEty7SMjWK1MsmUZjodQn6p4JBHGCes", + "operatorReward": 0, + "state": { + "version": 1, + "service": "173.212.220.183:9999", + "registeredHeight": 1877411, + "lastPaidHeight": 2127962, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115528, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xht9M3AZf2FvPTCtWWYZhVRBud8V4TYVc7", + "votingAddress": "Xx5WcTQCQAoNHBuDxvLPfWcGgov1vePkFC", + "payoutAddress": "Xoqcrj3nKYVH1Mo51xJt8axiTf8de5anNs", + "pubKeyOperator": "91f2b69f3ed0a25958a881e84cbbe853a290688a35adccc83fe28adda66b3ad2e0748e11c2f0080d03eb281b61bea6a0" + } + }, + { + "type": "Regular", + "proTxHash": "711249399cbc59b314d2e7dd6b79695072e24cbf64a9514cd70a9feeb5dfe33e", + "collateralHash": "6f2e5cc821bbdc5e017034bf11793b4f278c9b489989845aef270318b425ba86", + "collateralIndex": 1, + "collateralAddress": "XfLkaUTtraDc9b3rhzxNKrPNECSYPoW8mH", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.182.193:9999", + "registeredHeight": 1878007, + "lastPaidHeight": 2126355, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvS7Xv7uLTYZZfTeomSKGThGjkUHL28SE2", + "votingAddress": "XqFVpUiFR9TBBUzB1LpYfbT8FupmohTctc", + "payoutAddress": "XqA3GnVnJKgSGSnBdKaBknUSTtayYc48XE", + "pubKeyOperator": "8b1390117b844b5196e1bacdc5069af97e18eca541f77a1f137ddb14635bc51272f74b02eb6210b85920272985341df2" + } + }, + { + "type": "Regular", + "proTxHash": "8c7b345379f7e55055e42615ce629ea1742728370a33c5309b46a6cd5a54146e", + "collateralHash": "b121dbe4cc56cfa12be8e8d92dba231249dc0d8ace8b7cad90514218d651071f", + "collateralIndex": 1, + "collateralAddress": "Xtkf6q3owBxJVtzrA3bgq6uVLCAYSetk8u", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.26:9999", + "registeredHeight": 1878597, + "lastPaidHeight": 2128300, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976882, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfkyTdriUTx7HLkWFJhvQdUfCqqGoXxYKc", + "votingAddress": "XnKXUBa1TF3ifH8fJpg1danZ1r2c6NSD9i", + "payoutAddress": "XdZ5LEZ8HzZX3uESLha1k8p7jUWSTwXBRT", + "pubKeyOperator": "016d9c711b54229dd1ba7355949b7d75b632d51bec52d928fcdc8275413e53a53db621ce4b2c413777ac999db82c0956" + } + }, + { + "type": "Regular", + "proTxHash": "98795876db7c10c89035684ccd65a6ac799f67b8924b9a81d82ac2e4ab775f86", + "collateralHash": "7ee81ea426ef096bdab3f0bf2c530a6912af8d21c756e8cfcc294f526c32d427", + "collateralIndex": 1, + "collateralAddress": "XxES6BhBgPnpxpSDPLwqhbe6u2Qxq7ExcE", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.210:9999", + "registeredHeight": 1878601, + "lastPaidHeight": 2126835, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqNAYUCErKK1xooChEwb86wV5ndJdtpT23", + "votingAddress": "XgYWigHdEw2g7NvDYBQ4i6nr4Auve5ST5F", + "payoutAddress": "XdZ5LEZ8HzZX3uESLha1k8p7jUWSTwXBRT", + "pubKeyOperator": "0f8881581814ff94049e57bd98b7cbe7e7f20b6a1bae97986de008078d2e5de989c9f839a3ada0bc4021c3fe667f0a5a" + } + }, + { + "type": "Regular", + "proTxHash": "df051c484707768c862e636e3427d2570d3323cba9a2936bdbea3080c4c12723", + "collateralHash": "1447873080de275a01532590ba80949c04907daa7a79470a692e2ff92f5e83d5", + "collateralIndex": 0, + "collateralAddress": "XsacJKKJ67mRk5Dr8cW5nWuy5AXTa6KdbR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "78.46.247.100:9999", + "registeredHeight": 1878694, + "lastPaidHeight": 2126923, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjX88zy98HYkicrBx84knbysHNWCC7vt2R", + "votingAddress": "XvWSb6ZR2ihpadtJL3kSVj3ShQ8g7z6fus", + "payoutAddress": "Xm4KHJXesEYH6BDBXo7SF363aNjtPJLY3T", + "pubKeyOperator": "99b06b0a2799d221af91863a4573c0c66c423f876446248cb0ba269dc90b88f84af584cb8a258b67b149e23ad54e9124" + } + }, + { + "type": "Regular", + "proTxHash": "101e80ac8dea6954bdd974e0266d5d08b2013de81989e4ca22f76c619ecf2234", + "collateralHash": "0307faaf64c9433653cc2c4f1538757d59099c27d56f21c6ead87b6295082915", + "collateralIndex": 1, + "collateralAddress": "XiLE1pFa1kBLANBm1bLkoEdW6XTarxwob4", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.222.137.152:9999", + "registeredHeight": 1879323, + "lastPaidHeight": 2096997, + "consecutivePayments": 0, + "PoSePenalty": 3826, + "PoSeRevivedHeight": 2049583, + "PoSeBanHeight": 2098698, + "revocationReason": 0, + "ownerAddress": "XdzfxMrKcjTTCMNDLbUGFRUtQyJ779AMqj", + "votingAddress": "XyBYKkSyjg5ThAdrmQg2g6mS441zxitSyX", + "payoutAddress": "XiLE1pFa1kBLANBm1bLkoEdW6XTarxwob4", + "pubKeyOperator": "8e1911bb8238ef0c610710e10e8b9aa76782192fa31dde86e65ec19b345a71500a30f30d29ffc76269d44653971cce1e" + } + }, + { + "type": "Regular", + "proTxHash": "bdd7de4b9bcfa4b869e6efa69ca8bb310f7d74f7b481d2b444a70fcf2ddf7986", + "collateralHash": "c07cae893fbec5bcfabca7d4106f3f2d302114eef6e3465128be7766b1add6af", + "collateralIndex": 1, + "collateralAddress": "Xx5DgiTRd39Cu6sw2zPznZJB1i9Vd9yDmC", + "operatorReward": 0, + "state": { + "version": 1, + "service": "51.68.137.42:9999", + "registeredHeight": 1879348, + "lastPaidHeight": 2079962, + "consecutivePayments": 0, + "PoSePenalty": 3817, + "PoSeRevivedHeight": 2049583, + "PoSeBanHeight": 2081706, + "revocationReason": 0, + "ownerAddress": "Xgg42Qz4Abr4DMJbvWnfhUMAzPhfhCXf99", + "votingAddress": "Xm8KqEbAjnxE9qdNB4fnDQ9QH5e7fSr9vd", + "payoutAddress": "Xx5DgiTRd39Cu6sw2zPznZJB1i9Vd9yDmC", + "pubKeyOperator": "89f9f2dfee4702525ec5a8ae4647aea700018523f70d42467837b08077d46764fed42128eeb050600012da5e773f7be4" + } + }, + { + "type": "Regular", + "proTxHash": "6c78cebe7df613bb689136221ba12aeac116744b44fd2d199ab394261dcc217d", + "collateralHash": "5b18d455d12644262345236b54397be5ca9a638b258cc8f0308ccbbbcbb744b7", + "collateralIndex": 0, + "collateralAddress": "XkETY13LYwaUReL71GCpE43o8CMsy6e4RP", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.165.171.117:9999", + "registeredHeight": 1879571, + "lastPaidHeight": 2127013, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1949801, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnmiE3ivNZqNoKRRuirLeyJtuTGuYyoCwg", + "votingAddress": "XjD9F5nXw1d856k4JqhMmcM26TLG9F24Ui", + "payoutAddress": "XtJz7xWdnGdT1Vs7rUvRcjZPB1UzZBL9Wh", + "pubKeyOperator": "1246f3d669e8e003114e172d6ac0dcc2e35a59797834907ccdbdb0f76e01c06766cc756e7d0a39b15961df18add026d4" + } + }, + { + "type": "Regular", + "proTxHash": "160dd00ef2d9eb37af7082f4b3e59ed8978072b03f3d10f0dfa8936e11e6c38d", + "collateralHash": "843881d60bd8ac9dac5d0e9857ed84b37221c5726ecdc68c4fc892168f2c8329", + "collateralIndex": 1, + "collateralAddress": "XvCzdjTkQDsuT3Jj2qyBv3Ks6FNCupfPGq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.243.86:9999", + "registeredHeight": 1880210, + "lastPaidHeight": 2128041, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2081273, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgVtQXzTJuUtDsNJUiATs2rfw5TzJcNzBL", + "votingAddress": "Xy1Eqwhg5ny5bRWH9RncWV1inbL1QdHVGX", + "payoutAddress": "XjufMQf7f36mijMLoVN8sjkGznDiJiWFL3", + "pubKeyOperator": "99529e47078ac79e1e4f592a9af4a924bbfd6dae34f4b405571e03cdfdf83038d4562cc260aa994a0557af9057ff96c8" + } + }, + { + "type": "Regular", + "proTxHash": "29b6d6b512a159179e161a27a0ebdf4099b9ad2ba4c1b2537e33cd162af5e835", + "collateralHash": "2cdbedb1f473ef39fd6e73ea0e2c142a333afe31cb8a2e5508bff91fbdb80423", + "collateralIndex": 1, + "collateralAddress": "XfeqvgrntMV25Db3CGN1bhVtKDoLsngY65", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.217.61:9999", + "registeredHeight": 1880339, + "lastPaidHeight": 2127521, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2020201, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhNPEwcgqyDuABwFKUtMFAYB6knVKoUBu3", + "votingAddress": "XsmjEF2EhtiPCWZP69KyPnmTnWpW3Gq39R", + "payoutAddress": "XfeqvgrntMV25Db3CGN1bhVtKDoLsngY65", + "pubKeyOperator": "165e914de321ebce43e7c051484fa5f71ba15e83fc79b5e43b2aee353c0797a6df9522e81defe30f8a58c96f7505036b" + } + }, + { + "type": "Regular", + "proTxHash": "f38e17609c1f3df9bee914f7f775c45e86f17623b01596c082ad1eb43aa47ec3", + "collateralHash": "098e38b52f26ab6f47f807475815c21e8c1e401c6f1f65f9bed044343b80da87", + "collateralIndex": 6, + "collateralAddress": "XqVaPjFbmKb748wsHk89nhvHQDRGLc16Jt", + "operatorReward": 0, + "state": { + "version": 1, + "service": "84.9.50.17:9999", + "registeredHeight": 1880450, + "lastPaidHeight": 2127607, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2060698, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpTbg2vV62yjarNFMed4f2LNfhEEGENPxF", + "votingAddress": "Xidz7VQ1NvJX3hs11cAtuo2Sb2ENz5CFrQ", + "payoutAddress": "XqVaPjFbmKb748wsHk89nhvHQDRGLc16Jt", + "pubKeyOperator": "85029f83f0a139af9bf2503df3a24a7ea084e3042850a75945a8c8981366fbbe77fd51cca793ca51cb221677aec0a009" + } + }, + { + "type": "Regular", + "proTxHash": "941aaac75af7f3562862a961eddfa747c2e39459744cb2bcee1723454c49b8f9", + "collateralHash": "f5b51f100d221cc1c1619ee559864bedc78bf588149c0fb37994075a00e2671e", + "collateralIndex": 1, + "collateralAddress": "XbwcqUg8himds9yTTvtxm23BRWmBMwv3Kv", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.83.4:9999", + "registeredHeight": 1880537, + "lastPaidHeight": 2128866, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpTVhGUeuV71qpPHKTL9xsrVi6T6jXWM3E", + "votingAddress": "Xi94U8aThegDMWCyZ2HQGys9pBqkMg5Meb", + "payoutAddress": "XkNTprWe4sRZifr3MFY49SARqcDJ4j2dNp", + "pubKeyOperator": "0ff6cad0f0fdd54bedebc2e2b7139e5a736478867fdb5e1a56380c10f62f03a93658776ca62a3931e5edf004f9f6446b" + } + }, + { + "type": "Regular", + "proTxHash": "4240cfd375e322ba6fa22f2a7ec03f7ce90ae12cf00da38a5e8e185d4daa4f56", + "collateralHash": "b42447d9566b4e17648ad30de2c057026260e5e84c46dddf255f6d908472a0f8", + "collateralIndex": 0, + "collateralAddress": "Xgosi6k4Mtux9eCDmPG1mtuEqBG3gPV5bN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "192.248.179.220:9999", + "registeredHeight": 1881051, + "lastPaidHeight": 2126276, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2086329, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbvVP76xwGsSRaQc4FYBxjtke2VBhLi4rw", + "votingAddress": "Xw42SDswaSP2FgwXtHtU7xErjDYBgyxof1", + "payoutAddress": "XdvmxbqVeshf8tYSvCivdKNcuzhecsutqE", + "pubKeyOperator": "9104badd41bc76d36b719f4cdc47529e5fdbcd041f78390677d978cd1fe40b4bd763d7fbdf51a3ec9a35f9bd45c4682d" + } + }, + { + "type": "Regular", + "proTxHash": "c1d8124606ba752d78731dc950f20db6fe96d1e511d462ffa51fd540bc729f42", + "collateralHash": "27b73d685fdc760537ab4beaa8c1d0b9eb62cf1bde871cfade590ed3907b1551", + "collateralIndex": 0, + "collateralAddress": "XkfQxHZxPt9hXdENHwJGp9Ek4djJQZEPG8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.180.136:9999", + "registeredHeight": 1881555, + "lastPaidHeight": 2126431, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnJ9RrgotFbowmLjanj8AEyQdYJsBpjeJ7", + "votingAddress": "XidpaUfPt7F1nNpH1LD8Wh4z2e43kULkJF", + "payoutAddress": "Xsg5md5HfzKaJpWC6kmoWtocMZ7bPKz9LR", + "pubKeyOperator": "855c5dd5e0c34310147017aac3f217b05c4f7c5baae6c20f2962d526278f587cf9dcaee729b80a42c8a323fa2d54b983" + } + }, + { + "type": "Regular", + "proTxHash": "5ba85ecf09bdd9c8028a08d49312232a8a6554b08d8f6f5a0c8ff479695c4203", + "collateralHash": "9a86ee585632671a73f9eaaa338e11df0440cf010bc4e73b9b9a3ac8598e75f2", + "collateralIndex": 1, + "collateralAddress": "XfLcYyp6bTKwg6PSVZNwZiTLJdMUEPUMpK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.240.114:9999", + "registeredHeight": 1881776, + "lastPaidHeight": 2128416, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010891, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqrEqgidpba9M53yPiMgyAgJJ2ahFdWMro", + "votingAddress": "Xbrehe1YH5RXQSUntwTNiUfVHPoHcKJ4KT", + "payoutAddress": "XnfMa4SoLRqesGqRczFJLczzwuyWPcNKEG", + "pubKeyOperator": "8419b6bd508a383f10624d2227eb9c7517952bcbc4d52cae768766dd6fe0a8036facda48e899c4d08cf472136ccd652b" + } + }, + { + "type": "Regular", + "proTxHash": "3f02bc39838df0568de3c2645362062f88b69f52f4f5ad984c87108a0d216346", + "collateralHash": "1e52a290a826c66046e66ac8e480230d114ae9574777d3620996ee89b6a682f9", + "collateralIndex": 1, + "collateralAddress": "XfL3MgUFf2pH9xrJyT6PzJSnc3Ld5Qssbm", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.132:9999", + "registeredHeight": 1881927, + "lastPaidHeight": 2128404, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1883543, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsWw6QMKsc9HjVvdVfaxJ3gDASs6cCD9M1", + "votingAddress": "Xj1QxNxJdpcpB56iHGcbPSj8xGZUAmPig2", + "payoutAddress": "XsguouUKkdTMgAzioN7qudq8PaTHP54j9L", + "pubKeyOperator": "953b682bb62ea409d431d68a82530f5cf1c02e616044137d39cfbc21cf357e43077ccc431c89de19b7a3b280a2653c74" + } + }, + { + "type": "Regular", + "proTxHash": "54019f39ca8c364bf6c10d593360c28be1f6c83a9f596ed9c75b11a9f459f199", + "collateralHash": "af6f2c956452ebfb4a56a0d85e774023a3450577444b7691245dc4fb03197b83", + "collateralIndex": 0, + "collateralAddress": "XkFJgVUVLWcBLPZVaPJQdSqSY3dYDvag5s", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.251.223:9999", + "registeredHeight": 1882023, + "lastPaidHeight": 2126808, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtBKXybNeUpMUwahmDrNsUiYwEqWcnxdQ7", + "votingAddress": "XrWEuwiescYYRNyHR6n8WmLk8u89suUQou", + "payoutAddress": "XpdeDmK6cLqZtFFxNAK7E4QHiJ38uPjjQt", + "pubKeyOperator": "83e807a23c667797a5e6ee500dc7f38734b4b5c128c400c2649a36ae2c414a38b2882f71d230ce1a31bbfdaa2dd8a8fe" + } + }, + { + "type": "Regular", + "proTxHash": "d1aacb9efce3717e72f452a36ed6dc31a8e03c143fb811060d1329faa016f7f2", + "collateralHash": "9ca012daf8236175b3cdc5226f124c29df9b3495fc0365c61c071ed183384ed4", + "collateralIndex": 0, + "collateralAddress": "XkWYZZz7WDhBCmXNLiBpR7mtzLWJ9H95oN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.162.110:9999", + "registeredHeight": 1882026, + "lastPaidHeight": 2126817, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuT8fZYecwHHDkkauu5JyY6i46EpFsQajy", + "votingAddress": "XkQtHpPGgY14sZ1EDPGV3qHG4eL1sEfUBz", + "payoutAddress": "XgaB3z14pN7rq3LTmuwvbmcV35bftbX5Ca", + "pubKeyOperator": "0d661ee8fabb6f12b1e694a8d8972cf1b89d33b86ceadf482048d2b996d349838033b3706fad6cc1540fc725dc59a3bf" + } + }, + { + "type": "Regular", + "proTxHash": "080768ef7f9025cd14370f106df0686d0d0009c30b3905743fc11751acf66af0", + "collateralHash": "88cab7c93e59edcd4da60cd071036397ca26b884df6f7574f04cee2dae2eb7ac", + "collateralIndex": 0, + "collateralAddress": "XgxaDeazw8RkLRXGhsUTm7t8neip5ty6UT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.126.43:9999", + "registeredHeight": 1882632, + "lastPaidHeight": 2127442, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwbNrEYEpLhXjL56Ca6KyErLe6aZX5TDJG", + "votingAddress": "XtsfLe1qhQ3hLpawBjFxTtb9S7iP8EALk5", + "payoutAddress": "XgE1DXaqZho7bgNYqMbRmxfug6Eh75Egpn", + "pubKeyOperator": "9538251642d5ef04af30a51447f6658d868c2d37ea93100342bbd2c1f5c13edd24230b70d3d0ff00f2a59ccd2e5e6252" + } + }, + { + "type": "Regular", + "proTxHash": "e8ad81ef097c83cad432a22b1723580594968eeea18fd046898ede24c2fa5892", + "collateralHash": "506e6f6ca04b9c168644ca2d0245d9c7f8b097abd21a09adfd96b4cb890c41b8", + "collateralIndex": 1, + "collateralAddress": "XqZf34ZRMQV1pr2J1PLQT5S4BhUXMzWF3o", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.184.66:9999", + "registeredHeight": 1882632, + "lastPaidHeight": 2127441, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrZDH2rkPgv6JsTCXg1aXBaCdyFafjG9bs", + "votingAddress": "XpJLZ3aS9mNo1wyASnAcecXd1CgpseCMsu", + "payoutAddress": "XgE1DXaqZho7bgNYqMbRmxfug6Eh75Egpn", + "pubKeyOperator": "8b5c51e1868c29aeacd58e4d2045c30926c0efc5bb3630b926132cfb5b81ad5aeac99f29503562a6921e17a0641ddcf2" + } + }, + { + "type": "Regular", + "proTxHash": "55a5256f96d512bfd6a9ca7eda15d48924b4d7981022e37acbf0fd3e61112e6a", + "collateralHash": "df7a1d738f0d3dedd0db7d7d1ba4eca4c8e018cfc9b9a3c4945e9f656b3b9868", + "collateralIndex": 1, + "collateralAddress": "XmE4F69mZckP5GkqrrAeZeGiuozTMs76U1", + "operatorReward": 0, + "state": { + "version": 1, + "service": "135.181.52.156:9999", + "registeredHeight": 1882971, + "lastPaidHeight": 2127848, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgiWhs5BuDJYXVsuh25TPiy33QveBa7Ek1", + "votingAddress": "XewGz7kigoUpm4yEPde7r6jv5jdMmvHXB4", + "payoutAddress": "XgE1DXaqZho7bgNYqMbRmxfug6Eh75Egpn", + "pubKeyOperator": "80e54f456200507f91eb769bd6fe4d44d45c2c02a484b1ec7719f3b35670df0e4e044ed1ff8ffef9381ef8ec9bda048c" + } + }, + { + "type": "Regular", + "proTxHash": "040d36784771c05aaa6306ccfdc19e92d6ae3640a443c0e8ffe60f8c8e99bae3", + "collateralHash": "3ef8451f95b8f9aa1f6274e00bc68368c745821f753dd735c66d75f8e6f024ed", + "collateralIndex": 1, + "collateralAddress": "XvZgi1z93RG5W2QzKuJYeQAJthNEHxH59h", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.56.109.36:9999", + "registeredHeight": 1884021, + "lastPaidHeight": 2097000, + "consecutivePayments": 0, + "PoSePenalty": 3826, + "PoSeRevivedHeight": 2049583, + "PoSeBanHeight": 2098986, + "revocationReason": 0, + "ownerAddress": "Xq5zb4Am1hsjwgkkV5fER7v4VJasLxkJv4", + "votingAddress": "XcBRRxe5pwHVf1s8LDxgGG2rJpKDDCS6sk", + "payoutAddress": "XvZgi1z93RG5W2QzKuJYeQAJthNEHxH59h", + "pubKeyOperator": "95956820fb8e6ef882c21592cb6995be510a34de726a991f11670be997420302dae84af69e878bee0f40c60596135f40" + } + }, + { + "type": "Regular", + "proTxHash": "74fcea82a8f3a1a34f81d07492e4857d8d82c8eaf0cc41d86659bf0a299f8b88", + "collateralHash": "2d89a90120b9d1303e35e2955a87b5282ee0562dc5d2ba0c1ee3c1a38e70ae32", + "collateralIndex": 1, + "collateralAddress": "Xn4gZgjGCM8EfjM65Zusv9fyfYZixVLJvZ", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.142.212.144:9999", + "registeredHeight": 1885925, + "lastPaidHeight": 2127650, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxabbxZpvd2rMc6RunCchjtLxjVAH5GdoE", + "votingAddress": "XwFjgPSVoCCdrFctGfgDxRovAtV8z52Xwd", + "payoutAddress": "Xn4gZgjGCM8EfjM65Zusv9fyfYZixVLJvZ", + "pubKeyOperator": "93b95a1a6ad8aaaeba9aa8ea3a3e8f0448f271228ea931184480e21e74fd30bc23fb24c87ab35629509a5af7b625e5e9" + } + }, + { + "type": "Regular", + "proTxHash": "4b77e5deb602f51d76b4ddac346022a46604a5b496534d389b79e3cc5403d95d", + "collateralHash": "08287853add0a45120fa72085f76fbe36610fcfcb5e9ca55066ad0b1b23e5bee", + "collateralIndex": 1, + "collateralAddress": "XuWzWZPhjs5E9H4zS8iEWu5RK7xizSJXtR", + "operatorReward": 0, + "state": { + "version": 1, + "service": "3.99.171.245:9999", + "registeredHeight": 1886057, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4397, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1886730, + "revocationReason": 0, + "ownerAddress": "XhD9Efm3hLuutAMSS3D6PqHBLoTASUz7Co", + "votingAddress": "XerYjAiA1JN9hpqT8zWxjqxiXG4mFvH1Pn", + "payoutAddress": "XuWzWZPhjs5E9H4zS8iEWu5RK7xizSJXtR", + "pubKeyOperator": "82494d37c8582886a2a11292e0b8356705f96b9ef8cd12f3de766fa91384ccb4a469cb3ed079de3285762b55d5a28bb5" + } + }, + { + "type": "Regular", + "proTxHash": "77015d77377536300a022da207a4b068bd351e511ddccab20835220d0f5d17d4", + "collateralHash": "6d130587820538d30c1e292fffc8de415979251714a207a0da2e0258cafa96ae", + "collateralIndex": 0, + "collateralAddress": "XmXRiRvYHiF16NW36pDKY7pN5Wd4EY2zrK", + "operatorReward": 0, + "state": { + "version": 1, + "service": "141.164.46.215:9999", + "registeredHeight": 1886328, + "lastPaidHeight": 2128447, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119180, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XubHEtPEeBSgMKYWqiX1KhGr2GJKKRFjuP", + "votingAddress": "XoMcH9BYqVAqipPWdKGgxmMp2F29pYaN2d", + "payoutAddress": "Xbtm1kHqvgvYgxNEMcNjCPQvzsUxLWHm6x", + "pubKeyOperator": "18618a892f23ce2bb9a3f4b13eb15e5474a3926d7e0cba18ee511a0719da0ebd30fdc7452961cf3929a870fec672fc48" + } + }, + { + "type": "Regular", + "proTxHash": "6eab52a79affc0ee0ae2de8dc9d0d86d6ebbf30dde53f66a30904f2db5926762", + "collateralHash": "16771c2e44a72e440359a318d7b0a884fa446c6bebf52da7d29c4aa02511d49c", + "collateralIndex": 1, + "collateralAddress": "XwdxZfZf8eFv4VPG1YvARRbFpWEjT716ZS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "167.172.70.3:9999", + "registeredHeight": 1886604, + "lastPaidHeight": 2127930, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcZcck15G3yZnLwH1AYdUZw3fJDK8rVpXe", + "votingAddress": "XoVMN3tgo7jbVcMmqdaSTtbzFsEScRCHfq", + "payoutAddress": "XfWHvQWYFdtdJrmB17SHRQUt5Kqjdey4kx", + "pubKeyOperator": "980ad49a7ada5693aa6ae1e67ece0b57b29308dcaf43ad1801456bbc1a2da920a38ac0b23b60b897d0b1a024849075f8" + } + }, + { + "type": "Regular", + "proTxHash": "1d9442dc0a7d1ddc9e21c66ab25f6609bf435bc7e8ac84f41000e82cefc40bce", + "collateralHash": "258073cc48815174d13de89578797d7b99e30a619ffac9ba17c83b875b5fcc08", + "collateralIndex": 1, + "collateralAddress": "XeWD7wkHn2WEB829mtoLdfPFkW9TwJ8XEb", + "operatorReward": 0, + "state": { + "version": 1, + "service": "149.56.111.89:9999", + "registeredHeight": 1886932, + "lastPaidHeight": 2096999, + "consecutivePayments": 0, + "PoSePenalty": 3823, + "PoSeRevivedHeight": 2049583, + "PoSeBanHeight": 2098390, + "revocationReason": 0, + "ownerAddress": "XonhjE9kFFFwsNJrxXSCJnSMTYHPGZQDhs", + "votingAddress": "XxFdb5vxuJyB88JtZSbXQKab87RYz7hKnr", + "payoutAddress": "XeWD7wkHn2WEB829mtoLdfPFkW9TwJ8XEb", + "pubKeyOperator": "0e307dc311808cd7010df00de106b566209f937e3fa95b47a87cd7174a53f581539f8fe8371c99973b5267d9a9eef827" + } + }, + { + "type": "Regular", + "proTxHash": "b484b1c512124b1a38e35fe2a28b0dfa7031ad8e56fbba46c3282009d2e21f10", + "collateralHash": "874b778d4ea49a8bd9f5ce0363e03146203fa71bf3fe54c82efcf515406cdec9", + "collateralIndex": 1, + "collateralAddress": "XdH7MdZEdbFS9a8XfzafWn6pfoVkjgrYs7", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.179.213.67:9999", + "registeredHeight": 1886968, + "lastPaidHeight": 2125761, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2045245, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv99ybjAGZUbTkQ14iyjLZfjA7VhHACMVd", + "votingAddress": "XppPDJRcHfd7Pf9XxfJuKHckEoJUF3U55m", + "payoutAddress": "XdH7MdZEdbFS9a8XfzafWn6pfoVkjgrYs7", + "pubKeyOperator": "92ac6a46cffa0a2e14b8c05b3c0b7f1d2ef86ceac330aae9d2e24e8d9c224d301a6b0669dedfc67dd82f4d0c9b22fb9e" + } + }, + { + "type": "Regular", + "proTxHash": "89c22358f68e42fb8bc7f56cb8dd842b0921bb5b392a9d5698983bdca8644f1e", + "collateralHash": "53ca403100fb35eaa0ca26d785c08a1c122d5dbfd30be1d6b9fb636926cf6681", + "collateralIndex": 1, + "collateralAddress": "XmFhuq59bzhyWpK8FUZB2G7enckGXaCLkq", + "operatorReward": 0, + "state": { + "version": 1, + "service": "144.202.120.171:9999", + "registeredHeight": 1887252, + "lastPaidHeight": 2128526, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbLCbSog8okKZBbrDJefSmH7oVSEjYuTc3", + "votingAddress": "XipGkBN2jE4hziRrgpjMEXDRLZ4YLSikVo", + "payoutAddress": "XwWYdemBBXxXGCq6c2SAXi1Q65ocGiALZy", + "pubKeyOperator": "9921fac5d7ce43af610416e41a2fede183981e4990226855a9e9b1662e8ac00af8eec84b4ba1da6213ddcc70d48147a8" + } + }, + { + "type": "Regular", + "proTxHash": "83c629853f94c2e1c00221d88fde9f53dc86aefd9264cebc89e5062ccc5c3859", + "collateralHash": "62ccd943df2b7b59f06a020ddc8d1eb31767fb575b58d025610cf5211ffb0956", + "collateralIndex": 1, + "collateralAddress": "XejDGw8k26DbFUZgGRndsLbkHdZTK8LRtL", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.21.246:9999", + "registeredHeight": 1888080, + "lastPaidHeight": 2126159, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp8mVLYwVdmWHAZy3UVbyuh4Crod6uV7op", + "votingAddress": "XtxGKi4VTUs6vBhMyRUgW1XzDbzhr1eNBt", + "payoutAddress": "XmYxZsWN7Ps56VqsNkBLtBfvkNUPdfFm31", + "pubKeyOperator": "868ea7100d68899422738e5d7466792e8c176d8148f92053710cb52da4130db48cc23665f482dc9d2ab00aa63822575a" + } + }, + { + "type": "Regular", + "proTxHash": "bce2680a80746b7df509a720b64dbd4f6ac8ca0da53b340a3c7b953622f975cb", + "collateralHash": "14642695c488155bd0a2d3c40aa44c5260881661a4658b95a7e167465aba196e", + "collateralIndex": 1, + "collateralAddress": "XyZir4duGe3B46uaVFsQtsjzBrnetG4V2r", + "operatorReward": 0, + "state": { + "version": 1, + "service": "136.243.29.197:9999", + "registeredHeight": 1888429, + "lastPaidHeight": 2126362, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xenyo7qEd1Nk2BjSvKMFKZCKp4gK7eWqoJ", + "votingAddress": "XbCTpuBvRSpjsC9c1ba6s4iYLBAcLSMM4q", + "payoutAddress": "XyqrGzyoXztC5Z5FPoHaJYA4aYscq4JnGP", + "pubKeyOperator": "04796bd9e8cd143773bcf0dc201b1f540da3de69491014a901d3d2a1aa37d1b871030930cfb21d79c7a4b53022b6d960" + } + }, + { + "type": "Regular", + "proTxHash": "ac51259af5d8fcd5cb6bf46068fdbe127e1894d3d8d23407fad9191fea3c52af", + "collateralHash": "b429b57ffd01010765f621d925ac99d6b1ca8a9cda350fcf2c5ce5ece77e8488", + "collateralIndex": 1, + "collateralAddress": "Xiisbhx9Edhxumw2hhgo5tNrwQi7TALMur", + "operatorReward": 0, + "state": { + "version": 1, + "service": "23.88.22.67:9999", + "registeredHeight": 1888878, + "lastPaidHeight": 2126696, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt76GCPLyEGSyVkzzD4MP68sXzVgkiXnV3", + "votingAddress": "XkEoM3D9dtcfdCDWbd4xQKw27K3GXCe4CZ", + "payoutAddress": "Xiisbhx9Edhxumw2hhgo5tNrwQi7TALMur", + "pubKeyOperator": "08e9f771d5cfebcb32b2a2bb7704f91830f029ae4a0646c340c7fb884f62935f914934de456bb52a1a72ebcd304941e1" + } + }, + { + "type": "Regular", + "proTxHash": "043433308206c30216640ad5493e93fa92b33e9c8eb005456618352ce3bfe559", + "collateralHash": "edccab3ef51819cc5304a971848270be9328008ae744c4d1617b4ae0c830a51f", + "collateralIndex": 0, + "collateralAddress": "XofX3g3LJEERpBYn8qUebP6EhPm6GG9fhD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "142.93.38.4:9999", + "registeredHeight": 1889116, + "lastPaidHeight": 2127525, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124357, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcQszyB41w31SffMUkKL41NMDnMAKmqaJa", + "votingAddress": "XcQszyB41w31SffMUkKL41NMDnMAKmqaJa", + "payoutAddress": "XfUXdmrY87e728By3AqnQN7ysK3tkHRJoH", + "pubKeyOperator": "9083cca0cb273cc63527650e0608217ba2b5a52357051b27bf3907463765c42de5ec82b3d56e36a2f4b26d4c9b89e58e" + } + }, + { + "type": "Regular", + "proTxHash": "bebc1c815312527656cde25b6d919faae73fec45425c72a2637e3a3d095a17d0", + "collateralHash": "e82d1af4df673627d597086139dbe7815a4e17ea3812c5a71157e94ee1cb9c57", + "collateralIndex": 1, + "collateralAddress": "XrT2L6ibQbbPdLmyK9MjMs21Mae9eiKvso", + "operatorReward": 0, + "state": { + "version": 1, + "service": "46.4.217.234:9999", + "registeredHeight": 1889650, + "lastPaidHeight": 2127464, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwMm8jAUco3DsaAwQTb7MyEbJwcZCSgtND", + "votingAddress": "XbTW3B433YyXoBuTXz5dea4NQLhprFsPb9", + "payoutAddress": "XsEwzTQtZ6uvFW7MhfHiNB7NGG78ucUxCR", + "pubKeyOperator": "85416630bdd2841024be8794c5b2f07062d7c64a42439b5e72106ea1c44dc369397ec1858b836d05bfdb0703e211491a" + } + }, + { + "type": "Regular", + "proTxHash": "d3b356cf825601b9be5f004914e8b06c321e9dcff1194c6b0b4230e19ab4ccfc", + "collateralHash": "e4e2fe5dc3c54c34645fe31a581416a5da11e14c76995be9e0b1ef0f1ed2093a", + "collateralIndex": 0, + "collateralAddress": "Xmqx3Bp7qt86BXs8VCKqmoQijWnyzs5Lwe", + "operatorReward": 0, + "state": { + "version": 1, + "service": "35.174.217.98:9999", + "registeredHeight": 1890398, + "lastPaidHeight": 2128138, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124956, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjzTbkXZLzhbhRvF2UMPw5nKdhasxMnYJG", + "votingAddress": "XgrVSjTM1NaLEEKmJewsdE4naQEBAbjNCd", + "payoutAddress": "XnG7aUUun322qhpjCHs5W3GtkQfqruCEL1", + "pubKeyOperator": "19d9055944f06f6e3c12c9a7833bc2b22d6bdfb153f11c0554ec82e1c35cd1b5045d05b5819062e871d863038b502bfc" + } + }, + { + "type": "Regular", + "proTxHash": "9aa6c92a400314a33d26da3945ed54bf5ca4a7527c1eb79ed65a23fa3432632d", + "collateralHash": "b3b4905a4152946dea47325a01a259e5f321ca7ebf7e21a9862574d5d73d9f01", + "collateralIndex": 1, + "collateralAddress": "Xe8gvQHzw1EY62h3dpbrHb32FvprzmzABy", + "operatorReward": 0, + "state": { + "version": 1, + "service": "209.38.217.234:9999", + "registeredHeight": 1890518, + "lastPaidHeight": 2128343, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkQYLS6fomivgxEGbVj9S6jDKpjXiex7Kg", + "votingAddress": "XpKHafrFiWAqSChf5u3RN7myRfvqxgyF37", + "payoutAddress": "XxMzqkgWqCxMfsVU9gKwaCpXgRAstSStW2", + "pubKeyOperator": "8693fce2cceeb4c3e7e9c5c6e390d6dad63f4a644b5be522423dc5d800a9b1e75d84eae2f0a6e2899f82cc36d8be2e70" + } + }, + { + "type": "Regular", + "proTxHash": "a3328a794a062715547247f46b1a039251d5b13d0bece30cb04c99f2c9153a1b", + "collateralHash": "705651311ad5f9c7c1abcf8b23232adf621e1865d2592923d5f44675c8ef3255", + "collateralIndex": 1, + "collateralAddress": "XczswZV32kZGLufpnaf2eHnV44FL8RTFU8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "185.92.221.216:9999", + "registeredHeight": 1893541, + "lastPaidHeight": 1983593, + "consecutivePayments": 0, + "PoSePenalty": 3992, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1986090, + "revocationReason": 0, + "ownerAddress": "Xz1anqLC7jzpETzD3dL35hPfcxLub3tBYJ", + "votingAddress": "XjYswPWwyvbcwXDYw2LEnFor53UsTAMwsc", + "payoutAddress": "XasbmRGPT8jaXnxc98hh4geQiPGyXa9sWB", + "pubKeyOperator": "860a7040ea9119e45bc2d9072c47085d39d2fa406044de528ecc21704a4be6b9b4550317bb16617705749efa1922d836" + } + }, + { + "type": "Regular", + "proTxHash": "588ce8c03270caf7a7088bc95a191b3be39e0bd7af547ba1346c5b48557673dc", + "collateralHash": "757e0ce02f20aafb4a6a802e90b4dd2388e1fdb86bb2e386be99223714e2ce2c", + "collateralIndex": 1, + "collateralAddress": "Xks26gTX8YQ7vbgrYiujnUyRRvwjKwLQJp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "168.119.87.206:9999", + "registeredHeight": 1893695, + "lastPaidHeight": 2127960, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjx8BERcqL42yUAvQBuJWf2PAyRLAZW94Y", + "votingAddress": "Xmfj8F3WtMPecnBSjuZAiVYBvqKyRj7SBT", + "payoutAddress": "XdnmwQ4fUc8aaahNhe243DaconJUnacA6R", + "pubKeyOperator": "15d7b32643608e7457dcfd2274371b50b0b9cb57b75af3927916cc4c2d782db4de806bbceaaf7718ac22bb849a282c2e" + } + }, + { + "type": "Regular", + "proTxHash": "e4de55cb1b508f43c008fa7adfffcebc5aad277acd9e27d57e2cb989f9239f0d", + "collateralHash": "dec876ade0f71832db9d46f2906748366452f72040ba3a12d9826be62d8bba6d", + "collateralIndex": 2, + "collateralAddress": "XmATngLcyjPiZ1NjWf3aFMnAXTbcv47LtY", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.63.84.229:9999", + "registeredHeight": 1893939, + "lastPaidHeight": 2128172, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv77mQxpTyMVkFrbVK4WAqBxagAiBL3tvM", + "votingAddress": "XmXmQiQQPc9FFRNSWDE1W1Zp8ZfZzSxwoj", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "0462649f5166bf068582636f78eb922aa9397f0017b3325ae82383c843442cc5c16255c3b8f78dc4637d5ff37f6f92d9" + } + }, + { + "type": "Regular", + "proTxHash": "9cca656eeaf9e858333c6648f55fa3f70447c73a4c928f350f6e0a6dcdb4bfbb", + "collateralHash": "ca2cac19588df3eb92e9f30feaa8c3434354056f36f77ec2a5b19b0a4c7a7457", + "collateralIndex": 1, + "collateralAddress": "XdBfEEKfEaQmTJFJPYzxXcgBf7NewCpfTf", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.216.109.133:9999", + "registeredHeight": 1894380, + "lastPaidHeight": 2128590, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhDKhBoSzQjNHMMUgbXUVpP5dxTy6tKWbz", + "votingAddress": "XdL4a6uFUW6kre91EF8hXHq6CS3BVAuk3L", + "payoutAddress": "XrPs8o7i8rGaTnxh9Mr3EGwasUToFYCkjw", + "pubKeyOperator": "8811b735472d53bc54024c7d7e219375229d52eeac6868edcbaba7a2c885fee5eab0df75d45cac6543b491d47ae5a9ad" + } + }, + { + "type": "Regular", + "proTxHash": "87e886c82eef44464e60683bb1b611cb2952fb190988c942b41bf38b3e282edf", + "collateralHash": "d66a5ede8bfe65ce79720c3283fc1e9e8792895dbf8bc4495528bc447d513432", + "collateralIndex": 0, + "collateralAddress": "Xo7xA48LBDEGQf16zuS3CXD8QdL1Ye4Te8", + "operatorReward": 0, + "state": { + "version": 1, + "service": "188.40.178.71:9999", + "registeredHeight": 1895510, + "lastPaidHeight": 2126360, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnjVyGZQV8nGEF7hvDWUQ3BQwcPipEnnq5", + "votingAddress": "XpFyPViuDMkCQsBc4KVUGSdsN13W8pkKpU", + "payoutAddress": "Xo7xA48LBDEGQf16zuS3CXD8QdL1Ye4Te8", + "pubKeyOperator": "8619806d46b38e987c3604602d1058916c61b0feff3a79bf49e6f7887a910a6737f36dbaf479c8a3868d3f1dec1818de" + } + }, + { + "type": "Regular", + "proTxHash": "546c1c4eecef7321bfa0d52f583c682084e68274104827c5cc44a9635f40afd7", + "collateralHash": "c73fc6a2fae3e8efc0a22b995f055aa7412134928f22549c414c26fa0a1e8ce5", + "collateralIndex": 0, + "collateralAddress": "XerVrW7BNA4C7mYfk9eytiRfNVnFXKZziS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "95.217.71.199:9999", + "registeredHeight": 1895511, + "lastPaidHeight": 2126361, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyiDiDGbSGxUt5mBbpmbpLecTH5AuPg88s", + "votingAddress": "Xs5AqVnL4yTS6mnvSnZhgHL2iZnydj6ECE", + "payoutAddress": "XerVrW7BNA4C7mYfk9eytiRfNVnFXKZziS", + "pubKeyOperator": "8ea1e67a543d70938e6c439b8926ae3af4e53e30b09cfe7a044289a8ae070b3ff509fd2b7a72a714e4c8fbfb57492162" + } + }, + { + "type": "Regular", + "proTxHash": "f0104c2b12a959cefe467d9c86c0b46ab066ff8c95e3491b4e25a6c8e81d345a", + "collateralHash": "0a680ef2a5ace9d89b83cda9db6f2cb2c4e8e21d2ce682c55ef375906be41e9c", + "collateralIndex": 1, + "collateralAddress": "XwWNHP6fyUHDerMC6FEiwe4mtuAbMSYXz3", + "operatorReward": 0, + "state": { + "version": 1, + "service": "159.65.132.203:9999", + "registeredHeight": 1897848, + "lastPaidHeight": 2127752, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976302, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvQ2cqHmnxHPvUuGcRjtcoQCN9g1M4mYKf", + "votingAddress": "Xq5BaupiQzVAHHRoHjDNJHGJ8esc5jvVuZ", + "payoutAddress": "Xo3TPyrnMWMQYtrT3rv8ivrJU8oSyjnvib", + "pubKeyOperator": "8b192fdfd5ad09c01e98dae6e85cb4aa562765c0b30e058a140513c3a0e3ae34604c56fc3e27593f64b8a7cedc5cb1f8" + } + }, + { + "type": "Regular", + "proTxHash": "a13179cf741a1b08a5b154f1da09cba62b5d7c658f7de49f448492f000a9c941", + "collateralHash": "ec4324792777744b73e3b7e831b57e0714e22cb298d1e3739aa7b359a7e66381", + "collateralIndex": 1, + "collateralAddress": "XyxmbJaF3Qt3jqKYdU82JXokk72uXpMTGU", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.93:9999", + "registeredHeight": 1898288, + "lastPaidHeight": 2128799, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031600, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkcggK3vyMibuSeHQF56BwLziS8Fu3ytzh", + "votingAddress": "Xce7rgNGehc4knpgoDRumWBCUVWmgJcuQm", + "payoutAddress": "XguyGgVEBBvWeVRuWvuxqH7BypQ8ibrV3P", + "pubKeyOperator": "8271aeb8e231356fab3315fd7c8b56ae9e648d34c07658999f2b0f4d30c2c56e59fcb1a609ebb97b7a876d60debc4d0e" + } + }, + { + "type": "Regular", + "proTxHash": "2c251d609e2b32a23720d18527b351fe2d72c716a97d2934aac142a618f3dc30", + "collateralHash": "afc20c103b40620eb342251c93acdb6d0e0ea0d3828f8a309275da5e6f8dd5d5", + "collateralIndex": 1, + "collateralAddress": "XntXNQEsWAvzDYcevvre2suHqZGQXo7xjo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "85.209.241.230:9999", + "registeredHeight": 1898290, + "lastPaidHeight": 2125747, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpSmdvA1NQM5otdP4PbtiB2jS1eHs5Jw3Y", + "votingAddress": "XkQndjHGPmSBkkEkgd8auWQRbBGMzydWrJ", + "payoutAddress": "XbAkV47rPcMNm6kehWmTWUHwFK3ZqmJ6XH", + "pubKeyOperator": "0bf4e0f7bd77af2fa2e6d655e84726cf85169e21d67ca3292a8b8acb4654027e2ff4fe9fb34565b6b19f2c05d32336f7" + } + }, + { + "type": "Regular", + "proTxHash": "5e9d21e02262ed19c397937993c204a5af1bd705b0f4a1eca7a2828e89170b3e", + "collateralHash": "03481dd7554bd24f5035d63ebe1b3189e4010e3ceefe963387f73d0a884111e3", + "collateralIndex": 1, + "collateralAddress": "XiJzrXJabo3fxS54rsdacQMKAEGmwn7v16", + "operatorReward": 0, + "state": { + "version": 1, + "service": "128.199.42.44:9999", + "registeredHeight": 1898911, + "lastPaidHeight": 2126450, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1934398, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XucqD23Ju6Qug4b41S2PZps8rtvjJNh5J8", + "votingAddress": "XstyEadyiDRiwZSBj1HWDnvLaGv8zdwsmh", + "payoutAddress": "XxGWRYLhPHZLDFfNBw4HFo13QXSFdcoopq", + "pubKeyOperator": "88b2dde809267956d187237a5e41794918fdadf03f1f9b50184c1d1cc771404564dbdbbaef7573ea5559657fb769b1b2" + } + }, + { + "type": "Evo", + "proTxHash": "d353cdcae53071401345c38ab482935cb62442be2174a1d3210ca356c9017eff", + "collateralHash": "1bef898f3ca65a9dba18282b3efa8e0e6d8592a35a5ce1fb03f70c94de76ab08", + "collateralIndex": 1, + "collateralAddress": "XdywcjayNwJJY1koYWoqSqxqdpV9kT28rz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "114.132.172.215:9999", + "registeredHeight": 1899867, + "lastPaidHeight": 2127009, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtXnZFVYz7naGT1cdekwEQUjPAs81UmDRH", + "votingAddress": "XkaqdSmFeCySpQZd5B7HAoyVPSy9kF4pED", + "platformNodeID": "bb0f7022648eaaad15650a0c1a0114125b1b5b28", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xr4vJHK2rz6CAuTimve8UW6XGfPuFVmPcn", + "pubKeyOperator": "87ea31e0e46c5c74d3978bd4243229b9d003f56294459115e2abc01da6da1072459ce6ffba23d5d79f1852472dcb505b" + } + }, + { + "type": "Evo", + "proTxHash": "feeeba72d96bba076b65f350c48fa03484676e5e1ae3c5b0f2bfd869a690aa87", + "collateralHash": "8fb43a0c9f584b6485ecce16294cd029c0e3fab7c997f6f97af6a20f7e2d61a9", + "collateralIndex": 1, + "collateralAddress": "XqZNRxBfQg6XzfgigR1LKTnSJYTSoits3M", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.44.112:9999", + "registeredHeight": 1899935, + "lastPaidHeight": 2127800, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115374, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvWjr1tzhNnNezJSZM9qWFTiPqSqAL9WMN", + "votingAddress": "XdHRwZtpgMtnYy7EYDWBVAJptJvNXoQ2bY", + "platformNodeID": "be8ca0d8e02093a413e6b8e56b8009f319622032", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XhSjdxr3n3dXUipJHjLzhbaRZxAwfsYhFF", + "pubKeyOperator": "8283e55bfda843a22bf5622febdd284209812e014666a5de4d8f7da7526ee84dd5e4eec0c85a73a5d73888bc8ba27c6c" + } + }, + { + "type": "Regular", + "proTxHash": "ad4e38fc81da72d61b14238ee6e5b91915554e24d725718800692d3a863c910b", + "collateralHash": "28d32369d6f54898cd7ded1b3c87fc695828e251971c3b663a3d0d4511a0cf3a", + "collateralIndex": 0, + "collateralAddress": "Xr9au1iEVENELgDYfAWDcQpJtf1mukm74T", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.110.156.147:9999", + "registeredHeight": 1900038, + "lastPaidHeight": 2127207, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyQ5nt3suVKZ4qjhseh6NBicAY87caqeAM", + "votingAddress": "XuHF5mgGNky69FabNG2dMPWxRMAHZsGykM", + "payoutAddress": "Xr9au1iEVENELgDYfAWDcQpJtf1mukm74T", + "pubKeyOperator": "8aaa797063ae0cfbe47da3b4fe37a2527d65ecc26938d2e59290ee2488978fa7ec165280b9515cbf0e4b8a44eaf6a872" + } + }, + { + "type": "Regular", + "proTxHash": "be707842d4081c0b69bf1e2204adbd4a8274eecd26a94cd3de2c46e51f905521", + "collateralHash": "5392922aefaef48b509ebc184a6db1a49e68c4c56a3e8645aa174c15ee4aca8b", + "collateralIndex": 1, + "collateralAddress": "XgrPRh31te7rnxUNPiRGFEAoX4fJYqJGwT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.84.108:9999", + "registeredHeight": 1900283, + "lastPaidHeight": 2128031, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2081263, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdPELWmFjVKMDZXCipxnxMRpqErCUCj4Y2", + "votingAddress": "XdZEv8JCBDySGKuDhJLzRmZhHB7oPpg7oJ", + "payoutAddress": "XngqYdifAkTWn7zbY8ymmEa37HTryWKfvL", + "pubKeyOperator": "ae37001fd8396797c363a2c637baef49a80f2e22502491f81823fd7cfcb57ef15e50d27d55973e99166b03c81b6af1f7" + } + }, + { + "type": "Regular", + "proTxHash": "0505613f4db057b922a096c6b78f3fb001f5bb119646972e8d6850da569cfe2f", + "collateralHash": "d74442e1ae9662f2a8e9d78c4bd9a32e2c3378f769223c1cb6403245e4455701", + "collateralIndex": 1, + "collateralAddress": "XtY4oBjwxnuomwvnTTjgtUvg1dhCsq42FY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.156.167:9999", + "registeredHeight": 1900283, + "lastPaidHeight": 2126267, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2086329, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmwK3iZyncc1QUXwZfFT4gnG634MyKhV5F", + "votingAddress": "XhHVMMyYhB6AFwYSfgJ6dwvkEs564kveZz", + "payoutAddress": "XfSynchqdkZcy4xqL3V4fBUGfRf43t3opC", + "pubKeyOperator": "aedb5fa6621d56c5295e31e88ff1199c7d343d178b9783478ff980cc355bd36f114cb8ff93ed0349a3f5f8ad9e6796bc" + } + }, + { + "type": "Evo", + "proTxHash": "3e596421618da23ec6700771c2f4cf819fd9ddec753f7889c96f7d1ecb6f9c40", + "collateralHash": "ec38c44bff7518a7247a200c6555722fbb49cb7654e9c2a36ec410a2af6c5651", + "collateralIndex": 1, + "collateralAddress": "XrszAMsVKi6SF556sY3UXNBFtwA3vUXNGQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.241.190:9999", + "registeredHeight": 1900349, + "lastPaidHeight": 2127731, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115310, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhb9pn7SkGBFcLRcWTniCHGBpwfV6RD6Bn", + "votingAddress": "XgXvrB96ppgkJnDw6uVf4ugXJnJBUdMyg3", + "platformNodeID": "ee9ab93559e6e931d7dbcf269e1ea8446e7068e5", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xwk9zKCp7DmAiZA4jZUqekrFbB4jpGPZ7p", + "pubKeyOperator": "a18ab76ac05b494c300ba486a745cf6a34598d297f24a1db01750241630e9f04423a0b9f28d6557b87ee459e0759c29d" + } + }, + { + "type": "Regular", + "proTxHash": "54fc7a71b92139fff1f431143b901d40f861005edba3bd7405a3040469a3d554", + "collateralHash": "38018605e99db7c2ed33efa5d9f8304b122488ab6c1f16d5a1b53d2c74471b73", + "collateralIndex": 1, + "collateralAddress": "XyaugEQLacTwkvBHHdbhfH3oSwzG74itdj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.93.221:9999", + "registeredHeight": 1900467, + "lastPaidHeight": 2128032, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2081263, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmYMnm9ARXEUihhXbWH8zFSBqjbV9t2keJ", + "votingAddress": "XoLmdeKpK5N8S6FjSPATWbhtSD8SJxCwSL", + "payoutAddress": "XyaugEQLacTwkvBHHdbhfH3oSwzG74itdj", + "pubKeyOperator": "84ba1494ec55690ebe647e4dc46303a6880a4318d64dd59d4fc0b760c0c97359202ff492534670a44a8d796cf09825e3" + } + }, + { + "type": "Regular", + "proTxHash": "6b749d05a7ead7705338b01cbdbbf5c444b0bb69580b972ddca356bb76493f66", + "collateralHash": "f3c1254e5eaa1cc5557456666c6805e5d1f88b1ec33dfc0382cf50c619b8cc36", + "collateralIndex": 1, + "collateralAddress": "XqHYiAu4w9eYdcWNcY44Jh2vwbPo2vzzP2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.244.85.122:9999", + "registeredHeight": 1900467, + "lastPaidHeight": 2126281, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2086329, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvDUhpfcp8kEvKaESreGeQUYKhV3my199T", + "votingAddress": "XeT8L12dxPWK2AwKGXhyWDeEDMufyjVib5", + "payoutAddress": "XqHYiAu4w9eYdcWNcY44Jh2vwbPo2vzzP2", + "pubKeyOperator": "954ecf757c9bd81b67aa85e2ef4c27f5554d200ad443adf0d03c9d39e4491ece8e8c18c25b5fc1adc5c279ebe45047b5" + } + }, + { + "type": "Regular", + "proTxHash": "05f42dee064ef68181862138d1934536d231b2de31ac829ce4f1d62d74c0e596", + "collateralHash": "5ccf608c94e59aa0526f66da3cc4bdf6a3b88ba6f7fe9042c2d78600b5fcabd9", + "collateralIndex": 1, + "collateralAddress": "Xfnn4T5SiAYNE45ne8G51M9FKW9evBqdDo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 1900484, + "lastPaidHeight": 2108345, + "consecutivePayments": 0, + "PoSePenalty": 3849, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2109354, + "revocationReason": 1, + "ownerAddress": "XnJG9PpWBdBGPoNdaeynZk5M2rXBiqgBtn", + "votingAddress": "Xg15F8j71fwXsnDYhHS9L2Pt8NhZYVo4FB", + "payoutAddress": "XxSsG1HTFMA7mkcSDkFmLRQiSb6yBvGjrJ", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Evo", + "proTxHash": "79be053ec691833f2941b96eddf41c4092ffd1b3b48c4a72502a9ff40cab0eca", + "collateralHash": "f2f0bfde7c426bbd8a9f80414b80b4a3c5ec8b93f5d80ec3e61673f08bba5810", + "collateralIndex": 1, + "collateralAddress": "XkhQpWa4vDBHnXJrNPnF3PLPi1ixcjeYJq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.110.204.82:9999", + "registeredHeight": 1900521, + "lastPaidHeight": 2065003, + "consecutivePayments": 0, + "PoSePenalty": 3798, + "PoSeRevivedHeight": 2075134, + "PoSeBanHeight": 2075219, + "revocationReason": 0, + "ownerAddress": "Xb7LVBeSEV27rsKYvacsWdov8GV317vEqE", + "votingAddress": "XyMSDFtVS9JjLjnQBdPMDtVbUCqu4TNp98", + "platformNodeID": "4bfb390ab961f22221ebdd644abc654bdb54939c", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XurWtGRCECerJ1v5U97m3m6UGWa4KbAZUG", + "pubKeyOperator": "982c37443c6047bb83de3b81abd4c06ea94a9aed93798926a3f8d8cb73a1ab672ddc75055eb5fcfad134fbe93e84fba2" + } + }, + { + "type": "Regular", + "proTxHash": "d826bdf3cc6ad2aa653f6d442f55177bffe1a743cc843df1f398d9326dd96dd5", + "collateralHash": "dcd8685432cb7ac40891a2aa7a6aa0f84c8a7f86c2db4692d34e032740448312", + "collateralIndex": 1, + "collateralAddress": "XwyRysXMYbYNsabDSd7E6tW8cqawksNaNv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.86.98.251:9999", + "registeredHeight": 1900557, + "lastPaidHeight": 2121354, + "consecutivePayments": 0, + "PoSePenalty": 3815, + "PoSeRevivedHeight": 2126183, + "PoSeBanHeight": 2126613, + "revocationReason": 0, + "ownerAddress": "XgQdgKds8gJuVJN4pdSKHXDPHWy8ZBz61p", + "votingAddress": "XmFkXAGeGCKqmQgfKVYDwnZbTfnvu8za59", + "payoutAddress": "XwyRysXMYbYNsabDSd7E6tW8cqawksNaNv", + "pubKeyOperator": "a4fc1853e0d965ff9a02393a95dc63cd6bbcae1e6d83516243d0e1a925d0ffca10d3841f471f6dd1c1acd3dd77a39780" + } + }, + { + "type": "Regular", + "proTxHash": "433b9d720db2c219b772f2293a2ddd50ace2931d26779360aa189816a0d22c08", + "collateralHash": "789d3de64922b9d8c48324f9cc4e26751afcb9c466e69642eca55f3babb1c31c", + "collateralIndex": 0, + "collateralAddress": "XrgDbnV9syxUQ8q2wvxKMZEmcHY8Fso3oN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.115.135:9999", + "registeredHeight": 1900639, + "lastPaidHeight": 2127885, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrXJKGQTSTEPYCgtGz9qLPgLzGhyV7ydvQ", + "votingAddress": "XnBVK6vecdMZvujSh1eo1eKtFGdd31qiDk", + "payoutAddress": "Xasq9KiLvMenAqzS1tNqHUk3HBeTdhYeVq", + "pubKeyOperator": "84027c7a835f9a125d58f3e6cd3336d9740a37c21f098d1e463ad27bebb38e7a7ca45cb9d758fc90ed67aaff940fea7b" + } + }, + { + "type": "Regular", + "proTxHash": "44556882267a578a1b30b9939571beac9606dc74b474d35aed50bcf66c79990e", + "collateralHash": "e7f9b8e018cef2306bdfae0d8a3d989858705ef63c6aa2455016c2157029e605", + "collateralIndex": 1, + "collateralAddress": "Xx1SjFr1Ann1Stf6yXgQbaP96ik6W2QkLK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "66.42.34.43:9999", + "registeredHeight": 1900904, + "lastPaidHeight": 2128120, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbpiDGetSxGGuV7XVLcTPZ9VKTofNWrtJH", + "votingAddress": "XoM5jbv8AYcNpkvQri2aawSvG8jaWbshQ9", + "payoutAddress": "XnCaGFPSDk8tQy75mtMZz9vQL6eGPoedyi", + "pubKeyOperator": "aace0a17031c204156d87703b572a71625d6d56d2df4bfb31a74851d3d24de9a30391021a85e8283681c678048fffcc8" + } + }, + { + "type": "Evo", + "proTxHash": "ee22f5bce3b6f8734a664ba7be36b1bab218eda764136691e8b506003a7bb662", + "collateralHash": "10991567663a292e58f98a39d722ed718d8fc3a8be3642edfc2345eaa8055652", + "collateralIndex": 1, + "collateralAddress": "Xhb46W6A7jZqQ57guQunsLyyM7Vgt2xPRk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "52.33.9.172:9999", + "registeredHeight": 1901388, + "lastPaidHeight": 2127205, + "consecutivePayments": 0, + "PoSePenalty": 1730, + "PoSeRevivedHeight": 2006332, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xps9MKumnQXmgMXGeikkmH6PQBnT4WT4ur", + "votingAddress": "Xiq1bvjmeNRa3v8ApNACMtUnyL3ucDVWM8", + "platformNodeID": "8eb2614b645e686df7dab0171f81754398b33170", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xmsn78M3xhEHVmWvmVm2GQ5fFgc4i29vny", + "pubKeyOperator": "ab70f3e40ff0fed5b5eff3154155d82faa75c3fc44557c5819d0fe431b18f8711f9b954593262b0cd8421f811f19ea80" + } + }, + { + "type": "Evo", + "proTxHash": "876b7fdfc60b90fd2d549c55cf52df787b1bbd80c1932c886711609fbb3ba404", + "collateralHash": "f2744f5cf6d9204beb3b6049fdfbe0bfb2c2ecf9bf2759eaf896c709fb55ed1f", + "collateralIndex": 1, + "collateralAddress": "Xsc2BLbMSDP6qJvy3oyVBWNwUU2BPMSK9G", + "operatorReward": 0, + "state": { + "version": 2, + "service": "44.240.99.214:9999", + "registeredHeight": 1901479, + "lastPaidHeight": 2128389, + "consecutivePayments": 0, + "PoSePenalty": 2017, + "PoSeRevivedHeight": 1984081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaijXj8mDKDdbzvA1beVDgh2jxKzrBXnEJ", + "votingAddress": "XgbHPNz6DSnSYNAt1xZTFqnMiPv6X4z9wj", + "platformNodeID": "e03427469bc980bddf2722ff8c637452091e942a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XyovTDNt8Abo3vPwwHPPmiRjdHfkv1JNaZ", + "pubKeyOperator": "b0cc62903cc03ce3b4676fb4deedc63fae87ac1963882707ffe236f2af6e99a87629cf0b8c7061067fa0a70abcb54a82" + } + }, + { + "type": "Evo", + "proTxHash": "aaa0dddee42cad41c5dbc71174ba93d1ac3aab8a46db047c2786310b3d06298b", + "collateralHash": "3db7fc59ebb7f5b57aee1a06d08709cc711b1fd0635d490d1e195a84511488ff", + "collateralIndex": 1, + "collateralAddress": "XiZvDDQXbMLskcsXwG5dJmNc7hrJLa5URT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.225:9999", + "registeredHeight": 1901537, + "lastPaidHeight": 2128304, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1980421, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdEE4ZMGjLKrzubU6EaKzXBdx5LaMeBYFC", + "votingAddress": "XdFT7icqVLy6mXTTkTXPGasXQmnCkD6Rjp", + "platformNodeID": "d39a5910da39049774bad4542bca59dcf53ced37", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbChW1i5LH2FAFKdqKDBSuKUNpNCHfbMtr", + "pubKeyOperator": "925b65f7e3324133766fa6e4a5a26e85faab67d5c0228b1e1119d9886e5adb3a945157b451a7efcae605c38a07e5fd52" + } + }, + { + "type": "Evo", + "proTxHash": "5c8b0881a67c1d164ed343095554c73b986d37004f941d476889f5a0c3c0e0a6", + "collateralHash": "466d1a84acb74dabda1a566d29449e87c9b3353ff6bd99a9e97c857cdbcb093a", + "collateralIndex": 1, + "collateralAddress": "Xturb3dgLHAACJ8W7zTgoDxwyxLgtiWJH2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.195.87.34:9999", + "registeredHeight": 1901537, + "lastPaidHeight": 2126342, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978341, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr5MdQN9dQDZ6hs68bT1PhGohbExWY2Zsx", + "votingAddress": "XvXBrPBBTNAokUAJYphbCEeDPKT1B1s4W2", + "platformNodeID": "f7d67ae968ac7bb19cb7146029bec18498f2941c", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xgvh7a88BxZCiZMUeSS2ktCBJkyXA2WTQo", + "pubKeyOperator": "b2d465c7e7a7de91440b656f45c74ccfaa93a7a93dd11ccd04207f6396342e49fccefba503f3bb843514239eb3e69434" + } + }, + { + "type": "Evo", + "proTxHash": "a116c0ec761f0542919fbf226b4c8d77a57ef064e09df201dfe9aacb0d9018b6", + "collateralHash": "4e99e7a8cb4e9d19d61f5ae46a372a264bebf42f644b32e0dcdeeef51c54953d", + "collateralIndex": 1, + "collateralAddress": "Xvu9JGxjq2CvQEUZTYrpE8if833b99Bbc4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.247.165:9999", + "registeredHeight": 1901564, + "lastPaidHeight": 2127363, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114991, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvRhh3LYzqrWHTrwsSfBJc1KFruF5PggRH", + "votingAddress": "XcVpv34NCqdCZXardbZnbCz9Wqt4nDcUat", + "platformNodeID": "7d2bc55516c3ff079a29f2c8dd42a13fe4b42f5e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xwk9zKCp7DmAiZA4jZUqekrFbB4jpGPZ7p", + "pubKeyOperator": "a1fd2633c2504c990c6715b22f0ccd2863d7827592de6e69ad5842135bcdd782383dc0163f21c5bbe76711b608412ee1" + } + }, + { + "type": "Regular", + "proTxHash": "244a01ac9d648b12be6c216ab748a5e609f7a609f4ca60258f34816dd472f125", + "collateralHash": "18eb93bf687e14d8b0f70a84b58ad14e53f8372ffabf2aca75efea83ff8e421d", + "collateralIndex": 1, + "collateralAddress": "XknXMR6KNjamrXgVN8hC2UT1qVSoQWsY7T", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.5.55.252:9999", + "registeredHeight": 1901691, + "lastPaidHeight": 2125740, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxZhbYAGBgZCKmjmMkAkYRFY4dD2CbNJWi", + "votingAddress": "Xwn48iiS1fprraX7rKWgfDc2cQcwckdTw8", + "payoutAddress": "XbHrXWd35Zm6Q4748RW3c1xiFPGt8dT7Dw", + "pubKeyOperator": "a9cf17ae0d7d1ac7cfbaf8fe1363bd94c4fe9e598fe40593510ab80fcb377fcb2b087ebe53880a6d3056fdab3ecc4b37" + } + }, + { + "type": "Evo", + "proTxHash": "9455cb290c9c1c53876b815485b359ccb94bf583169569e7eceda09d4af69c5c", + "collateralHash": "638c94eb67d80afbf0a2adc7d82f50d9f635e63b15be92672aff48f76396547d", + "collateralIndex": 1, + "collateralAddress": "XvbGpDoZCa3HzNrJELyc4CKdH5xuuU6D1U", + "operatorReward": 0, + "state": { + "version": 2, + "service": "91.23.167.158:9999", + "registeredHeight": 1901768, + "lastPaidHeight": 2115058, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128337, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdzdHo7n5WYjDabYGFwPrvKdGsXbqm298X", + "votingAddress": "Xe6SVbnvaMAahmvhjnRK5A2jNfpyyLb1pP", + "platformNodeID": "4841a4af5e3d82a612f48035e955c39c6c8499f4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XurWtGRCECerJ1v5U97m3m6UGWa4KbAZUG", + "pubKeyOperator": "8ea417bd96affd29c19193ef166e0072d137158a6d2a1de6e51a90aa15b6a4518a9881741ef30474ca9e648c2c9e493d" + } + }, + { + "type": "Regular", + "proTxHash": "58265b9c9346ab99b3e57bf552d6bb57d7fac76b2f98a39d1172de1fb93ff17f", + "collateralHash": "0ec8cff11bbd5a0de0913ab6346a66eb2dc4a4da5e7b4cd7fb29552e1f906570", + "collateralIndex": 1, + "collateralAddress": "XrpJSh6uETvuCoQp1YAyXvw6ggdNqvYhsw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.5.10:9999", + "registeredHeight": 1901954, + "lastPaidHeight": 2125913, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdnHKXQnjswrvMpnCuCLivRQthNCthExd2", + "votingAddress": "XnKUtWagdQiRUFbD5wH6hpYycSKLPhzg7J", + "payoutAddress": "Xwk9zKCp7DmAiZA4jZUqekrFbB4jpGPZ7p", + "pubKeyOperator": "b99595d56fc0332afa42b67d19baf9a7138cc814dc5d99a085f55c01aee0157fa1633dbf37433b093f9a907de9510ba7" + } + }, + { + "type": "Regular", + "proTxHash": "cfc8fb9b9a3ca23b53dc718bb7e365c27f097c633c16ff9c062cba8aca30e5c7", + "collateralHash": "5a4cd29c0685d678dceb6e2cc4777338572fba71209ea4e225c4c171b59acab5", + "collateralIndex": 1, + "collateralAddress": "XkLEGFEtdqRciYiFYtGWmYgrcAHBng8qGZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.156.237.196:9999", + "registeredHeight": 1901956, + "lastPaidHeight": 2127214, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2063651, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwcWGr5Sp5PdB5K4CCbFynyyZaas32wZVQ", + "votingAddress": "XcB8oHH1UuPkZQ9aAvi5oynSnhVjAJKEvC", + "payoutAddress": "Xwk9zKCp7DmAiZA4jZUqekrFbB4jpGPZ7p", + "pubKeyOperator": "9868bb818551ac190bfd846b7e06dda03aca2c60c8b53367ae26f4b26747bdbdf214d68a571ef8e88ac70a8f6916bc0c" + } + }, + { + "type": "Regular", + "proTxHash": "73f472209276a487519d5562d2ed857d7d88575d878219ee31d05acee08c3165", + "collateralHash": "4c596b1ba8c042162bb46598679f69255c0fb242051b727e2e09aa5a2f183852", + "collateralIndex": 1, + "collateralAddress": "Xtbdyyf4Zqo7jJkjUqtFuGvRd8BXJ6e6Wp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.64.32:9999", + "registeredHeight": 1902261, + "lastPaidHeight": 2126259, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhuN6b2o5qsEsLHH3rgU9mX3LaWhLjW3HV", + "votingAddress": "XevoJZX2YKdnTU1XG49Ymkn5BAXpvpLNNG", + "payoutAddress": "Xo3TPyrnMWMQYtrT3rv8ivrJU8oSyjnvib", + "pubKeyOperator": "99ecdc0c30f8ce4cfc12403f182d4eecfd0cdd7bc1c4bdde741601738bc084e7612ba82d909669df182b7bf83fcc92a3" + } + }, + { + "type": "Evo", + "proTxHash": "3ebb34aed273c071e94daa550afca608682c5694bbf43bafb3926ed7d5976061", + "collateralHash": "7d2b8bcb3d29d0be4f4480d1502c1613fa33235d04947955188e2ba23665e21d", + "collateralIndex": 1, + "collateralAddress": "XjqgPVFCc12SXMsoHmgDTkiPkAg6cqFLJu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "80.147.135.74:9999", + "registeredHeight": 1902891, + "lastPaidHeight": 2113922, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128845, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpuhYfeyVNvjXfdfVG5APoRuz7MvvPm9JX", + "votingAddress": "Xma3vgnTH3zcSskZ5EuuLG5XRYTGg4Vv8V", + "platformNodeID": "b286af9b51d117c77f740f310a58ec00c8e84730", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XurWtGRCECerJ1v5U97m3m6UGWa4KbAZUG", + "pubKeyOperator": "807e3a8a8e64fcc9e61ab14b3411fc4e502fe7f9f0ce3d2a44fe0f6ea2363f6b21e39dbdcdd820a5f3e445e139cd191a" + } + }, + { + "type": "Regular", + "proTxHash": "d3ed0776cb7498d8004cd541fb24a4d861eeee9a7a03650e1c986251341ad56f", + "collateralHash": "671b091ccd6d0ab9593a3e1594c8258682f7fde022c2fe53d0ef88a0e7b37100", + "collateralIndex": 0, + "collateralAddress": "XhQ63vGTGUb6XhomMFhVwXWDRfEAU26iwa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.29.192:9999", + "registeredHeight": 1903086, + "lastPaidHeight": 2126944, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmVFAj2oagnsbs1jQq4ErHCqUDPn7uhVCM", + "votingAddress": "XbFXCjBA8jvyeyEZeii8VtwuCNbbCJocSF", + "payoutAddress": "XhQ63vGTGUb6XhomMFhVwXWDRfEAU26iwa", + "pubKeyOperator": "af92fb8e9de43a02d9b4006facda38c462eca48a6312da40d884797c0432b968597322269d9488bc972fc726b53738ad" + } + }, + { + "type": "Regular", + "proTxHash": "3a86c362b46ceeee2cb137281fbe313f13c12673cb914505559b14fb8b54c642", + "collateralHash": "9f6789a2b61b19b5ed35be54cc4aa9fc9332a8bc4db67458b8e315bc5e275b46", + "collateralIndex": 0, + "collateralAddress": "Xein3CPjHFF3qE5JwYhAWvU724N1oMJELG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.194:9999", + "registeredHeight": 1903086, + "lastPaidHeight": 2126942, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnM9PuSDnFtVGxSf9j7TjRMHwQYeDFJe14", + "votingAddress": "XgEpE5ZDnbPEjThsLXH2iCtf2PpCQwfZvb", + "payoutAddress": "Xein3CPjHFF3qE5JwYhAWvU724N1oMJELG", + "pubKeyOperator": "adf5926c8944c3dda560eff8e8711fab2fc43dcf4e79b7c041acfd3f9d240aef93c8bacd93896c527aa3589e63aebb19" + } + }, + { + "type": "Evo", + "proTxHash": "8185dd58f231dd9e26491667f29b0438a94849f0883b88d518a7b00588312bac", + "collateralHash": "a9216ae1ad6adc40449e52f37fa8e61f31f0dbb465ef775b5777554f0fd83635", + "collateralIndex": 0, + "collateralAddress": "Xaq9VhmjNjck8mJyBKXpUTPy8QNwgFewtx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.192.96.70:9999", + "registeredHeight": 1903377, + "lastPaidHeight": 2127223, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xd5pXy32i8qRXMrGppv3m4c3QtNbYryVPV", + "votingAddress": "XfyEwamEFzPqBeiJSQKcCcKxYEr3SfTapG", + "platformNodeID": "570d765b5e1197e04db99941a5e50b63b909e3fd", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsbNGyW8ViLJ41mDtNP8piBmfrdyuSV3Ey", + "pubKeyOperator": "86f925bb639e681242df5e77e11f0a95b3b5bc97b43434c455b9bbd343394816c5b7bf6016f170bc3558a84c7717021a" + } + }, + { + "type": "Evo", + "proTxHash": "9e3ff349fbe7944a99b77764f7d03a3d765ce669bc3c07637014c683ce324cc0", + "collateralHash": "568ff6d4aed1366672685845cb9a53a2cba530aa80c1be6b90e3cec513b0d6ab", + "collateralIndex": 0, + "collateralAddress": "XdmnGioewru7TG7ivhkbAjA7o1DxojjHwq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.182.186:9999", + "registeredHeight": 1903381, + "lastPaidHeight": 2122942, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126467, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcHEDkpYoZ58r5iinCv8VeXmCn7RkxZV1u", + "votingAddress": "XdPSbeWnUsFPK9qoDYcMmeMFffUShzYyR8", + "platformNodeID": "3ed7bb4f1ed2f19cacd33f44a68b95d3f24cf85d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xrm2iSzSjBVCJ8yPfDB5ojGj6ygHqj6Q1n", + "pubKeyOperator": "b3291ae3c6fd9be650a427c32f5c46396f2bf1bfd65834ff4cdcd79cafb6d560c8a2e3a365892dd5d6b24fe7cf92d234" + } + }, + { + "type": "Regular", + "proTxHash": "88a805acb081238f5d9b13d9d8c5f99cbe26e455b753f9a69c0a4f2e94aaa924", + "collateralHash": "eca55cd4251976d0451715d0bb901eac7a57cbee40a77f6b55ac78c1a8d2f2ca", + "collateralIndex": 0, + "collateralAddress": "XmYHatqqZ9wVStgk8xf8tEfXqcZTpwvE8o", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.180.134:9999", + "registeredHeight": 1903734, + "lastPaidHeight": 2127573, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xar9XW2mWtKxGLsWNdHbGp9GD6rM8Ds6Ff", + "votingAddress": "Xu22tenW62t2xTS6gSuPsTKkjnHgYPXH1X", + "payoutAddress": "XmYHatqqZ9wVStgk8xf8tEfXqcZTpwvE8o", + "pubKeyOperator": "84d1b5d52326d730fd60145752dd039a440292f9375bc96dcaecbee5eb21e8d89197391e1e96d9676ed1316d0239fac1" + } + }, + { + "type": "Regular", + "proTxHash": "8e3230fba8983730260cac09bc1e653fe4684637af7d86923b7110ef6c1ea390", + "collateralHash": "97087b34b196be91205574a8ade560f8190a725e2a8c6ce8452cbe595bbab907", + "collateralIndex": 0, + "collateralAddress": "Xnxg7qTJBRiC2wd1ogXGwBgwzsT1aptrG7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.227.33.218:9999", + "registeredHeight": 1903734, + "lastPaidHeight": 2127575, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfsYJiVytZE1xN4WSmY6JRznjK5wgJsLNz", + "votingAddress": "XregD1SyA6qQ4D2Wtbr3dTei7bCzyiXKkT", + "payoutAddress": "Xnxg7qTJBRiC2wd1ogXGwBgwzsT1aptrG7", + "pubKeyOperator": "8171ba1031155b9c25b156794c2aa5fa7716c754318f6bc500c7f59bea8a04f41326277c4469ef7d35c39007a53c227a" + } + }, + { + "type": "Regular", + "proTxHash": "b557ca607b69b89391063911b72006d448d73f019748a26c1db3acb637d7e858", + "collateralHash": "52c89992ada8108eab48c3241d1d7de9cd80adefe212bf19129df9b52d461d8c", + "collateralIndex": 1, + "collateralAddress": "XhHSotNHoXxUHgCH24JvtkBnYicVKEaZM6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "68.183.69.243:9999", + "registeredHeight": 1903734, + "lastPaidHeight": 2127574, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnXAiXkMeUbe9x1qDYMBz6v3NvUgytqVYp", + "votingAddress": "XbD4aHFHMBsJ2W2qRJXJZMomFV6qBch5ze", + "payoutAddress": "XhHSotNHoXxUHgCH24JvtkBnYicVKEaZM6", + "pubKeyOperator": "96fcfbe2b1516a2438d0dbd03c0cb3e75db7eb6b7317b692871a043217063e97ef6a769b2141cc5ff1b1b5c8613b4b0d" + } + }, + { + "type": "Regular", + "proTxHash": "dafd79e751f4071d1db3dcd1ae2d4f31441a49df2835c95d3fd3eb410dca19dc", + "collateralHash": "a5098d0762628c95e6b3c5260449913b3cca227068b4f13825dacc6db6f0dcbf", + "collateralIndex": 0, + "collateralAddress": "Xm7yBPPDxUvn75h3uQmmvcAsPFs73EuAuE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.65.140.155:9999", + "registeredHeight": 1903734, + "lastPaidHeight": 2127576, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdxaXksshH9FDVT2KRaiUYDrkvjRDixcHz", + "votingAddress": "XapTQyMHmkUh2tuqf7zBEz1ucpwnQhhPkW", + "payoutAddress": "Xm7yBPPDxUvn75h3uQmmvcAsPFs73EuAuE", + "pubKeyOperator": "8af7554d7bfbae333c973370d2d3bf93b8ee122b083a721fdb4fff11483f2ec22657bf88a02731daa697c6fb1ff48dbc" + } + }, + { + "type": "Regular", + "proTxHash": "525efb260f2a1f49fb74d41d5444ecea8f6d55a0ea2df3d625c965b0c2077352", + "collateralHash": "960798b5e717f0da7a4af335dc14b49726cc16690d5a830769233a251d86c756", + "collateralIndex": 0, + "collateralAddress": "XfQmDYLAa4HpPZPyJadjbcy5h4doMMPbsY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.193:9999", + "registeredHeight": 1903739, + "lastPaidHeight": 2127582, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu4CpSPNtxMz5rkeBF3HHFU71FWGdkkJVp", + "votingAddress": "XvWKWbbmZVoCLt5JpV3nAGyD7NFaCaTWnC", + "payoutAddress": "Xv9vuXRrQEybcqyzccCuVKta6sxxg9cyYf", + "pubKeyOperator": "836d1235afdd64db599ab40d62559c84a4951fc82ffe65d2ec21c2a4026edacd5033093febe3bc5dcc915a5791e9cbad" + } + }, + { + "type": "Regular", + "proTxHash": "02244e2360d915b7f162eef2944ba129cff32dc5d2d7f75ab3b13289ccbcfb33", + "collateralHash": "f5a9d6cf22265fc488f342f6d877ce37756a8ed59b9e710b2e43fd52360c473a", + "collateralIndex": 1, + "collateralAddress": "XtzuLcXribdwem92qydCjAhjFbZbo2pZH6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.79.109.243:9999", + "registeredHeight": 1903882, + "lastPaidHeight": 2115406, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XnMVFFqEi7tAwDWmqe1vF9g3TgXF7GVbeX", + "votingAddress": "XrLiXbUGkSFZG9n8ETnU3YaFKE4eud7gCP", + "payoutAddress": "XbsyF5Ga7geuLRqFGZ39194Ui1Sn1s1UoR", + "pubKeyOperator": "974483c3fdfe43b710b2da3f50c91c4d5b3c3d2af90d86b45b222673ca4a44a6963ed24001f6a70378fb45840c78c129" + } + }, + { + "type": "Regular", + "proTxHash": "abed77f325805906085a9d473910073a1e709708e9626a022aa8c82e52eb88d7", + "collateralHash": "c3a364f14d95401f66e056ef78b969db7b99d05638539784653112ac6a8fad60", + "collateralIndex": 0, + "collateralAddress": "Xofumsahi6Z3Nv1raeCuunZH7SywDZ81Za", + "operatorReward": 0, + "state": { + "version": 2, + "service": "77.20.177.153:9999", + "registeredHeight": 1903910, + "lastPaidHeight": 2088690, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128853, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfjqL2HiuVe97uRs1aqasCTvwpojTB3JpY", + "votingAddress": "XuGibyNWqhSK8dVCSUis3LYEaBotYzc5eC", + "payoutAddress": "XurWtGRCECerJ1v5U97m3m6UGWa4KbAZUG", + "pubKeyOperator": "a108718a7227f6927b6461de0add26437ae5545f7ac4e29246a637ea9c3fa07b4144100ae8ec6ce2ff66495907da66d3" + } + }, + { + "type": "Regular", + "proTxHash": "ab01c5d1d21833b12615f812bb6855174dbf4d2a94c7912dc400fdeb47930213", + "collateralHash": "7094c3f9266a45ad1257694ed44e7d92933bf2830687f9a77de574f2ab861ba5", + "collateralIndex": 1, + "collateralAddress": "Xpop546Mb4AjKCtopvRrusf6sWc5hAZwwp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.231:9999", + "registeredHeight": 1903923, + "lastPaidHeight": 2127866, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XentXF4Mc3gGbsCmBuqRAn4Bar55SsWrL7", + "votingAddress": "XqJun1hzCXLafNvjaCQebUC9vht9rzgwzB", + "payoutAddress": "XpQEFVY16WQoTM3aJr6ZmPUyQBRB87ZGMZ", + "pubKeyOperator": "b0c15db427879fa51546ecea8c7aeb81a719142ebe398736e63819776a93cbbd2eb5f822c096386b2af571ddf126eb75" + } + }, + { + "type": "Regular", + "proTxHash": "413fd6f9687eb43912b0fa1b091bf907e3103ca4b5e88c3b3b482704cc34d577", + "collateralHash": "81b517c7da2230353930be62f125a44de7c7c44421d8fbb9e42ee2dd5f212a0c", + "collateralIndex": 1, + "collateralAddress": "Xsz5j6KQoTRKvPK3MfjV81NrFCX4mZqHWR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.231.10:9999", + "registeredHeight": 1903966, + "lastPaidHeight": 2127915, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwfaWjdmrCEy5RjVDqm3x4sD8hY7SMkeDZ", + "votingAddress": "XcijRgdjtkyJiPLobcKemrzKsHwsQWdteu", + "payoutAddress": "Xqxk126WJSKfWd1Z4ppGjhLxxCupsGz9A6", + "pubKeyOperator": "aae4eaaefbdc5a515f17fed002a118f0eb847a7283e11f7fa6f91dd7d5892ecefa1e3fe6ee896d0a96ab3590ef6282ac" + } + }, + { + "type": "Regular", + "proTxHash": "bba653ce8594daad24fe386f605346724871e27b575e609fbce2a475839958b4", + "collateralHash": "ff99866cf8540332c213e42d85d14b5ca0b58cafed69f1a894dfa107d0a61735", + "collateralIndex": 1, + "collateralAddress": "XiZ6kGuwGianiKREihRSswnGHRyu2yVgyp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.211.196.32:9999", + "registeredHeight": 1904273, + "lastPaidHeight": 2091650, + "consecutivePayments": 0, + "PoSePenalty": 3822, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2093802, + "revocationReason": 0, + "ownerAddress": "XfYWmT7ZEQDRXDiwATskt6J3jB2LXHd7Cz", + "votingAddress": "XvQJoauzzJQKGCHRbSHApA8Yi85V6W7CzJ", + "payoutAddress": "XgaHvYiUMUpGScFjnGf99Z6gzhSFrFRuqa", + "pubKeyOperator": "b4b5ca9cd8f373b4a3ae1957933d8a4fd7a93972c310475743d3675af0e3f596a40a0fe1047e2e6ed765ea57b506fd3a" + } + }, + { + "type": "Regular", + "proTxHash": "987aec42ce040e81eab7684fd2dcd6abbcb421975a87471512b9d0b97a99e739", + "collateralHash": "a5e575a9405307d5e8d944e993815fb1b001fcbfdabd2cfd028c0313571dcc4a", + "collateralIndex": 1, + "collateralAddress": "XajoT1AmJVGYYtupSG78cpawEW4yAX5m7W", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.211.196.8:9999", + "registeredHeight": 1904273, + "lastPaidHeight": 2112272, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XwJEdYzoMmZzNncVg7FjqrbWN4yWZ2vKRi", + "votingAddress": "XgZP3C9UBuQNzVjpu2wpzANb4ZeTgjgLk3", + "payoutAddress": "XajoT1AmJVGYYtupSG78cpawEW4yAX5m7W", + "pubKeyOperator": "a12673aebfa0502e51f4080b8feeb26aee37b7252c3605c84a311ad974ed95fd0bfbb78db1554bca8f0bfa976816c6b5" + } + }, + { + "type": "Evo", + "proTxHash": "8ffc80302e1d26cb992a3979692e55caa704d2f0dd1a8dbf146b34ae225a3aae", + "collateralHash": "cd7b997decb2a62d170e127ecb087c4d0f77e4262e6e162e04f2dcf72d237a73", + "collateralIndex": 1, + "collateralAddress": "XyiN2iYFBU1YBCiKA9YGEvTJTpYnR28duB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.83.17:9999", + "registeredHeight": 1904874, + "lastPaidHeight": 2128853, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmK9ja5rsoJqRhpTA1fRt7Cq9sqwXJ2kAc", + "votingAddress": "Xr5e1RiWdA5rdcY4RAca6Ypoh17jqM9Pb2", + "platformNodeID": "6133bdbe3a422dfe9a4907f925344f2fb052f43e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xy7xS3ccLRHEqDutrY1siL7V6xmTu1p3tB", + "pubKeyOperator": "b3df20240962645497cb3f4243c09ab477b93d16a8cb16b999b28fef71f98a1fa1e16bd33ea6b4d0f4157f3e075d6b95" + } + }, + { + "type": "Evo", + "proTxHash": "79cccdfb7514e5f197541dc6662b29d122660e91a3059d13cf7b3e0c05550403", + "collateralHash": "67efe846f9429e4a0441b8fab6a5770d59ca4156bc4c804d52fec70673d9d352", + "collateralIndex": 1, + "collateralAddress": "XsXFjUqWTbod8PTRd1BSj8e7K8cayeg7v6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.146.13.7:9999", + "registeredHeight": 1905441, + "lastPaidHeight": 2128479, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2125304, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xij16Kei1wDzDdsr5zzmjAeApbWUtndKiL", + "votingAddress": "Xx1QDCbZYVEitjPv2NH4SBRP6VYr2y2Eg6", + "platformNodeID": "6b7dc37855715348a9b1cf300a25a78d5ffaa50b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XdnaKG1A5hhm69uRQ5iF4ffd5UrQXqpubC", + "pubKeyOperator": "a27f6c3eeb34b44c16ceefe4ec9387df02ca196887422494b21c37f6c3366c66596b572683f421b975b53b001be9b902" + } + }, + { + "type": "Evo", + "proTxHash": "4bee92fb0fd27a3b23b57f67052d18fd18c6e616935545a6d0e691663c836b9c", + "collateralHash": "a09a42eae1ad4292f2d3310a27f46e94344fa4dd6a64db31044865af05a1241a", + "collateralIndex": 1, + "collateralAddress": "XpfkVhH5VLmMnz4GSmABwN94XcAnUopK5C", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.35.18:9999", + "registeredHeight": 1905512, + "lastPaidHeight": 2126072, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978043, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjkYYc8mwbTR5N3L3EznegYfRakntjFHYa", + "votingAddress": "Xo8Ju7doCf6GLvaEGC3BxoZkSikZfnQMPr", + "platformNodeID": "163bf968457e33c5def35a4a912ddcba11b115d8", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8e502e00eecb236b6899dba6f5a868c3fca58c010724c8f51e60ab73fd3463d8b21169a4f0a8833f8c6e8db7ea44c575" + } + }, + { + "type": "Evo", + "proTxHash": "31ce7e11cbcaf8596dfb73a68dd7bed15dff54d513896ce5682faa7e991267cb", + "collateralHash": "9b439aeb8a25620c14d342a64ec15c995cafcc0cbe8e124ceac10a0ce1470441", + "collateralIndex": 1, + "collateralAddress": "XduW1amPxYWpzY5UcGidYaJD9V1Dso8aoS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.249:9999", + "registeredHeight": 1905529, + "lastPaidHeight": 2126097, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978048, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnrKJvy6WYSuq1ycvMhdL7nBapbTQ2xFKN", + "votingAddress": "XyNoNjmjKFH44WAv6Uw24R4ymiEhQukzfv", + "platformNodeID": "46d906f9f489418d20b00a090801fb3a0c68cb14", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a8fb2c743766d6404e192282aa73c5d1c947bb7bd03de5a9ddb02baa0ccc8e7549ebd682d07bfa1f91e5c754b1eab476" + } + }, + { + "type": "Regular", + "proTxHash": "1b712dbacff53a48856890ad118faefb52c80ef3b09e9726c9dbbdb72e6d6192", + "collateralHash": "3a9e4fc00e3dca2bf1baee0c882d2baf088e19ec056fac95bbe82e82e29c6f05", + "collateralIndex": 1, + "collateralAddress": "XmbHiEkCys6PNiTvmLb8JW8YqArTYJ4o1g", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.162.97:9999", + "registeredHeight": 1905773, + "lastPaidHeight": 2126376, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj92UB41Ht87mEFRRFBxX7KAwysPf6k1gh", + "votingAddress": "Xd1uXc2Kdk8LvC1LCSWXKtfZTFk762AyNa", + "payoutAddress": "Xc8fD4Suqmhoxfd6PNZ1KACTHk1ZzgjFFy", + "pubKeyOperator": "b81b7ddb96cf9b81a9360724f2d932c079baecb0cd6684fd703d26760ac73ebcd9c1aabf0030b73d59c62fa2783394b9" + } + }, + { + "type": "Evo", + "proTxHash": "093c7924743d735ba2f73d6c0dada30babadd8d083fd35106ab31561f850d31a", + "collateralHash": "7590a113bc78456fe3de585fcb13d9b93d5ca350dbbfbd770f53ca15215c84e9", + "collateralIndex": 1, + "collateralAddress": "XbyB5mYW8HZGDxXZUQ9Upmboe3XfHsq1MJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.245.90.255:9999", + "registeredHeight": 1905882, + "lastPaidHeight": 2126449, + "consecutivePayments": 0, + "PoSePenalty": 1920, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvtS3FNjr2hiybVXAPAvXRjt6Mw55u2QKc", + "votingAddress": "XmW5pDhifVQeZwYE1ePskwphejA9j32BS3", + "platformNodeID": "54f2dfed87b54c3ea79902912b74f4c7c3455b6b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsAJy1CN95jBm1gXE1gbY5xKZjZZvA3bYE", + "pubKeyOperator": "9323d954c8ce5744a030356fa68f7c89719fc117ba39859d6ef9335d1f26faf67a1bbbd6718a7004086eb3e3aee4c1e1" + } + }, + { + "type": "Regular", + "proTxHash": "f32b136fc9bdfbcb9bf501eddef7db63db0bc6bb03ebca6dad9652d919a1d474", + "collateralHash": "d45f7db25d4e115b0664fc085fb43d54d4742e0a8dfb7adcc352215afc8c0ab7", + "collateralIndex": 1, + "collateralAddress": "XmmGLAxqSBZD5eGNNf1vqL6FNsG2ezqkLx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.1.49:9999", + "registeredHeight": 1905928, + "lastPaidHeight": 2120428, + "consecutivePayments": 0, + "PoSePenalty": 3831, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120874, + "revocationReason": 0, + "ownerAddress": "XuBxNCz74nXwE78n8Vn1VoH7HMjvnkju2w", + "votingAddress": "Xd2jzBm7d9it2rMxYFL8tFLEbVsXyQzh9S", + "payoutAddress": "Xg1nGWwKZ2RNmVDArXC3nyeAucEQvW3xz9", + "pubKeyOperator": "a5515462067e0b0e512e01ed060c9b0ec54da0275891d7339c5569d0bec5342a35acecbf854f4d1946260250d9fffc59" + } + }, + { + "type": "Evo", + "proTxHash": "9433001cb2722bf6620116044f319e7de70dad888a39368c2e0f9fcd317dbe1d", + "collateralHash": "97f380748f35bf0927517b3a4c2ef3e8ecbb2f52a2adba9aed8354399dcb5c04", + "collateralIndex": 1, + "collateralAddress": "XwamKvEztVNLQoaREhxkSJMpTMcttkbuuL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.247:9999", + "registeredHeight": 1905941, + "lastPaidHeight": 2128832, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2011377, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwg8ufigEHA3YuRmiCDFkk6genexyQ79Bu", + "votingAddress": "XbPKQCyyZqWHMDUhbwusGpNtPkJmudR5vx", + "platformNodeID": "4f82ff1d16e107d9ab2c67bdcff8c23e767f6b05", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b0f996ddfe46f96ac03ae667cd2a4ea41899a6c1387922833924c2246ffd034ead74f72b8e27220bde5d362951f21775" + } + }, + { + "type": "Evo", + "proTxHash": "e3b68ab54c808c5386e34babdc29dcf7a219a426c307eba15196228016e44862", + "collateralHash": "0ec078eb061ac0fb60e3ec37fc02f434ff0de005f7d66eaa611a2d91506eb674", + "collateralIndex": 1, + "collateralAddress": "Xiovjp5a6rty3RQam4AFb1ao4X6FXfSuQu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.212:9999", + "registeredHeight": 1905951, + "lastPaidHeight": 2126066, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978043, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpy6T4pWzdQ9DcBUgqRmAGxCABd5ngnWXE", + "votingAddress": "Xhm3r4xQRmfgti5WFeZkYs3katAg3odSeK", + "platformNodeID": "438bac9b94613f8eafc8a9d5b8dc73ea65afb658", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b0fa253349afdcf35890c8b60844e54619403399704e752dbd202d493fff69a5eb3c24f0ba55d3246d631517d8e4f6fd" + } + }, + { + "type": "Regular", + "proTxHash": "a3327c6f3a5df5eae1611e6ef1b79dcd3509ce6f2b896ef62efbfca9fe820c3a", + "collateralHash": "a3327c6f3a5df5eae1611e6ef1b79dcd3509ce6f2b896ef62efbfca9fe820c3a", + "collateralIndex": 1, + "collateralAddress": "7hoj1nFXVTiQr2CZfyGsWiNGzGc777K88o", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.40.6.80:9999", + "registeredHeight": 1906184, + "lastPaidHeight": 2126037, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2062389, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsvEh6jepMy6eXM45bCyervppxBeKrJEf3", + "votingAddress": "XhGfEXUJKaHeQcHn6vheh8bVyfubJjjwaX", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8945a9557c1777969c4b7b597eb420ae8257756daf072fb6fbcf1a1098593671b910d009750137ba27668b1c6c0cbde6" + } + }, + { + "type": "Regular", + "proTxHash": "f9ff55e218b94f4c9db04e2469731b6c100bc2262dfae5aaddc568cb872a14a1", + "collateralHash": "2d85e31c9b87ba3a46348de206e63167c853f24af73bb7c917f895cec9c12c71", + "collateralIndex": 1, + "collateralAddress": "Xi1m5LkxxMyZVyS9UoK9pv2KhAwrGWrBTm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.205.11:9999", + "registeredHeight": 1906300, + "lastPaidHeight": 2126827, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmAtr3JUxdBfAQ65sgPJaRKHSELEM8mSx4", + "votingAddress": "XiTerpYUbtsuT4CeicDu35TEuTrxjHTpjh", + "payoutAddress": "XmDcSqbyQuWMm39S1pbky9LcD1ngsjzx1a", + "pubKeyOperator": "83340fe8568931b1e51c992dd5b8dd737fc53eb2595519db0df7324cd8e4059d516facb1514ebbdb58067a6f5859780b" + } + }, + { + "type": "Evo", + "proTxHash": "7494ab33759421b6e04e52a664665c55d279a70a06b07b68a6356dda2ea54b81", + "collateralHash": "26884e91650f25d10ea5db7bfcaadbb3287b2c938bed161b1731a3aaf97cbbde", + "collateralIndex": 1, + "collateralAddress": "XwFmpCMWvJ1zmtKR3xSt47jVF3wEPdfVNa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.90.238.161:9999", + "registeredHeight": 1906532, + "lastPaidHeight": 2127042, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxkYcqLgVsoCBnAPhcgze9PnfVCdd2hVvE", + "votingAddress": "Xwb9AKN5rgCs3mnZ2SLuSB4e8wR3uNvVsF", + "platformNodeID": "157f4491a923c8ab3314adb195b3322331c43007", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XeEPRBYEoKMyuqSE3FirYtMtYVC6Eofqy9", + "pubKeyOperator": "9380fef0df25c5b6f1cf2970ce65123e5a60889e4c9779613e3311931458a6834c162e99e8fc49f31dfb93d19a2fc35b" + } + }, + { + "type": "Regular", + "proTxHash": "d2adc2ca369a84e6a9c6ba5da36e53ebbc7ed55954fda3cc9e584014debc55aa", + "collateralHash": "12bba8a6e13f0a960522ef8fab21a7671d5ff6cf6b38db541db44cb466530e82", + "collateralIndex": 1, + "collateralAddress": "XecAk31rYk2HwTYHYGHM5XDh8uBRbwM4iB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.236.39:9999", + "registeredHeight": 1907032, + "lastPaidHeight": 2128658, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2021361, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxWG3CLURZgWiTcEyqRrGsj1FHxtAumGTj", + "votingAddress": "XqmwMnxMfdnVTpin3xLF2xeWUZSL3qfHrx", + "payoutAddress": "Xwk9zKCp7DmAiZA4jZUqekrFbB4jpGPZ7p", + "pubKeyOperator": "86034c656a090d6d1dcd1dbf952eda8f6e52368ae8647ef624ab5e78b921de5ef580d2848ab727b117d3946eb6adca0b" + } + }, + { + "type": "Evo", + "proTxHash": "f1cc3940e4ed45d1ca63491008127a66749efe1be782586a039f36c6e2949c24", + "collateralHash": "1238cc465cd48ebae12a111bb9c45947f7da1660b8123db7f8569961043c9933", + "collateralIndex": 1, + "collateralAddress": "Xxsmdb66wgX3u31jG679cQn3Ceuu1dkYvJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.75.133.148:9999", + "registeredHeight": 1907468, + "lastPaidHeight": 2127985, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxTT7W1Hpm6hRa4gbL1eBpGuUTkH7nKRQA", + "votingAddress": "Xbnpi6E2vgvpmAq1Wq2kcPs8USa8xJ4Pax", + "platformNodeID": "ed91d591060eda45175256129df5a532ceb5bb2c", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xj4tPRr8eKpVyP3Ty4aCnPndDHxbn6ebN3", + "pubKeyOperator": "94d803e303f3f5afbe7bd7d4f76b9b3a400118d53e5dc2a782d80caa91b798cceafad647b3e29e0a56a93369e93ee1b1" + } + }, + { + "type": "Regular", + "proTxHash": "77ef39878f4a399dff2fd2f3e448b6151c7c75ca2e3818607a600409c01d882e", + "collateralHash": "2b3c500c5b248caae2787cde5de5842168bd8d1cb2285761a56a0796d69630c7", + "collateralIndex": 0, + "collateralAddress": "Xgnueis4npKgfDBF8dTCUT5KzuXJRF8oiM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.28.219:9999", + "registeredHeight": 1908056, + "lastPaidHeight": 2112644, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XhWGGZdqUHTvHbYMjizRpt9q4qJGZL2NnK", + "votingAddress": "XasyxHvBR8jUikx1eAzRZ3Njn988HYZzic", + "payoutAddress": "Xgnueis4npKgfDBF8dTCUT5KzuXJRF8oiM", + "pubKeyOperator": "92b00d30ff2b10d2be266de3f1ccefb7b026388979e72a0965bbccd123446d56759d93de207aa2631d6160f90c50da4c" + } + }, + { + "type": "Regular", + "proTxHash": "3939addcbe82e742d08c709869f1f0d1d51d68301947bff2ec83e3d51998e20f", + "collateralHash": "1b3a8c7104451ada22764ac95883ef1f01b64cf3ed898beb0d02caf48e71dc95", + "collateralIndex": 0, + "collateralAddress": "XuCJqhaFoVLXTNXRqEoAU6zEgccUNXpMHC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.241.192.52:9999", + "registeredHeight": 1908058, + "lastPaidHeight": 2112647, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XxLb2m1AKpTSTbZ688TL43EhAdekJ8VQAK", + "votingAddress": "Xy2WzbceYX5VSeogUXXYZt3qCaiPRAyCFG", + "payoutAddress": "XuCJqhaFoVLXTNXRqEoAU6zEgccUNXpMHC", + "pubKeyOperator": "90912265717e5f62fe4a98f52bbc9e13423a2a444c1635247126bdb42d020de5c684e69a3e28cd67efd1c074785306a4" + } + }, + { + "type": "Regular", + "proTxHash": "b68e61a0aafbb089a78fcf8c690e29d8359f9fb0bea14cf1103744fee786d265", + "collateralHash": "9279ca1cea10b188d599c2070b155cd4247153a18ed454a19e7f89eb0a2c4f72", + "collateralIndex": 0, + "collateralAddress": "XbJsggzXbzo2N9Q6MRF67wCh4dNaTt6Fts", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.65.104.239:9999", + "registeredHeight": 1908058, + "lastPaidHeight": 2112649, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XfvzyBzU2acLnUxxaNNuXQ9Cj5QjX9aUGC", + "votingAddress": "XiLMqd7x9pQH84SQsayPuKyULgmfxkjXhd", + "payoutAddress": "XbJsggzXbzo2N9Q6MRF67wCh4dNaTt6Fts", + "pubKeyOperator": "a23694275cb59a5f431def308191ea6d60825f2ad38e32f0f84298b26f44da75f79f5965efe01a9bf094cfbfb22b6ee7" + } + }, + { + "type": "Regular", + "proTxHash": "9f036e3425035010d323f0c9b862363b5c8cbb336e88241798b9f70077546dd5", + "collateralHash": "1ac646f0bc4791b415a8546dea7212df9957c0c2f7214e289727ee8d18bfcac9", + "collateralIndex": 0, + "collateralAddress": "XavYxPG1Ena4q6SyQ4e1VDe39iZy5UTemw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.97.188.90:9999", + "registeredHeight": 1908058, + "lastPaidHeight": 2116087, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XcoVR61UeMgRgf5hTYU4L3orQhu3BfDzJb", + "votingAddress": "Xm55owx8ZgxEjnLaiSzpLMGXDUczcK1MTP", + "payoutAddress": "XavYxPG1Ena4q6SyQ4e1VDe39iZy5UTemw", + "pubKeyOperator": "866104df86b74e8fd9df99af74a73be2df238901120f23a9e514d2566bf98121027c25aa1e9be5855546517fc1eb0da5" + } + }, + { + "type": "Regular", + "proTxHash": "b3c122969132630ca8f48e8ca8fa7712983cfde1bac193f7297ba68539ba3a03", + "collateralHash": "9c6e63845df398f78b16157bc782558917daa4df0e494c756e9bbbb8af69534f", + "collateralIndex": 0, + "collateralAddress": "XgV6vkUa6jjRVUtr4pE1Q2UrZ7sRoBF6Ty", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.248.33.11:9999", + "registeredHeight": 1908059, + "lastPaidHeight": 2116088, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XwQWTa1sxwfMeeySVZrnpcuRzUA78YS9qo", + "votingAddress": "XpkQNdHvgKXo2nJvZJRogt4hv4H3666p6H", + "payoutAddress": "XgV6vkUa6jjRVUtr4pE1Q2UrZ7sRoBF6Ty", + "pubKeyOperator": "96018c4fb23430d6cff84335b7bdb6e210636062321e9ba483a020e762f53b3bf6a538049dce8f18cb77772818703ea4" + } + }, + { + "type": "Regular", + "proTxHash": "15760b8e62173e35e45d42e477ca73dbd3930e11a4100695bbb86396eb5d981a", + "collateralHash": "dd15124be22834df24ede6280c6a9eb66e7fba3dfc73ef07d14f9666c8e35d83", + "collateralIndex": 0, + "collateralAddress": "Xyi3mcPgSNpQtkEtyzefG3pexWBHrUYWbw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "174.138.2.189:9999", + "registeredHeight": 1908059, + "lastPaidHeight": 2112668, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XesYUybg17tGmPjewbQG1Ao2GjevMassas", + "votingAddress": "Xhzt6TThwcum53QFoU7FR4BcVrAnq2qkPX", + "payoutAddress": "Xyi3mcPgSNpQtkEtyzefG3pexWBHrUYWbw", + "pubKeyOperator": "87e30e1c131b8dacca94b832314819e5a9b9d1a6c111990ae54d25f31de56772480d1ab546e50833b2ad690c52db9b29" + } + }, + { + "type": "Regular", + "proTxHash": "553c53d48b266f18415886198d2e0eee2caffa75625a7205840d84b74749fc0f", + "collateralHash": "7a69f54fae7c4db426221f6b8d797b576923c52d4de2f82f3ce131c26cbca25e", + "collateralIndex": 0, + "collateralAddress": "XejsMQLs9Kh5fVpiRctHdkq9JCtrVC1xeu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.72.58:9999", + "registeredHeight": 1908059, + "lastPaidHeight": 2112655, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xm9L3wRgnHUakhU3bgsinr6eCbSi2spwRQ", + "votingAddress": "XfZKk6eT1Ms8rWA5VaqrkEt3V8ySbXXpew", + "payoutAddress": "XejsMQLs9Kh5fVpiRctHdkq9JCtrVC1xeu", + "pubKeyOperator": "b486e1c6a06ba62cdfef6e709f95a050aed2e706dd0451c19f601d167c1bd240bb30a3586f89e90da74e9e69fb4a1080" + } + }, + { + "type": "Regular", + "proTxHash": "2dd77607bc89957ea7a7cc64b04cdab8e2120123869506d56740d0307696879d", + "collateralHash": "0a8ae36f176c727a4d995bc2371eaf4ef7cdb3c739bc5e627d4dd02d4429d48d", + "collateralIndex": 0, + "collateralAddress": "XvZDdFz9oceYVYnkzqedWBFSjWchQa2nBs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.241.160.74:9999", + "registeredHeight": 1908059, + "lastPaidHeight": 2112676, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "Xd5CLSs8zNXedNVMhUV8EQgGUEKmmdqbdW", + "votingAddress": "XiCYDaoXzDEXFUMYEhy7YPh6zwDxkpUz7u", + "payoutAddress": "XvZDdFz9oceYVYnkzqedWBFSjWchQa2nBs", + "pubKeyOperator": "a72d96bc091a457ce4761b54350d7c8cfdb6b2cfbf842e794c5bb53bbe89d06860ff63ab7b60f94e1b666b078435e9e2" + } + }, + { + "type": "Regular", + "proTxHash": "81b79ade9e289d79c577c8e23119cd56189cafdf91fe7800fb32f1dd026b57a2", + "collateralHash": "868036aeb110ca4af2af83f434d593fb8f9f08b6a18f3c3b8859c0c54ffc1c90", + "collateralIndex": 0, + "collateralAddress": "Xbh5Wu5CQVWBDN35HET4caAWT2Jtq4NDVK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.65.4.145:9999", + "registeredHeight": 1908059, + "lastPaidHeight": 2116108, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "Xb2ZqxBz8CzA1Nq3oXneDUgD8SwNtq2mYo", + "votingAddress": "Xkks9PPzqP3W3tdZSf1dpz5L3UvQDWEA9E", + "payoutAddress": "Xbh5Wu5CQVWBDN35HET4caAWT2Jtq4NDVK", + "pubKeyOperator": "9795add5cfdab8e3133b235744357ffb21d3204b99d3e12006a1471718a70f7651e91f2199ce79a16aea9f3413aabebb" + } + }, + { + "type": "Regular", + "proTxHash": "48ca9205ebe4b15ecd379b713c5c069244d06d6b4299f5f49af50660d4423f04", + "collateralHash": "e101589f41287a1947fc2fb6ce7d77ad03fc88bf7c5b571fb9c40ab0955d383f", + "collateralIndex": 0, + "collateralAddress": "XyEJCuEjB8ebzY6bZq4FwqBSa36CgjAn5A", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.62.79:9999", + "registeredHeight": 1908060, + "lastPaidHeight": 2116109, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XdSJ6d3g9nGyJK3nwJiSCnCqq59oxxMsWp", + "votingAddress": "Xv36J5FX8TkuPNYPcYkuEgPUSuzpEnXquc", + "payoutAddress": "XyEJCuEjB8ebzY6bZq4FwqBSa36CgjAn5A", + "pubKeyOperator": "89c61b5f914fa96dfc8051944acc5524efb645202a2cca6f6820fbf678c0753359d763a63068b236e816c1b2194dde6d" + } + }, + { + "type": "Regular", + "proTxHash": "ef2aa80eeae239b6f5fb896627b5ceccaebfb56d338418ac32076dd138da5ffe", + "collateralHash": "d17567de4b1323e65c74d85970b3215751284b70c4f0ab4fdde1fdde78620b9b", + "collateralIndex": 0, + "collateralAddress": "XdyaE6JcegjTs2UsyDDNSjzABvoYLiep5h", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.116.77:9999", + "registeredHeight": 1908061, + "lastPaidHeight": 2112681, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XxXabu38xKUAaQUPhQhFCDYgkp2kT2xJUU", + "votingAddress": "XvoCVahdxKWPBgVE7WGAYegwC3ggD2h4Aw", + "payoutAddress": "XdyaE6JcegjTs2UsyDDNSjzABvoYLiep5h", + "pubKeyOperator": "a9db376208797037a715b1723c91422efcbee7d7621521b7ca1ce16b72d40913f07b4042ee11145a882999135701f664" + } + }, + { + "type": "Regular", + "proTxHash": "6fdb51c2b1a85e2767565e4b62120ed615681754f2cd31808e4d175be518936f", + "collateralHash": "8b82d5366f2d74aa98218d9a302bd9a5eb2f973460336fa34af57d8beb92dee6", + "collateralIndex": 0, + "collateralAddress": "XwedukWG1nP4pxtC9HNaNg8xbboZjzdTxV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.230.40.234:9999", + "registeredHeight": 1908064, + "lastPaidHeight": 2112685, + "consecutivePayments": 0, + "PoSePenalty": 3855, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XvHTssnaptnBFy9kFcfhQtuZGjmN2ebU3f", + "votingAddress": "XdxSoZUwCwkV8dXa9b4AvqU9VBbLNSxkQk", + "payoutAddress": "XwedukWG1nP4pxtC9HNaNg8xbboZjzdTxV", + "pubKeyOperator": "91d1111d1ae522c7d45c88b016708188aed93e4642572025d27ad320c76d23dfb0af0b7999964ab761e3fb70fec5aa59" + } + }, + { + "type": "Regular", + "proTxHash": "3ab159b7c95dd0f0c8094b69aa1a1cda6113d052ed1cd6515ac90c4b838c79b9", + "collateralHash": "2a81d5ccaf386d87f60d5640e2713316a14638f52cb21a617c11b85c89df23f1", + "collateralIndex": 0, + "collateralAddress": "Xm8xNanxKoHvjYts1mog4NBkCN7A8KGZZG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.250.199:9999", + "registeredHeight": 1908065, + "lastPaidHeight": 2112687, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "Xr4Kae8nsTqg6wwaibLBWcqF7XuWrJMMtm", + "votingAddress": "XcJnrGQFbe2S7C6BqrNuYgTHsg2DfAmhNd", + "payoutAddress": "Xm8xNanxKoHvjYts1mog4NBkCN7A8KGZZG", + "pubKeyOperator": "a4db3213493ad207fa642992d2027a4393799d211f5965287dc14b645a37551815fd82b773c3308dd9a85cb482c1fa50" + } + }, + { + "type": "Regular", + "proTxHash": "977520b0b0ab77c33b4cfdff46b688cb6d199f965a25fddd63f77e59f82eb8f2", + "collateralHash": "1c181a63d7f7b9882a9b0bd7ede8681404e28e260cd3feb431c9e3f488cbdc01", + "collateralIndex": 0, + "collateralAddress": "Xrtr7AvYuN874BmPbANLw3xbs65Gy1matV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.106.231:9999", + "registeredHeight": 1908066, + "lastPaidHeight": 2112695, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XeEAo1sby9ZExnxEiiKdoH7cMJw8Q21i6h", + "votingAddress": "Xr59gVMZEbSWrv7GUoApFK5i5XjVKnYuZn", + "payoutAddress": "Xrtr7AvYuN874BmPbANLw3xbs65Gy1matV", + "pubKeyOperator": "b92c2cf8a08a527c1865882097b6d37dc4dff1f898ef9fabb11c87c5340df6e797c265add4ee2a82980b282d1d74ea1f" + } + }, + { + "type": "Regular", + "proTxHash": "dff6cdeebeb061e6a341c99dc57366f3910ec46685f9a84ccdc172391ca14561", + "collateralHash": "16803d4da753205541dda1752a6f7cf29e42a17f387a63e7c946964663bb3209", + "collateralIndex": 0, + "collateralAddress": "Xrv2jzJSa4yoi7RKj79F3M1B1BAnwei11N", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.101.117.46:9999", + "registeredHeight": 1908067, + "lastPaidHeight": 2112699, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XxcfBjUCvqW65gXqUyQ8ZuxW3ZDPJSapgN", + "votingAddress": "XkWe7XuM15Q6Dw1c1yuqiP6hMou8Cv7rQU", + "payoutAddress": "Xrv2jzJSa4yoi7RKj79F3M1B1BAnwei11N", + "pubKeyOperator": "a480c0e83e3a5f32675064234d0d739bfca6f7bda70fc2c37d4cd7a9cc97e54a903a1eb5876e4c37f89ea4b993abcc58" + } + }, + { + "type": "Regular", + "proTxHash": "5a99f63c5f5c4009acec231ab2e97749091d3dc4c169687d8dc2441bd3cb665a", + "collateralHash": "f384899fe4fc5f3c40a7c2c34d11d9b7eb18aeb7ac13505c477eb0c6949a0e96", + "collateralIndex": 0, + "collateralAddress": "XxG5ud6J2FJnR4fncFdpRJxkZ14x39y1wE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.159.55:9999", + "registeredHeight": 1908069, + "lastPaidHeight": 2112701, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XbhZeGfJZSNvvbnK4SGePM5VfLDEtuuFJv", + "votingAddress": "Xmd3nGRwuatzgziruP4wXYcseZftCsshLJ", + "payoutAddress": "XxG5ud6J2FJnR4fncFdpRJxkZ14x39y1wE", + "pubKeyOperator": "882190cfc0f16242bd4afac5fc2fe2cf3147cda786f78c613994dea88d9daaeb27b09c4132c48b7658ccce16ceabaef2" + } + }, + { + "type": "Regular", + "proTxHash": "fe1c9c75dd7c080c7a7619ece0d1fb065b2e2448d57c82792c4f423660669878", + "collateralHash": "ce099b3633a873b2fffbbf6dc73b211967ba7a47e09fbfcdfb0dd90c237c0f43", + "collateralIndex": 0, + "collateralAddress": "XcXYgdXa2gp8XaMH8WkkcTWSN7575xpjna", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.158.8:9999", + "registeredHeight": 1908069, + "lastPaidHeight": 2112707, + "consecutivePayments": 0, + "PoSePenalty": 3855, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XfTehPaoZQtxZwHv7hEiGRUJKPED2122nN", + "votingAddress": "XpHhDVzfVWkRTCNqmHGKya69UrJaKDAoUz", + "payoutAddress": "XcXYgdXa2gp8XaMH8WkkcTWSN7575xpjna", + "pubKeyOperator": "8a8dcf803dbe42047ec579110105050d1f4b84f72680727e87433273fbcb3b733bd1b89e3dd2461890ee6a8e9aa74c24" + } + }, + { + "type": "Regular", + "proTxHash": "c51ac2f87376419604dac9b66289e4a2d7b5ac37905167f4fe5d3a7a865d1de3", + "collateralHash": "6a5840bac242201039f7b534fc3bef9160ee8dff175ad4fcb37f273a66dda1dc", + "collateralIndex": 0, + "collateralAddress": "Xn9E1K74ddYmvRiFhgJ8DioLJxVbJocRcM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.139.15.111:9999", + "registeredHeight": 1908070, + "lastPaidHeight": 2112709, + "consecutivePayments": 0, + "PoSePenalty": 3855, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xy8Rkm7i5VP3SQFe6BSyReBRP1UNZDfBnA", + "votingAddress": "XxRtPhNELVi1F3B2FoEZpsACcNsEjYYUxu", + "payoutAddress": "Xn9E1K74ddYmvRiFhgJ8DioLJxVbJocRcM", + "pubKeyOperator": "a678cbebdf860ea5d51b53b0ef5f9d7f5a43b5a4e3abca91203042585380420dddba8f3dc3eb45e715327561fefcbaa5" + } + }, + { + "type": "Regular", + "proTxHash": "b78f34453e5c99482691566142aafafa13a82e447e32ebefc7ee8a842c5f407c", + "collateralHash": "11f83c84878036f373a80a33374ad25563401c51c00ebad8d14b4111924aca48", + "collateralIndex": 0, + "collateralAddress": "XjXkvNL8MZnRh9CYgmnwcvGn9av5VXv3sc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.253.22:9999", + "registeredHeight": 1908072, + "lastPaidHeight": 2112712, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XuLxbDbscVUX2baLF5yDPiUr3KeKFL7uzV", + "votingAddress": "Xv4GMnJYzaGbtUhFcRjjkLpgsWXrZsVsGU", + "payoutAddress": "XjXkvNL8MZnRh9CYgmnwcvGn9av5VXv3sc", + "pubKeyOperator": "b42e23691cd72043aec47d23af5b3d8ff7721278c5384404444fb20df020af5a5c7b57d5d00c14e26a70f93a870ffedc" + } + }, + { + "type": "Regular", + "proTxHash": "66cd6dc20e3f4b85faae07a290a2fa8cce599e5de4e5450e8d4366b5ca492028", + "collateralHash": "f17d1275b4959566aaadde009f3dc2f6d41f952a9e099719f0989207e5674c5b", + "collateralIndex": 0, + "collateralAddress": "XwcGEX5bRJAHcWahseTt6CZMLFsTvg3Qyq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.101.187.72:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112714, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2114826, + "revocationReason": 0, + "ownerAddress": "Xd8bDysGYg6MtC1e1sGzzZc8vgACh8pZLj", + "votingAddress": "XgBLexcQcR4i4p2uBNRjV7uJWhnxi3HiTg", + "payoutAddress": "XwcGEX5bRJAHcWahseTt6CZMLFsTvg3Qyq", + "pubKeyOperator": "b879e97389b62a23cc7107bb78de4607b68651143d7998ab3627e4808b61c714b97bfc99f02652f3c95b6894256ac049" + } + }, + { + "type": "Regular", + "proTxHash": "229e38ba785b679e39c80af8787ca1c7efe0d9738322d72cbd4f09119cde069b", + "collateralHash": "f5943a1cd0f2a66b0477ad1c5c89e737b978cda9ae292446f171c0a8544ab4d5", + "collateralIndex": 0, + "collateralAddress": "XibiJY872ukZn1sATEY1pyJtTeqPkGNBqq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.154.254.43:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112723, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XjcjPd35Rposb7DJevX13JGWgeH44m1FrL", + "votingAddress": "XiuavtqbYwVzvTKXPYYnRyKkbGn4QWZxeW", + "payoutAddress": "XibiJY872ukZn1sATEY1pyJtTeqPkGNBqq", + "pubKeyOperator": "a9c506a6c2afd38a9d3ddd76d0419893327426dece9e246e1d22c4ed91f5c8b28e16f6fbdc5aed46083ea4a1f42f8350" + } + }, + { + "type": "Regular", + "proTxHash": "7058fdd8c004c30cd0fff7b2a75dd41c6f77fec5c5afa6f0a2fc4899321b664d", + "collateralHash": "5331982ce88c413339677a47b2de6d9d9d129fb75951bd71a1bbf21b1f54d02f", + "collateralIndex": 0, + "collateralAddress": "Xk7uGAF5YsiCMod98Bvu8ZEeh1CrhB3n4k", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.199.112.85:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112721, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xuip971pVtHesSQPbc1Ktb3dxPQwP82K59", + "votingAddress": "XpQa4P4khrpGU24NVZuULkDD8oQUqkfBe9", + "payoutAddress": "Xk7uGAF5YsiCMod98Bvu8ZEeh1CrhB3n4k", + "pubKeyOperator": "a6955567e2a83aebb6b09f52d1996bfe8666051ce30638135afd7a0ab8bb6239e6e185ba8a654eb3cf4ede3ec7ce9509" + } + }, + { + "type": "Regular", + "proTxHash": "5bf21e88eaa67d87faef1bd516010844e500537112c03a381acdb4de0a4183fe", + "collateralHash": "d4f4ecd772f10039ef85d5a24499c36d01deff71cab7d1e09f42464e741c42de", + "collateralIndex": 0, + "collateralAddress": "Xgz5dtNCCDTUu1dzvgxQpzdg7ZRytEuzfT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.156.58:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112726, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xtdv9sDfd196zLnyChVgWWWnmMA5J7dNDf", + "votingAddress": "XjVxAH1UHoyVGEddDsqTvdo7JDDnpV7xvC", + "payoutAddress": "Xgz5dtNCCDTUu1dzvgxQpzdg7ZRytEuzfT", + "pubKeyOperator": "adb8c74641aa647b56c828925faf306607b817f811f73f4cd8675066e2b6c2931cbf7d3f4b445c2bca20c7f0c7cd33d7" + } + }, + { + "type": "Regular", + "proTxHash": "70e6875cb94107e7956dcfa22cced6d93d8652b1b8ca5630747bfdf92f3c493c", + "collateralHash": "cde4da62e1690b6769198c6a9d4ee9ffc1a70f77da9c8cae79a3146231a18309", + "collateralIndex": 0, + "collateralAddress": "XtMmN12zEVgeaRYiJJC6dQEqbMmgPVUvAZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.139.18.180:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112720, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XvoRdeuzwNzdUQ6KKhkz2WF4mN5Q2kMBkf", + "votingAddress": "Xs1thLtmW6RetS9SFJycPVTJK5KfUCQad3", + "payoutAddress": "XtMmN12zEVgeaRYiJJC6dQEqbMmgPVUvAZ", + "pubKeyOperator": "ad9dd9350bb5bd031c75d97457ddb185881c156a8f1674e29ec419dfb6f24d2cd1a18ffb82f1969f6b13db41f1041f07" + } + }, + { + "type": "Regular", + "proTxHash": "7c2fc2a772a666c38f69fb2ad01e091680fc5d6058799508c75f1d5d017a7fac", + "collateralHash": "d9138f7141e6fcf100e15f7550d213f94142a3324ad6f9d0bebcb07852094aba", + "collateralIndex": 0, + "collateralAddress": "XdW46DzBunXTix3Ng1jZ62JC9vTXg5FTZn", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.98.146:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2116134, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "XvqGJfX8SCMmU4PssXGd7E4Sw5RLs6dKsn", + "votingAddress": "XiUF5ovwzGnBrtHsgPcbwafSatt1r9h1wN", + "payoutAddress": "XdW46DzBunXTix3Ng1jZ62JC9vTXg5FTZn", + "pubKeyOperator": "b1a23ef1992c6b96dcd19cd1f574221a1f9a42a3d393ed7c3fbec8b140546c72d595918d330fe79ec0c225975e6aa692" + } + }, + { + "type": "Regular", + "proTxHash": "60583d09d94eb33cc0482591cb461c1c5780d7c22c1906ad0b3ca50ef144aae5", + "collateralHash": "5c221cb7c785abbd1ed6274f0e9b6977690cb31efe83a1c4686896c511d0f72d", + "collateralIndex": 0, + "collateralAddress": "XkhfShv5rbrrRmca66Hxi64q9yxDjWzK58", + "operatorReward": 0, + "state": { + "version": 2, + "service": "162.243.4.195:9999", + "registeredHeight": 1908075, + "lastPaidHeight": 2112725, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XhWU1raYAJfSUqZCiWHyF5pK9Y6WLSpZoe", + "votingAddress": "XoNVXeLxqYiNXtQHXiA8d12hWm9KAXuBNX", + "payoutAddress": "XkhfShv5rbrrRmca66Hxi64q9yxDjWzK58", + "pubKeyOperator": "b40f0e7f829ade52cdad5191d9b56861f5b5a9d2cbf6f5f268e7bcc74d165f386cd4ab423506f46aa9da2168424638b7" + } + }, + { + "type": "Regular", + "proTxHash": "6148067761525cd59473a9e515eb2fa4eb3f68df949a537159ab0133eff087ee", + "collateralHash": "8f9263f770e4bd5d2a1efbe5a8e1af4a2677446c7818f75283433a3d100ffb8a", + "collateralIndex": 0, + "collateralAddress": "XqJBAkKP2wphJtkjAzbHe7uaeWLHeN6kA1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.236.218.48:9999", + "registeredHeight": 1908078, + "lastPaidHeight": 2112728, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xq9rTdNjVkKRJXH41EUTutnCDcHH5dxQj8", + "votingAddress": "XkFr3rsHCwEx1hhhygfymdNbnsZS5TQpDu", + "payoutAddress": "XqJBAkKP2wphJtkjAzbHe7uaeWLHeN6kA1", + "pubKeyOperator": "b3b1a5eb0d011aad1a0714c5c6957127bc53c7a9cee252a858afb5380fc08c27e76592fda216674f40e3acec8256dc93" + } + }, + { + "type": "Regular", + "proTxHash": "922d19605e79c514904d41e22d5b88a4dd7d5eed3b689735072c9b41feb359e5", + "collateralHash": "1870ef1fe08154d497b16cb0f0d55a0180598b5e5b7ba40ccd97a9efb636f280", + "collateralIndex": 0, + "collateralAddress": "Xd9G6Sd1q5tjTc1ZP28Haw6pi3kSjJhYFe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "107.170.248.57:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2112737, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xi7TiAriuCYgAZAyRaUPpG3cwQZiRSrao7", + "votingAddress": "XxmPURfea3Uwx7TUZkrTRbgwWNwDfXe42H", + "payoutAddress": "Xd9G6Sd1q5tjTc1ZP28Haw6pi3kSjJhYFe", + "pubKeyOperator": "a6a1161413692c2fb70839efe57862c5d3e7bc85694c1edbaab13779c5fc05204561473d916e50ba75a89b2093b49b4e" + } + }, + { + "type": "Regular", + "proTxHash": "4407087767e00039292fe6ecd4af66d94c4b8439a55682d11403b81615f3d818", + "collateralHash": "5737b1b98803252fdb0c1d82ad382dd7cd321440fc2f461477f92743da39f29a", + "collateralIndex": 0, + "collateralAddress": "Xo5Z7sT1u4EEDxPQaXQuco3FV1AX9DfhaP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.101.188.248:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2116136, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117706, + "revocationReason": 0, + "ownerAddress": "XpY1LRzb2nhnMjnTiafagMFQdHMLrhgRsJ", + "votingAddress": "XhA6XS6S9QR6iz2j6vnEQFQ1ud7hjfa2v8", + "payoutAddress": "Xo5Z7sT1u4EEDxPQaXQuco3FV1AX9DfhaP", + "pubKeyOperator": "a92e073119bf7a23a7a5a77c74a441795735f2376c1b650fdc5ea87b31623561d918ab18371d1562ec809747a0313536" + } + }, + { + "type": "Regular", + "proTxHash": "707ef0fc0dc6136dd83444404199415410d9413d8e2db38b5a6b564ddcde7227", + "collateralHash": "ac89cfa0ec775efc855fb6f2251bf679dd7d8dd140535b5389fe72a595a7cb4b", + "collateralIndex": 0, + "collateralAddress": "XvJYyFXcvnJj4s9oJdexJwt1RhR21tMLtV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.190.73:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2112730, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XtEe1q8PuMoVukTnwqWD3XZhphnpPKakVu", + "votingAddress": "XoBYY3NtrLuqjy1HzUtNeCoshqWQfdYVbC", + "payoutAddress": "XvJYyFXcvnJj4s9oJdexJwt1RhR21tMLtV", + "pubKeyOperator": "b6de64a519aed356baf343ce4eb9bcabe71a480e5234a6289f351c53393975a19b204442d5ca9336683be9e215418cf9" + } + }, + { + "type": "Regular", + "proTxHash": "c26a52045b291ae3991bf08876706dac553abc4329db63cb519f5d8c6690ee83", + "collateralHash": "55a86172d9954fe3a91a10687ea7f61b45d8ebbab8373aa272741df32e076e9f", + "collateralIndex": 0, + "collateralAddress": "XkMDNbRNZysiYpHb7pFPUAgfqY6GZYYytb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.35.98:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2116139, + "consecutivePayments": 0, + "PoSePenalty": 3838, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119146, + "revocationReason": 0, + "ownerAddress": "XrXAGJsoX6bcfiRF11iXbYb8dbyFATGsZV", + "votingAddress": "XpRAmxdA7ESRmybDhR3BQjMjpTCEffKMAf", + "payoutAddress": "XkMDNbRNZysiYpHb7pFPUAgfqY6GZYYytb", + "pubKeyOperator": "b0e97a583100f6613f5a21f72561c852b965586a6645d76a7b3d8582c914b7f061ddaaa0979889229b5166ce2bc224b8" + } + }, + { + "type": "Regular", + "proTxHash": "19e671ef2ddcb6f75181237ae9523663fd1685c33bfe41cf9e71400d29c00c6a", + "collateralHash": "4fd8b7b497fa122a1c9ace8b33db9fae6ffeda3b3fe5d28a9c26dafcf3c0ec2e", + "collateralIndex": 0, + "collateralAddress": "Xe7drEQ2LUbTwUv7S6n1b6jgWUo4RiZFbp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.199.26:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2112732, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XvpdjfBxynkf7q74WpFWM4hcQUJ6iGY7sH", + "votingAddress": "XxADKcKZd3ehuVFYxadW9jCDU1SW92brcu", + "payoutAddress": "Xe7drEQ2LUbTwUv7S6n1b6jgWUo4RiZFbp", + "pubKeyOperator": "a1ad85040e6e7ccd48a4d7d362864da3d97bca1d9e8d1561232adbe9f21d11c60be490d12560f289e86fc313175800c6" + } + }, + { + "type": "Regular", + "proTxHash": "df96b141140a4d0c26ceeba56696fc5cc2488ea159463955cfb9dad8c9c369a6", + "collateralHash": "5602132516b323e0aa5644cb9816f733938e4f50d017e8f633a7067d7456bfc2", + "collateralIndex": 0, + "collateralAddress": "XaqwPuYYpuNZYSigi8DWf9b1EAS2kFFKiV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.146.246:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2112735, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XdYwbgkqbRV4uAY1AchuDUaB5kG3w61TAY", + "votingAddress": "XgVeztsDd7DeQP7ceEisQRkTWzHETDNLT8", + "payoutAddress": "XaqwPuYYpuNZYSigi8DWf9b1EAS2kFFKiV", + "pubKeyOperator": "b97ea2d72c34cb18fff8bc909bbc8c0dfb3f6e0bf18a4765e4ebb75fbc28cc9cc8a69a4d7c8aac1b32cf229a80bd0359" + } + }, + { + "type": "Regular", + "proTxHash": "e218559740e70fe5b57ee9b3f33e8edb2b7c29a158bf61cd41cf0f446171b17d", + "collateralHash": "45132261a8d23be6ce78d5139919af8d4c1243e0a37e8dfc12a1c35d4b45bfe7", + "collateralIndex": 0, + "collateralAddress": "XpHyR3mtNTgALn6XBHE7A3vPhVAVkg1dcj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.68.160.102:9999", + "registeredHeight": 1908079, + "lastPaidHeight": 2116138, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "Xwdq2rwMy3QjqxjGgAzYdcjmeCWd6R7Qv3", + "votingAddress": "XqatCN9DnkvMqSE3xmebyHEt34DdPfNs4A", + "payoutAddress": "XpHyR3mtNTgALn6XBHE7A3vPhVAVkg1dcj", + "pubKeyOperator": "a71db11acdb90986a04c94b192178f8112c1eb4483677059cc5a6925e34e18869faa03e2667c6fb31e988854abe7dc45" + } + }, + { + "type": "Regular", + "proTxHash": "64a3dc3f65b3ca78fb8b4ec6c82cfd99ec520392248ad7200abf260b67923cc9", + "collateralHash": "96afadb2f6a1f63baa77f89736c87676754651b594051bc01155a60528c56a62", + "collateralIndex": 0, + "collateralAddress": "XbLQi4M11ASeCJaAmmHK324HKTHaF2yz1v", + "operatorReward": 0, + "state": { + "version": 2, + "service": "142.93.173.242:9999", + "registeredHeight": 1908080, + "lastPaidHeight": 2119320, + "consecutivePayments": 0, + "PoSePenalty": 3837, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119722, + "revocationReason": 0, + "ownerAddress": "XmLFLfFn2aStw87K5FsnpdVAwkant32LMy", + "votingAddress": "XtXjj6Gg75iA42SKnW6aXi3qVT1o9cx3Y7", + "payoutAddress": "XbLQi4M11ASeCJaAmmHK324HKTHaF2yz1v", + "pubKeyOperator": "b4a877669021d2d4da0f930341691839d98db59e1ba5b038dcf461f441bec15aec99cff2c23a046185f0a720f2f4c571" + } + }, + { + "type": "Regular", + "proTxHash": "2eef564aaebf3e6aef42ab03b0190afdd0c3b5e68ce1db05837e290ba8235d3b", + "collateralHash": "71b27c59fe6c1ec49087a0442139667e3c8883590a6fb8d762fd4278b7dcdf27", + "collateralIndex": 0, + "collateralAddress": "XwdxdzxGZ9T3bZ8oVQj3AXVugvQnU7YHy4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.200.174:9999", + "registeredHeight": 1908080, + "lastPaidHeight": 2112739, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XttLbb8Ruv8MPCeVxfhdBRitJbbFcVmCeZ", + "votingAddress": "XosgcrzFiNYt2KJynkuCTssXSoB8Hdh3e1", + "payoutAddress": "XwdxdzxGZ9T3bZ8oVQj3AXVugvQnU7YHy4", + "pubKeyOperator": "a65210d5bbf4aa0f45415065d06ebaae89dfb6344867312bcc69679bf17a6038d7502287c91e2855cda868ce07142109" + } + }, + { + "type": "Regular", + "proTxHash": "279478340dc02beadec93a2c5da48e33ca3a2f5c14ae92ac8eb74216e02306f5", + "collateralHash": "06a896d37ed8775c354510747e4b9061189fddcb6e7aeea4381cf7dc726841d8", + "collateralIndex": 0, + "collateralAddress": "XaqZmz67BwrTTVuHdFeuf8rZYCmzSaYbAb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.211.127.203:9999", + "registeredHeight": 1908081, + "lastPaidHeight": 2112743, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XpcfdTTr7jVnR9AywAUJAxdzMcsrYUHUZP", + "votingAddress": "Xpch6ttRFH9togNeK6SF14tZnCivKWLKvm", + "payoutAddress": "XaqZmz67BwrTTVuHdFeuf8rZYCmzSaYbAb", + "pubKeyOperator": "ae715c945719baca4c7cad63124c05c639a9d2ed189d925ad76eae09111da6b9de7a3dfb9b36143304b1e251c18692f9" + } + }, + { + "type": "Regular", + "proTxHash": "c3f6ffedca62ea0f19c0c3331e6b9c3a2289e0fd8193d0900c6061565ad44ace", + "collateralHash": "bb22a0d3923cccbabb39faa556ad3f15254b239b524a2400d29a22a954047754", + "collateralIndex": 0, + "collateralAddress": "XsHfTAHgH63eyXizUrriQiathCL7EAMUSB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.230.118.132:9999", + "registeredHeight": 1908081, + "lastPaidHeight": 2112741, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XbRLS4kwWfKQGRsyNaBTmfmXqPBKzXVFJf", + "votingAddress": "Xd7Znjps4HiszZLeD7mjqnofszQH6v6R8q", + "payoutAddress": "XsHfTAHgH63eyXizUrriQiathCL7EAMUSB", + "pubKeyOperator": "a244d8da185a3aee08b65c59de0acb28b1e959229fb7500b41ee6bc4afb4d4d82807b04cf4f82ce35500509b7e2380d9" + } + }, + { + "type": "Regular", + "proTxHash": "e48bae7a29ccca2cca631206fe79dc083ac941d7030d16eea6c3dd4d030a0bb4", + "collateralHash": "b3c5cbbeb99d1c410638b0bc0a1e62dcef55acc4df4ce56678568277bca94f3c", + "collateralIndex": 0, + "collateralAddress": "XrLKEng13UBJE3Lk9CWPrCDL5G9CGmZCDq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.226.32:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112759, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "Xhj9qrdAijEiWNSmf665Ryj7D1zd1yCJMC", + "votingAddress": "XgwdrZT6pVBKhqntRfhp6dRMCTG6bCV8BB", + "payoutAddress": "XrLKEng13UBJE3Lk9CWPrCDL5G9CGmZCDq", + "pubKeyOperator": "b6716c4ac684a18868659c72d3824d938848115c1b9ed6aa1d3f3dc808c6de1460de5563320b331c6d2a2ed87d905f88" + } + }, + { + "type": "Regular", + "proTxHash": "aa91dbd15ea916223d3e3e8d149ab2526949121012771ef9db3e2aecf2591c6b", + "collateralHash": "7151a514a883b7dd3237be66c9dc1a4932fa424fefbee23c15c9a7fb2e16d0c1", + "collateralIndex": 0, + "collateralAddress": "XprHtobwRrJ8TbV1MSuoqedfokqNfoKxAu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.211.122.19:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112756, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XqV72u9WbPb6bff4p5RWDpryEoVtdxsevK", + "votingAddress": "XvT4Jhc52D6jHL9G1ktiavGFTV58cFR7kJ", + "payoutAddress": "XprHtobwRrJ8TbV1MSuoqedfokqNfoKxAu", + "pubKeyOperator": "aac6d5a609fc84a41fde1c18907b354d2ab740e6ce5998b93f5b1ad99a836edf6a31da3267025b2157de01b57a26965a" + } + }, + { + "type": "Regular", + "proTxHash": "5db21a305cdf8f5e9b6166360bedcbc56abdfd871a1c42cdbc4cf6f07499990b", + "collateralHash": "4e6b58a77936d526336f2437429f0c4538fcfa9687185da26302c703d3e75ebd", + "collateralIndex": 0, + "collateralAddress": "XdUWF5HnhgkVRzMEVuR8HEzaAcsJVqJYY3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.198.94:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2116144, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117418, + "revocationReason": 0, + "ownerAddress": "XuEdNirKXLngLfjayjnkEE96ryV3W73ojm", + "votingAddress": "XtW8NSSXN1NjH8xEGjVBRjue6HV6Nyj7Lm", + "payoutAddress": "XdUWF5HnhgkVRzMEVuR8HEzaAcsJVqJYY3", + "pubKeyOperator": "b0c5a0f5068a5b7d2abe9ebb09a814b7f380662d2d62dcb6c87bec70570188f55fa7b9d8ee938517532fa59e24b84dbf" + } + }, + { + "type": "Regular", + "proTxHash": "1550dae73a70147d55f9ff9c0bcfef60f3e84b1d0b5f81c348b97111704f00b9", + "collateralHash": "942a0a4b3cd5172ff6711d2c5e8c5b2a202a02c983e54a9bd1579017565d2a35", + "collateralIndex": 0, + "collateralAddress": "Xfu7ZEkhCVdU5JAFuGeYMZ6v9Z5wKfWYXp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.207.156:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112760, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XdV272igfWcgz86r4up5h7SWKFmBEA57E6", + "votingAddress": "XmknuWDx5q5dSbhNYM9KvYVc2jV7k5iy74", + "payoutAddress": "Xfu7ZEkhCVdU5JAFuGeYMZ6v9Z5wKfWYXp", + "pubKeyOperator": "ab8051ea0e483425397101c129a7caaab8ca713c0fb6928ac166243aa3f1aa09254aaeff2a04ebc83c64a8e6e5708709" + } + }, + { + "type": "Regular", + "proTxHash": "d89d0f172e185764175d43fee76284467aea868a8d0a0d056751e19950ae1b4b", + "collateralHash": "a9b487ec7cfd03a02bd75dbd4a7b4da8f47ba8f93c3fa9de0dfa0522b00ed4e2", + "collateralIndex": 0, + "collateralAddress": "XmDbBSjKzwRgPhexXQuJpLpi1L3ouiumcU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.161.236:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112754, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XqajK2YcE8NaGnTcwyp1jbPkYya7eUi2jZ", + "votingAddress": "XiMBZNi3FJ69BcjLULTm97FU99xx9pNBDn", + "payoutAddress": "XmDbBSjKzwRgPhexXQuJpLpi1L3ouiumcU", + "pubKeyOperator": "ac553d845b75f488204766164c2f1ac0e92d319956719942340d1a2d3343b44b957a12d717d16e171186910c09887ae2" + } + }, + { + "type": "Regular", + "proTxHash": "7d6eab097edba4e752fafc3714f220af02e811783ba7c450eed2aa10f92ccef0", + "collateralHash": "a433a88e8db7ac37d91bcc23bb08bd96426ecf141621636700a38d5d1da032b2", + "collateralIndex": 0, + "collateralAddress": "XxoHhU6JG3k4e7aSjXPts8GL76BTnkops3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.68.131.203:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112772, + "consecutivePayments": 0, + "PoSePenalty": 3855, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XpBvmjdGpgiVw6MY3RCbWo5y2MCKBRMuFJ", + "votingAddress": "XfutoEEv7ufr5xhDGxoBWBX81KRykjdzMM", + "payoutAddress": "XxoHhU6JG3k4e7aSjXPts8GL76BTnkops3", + "pubKeyOperator": "b44e1cd8ea17b47137f94260f41dcc61a6b40028d0e7050830e430d4e3b3390ed2618587fcfeb130c2cc8e347b5bb8cc" + } + }, + { + "type": "Regular", + "proTxHash": "ef9d159c853509cc4e9961e0bceeb3b28518bf51d4d5b5c2c06695b434c2bd3f", + "collateralHash": "e57850a559f2a96c2753f2e5b93f69b5d9ccc5306e1aa95f2d03595e72c9c640", + "collateralIndex": 0, + "collateralAddress": "XiBt6zWxXYesS76exF6hhtCNquiQ6wf2xQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.199.104.246:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112751, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XmoioHknfyjdfMSe39cvviagwqUZTJWu3q", + "votingAddress": "XnTc3DUEsnU6uBwDQUQkYUzkvKbqWHujys", + "payoutAddress": "XiBt6zWxXYesS76exF6hhtCNquiQ6wf2xQ", + "pubKeyOperator": "b92a393f890ca1231283498d959e9a6a6525b2ce941bf511793466f3a3805d7a773390a23f64ce2fb6529ccbed0eb1d4" + } + }, + { + "type": "Regular", + "proTxHash": "ed0b7c27a24923b05f002f5fb6b299789dbe29794d3639ae3b3c74740bc214d4", + "collateralHash": "ce5950dc0a2bb301c223711805bf67586e977adc3bd721d4ce2c93a1d99f63f3", + "collateralIndex": 0, + "collateralAddress": "XkN2C5X8WeD8voHrJpL2TPQM8S2R6Btaqq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.211.171:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112766, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2114826, + "revocationReason": 0, + "ownerAddress": "XwdGqNBvx4fvydXwcvoqixfNyUGaJRnUw1", + "votingAddress": "Xvi94c6fufmHMFD5xv7SFp7Vf7uiCwfS2M", + "payoutAddress": "XkN2C5X8WeD8voHrJpL2TPQM8S2R6Btaqq", + "pubKeyOperator": "aaf99b4c7bb349ddaad19d12b71102f985526a48c4cbf51653f259355925813ba2d20cabf5e0b23063b86f484b21827d" + } + }, + { + "type": "Regular", + "proTxHash": "ecfcc1ffca0b366caa6d7bc6c43e3a980da303f2cc5f35ff80b862811e7366d5", + "collateralHash": "9f539c4b802d7ec7a49cd65da54e617eb37a73a258301ee44467eb16dcd37ef2", + "collateralIndex": 0, + "collateralAddress": "XvwD1uwvqN6oVGSV26iYA71nxrEcGadyab", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.29.238:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2116157, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "Xan6hCyGJ4ujJkznx5dygbD4hugb2Z12sw", + "votingAddress": "XrZzLUKGwgiSEH9e8qbko3SJF1dt2BXSJm", + "payoutAddress": "XvwD1uwvqN6oVGSV26iYA71nxrEcGadyab", + "pubKeyOperator": "b7124ee19a2f7e46ea82452d5b6acb83ba6058252b498c3d88da01a911ac6a27f5dfe95ac7295df71b3fcf718b12e5d6" + } + }, + { + "type": "Regular", + "proTxHash": "de9df1a71c951589c645b9697dc9635f075b96bba4d94f0a7b5b251bfda3ce74", + "collateralHash": "6f82a9ab0c2a72e159efb8d1bdf5de30ae1dfbe71eb652f45b99391539709ba5", + "collateralIndex": 0, + "collateralAddress": "Xim1Ddt99JqSzpcvza68K2Gz53LnSimuQV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.143.118:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2116151, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "Xhx2LvHEmJsNR42QYUcGUPFrmW5NcyDhtz", + "votingAddress": "XeGN4MBa7R68PyttStjmHmk29KeG6k46cy", + "payoutAddress": "Xim1Ddt99JqSzpcvza68K2Gz53LnSimuQV", + "pubKeyOperator": "aecdd34f7bc28063f9769fcc5bcb1b817db01dfb4660abd0f8539b463623036b66c7eeeb10236b9847eda09e732cfa1e" + } + }, + { + "type": "Regular", + "proTxHash": "ea1cba31a4fc16cf2b3cd9293a25e5294c4a2a0b8228276b03587ffd85712f2d", + "collateralHash": "9e48fa490e934b5d2c976941d8ba4d5f9d8fca3dbf637007fd746f51ecd319a8", + "collateralIndex": 0, + "collateralAddress": "XxL2LDEpV8mS6W9XBBB3EUEG8iFJkm5NLd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.230.36.164:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112747, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xiyfu2bj9NB3pMezkwMs4KSRVtyJ4fCL1f", + "votingAddress": "XvH4d5TF56sGrHPr48cDdxddJfJbvMeCUC", + "payoutAddress": "XxL2LDEpV8mS6W9XBBB3EUEG8iFJkm5NLd", + "pubKeyOperator": "a0f6224216cd841b2e9d00fa7500a8b2117d16c605cae6c5b500019902928cdfb0c41032a6737dfe4a2a87f9e3cd48a2" + } + }, + { + "type": "Regular", + "proTxHash": "d399dfb7977073b566693787233205bf680708ea0b15721dadb065bf1b467a3c", + "collateralHash": "009f80415e567ddc577e95dd71a2e021ac97ff744d305b8defeb32905fa090bf", + "collateralIndex": 0, + "collateralAddress": "XraMui4tBaAwqva4wbouUeLiRyHZqFDp44", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.99.183.140:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112748, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XcuG8j9j5vL45sLg3VD6DJGfSvHjELq7R1", + "votingAddress": "XoFRVjhvoJ89dicvPAXRa47HmuKq9fzFfX", + "payoutAddress": "XraMui4tBaAwqva4wbouUeLiRyHZqFDp44", + "pubKeyOperator": "ab60a43c0e02e3a617e276d126bf574614342af4bbb173738a90d587eb27e824d252f03b4d85eb93f1dbdf01eaa8ad88" + } + }, + { + "type": "Regular", + "proTxHash": "b1252bfc1a4851bbd2694ce4e43a4eca65779949a2e8feb43d3b3042c85c51d2", + "collateralHash": "893dfbf8d7b7af06c7a528a2c8d22e124a9c23e26ffac294d95b1f96df7e8e0b", + "collateralIndex": 0, + "collateralAddress": "Xxz1qmeg6Re2u9UJjpysqBW9LpFivk9rEh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "162.243.136.143:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112764, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XjVLVUFHWkTPjMEq1PUPzNowJ9as7jYrrU", + "votingAddress": "XjvdRXT9WJKLLB7FuLhbNoTSDgsdg4GqNY", + "payoutAddress": "Xxz1qmeg6Re2u9UJjpysqBW9LpFivk9rEh", + "pubKeyOperator": "b704299760f1ad54605d643fcf8038b9eb4313314311aafe97338744050dd979d5999248f70b592905d2f243549ab1dd" + } + }, + { + "type": "Regular", + "proTxHash": "dfb6e609c42cf9f97a3b55d8b1569f6e7b93e8589b8c0ff571d8567a121ae943", + "collateralHash": "05e7c57079eb8aa3f18e88b2f6f761c53f8cec38bcc0a2987fefff22df5f803f", + "collateralIndex": 0, + "collateralAddress": "Xg3ZAGsmmhyUmoRC7KTXPaJbGZ2NjkVZ5c", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.180.40:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2112753, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XnYmWauDcTmfMmH2BRMsWdzqfurWmULbDN", + "votingAddress": "XuJZZ9qjwMGdRUCe9ZwvARvVxJneHkfZYF", + "payoutAddress": "Xg3ZAGsmmhyUmoRC7KTXPaJbGZ2NjkVZ5c", + "pubKeyOperator": "b04609405d345733ac2881d35e4998b86584032758b713febb4e6810654dfc9f3dc520f99ff633009ef73700576f05d1" + } + }, + { + "type": "Regular", + "proTxHash": "f36f186d29f2a9a7f315e6916ce3ffb2d3dd4ebaed1a1cf243b31b7a95f7b4d1", + "collateralHash": "862dfedfb94e5619b5b58e45a83ed9e8a79f4f969bef5a5e0fad8db05b157fad", + "collateralIndex": 0, + "collateralAddress": "Xv5MS1fAJRT1NFTz8b2rBSk3LSxWr6d2rW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.199.158:9999", + "registeredHeight": 1908082, + "lastPaidHeight": 2116155, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "XeCn2dCn3NT2SwuTGBfkgPQSgfjBnrJkeT", + "votingAddress": "XoVtubgpHQ9jpjVknBCW4MyWNi78Fymthu", + "payoutAddress": "Xv5MS1fAJRT1NFTz8b2rBSk3LSxWr6d2rW", + "pubKeyOperator": "b286f8be0f3fb57659c5e224a153a5e09f1a3eabcd7e06f553260b4ed2a3956ea4c1eafbe9b783fb5581e1b31b362c6a" + } + }, + { + "type": "Regular", + "proTxHash": "1c77732e531cec111819ea610ebad9a313c2b25c7ef8bcd8cad4c89c1a0cbc3e", + "collateralHash": "3ad07cff0eb7fdd33fd0bc957badae6d3cad90407cc49384a329d080d044a237", + "collateralIndex": 0, + "collateralAddress": "XfXYca7Qw6kT1LJmM6WpRY9zxracYosV8N", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.97.130.240:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2112774, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XbAWDisbaJgWmM1baELSDzWTSF1wzHnk6q", + "votingAddress": "XcZ7spciRaVk6vEcjAZVhY3pVEaVibW6km", + "payoutAddress": "XfXYca7Qw6kT1LJmM6WpRY9zxracYosV8N", + "pubKeyOperator": "b9986c3d813e8e0edb7bb8eba0b55434beed3a0999de420cd50d34debc3857ea07e2603afa76636028311e8922e8abe2" + } + }, + { + "type": "Regular", + "proTxHash": "19a0d3fa9f1d92d60a7c0986ce34c9e08d57c436001d05093f5885566b35335e", + "collateralHash": "b02cb705495d3d69d15d1bf80936c8d010857d189a8de16c1dfcf72d1a213ac9", + "collateralIndex": 0, + "collateralAddress": "XgwL4HxXS1LmoUyEoCgeDPBuMBbWrhW8W3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.111.113:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2112778, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XkMX5j1AnZdEqvaD51Riem5umeTQxWotYQ", + "votingAddress": "XciThfacVNRvfaG61yCMoihFPR1BukTjb2", + "payoutAddress": "XgwL4HxXS1LmoUyEoCgeDPBuMBbWrhW8W3", + "pubKeyOperator": "adaed8ecc8e4a40c69162eede5839ac7b2725bfcc697ccfc256583a510be4ebda5c7f55a5d3f00b4743941fe1d39875b" + } + }, + { + "type": "Regular", + "proTxHash": "d48b477723764c78545bf633e10c0122211c40508bbf8014355e40a8bb047e81", + "collateralHash": "4565d0f7e222cc8521eae5b2c39bb6c8cc60581089b469d6b5755b501cd4604b", + "collateralIndex": 0, + "collateralAddress": "XvCQEhg14nHrGSPMcjtQ12EZwWKmMmkpyg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.138.60:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2112779, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2114826, + "revocationReason": 0, + "ownerAddress": "Xm4qR1eMxmpw4RnaQDQmYNXDrmhJG5KtqT", + "votingAddress": "XqMKcYpLtdT3V6pHyA8heVpxMbCSe9zVDP", + "payoutAddress": "XvCQEhg14nHrGSPMcjtQ12EZwWKmMmkpyg", + "pubKeyOperator": "b9b44cc290d25a09a0c9e32df9a95c13f20ba05081e6db8c4b4d762392163c5438d1eabd32ae9abbdefa96eb87350203" + } + }, + { + "type": "Regular", + "proTxHash": "f8beb1dda276e38c7de2b92aafc5cf4ef2f2f36667fa5277d56a69c3abdc8959", + "collateralHash": "2009ca9ace47f75cd7d60b27f57c78bbf1b766a9d6191864a51735ee396c91c4", + "collateralIndex": 0, + "collateralAddress": "XbngipUhgsQS5qA2yxNHmtRHZxbQuqECSc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.199.113.45:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2116163, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117706, + "revocationReason": 0, + "ownerAddress": "Xi5pMEzomqtWLKE677f8bC6PGZxCC5MHY5", + "votingAddress": "XwhmUfiHJLRaaJEWA56UbWivRPHX3P11KN", + "payoutAddress": "XbngipUhgsQS5qA2yxNHmtRHZxbQuqECSc", + "pubKeyOperator": "ac450f7a8427e230c5b88db979e40419ce8782e32ae9b9bb99584d109dce0486a9738518b5fed721f4a54ddf47cf64ba" + } + }, + { + "type": "Regular", + "proTxHash": "8b11dd4a15fd913a84be6858e046c6863f28138268de2cae0034231d21385228", + "collateralHash": "5d28e77787df0c744be3a696a9cfed92bfaa3d07e11f960a8d3ed578f38f0ebf", + "collateralIndex": 0, + "collateralAddress": "XampSarSf9Jp3Cab3NPX4pvD4HtCob6Lwo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.139.6.108:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2116162, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2118282, + "revocationReason": 0, + "ownerAddress": "XsGMn7Z7nKLdfjsiVqFb69sAxP8bnC1pjR", + "votingAddress": "XcGz9vBDQJrQRcB5Sd991rCtWLST4TrL3K", + "payoutAddress": "XampSarSf9Jp3Cab3NPX4pvD4HtCob6Lwo", + "pubKeyOperator": "a9e1d6352f7a764db55b02daac63c2858a7971038267e49d7f88597f28f5726ef6692ca15208674b2df6c1b0d99af743" + } + }, + { + "type": "Regular", + "proTxHash": "c094c53053c1a1ec575d39e18b4ad80141db50c7579aceb7731b164f010d068b", + "collateralHash": "2af69a447a76082b0ee8e7159c79d6733022bb5f11989b9d142b8180d8c7a857", + "collateralIndex": 0, + "collateralAddress": "XuZvpECbHk7AErEKJM7U9GyGnLdcdzS4P2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.236.186:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2112780, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XyksFi8Fd7HtZvBb6ZVf9pf3Jcexopga4r", + "votingAddress": "Xmjrm97UCRqV2vpheR6MtaKDoGRHnFkxRL", + "payoutAddress": "XuZvpECbHk7AErEKJM7U9GyGnLdcdzS4P2", + "pubKeyOperator": "a38508d08621d3125583449e21b5ef614010434b2abf7236dab5934c6b9590892aaaea11076bcb13882c20ca6801f859" + } + }, + { + "type": "Regular", + "proTxHash": "2304f648ef4d7c4770e31ef3680d19ca7da3487215e129e063c5d0cb44be7c9a", + "collateralHash": "50b2eaabc52d84698b88362c829a28db874274ad2e1c37c194f1c543eb590086", + "collateralIndex": 0, + "collateralAddress": "XeXe4kGVCPTpqFGT8zGKpx4jXp1A88uJ63", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.227.28.93:9999", + "registeredHeight": 1908083, + "lastPaidHeight": 2116169, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "Xqvy8TRPPw7j9h9WxtieCEr73EuCzrier1", + "votingAddress": "Xn6mPWDEjTcWNe4mjFVDs9YZ2ykmeG999g", + "payoutAddress": "XeXe4kGVCPTpqFGT8zGKpx4jXp1A88uJ63", + "pubKeyOperator": "aadb77062d40711a98928ab876a167c40bdd70b97d6ab8b07e9cb6b917a1a95f33b3c648daf6999d2e8a4323411483f6" + } + }, + { + "type": "Evo", + "proTxHash": "12f35c3050a1e08b9a79002218a0f5f7b2e9709cf82cfdf9ab04c74dbd16cc5a", + "collateralHash": "9039ef7a74966c33fdf75df22368308a20d81dfa398ec81d2fce3d34a1ab9b14", + "collateralIndex": 1, + "collateralAddress": "XevbJqmBkWppB17ALvLy3LvFxXHnCPPxT4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.110.216:9999", + "registeredHeight": 1908173, + "lastPaidHeight": 2128702, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdADMTfykDECsZJ1GYwN5gyzVTVxbJrruW", + "votingAddress": "XxZyC2UmpgoHjMbayRyA2UbXhaRCpMK9hZ", + "platformNodeID": "bca99907b2697d25503089b139c45c07533006f0", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XeT7F5aqXdwaqr4jyAbrx812Xff2zvBezd", + "pubKeyOperator": "b5164436429e3439e883d80eb0e19de8e37d264b99067afefe1e61b07d288be9f5d6dbb96766830522c3cb6be741d5b5" + } + }, + { + "type": "Regular", + "proTxHash": "a7301ae34518dc78a583aad1748de02cb0bd91fe79d8c22f6422a2fa016fc723", + "collateralHash": "60f62121153426d91b7ae8baa5e7f229db7e86407a73eadb266c37da73aee60f", + "collateralIndex": 0, + "collateralAddress": "Xgy4b6QHrpMUd6jpTHsGcuoMkKqYsTbtAv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.159.121:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113587, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xyh3wCX3BmUTHaNxi3NNxpwAF2MNdpFXA8", + "votingAddress": "Xt2ybqvHhMn8UhwNSLdHqxPcMtJzyAxQjP", + "payoutAddress": "Xgy4b6QHrpMUd6jpTHsGcuoMkKqYsTbtAv", + "pubKeyOperator": "aa6bf89f4dc35d0ae22f8c0270342a71447a23031ae7d3a16123573e4d07fa2007bfdcb50fd3d4316b60342cc52ec2b3" + } + }, + { + "type": "Regular", + "proTxHash": "b1e7d848bf9d0d252e8a2532ae58e425ff70cf57c2979c6561f08279507772a5", + "collateralHash": "4025f8f27e64a4bc78ae2c2e49d4ad465da3806a82d26c2f9f6e9739ac4b1ae1", + "collateralIndex": 0, + "collateralAddress": "XyZVV7Wg5rS5h7W3jr14ss9QUxSdAqoVzL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.28.205:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113599, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XdzfoHLD1J41hc84NGVYHZPUAhqVb7z4fK", + "votingAddress": "XvAxdRXSEfkq2vQVbohQNXswVngXb1dins", + "payoutAddress": "XyZVV7Wg5rS5h7W3jr14ss9QUxSdAqoVzL", + "pubKeyOperator": "a5e6ac34bb6b68da7edf77d16046215835f71c0bf67e927c72d3c43441a4f09ecf127bd6b46bab80cce4725bfe008f26" + } + }, + { + "type": "Regular", + "proTxHash": "8376abf4e29c529b1cdbc9c4ea4f7d92015df1863c477bc1cac999d6d9412e2d", + "collateralHash": "032968f2df6b3ebe31a2fd1ac62ad5b94c52f956fced07243400f78abe34a72a", + "collateralIndex": 0, + "collateralAddress": "XhJZZS3o8vLjy7F9sk2B58DuEryrcAntNx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.5.181:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113589, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XydLvRU13RZ8rjij2pVLmbZHCGM4aojdZB", + "votingAddress": "XfC2DgCbdTZZmVCxucPfLo7FoNam4Abeeh", + "payoutAddress": "XhJZZS3o8vLjy7F9sk2B58DuEryrcAntNx", + "pubKeyOperator": "b49b3d5e4b3ba9bf8e9d08ac5e7dec34c037eb23a08c3febde0af5830b762c8b75c1ba52043f27e9d5947019f1f62fea" + } + }, + { + "type": "Regular", + "proTxHash": "8da176a780a29994a3590c8e1618bd1c1136d48bc206eff35ef85b73e00a58a8", + "collateralHash": "9e2bc3bcf9b667e871163f636305027d190679fa7da246634e3fd66db82ab602", + "collateralIndex": 0, + "collateralAddress": "XeuhVChhVM5iyCVYc5BakwNDAnJF9LvLtA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.110.42:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113603, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XrHUREApYY6nUQXmUHMvJyCV93fTnySJuX", + "votingAddress": "XwZaR6JJQuWecjLeA868Sj8jQwdJ6scxDp", + "payoutAddress": "XeuhVChhVM5iyCVYc5BakwNDAnJF9LvLtA", + "pubKeyOperator": "81024933306a3433b20f8a330e938a8b6404cda43af4a42352109637ac4cc189c5fd0e4d848d99f3163e3ffc5f716414" + } + }, + { + "type": "Regular", + "proTxHash": "ed2fbae578c55e26e9637ce988793160bfd46c2248da632573b1340ae510ca24", + "collateralHash": "2fdda6d7bad4c72c06cc8d95819702e62fe4f514a74904e606ad8f60c75547d5", + "collateralIndex": 0, + "collateralAddress": "Xi8i7xUvRp2u51XHX1cjX5QoCNv2JTHoHP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.200.253:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113588, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "Xd2trzEDynt8jCo2ZyL9payfc4p7LSQRBE", + "votingAddress": "XqSLRv4x364CKJCK6cyjvFXRJW6MwWUwzK", + "payoutAddress": "Xi8i7xUvRp2u51XHX1cjX5QoCNv2JTHoHP", + "pubKeyOperator": "87fb1680fc227c76ae06b3262b7eebfdecaeaedfb1ee5235423ee8138952c7d3a8341603b6fa8a152d31ae0efbb682e1" + } + }, + { + "type": "Regular", + "proTxHash": "020ff723205798c70acd53e0ca943459215a6cc86130120ab2f94505b70cadf0", + "collateralHash": "0d615e45fa388a4a501f0f11e9ee9447f21cc70b0c0d17462e5955878c4b5576", + "collateralIndex": 0, + "collateralAddress": "Xm6CXB3GmThvFTQfFAauBE2A2VEhPC2RBo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.158.232:9999", + "registeredHeight": 1908836, + "lastPaidHeight": 2113609, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XnTgvfWpFBMcqPatM95amivc9kUAHEqiAM", + "votingAddress": "Xrzt2kwpJdNKbVhNr2AZ6SYo6ZD9jBvnR1", + "payoutAddress": "Xm6CXB3GmThvFTQfFAauBE2A2VEhPC2RBo", + "pubKeyOperator": "b73b267e1061df403efeb7f3da9e34b3e7c1c24b4843eca377720e4973461fed9418d370b74a58110c818a391ecd1809" + } + }, + { + "type": "Regular", + "proTxHash": "f41ec4ac23a6dd7d1633c814814a5d7deb3d8706b6bbb9c6681edadb6928dd1e", + "collateralHash": "b1a64fba04182adaddc6fd38afdbe3004ce9c1cf69893aa36e028152d7e93527", + "collateralIndex": 0, + "collateralAddress": "Xi7FeRQNvyiwgLSzn41GUWucsrykh9AYPK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.227.146.10:9999", + "registeredHeight": 1908838, + "lastPaidHeight": 2113614, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xbv4tac6jeeAseos5dh3WM2bcjJ9DFPYXd", + "votingAddress": "XgauLcU2Cg8CEsJcARY9yw5Uz3rhQ27ZT7", + "payoutAddress": "Xi7FeRQNvyiwgLSzn41GUWucsrykh9AYPK", + "pubKeyOperator": "b3da55040cfb7c77bee5d4ff34d0f1bf70a2f3f24ec3463eb2f58206c06d672b6c6b3d5058f8ef7c753d4e3a87985abf" + } + }, + { + "type": "Regular", + "proTxHash": "4a312ca9a025bb355a4f16aca245e2d5a2f5a185357cd719eaf05f8b60512548", + "collateralHash": "c7d2dc0b63f626700e1dcd2b17e12526a7d52274fa259fdf626c93a08a980a45", + "collateralIndex": 0, + "collateralAddress": "Xx57aRcKoLC4yGTzv7vbjLn8gs6WsCudd6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.139.26.84:9999", + "registeredHeight": 1908839, + "lastPaidHeight": 2113616, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xji7dU64Eyuf4uVyh2WdQHwZmJYU6K8GdB", + "votingAddress": "Xu1YjVirkXZGakJkYc6QXtMefe32qE95Jx", + "payoutAddress": "Xx57aRcKoLC4yGTzv7vbjLn8gs6WsCudd6", + "pubKeyOperator": "863bb6e224a32f09cbdda07b526a43f9ee27461271681ec86bf79fa95d8935fd8d0db0bb3c2f542da7ea83bb23b094b2" + } + }, + { + "type": "Regular", + "proTxHash": "eafd31abf7a40a71bf8cb6ba894f08e374e272480e1e7e3e2ed5ddaba3121ba5", + "collateralHash": "71c0437286135ba29d393079bade8d8f7238865d5431eb7de607f7e40222b257", + "collateralIndex": 0, + "collateralAddress": "Xh1aFpFsQ7iDBBJ5wB7gRGjCfthxeW6VPd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.226.182.152:9999", + "registeredHeight": 1908839, + "lastPaidHeight": 2113620, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XwxXFDGHDtt5ryPcB5hRh6g291UATspjSN", + "votingAddress": "XjbbdRHGF8ivENoxxXGPzqquoJ97aHtR1R", + "payoutAddress": "Xh1aFpFsQ7iDBBJ5wB7gRGjCfthxeW6VPd", + "pubKeyOperator": "a481a153eb9c0f6a52c65c95e9f347e912ce029b56cbd3feb770fbbb6a255923451bb6d9ff48f2f3cb4413a854cb460f" + } + }, + { + "type": "Regular", + "proTxHash": "779915d10863c7c40887b44fd26084ef6b28b560cf0cca1af0d6132b29bb0e94", + "collateralHash": "84968cd46d259468aca3a64418b6235ee6a6a39b8e81d56ce48f584a8e9ee578", + "collateralIndex": 0, + "collateralAddress": "Xcf91eN3ttu77iPyDTnwY8KJ2txaCucez1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.117.239:9999", + "registeredHeight": 1908839, + "lastPaidHeight": 2113617, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XpBmw9xBCAK7DyE24GarspwiK58BrcPjSx", + "votingAddress": "XbWTQGefmQDji8Z17ASnGkEqwseKLeqaK5", + "payoutAddress": "Xcf91eN3ttu77iPyDTnwY8KJ2txaCucez1", + "pubKeyOperator": "9656f57492b1d2c1f35b17ffcdc1ef37707cb5a21f1b6f8815599c568c5298f73fb52e3aa9a231808a7179a193eb7a89" + } + }, + { + "type": "Regular", + "proTxHash": "8b001f1b1b510da41eeca2a3cb24d808fbefec91c9b3d94cfc4892988057dc55", + "collateralHash": "7e048b46ed199c1241a7a5ec989235a036e452b728e272034934ded9bf638c04", + "collateralIndex": 0, + "collateralAddress": "XtCUqWCdFo3cWJU5gQtDoeaTfBNuiiG6y4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.175.112:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113627, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XjLuMnMRWmfVd1wqf1zUiSKqagFxp28Afd", + "votingAddress": "XvoPMDNTzgpCVieA5gWHWq1Twrrmb4NBmU", + "payoutAddress": "XtCUqWCdFo3cWJU5gQtDoeaTfBNuiiG6y4", + "pubKeyOperator": "a04380e0256b1a8e4a3d0da8e6ea37ee508081f15eaae57c274f3d19c0734336c984afcdfc047b222b64f305bade1898" + } + }, + { + "type": "Regular", + "proTxHash": "420811d1d907002ecb053ea421e419e39be6594417f782532f34c70510fb140e", + "collateralHash": "de361d1c8f6f054b5296e250a6eb1a8b50ddcec2b23bf17eb71d281574fc0b00", + "collateralIndex": 0, + "collateralAddress": "XqANwENBSiwvyss9kLPYggHxucteXRH7mp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.254.15:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113622, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "Xvf6NvY9AXrXL6D7XR6vNCwCNd6aarTmzo", + "votingAddress": "XymbvjtaBhJf3g3pACTujm6xQ6JhB63bzb", + "payoutAddress": "XqANwENBSiwvyss9kLPYggHxucteXRH7mp", + "pubKeyOperator": "8544e6f1e582202b5a11e2af3d59e326830bdc0836817a1edeb71de6f5dff02da411c9b819488fbeaf17276652760502" + } + }, + { + "type": "Regular", + "proTxHash": "a7dc3d7cd73b37cdc4d41c26b1080bc3b210912ed50755992803dac363f73c3a", + "collateralHash": "d58596c2f41a23cdec7df314d5156dd39cf8013afb9ee94a64bc75f5e311c733", + "collateralIndex": 0, + "collateralAddress": "XeLwF8mP1Y4JYhc1wLdyaVrwH18CsUQbya", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.132.146:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113625, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XijZwgnEiCe4FunBQSQs8zjxwSQGobs8AX", + "votingAddress": "XmsDh3wRMExTALCeKbC1PcSmUT4HxPkoHQ", + "payoutAddress": "XeLwF8mP1Y4JYhc1wLdyaVrwH18CsUQbya", + "pubKeyOperator": "a04cbde98d429e6c4cb1e1748b6350691543fca26d16c211889beb51b48a6d32af77d7967e6c4c98b0e062cf9e7f6440" + } + }, + { + "type": "Regular", + "proTxHash": "585d5c3ba12ace52c58322419c4cb7b3b35e47a4f08a8725246e048bf9b47422", + "collateralHash": "75338eab5205b48f406fe4125ec247077d9c18e3084e7d89a5c68d1d868cda2a", + "collateralIndex": 0, + "collateralAddress": "Xxvpbs7esa39ueETfREgZ67TS7BUBx6dRH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "206.189.32.97:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113623, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xyo4kHVUy1GJVAhdHAfiH2xhduKcp8GVSK", + "votingAddress": "XfVFCM1FDs4ncKMQiegEPqoEVEPqsn5fiT", + "payoutAddress": "Xxvpbs7esa39ueETfREgZ67TS7BUBx6dRH", + "pubKeyOperator": "b5a5e00847669a4dde96f3bbe4373a4451706a2743f0dbe18a4687c2595891fb01c50b08d2d4233203a025b6dbfffcc0" + } + }, + { + "type": "Regular", + "proTxHash": "fd71b15fb134d9e2b4a7a058fc7809744bc28c420d379bafd59d8b002b806bc5", + "collateralHash": "c0c1cef04edaeaf485c93ef70506d8b20d5c3b3a2b4c3d2f7349fad24e70b6cc", + "collateralIndex": 0, + "collateralAddress": "XyqqcWYaX9wGu3C1vDAvqn4yT1pFsbBBRv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.241.193:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113635, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "XrHuQSAR5PViexGEsE7siHUAqqUEKenqyD", + "votingAddress": "Xc7Ss3nggY1KzuLsL5WEPdrT8Xn9JAhwcH", + "payoutAddress": "XyqqcWYaX9wGu3C1vDAvqn4yT1pFsbBBRv", + "pubKeyOperator": "b9d1d254f84ec7ca0c5169d7d0ad2bb84a366ca0ddf38664e950b1c4667f92f985cc6fa85f56c1b9269989652d89368c" + } + }, + { + "type": "Regular", + "proTxHash": "d475f2868a74b0d1500619e14484dd7b70dc07a27f5483756c2084855681fcba", + "collateralHash": "55fa4214fcbfe39f4cd9c08ff9d5feee53b4110148ccd31b36bf86a975d87f57", + "collateralIndex": 0, + "collateralAddress": "XheojXC2pqUGJ5JGYPLpkbJsJMiM28CndU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "162.243.221.80:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2116905, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117418, + "revocationReason": 0, + "ownerAddress": "Xm3SpbcWZ1AL8DmQfV76HGMZ6uv8BtBsNE", + "votingAddress": "XqhWisn6pPq6DL68qjbE9vZYoRUg15RKaA", + "payoutAddress": "XheojXC2pqUGJ5JGYPLpkbJsJMiM28CndU", + "pubKeyOperator": "917db295c96957c691f66d43754d09b3aa5411b7879949ee52be2c8d2cf92578f96acf0b56c004ebd09884b1e36c5744" + } + }, + { + "type": "Regular", + "proTxHash": "104fb5144ca258694425aa7f98002f312e9e7d0daf833b967a93fbca656f05b5", + "collateralHash": "e4ee551e9184c0a35cf0767a1ca503b23efcd8bd19b1c3656b7fe29b954fb959", + "collateralIndex": 0, + "collateralAddress": "XqRzLbGZcAQRM82pfQ9AmT4rgs77Niuh6w", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.44.216:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113632, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XgVLPnUJZhyhkZsgcMd4HRUEfguUvk6MoL", + "votingAddress": "XfBqEUBBHzE4wEup476dxKZfsufzzuta1f", + "payoutAddress": "XqRzLbGZcAQRM82pfQ9AmT4rgs77Niuh6w", + "pubKeyOperator": "80c99f7ebb9acb5eb4d30d6ed5515bb0660994c130f8bee6f70f180e2f3c71198fc7e180167c2d811c4f0c3d2370ee31" + } + }, + { + "type": "Regular", + "proTxHash": "ab97d70106946bd84a8b41b8849895e9f370dbce54dfc998a85399fa65786cb3", + "collateralHash": "c8c120d32dd242bca95e3755227d7d8a55d3ac301d954201e890f94a56881669", + "collateralIndex": 0, + "collateralAddress": "XjWAHyUzpEaWLy8dLnG7hXvomi3QLvM4dM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.141.242:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2116904, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117418, + "revocationReason": 0, + "ownerAddress": "XtevEGVCmyq9y1Wym73FNoU4CaXsShukm4", + "votingAddress": "Xk5EtAuyZZrgSCHCRwjz5xP1UxtzMWZ25c", + "payoutAddress": "XjWAHyUzpEaWLy8dLnG7hXvomi3QLvM4dM", + "pubKeyOperator": "99e4b3b5514033c270af532180a261be57c77e5ce8e1b87e9fe9b6d7e83ed2879f3059d30b822f3cfa03929c19229fa8" + } + }, + { + "type": "Regular", + "proTxHash": "2388a0a2f81634b02346c22f2101c78e597893e24b71c89d7d7677bd4bf74956", + "collateralHash": "d0a15f54115fb479a8cf0c7ad8cdb7103980edfde6be0ff15c4c0c032573d095", + "collateralIndex": 0, + "collateralAddress": "Xgvz4PQmghs66FHdQ3PS8ftkPnXn5LoeuD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.131.134.183:9999", + "registeredHeight": 1908840, + "lastPaidHeight": 2113628, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XsGAeZkZcDm1BE86kR1tijL2zUDdERV7Y6", + "votingAddress": "Xh8FG98rY8L8Ur4uN5brwjfYcc2xZGuWqZ", + "payoutAddress": "Xgvz4PQmghs66FHdQ3PS8ftkPnXn5LoeuD", + "pubKeyOperator": "ab87e8cbcefe0b5ca633bde11f0c0d7cd2215321758cf43595feb529428489eda20bf804a40bb2dfda82abe654d936b4" + } + }, + { + "type": "Regular", + "proTxHash": "419d89e03144801e48565828520324457e0bc466686fc9a9d730d4f8b07ca8eb", + "collateralHash": "306aef3d474904c5665fa5d2c761f63a722fed17741ae8823534ef1a0c64092b", + "collateralIndex": 0, + "collateralAddress": "XnKckrUgzqciwhzGESCs2hvrNv7Va1sZ11", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.241.231.189:9999", + "registeredHeight": 1908844, + "lastPaidHeight": 2113637, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xxyh6niMCmdbpXKjkMu7hbGC78K2jgZFVq", + "votingAddress": "Xgft13oSSdzJh7cLjoUnVsiKVeAAWpDwHT", + "payoutAddress": "XnKckrUgzqciwhzGESCs2hvrNv7Va1sZ11", + "pubKeyOperator": "8d90b0f80f7cc0616b52b6d5d2c234a65604670be7ce1999f8b05bed981eecf7117b8b7e82592486ecd99ad34628686e" + } + }, + { + "type": "Regular", + "proTxHash": "c5ee6df867689b263ff035777f2ca19a7d77c9c1adb05c7131e5a635154f1931", + "collateralHash": "5c602d00d625e66c4d855f0d20890b92d54f19adc5a31918d4f810226b7b959b", + "collateralIndex": 0, + "collateralAddress": "XtxqeertFYyXrYtBvbDsaUdKVpiz84Vf4V", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.169.122:9999", + "registeredHeight": 1908845, + "lastPaidHeight": 2113642, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "XyfJ59yTxb6M9Qnon3GPj6RieTPaMYwVGY", + "votingAddress": "XoS9Fb46MftZ1g8BBE5RXU3fgoprRXm5ZE", + "payoutAddress": "XtxqeertFYyXrYtBvbDsaUdKVpiz84Vf4V", + "pubKeyOperator": "82d11ada1803674d9415f68884ee2969739659447fc771dba83c27b89ab392d3954e9ff1b51b45558c16389f9162c8db" + } + }, + { + "type": "Regular", + "proTxHash": "2f38c46af03695990201ed26d3169b37f3f9cc4d5ae47dcf41096b64eb5a2bf3", + "collateralHash": "018588494654583beb5b3e9f4b34d77cc17cd479695b95616aedd94cc0a8f966", + "collateralIndex": 0, + "collateralAddress": "XhZFC3jfcNqf3kPUxLLuWXfHWgbE5Uf74U", + "operatorReward": 0, + "state": { + "version": 2, + "service": "82.196.9.192:9999", + "registeredHeight": 1908846, + "lastPaidHeight": 2113661, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XhQGaWFE3bbdneoJNPznkXosRzQfXFgbke", + "votingAddress": "XjT2hARcggaZ6CcyaLJniumyzuzRVHCPji", + "payoutAddress": "XhZFC3jfcNqf3kPUxLLuWXfHWgbE5Uf74U", + "pubKeyOperator": "952cc646adddc2738425c874c5b1ca14698b0a0ef853d4e1e4066ab6302bd04bbdf97e9a2ea45d2a03572a811fbc0502" + } + }, + { + "type": "Regular", + "proTxHash": "d6e1b6a1d0c1a34032b1c67d02c418d338118d5cc96b97fcb500bc7d72595e51", + "collateralHash": "0b400a3aa2ad827e00e4a512874c0209a13649dde7944052cb3f0a52e4d62254", + "collateralIndex": 0, + "collateralAddress": "XvEqMtW3iGdp4CdFzR9dZ4XswhozuEShen", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.23.232:9999", + "registeredHeight": 1908846, + "lastPaidHeight": 2113652, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XcaNzXuWQM5EM598GibEM2nv1XPmsHQYa8", + "votingAddress": "XfBAuwME2azfpxVjSoiP6QbK7A9ys1VEJo", + "payoutAddress": "XvEqMtW3iGdp4CdFzR9dZ4XswhozuEShen", + "pubKeyOperator": "974e88cc4eddbaa443d79899745fd170a36ee62e1d5578f2c83b22a3ef0c4c02062f6af7fa87dc81eb7077c01aefa4f7" + } + }, + { + "type": "Regular", + "proTxHash": "dcc3393128d65791ca21a8bfb8dfc3820e2a97118d56222b785af7c20741a78f", + "collateralHash": "7f9d4a85d905416173a955a6e734d7d79fc0c68001a0c55976d0e576717da240", + "collateralIndex": 0, + "collateralAddress": "Xetw8iBCrZGUMXV2kpmsC4618R6q7r6vED", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.126.198:9999", + "registeredHeight": 1908846, + "lastPaidHeight": 2113656, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "Xas1EyrSn2cU5Dc2Px5P8B7AKjPnRTvVqX", + "votingAddress": "XjJgNZaRDwfDQwsy2XgNGcADQvcEdqEQ4k", + "payoutAddress": "Xetw8iBCrZGUMXV2kpmsC4618R6q7r6vED", + "pubKeyOperator": "899c611e04e001984c2132cbb6acacfba256bc78b568ba6ee14b807e10e2dd37cd945823d00f59d8055ae61cf451a69c" + } + }, + { + "type": "Regular", + "proTxHash": "5f239b6dfe40a46de67e155b91fa873ddce8fe1490804e1a3174b1fa2ec98fb9", + "collateralHash": "b0635de4c7e2de0c229927897df2b33aba5232a5b26cc750a82fc2893026252f", + "collateralIndex": 0, + "collateralAddress": "Xe8AE7okTQy3P8K3sP16SHHzY98mDUbSWJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.241.217.168:9999", + "registeredHeight": 1908847, + "lastPaidHeight": 2113669, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XwqWbiGYQu7hKe2zGKRmM5n7gM7v8k9DYE", + "votingAddress": "XyBmW8xEHbidHe9Bd3RBBf2xKcGLhB4cE7", + "payoutAddress": "Xe8AE7okTQy3P8K3sP16SHHzY98mDUbSWJ", + "pubKeyOperator": "8bd25dffe1dab97be16a88f784e14fabc907194a84e63032d5fbb7959c341cf65da7a0329e54b66d0a6b1bc6fc352805" + } + }, + { + "type": "Regular", + "proTxHash": "3928871744ef9f65a33992207e83b82c84e45dc0eebf6314d8138c17f4f908a6", + "collateralHash": "063954203bc3c7bd1656acf1a8954809c058dc62c76d4888bb12b0e3099469b1", + "collateralIndex": 0, + "collateralAddress": "XwVVEH28W6TPvkpgTUYn2Z4oGHusx4hnPZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.85.11.74:9999", + "registeredHeight": 1908847, + "lastPaidHeight": 2113668, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XxspDssKaCD79JJHfyAhLk42j4LaYLAxUz", + "votingAddress": "Xmimj7tBhTps4hM6pkJ4y4rio3QHuX2Lyq", + "payoutAddress": "XwVVEH28W6TPvkpgTUYn2Z4oGHusx4hnPZ", + "pubKeyOperator": "a0661216b0120709bf19382e8f2b55218fa5765eea8fd1137550f734a3de5f463db353c5d392cd809c60396b958a29c5" + } + }, + { + "type": "Regular", + "proTxHash": "72f897341c8ecd90c5e511fdc7fc8e9674705392008c99f61575ccff3b1a6c41", + "collateralHash": "d175923f2d3ed8058b5c1da9659ab357c6a575a6661cbaabd11326abea6469c5", + "collateralIndex": 0, + "collateralAddress": "XtVzUjjhNCevXzbqZow5HmiMCCu6UXARbc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.227.47.52:9999", + "registeredHeight": 1908849, + "lastPaidHeight": 2113670, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "XdQ3qmcieGTtbjNHd4q3FZpRXkYSs1zdWy", + "votingAddress": "XcJHhT37Thhgr1QsBxEmAS5ZP4xBDW9Bgj", + "payoutAddress": "XtVzUjjhNCevXzbqZow5HmiMCCu6UXARbc", + "pubKeyOperator": "a5c63d769a07dcf9a3e91116f3964f5d286c5628e26ac16e7ed20cb9701f41de37e9ca96b7e12c8263c13cbfb7ee6e2d" + } + }, + { + "type": "Regular", + "proTxHash": "79fe10b7e2b0109945cc59295085221341e5704fa7a9a8d81b28683663b089b9", + "collateralHash": "4be5d280d328e673c7646acd413f2f99e4d45de01b6a92b0ad66e548349b4d47", + "collateralIndex": 0, + "collateralAddress": "XjvqQxAWa8LYa3GfTGVSRrDymfYkmJqU1c", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.101.243.24:9999", + "registeredHeight": 1908852, + "lastPaidHeight": 2116939, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117994, + "revocationReason": 0, + "ownerAddress": "XemhXRJQNdDcMDdfBGF6p6d7BoxigCG59U", + "votingAddress": "XwgS2x9SbLtVhaXb2BBxT9xCT1qF4gSrbT", + "payoutAddress": "XjvqQxAWa8LYa3GfTGVSRrDymfYkmJqU1c", + "pubKeyOperator": "a4b25cbb4ae60529d394892c919afbd4038e699d4ff3d33ee415f9543d4da860f5cc036728f93ccd662554dd80221e91" + } + }, + { + "type": "Regular", + "proTxHash": "602596d1532d604c25d901d91cece402a1dceaf89874613fae9004fd4b594053", + "collateralHash": "f6f66e7b3db1882fd47f738720b05773d9f11d8aac981100680c9fceaf41af51", + "collateralIndex": 0, + "collateralAddress": "XtXGbw8y1wQyRASepoG7yTMNisMuFH4RZF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.161.165:9999", + "registeredHeight": 1908852, + "lastPaidHeight": 2116938, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "XtuMvLVvoiVNn3XAPHvPrvp4M6g9MPyy2o", + "votingAddress": "Xi2CQ9kPAFPCveZfkRVTYzWD2vo6NnfFEA", + "payoutAddress": "XtXGbw8y1wQyRASepoG7yTMNisMuFH4RZF", + "pubKeyOperator": "a4e27615b26e52706358a79add5f0bc5ae8befe23b07b39bef8e13c46bc292e62090d62eb051e6921da72ee61a2feeac" + } + }, + { + "type": "Regular", + "proTxHash": "0d6748530fe0dde8aca18c17fdfd926e4351a35f0bc8b97c075c306adf620561", + "collateralHash": "a481b94291934f6df5b77f4fe653ad72861975e72856aff8a92213b91a78e448", + "collateralIndex": 0, + "collateralAddress": "XospWTzKCn1vn741eu9nzfmL5wKPs3rbko", + "operatorReward": 0, + "state": { + "version": 2, + "service": "107.170.219.53:9999", + "registeredHeight": 1908852, + "lastPaidHeight": 2113676, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xccn6jB8iGZy5gxb8GV5Pn6SxFUkjaJeJU", + "votingAddress": "XovP7iGHw8QMeLbDQ6ZgdUUNWtj4gn6PEh", + "payoutAddress": "XospWTzKCn1vn741eu9nzfmL5wKPs3rbko", + "pubKeyOperator": "a2685afb6b382480ce1b7dd23b755a848dc917aa5169372dfce7b94243ba3f59f6a54cf84088022884601cf515e5c4f8" + } + }, + { + "type": "Regular", + "proTxHash": "4c6784fdd49fff3d5f8cfbec8c292484f56d65302bdb91732a097af008f5a28f", + "collateralHash": "cb029b56e5c49f698e32c00f2f71a0f7404e1c7586bdb05ec1bb0486d0c42cb2", + "collateralIndex": 0, + "collateralAddress": "Xb4ruwyZxFHredHebZaX67KX6Xg6THh7AX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.13.24:9999", + "registeredHeight": 1908857, + "lastPaidHeight": 2116945, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "XpS4Su2K715TNShGGJieZ8P1UG1N2yNupD", + "votingAddress": "XrRo9yvJBk3z39KJZGsxmNVs46RompViBc", + "payoutAddress": "Xb4ruwyZxFHredHebZaX67KX6Xg6THh7AX", + "pubKeyOperator": "8b0b2cb8233aee4d5f13a38bafe8b797bfb3c0718612645a804a181d2ad44cffb1ef552e37fb490c1965b2060e6d05c9" + } + }, + { + "type": "Regular", + "proTxHash": "faddd7c99be74c8756affa3d07ee4aa37427038bd2504515da935a95fb4a83b6", + "collateralHash": "7ded0b4cff6b1a1065b83d964fe415efc33a27df914ddf0c2888f6a59441da20", + "collateralIndex": 0, + "collateralAddress": "XrxLXh7wjoXUQrfgsiioSHCnGnkVxYmPWD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.72.136:9999", + "registeredHeight": 1908857, + "lastPaidHeight": 2113689, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XoeUvr2NgjTZFu6bdLz1nfth3zT78Eupve", + "votingAddress": "XiU5XEBjDV6cpfFtzZw5fezQfpGL36ZYWV", + "payoutAddress": "XrxLXh7wjoXUQrfgsiioSHCnGnkVxYmPWD", + "pubKeyOperator": "b4742eb0be26d81f2716bd80c62cac939f52d3a20c4273144cd9c9d54a0635f13ab569b023b8a94f01e1ea605f39e22b" + } + }, + { + "type": "Regular", + "proTxHash": "0d8327f4022119b5e83bebfc7f4e2b0b3b2040c5fa252cfb0edcb86f944278c2", + "collateralHash": "bf3a1d8a496bfef0edf364b3c8559624edb17151ab6460cbb10904e53b922bef", + "collateralIndex": 0, + "collateralAddress": "Xh3PkndRDrombJVQ8WFgwtzpbn8uEZSiqW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.139.21.77:9999", + "registeredHeight": 1908858, + "lastPaidHeight": 2113703, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "XmXQcnGt1DvVmxhZyBpUH2mmePHPXEGpAN", + "votingAddress": "XnWrsm19n2cxbtjamBYrRf3F5twvf7gi3N", + "payoutAddress": "Xh3PkndRDrombJVQ8WFgwtzpbn8uEZSiqW", + "pubKeyOperator": "b5da3bde922de304b2d2fe042f9babb0833fe79795720a70b469b1cff47aa97d4c297270383f90ac0323a489c05ce262" + } + }, + { + "type": "Regular", + "proTxHash": "0efa048192b6d4ae473087761d5ab7b46adae6b34bbb8bbc62b7a7da1e79b780", + "collateralHash": "23814eb5db61ad2160803d9f79a74d328455442c55ff3445b57ceeaef1952bfe", + "collateralIndex": 0, + "collateralAddress": "XkRug6W7GroCWDE4AJNKEmrxXeJAbYKskG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.124.102:9999", + "registeredHeight": 1908858, + "lastPaidHeight": 2113690, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XpLVQeDmC8NnkHESvDePvAr8uD4PvS6oLR", + "votingAddress": "XyxeTJmp4dhjZ6dzuteH1C4ZWvstVtJ7jc", + "payoutAddress": "XkRug6W7GroCWDE4AJNKEmrxXeJAbYKskG", + "pubKeyOperator": "898f8c798448f5deb7f14f2da41bf4ffba681155d14d106f7498f1aa44e85004645e475aa0d922ed7ca02995092209eb" + } + }, + { + "type": "Regular", + "proTxHash": "7238d1c4d38e558556e8a902fb3ff02746fede935de5840fde8a2ccaef98c6c9", + "collateralHash": "dc140a485a909cecbe3c9cbd3177aed09640fb65ef4d6d00e1810a18c7222ba5", + "collateralIndex": 0, + "collateralAddress": "XeJ5UChgBEKkQVPzcjRrxwY6LW1AieVgKL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.40.172:9999", + "registeredHeight": 1908858, + "lastPaidHeight": 2113704, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115402, + "revocationReason": 0, + "ownerAddress": "XniuUrw8AS3h7B1bybHT9pBG6HeTK5omi7", + "votingAddress": "XouRowULZn53wvvDX1HewddxNHW3MCsMzu", + "payoutAddress": "XeJ5UChgBEKkQVPzcjRrxwY6LW1AieVgKL", + "pubKeyOperator": "821428461f758ac7574e6d9dc071981526b8641e07b4c91df1676de8d0ce151682ed822ad3287755d6eb9dbdc311c11c" + } + }, + { + "type": "Regular", + "proTxHash": "62c86102eb734be6bccc8fcc7ecf7c234944f1e90d47b888e9407b034ef24cbe", + "collateralHash": "a64f3f6ed4cbdc605bf3e19f583b0b4d03f3acf356578047dcdd94f231213d44", + "collateralIndex": 0, + "collateralAddress": "XtaQ6nGAuEVMJ5JehL58DtJPLaaoiCFECW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.241.185.75:9999", + "registeredHeight": 1908860, + "lastPaidHeight": 2113707, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XijFwGiPBubqMoAxr8qHqnbojpx91R9be3", + "votingAddress": "XuKuokAsG7VwmXzWFRkc4uVVfCnPZ6R9ga", + "payoutAddress": "XtaQ6nGAuEVMJ5JehL58DtJPLaaoiCFECW", + "pubKeyOperator": "975324b0ef4aaeec611af7992794ae20b233f558db08b8de28df4eb73f9ee98b5478d1f041cdfafa258650ecd8f762ee" + } + }, + { + "type": "Regular", + "proTxHash": "a5b46322a08ca2d487e2f3f1429d197161c2e09b001948c314ce529b43cb57ff", + "collateralHash": "a85fbed4f464c05b11c14d1ac0c85d1c5d593ea86a98f132f8ad377e460ac6a2", + "collateralIndex": 0, + "collateralAddress": "Xu22xyYy8PLkfr2M3AdAhW43Au2tiFc3nG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.22.156:9999", + "registeredHeight": 1908861, + "lastPaidHeight": 2113709, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xhi4SSwjTknqTEJb9nbbmdJUEa2K7LtJBo", + "votingAddress": "XoTjq8WMUARNGHtL3cMAznkAPJZ1JKemav", + "payoutAddress": "Xu22xyYy8PLkfr2M3AdAhW43Au2tiFc3nG", + "pubKeyOperator": "ab3435c4974cffa8cf6e9a11d9a263c7efad367c4b22fcc75507c565027b51ecb1ba2a1602d9337eb3edb037d7c03b49" + } + }, + { + "type": "Regular", + "proTxHash": "88ec88ceb95d93c56aa38a51391c1ed66a496427fd0f2d35107d90f87df04080", + "collateralHash": "0611286c7b6bdd046c08bf292b03115228375d6518d09a4d0283c61709cda780", + "collateralIndex": 0, + "collateralAddress": "XbaZUgkDsDhzSrSFoePpTEHrZkeprghPJG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.62.235.117:9999", + "registeredHeight": 1908863, + "lastPaidHeight": 2116964, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117131, + "revocationReason": 0, + "ownerAddress": "Xcs18mtE1JAhTq8GiLTDcJGX3S8ib5Zs4h", + "votingAddress": "Xn1qCZtofbestSXt3SsH8D66dpKZu2brpn", + "payoutAddress": "XbaZUgkDsDhzSrSFoePpTEHrZkeprghPJG", + "pubKeyOperator": "812af1bdeff0497cfc6d4c6af2229cc1c4da2c7893fe43d48c48775ffb72c846ee4ec9ca93e1d1006d6df873947eb098" + } + }, + { + "type": "Regular", + "proTxHash": "bc3dc21a25d7064e8e612b29bdd71d10d447ac5b65e4d2bf1fd6773a7657d6da", + "collateralHash": "2d2171330e8b48edbfe342d36db904124d6cb25afd72d3ffa4d6e8dd18f1d860", + "collateralIndex": 0, + "collateralAddress": "XhJkmN6Fcjektprzz1omnGihSwnoAkAx5P", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.0.191:9999", + "registeredHeight": 1908863, + "lastPaidHeight": 2113714, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "Xud4MesL6QHkoYxoa29RQVzZ4ZPWJ8CaMD", + "votingAddress": "XsQ1Z259Qqk9FVTJ5aa2TPmkDSbEbUVubU", + "payoutAddress": "XhJkmN6Fcjektprzz1omnGihSwnoAkAx5P", + "pubKeyOperator": "869c5f62dab2aace00b082c833a6c22bf3a645af28924c4ebf3694de7bf0c1117e673514b918d5778356b2498a2ada9d" + } + }, + { + "type": "Regular", + "proTxHash": "15d687e8af3de748db72a01631dc99e69425b32fb279f09c180e4a05a1d05aa9", + "collateralHash": "227c2376a724e0efc80bcaf404e3e91253f6db9c798bf086f7ac91b93501a990", + "collateralIndex": 0, + "collateralAddress": "XiDsPpbuddVJHD2VYPx9hkntMPjeyS1WbE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.99.176.226:9999", + "registeredHeight": 1908863, + "lastPaidHeight": 2113713, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XkR1a8C7wHBSU6r5THzQtKi7ES8ptdyhDj", + "votingAddress": "XmmSCQzGY1a45pwFczcJaVEusphBPQi6NP", + "payoutAddress": "XiDsPpbuddVJHD2VYPx9hkntMPjeyS1WbE", + "pubKeyOperator": "b5c4dbc9fd502d8cbbd54a899cb87f4c31da1dc4ff36ad222618050064ee17f0eeedcbaa5fc19d8dc39e34dd126c415f" + } + }, + { + "type": "Regular", + "proTxHash": "d189b3d396a67d1ef0f771ec55dd193f2b6b92be3a97c4bb8abcb5fa6e04f4a0", + "collateralHash": "d8ebd8f1a506d98915eb8eeebcfa7d9b752e003845ce47aa17e47c779114763a", + "collateralIndex": 0, + "collateralAddress": "XhaMkMQ6SLau1onw124zqy4SR2UokEv5hw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.181.159:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2113721, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XwKvcQJYsdFwAE19tviHscobsZTMKf21uF", + "votingAddress": "Xnzdv439sMHRUpqVXMMkUWvzH9fiDVq3N2", + "payoutAddress": "XhaMkMQ6SLau1onw124zqy4SR2UokEv5hw", + "pubKeyOperator": "8b687e6ebffab388cc246217d5ad0554c9d59e1351ebaa49761fdf804b91466bcb78e778f5536d1f91304a31a28e9cce" + } + }, + { + "type": "Regular", + "proTxHash": "6df84952acd453b26b5a2ced60154e624939fba4bc36efca832a15ffa2554b65", + "collateralHash": "92e2479f887692de86b61c305c8f3aa9e3e28e6b8cbe63561a3417904d89e54a", + "collateralIndex": 0, + "collateralAddress": "XsuXiYQZBJrQpiubnH1RRhYrZU1n8FJBX1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.131.9.215:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2116966, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117130, + "revocationReason": 0, + "ownerAddress": "XgXu46GBkQkj97UsmJgb9oLRPH1u6hj4Wa", + "votingAddress": "Xr7xHWBVhKvFdCTSnU6jXhZEeE4vNumvur", + "payoutAddress": "XsuXiYQZBJrQpiubnH1RRhYrZU1n8FJBX1", + "pubKeyOperator": "94a18b2cbc6dcf41374ebad86db721b9868338003f4cc35abbef9e8485c57ebb06ee43253eb12035aa8fe9626f805d07" + } + }, + { + "type": "Regular", + "proTxHash": "6bf5bc3ca3019104c2f3bdbec47a4e72a5605ede0787e7d4bd00b78e1a29358e", + "collateralHash": "055456e7e8cfd347ec62ed27717b7fcd15465f2899fc8e035bbf6de88d68bf54", + "collateralIndex": 0, + "collateralAddress": "XqRMxnH9hdegRuBy5n2qQ9biBTmEUbQZdH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.105.223:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2113720, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XpA1SSFJ621Bev39L7QvKUAzsqT2EfwTdA", + "votingAddress": "XeibeCS9m56bLf6va5wPJSXstKc45P9Lr1", + "payoutAddress": "XqRMxnH9hdegRuBy5n2qQ9biBTmEUbQZdH", + "pubKeyOperator": "9515dc7241e05a5a06a43175b73e823c54258bbec5675eef08ed5b244137d2d17e079fe17a29f9e704e039274976dbd0" + } + }, + { + "type": "Regular", + "proTxHash": "fdb30975621e83940437dafa9bffe42e40a37603d63fba5f0ae4f5b43aed1d4c", + "collateralHash": "1cd811473d868a7ce756bd9300ef69dd55dad9762f6a3a91403c3e4d2f7a2ad7", + "collateralIndex": 0, + "collateralAddress": "Xu3EMrfyXdWidfscv1KGVASTrkecbNSSk1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.154.254.193:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2113717, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XoiE2ux3Uz3EDcXmAq9aPoriCL9RYmKHqG", + "votingAddress": "XpJcFKF4MNCZSiH5SMn2FTLfLu14E8Vfqv", + "payoutAddress": "Xu3EMrfyXdWidfscv1KGVASTrkecbNSSk1", + "pubKeyOperator": "897791c87e59ce043e2878672d97310370b23491827fc1453895818911fa76ae8195bc457ec85475cc8a6d7c5aab4845" + } + }, + { + "type": "Regular", + "proTxHash": "d9b78d8aa71ebef69246a31f53fca847f397df43fb2daa03027a3dcadbd05dd8", + "collateralHash": "3625084e15011c86fe95ed57ec0a6215039ce20ea3754e7bf66d691aa72bb9bf", + "collateralIndex": 0, + "collateralAddress": "Xm1D43jUvxAEkMSxVQuMfiUGB2epGR8M2A", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.68.172.5:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2116968, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117706, + "revocationReason": 0, + "ownerAddress": "XnNr5eSY6F9vftrKFQEs3c4FysndsRAnRZ", + "votingAddress": "XffbDwWxMvJeFihigaj3CKHC74aeaCtMNF", + "payoutAddress": "Xm1D43jUvxAEkMSxVQuMfiUGB2epGR8M2A", + "pubKeyOperator": "a17fc6dd4190a9128b095d304931f4a369e7216e5ec4bf2c8ed8792315293b27d9d6997af367c766f5453d1434851053" + } + }, + { + "type": "Regular", + "proTxHash": "c581ac7c383adcad0c67b67c4c0f4d1f815fb37962a15b6fd13e8513959f5a4a", + "collateralHash": "120b2cf7639e16d9151cb51f5777642f3b02dfe37e20fc2d4159d71a3cd0b76c", + "collateralIndex": 0, + "collateralAddress": "XcYpTdS23viVwA99L4CdbDFAu5LQRT5gpS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.246.17:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2113716, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XpiUrBEQgN5RQgHLUkE8HWcLG2uEHJK4ax", + "votingAddress": "XvLS462PQVwdqFcN248G9mnHTyqiBMCAEp", + "payoutAddress": "XcYpTdS23viVwA99L4CdbDFAu5LQRT5gpS", + "pubKeyOperator": "98589cef9a55b6461a03eae573870c8ba8fc34985a2adca79ab19f068035b56d9ec970b128e14abe80f2c61bf5e20491" + } + }, + { + "type": "Regular", + "proTxHash": "49aa5bc398943d547b4538277cd86a3503313835752a66071aba933fa8e71083", + "collateralHash": "c2f6b0a8cb73b451a6f9f36ba3c963e515f1d485385de991beb02b2eb7408919", + "collateralIndex": 0, + "collateralAddress": "Xm7mCCZS9ZCGUScMbCzvyjjbaK6YxTFUBt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.133.78:9999", + "registeredHeight": 1908866, + "lastPaidHeight": 2113719, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "Xf9cPwvAguW7QPVVvCgQ8YVVeTxJypYGKc", + "votingAddress": "Xmr7AL8HL7SuPCn94ysec5N8di33pYMdsR", + "payoutAddress": "Xm7mCCZS9ZCGUScMbCzvyjjbaK6YxTFUBt", + "pubKeyOperator": "8ab0af44c72b0d62d62adb18bd4c7d23205b26b1a2ce525354f70ac07b28e0c1768765d853a48a51be10ee6099f1aea2" + } + }, + { + "type": "Regular", + "proTxHash": "bc5677f5e799b572b32ecb2f5d26a5ce59ccc7081f04b970c17e7c580725079b", + "collateralHash": "f5db01b5de10cf973d10402a2185db795c6b36ae252cf14e11a46e3eda6adb85", + "collateralIndex": 0, + "collateralAddress": "XtjtZtuvYEF9KS9Ca3KybGagYQ54QsJ8Li", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.85.39.108:9999", + "registeredHeight": 1908867, + "lastPaidHeight": 2113724, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XsrTU1wZMn3oqCjgr2x4gTkggAbS9wBkZv", + "votingAddress": "Xb7xQLMereMhb9buJCzBnxGcNEJJfMe4gJ", + "payoutAddress": "XtjtZtuvYEF9KS9Ca3KybGagYQ54QsJ8Li", + "pubKeyOperator": "953da1ebf655fec1c17b6f0618e61050fb3e00d41c044f4ffca707efbe87d023fec6dbee6f187eccf72035332ccd3562" + } + }, + { + "type": "Regular", + "proTxHash": "4751df16672c92c84e0979707c9acccccf84088829edbc618def4e60bb79c8e8", + "collateralHash": "b025fcfb1f4fb232694e2e0a88baf0e0cea37277d191c37cc209c2cc7294cd80", + "collateralIndex": 1, + "collateralAddress": "Xg3jdKULqwhywsckJDVoKdSGLeP4bJCg7o", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.185.40.167:9999", + "registeredHeight": 1908876, + "lastPaidHeight": 2126190, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbx6oGb1Ve51XtCPVzrHW5qn8vWYGUXxAV", + "votingAddress": "Xbx6oGb1Ve51XtCPVzrHW5qn8vWYGUXxAV", + "payoutAddress": "XeqpPseczQ1SC3STMMobMnUCHS7ZTCMGGq", + "pubKeyOperator": "a8d60ef843f4330c9887a7391341aa9aa77c153f0b113d7c5b5345523edafcfcc4aabfe2544fd9f376f05e925908a6a7" + } + }, + { + "type": "Regular", + "proTxHash": "e63b12aae434a5d82e0609253b36cc0a131654d0bebfe40819eb9bde01185d74", + "collateralHash": "1e4ac48f3a3d5df7a58a20efe43b349a41ea2f4ac84dae0ebfbae3a96b3c10fb", + "collateralIndex": 1, + "collateralAddress": "XqYorVAjFgPgnymhA7YFjFcB4HnV77GAJL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.83.1:9999", + "registeredHeight": 1909219, + "lastPaidHeight": 2126395, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkiVGU6kdMHe2ygKeKQcu73aPH1fQxT7sF", + "votingAddress": "XctoFTbKd3zF12NsF7egb5YH4CNnfJi1U1", + "payoutAddress": "XqYorVAjFgPgnymhA7YFjFcB4HnV77GAJL", + "pubKeyOperator": "86a50ed34514c605b1fa1ac354d922f159402fa724a37488128d4b27e8afad3c1d35e1ab9387d09877f82be2f12677cf" + } + }, + { + "type": "Regular", + "proTxHash": "ab37b78429a041438bd48365256cdc818b7594b7b5bcb574491e6130e472e81a", + "collateralHash": "6f8e2c485f8be9c2af08adab45a39648c129dcf3df3f3bf8090b1d9014ebc175", + "collateralIndex": 1, + "collateralAddress": "XsMDFjATakq1BUour4BQXmvHi3SLv1cYvc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.9.210.7:9999", + "registeredHeight": 1909313, + "lastPaidHeight": 2127027, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1909926, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe7YBb4PjAe4MZ4aR9HtPTGV2BoNPHzt74", + "votingAddress": "XxP1oQo8AoN5GiALbSZHvkCjinRB664yM3", + "payoutAddress": "XsMDFjATakq1BUour4BQXmvHi3SLv1cYvc", + "pubKeyOperator": "b934ff533b2a012b9fa7662162603d9018ea2879a62378a409df7bccc380c90850705872fd9391c3c59b27610660034e" + } + }, + { + "type": "Regular", + "proTxHash": "d0f9dcd818bb7600d6474dd42237039b070d55ad09942b4a807f4ffc75fbf945", + "collateralHash": "f961d49b6b8753cb8454a53975519e70bc4793c6e331a35bc65a57025f60c0c5", + "collateralIndex": 1, + "collateralAddress": "XjxCPRBZgAoXci6bdeZbAi1xRmusubHLX4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.142.34:9999", + "registeredHeight": 1909321, + "lastPaidHeight": 2127449, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1910347, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkXtQH3zz8omPSRUHJeVkjvFcQVkZTNsfE", + "votingAddress": "XnZX5JEKmfveS1UsMUVxbCQfAoTFh5hupK", + "payoutAddress": "XjxCPRBZgAoXci6bdeZbAi1xRmusubHLX4", + "pubKeyOperator": "a878c37a43fc11b42ebbe89a3cc81ca36961424ce39d980c06821860cf193d76edc38a8c10e50ca39a3777da02cf2a21" + } + }, + { + "type": "Regular", + "proTxHash": "1c4dfd1578b8baaeb0fca6aa037bc417c71e293465deb428bb4465e96e1ef66c", + "collateralHash": "ccdc20bbe4d224b99722c20b74429b048144bda7b53ae98da670d25a36a728a2", + "collateralIndex": 0, + "collateralAddress": "Xdo6XWxG3sKLBVV8nyZKLPJFUKmcn65gGT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.83.5:9999", + "registeredHeight": 1909382, + "lastPaidHeight": 2126515, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkx7y4qktGpnVHCyZEWGkhSw1APzAoB5u9", + "votingAddress": "XiqesTYicoLQqTXYFgwPyn8PuPJTk4CeS6", + "payoutAddress": "Xdo6XWxG3sKLBVV8nyZKLPJFUKmcn65gGT", + "pubKeyOperator": "87a42c2f0c116342555b7e2c45d1db50f08dddb6df6066784fa9007f147dd80bf791752c084df8907f7095276ef2545d" + } + }, + { + "type": "Evo", + "proTxHash": "0e9a4f75c4bb0ceea1eec28e2b730d81c192a5c386c46886ec48bdceaa8d3ff2", + "collateralHash": "bc4881c6a5fdf834fbeec5b6951fd48a4ab96a9a3232b640deed93c78a7cc8ec", + "collateralIndex": 1, + "collateralAddress": "Xy5dLxXd8B5e3covRLS9wj2XXV9sEeupF6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.193.251:9999", + "registeredHeight": 1909770, + "lastPaidHeight": 2126870, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfYHCyK6KMRcKebKgZ3CFwwGz3wgYnDqMW", + "votingAddress": "XdoMYEK9RYBo6XWeNqkjpRhmxcq9dFLgaA", + "platformNodeID": "c8df58d1e3cc66201cd019986de7c4a242bb4628", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XuvNfaKa9ZfR8qGAwd812ajCwxgbQAUoyx", + "pubKeyOperator": "a3b27b11ad87a91698358165599d7a1110e2e1b711476570f04b73c18479ebbbe512db2a2272b2d2516d32af7eecc583" + } + }, + { + "type": "Regular", + "proTxHash": "407a7629d0fb2279aeb991bc99a4fb9d503597e90be08a4b494635227f8d3029", + "collateralHash": "3f7318dce79b5c3fd3fc79c5d49d79c9b50012dc2085cb1a862cd2658c2c110f", + "collateralIndex": 0, + "collateralAddress": "XyPnZG5RjApRuhXkhhDp6iMrQ7wiqdgUHq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.6.57:9999", + "registeredHeight": 1909843, + "lastPaidHeight": 2114614, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XxBdr2uPQ2BkmTz78owxqSxfywu8vKxjay", + "votingAddress": "Xuo1owGEfTMjW7g1f2QQnxKKBnMD7vZSNt", + "payoutAddress": "XyPnZG5RjApRuhXkhhDp6iMrQ7wiqdgUHq", + "pubKeyOperator": "af71727676093337beddaa311d585e23f6ebe766360065d1d4b9960b49211f78d6d44ae8b04055e909a7941429de3b22" + } + }, + { + "type": "Regular", + "proTxHash": "a11848fca1e9edc73703731166b278e1bad8bd1aa2cf5dbd03e3d0eb104ed749", + "collateralHash": "0a53060eda1152ff24bfd07cd22872ff47d797682718269648ddb9f57eb67d0e", + "collateralIndex": 1, + "collateralAddress": "Xkai7xMYyatkUyayCWf282WjGyomY3ozou", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.48.97:9999", + "registeredHeight": 1909906, + "lastPaidHeight": 2127005, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnAxNs7miyYNHnXw3CczRsFaiHgTPzRu5g", + "votingAddress": "XiocaQ3urNADQY12to4KaRigCqL726FfLN", + "payoutAddress": "Xkai7xMYyatkUyayCWf282WjGyomY3ozou", + "pubKeyOperator": "984c35151b39db415fa20fe89a0bb6b7c8b56647dc0759838d3fab24a14382e23d802350c6ac5ef2bf3249fd0e399c09" + } + }, + { + "type": "Regular", + "proTxHash": "02a1268116bde0a980168f608ced34f4dcc05c759dbd4c9e54f04f2c7d14863b", + "collateralHash": "654b1febc8b94b9e0330a0d82aff2da43f4a51b708d68361f268d71ef05d0940", + "collateralIndex": 1, + "collateralAddress": "XrqzrvgRsxtRDkt4oMuMqaCtQP6RRk4ciC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.180.135:9999", + "registeredHeight": 1909913, + "lastPaidHeight": 2127015, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuPSXuFEzFrasfUWD5uhNARzSSUovnaekd", + "votingAddress": "XixWvTjVgNkzxazCpecMx3NeUCTAS9WZ99", + "payoutAddress": "XrqzrvgRsxtRDkt4oMuMqaCtQP6RRk4ciC", + "pubKeyOperator": "a5cc12a7791f529e354c93087f10c826ad2c465c0f65a650d1a08cddcf15e177b7a293103c2fd93508e4be3c39fe54e6" + } + }, + { + "type": "Evo", + "proTxHash": "a3212bb52d08b098aa4a65b0cd502fc2c87a8e78f987b3e98c16b769c72c1b08", + "collateralHash": "86a7307b42bb6a9710bd942a5c562c1135ea1cbb3e17b447b6be09fce68d0e59", + "collateralIndex": 1, + "collateralAddress": "XhLHCdjTs7hfxGtXdKQsBZcYBapZJz6sZx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.195.91.7:9999", + "registeredHeight": 1909980, + "lastPaidHeight": 2127066, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu6KxN94dyAX8UQVwi8VgMsWGTAeExujQ2", + "votingAddress": "XwKv3bJobng47phFwtJEu2cHvQcTirooh4", + "platformNodeID": "38717918e719702f18e8f6369e279a6baba94f1d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xb44xgUgWS7FJ3a6MHZ2V42eCV8pg4mdrn", + "pubKeyOperator": "812d74415ec6f9aa56d3cc66009c7aa7c7057e969e03a537a3c9638d99acc89427523865b0468a12b50a572fd5165409" + } + }, + { + "type": "Evo", + "proTxHash": "ffa4a74c58aa0002696df1a7d2562b5a36f5116581a0df1a91500a9664985f52", + "collateralHash": "92e7ffd907074a121090aea9fc0146c5539bdd529d1eb5ad443be9cc29251d7d", + "collateralIndex": 1, + "collateralAddress": "Xc21zf72YYbUjcCzfSXqQ9fufi6X2shSk5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.161:9999", + "registeredHeight": 1910384, + "lastPaidHeight": 2126081, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978048, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhmZkhCH5AG82Auss21XfUGHGxCNWc3CFV", + "votingAddress": "Xkop1SSVpMoH3zMPwjndDBn3wdfysGA7Ch", + "platformNodeID": "08d0e40a4784fa85d619906cef437b2f108f41e1", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "872d9d5f9a7fa1a24501dadd35537c53224582815894947265d0c8e93a02eabd62224c80805f37a80748ee8c6aa662ea" + } + }, + { + "type": "Evo", + "proTxHash": "0d04d0b12b9c2d3cdffc3e4a59b8ef0e1cc5b165e51c1ad44ee8afed418573e6", + "collateralHash": "e81805cfe6337205f43f727680a6286471d1624eee356c86c777dc456f78c1be", + "collateralIndex": 1, + "collateralAddress": "XxfS3fXsi265hEvBP2VwZE4fPSUTYzRgZm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.244.220:9999", + "registeredHeight": 1910395, + "lastPaidHeight": 2126138, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2032208, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtnHZR5XpVk5ADEk1TDiPbE9LRkQqqaRds", + "votingAddress": "XbTPeDXBAyD9vnzz5prgwHWyDtRAXEFCrN", + "platformNodeID": "c0631ae5cb9c12bcfecb94dafefa59803eb5169b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "91dab350a9f7195f274564b94448f9aec0677bf66d5a0af1e3ceed42deb2081861097468c51b611f868fe510dcb7f55e" + } + }, + { + "type": "Evo", + "proTxHash": "9669de13a19f9b17e505c7220ea91bba016a39f836d0b74dae97be2f1a52a1ec", + "collateralHash": "e83fda6e510d8df249c030a13744299898fde7fde936d57b4fb7f8f6072c6f23", + "collateralIndex": 1, + "collateralAddress": "Xb9cRFxXnW5J5abGvtqhBEbjwukziF6jGF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.198.234.25:9999", + "registeredHeight": 1910400, + "lastPaidHeight": 2127543, + "consecutivePayments": 0, + "PoSePenalty": 465, + "PoSeRevivedHeight": 2121388, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XghRWfkewNVq5FW66xqgxyQpXViRKdwGoA", + "votingAddress": "XhQNwBEdk6Y2mKyXJmxjZT5bpSMmFpfs4W", + "platformNodeID": "7172633faa7bdf288c4b31e804c80f7c04670387", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XvHFwbr6y8BQNvLH5bZQnLNTW6TWTCAeSm", + "pubKeyOperator": "abc9ec46770277b0b9c695b134ea634c499b8f763b9dfc103bb2bbaa2a2f028e40d5ba73f68c442588ea942614af2586" + } + }, + { + "type": "Evo", + "proTxHash": "f185950e61fe261ac02c02efcc3f3851300c81cac64621edfc8726d5a0f1a310", + "collateralHash": "fbd44dc30f463c26be5270f98a9f33516cbb944ca21e41998ed1c35e6fc1e084", + "collateralIndex": 1, + "collateralAddress": "Xj2wQX3ThzRVcrMB8SNfbg2qU9Uz48JCV2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "31.220.88.116:9999", + "registeredHeight": 1910402, + "lastPaidHeight": 2126057, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978041, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbYfMkB1iM6w1SxS6NTbM97sc6QrTH3RbE", + "votingAddress": "Xm5ph7hcrAQ5YWALRqDum6gkU6AuMUHU9L", + "platformNodeID": "8abf395fff534f9f952082e4aca81a9b6df8a963", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a852a752566705f6fc0a279adf349d4c9840bc47ff8df369f90e5a045b858e31824e657a9a942206cf0a2cc6a658b1ef" + } + }, + { + "type": "Evo", + "proTxHash": "1dbcaa3b1cf12c0dfcdb3cd28e50af4f231ca94d7d98e5eaf2e730cd357a7d05", + "collateralHash": "d6c2c5ea972f123023174834dc324c5d3f1569bcfb298a336af20bed1666d60e", + "collateralIndex": 1, + "collateralAddress": "XerSEW2b21PBmowuzc8fUK5kKh2H5Xn2Se", + "operatorReward": 0, + "state": { + "version": 2, + "service": "2.58.14.149:9999", + "registeredHeight": 1910579, + "lastPaidHeight": 2109269, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128844, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XidGGpYLiqxUFufDXDwzwaDQjKCABitSJF", + "votingAddress": "XfpyyvrLLC727k9xbHhG13Lkz8KbnMQkvc", + "platformNodeID": "b2924bb0962e92f2fb6a60d24425949e8afb4274", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XurWtGRCECerJ1v5U97m3m6UGWa4KbAZUG", + "pubKeyOperator": "ae7b44202f315a3e97dddbd8d7dbdf3d21e56fd8611d697368fec95696c0ed70d715744f13012c1ea659ee53b8c78208" + } + }, + { + "type": "Evo", + "proTxHash": "114edaf079b652b35d82ec35180ff8145834c36e1b7e49ca307613fc994ff750", + "collateralHash": "a811b26c0f2af1aacaa19ed44dfebb9466bf24c540632c4086216d94a26ce1ba", + "collateralIndex": 1, + "collateralAddress": "XxC3hcVWat7YqvtUyAE7MaHcAgb88shU7F", + "operatorReward": 0, + "state": { + "version": 2, + "service": "31.220.85.180:9999", + "registeredHeight": 1910896, + "lastPaidHeight": 2128000, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxuJpHwHXhCUjAoqQynn8nYz6CqC3eUXTL", + "votingAddress": "XsSBk9awgaZJXdsLVMq8mbPybzFrKDq3R1", + "platformNodeID": "9f188bb055fb5dc017c8c25142e4916f9d86ac2c", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "81e86bab82624819f245d20ec055a4d048d1d217d824e871687499120e2846fe4f206000b7b1625f547934f1f636f09b" + } + }, + { + "type": "Evo", + "proTxHash": "74a08086d3bf920c0e56748bf2d0cfed1419f251d598fdcfad1213391d23db09", + "collateralHash": "85d5fab9fe36caa31da3cd949a24422cab6aa902532e64b86e81bc686203ad48", + "collateralIndex": 1, + "collateralAddress": "XiZuR6bh86fuCQfmzWgctsVivPkzo1FAVs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "173.249.53.139:9999", + "registeredHeight": 1910906, + "lastPaidHeight": 2128023, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw3J3DMpqS4qKBumrPdUcsLWAE9xcnzGNh", + "votingAddress": "Xj3JwUJ3LsYxStsUpGwPZjvWse419P91vU", + "platformNodeID": "f0775fc0b031166b708620fec1535b7f13a2e1d4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b6c673df3de1344b10160ce05099b1d477c40bcadb444a10c86c205bf0b4470874e64e8b92591f582577e1f207ee2b1e" + } + }, + { + "type": "Evo", + "proTxHash": "4b9e75808b451aa192e1bd448971192bd5ab9f8ec1790b6535d845aef57e4b22", + "collateralHash": "f405c9616914837eff4d95f312d7ec33efa8429bce430bc4aa97c6840b976bbc", + "collateralIndex": 1, + "collateralAddress": "Xidj1p6PutXBsqGnVNLiknZNi4KwFZmRsh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.198.234.17:9999", + "registeredHeight": 1910920, + "lastPaidHeight": 2127353, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121202, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvuwaegmnwYvXpQvVfyTwkd2bpdx8ySzDX", + "votingAddress": "XbMG517bk8pKKXtea4BFvSTPsMuqZeb7t7", + "platformNodeID": "2d482f769f0261cdb669356a478c9991b04392a7", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkLHPiXd6Matkd1EfU7QCEETz7r5ignGoR", + "pubKeyOperator": "88263dcc3fa8f26a26c757691abbc8f45bce9286a59304090cb1ebb24eac5645bc7e56950111e9bac9e8187ac32d458a" + } + }, + { + "type": "Evo", + "proTxHash": "06a9ee248111bf6d6d5b123cc40b3a9c9c9c3c84a58e5a2ed9df97ad7c4e7289", + "collateralHash": "c3f094fc0d05abb4d5aafe7961e1d517f8af44199e8dfc85e81e7c9e0ee3e740", + "collateralIndex": 1, + "collateralAddress": "Xuj2VkV3Gi8d6Cn1EU6n5QotHpZGcCjvHv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.189.186.78:9999", + "registeredHeight": 1910920, + "lastPaidHeight": 2127359, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1979393, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoBGUqdNneLNCbPWnYhmxgB4pPys3dADQb", + "votingAddress": "XdPYT1KCFQdP27tpseVGse8grGZ9XwpkhD", + "platformNodeID": "7764cb891526567c8035fd99c9e04c7265b83386", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8873348f84327aabe2920d571f51d4a39da2c8c5ac1315c9d0776f3e8af256504d5b52472c2e24bfe1aeba3572f230f4" + } + }, + { + "type": "Regular", + "proTxHash": "fa9b777b31b784e71a51e00a19e5e4974200f914b42a21a1a789b551aaa914ad", + "collateralHash": "3c5ca587dc473fd29f3a75ab757fec253b0cb80d533f95d8d472a8f825aef65c", + "collateralIndex": 0, + "collateralAddress": "XsDhJuLdmCEbkGz7AcUJBgBWB8f3Ai1Lph", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.201.8.193:9999", + "registeredHeight": 1911116, + "lastPaidHeight": 1983972, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "XekgjHga7tA1tYoPqGpti3sndyXmy4yMy5", + "votingAddress": "XxPm8HKUNSbzGj9SHi9ySW8fcY8tHBQkbr", + "payoutAddress": "Xea26emtVx9aZM3jzvLyfRDmcG6pTF2mcU", + "pubKeyOperator": "aa31acf577e9e25981523098d845377a51c339511c3af7624aeca1a4e09a00e0bbdc2e17a49596e7030104b4feb2365e" + } + }, + { + "type": "Evo", + "proTxHash": "6534b58e8a1c39b3d56a6af2fea0781ab48b2076febc6ccba6efaad6ee46b268", + "collateralHash": "f65898f6758e4945381fdc9a608a51af3bc4d22d8dd80df15b6aee98e816a41c", + "collateralIndex": 1, + "collateralAddress": "XmsnbEnfDEW1gDDBLprsFaHD2gY873T9FY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.77.194.69:9999", + "registeredHeight": 1911368, + "lastPaidHeight": 2126888, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2029730, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbVUzLk7K3Qpykwaqn7XgNeZTEbdTfwczz", + "votingAddress": "XhaB1fTHag4PWQVJW7JKHggwGkU2YXjaqk", + "platformNodeID": "f6b7ef5f0d757ef8495a5661e7f3cc7e42e38c64", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xf9o8jWbuEaG7dozRhvKbY4vUNZBwiSkV6", + "pubKeyOperator": "b499a1e66a27405b5bb7ea019e01826474ac0c71fcc0d55625e7fc2c4526cdb2b361aad6a1644522700d66c70b3e037d" + } + }, + { + "type": "Evo", + "proTxHash": "fc08e30e64483af9fb1190ad17386dbccaf378daf9f4accbf26bef12d0d55508", + "collateralHash": "7fcd7b655bf19249e5fcefdd6c00bc4b9d49ad048a51dee93e8830d5c0fc05f7", + "collateralIndex": 1, + "collateralAddress": "Xkx6WkNUoTVxmbn9QwCUP6bPm7BeCPCUYE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.182.185:9999", + "registeredHeight": 1911387, + "lastPaidHeight": 2128716, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031515, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhvJht2eMs5WZfuUjKC9KHPxQcASF3Y5Pm", + "votingAddress": "XiGiV45hZGsRFABvFnYnRkWoujhLiaayW1", + "platformNodeID": "ce7cd7d6f3710f36c37f94869d5930829c3c28c2", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XpbUxZyv815YsgdPfF96a6Vd2d31FLTvAy", + "pubKeyOperator": "aea508184a7140d9fac8dafb92e14b5a207cb28530a78aa7cc9088a4c0bfbc167679274222fcf759e63d202ba45682dd" + } + }, + { + "type": "Evo", + "proTxHash": "e5d857b3d1cfa3728be68f34f7592cb1f4318367b4549affaf2cd0cb3e47e516", + "collateralHash": "0eae0e1408432bd1400420cbeaa2850ddcdda9c1124fa1d5897f34bd55b158fe", + "collateralIndex": 1, + "collateralAddress": "XkEtGixsbgy9g8feLAfVcFWR4qDDscuwws", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.89.216.210:9999", + "registeredHeight": 1911632, + "lastPaidHeight": 2128691, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcVCQCq9raMAX3YZavtbEVprtXLpx1bqn3", + "votingAddress": "XgWL7Vo8HbZHZfRrGREFfLfpHAmJ2hpe1Q", + "platformNodeID": "8c29089f6db3715944e0d81ecff8106015b22496", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XrTmjsbMnaWQXUbugAaorQ7P4nbEZMcz6i", + "pubKeyOperator": "b4f4915d9596f2fb65958f9d5cef6c5df215b7e2ad27ceb352fba38331d8bfa9faee1e9e982404d807a98f19e87bbf65" + } + }, + { + "type": "Evo", + "proTxHash": "aa1d7efb277b44348b44d967beee3064c55c4f2deb8a35799fe823f8eee4bece", + "collateralHash": "7521bdd5eb3041907ff779bbd5a65d476872a51c66029e35a29608a062595d31", + "collateralIndex": 1, + "collateralAddress": "XxtQvN7isodoJmiybUApkG7ALgunPKV7fE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.99.172.5:9999", + "registeredHeight": 1912149, + "lastPaidHeight": 2125911, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xso9tyuko7Td8fsEpmwpjMkmB4qUKqwkB8", + "votingAddress": "XmNJF8Dp6FWHBv26kf7faFyA7RSaCMy1sL", + "platformNodeID": "bf125712d80761374f6fa6191f3c805a1923fca7", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XuZPBnjbjLh77e3KdWS8r1gTRxrBksvpML", + "pubKeyOperator": "a83d2ac03722920d1e3280a921fa3db6579e7d9827a52ae451adcab997e3f63195534a92300b712a12bd6f3a8a284ec4" + } + }, + { + "type": "Regular", + "proTxHash": "68f509167fed4aaa486d3bb113dba62164a6952b486d208aa351ee42b70d984d", + "collateralHash": "d6abdea230fce3abb12fdaf899baede2d6133b547de310c3b62e5132902d7300", + "collateralIndex": 1, + "collateralAddress": "XwxRmv74SFTnnukpMb8LferG64ZZWK2ve8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.115.136:9999", + "registeredHeight": 1912164, + "lastPaidHeight": 2125936, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqAkGA9yTqG4odbh9Ux5PvcWQAQ9zozRVP", + "votingAddress": "XdhRcjEYBVLse2HAaiRVJ7SQsyFXNBL8f4", + "payoutAddress": "Xt7P5HhgiLFhbDcKSpxJeqPxs3qa4yPaJb", + "pubKeyOperator": "b8f54195aac46a78e37ca417f08ed6915d22aa902c7bf6dc11eceeb9401a63d09a441a92e28319cff284c9d62a353f7b" + } + }, + { + "type": "Evo", + "proTxHash": "bf86442200d72693d7f1e6bf5fac0325d45fc652bbdbc3be66da142164eecc5f", + "collateralHash": "eae9254cb029f19d090b46067395abd1c1ee8c42426c9596667495a269847846", + "collateralIndex": 1, + "collateralAddress": "XjxFj4nL5Je4dTQur88ALz7SEoK2vZ4UPA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.83.70.84:9999", + "registeredHeight": 1912205, + "lastPaidHeight": 2125979, + "consecutivePayments": 0, + "PoSePenalty": 1927, + "PoSeRevivedHeight": 2128352, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtHWhJaG6Niqp9523PYZESrbKwkhZiUqSo", + "votingAddress": "Xo215AbskpmxGCrguPktSgR6zkUUrV7Pea", + "platformNodeID": "0b99d86c0383a9aae6f68293b48f4ea73246ccbb", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XqgW9JNrfkHjq9W1NHr45DbdKKDhExK369", + "pubKeyOperator": "ab452fcc169f203b1cdc0ada5657ecc9df93e6dcfe91a3a5b7ee2065ff10d1f533f967b9415133bf81dbcd024926c5e6" + } + }, + { + "type": "Evo", + "proTxHash": "101301a6b8fe9474c7647f51509f0bd90b3ba3d6022cf7c09cb9bccc3ecdae02", + "collateralHash": "ad68ef15b3958de3fe5434b9a6fa9a3efa46794f1a9cce17e160d9ce7a338870", + "collateralIndex": 1, + "collateralAddress": "Xgeo85PbJzsHbymhHKm1NYbwj3Uoso1gSC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.195.91.9:9999", + "registeredHeight": 1913007, + "lastPaidHeight": 2126614, + "consecutivePayments": 0, + "PoSePenalty": 1691, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjY9tyfa7mafUrAP9FLdQycCPTZHpVTKdW", + "votingAddress": "Xh5fiT61bfWyMjn6kjce9g8yMVQGuYGxdi", + "platformNodeID": "5b263589cf996af20ff58570142864041a986e33", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xgboq97YmCgcKWzKKKQHCPdF4945BS9uS4", + "pubKeyOperator": "aecec472675f3dde140d1b4dca73cd3c9bc509001f922b7abbc63fd5d4e5d26500018bd26f76135c5db024241de7d6c8" + } + }, + { + "type": "Evo", + "proTxHash": "13f27e0eb9125fae027ec5d3ffbca00ee7ab1abfc778d13891c1595ea0db6542", + "collateralHash": "53899fa2bdbec45a792b782efbc7d0f4c53d7b8adbd7ad8d84e816a0a6b13f3b", + "collateralIndex": 1, + "collateralAddress": "XfuRDqaBpmJnyNvCczk4q78UGqz96V85jF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.68.47.136:9999", + "registeredHeight": 1913747, + "lastPaidHeight": 2128633, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2011125, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvJ11tjXGpAd2DsuAhVGpDoNAnjcBhdBQn", + "votingAddress": "XmoQcJn5qQkKBWLkyrU8PLvTuXEmWsi4Kf", + "platformNodeID": "5d2ec3f62d98bb0d6e3a8d7c9076d7e9bd45774f", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsfQbjdVqn4BSLfHQEvVAe9heDGFPEkJGA", + "pubKeyOperator": "85c0d783f24910c41e2e08d9cf5b5ed399a91020293b01e2be7502b518415dc9f5026b7d01f6d60c6f278ffad23eb1d1" + } + }, + { + "type": "Evo", + "proTxHash": "0c0702ee0b2c1095645fc3acc5de92bcdfdbbf6c9e906a1d0e8985a14ac0438d", + "collateralHash": "f0303e1bba8fa6247a7dec325b2b7647e3aa9d9838d7eb5c351ecfb77bfecb5f", + "collateralIndex": 1, + "collateralAddress": "XbZcExZC2DUKxZ3nCwidC2GKFcTpv3CPwJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.99.173.66:9999", + "registeredHeight": 1913790, + "lastPaidHeight": 2125229, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128175, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu54Cv6b4zZf5pWV7f5m1swaXrV13PzUy4", + "votingAddress": "Xww9KkVXcVCToNbjqihSFWhQ9MycvYtNvp", + "platformNodeID": "a1332f0e07d66f60b93558a8cfe778205d24d451", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XejSWb5Nd4jG2ynfZCAkzuF9oxpTxp33sH", + "pubKeyOperator": "85a5848a13b4cf30093432e0b4d07243156a69f8d3bb4bd635be49d36fd98e8de3a65391e8f57bd534be801ce43b7cc4" + } + }, + { + "type": "Regular", + "proTxHash": "b069fde95c0db96e70a3271f69948952de55c0f6e53a14a1ab4a04340e3de0f8", + "collateralHash": "c277c945743fa5f73efdd45c9d9be62838b2891618541f9efc72ee06199f6719", + "collateralIndex": 0, + "collateralAddress": "Xh2EmZJhChKSkcMJkUAovJEdEaZyfwGG7B", + "operatorReward": 0, + "state": { + "version": 2, + "service": "174.138.5.116:9999", + "registeredHeight": 1913824, + "lastPaidHeight": 2115040, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XwbGB1b4hwuMmyp82sDZgrPvsqkDjjsj8i", + "votingAddress": "XkYKz4gbewmBKYabjAjSNpzMXU14APDFpA", + "payoutAddress": "Xh2EmZJhChKSkcMJkUAovJEdEaZyfwGG7B", + "pubKeyOperator": "86eb15e55e63f68f4056290095836c4ccfe435a69159c81393d64675c600faa98fbae5ea031c454e907e80c6926c5435" + } + }, + { + "type": "Evo", + "proTxHash": "3abc901c870c1b808fe672ff3aaecf282c0f2b2a41ec40fc991cb93bc19ae8a4", + "collateralHash": "6cb728f6ae0c52f1805e571e456e0b5f088fa81711da0a7767759fcc1d3f33be", + "collateralIndex": 1, + "collateralAddress": "Xp6SJ15SzjkWpGoyUrpk79VdfPDMeHFML7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.195.118.43:9999", + "registeredHeight": 1913858, + "lastPaidHeight": 2127439, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128377, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdEZXi2ThywUbiXGSkaje6KmJfg9tTi393", + "votingAddress": "Xg1vFSrWSWuzDv4XHFxaS6bo4knRXKZZYr", + "platformNodeID": "1da35899a34a86efc74ce21df967a1d462f22534", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XmTQNdw3wyR3Mh848B2LznCey7AkMfV7Hn", + "pubKeyOperator": "a1cacd45c162fd7e67d22b838d24955c56fb9db75c28a1d05ca7789c0798a9e7983460eaf64878fe6f8c302d704a831b" + } + }, + { + "type": "Evo", + "proTxHash": "a4313722c75f52e1b2666c099060be756c024c0b237f22b2153f46703515ec5f", + "collateralHash": "451b121d1fb2bf6a6bfd2806bc6841b96a3ba92adcbd7f0fda8ad0187f6d5a63", + "collateralIndex": 1, + "collateralAddress": "XkicnU4W2TpZZFJzRYAr2mtq9WB42D1DCV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.215.166.126:9999", + "registeredHeight": 1915063, + "lastPaidHeight": 2128750, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031542, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb9SqRW6uRjZbStGj56pD41V9mbrpAnkGE", + "votingAddress": "Xy7dMV9Ezw6ndU93mjH2jvFYXyZPAMNhS2", + "platformNodeID": "23afef249f2159296f3b07db9a478b935392d96d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XqKZg9jwCUdU5zbsusqTbTyg5TapQDgCst", + "pubKeyOperator": "a389c9c2e27ebc42869e985c8399359804e8fa29705ba5003067d61bfa2389829873330ace603f8fbe50cf46b901e1b2" + } + }, + { + "type": "Evo", + "proTxHash": "a3a4a419c66b1ee40ee3409ad8b9296b038755ebcc0781f3b8ed63de2c25745d", + "collateralHash": "5e63f8063cbde99b5bf5bb3b654cde0c488d6afee53b3a6b7b13ff587257f9ea", + "collateralIndex": 1, + "collateralAddress": "Xn8o721S6aomdXErP9k6ECwqSBhQYWcKf8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.35.6:9999", + "registeredHeight": 1915303, + "lastPaidHeight": 2128735, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031517, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj3RmkYSsiqULttjsUYyapBhswDHDmP7md", + "votingAddress": "Xfzz4phYdnVV6Acac3ChD7SX1zsiLMTJpA", + "platformNodeID": "c7d91fa57444d0c1e0f69a36483eddb4579c8506", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XnCcUSM4GKrfPbs4ZtwyDTeDb2bxd7nYjn", + "pubKeyOperator": "af5199e7a2627ae33ae62a353b99f5fa6d12073b640efd4213298d2726597f6582d06eba1fa435ce265598f0d8404107" + } + }, + { + "type": "Regular", + "proTxHash": "1d027604b1a3eef32924551637832460afa0b2c48554f8689c12e5896026709e", + "collateralHash": "5a151517e21130cdbc6dc334daff81d15c093de6b090c227ffb7a84b7f364cb1", + "collateralIndex": 1, + "collateralAddress": "XmJAYJcjgAPpEdn4jFVuGhriWkJyLPwyEH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "158.247.201.226:9999", + "registeredHeight": 1915335, + "lastPaidHeight": 2117184, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2125877, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe76LdMaMHweCVCCkd3KB4d5XpMyXd1Vwi", + "votingAddress": "XvaWRNSVS31qiBR7aBwzyd5mive1QUwXPw", + "payoutAddress": "Xyn2eLsaQ3vpi1Nkr2HHBPfRVJrWWA3ZeZ", + "pubKeyOperator": "98aa8585782a3ba999dcdc92a40f8ec8947d2e386ee6ac099bb958fbc7b79bb49724b4a9e5b47efa617536abafb23085" + } + }, + { + "type": "Regular", + "proTxHash": "af9a34fda3f9567e5defbe2791d414418fd6d709839e9948f242586aa7eb11df", + "collateralHash": "c9d13bee2ba683f4761dbcca3ebb2de5a4e3e7650d80220767cc1376b68bcd38", + "collateralIndex": 0, + "collateralAddress": "XkHCSLAhAwQJTBnrbzP2EGrUYq13Khyr7L", + "operatorReward": 0, + "state": { + "version": 2, + "service": "206.189.134.126:9999", + "registeredHeight": 1917053, + "lastPaidHeight": 2127044, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XonnY6xjbF5zpvFBavMwihoDcpAyAyvSHK", + "votingAddress": "XfnqjELTyXYK5PN7FqvvC4wVriJekt32NB", + "payoutAddress": "XscUuc59vgBZ6Zx7gqdoQkiPCo2cQPTqns", + "pubKeyOperator": "9432a93e7ff09ce69d4db695f29243d8c9f0cf29793b36843bedbcf7e1194fadab503b96499f4d50a0cd428e8a16e71f" + } + }, + { + "type": "Regular", + "proTxHash": "30df31a5d13235d2d4a9c527545abadd8dc2152d3e908d13e1d2e5788c9d257e", + "collateralHash": "b83fd2a216c2ac9b808e74e993e522dc54e17ab736cfc1108c74f46da93807c1", + "collateralIndex": 0, + "collateralAddress": "XfPyHQyRjSeKHgyizkXxgFQxcQRcqzaPEB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.190.32:9999", + "registeredHeight": 1917202, + "lastPaidHeight": 2127242, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkoeVkEqHn25Kw1RLZFxE3WH3tatNhkGq7", + "votingAddress": "XrotQt6nMTCURR2qWX6n9av5sjyWm3hbJ2", + "payoutAddress": "XfPyHQyRjSeKHgyizkXxgFQxcQRcqzaPEB", + "pubKeyOperator": "8b1ea83c5a9a101e25edb436d42926e75d3a4f194031ead7373cd94876a5d975be702555791c01fded04559b37c914a9" + } + }, + { + "type": "Regular", + "proTxHash": "b4ae0b5e0861335e1ef9f7ef298d3d8132647d51b985de2442338326729577cc", + "collateralHash": "9ec4e0696ab4707f57a95e97d056f7e27aaf5138b48ab14d1eec399e7ef8c5c3", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.199.254:9999", + "registeredHeight": 1917386, + "lastPaidHeight": 1992978, + "consecutivePayments": 0, + "PoSePenalty": 3972, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1994154, + "revocationReason": 0, + "ownerAddress": "XrrbvodmxhRgdtwX84uaVToCswC4BWKkJU", + "votingAddress": "XrrbvodmxhRgdtwX84uaVToCswC4BWKkJU", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "9624194bf12971b9c1b6da274fe4c0f5d1f28cd644e2e730202329afae7119d302c5f81719801b788db6b09d3e5ea8e0" + } + }, + { + "type": "Regular", + "proTxHash": "9906892db58dcd170b163b4341a2040d990e4878d613e5a2c0290d0821c2386d", + "collateralHash": "701ce947e1d5787f0f0660279dd1a95c26e1907d1479bfc6bea9c8b0684352f8", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.96.222.176:9999", + "registeredHeight": 1917477, + "lastPaidHeight": 1921019, + "consecutivePayments": 0, + "PoSePenalty": 4213, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1922730, + "revocationReason": 0, + "ownerAddress": "Xajkqa4MaaKDH8Lk3wtQqCHn8wQSMuS2nm", + "votingAddress": "Xajkqa4MaaKDH8Lk3wtQqCHn8wQSMuS2nm", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "af2b443543438c78696b9bcdc8e681cf8cc879f61ea9c28381eba2498233f1fdcf0b70ef21e45f37543da0d0a7853612" + } + }, + { + "type": "Regular", + "proTxHash": "12e1b1b88a3c0d3e88f8ef6145b55e490c3b8b5de777fa4424b80b0dc5a2a43e", + "collateralHash": "fb30119a0082f21ecbadc6322374d02e401792dd32ba8e8864746a3fbcb9eeb6", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "8.136.251.60:9999", + "registeredHeight": 1917505, + "lastPaidHeight": 2063941, + "consecutivePayments": 0, + "PoSePenalty": 3809, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2066421, + "revocationReason": 0, + "ownerAddress": "Xj56rhbxPxK39D4hjyaGgQqWLcXaGeo9Zd", + "votingAddress": "Xj56rhbxPxK39D4hjyaGgQqWLcXaGeo9Zd", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b84fb1b2a6bca8b0a94ee07f6be2fc9750bc84df540bf6b1bdeaaeaa86bf08f8724df4306972a22783cfe9d6b240ab2f" + } + }, + { + "type": "Regular", + "proTxHash": "83f09131cd091b515c619c484f1b75f12479407a4519db47ff45f158505ab846", + "collateralHash": "c530b465500e045d44f2306cf128e79ca13afe5b0312073fdca2e47d9327b8b7", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.4.109:9999", + "registeredHeight": 1917765, + "lastPaidHeight": 1986895, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1987530, + "revocationReason": 0, + "ownerAddress": "XgA6GTxj67twNJ9yKwSVLvfHTuEMsdzhRj", + "votingAddress": "XgA6GTxj67twNJ9yKwSVLvfHTuEMsdzhRj", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "82c59782dcd56885d040c61acc35f262f50e2c783b9860087843df941e9847514d52474a6b1a92c671673f6338fccce5" + } + }, + { + "type": "Regular", + "proTxHash": "9e7ac760bd32ac8b6415f88731b8faf7921ddb159d7200b475452d1bee3e14fd", + "collateralHash": "8403d9a1f909a4bb391bb6461442118f536781041de6356c42ca64e70ae70ecf", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "121.40.212.107:9999", + "registeredHeight": 1917782, + "lastPaidHeight": 1990116, + "consecutivePayments": 0, + "PoSePenalty": 3970, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1993002, + "revocationReason": 0, + "ownerAddress": "XqgXjZfRYM3ftfhskMoyKTVaU1jNJUKSoY", + "votingAddress": "XqgXjZfRYM3ftfhskMoyKTVaU1jNJUKSoY", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "a5d0e1363af4dbeda689fa93f9ca84dd119f9b96917986c90cdc9e403132dac6f4fd363b23ff2ef266ad112e215fb783" + } + }, + { + "type": "Regular", + "proTxHash": "432dd1a064d4a57edccedb675322199514b28a165341bf29e8646951bc313968", + "collateralHash": "456c215f4020d92c1604788a59ba7888035cb2203069e18676599ca5ae0dfdbe", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.118.40.206:9999", + "registeredHeight": 1917802, + "lastPaidHeight": 2006904, + "consecutivePayments": 0, + "PoSePenalty": 3930, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2009685, + "revocationReason": 0, + "ownerAddress": "Xsd7Yz9rvJ3oodTyMjHjtKqBsvjibhEmcH", + "votingAddress": "Xsd7Yz9rvJ3oodTyMjHjtKqBsvjibhEmcH", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "af1a0d61ab5a06534c16898dee5f49b8201f3e50dc0ccb13cb76e8d23836ff5101788f5607c69dfcd3b8f8029d4b1b0f" + } + }, + { + "type": "Regular", + "proTxHash": "931a1cae13eb6550375b1153defb0055b8561d9b8d05d54e72e886ba6b5ddd91", + "collateralHash": "94afb8bb1cd4feb41a183fa085d2f2b4004601d0ce340b73d058c95987b02015", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "8.136.240.152:9999", + "registeredHeight": 1917855, + "lastPaidHeight": 1990160, + "consecutivePayments": 0, + "PoSePenalty": 3968, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1991274, + "revocationReason": 0, + "ownerAddress": "Xt2s7fQqzYFG1e1aCR6p3rdETFLnJHFrCu", + "votingAddress": "Xt2s7fQqzYFG1e1aCR6p3rdETFLnJHFrCu", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b9833cd3a791283bd647daa471483facf80a0dca506a8e85a55370d6aaae87a88ac44144519c12f4c475473bf0ead1f1" + } + }, + { + "type": "Regular", + "proTxHash": "96015c281ba71430081e8e0cb7ed872e3b12e291344bc67d78f9bef8dff7ef68", + "collateralHash": "91346bc7586a217b10f0edcf269983079fbed123f4598791bdb24d6132a0cfac", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "112.124.4.113:9999", + "registeredHeight": 1917875, + "lastPaidHeight": 1990171, + "consecutivePayments": 0, + "PoSePenalty": 3970, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1993002, + "revocationReason": 0, + "ownerAddress": "Xqqdy3g5pWbUbbEkdY2YQ4KMT3DRsEMZtL", + "votingAddress": "Xqqdy3g5pWbUbbEkdY2YQ4KMT3DRsEMZtL", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b4a10342048a8853aad0f2f81f837079aa8c49cd2e2c93e46d6f12578448a4ae65c4f71e0e657c1acedcb71f0d47e8c3" + } + }, + { + "type": "Regular", + "proTxHash": "0625db5c1bfa232baf1b44d94edfb116f2558fb14a78b11b4ca443a5b4422c49", + "collateralHash": "a97b81dee63008e0527569642cb147007af7ee43130361c5ae8594baaef95c3f", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.199.2:9999", + "registeredHeight": 1917897, + "lastPaidHeight": 1986992, + "consecutivePayments": 0, + "PoSePenalty": 3986, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1987242, + "revocationReason": 0, + "ownerAddress": "Xfih9hvsHFpQwmS8uyXHqHCMM5XTRbvviS", + "votingAddress": "Xfih9hvsHFpQwmS8uyXHqHCMM5XTRbvviS", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b3c8ab110be46cfaace8a28537e9d8c9c75d5506ddaa1ffcd802104dcc4082cc6fa529da917e7dfd7c7c6572c4dc7b78" + } + }, + { + "type": "Regular", + "proTxHash": "80cfea8b77e44f03be5b108d591bcd983567230e9e5cf430a8b28bcc0aaa2689", + "collateralHash": "ae6134a4ee8e577cd2735167b584fd4e25c4ee95ba9e4c92b284e70735f91d92", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.165.177:9999", + "registeredHeight": 1917931, + "lastPaidHeight": 1990224, + "consecutivePayments": 0, + "PoSePenalty": 3970, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1993002, + "revocationReason": 0, + "ownerAddress": "XprV8Lm2Twc6KscJMdY3fpmdq6uVxTbcBi", + "votingAddress": "XprV8Lm2Twc6KscJMdY3fpmdq6uVxTbcBi", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "a9c78feb61388ef6532f393f66eab5a0639e4356c482a887e094a76da155a0cb4b046f8fb1c094b6463d64312f078727" + } + }, + { + "type": "Regular", + "proTxHash": "e26e6f3736fb023d64f1662104468cb94a1cd5706a915e09c1f22500054f8939", + "collateralHash": "5c8bb504bcd6801f7ffaa3a4a5c7741f8516374f36d817884e7a287be73a23d9", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.98.66.95:9999", + "registeredHeight": 1917961, + "lastPaidHeight": 1987043, + "consecutivePayments": 0, + "PoSePenalty": 3971, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1990122, + "revocationReason": 0, + "ownerAddress": "XdGQm693CtsWPTfVM35csu5S5A6h6GxPJn", + "votingAddress": "XdGQm693CtsWPTfVM35csu5S5A6h6GxPJn", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "abe0dcb7307e88779490da83620fdfbd3af970e89f954f1ea42c1c12f2990bbd1e279a283803f073a917511c230fe073" + } + }, + { + "type": "Regular", + "proTxHash": "9203f42511fbc43f784871952a48dbf63eac43a0a8a71e45afdb71df1e5b15a7", + "collateralHash": "882d58d778b8c69298e447b20c5432cdf26a62338023b21e5ef5f620e890a86e", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.184.51:9999", + "registeredHeight": 1917988, + "lastPaidHeight": 2118656, + "consecutivePayments": 0, + "PoSePenalty": 3827, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2121450, + "revocationReason": 0, + "ownerAddress": "XqtRs47ncbfVXUbVq77RyME88s2RMzie9H", + "votingAddress": "XqtRs47ncbfVXUbVq77RyME88s2RMzie9H", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "abeefbef15eb0af2c411ba2dbc0717bc21fdc38acf37dc3ac30dbf8cbba68a14b6a32affbe3f7a5ac37e92ae3ff7c25b" + } + }, + { + "type": "Regular", + "proTxHash": "dd01f021c2b887df1db583545c414d5a0f691289654d8d21b2298de0c42255ac", + "collateralHash": "b9362434f6cfa7fd307f59ab063f8ea795ba64bc549aadc04e9b395d0d7f550f", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.197.29:9999", + "registeredHeight": 1918081, + "lastPaidHeight": 1987147, + "consecutivePayments": 0, + "PoSePenalty": 3985, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1987242, + "revocationReason": 0, + "ownerAddress": "XsvhnDMCsidS3biBPXcU59UdsKLPUYFZPb", + "votingAddress": "XsvhnDMCsidS3biBPXcU59UdsKLPUYFZPb", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b5f2f678e5a7431644f5cbc21b2abb1b7fc227f49f6e3e88d8a2c156d53980df99aea38767610e083d8e225a1c6ec17f" + } + }, + { + "type": "Regular", + "proTxHash": "230e9cb2fa5520d1675345792929e347a5fd97a5619a27a4b90dc7f5374a2143", + "collateralHash": "ed441ded02b2f4cf2dbeb7f6f6288befc58f45230023e7d2d5ae32e4704ab05d", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.99.229.213:9999", + "registeredHeight": 1918120, + "lastPaidHeight": 2118792, + "consecutivePayments": 0, + "PoSePenalty": 3834, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120010, + "revocationReason": 0, + "ownerAddress": "XpjVB4d6WLw2MUeDSUp4cZmWhFoKrDV2tf", + "votingAddress": "XpjVB4d6WLw2MUeDSUp4cZmWhFoKrDV2tf", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "8ca484553172fa964c811a99154a25051a50cfb6834f1c45ddd4e9c40b184b16964ae6b34893120e46966d12e9447a16" + } + }, + { + "type": "Regular", + "proTxHash": "6061a819440ade288c6c2450c78d1a4de0d763c0e522894561464341031c63dc", + "collateralHash": "0015e99cf7bd0ea7725a879720f0d7f6e9ee8ee4b875099b4f3f94402667c9a2", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.146.65:9999", + "registeredHeight": 1918341, + "lastPaidHeight": 2119045, + "consecutivePayments": 0, + "PoSePenalty": 3835, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120586, + "revocationReason": 0, + "ownerAddress": "Xqw8nAneADKyJTPez4v1BsooibUkmakMWa", + "votingAddress": "Xqw8nAneADKyJTPez4v1BsooibUkmakMWa", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "9055f66a48159d4715cfc6b93758e295594099b6f42b970fc66b1d26ab69152f0a0b2bfb40c4993da2753501a4075cb6" + } + }, + { + "type": "Regular", + "proTxHash": "37fbfeb740d058583a7a47f4acaa5a3058db1532f60101681103cfa5cacf5b52", + "collateralHash": "fb43b6c8f8edb4826f86fed485412f1127dc201152cce1fd3a53968a1fdf4748", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.157.147:9999", + "registeredHeight": 1918362, + "lastPaidHeight": 2119110, + "consecutivePayments": 0, + "PoSePenalty": 3835, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120586, + "revocationReason": 0, + "ownerAddress": "XxJwUPViM1XqtiW9SqoqrvwhwbwKvktaqF", + "votingAddress": "XxJwUPViM1XqtiW9SqoqrvwhwbwKvktaqF", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "872348929a9f07f293011dd4629017483da0a2e0879c7702a59e75dcdcb3706f274af18242f789724fc7ce5010f05f78" + } + }, + { + "type": "Regular", + "proTxHash": "ad17d40921a85dd398db94f5d684f587fc3bfa68035e05c2e2e2324d9a66e051", + "collateralHash": "fa509821ac2a1feaf8f0a6cd10df3d41a4d9e9d4519919723f9a12d3bdbbd96e", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.156.180:9999", + "registeredHeight": 1918389, + "lastPaidHeight": 2119139, + "consecutivePayments": 0, + "PoSePenalty": 3838, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119146, + "revocationReason": 0, + "ownerAddress": "XdqS9VbFj8qzmHSw4cEUcBcDSpQ9Bc5LNX", + "votingAddress": "XdqS9VbFj8qzmHSw4cEUcBcDSpQ9Bc5LNX", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "95de1bbb0275b2442fce242cc4742f48763a1cae42d82e4867e44c436b2573579357489bb6978b6c4cce3a5074d9057d" + } + }, + { + "type": "Regular", + "proTxHash": "ae645fec7f3c4c8d22ff048575f28d79ba0c1d96bda5c3ba0bb1684c4b132940", + "collateralHash": "be28f5b92ebac0fd65c622ceceb08fd306522fac9a0e7ae8c556ce8fe7340fae", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.157.187:9999", + "registeredHeight": 1918405, + "lastPaidHeight": 1980511, + "consecutivePayments": 0, + "PoSePenalty": 4006, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1982634, + "revocationReason": 0, + "ownerAddress": "XefTQDHJ3DYB1thkjk3LcB2mAXNpDB6ekH", + "votingAddress": "XefTQDHJ3DYB1thkjk3LcB2mAXNpDB6ekH", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "825aea80701408b5b40e9166289303482b2f90efe054638678b3bcf7a293e807bcc7e7b9e2c6f7d0a6cf67774d788c66" + } + }, + { + "type": "Regular", + "proTxHash": "6dd6552e37f7182091710d8fdceaf4a378a56f3304c46fa348e11af229f6badf", + "collateralHash": "490214f918a465643c4688f7ddc9fcd694074ac568e64f5b71ca2c5165ea69b8", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.154.77:9999", + "registeredHeight": 1918477, + "lastPaidHeight": 2119191, + "consecutivePayments": 0, + "PoSePenalty": 3835, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120874, + "revocationReason": 0, + "ownerAddress": "Xyr9FQ7dKRKsTUuBAGuYn23RLwYSLgffSw", + "votingAddress": "Xyr9FQ7dKRKsTUuBAGuYn23RLwYSLgffSw", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "ae1bee3b129adad9b90ae42ccfa0c3308824940cdab9d61dcb169216b9840b99ba8974a1d16f065267dd284b8b50eb5b" + } + }, + { + "type": "Regular", + "proTxHash": "9fa5e5f12e3c19d506c2058bb562f366926f2260e2fe03a990ccec0c5cb67aa8", + "collateralHash": "11cdebd4d8f18eeb355da91bedf33702acc43433fd821fc6e6176e04310abcb1", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "118.178.237.59:9999", + "registeredHeight": 1918519, + "lastPaidHeight": 2119212, + "consecutivePayments": 0, + "PoSePenalty": 3835, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120874, + "revocationReason": 0, + "ownerAddress": "Xgi4eJW5AGGzwFFwBgA1nLiQZVEeXHBMPZ", + "votingAddress": "Xgi4eJW5AGGzwFFwBgA1nLiQZVEeXHBMPZ", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b0204d720bb47800293f56b2f00f02c2903ea637063e0ccffffb55c7d11693c94e171b0c06737ecfa7ce0f933afab6ae" + } + }, + { + "type": "Regular", + "proTxHash": "f76932e8c5f14803a4cb42acb31463c4a602af718aa4287eeabec26ef8b982c4", + "collateralHash": "a290c5f48dde226cbf50e834da5476938a8e9e1653ccaa27c309476265d80116", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.140.210:9999", + "registeredHeight": 1918533, + "lastPaidHeight": 1984213, + "consecutivePayments": 0, + "PoSePenalty": 3989, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1986666, + "revocationReason": 0, + "ownerAddress": "XvKiCRFSFvoPebzENYZ6xLpPGx4TYPErfi", + "votingAddress": "XvKiCRFSFvoPebzENYZ6xLpPGx4TYPErfi", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "a9f7c022dcc608f3030effc3a7e906cce5b60d19f48ff6d4d2aa309eaf4a55daa58c9314529a7ee039bb1e9bbf44b685" + } + }, + { + "type": "Regular", + "proTxHash": "ea0649343c804b3beb116f0d762c77bd193a6ad204535b16cce9774946d8eb0e", + "collateralHash": "533b1be6e097c2947a080d2e7f08ef5c134e21bfe83726eef966b21cd2fc5780", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.152.99:9999", + "registeredHeight": 1918558, + "lastPaidHeight": 2119229, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120874, + "revocationReason": 0, + "ownerAddress": "XqAmRSWzdGDkdJ2L3nc9M42fGndxKAX6Qu", + "votingAddress": "XqAmRSWzdGDkdJ2L3nc9M42fGndxKAX6Qu", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "8ce7eaf5e7d755098750af55f9577e3d21360d1a48f13105f995803f38ebddabff64f081c2fd1f1ed06eaff9f45a87f9" + } + }, + { + "type": "Evo", + "proTxHash": "2793b8cfe8a204ca782b9a2a72bcc0765edd0ddf17ef305b3f2d416c12c4498f", + "collateralHash": "0fbe4c6bb73b66900bf61d1a999b74d5abdc8f60a004f24185898561d5bfd9eb", + "collateralIndex": 1, + "collateralAddress": "Xw7v4hN3duMqDmsMERPQbXkV5gdZwu4qKL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "193.203.15.209:9999", + "registeredHeight": 1918724, + "lastPaidHeight": 2128754, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031542, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhzGEfxnwcFpAgC1RyWcgA98XpxTKpRAvf", + "votingAddress": "Xfeas8HEiroEN6mobMTqHzjHLCdiQizQU3", + "platformNodeID": "f10751e678768885ef1dfa1d8d299e914ac5931d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XiWGnDXpdPWXpXxkQ9E97XEavMLSDo7Csx", + "pubKeyOperator": "94b84e0fc85dc27b387f55b616d5c72855bc9c2943841eb88b5cad20e50cb0079ff9a3c3652de770754cf3e3d0666556" + } + }, + { + "type": "Regular", + "proTxHash": "1b5f7a9214933275c81263c9c4ccc59f4045cf0c3838ff92867b08a0db1d4c68", + "collateralHash": "5dfbf9c668d9129e1bdf09d1fe09dce068548f31552bf7d8664f2b034b40798a", + "collateralIndex": 1, + "collateralAddress": "XuimzPkDtgHzFDRKB991jJK6Mr1ZwDL9QA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.248.46.23:9999", + "registeredHeight": 1919795, + "lastPaidHeight": 2126359, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr3sFADcTvbSiMikdPvoyf7AuPyaXVBryS", + "votingAddress": "XmjTPdzmfA8dwNmsiGMzweErRfXpULNmuv", + "payoutAddress": "XjFUhGoWLe69XvogFRfgYL9pf8j4DEp1RV", + "pubKeyOperator": "8a649e3ebd37b6cac897d44e95f541356a519b6ca3859d5737fdc41f82a986fbe35c79c98a82e7110b36b39c7b993b37" + } + }, + { + "type": "Regular", + "proTxHash": "afa60d33b854467df4fb0ebab9e3dae9083d5a114106c625c090405fa77b3be6", + "collateralHash": "aa9dab3f471844c31b94055f656a6471bc1c122f6f49aa5c3e89641302e038a8", + "collateralIndex": 0, + "collateralAddress": "XrtWdVKzYPL3abCjBERjAXNq9x5ULFu4rX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.110.250.167:9999", + "registeredHeight": 1920226, + "lastPaidHeight": 2126699, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoD4FGF78mWcHHQqif4f42QUy3PUJfqbc7", + "votingAddress": "XnGoeGr4Go86c1xHZQoEJwHApwTCotFiac", + "payoutAddress": "XscUuc59vgBZ6Zx7gqdoQkiPCo2cQPTqns", + "pubKeyOperator": "a881016e1ce1bf61a817c8db22cd80a7ac2786b78d46dee2ee9e4f76a85d5fecb19363899b69e2561ddd9c8c0b6d79eb" + } + }, + { + "type": "Evo", + "proTxHash": "bbf2d6a06a186cefc4bdedc1116a61b39b15edaf29de3a1310c36557638642df", + "collateralHash": "70860b539541cfd1624eaf5951d32b6b83ce56195ea9fa0eb874903ead645517", + "collateralIndex": 1, + "collateralAddress": "Xh9tD8QTvqxFCgAyZNeK8qBQFsGsb4mXBv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.35.15:9999", + "registeredHeight": 1920240, + "lastPaidHeight": 2126718, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdKu3k5zHZhBoYuSpYjaLb3r3tyBAucFvb", + "votingAddress": "XyonAyQFXk2bfCTUhyyc683a3UQkhXGY5i", + "platformNodeID": "f78f548407b9d58d9fc54c9ce7b0dc6ac9c7648c", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "87dec8d5f7e9972e96d10aaefce04550f28f6a34f5a6b061270916293de69af2b7b1ba929ff5aa1f36083f1e99ebbd9b" + } + }, + { + "type": "Evo", + "proTxHash": "2583ef29dc8b29ce32c5cbd21b88c90c9c9ff0225de7fad9d6c83c0e1cd324a9", + "collateralHash": "e88dcca4939ada296de2a24a17a0d5a5f90155e272cde312104c5646a546a0a1", + "collateralIndex": 1, + "collateralAddress": "XbxXURLJT1855M2J4DRaDU2VMqvocxB5R6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "173.212.239.124:9999", + "registeredHeight": 1920246, + "lastPaidHeight": 2126729, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xjuyg8PGKcuaZhJrtVF5tXuHZmz8bMw6VL", + "votingAddress": "XgfycfkbrjkAMMLKCdGf1WimpNtLcZsb1G", + "platformNodeID": "c579df7fdd61cc77e65a8e61ad30b048b33a8586", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b6680ecb1d1594c89527c4cfddfd5b6d6df060cd9bde593568cf865664677c3d21c011e6805845406d09019e1780a5e2" + } + }, + { + "type": "Regular", + "proTxHash": "bdae97f674de60d2d766c0cda1943669355b582f479a593b47d9fa0354d69639", + "collateralHash": "4785b12d8e062a70d1102f653576420d91318bad1e95da065b3764745bb33512", + "collateralIndex": 1, + "collateralAddress": "Xg29QsgsxAnht4yKKW4YyKhq6ijsdumNtS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.190.208:9999", + "registeredHeight": 1920339, + "lastPaidHeight": 2126782, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp2oJW1Dq2rmTGkTayZgVBoQWZFzmAKFAk", + "votingAddress": "XjsB5kYiie3mcHnCswGw4br8ewyBv7Up5R", + "payoutAddress": "XjFUhGoWLe69XvogFRfgYL9pf8j4DEp1RV", + "pubKeyOperator": "86c024505c3db131e15aae1d6098f72a53e490d9e96f2b59927a3d80504217e145c8a3e3f777cdf8df0a89bc117b523e" + } + }, + { + "type": "Evo", + "proTxHash": "5bd3e0d5483c632e3cc01a1b4383a3d19ec7a5327eaef851dd438f5448731cc7", + "collateralHash": "ffcf0e1d628c176af4c7f02f645b9d017bd99b20678e5ef0a6ce7247cb6453f3", + "collateralIndex": 1, + "collateralAddress": "XcXnpMiHRoez89HH8uy7W8CMsFuEbAxiBV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.198.234.54:9999", + "registeredHeight": 1920604, + "lastPaidHeight": 2125771, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2028446, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvZ31deBRPwoBsaLrWwWP3R2zKD6JNjtBV", + "votingAddress": "XvZ31deBRPwoBsaLrWwWP3R2zKD6JNjtBV", + "platformNodeID": "ac3165ceb67f2204d712bfe21ade940158228808", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XiY8ZLKb1Bttn7apQZ1fYJmYJWZYTo49Eb", + "pubKeyOperator": "abca6c32938a121e0c5bfaa40a47ea644f9d0f4d61ded808a1638d5f1144301ea05e0c85fcafff9009724394bc872a96" + } + }, + { + "type": "Evo", + "proTxHash": "542ea6807c3391fc3893bdaefacc14341647af15da0f856bfc323ea2342810fc", + "collateralHash": "d5f5722cd306dc73c356e47aa6a643aafaa934c22b57fc338c6e899618e4a522", + "collateralIndex": 1, + "collateralAddress": "XmUh2biZ8G86KvffKhRqsBJnd5B3erU685", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.201:9999", + "registeredHeight": 1920911, + "lastPaidHeight": 2127269, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2003026, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpY522VnHXbTXQdVWU2ynwqA8898EZpdhD", + "votingAddress": "XunjDHnYL24R7iy2GJMjuQs3GvyEF3gH5d", + "platformNodeID": "c0f6a2e2914f48fb351a7066929c04b708551764", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "95ea7d481dc92273d0208589407fcb9cc5f09dafe263b8dfde32eec6fd7bf4983d2fd31aa93b67c618c2f2ae8be00d4c" + } + }, + { + "type": "Regular", + "proTxHash": "8aec91285788a8df6c3e0b6ce6cf316e5b5eef024e0774948c8851028f5e0b66", + "collateralHash": "e90d6352fbbde223c23f07d9fd87638b13778025978b04bd5694054943b2bd1d", + "collateralIndex": 1, + "collateralAddress": "XrYW2ekRizPmHtroLn5meUPPMrRhRj79PL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.226:9999", + "registeredHeight": 1921343, + "lastPaidHeight": 2127836, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhipLjQftmeW2hGdwzu2791dge6nTLsv4Z", + "votingAddress": "XbysfvKhzap41md7pHLbxzLJTYoJrZ44ar", + "payoutAddress": "XdGdJcmLDBigJCzgJqeMmnAcurvaWCpHSE", + "pubKeyOperator": "89d1d5cd3d8a0ac105ef65b3eacf6018a95e5e7ebbc3a2f6c032f6277042247654b1535eadb5ec56f2d5ea0404f87771" + } + }, + { + "type": "Regular", + "proTxHash": "8246baebc4edecd67ac65caeac7ff103e925ac0f706bfaecbcfcae91f09712ad", + "collateralHash": "a2d91c01faa55f4a007b470fc318f550b750d1005912c135fe71046beac6af68", + "collateralIndex": 1, + "collateralAddress": "XfVk8CrFGfi59tvRAX4WHTqZxX6qhaaEYz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.33:9999", + "registeredHeight": 1921343, + "lastPaidHeight": 2127837, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwjJZpb8gW2EmQ4Nr76nFTZtJLqqFDWHtf", + "votingAddress": "XsiGu8uYDN21askWd4spKo4tByQna3GC8Q", + "payoutAddress": "Xfpy544q34JLjYQkEyKsYF88GDyXezqBCw", + "pubKeyOperator": "a073f907f94adfd0c0cf8168e37bb2a8d2ac5a054ce1c39bf8b6fa9bac1bf18b427c83f5b723b56bc4d5689fb8749fe6" + } + }, + { + "type": "Regular", + "proTxHash": "c5fde3c2821c8c62d603c30ebf61c63aa0dc72835dd444b2055f9b64284664bb", + "collateralHash": "acbf12fd130a5bf21a04b0f7736423c5a603ee17bb2ca0351895039cbd156d8b", + "collateralIndex": 1, + "collateralAddress": "XwM19rqTrKTVRGT2W6qEECeme13HszcHye", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.233:9999", + "registeredHeight": 1921344, + "lastPaidHeight": 2127838, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnkn6dvwXdaskazmWvY45aUT4TYAi48Wn3", + "votingAddress": "XkK8nsQRtMQijBw9k8YqKhgH4T8HJhjG7e", + "payoutAddress": "XeLBaxbijvjUJoo29vtVoVb6ZMeYJZmbjR", + "pubKeyOperator": "929ec703289a6189a2891d0182ab1892b3b8e326dee69f1fec8fe975d2ddd91ce570c7db031ececa806fe43a063de6c1" + } + }, + { + "type": "Regular", + "proTxHash": "6096c63875dbe3b5a4bd693d625cbfe4d2e37a79e8d2d4fe52c89afe0e357884", + "collateralHash": "028e84c35349220fc7b024e97382c2487e5275b947b0cd28c46506732465e894", + "collateralIndex": 1, + "collateralAddress": "XsXT1mJsfKSVCbiHwu2sqJPspCJK6FUy55", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.176.109:9999", + "registeredHeight": 1921535, + "lastPaidHeight": 2127929, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsFWdYYNF8qs8PkKAykRfWBCbtBrrwHwZ6", + "votingAddress": "XybatyGsrB2aX6w3rXsZtWQTPaYD8Uf6a8", + "payoutAddress": "XjFUhGoWLe69XvogFRfgYL9pf8j4DEp1RV", + "pubKeyOperator": "b88fd7b740904275df42f204915acec54e75eb844ea234d44020948f655a6c50cf8a715d025f81d1f2fe49cc047059ec" + } + }, + { + "type": "Regular", + "proTxHash": "df4da21b2462e3ef0f270d4dcbfa37d1b78a37024c9d69115f8eb6aa45dfcd96", + "collateralHash": "023d30909f8c7389e9a4ad569b2bfc35c74811a46901d36d333d4ac0174e6974", + "collateralIndex": 0, + "collateralAddress": "XuDWUAJbqc4Jwqm2PNTzjokBUsoC3CpuGD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.29.206:9999", + "registeredHeight": 1922062, + "lastPaidHeight": 2128460, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaprGBpm5w8vCKs9fLBdz7q9zW2HC83LY2", + "votingAddress": "XyZjnTfsY2bTKkDNkrXugsoYwGquAqkPtM", + "payoutAddress": "XpcADKfxVhTZTKsrAUfUVrQ2kBZXSdb1nU", + "pubKeyOperator": "99df8083c44d43bca8664d0fa28d44ba6f5231fd7c9f341c4190c41b1f3abcf809c5aba90bda48ca7df4eced5369e22e" + } + }, + { + "type": "Evo", + "proTxHash": "b2deadd3bda2551a39b99a868e8f4558c9a9ece2ff80b4361816f1d1a46cd1f5", + "collateralHash": "41668ea53f82d4c448379d136c05e8da3128a0c2a8ed31450059a3e6630222cf", + "collateralIndex": 1, + "collateralAddress": "XsGbVecHj1Z6rsur7F3xgzRvzrwFqKA2RP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "31.220.84.93:9999", + "registeredHeight": 1922405, + "lastPaidHeight": 2126179, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1985285, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo8kGhZ8XUb5vZAfaep3vuEuoUdYFmRDEc", + "votingAddress": "XywH1vSPMTWyH6AzjDQeGJa2riVJQYVPp4", + "platformNodeID": "cd5d5675a3d36c2be6b2d6a07ea56dea4e2e91c8", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xn1rf94A5UAmHYQsTy35rb1Tczo5fHzxdr", + "pubKeyOperator": "90ed3b279798232b1b99051716f29e69ad2a6f5901235cd4b5b8b2df287a7b44ea119a48a46cb2d5617852e25a642ed1" + } + }, + { + "type": "Regular", + "proTxHash": "3dbd35d07ab1c811ceab089483d60671a7af46be11ebb367d14f24725f357b22", + "collateralHash": "369ebd3fc1355d41ee090c5ede05263bae79be92521c9190b23bafc9b29f80de", + "collateralIndex": 1, + "collateralAddress": "XuiwfvskdMmr9m2acH5mcGVy398hQNKYEL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.85:9999", + "registeredHeight": 1924829, + "lastPaidHeight": 2127615, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118430, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdSNJ1TxMTHYDh3g2VLdWzCeEui8DPCALw", + "votingAddress": "XiLpi1rE9ZvNpByztcpF3zosJSMVz7eMK5", + "payoutAddress": "Xb3aEo5RV1wjj1Xr8CB6JMHtg9q7Vpj8Ny", + "pubKeyOperator": "b94ff494374ef48a98ec6bfa7b4c513e36ca834578b2c967170b27fe09eb10b6967950f36030db02eb0bef8472063182" + } + }, + { + "type": "Regular", + "proTxHash": "f16b53578ca81447c69d6599f869bf2320d76772c474d78bdca17d8a39831331", + "collateralHash": "43fdb638cafe929a0be5e68167f422a1e829b629c2d81af7a7b3790bdf8b31a0", + "collateralIndex": 1, + "collateralAddress": "XpgyrLhW3mBQXSTA3sagCqaPCtREpUn8De", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.55:9999", + "registeredHeight": 1924829, + "lastPaidHeight": 2127635, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqgZdijRjmi3Z6WyNQYhvRKTfDPeC7REKT", + "votingAddress": "Xm1fYzZoMM7yYtj4LfNGbiT9mVzHL2kHiV", + "payoutAddress": "XiRCFTquq26oUuPvztry4tXQsyEjPYYX5v", + "pubKeyOperator": "89e947a4e6967d972dcc4a57e7d273c76a9f105d133b51f69d2665a5c7896c5d92c1b7d9050fa85cb4145481b3f47d3e" + } + }, + { + "type": "Regular", + "proTxHash": "0816018cd703f2e5798d15b95286842ce10fd37177c43c4dc6ab7d15a3c5dcf1", + "collateralHash": "872cc42af4f82765e8839e08eaef101d5b7611688d9159fca68c6df7cbbe9b2f", + "collateralIndex": 1, + "collateralAddress": "XtxsRuYF2ZqnDosfSQj6MXhXGvGJq7fQcP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.59:9999", + "registeredHeight": 1924829, + "lastPaidHeight": 2127709, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XudbmhnUc7gRCRJVvoqZZX8N89TrPo5fbU", + "votingAddress": "XbS16zSicCPYKwdn34jVF2vtfUZUdvjbEi", + "payoutAddress": "XcgLL6Zpd9rsyBjHbffdeMkXsjiFifURSs", + "pubKeyOperator": "a585be0a86178c0bacfa5092e210f20187a89e3fb07030a39b35d3e053f816dbd4f0764e9b41648daebf1843a610e6d8" + } + }, + { + "type": "Regular", + "proTxHash": "7676ae03ff79f0a04d03214d34a0aa05e53a766eaeaae84ff4b5b0e295f972fa", + "collateralHash": "c89a2b96ae9f87fddf44f2c553e3c9ca3e2822ee563857b79d331a1e2d41f4fc", + "collateralIndex": 1, + "collateralAddress": "XwRvGrvqfKjEqPXPruStNdTHqyuyyHNUUK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.132:9999", + "registeredHeight": 1924829, + "lastPaidHeight": 2127710, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtSwsWjFE3yCN4HJXzv9hjD4y1RPmqXHn8", + "votingAddress": "XpcaCwDUABd6Z3a7rYrNMN7NXgx9zxCFDE", + "payoutAddress": "XfdCX9gHXywg9nk7r5ty7CsexMbvpQjNch", + "pubKeyOperator": "ac8c275c3ec5d738ff880cd2dd932eaa66203a977a611e08a6a810bb240f73a03c9a91c4e65b1e86cc616a1246f187fb" + } + }, + { + "type": "Regular", + "proTxHash": "a51abf9a632ea2e7b954d36638774b3d5435a9feb916976860b263e39f47d9f7", + "collateralHash": "a51abf9a632ea2e7b954d36638774b3d5435a9feb916976860b263e39f47d9f7", + "collateralIndex": 1, + "collateralAddress": "7Uv8QZUrwNb9zLWnertvLqVVHbZyiXQETg", + "operatorReward": 0, + "state": { + "version": 1, + "service": "93.21.76.185:9999", + "registeredHeight": 1925375, + "lastPaidHeight": 2125588, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127787, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XijcadUdfgZyhNkBEEFpMiTPmQeiqAvGF1", + "votingAddress": "XdX9gnodd3deNgBrFqMv9Tbg7J1mEt9YZv", + "payoutAddress": "7Uv8QZUrwNb9zLWnertvLqVVHbZyiXQETg", + "pubKeyOperator": "098c579177d294eea2f2f7ea7972365e80fe6abc12a876222ebf6da31bdc4e8768a50739af2eae4bb961270874a8cdd0" + } + }, + { + "type": "Regular", + "proTxHash": "2b759fd7c0da427dd1c5be252dcca80feb1c9263650219cb10ea544ccb18fd1f", + "collateralHash": "cea21971cbb68907b4aa6a5856a19eadab999fd5743af3f64328098c2c15116a", + "collateralIndex": 0, + "collateralAddress": "XrRxDz3v6vNM7NNNr37ooSG6XBt7mJ1dTB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.25:9999", + "registeredHeight": 1925532, + "lastPaidHeight": 2128357, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcVjRJeqYV32i17b9RcCHJvkqcFAmeyoiu", + "votingAddress": "XuYcjEjc3GDFM3fv34iKWxAtDubKoojRWD", + "payoutAddress": "XrRxDz3v6vNM7NNNr37ooSG6XBt7mJ1dTB", + "pubKeyOperator": "953b13f700916f29a8a48bff1a73e10da8b6766b22ae1fc00b942a101708714caae184513e1b8374195e009de113f6a6" + } + }, + { + "type": "Evo", + "proTxHash": "698733bb0872c94a08cc02df294e106c542dbd2dc0393c34aa71bbdfa5583329", + "collateralHash": "90bb29a0de601f8774348d4e393cb65313822ef146ff828869c459b28a06db05", + "collateralIndex": 1, + "collateralAddress": "Xr42cBFvr739PNP66np3r4iMkw5irMsRYC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.236.151:9999", + "registeredHeight": 1925868, + "lastPaidHeight": 2127793, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1976332, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgtGsSKzBvYNoT5UrzyBRxbYoiJ9B6rbDf", + "votingAddress": "XvqUMzeCEhnj9RLYcZSxcQBdTigHj9i1hN", + "platformNodeID": "c1161c96de3dae28cd7f20ff8c2aa7b94b866d76", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "819a0396e0dbfcd22d5c992179965316bcf13110a1b70a084511dc38870ab73056b50d2a8f1780d61cfe28c13e013f21" + } + }, + { + "type": "Evo", + "proTxHash": "57f2e758bdf8c592062dbb7b9b13bb1515092eb4856aca8f405fb3e1b098a9dd", + "collateralHash": "a698b9db1e50a8e13f1168c4b50a20e78c54d765f4c487e3208807f124685026", + "collateralIndex": 0, + "collateralAddress": "XgEJ1SSN16gKXSZBpabZQTrnnXTPvPLEVo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.243.59:9999", + "registeredHeight": 1926593, + "lastPaidHeight": 2128759, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031542, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb2eiSnBebSid9vJsQfctEDxoqxNUebD9e", + "votingAddress": "XfNXvjF6pr9FrVW3WH5wagYDicrYvEFkY8", + "platformNodeID": "22cbcf19e2dc55d7d38c006721e4bc5cbef8577b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XrHmoKE1gmd3FDmjg9tDoziNdhAhL7asKd", + "pubKeyOperator": "89efb8ae57159a262f6dcd079331ddb442829ba7db72fd76ff8e81be63fd4368a5d7917535ad5122ba9f5b32734e56a8" + } + }, + { + "type": "Regular", + "proTxHash": "d452efa28d293bc609245c38580327c74e571505ae6302f7a929328ab53d09c5", + "collateralHash": "0772375cc89ee1aa214a939498382f1bd159560967405197945dfde1fc882f93", + "collateralIndex": 0, + "collateralAddress": "XgGW565seF5DggK3yJjeJAkxnMcrLUNUw4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.159.2.12:9999", + "registeredHeight": 1927116, + "lastPaidHeight": 2126437, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmXhcumzHofnr3b19nDtuQkWX9UqkGH38k", + "votingAddress": "XsUPpqEwVVFdqib8xJEp6gdT2t3VRisAu3", + "payoutAddress": "XnsqxQLGQv1FTwXJhakqMYL8MpT1G2tegZ", + "pubKeyOperator": "b7ef615f627bdffb50a5a2927440c1847b76d57b4e4fea6f1a5521b2477fa2b88e0738ce8aaf5df5f46dd1bb16a0863b" + } + }, + { + "type": "Regular", + "proTxHash": "f96151d07a81ed1190a639522755d8a1ef0711d9174af8e9500fd68808772bdb", + "collateralHash": "fa3741ec98657ae99f069ec1920181da8e6d8d1bcb155cba78b5252729d47780", + "collateralIndex": 1, + "collateralAddress": "XvfsgDpcFyKgcrZiFP1eAbXFo8oQW55GdV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.133:9999", + "registeredHeight": 1928449, + "lastPaidHeight": 2127628, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1990006, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xoq6YtCfpLKmpxCjgEAiXacs8R2jujhCA2", + "votingAddress": "XfshFtZhf2V6wdpMYegL8u9vv7QEiYt3qp", + "payoutAddress": "XiVN5ePmxSQmxYdmuU3wDrcUW3dspzTVU5", + "pubKeyOperator": "b7f51c215cd603649b3bc895ec20a1c6eb0d6811cd7ebc19ab6d985b3b9dc2b7ad52a6c091cb45211b11e89d31bb8cde" + } + }, + { + "type": "Regular", + "proTxHash": "fe4a5b70647cd9dcdcfe45e0e6540d04efab96edc4fb67ebcb1ec48e2d1a2b1c", + "collateralHash": "cf47b7341b2f09df9276d1f1031db56ffb3aa594929c96a74052545a38f3fc8f", + "collateralIndex": 1, + "collateralAddress": "XkrREAC3n2YdzA8AeA75B3Raw6UNF5fAJd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.143:9999", + "registeredHeight": 1928450, + "lastPaidHeight": 2127617, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118431, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyxHVAGoUzBWqXt4fiF7grqNKY4NuLAgNP", + "votingAddress": "XjAyiSF51PUNtzkrAk3hPYgfRSsCTTvnVY", + "payoutAddress": "XdH3T1mktzVCja3yfviHVZmxHqcRLJsKEL", + "pubKeyOperator": "8fa7e2241f2618f1352311f4e67d82520a19bd667d778d6914e7df78b3b3a4c2a92adb22ac244e282401c73be8cca751" + } + }, + { + "type": "Regular", + "proTxHash": "5af8d25470e491c395b67acd2fedcb6257121f0e2122a8c65bc5df4804699c9c", + "collateralHash": "8ca2e7fc483ab4cf8018b9d463e39512e1edc1be6528f54e3db2e601db92686b", + "collateralIndex": 1, + "collateralAddress": "XsA2kKAC3kAP5MABGs1bhiwtauiSZQaSu4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.197:9999", + "registeredHeight": 1929098, + "lastPaidHeight": 2128226, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkx1qqjeG8rCWgbdxFZyBxSKtHNWjcjGsm", + "votingAddress": "Xc6vZXtUYpdBzcimbUbMotfqJjRrrqdsZp", + "payoutAddress": "XsA2kKAC3kAP5MABGs1bhiwtauiSZQaSu4", + "pubKeyOperator": "a5cd8ef674cd87e5b44cb8e8eb2909e70efaddbc552e8e0ba15242937fd6930b84d4371c23a169e13c4ad6804a7457bf" + } + }, + { + "type": "Evo", + "proTxHash": "3d1babd752d50c51084b8ab7f719b391d482e7417e162970ccdd06f49d9512b0", + "collateralHash": "ebe591ab16213042d56ad0c3e5f9c790380309522f3d7083940a28325bc5ea9f", + "collateralIndex": 1, + "collateralAddress": "XvWKUfPtZahdf2jmRDGMhZDY74jimjg1y7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "108.61.165.170:9999", + "registeredHeight": 1930839, + "lastPaidHeight": 2128377, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1987428, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhzMTLHikK5ZVeLxmM26VtQdoaHkRTpRGY", + "votingAddress": "XfCyehmd2bbXY72PxNhyNVuTUZ7gWJMS7o", + "platformNodeID": "0a77eccd7aa0be2bba74cba55854a5a72397724e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XoC9o1CFgzYGLNsjdqYn7x7QxYvSGEFaN1", + "pubKeyOperator": "a5e8668241ab026dba36f4dee731cea18f6eef6faa2947d1125f5379be852411e413c401a00daebb3c48884dc43781ee" + } + }, + { + "type": "Regular", + "proTxHash": "6f05396c151508f2a8c132453e2bf5171aa1ed0f26d406da65939555a7f42e19", + "collateralHash": "2459cf555d8bc04b51e194caf67668cfcb7b1f62c113541cc63a42f2126d9469", + "collateralIndex": 1, + "collateralAddress": "XbD8DyRB4QaUkt867c8dPXg8TNLG4zdUGC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.109.95.133:9999", + "registeredHeight": 1931288, + "lastPaidHeight": 2126928, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoXUt8uTjLhdcnhnq1eKSCPBy9eaR3CpYF", + "votingAddress": "XmMaCkNgdTfMVzodfz5r25V3UPx9SjbCZ1", + "payoutAddress": "XnB91jHVC45PZT6zBMeawcPB8Zaiiu4PDz", + "pubKeyOperator": "8ea3406ebc0741691fd005e1c1656f8c85c2e69b69b4c9452aa42320f764e9512f753ce3479117b58bc2df922d3eb9a4" + } + }, + { + "type": "Regular", + "proTxHash": "5cc4a17b64e38c50acff9aea9eb8d28235aab868989db87a06a36d903f5dc57b", + "collateralHash": "5222081fab64a2ee7cc14fcec72f1d3a99c053c29718ab4ace8f315070cb5d89", + "collateralIndex": 1, + "collateralAddress": "XxTxzqqpFTUMtVzCDgaP2BktoqSPpm7mAC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.235.200:9999", + "registeredHeight": 1931399, + "lastPaidHeight": 2127034, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp5oWrgQnejEjfF9jKV9W7Yti3heZP8ePk", + "votingAddress": "Xoxin6kNiDubSo9fKwqRV4JhFbM4TkEYHg", + "payoutAddress": "XxTxzqqpFTUMtVzCDgaP2BktoqSPpm7mAC", + "pubKeyOperator": "aa7018be9522d17f5b72c49035ed2178b399374b3556786bbf1964cd88fd4daf15abba9142f659499a253b25157d7103" + } + }, + { + "type": "Regular", + "proTxHash": "3538f5ab6588a756ea0a86c680542b414cdcdaf592ffc3d92a0dbd0308a3772d", + "collateralHash": "08e9bb3a49d877a38a22ea729eefb84019116ed03ec94513432cb7824a00ece6", + "collateralIndex": 1, + "collateralAddress": "XqSeaKiXxo5hUnnJmqkNTdTsFR8uecxJUW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.217:9999", + "registeredHeight": 1931960, + "lastPaidHeight": 2127589, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010105, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr4h8i894vw5L9zHtBEwjokxMpaeT9zuPr", + "votingAddress": "Xy6ALHZr5uNcFZ47fDU4q829yfYbnJPvvJ", + "payoutAddress": "XswbTSC4vmPkuLWk7pkZkYayS8UQ31g61u", + "pubKeyOperator": "b136bffbc023201b3e583a891ef6c35c5d2a1a690301419b7300d6e997e30458c6d0bc0a37f9352941d6f975f81912f2" + } + }, + { + "type": "Regular", + "proTxHash": "2808c6d3ce99c6c348508643a2c90ce1a700334963afd18c9b91c6d9fcc55da8", + "collateralHash": "6c60000275f564076b7a048daa9682ee3f3b0be2955f18974ffb16017489803d", + "collateralIndex": 1, + "collateralAddress": "Xw5xDnL2QzUFTzMhCcqEhCxzLjiVg7Q7vT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.218:9999", + "registeredHeight": 1931961, + "lastPaidHeight": 2127538, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb7mc4DyNuL7y1B3BNe2Cq6umaEdkkusW1", + "votingAddress": "XidzQ8BKae5q2qpEw4WM3EXiyyuKM3C8hV", + "payoutAddress": "XpH9rjg7i9VZJuSLWUC1whdvv8PJXnfMUM", + "pubKeyOperator": "943afd01b21355b55dd996f2864c6c69f46d69cbd2d082b87524937312870dbdde5b9e7f65b5196150d8456af39ea32d" + } + }, + { + "type": "Regular", + "proTxHash": "c858c85f92fb0581068ff827d0b0a649456e4ff9e97d0826c79d988ba064744f", + "collateralHash": "1118b321b7ace198c270148914e2c7a0c46e0f3b056cb178966efb1b1862ccc6", + "collateralIndex": 1, + "collateralAddress": "XgdGy34eR2X6UJQe5s2NzLNeaovBEcM1Xz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.164.163.220:9999", + "registeredHeight": 1935745, + "lastPaidHeight": 2127745, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnt6BBTQRYdP6szPN9A7CiogqJ5stvhToG", + "votingAddress": "Xi8zZBzLUEXXekJuy4wuFBZsijkTsPpKXx", + "payoutAddress": "Xg7WGW7kaTvrBFVotTEuMy8m6Le2q3VbRQ", + "pubKeyOperator": "8e3c87f5f307859e605233f7248c81c67a50b45f9de111b5d23f189dd5db9951955e4565f54741add2c7731bc5d9d559" + } + }, + { + "type": "Regular", + "proTxHash": "023ba488bcebd33a28cb9089a6974119351710c57f80262d3eab4db603ecca14", + "collateralHash": "d0fdbe1d6c00b49d9fb4febf02a99766d48a4ee85731a2879cb830e9b32e0894", + "collateralIndex": 1, + "collateralAddress": "XbQdc8Ty5mMsVoi58xDretEKXhTyGu3u5i", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.221:9999", + "registeredHeight": 1935748, + "lastPaidHeight": 2127606, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2037097, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoHpLStsX4WMi2NtdnRU4Rzm8Er7ZJhjEV", + "votingAddress": "Xybd1wNFMgMxvkb98uHR5nYKchritstwoX", + "payoutAddress": "Xvs6vDhCJxmJ8Kig3vtyZWiLF7ojTfNUee", + "pubKeyOperator": "a9ff8c9c4ba303a29d80c7d095bbf28c7f9ddb82fec84d39606c6345b321c169bc2543b65d07f5f84fda283aae24bba8" + } + }, + { + "type": "Regular", + "proTxHash": "c88167756f5cd9f3dff8283a1441cb917bff817ac6ee0ade97de0fefa79d83c9", + "collateralHash": "394ce5a2b016e7f2da793fb382be67b061889f131cd112807ba93b0f6042d4d8", + "collateralIndex": 1, + "collateralAddress": "XjSt6p3XQGPYZc7oYVwxXHHExhGYdtRZos", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.215.107.202:9999", + "registeredHeight": 1935947, + "lastPaidHeight": 2127873, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe127DXTifEcQkYrxEC3zdpum3SujAFvAH", + "votingAddress": "Xe127DXTifEcQkYrxEC3zdpum3SujAFvAH", + "payoutAddress": "XcadojnEmMY72ngkBeFBUcrYH1s3qymeVU", + "pubKeyOperator": "862069076b31b3bb4987a9d3d061d1770312ef53b7bac93c220ab2bb49db012f4dee2f6ccf3ef90ea921bce05d27d0b7" + } + }, + { + "type": "Regular", + "proTxHash": "2b5faa610119997eae8988819a7af7b5e95c4cbeaf64aba3777962d0a398ae42", + "collateralHash": "b9cc8fdb6272d24c0f74023e493fba2ff4c43e1513192e0a24e05f3b351b934d", + "collateralIndex": 0, + "collateralAddress": "XeYy8PBubisHs7y8WTR2UCEHtoy6CBDzum", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.208.184:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2127141, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbvv2aAQ9ini9yrkdVoj8PRXQfmidyVjwZ", + "votingAddress": "XxNvuZgz7YgZQeL1V37XYrtDXwHgqaK63r", + "payoutAddress": "XeYy8PBubisHs7y8WTR2UCEHtoy6CBDzum", + "pubKeyOperator": "92b40887146cbf0eaf4f6b3a72c7d86237b42ddbfeae340440ea30bb8d26ca014cb8bfd6e16f2a531fe14fb13e553b6e" + } + }, + { + "type": "Regular", + "proTxHash": "8d436c26dc2d2557f4e414b3c7f7714be8d7f8a002600476f615200cbfaee751", + "collateralHash": "3c5c57e0f1bbac89c78060ccff2ad972228a8b1a7fa0f971880a345fe7b22871", + "collateralIndex": 0, + "collateralAddress": "XhoeCWgD1f3X4V4Zh8TDJheXVoPTEyCwT2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.214.18:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2127146, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyNjwfTeP1rNdpTx88ahHpgAtgNckdXquV", + "votingAddress": "Xgh3xepACBazC94QsYCKLq52GGZTJ4Z4GX", + "payoutAddress": "XhoeCWgD1f3X4V4Zh8TDJheXVoPTEyCwT2", + "pubKeyOperator": "8a616a3a18095c974b2d639bf03d9cfc8a20cba8a35c623658f8d526cebdad30aedac29818ae49b80c5fc689070984f8" + } + }, + { + "type": "Regular", + "proTxHash": "1e964fcd4064ba2dc2104c5f52d48ef6b679cffe6a0cce2af7321a5871b4fb70", + "collateralHash": "5b5d9bea43136d4fe8b279e1a970039a39ab9b64ff1620eeec42f87343dffb9b", + "collateralIndex": 0, + "collateralAddress": "XwydU9ftMLz23hGZ9CsSfaJ7rcR7U6CmA6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.114.95:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2125899, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs13z5xg9f3Caw6qtZkZYM3nDpNpyd5JvT", + "votingAddress": "XyiNF3BrZbRzpd2U9iNWEZKoAqEd53ZTBH", + "payoutAddress": "XwydU9ftMLz23hGZ9CsSfaJ7rcR7U6CmA6", + "pubKeyOperator": "b877e7b4a11f2251b7e655989d32d33b29bcdaca2a97be3e67d9ddf45f74b92a45816e56a18d90a888b96bc812aebcce" + } + }, + { + "type": "Regular", + "proTxHash": "e2cc55a7489e751132a1049d83223ee8a023602b5c48062df90773d8861c237b", + "collateralHash": "ce6c89775bec70f233e20b996f2ad09579de9af4066f988fe40e6d688eb0a832", + "collateralIndex": 0, + "collateralAddress": "XfJY5Fw5cXrzGohYtYY8PkYz5rtr5ehT6y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "66.42.53.200:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2127150, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsZMKcJxpHKC8FB9gGE4J31jgyvXXqoYQ3", + "votingAddress": "XgpRGjGv6Me3KgPSUVczS7NYERwuVkdQN3", + "payoutAddress": "XfJY5Fw5cXrzGohYtYY8PkYz5rtr5ehT6y", + "pubKeyOperator": "a0642b7f15eea540280f292b15c6966ebe470969d2eb88c26e2950926366d28d9909286d3d7f9e388058744d1402125d" + } + }, + { + "type": "Regular", + "proTxHash": "cf655c475813d1d4702e30a6324d1f7ab1ccc89f709769a162d31938ee069f83", + "collateralHash": "4275f02b9f660790d53314f41c72e5dd9d57c428cd61e0a70a587ab621b4f14f", + "collateralIndex": 0, + "collateralAddress": "XkT5PvjiwBzaKcMPYu3oGZakpnckHEKMxa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.77.170.75:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2128844, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1940708, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhVNom4Jo2o5MThPmsJHJVV4P3f1japmmS", + "votingAddress": "XsSJ3HLn8GiPzkhfiCDx48g6d8SeUyRQqP", + "payoutAddress": "XkT5PvjiwBzaKcMPYu3oGZakpnckHEKMxa", + "pubKeyOperator": "93265aa5641a2703d56019313cea8ebfbc80357b709b44965a60a9b55a453bccb8d69ab6a9e0f9395359aacf1db4e0cb" + } + }, + { + "type": "Regular", + "proTxHash": "526df51f2bf43ccb80350f720b555893f06c472e7df71da91554769fa004079c", + "collateralHash": "f8272b4293ed2d07d5f3b442396804f59c39aa9ff5daf8030a74654dc40fe4a7", + "collateralIndex": 0, + "collateralAddress": "XfvDsWJv9D8QvDJTxc8EqDhd5hBc5seajZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.74.200:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2125900, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiGYMXcGy4QRXeYWAGEny8bMZVQpJzXMcH", + "votingAddress": "XfAF6C7qNSk85XVGaaTuJPFSBsuvJsPQRS", + "payoutAddress": "XfvDsWJv9D8QvDJTxc8EqDhd5hBc5seajZ", + "pubKeyOperator": "8a164d1a4438a3c03e750c26deb15711d4b5c910478fb04f707111cf093ab056eb36d66a5ff9ec061bace221c0be830b" + } + }, + { + "type": "Regular", + "proTxHash": "aa2682688e884d04d8263d58d438e893e1802f78745951a105b5639fef552c9c", + "collateralHash": "246cf71d3d7c090fa7a941476a525faac8011ce24ca2e2260b34ac01cb2cb591", + "collateralIndex": 0, + "collateralAddress": "XgPHF58K3bufkv8wyqTbG7qcWepvy3reBZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.70.144:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2125902, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XecML98Rfx8QVteqKvE7faprVGvr3aLEC4", + "votingAddress": "XxmmmDthwhGsWbPruJ58gwaix6vxCPpgZU", + "payoutAddress": "XgPHF58K3bufkv8wyqTbG7qcWepvy3reBZ", + "pubKeyOperator": "88b83df8d5825bb4a9ee4ccb1bdda6a7b8f597c077bcbb0e6be26cf27185f7f6216836022a26343080368e5a83c03db4" + } + }, + { + "type": "Regular", + "proTxHash": "831647b4be0807b4a67e4d0cd8063012ee366d01e55286707b526fad3aa69dc5", + "collateralHash": "2dd447056fee97977c0fa2bb758a964991419ea50f1113416b08df438795bf79", + "collateralIndex": 0, + "collateralAddress": "XhsriaFFg7kdEUeQzznPc1epynKP9B2Gam", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.152.238:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2127163, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp4LMrUMNXAVS2byEhzwrnRhDQyvDP9ZvZ", + "votingAddress": "XjfwLajHmSUoenCtHWGGzzavBJ3JZzAj9a", + "payoutAddress": "XhsriaFFg7kdEUeQzznPc1epynKP9B2Gam", + "pubKeyOperator": "8028748213476ffd2bb628b7ad08768b5845a18372de627551f30b10301b99197dd1a57c2a13805bf0d2c2dd5290c1b9" + } + }, + { + "type": "Regular", + "proTxHash": "7011fbe537fef15afdc96905829b0ffdf711a00706937eebd9ce774746210cc8", + "collateralHash": "0ddeef7f09a5ff6ddae011657124144b45385e7a12291a565be3a98b99d57bb2", + "collateralIndex": 0, + "collateralAddress": "XgCsS5eJw95jLQCzgxvvvLoTQxQ8HVu4AY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.77.46.21:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2127164, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121056, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XygAFvfFh2Z7QdnJo11TGtqztaQP5mRTR6", + "votingAddress": "XeTFFAiQsPhHJD4izL2T6StwVcSP87nLKu", + "payoutAddress": "XgCsS5eJw95jLQCzgxvvvLoTQxQ8HVu4AY", + "pubKeyOperator": "98c54e5ab8a0217354e2c36c95413b735ca4adc8d28b6f4297f39d66b5b9e5089a94ca5c2d3ebe53393920a4ab8c4de3" + } + }, + { + "type": "Regular", + "proTxHash": "9493762d8d69dd28d7eb1fc4ff1dd21d0cdf18702fe0605481d4dc208d1387cf", + "collateralHash": "0d152ab688b751caa73f86be653bcc70dd80ffd66d576074f9e1cdf878fc1a75", + "collateralIndex": 0, + "collateralAddress": "XqRJYgw6s21RRRFcEykaVwQrhYk3kSXz7N", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.72.38:9999", + "registeredHeight": 1937379, + "lastPaidHeight": 2125903, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgmZGVzWGUQ8DUNgDGZHGaqrhHh85FTk5j", + "votingAddress": "XhjgsRcMxQwojJMfT24cutosWX675RS7Lz", + "payoutAddress": "XqRJYgw6s21RRRFcEykaVwQrhYk3kSXz7N", + "pubKeyOperator": "8b9adad8255307b05eb9df204c163348233e15527b8f5bf3403fc45fc29e261d54ed7cf35feed6b4d0591dc595e5aa20" + } + }, + { + "type": "Regular", + "proTxHash": "43ce153fe5ef0bf77ed0907f3ec9c028dac546f645e308f1fd5a7b4717f3d20c", + "collateralHash": "29ea4bd22850ccc56425f4ab6637d91c29078f0bc5da25c6e04de0cf56cc1a3f", + "collateralIndex": 1, + "collateralAddress": "Xr2czpSzaj5YkBfEzjuPVE8UPCxW3WHEkH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.225:9999", + "registeredHeight": 1939390, + "lastPaidHeight": 2127764, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuuHKa6U2vBFwoksJePyRmvQBP7woL8fMT", + "votingAddress": "XdFRZkceJVQ3SZDrYw27gd8zJY4EYUSSNz", + "payoutAddress": "XqXW6A5TDWbrNjLhmqdhAKMfzXbaXXpJkm", + "pubKeyOperator": "826563df76f78a42f41080aa4737f91af6e75304de20c7fc9c6f4954abc5f03921e0a3fafd49fa332a6cc5bba3560e3e" + } + }, + { + "type": "Regular", + "proTxHash": "0110cad9fc9e7aeba46cdda2e2ee7de6128d35e77eed6c669d083f08bfb929d7", + "collateralHash": "125a5a8a73cf2b538155d213e05fcda4ed6a026191854b047838ec4973c1112e", + "collateralIndex": 1, + "collateralAddress": "XsFm6QqQXZ3CGbvvGjveC6pyupEj2HVUSk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.231:9999", + "registeredHeight": 1939391, + "lastPaidHeight": 2127766, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xiai3ddfaoB1eSdM1po7ufwHahKoj86oAW", + "votingAddress": "XbMTn64jWFJ5jkQSdd3kuEoQZWZcgiSc5N", + "payoutAddress": "Xw7sLYScGKQsW1DLCezE2bZRoD2FDPkbjL", + "pubKeyOperator": "8827d4dd172da63df89bc753e7256b6edaeec1f69097b10c5914c97d704409b69ec86de0da1617083d63ff0e5ad12814" + } + }, + { + "type": "Evo", + "proTxHash": "a61da3f47bf21d005f64fbf729dfb832422b5ccac2c5b8173ad17f334e15aa42", + "collateralHash": "3c892bd67271280b91be59ebf53001b2d8edc01125d68b1316a2653e368af6c2", + "collateralIndex": 1, + "collateralAddress": "XokGKtm99bWnLeQxi8LQayAMCPVezUsrcE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.70.131:9999", + "registeredHeight": 1939783, + "lastPaidHeight": 2128763, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2078712, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf2w3Jp3xgtVjyaotHVf8x7zT8GVXcruPy", + "votingAddress": "XtTn2t3XiFER21VTH6jrkY13UpuavbZLXV", + "platformNodeID": "698a5edb33ce2df236a4db13d35cc384423f8fce", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XwZXpL1XwdS5F12jmnY3T7B82ASUXC8xSL", + "pubKeyOperator": "ae0bd0c373077c4386b21fe8a460c88b075eb2af76c38b65cbd01d9098bae2921bfaa882415ed472d1545ccc380b4e3c" + } + }, + { + "type": "Evo", + "proTxHash": "0c3774b735180708d90a53d5fc99a2699a9a53cc21cf27505d1a184e1ee836bc", + "collateralHash": "8b9bf8d0e080596fd5a4e62d2413ea6f5f28bb5132c670963f46103f85e0cf38", + "collateralIndex": 1, + "collateralAddress": "XbnrcJNNUKZrY45kQCWTyxdgu4nRZ6j9MR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.34.248:9999", + "registeredHeight": 1941100, + "lastPaidHeight": 2128393, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2091855, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfV8ZWNJUBwxryXAo5NPej77QWnYtZeWZz", + "votingAddress": "XsQL62mWdTNXSibXXR9U7ZuwhswzKqEyUN", + "platformNodeID": "4c644b722f2d59cc729699903cd5d8118caf1593", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xf4YjFCSTiWuSVBNGiacDgXdKfuJq7NtMH", + "pubKeyOperator": "a851bbaa9f4c4606dba0f78424878e6730a452f4ac8254ea50f7eb08f84465fb907f8448090948cdb7bbab16c341872d" + } + }, + { + "type": "Evo", + "proTxHash": "8bd1644adacb12968a913781ec7c5d6ae7ba1d9b6a65217cf45c900ef8053181", + "collateralHash": "ac09ac9f2320d798066c4bdb678ca8dc7fcf4835623fab3b2eea4cd7a60d36a4", + "collateralIndex": 1, + "collateralAddress": "Xvx8ibFNgkB6dBSn2NqvXWrFmDp9E3XA64", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.34.250:9999", + "registeredHeight": 1941104, + "lastPaidHeight": 2128741, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031519, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqFEjQmRgt5qmZzFLEh5auPKyEx28r9rhU", + "votingAddress": "Xi1pjpUZuZFy4tNGjMgPqxP6bmRvYmEXT4", + "platformNodeID": "5e56408e077c1e664c4c6a6f632211f649b72026", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xn2U7FAcSkHeHZbAURdfX1uczxqBMpiTvt", + "pubKeyOperator": "b62e8f7b6d221570111aa6d01ca01185666a00e71782fc2923eac8d98e459615fa9118df255225809344f58424f6a730" + } + }, + { + "type": "Regular", + "proTxHash": "2b6cf611e4e7afcf3a3de926c4547d2fa2aeacf49d13b9d56b38cf600e31ba7a", + "collateralHash": "64557c0c6d9fabb5fc087c1352daeaef8125fbdda7b864d43c15a1a1924932b6", + "collateralIndex": 0, + "collateralAddress": "Xpp1uVkscpb9Jqy4urSsvMKdNtdLo2HJin", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.230.97:9999", + "registeredHeight": 1941903, + "lastPaidHeight": 2126578, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbxYySnAjxYn5ykQBCtnaYn5cghtFDrQiS", + "votingAddress": "Xu21H1Y2vSb59zpwtkc77g6GGyNRFXTfnM", + "payoutAddress": "XeqvLbLHBYhvq3J1UrXEzSFWg47JoW3cUQ", + "pubKeyOperator": "a1d6e1e685401c7c964e4037a7b8b1d3161ee86febaa4e0177e59d936d2d2e0979e25041be63ba3881bd8b04fd9877b3" + } + }, + { + "type": "Regular", + "proTxHash": "99349e07700a8b6fa4b1fee01693b88df838aa017642b451efc3cf9f844548f4", + "collateralHash": "c266faa0ed30fa27459b85633f948a30cd7577888fbe9715d6555b4722dbf4d1", + "collateralIndex": 0, + "collateralAddress": "XherzcFCRppjUQNCw2DiKLYEgPJPjnnweb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.198:9999", + "registeredHeight": 1942299, + "lastPaidHeight": 2126965, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwQLXb2oc4FLqVruScdwRjoD6zBLnck2oV", + "votingAddress": "XjdHAm77hA4gadePMBt1uvkNLred35XpDa", + "payoutAddress": "XkK4RqxKUfbUKAv45jxQcttLVNyanN63N8", + "pubKeyOperator": "81f6990fa8f9cd81641759078714ba52680f7328742291250b259b9e593de91ac79dc883b462394610cc2799fdd2ce5d" + } + }, + { + "type": "Evo", + "proTxHash": "e5d14cd81686e0ccc081470caf59e6ce4ed1925816d26ad66ff76b00e9f29c59", + "collateralHash": "56f0b40f34aca42b66c30d543ad2b6a3d24c00c562db9148074c1fadccf6493f", + "collateralIndex": 1, + "collateralAddress": "XuTM2wZine2BSr1m1GY4JqabkRTU5GcCeL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "54.69.95.118:9999", + "registeredHeight": 1945766, + "lastPaidHeight": 2128397, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1984082, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XygzPT31iEWNhpw2AyumSaHdoTZyR91CLk", + "votingAddress": "Xsa4yBy7JLMs9fh1KJ65BgkJ5MrpzQsT8k", + "platformNodeID": "e78a0b32533115816a01e3b96051ef5a68ada654", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xe5dmSbjJoCfVZRZQDLVy13usXobNucok3", + "pubKeyOperator": "b07b4327551d5734a52a316aa45874cd09b580d706fa4fb35cfaa2e10ad6c142a2dd23ba9cec3344a8964b5e60d3ebde" + } + }, + { + "type": "Regular", + "proTxHash": "78b1cabed82af58237e52d2f4cb40d3342a9fed49c818463cd22c1ed315eb070", + "collateralHash": "b18793b533e518e34cc9747393c3eebf9c230a03082a9d81c4ff0791a1f849d8", + "collateralIndex": 1, + "collateralAddress": "XgySVzssdkBc2T29f9ZxRkkK5Hspu7qgiR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "144.202.19.42:9999", + "registeredHeight": 1948218, + "lastPaidHeight": 2126570, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120515, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoxPH3Lh4WJzVsLAmThryioMXcv52PLrPi", + "votingAddress": "XqS378MiGpQzVDWTW571vvroeaD3A8vMFm", + "payoutAddress": "XgySVzssdkBc2T29f9ZxRkkK5Hspu7qgiR", + "pubKeyOperator": "a193d738de366c96e276656dc424c7bbee967ac395f8081140cb5ed4bd0b8fab684e74125a751bc28560b2f516ba24bd" + } + }, + { + "type": "Regular", + "proTxHash": "2809fe8a470b49398ecbfaa42a1eb08ca9bd85d5d1eb494565330b8766f1c0bd", + "collateralHash": "81927efb51f3c5ea7e9be5f2c535d428a9dbfbf3e0b60077f511e71ab4380eb8", + "collateralIndex": 1, + "collateralAddress": "Xq1STdvMnpmLcyYzsGFDB7Lw7EtDBaPkT5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.248.53.48:9999", + "registeredHeight": 1948218, + "lastPaidHeight": 2126571, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120515, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxePz3XvT6paYn7mgvzUnoHarvjCxU1ELG", + "votingAddress": "XxLwcnFEsxUriMXAKGRagrN1VUdqhaNGaC", + "payoutAddress": "Xq1STdvMnpmLcyYzsGFDB7Lw7EtDBaPkT5", + "pubKeyOperator": "9081e8566e74790ba82b291627d7a612e76ccb7aeb1508b78162bc543c564161754446d28b6bb07a345420b72e34de54" + } + }, + { + "type": "Evo", + "proTxHash": "5348f5464e85cfea9cb003c41c07fcd20a138310d77fc97a3a98119570d89df6", + "collateralHash": "b557d445f9b52505112c3ab9b0c3b3d14f82cc3a5802574ac6cf2175ca555662", + "collateralIndex": 1, + "collateralAddress": "XwRbdspiSjySTnkEoCrZqjVhUYAFg9mMVe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.199.34.251:9999", + "registeredHeight": 1948875, + "lastPaidHeight": 2128721, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2031515, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgPnAUUmdjBuQkHpm1iPFB6LYdgbmKpLMk", + "votingAddress": "XerBcs9gCu2yadFdAT6efLB3ameRj9YLxG", + "platformNodeID": "d5977552a876985eb324f090d837c1c99c7b78e2", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxJzQGkojPL5RvpCUf6K1mH2daVprzYfEi", + "pubKeyOperator": "86532969f249ebb391d4576432045d1ff2a87560d57cf28683da5c31606739533ec6cc44268b7a94d2c2e94be8bbd301" + } + }, + { + "type": "Regular", + "proTxHash": "713b073b184216c15a4fce98a4862bf247336fef9fb6afd26d63cbb0be99bb90", + "collateralHash": "f30121ba5954376007560829c369984b66aea5fd60c21ad5980ef2751cb49688", + "collateralIndex": 1, + "collateralAddress": "XxmbyHcpTJX2DKbQqA9txjJiATn8oAJ4bM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.72:9999", + "registeredHeight": 1950532, + "lastPaidHeight": 2127742, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqmWauUBH5LZ6J5nW2cD396ySRUFwJo3na", + "votingAddress": "Xytqq3CWDgVREgkodmGGgA37DJDSz7UCj7", + "payoutAddress": "Xe66oQTVSNZgHZmnaKXc3Q8BDAiXhzCFz2", + "pubKeyOperator": "876cbc932a66c428217e9dab5aa685fee5caa1f3a0daa0c6d6045041f312bcef12988aeb06a484351f32db03e7042698" + } + }, + { + "type": "Regular", + "proTxHash": "bac5e7ef6742e3855333fa0162ea1650e7d8951109d04e8cea1d31e0bdd17f55", + "collateralHash": "7cdab82560be458c159eaff4a8f59de1f89d96ba8b8db5fe52bc69564b65bfee", + "collateralIndex": 1, + "collateralAddress": "XxpRkb7E7rwnDyCVMoeqJadTDjSo3CpTX5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.163:9999", + "registeredHeight": 1950534, + "lastPaidHeight": 2127743, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuYas191itAX5ZpFidu2foEEPkyp5r1HWp", + "votingAddress": "XmWeRdmXufBPFTuhF9245BUoUGkp6EoUrQ", + "payoutAddress": "XiaJQT6EyAyhjVmVXiqmqDRva238uRYbzj", + "pubKeyOperator": "8311f94d41b7d58f715b3918cbaffb68a5466295478323eeef81c9eaffcfea7df3c2b89a7ef66158639730129d77e5e7" + } + }, + { + "type": "Regular", + "proTxHash": "b6078e4a01b36c90889fb6f1d13bce70925af080bfbd94a26b451d7cd3b5957e", + "collateralHash": "d38e4231ae0d6b97813f6ae7fa4d8c9c046028f07d2844a987ddce8e7f044e69", + "collateralIndex": 1, + "collateralAddress": "Xs7azKmLgiY7bctjJ2JdmNy8Xd1aRAyaUZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.241.96:9999", + "registeredHeight": 1951113, + "lastPaidHeight": 2128187, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XavTArRo2bU3SwSDm5cuVZHcrceeV1KgEL", + "votingAddress": "Xqy8kugTkLRNeCjfpKvSDMNB4kuBguLVB1", + "payoutAddress": "XtSd6yggayA5EfBySwyyAUrGS4SkfVLAf1", + "pubKeyOperator": "8f7f3e77cccc467b7026b6f927baf395a5c2029dc019eb43c38f2e8d500f76d4e25955fd11be5d825911b961a4247670" + } + }, + { + "type": "Regular", + "proTxHash": "3ce69e89cbf5395be75e6c7e008df678ca97fc021b1c0fb8937e536de4b50abd", + "collateralHash": "edb8b821b062364a66b3954b42b266d99f9c98a7f85e375a2b712aa90af27ccd", + "collateralIndex": 1, + "collateralAddress": "XjMspSLpDMKEwGk2g8SKHgFY71Na6H6GFd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.236.114:9999", + "registeredHeight": 1951586, + "lastPaidHeight": 2128638, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg5TK4yCWYcwHD6ziqzPpuzQ6NoA5eGQzo", + "votingAddress": "XgNYkwjzF9uX9JPSUKQ9h84TiVwWFhYFdB", + "payoutAddress": "XtU6oH1n5k8VWHvQmMDa2D7Zpc92Pq9f2c", + "pubKeyOperator": "898b6b70365bed305763eca4229a25370ab5109f53f968ce744b42d143cb9b6f9140b25605acfbc73d480c52d48b2363" + } + }, + { + "type": "Regular", + "proTxHash": "b15684fe7dbe45cb6826072b6dd0f1a31cdc71a90329819534edc1cbb74b2895", + "collateralHash": "09d678f57150b68b8dcf7e01ca15fc05a771503f146bd646057cf0154e17e7e5", + "collateralIndex": 1, + "collateralAddress": "XqdoNFYApAEcqYdnjLiwdqFDyxQzrioQ4H", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.84.32:9999", + "registeredHeight": 1951881, + "lastPaidHeight": 2128855, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgt1vHzx8QVtkYsoAuqJ9YXoiHq8SJxqmB", + "votingAddress": "XpYY5hdzSThF1uiRB47kKi2qfG6WGygQPw", + "payoutAddress": "Xp72ZL5F1SPj1a5TCB5NpmbCPVu7iWunqA", + "pubKeyOperator": "b74b598141774ad6c8ea1b5001fbfad0f82f861f1723aecaee4940e72ea69f7b3643d33683a1ad74f8d9942f8cd89177" + } + }, + { + "type": "Regular", + "proTxHash": "6b2667c03e63898236ab4b39f153204eab7c688aa440fca9a6bdc72cd44d6016", + "collateralHash": "3b03a2458cd0cf4899ef3551f7a1f4503c4949c7de7ab11cc64f8affb9f8cbbd", + "collateralIndex": 1, + "collateralAddress": "XeGSSGdH4EKpuoAcUw28cQAwBKHGLo6gmE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "108.61.86.102:9999", + "registeredHeight": 1952070, + "lastPaidHeight": 2125799, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbtu1xCwJxw5tuvHB7ZrbxoBv7JNvmQaQE", + "votingAddress": "XskNhfPR5wasoKL917DRMHHgLFyYunkUXU", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a89217e2c88c1628d531eb685442d538a3bec2e5a101da8a9f8a8d6ae681fc960cbd4cd05e80d369658a3aeef767f34a" + } + }, + { + "type": "Regular", + "proTxHash": "8ba7c20456f0dd76510ef96f026122d94cdb891b98dcc1d84aff33697a1b754b", + "collateralHash": "4c9f775a4e88f916a1334384b9a64b1a26055b6fb6b3c8f5b901109e32f1e914", + "collateralIndex": 1, + "collateralAddress": "XvhPKRCuv2K2rLpV7Pjd94VL4qBD5LA1D5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.208.87.213:9999", + "registeredHeight": 1954240, + "lastPaidHeight": 2127629, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkrbnNv2LkFJw41r2o9a6qRq6KpWnxvfva", + "votingAddress": "XyjZGpgdGBdPjJ4csFSTmqEGNKecZNg2H5", + "payoutAddress": "Xb15dKrqMGT4rE5MDzJ4a7XAUUo1SyN362", + "pubKeyOperator": "8ce1fa72232192bc2f3c506846537f8bc4810388e078cec17b7b2f7872a8b3c7bbba01bdedfe9f521152a28f2cc1ed8d" + } + }, + { + "type": "Regular", + "proTxHash": "dfc2ec7e4ac060d9d5a057ad797e23b2ac393d1c82fa531e9f5e392cb96e9f62", + "collateralHash": "dce8bcfb2e89c19c7679d63b50d0adb85339335606e03b1542a535505461e3cc", + "collateralIndex": 1, + "collateralAddress": "XosCS3soG8B6e41u24Qk6NCfm3A1DvqS18", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.35.103.19:9999", + "registeredHeight": 1954241, + "lastPaidHeight": 2127632, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpUmNA9cmvMcrhYgCGBJzuafg3WXcv5NET", + "votingAddress": "Xg2UvpMeTKdNKN2reNbV4tQYtE4dzGLzzi", + "payoutAddress": "XsDuktKwhwCS1SWKmdx24hvwHv9HF9YV9x", + "pubKeyOperator": "a4451c7fcb68e1bbf60da9a3edc977c13e8ddcea54da05441d917bca13f987c12c448bc9726bd1a9dc46e73283f624f4" + } + }, + { + "type": "Evo", + "proTxHash": "b5c4d7bba1b11f98497c419c4d81b72a525fe30ae788028c570dd4eb77255e77", + "collateralHash": "43f82ec2672dbb014304638f9e519c1a27a93cff376a4a74596993f408f8713c", + "collateralIndex": 1, + "collateralAddress": "XxBSEfLwnmd8U6sfbUCySDoRK3ojCAbeZF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.179.90.255:9999", + "registeredHeight": 1954544, + "lastPaidHeight": 2127341, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2046919, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuwFFWaw8ztfYz1ktFQ6RBP4ufL3UQC1dm", + "votingAddress": "Xt1QAgTHunL7tFNU6KjiC8xBKdX5sm6DoL", + "platformNodeID": "765b0cf7070d38920b13c8024a1d59fe9aed5c13", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XpFqMDnvWD4WcWcdJ8KB9aCQ8Z3wB2XLhu", + "pubKeyOperator": "b922a998c2e1aa20f1e973fd597ac00a22f8c0520d5d940e3a4e3e13b1646206b62ecb224c6b423dde339dd09467123f" + } + }, + { + "type": "Regular", + "proTxHash": "ba30246808528f1c1eb82ae3ce459f6a6f1c05e1cc67efd4eada78faa384d845", + "collateralHash": "2d1c3126926215a2c59fd6d5625b114891426ce83320f770789ab938340a05aa", + "collateralIndex": 0, + "collateralAddress": "XkvbN7FKSje7coWf1znvZVPQegHTCAtqZM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.241.116:9999", + "registeredHeight": 1955273, + "lastPaidHeight": 2128609, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XieoNV3dQML19Ccd5TnHWav5dg68BYeZvv", + "votingAddress": "Xi1mArBYSB6TvsXqSBN5bdiBje5TX3Dc3C", + "payoutAddress": "XyFjSC8m6JJP49hQdMyP4iQspsdMkU6btn", + "pubKeyOperator": "a360e80c939dabbf233395aeb72d618e1213fb95e16d9114809b35c03414c0d6371c7288c2d9e554a4cd0c22958143f5" + } + }, + { + "type": "Regular", + "proTxHash": "a7ddc0384a321436b3822b749b96e0b55124b81ece2fca5c6998615c5fc3e4bd", + "collateralHash": "ef665d44d90b901e0070a289bc2819c388166473f976808c1f2dc8348f04c256", + "collateralIndex": 0, + "collateralAddress": "XtXN3wPEnLW2raoySQtxeTpCftybNKrrdk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.184.67:9999", + "registeredHeight": 1955285, + "lastPaidHeight": 2128613, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsQD9bZs6o8WbbuSzrk3WfCnUSmuRh7G4m", + "votingAddress": "XtffbCmECksw2wUbTYkH1SAJMzRMidHPzj", + "payoutAddress": "XtXN3wPEnLW2raoySQtxeTpCftybNKrrdk", + "pubKeyOperator": "98482aaa6f5c4f04aea2c91231a1e92f75d5cacc60734f835563ff0db19d28136695ca4994938f0f9d95e4595c0798a8" + } + }, + { + "type": "Regular", + "proTxHash": "64006928841e0b2f76714247810346e25b6320e2e6d44548c9cb96f5a74765cd", + "collateralHash": "7b77e83130d4134de79ad5d56fc1aa3be6a7dcab22bba5436d51aab2235739a6", + "collateralIndex": 1, + "collateralAddress": "XeZTXYjLaVz62MqgrAu8Y9wXDQg9Fh1iMg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.87.194:9999", + "registeredHeight": 1956188, + "lastPaidHeight": 2126122, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg6nPozjvaUb59TnZhHTfjtPt4X1VEArcf", + "votingAddress": "Xk6EgFQtmRWDktCBiMG57G16Sw9puQgjtn", + "payoutAddress": "Xxm7xgVotXp3SG9QLbv2HuDdwBYHbEKLEc", + "pubKeyOperator": "b75b687f763ebd26888905a43eb8bad8cb19ab1a577b8ed89d4a3f70e170f7eddee5c745ec3da0f07ce3b29e4f410b21" + } + }, + { + "type": "Regular", + "proTxHash": "822052a8b33cfed30b51d39b3fd15e3c17bf96cb1909f27387e42405274aef63", + "collateralHash": "587274dc87673b08a7725c6306cd798232e9f9261d0b2d42d0ce2561744b6990", + "collateralIndex": 0, + "collateralAddress": "XeWGNgbtLoAEUyHZYaFrfsZ8VsKE2YqqiE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.24.109.35:9999", + "registeredHeight": 1956530, + "lastPaidHeight": 2126374, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkZaYoZZjJUCSNreCUWKEgAUGm8Ay1r9YY", + "votingAddress": "XttRsUccD3wdecgomCBgskLPmm1LCJQiY8", + "payoutAddress": "XkeqBd5vHC8E8AyCaCYERad276JWhN58k4", + "pubKeyOperator": "abd9270cfbe0af6c806d834780f581e6645ec9bf5bec4ed3baa8ca176689d7598ed5a38c4d884916cf656c6451cfb44e" + } + }, + { + "type": "Regular", + "proTxHash": "e5c5a03c9b8d4b51e4e65f58fefef7d0deaa8a48aaf68756061107677cd647e5", + "collateralHash": "2b446dab820ec47e119599786e3c1dc31df7fe037c6d40b55f1e325476343f94", + "collateralIndex": 1, + "collateralAddress": "XeUKtKDudvsuydqELb8KnBaGh2YMkmeTyP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.35.103.25:9999", + "registeredHeight": 1958034, + "lastPaidHeight": 2127618, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118432, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhdqca23QVA51mbZeGfGKSc9QPnj2QYADQ", + "votingAddress": "XfdsfXjJTXYRWmcSSwAwqCrPoRMYmiF3GD", + "payoutAddress": "XfWLGLCZWi5tatNpvgAuZh9Ncs1rBeetju", + "pubKeyOperator": "9813c834528e2e135b2eb6182c4b6ff3d41e8b2272c11fc7fbaafbc9d7bda34ff718262214873707c53fe8f221219069" + } + }, + { + "type": "Regular", + "proTxHash": "527dfdc10b41293249233728308b4fa5a75445b5934312c9723a834f35a939f1", + "collateralHash": "261defc3c87596c1691aeb3bfc5578e501d8fe4c00062fab66e9cabdcca77c7f", + "collateralIndex": 0, + "collateralAddress": "Xtk6A7a6CwLshGT4AMaCCkGtVi49b6Nhvr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.92.208:9999", + "registeredHeight": 1958099, + "lastPaidHeight": 2128818, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1977468, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjbQa1a3QJ6B2tFYLagksfo4c7JZ9NbSX3", + "votingAddress": "XeBLzw1skpGxeqgbtbF93dc65AsBWurghQ", + "payoutAddress": "XapK7heAwGRpzsmfgbAWtz3mMEn1oZQCAx", + "pubKeyOperator": "ad1bb135438a75b4f2387719cb57651bd7d958e517497a4a323592d7da6bf9ea3c1eb7e8f52ba42681ffe2ce1cc7e8a8" + } + }, + { + "type": "Regular", + "proTxHash": "9c8c773b9029e303b480f5b25eb24cd59b407d862c581c18b317ca097b2712c2", + "collateralHash": "04e21d0d5cf23c4449353502e9eae0802cf8aca6fd9e1c8c8bd0f3df0c095928", + "collateralIndex": 1, + "collateralAddress": "XqEk6QAjTT88NNCArwU7bjjodc4bhmCqGF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.110.161.37:9999", + "registeredHeight": 1958704, + "lastPaidHeight": 2128431, + "consecutivePayments": 0, + "PoSePenalty": 522, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjDvvRAAYD2XUMoU5hoexoCN7K82wxTb6J", + "votingAddress": "Xtz32BLPZtFQ39hszgXNKrwTgxvNGXiXK3", + "payoutAddress": "XnrKDf6GSe97VfBK6pSt7gJryiWv7vkgvu", + "pubKeyOperator": "b5638add31e434f76bfd02946ca4730393ddfd54c812b684e91e7e3b9657a5c039b9fbbb2556f468db208cf469046a05" + } + }, + { + "type": "Regular", + "proTxHash": "e498c7b8d2839fe1e8d5546b0696e336500faf7d70c8e0c47869b626817d0bd2", + "collateralHash": "e7e6c1746b7afc57dccca7d903ef833a40c9a3cc00dfbb751e251c558b14f1bf", + "collateralIndex": 1, + "collateralAddress": "XrksAN3n29H6LtjU9HJw2t3f8ba8ySTJ79", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.35.103.26:9999", + "registeredHeight": 1961522, + "lastPaidHeight": 2127608, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2070867, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxEtcrnwhMqYYA1AyPyZsDpqJfSU3dWrfG", + "votingAddress": "XpcD9LBXyorxybfumctt8dcse5STM8Pys1", + "payoutAddress": "Xb6WrViRd92pjGZGdSkZZzKurvDJtkrG1d", + "pubKeyOperator": "9477efa90878e8a88d95fb60602ab426c62966406dcff1c0336257cf4293408716e8a1e7900eb28d5e4babc3f649ecc2" + } + }, + { + "type": "Regular", + "proTxHash": "ce070cea04eb51e65241e3f72ef88451f3c4836a5919ef9d2765d9e59d0a7d4b", + "collateralHash": "2389cc7d9dc9388da16da7860cf9b4f8903afcb5317b1ab87786ba647402fc48", + "collateralIndex": 1, + "collateralAddress": "XrZHmvCCK5Dqr85MgwBnSLZDvnkobLviXM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.91.100.202:9999", + "registeredHeight": 1961555, + "lastPaidHeight": 2114005, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126059, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeCJ1frBw29eWd2tZqZmZvft1hDLeeY4Rd", + "votingAddress": "XeCJ1frBw29eWd2tZqZmZvft1hDLeeY4Rd", + "payoutAddress": "XrZHmvCCK5Dqr85MgwBnSLZDvnkobLviXM", + "pubKeyOperator": "92e8f1e1c221e7b8c1e4be827f93258421b4e9678043cb51b37c1ea0bca2a8f6532560d61d61a3ec18e1074237c0d085" + } + }, + { + "type": "Regular", + "proTxHash": "fd6029de63ad4f676a164dfc1b02b8fe9196b10a9a71030b2596e8724f966e16", + "collateralHash": "f6cfd729ed842bcc0fd7c457babf434c017cabe94ef436f43c1e8fdd6d083b48", + "collateralIndex": 1, + "collateralAddress": "Xy3cGJBSiAvXo4b6V7hXA2VApR1nancVRo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.103.132.7:9999", + "registeredHeight": 1961893, + "lastPaidHeight": 2120421, + "consecutivePayments": 0, + "PoSePenalty": 3828, + "PoSeRevivedHeight": 1992105, + "PoSeBanHeight": 2121738, + "revocationReason": 0, + "ownerAddress": "Xfk39qnzdZmaYMawkNeDqMeHEMqQCupCki", + "votingAddress": "XtNU3kzihSpLdqcCfQnqKGkUnSRwdmn3dY", + "payoutAddress": "Xn8put3SbEANaeZWNmCQd4bymyGe58atno", + "pubKeyOperator": "95e6c9abd188bfdd5236e363ba07548e1aa1e3bd406508f22b4948dd2bc1a36515aa7759dc2c02ad4e5b1462b59fa8c0" + } + }, + { + "type": "Regular", + "proTxHash": "c8d5cbb564e2763082cd2e5b0ff3529507b7952c8593cbffb7d316478d9bd86e", + "collateralHash": "40a2c6e6c84f79a8c2de4e29b08c4702bedb61353559bdb4864b558096904653", + "collateralIndex": 1, + "collateralAddress": "Xfz9nJ4u5jshzC2hGpeFbfq6aVMnnnC16k", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.11.182.64:9999", + "registeredHeight": 1961926, + "lastPaidHeight": 2128569, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122266, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtpChbkYpe2EdcLinAJfzpWmuYR5HvWR8s", + "votingAddress": "XmtC9yQs33CZdcmaJ6zue3Tu9MDhaoww6D", + "payoutAddress": "Xjf1qpxVDRp3NghyuHbhZD5b1ec1P6UzVZ", + "pubKeyOperator": "a837bacb1db783f392b5e4d2aae200e5fdf4c260c02a6cfba702b896703a91e072cbe643c893961ab51dcec6f7ccf970" + } + }, + { + "type": "Regular", + "proTxHash": "be6ff0fc63b10e84eaf41ba473f8237954a88c8d14298e919d91b221af253cde", + "collateralHash": "2ae7b39f7c8e93d9481c9529f568d550f7871b3f429af786409d70ebe4a6dd34", + "collateralIndex": 0, + "collateralAddress": "XwfzYWJXBsM3DLZZSAPgqLP873wxg4DpAV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.176.218:9999", + "registeredHeight": 1962649, + "lastPaidHeight": 2116152, + "consecutivePayments": 0, + "PoSePenalty": 3853, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "XjbCsZs49hfyDX7KjmCXjYNhcnBKr2TzM3", + "votingAddress": "XkhnsGv1hdSdFn6M1xonRSWwdHGQmMffxu", + "payoutAddress": "XwfzYWJXBsM3DLZZSAPgqLP873wxg4DpAV", + "pubKeyOperator": "890130644d5b6e36fbafd6a4f2a6d9c376b396b1b90ac489cd7c230b1cd9a7a8a6fe8adbbbef6cdf7a0ec9ad183e99d1" + } + }, + { + "type": "Evo", + "proTxHash": "ea4a6971496f94644600fff68fab26e76c01496415fee28eab224846c558e09c", + "collateralHash": "e4702b73f3acf45caf81a8c72d2edfee175e08c9035005fd1cffc414188a040e", + "collateralIndex": 0, + "collateralAddress": "XjaX9vXgTkfD6TZAV2EvfH6Qs3tKthXZsZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.157.91.184:9999", + "registeredHeight": 1963918, + "lastPaidHeight": 2126866, + "consecutivePayments": 0, + "PoSePenalty": 2213, + "PoSeRevivedHeight": 2128614, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgasHZycoEFPRU5D1fZxTDoPz5Npmrjn53", + "votingAddress": "XdegFerhqFTRa9tXgzuieZWRLzy4Br5Z5h", + "platformNodeID": "0e3c5652f1ea227798b83403e19c80ce16812e89", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbzPqEkwr5gpse6jzcPqEMxMJcxGtPpWRA", + "pubKeyOperator": "b37119caea474ef82dd3673284b70c294e89a66c575406d6d927cfc3173331388d4d4ba250755d9da45993f2be00eb79" + } + }, + { + "type": "Evo", + "proTxHash": "f177beb400c4b84330c6e14a058c76f8319c21a4f7aefbab2ba73c8fe389cea5", + "collateralHash": "5e03822773bcf1408179cbb0209536954e5c01c02c07564671c438f25a7d9108", + "collateralIndex": 1, + "collateralAddress": "Xdx9URfMvfa4sMTvyNpGxH58mX1zGXLtMg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.60.243.119:9999", + "registeredHeight": 1966363, + "lastPaidHeight": 2128657, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb6UCDWXq4z2T31ELahVWvGRFHwCzcqTF8", + "votingAddress": "XcYvXmfU5TkeiZKuASnfkWNcb2E4tfAFcZ", + "platformNodeID": "a7a860c93084db15e3cabf9918a561ce5e637f70", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b456b207ac373b5ae0e53e9cd888e1721b43f2c3be67a2bc57a7f952821a97c167a12555e9715a18b4ff941640f83d8f" + } + }, + { + "type": "Evo", + "proTxHash": "7a26c877c1e2dafea292b54ae37c39be5c51f27b24fd7a1e5a634523b5526eac", + "collateralHash": "ed6479e3b8481568eed0a825ab4f985a7a4e11d88bf44dd6b798dad142c1e897", + "collateralIndex": 1, + "collateralAddress": "XkRhb86YWiq4q5yQfp4roQJXHg4DaWtmLF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.183.250:9999", + "registeredHeight": 1966367, + "lastPaidHeight": 2126085, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1978048, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu7t2ks9iKCBAHh212kuid18ioNsaU97i1", + "votingAddress": "Xk3pqyCsrKcwx6ihP8L5AaYjyTLmT45Yu3", + "platformNodeID": "cad456489cb1ba5ded04d81070d41f7f2cd3e98d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8600971e849a6546907feda0de785b6e458fdf47aee1480de1e6b7f8c26227cb0de2c4e9dcaca1d29f0565e57ca8e4ac" + } + }, + { + "type": "Regular", + "proTxHash": "afac5e66e66e8dadf0e75be50e62d1842a8773ffa5a17357497358dada4d1cbb", + "collateralHash": "b20ab2d702c3ba262ede574e32d291912f44aec5a63efe2772d2839a731b922e", + "collateralIndex": 1, + "collateralAddress": "XofJFHSE66yevD9HTpM6aMsuKozAT9457B", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.11:9999", + "registeredHeight": 1967515, + "lastPaidHeight": 2126358, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwAStEdiPzwbw7rm6k8WmB3BepeVihutzo", + "votingAddress": "XvaerkWJAHXrdxWK8Y8TB4uTNkFUkuoV8z", + "payoutAddress": "XofJFHSE66yevD9HTpM6aMsuKozAT9457B", + "pubKeyOperator": "b0179668dea16239d2722aad88b3002582ad1d1e372d9fdb214fd44eaece8e4295fd43d0c8a5af00ab7e149c0c3ce508" + } + }, + { + "type": "Regular", + "proTxHash": "7bbe5103f6a0ab2e66124d357c20b275823b933eca2c7bf457594f4cd715fbf4", + "collateralHash": "463d44756f979b921ee0fa010de7b0e3bafd377d48d953cbbc7bdc44d1df212c", + "collateralIndex": 0, + "collateralAddress": "XrGDULA8S11DBR8vBrrQ9TY2KKMKmHFj9D", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.223.6.210:9999", + "registeredHeight": 1968085, + "lastPaidHeight": 2126848, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhx7t6tsVdGspGcaCjdXfueps1q4eZYmod", + "votingAddress": "XuxiL2G751uoYFuYBF25S9SPKBeKqH5BVr", + "payoutAddress": "XrGDULA8S11DBR8vBrrQ9TY2KKMKmHFj9D", + "pubKeyOperator": "b6f7985ee3ad4ea2b07e5291b2d72c8a2c041603c5737ac32ff2f24104f1ef814453df72a93344f238cb23fb3238b1c9" + } + }, + { + "type": "Regular", + "proTxHash": "94293c737ee9128d328f8fcaef2dcefee64347cda66f5205ee6da7db49e65292", + "collateralHash": "2eafbf3c37657f6627709a90509e770ab11ab69b85dfe0450be15b9e5ce9212f", + "collateralIndex": 0, + "collateralAddress": "XqZfXuKZi7sxB3TDk9kq8b4phkVAzDaHbg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "161.35.164.157:9999", + "registeredHeight": 1968105, + "lastPaidHeight": 2126862, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmLBViCcZULTutwTvSFf4tJXtyQiezXYyE", + "votingAddress": "Xr2EX3mpncnZfVQnvbekdAYfv9Hhgioa6U", + "payoutAddress": "XqZfXuKZi7sxB3TDk9kq8b4phkVAzDaHbg", + "pubKeyOperator": "8fba68f1a34c7a1922711824839d5981a227254989c3c30cecd09d60c56d071103e12ee7dfc6eb67b7fdf4d71a3a2c56" + } + }, + { + "type": "Regular", + "proTxHash": "9dd70e2a9d7115107298c79fdd37e479aa00056f4831357e85d33294de376518", + "collateralHash": "ba529e06e9ded7675f729995bc22803ae32d5fa1126c586cad72c20ad894c00d", + "collateralIndex": 1, + "collateralAddress": "XqBVYSn4kyRFf7UvF6k6xj6V8Ec8iT9Ha2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "77.232.129.6:9999", + "registeredHeight": 1968510, + "lastPaidHeight": 2127306, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoSueWkNJfx8QE7de4GdFSPPwV5avsFeXw", + "votingAddress": "XyXm6LJRaa6u7inCBBHjQQ8msvRKqQVe7r", + "payoutAddress": "XpBnW5xUTp5TAZTM2axDDhPZMetdah13LR", + "pubKeyOperator": "a6644b271bdae225e563d3ae44baad63b249b61acfbfe7bdd901b70344046199d4bbd2f6bdb9c3462f5f141877b2264e" + } + }, + { + "type": "Regular", + "proTxHash": "a2053ebf527fad06eb8fca90409d018511da0d2f2e68fae6e4396f95d8400583", + "collateralHash": "e1674373ca309fc589d1bf4a6c0a8b3058258ef571063831816b268bd3b9805f", + "collateralIndex": 1, + "collateralAddress": "XkBomH2d5KJVxEkjDh1SVEMSoGrau5nL6m", + "operatorReward": 0, + "state": { + "version": 2, + "service": "77.232.129.154:9999", + "registeredHeight": 1968516, + "lastPaidHeight": 2127314, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyXm6LJRaa6u7inCBBHjQQ8msvRKqQVe7r", + "votingAddress": "Xk8sgeb5pxznz2kS9zDNzyg5sQx1cGs2sX", + "payoutAddress": "Xxqk8rTNNfdy8k7LPD5cRxpqEgpfc2Ratp", + "pubKeyOperator": "a002f35e2a6728cafbd9de341fc62bee194592a3ab4ccb0dc45fbae2d95f51b6123574d73eb527454c6fb36ca6498b10" + } + }, + { + "type": "Regular", + "proTxHash": "e1e316f7a7e37fe3308ddaa6c22e5a2a40bfe8726160030e02a821c7d7325b9a", + "collateralHash": "506e4d2489899ef695d1dd993a7d13cea71ed20564c7773d8279d9a91107aad9", + "collateralIndex": 1, + "collateralAddress": "XcQtcLcJ7WprX84FL1v6rafHAQtMFNdGVB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "91.222.239.107:9999", + "registeredHeight": 1968521, + "lastPaidHeight": 2127318, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk8sgeb5pxznz2kS9zDNzyg5sQx1cGs2sX", + "votingAddress": "XfZ5HaMbYDpJ78DStZJD3KtZjEmFUZ82Do", + "payoutAddress": "Xx9jyWKZtf6fKrMe59wCvesrNfUfVtEbzN", + "pubKeyOperator": "82d4cb15a5ce9327318d0288ad0d406b3c284d941ab70383205bac4e468946158f8bac7d384943eb6339dba82c2b9153" + } + }, + { + "type": "Regular", + "proTxHash": "2a0b4bf837d0a117d8c15e832453df417749aabd35c676970145ab63273d6965", + "collateralHash": "d788faeb2a26cb60c8f607b9c2371c08f989edef528bea4d7dd3026aad199f14", + "collateralIndex": 0, + "collateralAddress": "Xtn6uqBfFAXy4sQYJVFGgVk65nFJz3Lk7c", + "operatorReward": 0, + "state": { + "version": 2, + "service": "2.233.120.35:9999", + "registeredHeight": 1969589, + "lastPaidHeight": 2120835, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": 2122671, + "PoSeBanHeight": 2123178, + "revocationReason": 0, + "ownerAddress": "Xw8KhQRiECT9BeRJEGdK84cmGgRgFnoCw3", + "votingAddress": "Xumt2BNf5UYGhNvZkBUmeemy1xN8iLybrz", + "payoutAddress": "Xdw2mXBYE75NN5kF3yhEwKW1rpzjiLpezR", + "pubKeyOperator": "b665eaffdee8441f213bda7b741f7e03abd90abf7ed80abdf2832446b2f6e3697c6e8015276eaca57576dcb2e17674f4" + } + }, + { + "type": "Evo", + "proTxHash": "520ee1b4d54872839abbab97b56f0f2b8dea9e56ffbca131c9724c3dbeeceb25", + "collateralHash": "5f7d344aec3a8b29191a910283a7e971bcbe0962c07be46521ba7ccd6159eec7", + "collateralIndex": 1, + "collateralAddress": "XxQs5smVAyKihDXPzH4B8fpNBxgF8u1uvA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.172.178.124:9999", + "registeredHeight": 1972067, + "lastPaidHeight": 1983203, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": 1976062, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XgKRdSWPLBLprWSPfkfukJqdwYm3PtErkk", + "votingAddress": "XsALsrtKKviyzTVg4q2yWCAzDzE5au4bZz", + "platformNodeID": "2e654a39d7707c09f90d5b94d947402865d5ea4a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxQs5smVAyKihDXPzH4B8fpNBxgF8u1uvA", + "pubKeyOperator": "b6532bb469fb188c0f3765fc542d16b884aeba10807380d3a737839ea6579ecfd0bec2591697277037f0436c6c7bce95" + } + }, + { + "type": "Regular", + "proTxHash": "5706437cb5ad24bea98e2c6bd5c0c0e3690b2dc2017c4e9b1d56f773e16cbada", + "collateralHash": "8f4dc69d2e8f80035e2d1a6129ee5dd813f5ec16baef2a42192f205b479dfa1f", + "collateralIndex": 0, + "collateralAddress": "XrpDWfnf6uAgZBAoeH8aBSEqKZp81e4Q7i", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.237.134.89:9999", + "registeredHeight": 1972069, + "lastPaidHeight": 2126247, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120183, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xcex5ApgR4dciDMmDHxRdAwVxSFTntEoxf", + "votingAddress": "XoFNbVexnnKYhBxMJj5rnPRFtoH1pFQ9Jr", + "payoutAddress": "XgJZPQasv8aT5FJPWdMGjpUyJgTSLce7rT", + "pubKeyOperator": "8fbe0b4d54ff0548e8120b5ac20345b50d57ba577011ed38fec880848ddea028be8b4bb095a18755b9f4d51181fd6e1b" + } + }, + { + "type": "Regular", + "proTxHash": "1a7f988e2a277b78d80f8e02557fa42d171228528614ace74cc9cd42c62a84dc", + "collateralHash": "5ecadd3ca35ddd771b1a8773c93762db3de045020f0de57c04ede619da2815ef", + "collateralIndex": 0, + "collateralAddress": "Xv24j6DUsuLJguuG7PdkCcv2iT6JHQ5KHy", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.79.41.72:9999", + "registeredHeight": 1972069, + "lastPaidHeight": 2126248, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120183, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmRkW1W1PAzysmzR7w53vQ1n8XpHwBxeeZ", + "votingAddress": "XoFNbVexnnKYhBxMJj5rnPRFtoH1pFQ9Jr", + "payoutAddress": "XgJZPQasv8aT5FJPWdMGjpUyJgTSLce7rT", + "pubKeyOperator": "b2439914bca027ea74abc948f84633014917d2d43cf4434fdbd1502408296ede4fc8878774b0db1c87c3efdbb5c438d6" + } + }, + { + "type": "Evo", + "proTxHash": "0a1dc4c81b3ba19229f698e454dc41ee9832343fbe9e9a4fbf8a91b4dc39c291", + "collateralHash": "7c518930ced2141d84c00b99390f0573e0c28419fa0e08cda4e3c4714c959f95", + "collateralIndex": 0, + "collateralAddress": "XuHQ8A5woSGHGM4iNPtXrtmtd4wo2a6MqX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "216.238.99.9:9999", + "registeredHeight": 1972928, + "lastPaidHeight": 2127954, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdPs6bGvFKc9BRpQgUrVds85SGAoQPnBqs", + "votingAddress": "XdPs6bGvFKc9BRpQgUrVds85SGAoQPnBqs", + "platformNodeID": "313062e54273aa6295945ee254f822af954d6679", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xc9TMCSvbLi1dLMhMLovCvNJHjJuW4VNbG", + "pubKeyOperator": "b529abf7ed329e3f7a75a032764176ccf867a9fceb03fc15cbd144e896974acd4e1af756bc8ec4efb667d35577ccbe8c" + } + }, + { + "type": "Regular", + "proTxHash": "7fd17304ae7a065bdbd4d4cafef46b089336f4e12f6d5debeb7b6e3f0da019c6", + "collateralHash": "e8d2a4b0d61681bde18b2feb5d11a5fc179065417f2234c3ccb072021a7e4db2", + "collateralIndex": 1, + "collateralAddress": "XsZnsZSQJQE3LdXoJ5NA5VhcFZHKjqherp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.217.18:9999", + "registeredHeight": 1973046, + "lastPaidHeight": 2128779, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1973804, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr44jUgjtdL8KcamutCvcmJQgCwcbPHY1j", + "votingAddress": "Xr44jUgjtdL8KcamutCvcmJQgCwcbPHY1j", + "payoutAddress": "XsZnsZSQJQE3LdXoJ5NA5VhcFZHKjqherp", + "pubKeyOperator": "8cfb93c716d4b3a1859c8a751d18e026aaa3e228af9331c3d8d7a865b371cd81c6f4de9b3a4bbdc264c7dc6316da7437" + } + }, + { + "type": "Regular", + "proTxHash": "4996fcbcededcec097c74d5d67dfd9e0a691d69fcf6b8551f7b8031d3947c165", + "collateralHash": "65dc4588fc45983c7424585323969e3ba261c1f9247764b999ec3cc0586c0168", + "collateralIndex": 1, + "collateralAddress": "XcTyJbZp2KhbVn1zcxCbpL2KRBchfJ2Yge", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.227.139.86:9999", + "registeredHeight": 1973064, + "lastPaidHeight": 2128772, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1973799, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrnVDKqXxRFagpBNAkCxuJkjpgWv3WprbA", + "votingAddress": "XrnVDKqXxRFagpBNAkCxuJkjpgWv3WprbA", + "payoutAddress": "XcTyJbZp2KhbVn1zcxCbpL2KRBchfJ2Yge", + "pubKeyOperator": "a01e093f068294804e5f861af3e9e38ef63295074c71a761e4d30becb1990b03a706ce7510f2355973e1290b50e0c70b" + } + }, + { + "type": "Regular", + "proTxHash": "3a4af75a902141eb47f2e4f89711adf4a3e985164214c0a490e91e13e40aa7e6", + "collateralHash": "4af3f7f2d4a62c99ca27fdb9039d90edc85179992a95926403bfd1cd5e2344fb", + "collateralIndex": 0, + "collateralAddress": "Xh4MqsaRzY9GGdphEkAh7CPwjvpZ5GWLWH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.209.210:9999", + "registeredHeight": 1973064, + "lastPaidHeight": 2128774, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1973799, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbuiJy6yS7zRdzxi83fpMJ7zfxpTKZ96E7", + "votingAddress": "XbuiJy6yS7zRdzxi83fpMJ7zfxpTKZ96E7", + "payoutAddress": "XmpA3FWk5FLRi7nDsbVAU7wMqBMaF4nh17", + "pubKeyOperator": "a1a2ce03d33508fa6d0d0d106b405824a5a583ce109e1e5513c76d3c70aac13b49ed78980ac7fb0836d391d34c453a5d" + } + }, + { + "type": "Evo", + "proTxHash": "1ff4e7e6f15acb8caa19642e722d62bcfa616d9d7378d18e18f2f88f42a3205f", + "collateralHash": "8a7391e4927db61f2a9aa88f8df1e62343269753b5e26d7efc91f0075e8a1593", + "collateralIndex": 1, + "collateralAddress": "XpjrDMdpxPcG9BAHEpkxbknAbqX8g2bhr3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "173.199.71.83:9999", + "registeredHeight": 1973799, + "lastPaidHeight": 2128074, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010522, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoMD7VDXeiSG1Uz4MzHG86NpNPyqdftiAh", + "votingAddress": "XoMD7VDXeiSG1Uz4MzHG86NpNPyqdftiAh", + "platformNodeID": "6a8e06e71719d4345e2728fd5e8d586512377041", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XmqS4obrfo1J9KSBdvB6htwGYmoSLxRnVi", + "pubKeyOperator": "93ea3f155bf1e987f4c11a4a1efba35b7174c779b1406fd9a17ca6196071fa00a6b595c2cad24c53d38f39b067784bbd" + } + }, + { + "type": "Regular", + "proTxHash": "84c5857cb3974dd48043a016a6db575c4a19de2bc5a5b5410f2e0b0f70b0bdd3", + "collateralHash": "6b79b01a3d46a3b102e1d234dd2282bc231ca9de81c523a0c04c91f8c305131d", + "collateralIndex": 1, + "collateralAddress": "Xf9ianAVNwU3eYLjnY3wspSq67CeXnMYHp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.122.96.216:9999", + "registeredHeight": 1973855, + "lastPaidHeight": 2128813, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu9iUcMCkxqFGvnyxUXgRNoNmYMsxMESXh", + "votingAddress": "XtNCoDawaycH4fX3z8sz2ZszpZXS7atMrK", + "payoutAddress": "Xdqh3BWTb8ukDPeWhP6HyzSRiyNnwcWe6C", + "pubKeyOperator": "a9f87e6916f7091daa0432d4fd766c4687ea4c8794f7627046633a0257ac6c8ab0bec67ea5a34ce16c83cb256cbf4fa0" + } + }, + { + "type": "Evo", + "proTxHash": "9a8aa10f1b62a4dae39e173c21995395c0b5ae33a708d0c1faa8188ea17cdc20", + "collateralHash": "c901e035da0b02f8a97f1a06f2130a81a30737d4e22a449649a3d1d01f9aaa5d", + "collateralIndex": 1, + "collateralAddress": "XkmLgrZ6BqBgQjxahrb5AffXnP5jsiF5AF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "216.238.75.46:9999", + "registeredHeight": 1974725, + "lastPaidHeight": 2126305, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoTPTJFTkdXEfgxKyW8wDjdTV25hwh5t6P", + "votingAddress": "XoTPTJFTkdXEfgxKyW8wDjdTV25hwh5t6P", + "platformNodeID": "05a7ef684955d80b7d678d4e9b6ae7eedf1eb37a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xn7Fhqt3mXCnatcD8Yi1m9tcPke1h8NmWw", + "pubKeyOperator": "b269fddfa6077d430450e23b59654c4a550119e6c4ccccc841fe47e6e0d4dea04a3cfaf196f2048e729c82587522fab4" + } + }, + { + "type": "Regular", + "proTxHash": "f2c346e21d7192d6ca95d3441db0ba8311a91fd7f16fbb458c9634035a5d55cf", + "collateralHash": "8a39dc950e706270c53bb35f79e77c9bac0e835389add9552564623c7493e8dd", + "collateralIndex": 1, + "collateralAddress": "XwQGEcKoSWrq9NcBzo8BVrgAoVCg76FFiK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.15.225:9999", + "registeredHeight": 1974732, + "lastPaidHeight": 2126316, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbra62brSCQJfkRBg2hZdYS6mWqXZfwDGU", + "votingAddress": "Xtzka9P46cp5b3PGtAEQ2Juqh3raCZb9UC", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8d1e22ccda47d5cda02c2f441dcad5fd3826592b518cfd765026ff51e87c98c326a2919e9ba5731c92308f1d461170c1" + } + }, + { + "type": "Regular", + "proTxHash": "b7f2027249cd854d61740c64d9fa1131f9ad848b9ca9182b28f310a7bb929e2b", + "collateralHash": "a476f59677f43968ef22c12e250605e42b8ae6d0665fef1354c219ac1e3de82e", + "collateralIndex": 0, + "collateralAddress": "Xu2B3bvC75NuiYvudvJPR1npDdguyN7aWV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.121.132:9999", + "registeredHeight": 1974785, + "lastPaidHeight": 2126345, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmEataA43DmYnGEDVLr1Rb8c6mQwU99Vha", + "votingAddress": "XpkQi5L3x95utaRmEDXYEnhNy3UAdbcznJ", + "payoutAddress": "XnpE5Mwr8GsVujK2eWVVJh718Zeap5FHLj", + "pubKeyOperator": "a82c3f052f83d5028303f794955d7c83b35bf4f7c944320d6c0a57c365e4a29b9ef21fc0b51c00e42d4a4c40fc6c1d34" + } + }, + { + "type": "Evo", + "proTxHash": "936876aea72924467daa99a22205e3d94462b9cae824e4127ef1d554f397d6e4", + "collateralHash": "5db094b62a1eb2357fe0b269339fb1974089341c59930c2d47d151a08fcb9bc3", + "collateralIndex": 1, + "collateralAddress": "Xpcq8h7H94koFCQKNtHEgnU917hv768MmG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.179.159.65:9999", + "registeredHeight": 1975366, + "lastPaidHeight": 2126813, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XahjWTBxbmvbnRr53W2bJjQf4gYD6yvTxG", + "votingAddress": "XahjWTBxbmvbnRr53W2bJjQf4gYD6yvTxG", + "platformNodeID": "2f8124efae8910b4701aa4ec53bc348211ffdb8a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xasdxw84jJDpUGAZTuo9hechSVC4Q5XnF8", + "pubKeyOperator": "a190c08941ca57708773d090250337d0f9aec515138223001e10385c3a3dac8bf2b2d86b89547c1c253968c3dba37781" + } + }, + { + "type": "Regular", + "proTxHash": "0fc1df4d3f6d5b8304024f0d88e6b89c97af8266127613300ff35e704b3b940e", + "collateralHash": "916d7c3939dd2fea1c1d3c31e38ad78185140fe1bb7a5cfcbc09ab8330f53290", + "collateralIndex": 1, + "collateralAddress": "XmRBMJsSuoVaRtk3jrKC8PkwCgbpVmkK1J", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.87.195:9999", + "registeredHeight": 1975625, + "lastPaidHeight": 2127057, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XePHexnG93BxyGAMCuQ1FZotZp4Ze918a6", + "votingAddress": "XbHAPEiwRuf9237HmVNHrkaafaAMwEbJcS", + "payoutAddress": "XmRBMJsSuoVaRtk3jrKC8PkwCgbpVmkK1J", + "pubKeyOperator": "8f2fa2c9d741f4d0d95099e32ad9c140449709bd37b8f22e8f2f3bcb9c826a042232ae98b347fc94e6c351a55ee018cb" + } + }, + { + "type": "Evo", + "proTxHash": "62472f43d140786abf3ea0a02f5d9879604ffe7f9552529015bff335c3382159", + "collateralHash": "9e741479a589481bf5e83fa5b0601c76fbfed54cc0d09485a9a4e647462f570c", + "collateralIndex": 1, + "collateralAddress": "XqTYStxhWJScZK8xFDkbkogGMmytMRDh4k", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.154.121:9999", + "registeredHeight": 1975655, + "lastPaidHeight": 2125782, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2113178, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhcPjayrLDyLTth7NrKQ7429BXejP92fYq", + "votingAddress": "Xhm5CRivEzFXguFcj9L2kSJk5g8JrXjwoo", + "platformNodeID": "c3a59de424b8205f485871f676b8b4c93b01053a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "95a7104422a6f3fbce5a736c7024c6623de4a48b00f00b23ca75cbfc30525a6712411a5a577920fc571dce25f2019d17" + } + }, + { + "type": "Evo", + "proTxHash": "2d80ca81d3ce72365889060a9c5dcc30b04e7075f589552739188ecac01b01d0", + "collateralHash": "bbe44ef0dbda8b1ec550131111267fc73382248c379722dc2b54c7b7983d9261", + "collateralIndex": 1, + "collateralAddress": "XpNJsmt8bNVHMCtRJegKiUwop8SSs6yuw7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "70.34.206.123:9999", + "registeredHeight": 1975735, + "lastPaidHeight": 2128083, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010522, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJ3idLMQ1j1AYwvjHdp83m5PfhBj8a6yb", + "votingAddress": "XhJ3idLMQ1j1AYwvjHdp83m5PfhBj8a6yb", + "platformNodeID": "74cff51faec23bf56abf53c8b99b6ec4073edc96", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xy6bbf8dFfTD3vhJV5NY6ywUDcCNYSDw3i", + "pubKeyOperator": "a2157578ab336cb920e1494bfc5b1797c9d76ac376272c6c73965a6f8377bb0ea08186b9f2bb1b742bef95770a67b29b" + } + }, + { + "type": "Regular", + "proTxHash": "5ccfa32f0cccfac527a1c6561a49d49bb42ce41c5bd63ca6d0f977ef3afe9f6b", + "collateralHash": "332c3f45be8348b80425eb2e525b58ba4a700d678ec642b9f429bd1af123f4a5", + "collateralIndex": 0, + "collateralAddress": "XivcwQi24STP2DaaF3UpmCk3cup57147WK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.87.204:9999", + "registeredHeight": 1975851, + "lastPaidHeight": 2127371, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQGJSyWj7RVcSe3xz7dgzUG7xett2kMND", + "votingAddress": "XwReFAjCCPDDa5QhUKgDp5jSgQEC9Ria12", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "b11d5f43ef3feb48543e29513ddda388fdb00bec7904f0298b24243f88257a794875c085dbb33247b51d8873b8f0642a" + } + }, + { + "type": "Evo", + "proTxHash": "26b8c4d88eb8023857a737df91f63167285ca090513e0ea5c341a63d4bf34abb", + "collateralHash": "9fb238e0cb56994dab1b4cd5f360244dc82adfeb161ccac55a0aac61db05a7d1", + "collateralIndex": 0, + "collateralAddress": "XnWiY4YjR1gkCYjkqEQUu64LR3dp4Ee5n5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.208.196.183:9999", + "registeredHeight": 1976276, + "lastPaidHeight": 2127704, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjYGhH22WX5DhM47CpnjZ332pwi4aqBw5a", + "votingAddress": "XoQvBYNSWhe2Z7XDA93cjTzWBXhYznM6Ma", + "platformNodeID": "96d883bbe88170ca52446d18f5cab78726a9a0dd", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XujW8GMdi6f8Vh2LQSgeTp8wVdfXAAQLVX", + "pubKeyOperator": "81a51a08b536e66b818847752f672a3fc9cac77355a52cdb9ac4204298eae5c0cb10dc939542c90eba3ceddb0466588a" + } + }, + { + "type": "Evo", + "proTxHash": "97a6990e760ac134ed84d5cb90fa8f4c9d0c49baefac6ce8e26decfcca226fda", + "collateralHash": "74f0b78d32523386c0e079371eac990350f86331d6e551ef669f7d2b5e67a48b", + "collateralIndex": 1, + "collateralAddress": "XbRNV3HJJ6uwEZEdkRhVeQ9sN1MJb49DTx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.101.144.237:9999", + "registeredHeight": 1976517, + "lastPaidHeight": 1983658, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XhqZA6krF3ye3Day3zKY4qLYDF78Xn27fy", + "votingAddress": "XeLdTubmdenoJLYbKLcLWi6fbDPf3cPJfi", + "platformNodeID": "e48b9e2d72c71859acbc4951872044bafed6c93e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbRNV3HJJ6uwEZEdkRhVeQ9sN1MJb49DTx", + "pubKeyOperator": "972f674e931fa403b505aa997c9e7122a7aa26a663bed6227d238e461a175a1f9e862139a48400b4d87d7258e1bd064c" + } + }, + { + "type": "Evo", + "proTxHash": "35978e1a9095afc9dcd72925a001b8b38331154fa2acaa7d2b00d6f81165d2e8", + "collateralHash": "f37561217f159e4c4651edb7e562129de4eb3de8d29a1da7327fce0913170f38", + "collateralIndex": 1, + "collateralAddress": "XcvvsmPcJYKvLdkDpaJPEAaouc41zrRGWd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.84.137.143:9999", + "registeredHeight": 1976557, + "lastPaidHeight": 2127945, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtBNdfQtjCxVM7ft67RC5W2ts5NAsNgnkY", + "votingAddress": "XtBNdfQtjCxVM7ft67RC5W2ts5NAsNgnkY", + "platformNodeID": "2797c7b9fbe488eb7761f2cc650650c193658e77", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xc4aPX3GCDzBkVpNzxfG43W8hLtz6vqWp1", + "pubKeyOperator": "b4f385de097dfda3d5cbbfa870ee6e6e95e35ad26d619ce257fae1f458a21a2d0c2b6e7e0982a2d78fc662a69180dead" + } + }, + { + "type": "Regular", + "proTxHash": "68915ef27cd021de0e49dd09805c1921b683ffd1ffd2303880bac4951607625d", + "collateralHash": "f4dce17a2ab1702cc795e0d1c707bcd470dd5092d0e6e30c0675632cb680373a", + "collateralIndex": 1, + "collateralAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.71.227.82:9999", + "registeredHeight": 1976896, + "lastPaidHeight": 2128334, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx2YYMBHGHACfs4i2wUH11ThdFuTMz2VuM", + "votingAddress": "Xcmhr2HFb9KqqVJatvn7ZMN3rc2hnUEcy8", + "payoutAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "pubKeyOperator": "8bfae4dbd602a4b8b4db08346e387af288d24c126c8cd9d2f36ba7c9aa21760089446290c9db7015f68dd074aee651fb" + } + }, + { + "type": "Regular", + "proTxHash": "9879c5d568764726556df0ff5c090cc0898fdcc7dec2085f611c952022a8a70e", + "collateralHash": "cef692c57150e365e8057fbf4a70fa0570327e60ea3aa6f7e3c6ff1c74cc7fe5", + "collateralIndex": 1, + "collateralAddress": "Xw9HDb6GBPv8sfraXEJ3kLcGHi1Rb4599z", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.56:9999", + "registeredHeight": 1977165, + "lastPaidHeight": 2128586, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjdFQgAn4fdLoUGTrnqRvU54rWTkCjsR9q", + "votingAddress": "XjdFQgAn4fdLoUGTrnqRvU54rWTkCjsR9q", + "payoutAddress": "Xw9HDb6GBPv8sfraXEJ3kLcGHi1Rb4599z", + "pubKeyOperator": "0834d6185eeaae2785431dd75d06c09dae5f80d3a31f9ffa77892a3e08e37f6ed49df5b315dc87487f256e5c09286553" + } + }, + { + "type": "Regular", + "proTxHash": "f8c06abeab0d7f95c19a842c292961de968dd73b52d11abf597bcf874c01c3f2", + "collateralHash": "ec66e9cfb5ae6d3f128368f1d4aeed5e9ce28d76d0c35cd65517da38a0d44604", + "collateralIndex": 1, + "collateralAddress": "Xp7BrorDp8TeXtRqUZwYNtVthw5C8q3aNK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.138.149:9999", + "registeredHeight": 1977382, + "lastPaidHeight": 2128764, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxo1kDBRnkvSyWw365ueKWXiGhNhRQoCpg", + "votingAddress": "XndSTnGKxfo3ckFzK2moyWBrY5NZFs9TEo", + "payoutAddress": "Xp7BrorDp8TeXtRqUZwYNtVthw5C8q3aNK", + "pubKeyOperator": "b3b82968fb13ae73448d3c7101ca25aa49d91cca2459ab5878d01526aac99e06809bebc7d6758fa1dfb9627fd991a8af" + } + }, + { + "type": "Evo", + "proTxHash": "3ee1ba80075c803eaf8ca2d44b2215c95285c8bc73a8ea7bc697a802b5ff9e85", + "collateralHash": "1f9b1bb24c95c64ed9996c64e2bddf5dcbefbc3fc06b63e3c98797ad15a5d84f", + "collateralIndex": 1, + "collateralAddress": "XrxfUiHRRY3eFodDP9Eb5BTWCRB9QdM8GH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.84.232.129:9999", + "registeredHeight": 1977390, + "lastPaidHeight": 2128079, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010522, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdVSQU4n8yXoL192ArcpGpg2ZPLmxVxRUx", + "votingAddress": "XdVSQU4n8yXoL192ArcpGpg2ZPLmxVxRUx", + "platformNodeID": "3719ae172b2bea2e56003897dc4aa0ec27063658", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XswwbCXJFhM3sP9fkZ7MKPEg265NJYqeK1", + "pubKeyOperator": "801fa80dd075ade0dad0c4c0a51459cdd30acab991f0d0c3da073b5ecb3a6fadbc080d37625fa3b39a4a01e5c9d382fc" + } + }, + { + "type": "Regular", + "proTxHash": "f4136740bdb8308ff334941e83a9e32aa305b0f7d8debd6cc9107dcf10256454", + "collateralHash": "f62876d50bb62650b27169da6e06e0d52af1c0500778b3164a805d8313412148", + "collateralIndex": 0, + "collateralAddress": "XqbHkYyqioiNHQoAb9Qq2QntdosMDQj5Ws", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.154.126:9999", + "registeredHeight": 1977599, + "lastPaidHeight": 2125729, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcNmqMHig6q8YGc5jJS7sFFA4KHuim24Cw", + "votingAddress": "XyBdHmije2eA3QwfFjgZXpJaKrmg7M5Gm2", + "payoutAddress": "XdtTHc1oxNBhS5kF4E1h8zE3MWdfZ5iTV4", + "pubKeyOperator": "a82ebfa02d279199053fad096ed8ebfa71be11a229cbc5a50aefda001de079bf028d8fd70cf8a9798d7725bc0795ab6c" + } + }, + { + "type": "Regular", + "proTxHash": "e8a285c75be16c4777e7acd77101dd2ceaa2b71fbc615a37c2e0a5bd718e3989", + "collateralHash": "2dfbc172d6a04df9f1f944027d33f67a3b889ae0347d3bf03301682edb4547d9", + "collateralIndex": 1, + "collateralAddress": "Xxx2HYKUQJvYEaQFENCiLr8VswteNJGLZe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.248.202.14:9999", + "registeredHeight": 1977757, + "lastPaidHeight": 2125833, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xx5pB9XA2SVRmfEeAnkcFcvdK9TqYkMLDy", + "votingAddress": "XboLGdarzAgYyj8XFMzufEinCtqcaSjKXU", + "payoutAddress": "Xe7v5mzPzDCds3vwXhJ5iGfkBwyUaXre75", + "pubKeyOperator": "a889e54c136f0cf1af6013590961a0ac4b350a7ff1b2c961f1bd439fba4d05c45663a081fb33248c1a468bf3b095c2d2" + } + }, + { + "type": "Regular", + "proTxHash": "7844e6d4aab7010d8f2e4d75da4c4cc4d927396414f681102bfb23d521f9230c", + "collateralHash": "7f22340faa99f201d7ee352628919664742db00183e5217603328e6738cec163", + "collateralIndex": 1, + "collateralAddress": "XqeRuBSwkPoHTCLpEBALUK5p3yKNirxkgP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.1.237:9999", + "registeredHeight": 1977868, + "lastPaidHeight": 2125914, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyYqgSMZUtG9Ef9mNNGGHbcFj8koXuMMjL", + "votingAddress": "XuBcLzpRtcsZ6J7pimF5U9Ebgx7AioR7fZ", + "payoutAddress": "Xe7v5mzPzDCds3vwXhJ5iGfkBwyUaXre75", + "pubKeyOperator": "af3cd9152cf1ec2a41de5447bbdf5342a4c76dbf49d01211db9d2d52dcaaffcc631ed8ec62a2c9e45c29aea97d05894e" + } + }, + { + "type": "Evo", + "proTxHash": "8c618567caeb7ab661cecdf6a551238ec42e602c73bc65a6bec9db5f91d2af06", + "collateralHash": "5d58d44d9ec780df4c5245b7bd2b4356da94f55ec3c25b5f371243aec0409ff8", + "collateralIndex": 1, + "collateralAddress": "XuFpFfxduDbFP3BBLSP8Vn9QsJjphyaC2L", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.10.71:9999", + "registeredHeight": 1977889, + "lastPaidHeight": 2128492, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2027897, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnJrXf3RC8Bu1LriYAagK8gGZjcU5oCgxz", + "votingAddress": "XnJrXf3RC8Bu1LriYAagK8gGZjcU5oCgxz", + "platformNodeID": "e37f885cc6acf832d40aef3014684d54b82696bd", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xd3gYvbXgqxattr7428rPCoRQVGKyvUHZV", + "pubKeyOperator": "8ec5b09ff0b07b233a84625187d7d58793d2f75025999eb3cab98ed130ef0ae431a1d8b0a3c97bac0e3d1dd324805a18" + } + }, + { + "type": "Regular", + "proTxHash": "6391df4369d30e120a778097d5e96d8710a87eb6a77e9b96885d53db5c49002e", + "collateralHash": "6870861a2da13ef7f3d881df56a21f7d02c6c2a23fa22f6baccfa90a9f083706", + "collateralIndex": 1, + "collateralAddress": "Xxs3FS19Mz9TyneZHy68LfZjvrts2h57mU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.122.55.145:9999", + "registeredHeight": 1977935, + "lastPaidHeight": 2125998, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkckgoQcmwV2izHZGqqUz7nEm684XgaYwi", + "votingAddress": "XiETDpMgUtND3onTNB7e7zZNDeW279uxXR", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "979081958c1266e7ef18504387421cf44fde05c2dd57453ee454b9324ce14e7b17d534ccf9d3f7baba8ebb389943e69f" + } + }, + { + "type": "Regular", + "proTxHash": "5366fffe3b3f93c7959e9503c18132dbd7ee2658311303a297abbb878a0b8157", + "collateralHash": "b84734370bae0a308294397a3daabe3708ef07e1eccb131c64c2256bedfc9a10", + "collateralIndex": 1, + "collateralAddress": "XhD1kR6UnZxuurAKdW6bZP6X2hA7dGexWT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.5.157.214:9999", + "registeredHeight": 1978249, + "lastPaidHeight": 2126243, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt78Rs8yMtTSdiLR1EbtpzpsWE3FPJoi7Y", + "votingAddress": "XanwqgnDZcA25i5YRtMeaBQRFi2HVsKdQB", + "payoutAddress": "XeWGTXGLydgsnnReTpHczJ4NYCGqxPfzcm", + "pubKeyOperator": "b24a614af2abd7764af7874c5e6736dd09e8252e2568a03aa7c5c32622c21fde366f019e1371ee193b9e423e04569110" + } + }, + { + "type": "Regular", + "proTxHash": "440948225f957281fba61ef41dcdaacbabb001ffaee36d08ac482c5495e9a64e", + "collateralHash": "e1d72de4b650db4d37636dbbd9e82cdebb0b457afc8aaf1ae29d3948c7400211", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.98.66.96:9999", + "registeredHeight": 1978948, + "lastPaidHeight": 2117700, + "consecutivePayments": 0, + "PoSePenalty": 3837, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120298, + "revocationReason": 0, + "ownerAddress": "XgjyS5qCBugWCrp9xJcRNcot2SFVbkivAc", + "votingAddress": "XgjyS5qCBugWCrp9xJcRNcot2SFVbkivAc", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "8e251316de36694feb48edecd996d9cd0fc1bb47b2fd3a183fcfae5f2a15fb5ddd528c9f726905a15e7caf1ed0fc1782" + } + }, + { + "type": "Regular", + "proTxHash": "57e630e406290dba1e216c6c3204727d03833531367e9f17b630d46d1afa883f", + "collateralHash": "7704b7ae990abd5cbb256c80917ef7f9062191154dacebbba5ec399fb9935ec7", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.184.170:9999", + "registeredHeight": 1978952, + "lastPaidHeight": 2126860, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XePrkZLVTNLpCW8s9DMzrDj469EPAquUZL", + "votingAddress": "XePrkZLVTNLpCW8s9DMzrDj469EPAquUZL", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "a8f2f579d133cad344eb7b08ca825fee4e5d475575af0febb72fbbf0322a155d9528a2882ca20862152ee670e87d0776" + } + }, + { + "type": "Regular", + "proTxHash": "09eb390d80f496f1f5ed39ad0a7426172f1346a8f7b6c08408c7dd51ac853357", + "collateralHash": "e309e382b4b206f5bbcc554ca01bf3e00197ddd102cd6ababf8acf1c4c08e947", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "116.62.157.76:9999", + "registeredHeight": 1978954, + "lastPaidHeight": 2117707, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119434, + "revocationReason": 0, + "ownerAddress": "Xfq9qHqhKj1QocSzEa65eGcsoPksHpG6Tt", + "votingAddress": "Xfq9qHqhKj1QocSzEa65eGcsoPksHpG6Tt", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "b65f3d8b4b7adaa1e0145fd17be7babec149518c542ba081f93c94b9c073cddfc6c595bad4bf64e5d2fbab17fb0c9a24" + } + }, + { + "type": "Evo", + "proTxHash": "108a0089ad01e99ece7cddff0252984e9ffcc935bd475bb30461e0f9aac6944a", + "collateralHash": "52f8e0915bec24179549a256f84a48316387489e121d1b04dd46cd1e8915c4ef", + "collateralIndex": 1, + "collateralAddress": "XmhA3xsuemvewzamnMd2KWUn3VKkFyrWoQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "94.130.229.10:9999", + "registeredHeight": 1978956, + "lastPaidHeight": 2114523, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116019, + "revocationReason": 0, + "ownerAddress": "XkrS8jjCeh3nUZXqGx9zu6UATX8gDD56qK", + "votingAddress": "XdhJRmMREo6z7Kamc6nWgP9Cv7fk32DhVq", + "platformNodeID": "80d0b9ad0b5c791c71d36ca0f6e843f062fda3da", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xh2JirXmoFwrquGPDwTKimmaDR3MMZ7WFW", + "pubKeyOperator": "877cd9f75618beb21bc99012a654684edad046e9ba7f1266d06f33a61179b92b2c5f5e11c8be8f245d5d8b39660f4e4f" + } + }, + { + "type": "Regular", + "proTxHash": "54e92238c523b445d9750e4a2ffa000ab3736276680e3e7dc866fc1ec4351d3d", + "collateralHash": "537aef64895d33e75b818e498b1dcb6ac802b8009611bcab7fbbe544f3a34334", + "collateralIndex": 1, + "collateralAddress": "XcYvvRXo7nsfsukjRLqEpcGgupPMngVu9j", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.200.170:9999", + "registeredHeight": 1979052, + "lastPaidHeight": 2126957, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeUKQq1EM3wee19cm7KArCGrvzNrrdeE5E", + "votingAddress": "Xd459XUbo6Pwn7dPqscnSayorBcWnogxtU", + "payoutAddress": "Xe7v5mzPzDCds3vwXhJ5iGfkBwyUaXre75", + "pubKeyOperator": "b6352d96f3e3190f172d07b50d9d90e25eccbda4ff4d5ef2b7e9b2069f0c319c101dc963920bca8e9a84f438e8fc08a2" + } + }, + { + "type": "Regular", + "proTxHash": "07db7d1619bed1009f6f3c5463318da4164f1674cefe00b9659b9148bbf9c418", + "collateralHash": "c4fdf19802343eb756e3141dad2e02f447d58a4fc7cefacfd446285b16196c96", + "collateralIndex": 0, + "collateralAddress": "XkxsumUmbymwS3Q7zZhRY12PS9eJgMbCxB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.223.228.209:9999", + "registeredHeight": 1979323, + "lastPaidHeight": 2127272, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnoShKGXzjBuNcJsaYwQbjP56fHQhxyRPS", + "votingAddress": "XrVqKApDVHFjkGcLVDhuijhiNEmDfBwrD8", + "payoutAddress": "Xpwr5osjpH5YmbfjgLTkKRFW4eSDpA1bA3", + "pubKeyOperator": "aa5eecdf03a2a7392704b71e2a3e93a850e15e94986f459e5bcb9660da6eccadcdde2aa6d03ccb24456a93f4511a83fc" + } + }, + { + "type": "Regular", + "proTxHash": "fac5e1cb0f57d2365f958273ea7bea178e7b12388b1ba2458760c6ff9e6fd14b", + "collateralHash": "af83e38a9b5abe71a862c395cdaa4e76164174291b8ed475ea4fa5b862d64a57", + "collateralIndex": 1, + "collateralAddress": "Xu76UK7oTURrhcg9NA3JvvaoHMV1J9Q9p6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.27:9999", + "registeredHeight": 1979351, + "lastPaidHeight": 2128472, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2109096, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbhSiTwNmiZWRXf2fD9ie3LgDuybCT7GSt", + "votingAddress": "XtX2M5nUm4XsGLyx4ku1cBGXjbW7cwBGcV", + "payoutAddress": "XpZuxPXhihtewdHTeecVunxfS15aKfiZz2", + "pubKeyOperator": "80b40eeae7b6f791060882fe2a52f14b10e6a909f18be5fe6bd5810f603090bc2b4ceea7d6080cd10db0f1e19eee671c" + } + }, + { + "type": "Evo", + "proTxHash": "787b1ae5f9e86ee76b39bb38fab81424dad6bf052b1ed4510e2cc24b7bd18a9a", + "collateralHash": "07ef7f7b25947e8341af6d80e6ebb99ed8bf1f9c498fa17feff4d4eef01a9d42", + "collateralIndex": 1, + "collateralAddress": "XvU2DyMy4b8RPv5qYarKQ4YueKL9DYCx3X", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.230.119.88:9999", + "registeredHeight": 1979369, + "lastPaidHeight": 1982983, + "consecutivePayments": 0, + "PoSePenalty": 4006, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XxKzFppCnMDfqmREWLtDpGJmgECmFruTw7", + "votingAddress": "XjVSnutuU2kkY6FtmZ9zos5pxrim7JTbuD", + "platformNodeID": "cfcd2229ff5ba07c1beab32f98614bd34c2800b2", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XvU2DyMy4b8RPv5qYarKQ4YueKL9DYCx3X", + "pubKeyOperator": "a867acd1fc8f3296264706fbbe57f57bb33e08513dd878ff7ca851b7d0523905ea004ba64618923befd8ef4456319669" + } + }, + { + "type": "Regular", + "proTxHash": "5b687a89b3ade75641d195af4a2152c632a69c4cebf24bd3d03c0636b2b0b99d", + "collateralHash": "60f2a1912bb601c15fc1fd0af9d4dc486b8079b4a5e386cdd0de2becc4c662f8", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "47.110.155.87:9999", + "registeredHeight": 1979862, + "lastPaidHeight": 2118516, + "consecutivePayments": 0, + "PoSePenalty": 3836, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119146, + "revocationReason": 0, + "ownerAddress": "XsF596ouu4eNkQV2aRnRW5xpZ5hW8umbrA", + "votingAddress": "XsF596ouu4eNkQV2aRnRW5xpZ5hW8umbrA", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "859383848643a53e5ec80731e18cb70a44a3ee2dd121d4bb63e3863e79b8a4b18df2fc7de6ed0f47a32986c1f061cc27" + } + }, + { + "type": "Regular", + "proTxHash": "0d698fb3f6a3319c229e3bd3a333653c25f222858acc3bad321a4aff05504c33", + "collateralHash": "187880d6771be108dfdf1d0abfc1da506caf902761ac0c824f5eee09d864cc4c", + "collateralIndex": 1, + "collateralAddress": "XiyQ5b3djwhXtJ9mj82mPMxkhgPC3Q1cns", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.97.133.204:9999", + "registeredHeight": 1979882, + "lastPaidHeight": 2127815, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xir2kSEFuz3tXPRi8YZiZscttHZKwirrck", + "votingAddress": "XtH2Fab6FARVJB1XEsXgURjT4FHK2oEuSo", + "payoutAddress": "Xe7v5mzPzDCds3vwXhJ5iGfkBwyUaXre75", + "pubKeyOperator": "97f1b0db09b8bbba14e7494158af8541048f87306a27882d40a3bad738855a0902fb328d4b12bb990c084956fb07d580" + } + }, + { + "type": "Evo", + "proTxHash": "01d6c9b8661fc28a4aa09ede7948d6253c29a641da38c2be4559b5c22df23933", + "collateralHash": "79c16ab2746117276ed22bae32d4f468ad97829b0a0f81176831495e00ca3693", + "collateralIndex": 1, + "collateralAddress": "Xw4UZmyd1BNEdb4UdEWSbNrPNiUqm6g5Ys", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.68.73.19:9999", + "registeredHeight": 1979897, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": 1980320, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XgJkRrzpRJG4qUMXyKQvE5TyT2gXT3DP1j", + "votingAddress": "XpfFcRJ1XUZxexyud2vQhQEvoppCVu6gVL", + "platformNodeID": "5990c6b6db42d57598945291ce1f8e01b957eb4d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xw4UZmyd1BNEdb4UdEWSbNrPNiUqm6g5Ys", + "pubKeyOperator": "8421612615e301deabde5daac316605e92cadea3397b3682900ec7161ec2b56292b66987160dea6d9e977cc690eb0723" + } + }, + { + "type": "Evo", + "proTxHash": "b86a2503a0b765abfaac30739bbfd0fd01bbe80b375cd41f76f35972b7b069f9", + "collateralHash": "685042b95b95b378c446f9143898ac76ef2e6de2b571be938c54f4943ed8a8e8", + "collateralIndex": 1, + "collateralAddress": "XsTeegRmPUgHyZAgh6zKE4HhXNNaDK118Z", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.38.232.103:9999", + "registeredHeight": 1979898, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": 1980393, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XcFXY6fTE2bDM1JVf15JKQTvct1ZqRb4nK", + "votingAddress": "Xq9JcoAZZZcB31Uk3nGUQmA7NHerYwE2M8", + "platformNodeID": "26ad21dc6262f2ce512f023f61bdff5be35e0c8b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsTeegRmPUgHyZAgh6zKE4HhXNNaDK118Z", + "pubKeyOperator": "830807a838af8a6b042ce4b6cddfd43a980d070d4b13ddb32f6fff03745b6c4ddeb2c3ff8cdd3f35c8cbc041774cd20b" + } + }, + { + "type": "Regular", + "proTxHash": "8f9b99272e31b51b21d2ca8326db230b6745ada3a161f6055258116a98dc7784", + "collateralHash": "8270c3482e9924dc66cfcdcf7cc5636dad148bdd0cd1a5acfb7aa3d5a97bfd1d", + "collateralIndex": 0, + "collateralAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "112.124.37.208:9999", + "registeredHeight": 1980846, + "lastPaidHeight": 2119384, + "consecutivePayments": 0, + "PoSePenalty": 3838, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2119722, + "revocationReason": 0, + "ownerAddress": "XuBhMLadk98XUsxS6XAfeKuUSyc5iGRzpf", + "votingAddress": "XuBhMLadk98XUsxS6XAfeKuUSyc5iGRzpf", + "payoutAddress": "XpDyyVdRb7mvHgdfJ6NQtZ4KeG5tUaXgoY", + "pubKeyOperator": "9485111eff35fe84b2b4f2c517d7118bb56473e6d8598682ef31f6edb2e7696d3ba956a9ae861331b16217d69c96c36f" + } + }, + { + "type": "Evo", + "proTxHash": "41c2796506348522794b000a5a7d24e2b2395c6fa856cfafedad3dbe564f108a", + "collateralHash": "72cc5e6aa891c559bda5b58056602f28b5670882794a05e36088f92e53240576", + "collateralIndex": 1, + "collateralAddress": "XfqEwgFnrdz8BTAjCrN3BKjdpfnkAP2zqi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.140.107.66:9999", + "registeredHeight": 1981791, + "lastPaidHeight": 2126212, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XebLMjvRqv5HmoDqGwPQFWxmtvk7XCjiNX", + "votingAddress": "XqduRG81d2BcdvG2fnq1qbH6jgGddpdmu7", + "platformNodeID": "d38e79013d1ec68b40d357010c753828f0ff41ad", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "87667e9c5e91ef8d5e1bfe6a93c445206cef0012eb939d5ef365d94dbe72b1b91c462ea2a80d0edb6d3df88a2f3e1f34" + } + }, + { + "type": "Evo", + "proTxHash": "72c3ef1099ef2dc75ea3d41b792492ca13439dd5375808fcd5f0cbc9e6b23c0b", + "collateralHash": "2ba27b011018de6b6d5ed03036c803f4d8a4f137c38d07f0082e32797bea6a10", + "collateralIndex": 1, + "collateralAddress": "XfpD4JLXNCUoSowHPMWdKvkcaYvezvTnvC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "164.90.171.53:9999", + "registeredHeight": 1982061, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XoQqStf34opuXKib4RgQ1amSc2nKiYTYpL", + "votingAddress": "Xt2PJxruR1WW8PjTXSDZQ1iTX85WnszRJf", + "platformNodeID": "692b7ff99277b36bf44065147fc645a94dda837b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfpD4JLXNCUoSowHPMWdKvkcaYvezvTnvC", + "pubKeyOperator": "8f11b6ce6ce013604c0d7f8beb679d86a18a5a3fd228d892858430dd42b8b48b4672354cdad20bf41dc89273b85099a1" + } + }, + { + "type": "Evo", + "proTxHash": "3b993d6f7c707e5083a7d3d5cee94ae50bda4afae0e7a4612e88585e05741386", + "collateralHash": "4b42876cc36dddd72568487fe84fe78cb1c1a1405d51e17a7b0a87fee75aed8d", + "collateralIndex": 1, + "collateralAddress": "Xdp6QMmdLC56EkzCP4hWrhsLm2E9aeNq3N", + "operatorReward": 0, + "state": { + "version": 2, + "service": "164.90.161.77:9999", + "registeredHeight": 1982064, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4007, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XcyX2PodWoYkPGCHx7ZDbo5Uf5sNCB69zF", + "votingAddress": "Xt6n81bnwPcnaLQQnTwj9V7oxRJx7on3aK", + "platformNodeID": "2b5453c0c537a8a4e5e8166563d3e4cbea928824", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xdp6QMmdLC56EkzCP4hWrhsLm2E9aeNq3N", + "pubKeyOperator": "a6f667635343f0c4f868ae1ea80b9675766dd8b8f8f1c5d66dabe0ec317c8eebb0aa8fa322d095ed66db4a39beae591b" + } + }, + { + "type": "Evo", + "proTxHash": "d15afeaea40025ac58f20e77d4f37931a35dca95fb5a0deb5ccbd85d39544391", + "collateralHash": "346bcdeaea7b8ab5cffab7078278f037eadaee13ab148939f039a822e81f6707", + "collateralIndex": 1, + "collateralAddress": "Xv3iDxvnsJmyUkFWnsPEjfLgPxmeMC8kGE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "164.90.165.192:9999", + "registeredHeight": 1982065, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 4003, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 1983899, + "revocationReason": 0, + "ownerAddress": "XsGqQhSeLhjvhRtc77tsm2BMdUyVH9SbMm", + "votingAddress": "Xjn8hHHkYxTbX3hUK2oL3QSfBDLASEmsUD", + "platformNodeID": "a64694504730e57b57521f68d3734f7e503e0057", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xv3iDxvnsJmyUkFWnsPEjfLgPxmeMC8kGE", + "pubKeyOperator": "8f2eb9fb52b35ce7c968030ccea0253c76d9ce278e2ad1381ae2322d6b9a35d3f36b752c5dabd6d0cd6635ce3f56223e" + } + }, + { + "type": "Regular", + "proTxHash": "5facf013b99aed10bbc12f3843fe8f1725d5dbcd1d8b3531d343e332eb5b6894", + "collateralHash": "5c79bb79191ca6c25bd51aa6c427de936b8b934b0d06a79f11ef7ab447df3fb4", + "collateralIndex": 1, + "collateralAddress": "Xp9Poy9xoBJxkC8iqbmg4c7yd1VLHibAgN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.226.74.75:9999", + "registeredHeight": 1982362, + "lastPaidHeight": 2126679, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdgQYbG4qcJYkLy1EYKg6LnBUfmHKXSXAt", + "votingAddress": "Xbg7aXwz2CTVEe1LkUZwXmLr4JmrTJmX1J", + "payoutAddress": "Xe7v5mzPzDCds3vwXhJ5iGfkBwyUaXre75", + "pubKeyOperator": "b5b044649bfd89aedf95d3d6b3c74df6cb9b84dc910ca9da22c9ac00867b1f2c85a9c5beb438c6850e04de50d0c448ae" + } + }, + { + "type": "Regular", + "proTxHash": "ac423bd3714f34e6434171731aef79d6450c1d371fa4284961581e3b6ccb58ea", + "collateralHash": "1fdbaae5fad72312e9a69e3cbaa1796c8ffb1e04472a7ba581576fa9dff9e247", + "collateralIndex": 1, + "collateralAddress": "Xe2Uap8YfRd7GLUu7rNBCXcR5G1jqeEmXK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.223.218.50:9999", + "registeredHeight": 1983514, + "lastPaidHeight": 2127834, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XePd5co9JqZiZ837mC8Suew921uQgqHdsH", + "votingAddress": "XoPhtgdvLmk34DxNmJedicKUTyfFqnUe7k", + "payoutAddress": "XcvKsUJospEgaj1NcvPtpHsJX2LD7GYZaa", + "pubKeyOperator": "922cab0fab1c6b1cfce9289522e46ed2df3994433594e56d993559b573e18f7bb379980e905b9992ce0b2198023055dc" + } + }, + { + "type": "Regular", + "proTxHash": "6ac921521490fb8faf878ed4e58fcb5097fa244e8b45ec6237d75901f76352c1", + "collateralHash": "b659619eaec8e8d2f337ed65f2b80093320e6a549f6f0e0c0af305c8a42940d0", + "collateralIndex": 1, + "collateralAddress": "XhoDetDFvJi2hu1JXsxb53CZJC8p39Dcxa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "155.133.23.221:9999", + "registeredHeight": 1983657, + "lastPaidHeight": 2127924, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvfnumRWz1etoAc2LFmjiPwGvb75BNTYa4", + "votingAddress": "XvfnumRWz1etoAc2LFmjiPwGvb75BNTYa4", + "payoutAddress": "XqZJo6Ke5vnLjWzBBLoYxrLhk7tPk6PH26", + "pubKeyOperator": "a7ca0315049a43915298367988a8803ff4f56f8b410cde844a586625b9ebe5d474ad23bb3b5ddfad6a66a0522f1ccb94" + } + }, + { + "type": "Evo", + "proTxHash": "328db6689ae2d4b51244325bff23d17209def29fa3a18dcbf72395f09f1820f2", + "collateralHash": "55a59999ca6fdbbb82eeeefa6a81b8f09a674c56179b8b03a6e429963f1f83b6", + "collateralIndex": 1, + "collateralAddress": "XsSMptkkFMgK6zYz1K2TD81gTnpCuwfaY4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "52.10.213.198:9999", + "registeredHeight": 1984122, + "lastPaidHeight": 2126855, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2100677, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfYAVBnPEXGuC31LSqJ4QSWaM32dHzpni4", + "votingAddress": "Xb4SZsBigdrzdyLGEHNqdZMWJizf9MTypM", + "platformNodeID": "f40df8fa5c8d0cbf95a8dea76814eb6e45e4322d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XwTP3xPtPAZZ5gohjx6sUvtDdUegcJ73vq", + "pubKeyOperator": "8103600e73feb9ae8dc7f1d724e0237872eddcd607a8f4ead6e240786eff9d641cc13a2d4478bb4e19b19e427c174a01" + } + }, + { + "type": "Regular", + "proTxHash": "a6c8c56d1615978924ed9debdb2df6ae1261e38bf6c693de067bf7debc096a2e", + "collateralHash": "e98ebc249505c551931c697871fea30d89bfbb9a47d3f0214bc20f107c46d77d", + "collateralIndex": 0, + "collateralAddress": "XfNFgbbmcdiyVNSBzXXFigQeM1Yk6QqQDw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "191.101.2.231:9999", + "registeredHeight": 1984296, + "lastPaidHeight": 2128582, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsL7tv7Z7ZW2hrqq7BZfrJeckjc4BnPU2Q", + "votingAddress": "XsL7tv7Z7ZW2hrqq7BZfrJeckjc4BnPU2Q", + "payoutAddress": "XgEJG5LJ5pca7uFdv7RHmbNf8JJVTrXFub", + "pubKeyOperator": "82a30cc4221df40297150955bbc6d6c1267d455a2828075e27bcef19cc705f3fdf64ff6231088f619e00cfbdb5efd5d2" + } + }, + { + "type": "Regular", + "proTxHash": "18f58ee5ab41a57cfc1b367d1af291b9709bbde1ba8b8717a691d33516d42fdf", + "collateralHash": "8fcba0b9563c97844af0680b12ebcae169956c1ef38b98f2d0cacfa375690ea5", + "collateralIndex": 1, + "collateralAddress": "Xq9yKuuLkFfjiCMzr79ns1Ffw2KZmemvc6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.30.195:9999", + "registeredHeight": 1984382, + "lastPaidHeight": 2128647, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr9bFgkSgEQH1Sc1UHw4GLezjYTUZxGgXx", + "votingAddress": "XitU4ksWpmdxZ233W367BAX3e4B4x3NSpy", + "payoutAddress": "Xh55Tx9cQiFrethrcN6VpALqkw131LNR15", + "pubKeyOperator": "b2d1492b3c92ac1ef2eeeae3ef2df2ca393dd60a13611c61595896cc59945697329b89fb5090b7f602deb169855a885f" + } + }, + { + "type": "Regular", + "proTxHash": "7d7edf1430eaf1661abf421844379435e5a94f952b63d3190e8ba3d22cb2bf78", + "collateralHash": "153276dbdf10dab9e2db925449a874ab489a35423c9153322157c577f391c928", + "collateralIndex": 0, + "collateralAddress": "XefUNrgjvie4c4KBwJ9TxhuybRZXR59aWc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.58.57:9999", + "registeredHeight": 1984503, + "lastPaidHeight": 2112927, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116266, + "revocationReason": 0, + "ownerAddress": "XmQLurBoapzYDMCN4EB4ZTGj2XhVwaNcYA", + "votingAddress": "XmUSr4D5NMVrz1ScQabjWVi1LBXpm4QPeQ", + "payoutAddress": "XefUNrgjvie4c4KBwJ9TxhuybRZXR59aWc", + "pubKeyOperator": "a510abcf04d17ea413de4fc932733e75316f234969f132a6e141afc8878f113baa52067e9d4552c96a436a3ca6015238" + } + }, + { + "type": "Regular", + "proTxHash": "f304622cefb24a5aa3547e94d07198aa8825146e8580dc56931fc0b84167aa22", + "collateralHash": "0a29292f299df4f2d64e3b613f7585ed0da8b7306d5979a68bd0b47a6691a577", + "collateralIndex": 0, + "collateralAddress": "XyvDRucunUfw1U99Bz4sSQvtJLMqgR5CYo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "67.205.165.112:9999", + "registeredHeight": 1984511, + "lastPaidHeight": 2112928, + "consecutivePayments": 0, + "PoSePenalty": 3852, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2113962, + "revocationReason": 0, + "ownerAddress": "XqTZZWDjF7Hh5BbVRaDXwjqsomJnmsKvX7", + "votingAddress": "XuTNLz3vmD2oah28e5BQDpBgyfSwv19DsD", + "payoutAddress": "XyvDRucunUfw1U99Bz4sSQvtJLMqgR5CYo", + "pubKeyOperator": "b20645263a7b6f8be295b526376cae5dac41a9d3824f7252890c4b6b8ac22ec9ed1e2871a071dc617839c5ae444d786f" + } + }, + { + "type": "Regular", + "proTxHash": "e8c9670cfceb18464b9e3e552cedd21680e7fd9d3d3791a1ab7bcfca720d3eb2", + "collateralHash": "32b2492506473c4e6421310d30823e6184a1ae2c01a6072e607292be32f99450", + "collateralIndex": 1, + "collateralAddress": "XdjWg4WBS2oaauWjc3GG6g4nvbAPjJYhdG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.110.240.13:9999", + "registeredHeight": 1984669, + "lastPaidHeight": 2128848, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XveXMUuwuZPkEYc4GgQiP3pk1pkMthDJzj", + "votingAddress": "XxTQrrzdLmaSdS7hZLQbsZNguVhnxXCTzB", + "payoutAddress": "XxcF45MeuUqs9SFrYQ7ighdkvDvRbpiH3j", + "pubKeyOperator": "94dbd33c2316eca0dd298cf5b8042e14a8e00baf55fece1aab469594b2c19050ae4a226848759770aaa97268288d3544" + } + }, + { + "type": "Regular", + "proTxHash": "731efb592c0cf2f68b233ecf375d915b5a91fa6231d28b551e587896a635e6bb", + "collateralHash": "f251bfcad2a363845b69abe8342bfcfb316908a66caf3af2ccb19514408a5808", + "collateralIndex": 1, + "collateralAddress": "XkpeyBuiV54zrv77dhEonYpjdC3e9jPKDt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.216.13.118:9999", + "registeredHeight": 1984844, + "lastPaidHeight": 2125809, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpRcCXrbHFLt1vRLjQZML7JohVpzkshnDK", + "votingAddress": "Xhc781MXWBFDx2tfVfnoCjhhi8DbyJA9sQ", + "payoutAddress": "XvTFVE2VWEpKGukHguN8dEcw7prUpFp8AV", + "pubKeyOperator": "93f6b3b27137dd9021c8235f7361096a7aca44ca83dc808af600392b6b924e60741a038bc046bf5152516e946fea01c0" + } + }, + { + "type": "Regular", + "proTxHash": "4a0fbccd9820bde460d993623510b761a6174bdb6de71882df7abd2e8e93e174", + "collateralHash": "aaa4f9d1c1edd6e7b227452c2724f64807942dde99ab7896f0ac3fb2f4b1cacb", + "collateralIndex": 0, + "collateralAddress": "XeJi3BFYE5znKD1N3bPLozaVb4uySCFD7M", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.158.45:9999", + "registeredHeight": 1984973, + "lastPaidHeight": 2113342, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XqqbHdb5RxXGohZeDTYiv6Y3SJ2Gm1i2kT", + "votingAddress": "XvUxMKHCotZmNWbnb8zcJ8FQj44L3qnG7B", + "payoutAddress": "XeJi3BFYE5znKD1N3bPLozaVb4uySCFD7M", + "pubKeyOperator": "b5743ff5b6c93b2151c1ba53672599c182bd320317624c1402782da0699af97547c82f5cb26ca2d1946c5d3c1d05a553" + } + }, + { + "type": "Regular", + "proTxHash": "d453fb06718e30096cafcfda30d3031b3026cacabf6b99b46670ee6b3bc73ca0", + "collateralHash": "49ac7f27d7e9c7d67fba3b383a24dbd468e310a21a5a9534b7d8a5937dddd607", + "collateralIndex": 1, + "collateralAddress": "XdDeaete4DZHA2RY9oEdTQuhnvqeYvwotD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.252.21.24:9999", + "registeredHeight": 1985083, + "lastPaidHeight": 2126004, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsvb9kz9MnjqqbwS9wX72vuGcy5ujJKYny", + "votingAddress": "XvQ1ZKTYNncoEt9wAigxrRNRU8a8spgBWZ", + "payoutAddress": "XsxRSC4LprQPXZAFyJUUskcrex5Qg8LmYk", + "pubKeyOperator": "89cb838a924f6dc248e24c009ba0aa21ee1c8180ff0c7958ebb541917226bf53d09855e15d3081737ffb25a2ae9ac2fc" + } + }, + { + "type": "Evo", + "proTxHash": "23a697e38591825c2fa01c36a6934610fac8194ba1a8fcfc6629229fe6f7fe00", + "collateralHash": "d4468f37df9642a3a333a86720c122ffcc7ea3c930562e06ea9cbbb6baba82d6", + "collateralIndex": 1, + "collateralAddress": "Xe7pF9iNYJ5TGFpJJ5Du4t4aDw4nmWJ5GX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.161.49.32:9999", + "registeredHeight": 1985098, + "lastPaidHeight": 2126018, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJoffUSeZQi5Yx855Ly6pCCaV38fUwEEq", + "votingAddress": "XibRQ6jPdM1DTJBNCNeJ25iC9UQUQydRHj", + "platformNodeID": "8c18b7bcfc8398e55deef029c618741206477f8b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "b0bcbb1a8a357e5abdb01f4a2a69fb6bbf3bd646cc9336e0ecb45a776bd0ea68dd1c9fa060b470f089ff542bd73ee50a" + } + }, + { + "type": "Regular", + "proTxHash": "ddca837fad6ab9b8ffd014f2253e1a072ca8970a38f4146289f05078f7f41bf7", + "collateralHash": "d74eaad36390e32fdf6e4760ba64c84020c06e6d50722d1d5ac3d7bb496e4327", + "collateralIndex": 0, + "collateralAddress": "XnLW4qtNEty6VT5SAumd98ZSNKL42bDhfK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.78.77.55:9999", + "registeredHeight": 1985206, + "lastPaidHeight": 2126098, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvgzLPLRrvKp8Rd6Zq4FivxrnYHyQCbHux", + "votingAddress": "Xk55gc2FbvkQiHRvwKaxcZHVamdamDnEZR", + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "8bdc0995377302b2293cedf03286baeeb84f0a2bfa48e101a182aaa0e37248d6c1857f142f24263822b7fb1e6ba11780" + } + }, + { + "type": "Evo", + "proTxHash": "78fc0590dfa8f386b03d3d3a2e9e50b12c138997af115fc4c5347981ed70355d", + "collateralHash": "153d45859d2300d832af4245d32fd4a207f2bac26908c32b745168b2b03c2b67", + "collateralIndex": 1, + "collateralAddress": "Xbi6rgSf2i8UZVE24pNTUv4q2YEAEUiJMc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.21.147.225:9999", + "registeredHeight": 1985265, + "lastPaidHeight": 2126157, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xor6dc1Svjdi8Uqh5zf9pUV293L1nNtXzS", + "votingAddress": "XsN4dHez8Mg28YGrQ2MhnpbPLSJtxhrtkE", + "platformNodeID": "f1c717a50ced6d52f82bd3b1b5d3552c7fb6fec4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "8845a008aae558e5fdc45fa37bdcf84d0d8b067b387e4775ee07e0a2c7d246f44d5c86c592b17c709a046dbc8417cc0e" + } + }, + { + "type": "Evo", + "proTxHash": "d658d6d6373a78836efb6a7f403e2d8d01f7b7b1d14966c7af2db9785e2c9796", + "collateralHash": "57a29c44d5d576e982bdcc4a99b6bd9bd055854878cfd4619744e9ab007aa526", + "collateralIndex": 1, + "collateralAddress": "XukeCxPK8pNCr2pw72pDYGJA14KjNEYHD6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.235.146.99:9999", + "registeredHeight": 1985609, + "lastPaidHeight": 2126414, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbCLqU1HUy8bYRmoNv6rfm9zPUhdEJGERY", + "votingAddress": "XjprjouZXMCWTDekBMo6FD6d7towatnwsz", + "platformNodeID": "8d28c4e42aef4b7458a70250842b912ec3574111", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "86109fb59ca7d42c4174ff921ec0c3c9190322dcb24ee2ea77e57ce97264f3ad56d982f3ec2482aa9c4b5be110556118" + } + }, + { + "type": "Regular", + "proTxHash": "b666a350be4fdf31699814c8c372cbef4440e936c65171d5fbc86d436b3362bc", + "collateralHash": "dea5400da72cf1178b68a48807de3cee5ef41a81c3beb3f98888c89be6c15d8d", + "collateralIndex": 1, + "collateralAddress": "XjaoUNGvsEsWQrJQjAEarUdHwJdkuuLRZo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.238.190.82:9999", + "registeredHeight": 1985653, + "lastPaidHeight": 2126452, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfYnSTuuH1pdLKRrXYZuZxwk7e6HH3pSqk", + "votingAddress": "XpWyi6CqdG5T1YMVBC32NVX53AtSAhmQa9", + "payoutAddress": "XjaoUNGvsEsWQrJQjAEarUdHwJdkuuLRZo", + "pubKeyOperator": "81a73ca3722ef9690d77b3d73243cdea59d39edadbf0add84f5e12e37957b026f04ba93cf8ff6a87d6ccb8d70409bafc" + } + }, + { + "type": "Regular", + "proTxHash": "6b527d4e1f436106e12d56fd36d17b753ed694cacffc2055a2ab2ae4bca3ae2e", + "collateralHash": "bfea7f5f16357725b53b07ee302868659e2cc0e0adcd68b134e4fe3743bc3109", + "collateralIndex": 0, + "collateralAddress": "XvyTcqGwb47NtLkCLQunBbgF1T96iUcvZh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.89.25.25:9999", + "registeredHeight": 1986145, + "lastPaidHeight": 2126947, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfQ7vncYwafr91jq2Fj5V9VycTDkko8584", + "votingAddress": "XohCpBAk9AwBjRuyZ6b78tJ9WrmpqKFVqN", + "payoutAddress": "XxcF45MeuUqs9SFrYQ7ighdkvDvRbpiH3j", + "pubKeyOperator": "9514ea887da4f35ef7c08fc72c0f8f01c2f3424854956e1c5a1cbad27205553df4055b0bba8f429b314ca1b7b96ced4b" + } + }, + { + "type": "Regular", + "proTxHash": "3a350046627d0d571e70ca6a57ac9cd9d5f103ec7f32a125a6bd5451c8b0d44e", + "collateralHash": "ef8319a1187bd7b7b37d04f6df7c444c949dabc84ddf8f9148bc22c3abf0b834", + "collateralIndex": 1, + "collateralAddress": "XiXXzhPGRBMWwKLdDpPPHvyXbS9smaxrC4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.131.115:9999", + "registeredHeight": 1986148, + "lastPaidHeight": 2126950, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfMzY1V2FUnLi8idnJucyYGYv4giFoWb7w", + "votingAddress": "Xk9jay6ZLeSfFGUVsfFBLsT6v8nPyTVsRG", + "payoutAddress": "XxcF45MeuUqs9SFrYQ7ighdkvDvRbpiH3j", + "pubKeyOperator": "abad76f4971ee86e63c792a035311447f6c3e8561f12ce7ba8a05efdf86ae75acd2b20a68655f23fd79665846f0e6896" + } + }, + { + "type": "Regular", + "proTxHash": "075ecfb048bd1d0ecd39d6e74048ad402d9a43dac0018937c8088e1e0791736e", + "collateralHash": "3dc95451974c1e4ff14d24ea99c6f4392ed79f2a31211d05e4e941f8622119eb", + "collateralIndex": 0, + "collateralAddress": "XsFsPMX42jjDyfN6mjKwWQMW2NTKVrKvvN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.18.104:9999", + "registeredHeight": 1986598, + "lastPaidHeight": 2127460, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtYNBvCbKmmGsBRprYvv3dC5vLHv9h86S3", + "votingAddress": "XqsgCcwzLv5fygE22UmKCUkdUMLzMmvmfG", + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "a0d6635d28c435b84efeda05f1c9d6dc247a84fea24537be4134d851bc6cdf17448c03b6366082730a6dc3e8fd2aef21" + } + }, + { + "type": "Regular", + "proTxHash": "1ba07d2d3a3a8d9cfbda66a10d97dc4ba9cd36deb136f8ebde98a907099ef819", + "collateralHash": "b1a1d1f39a8f34572d42c03e97785c04e8098b15e97b97de058331bd7bc35077", + "collateralIndex": 1, + "collateralAddress": "Xnwy8sEfnVizZtERV79XajKRVEZJaGoMTX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.131.126:9999", + "registeredHeight": 1986654, + "lastPaidHeight": 2127503, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuNrPVEe6uF69JizCZCsHsEDj5ECmKXjoC", + "votingAddress": "Xq78TM7MH4VUftczgxVKtoenR4DMyGRsLz", + "payoutAddress": "XexeHg1j2YWDvtDjmFetfPhXQ2oaX7pyrs", + "pubKeyOperator": "b563ab58b91748e8217d6a3d170983292691f5c528d668f281941a1e1bb3e09bd8f61938bf7ae23bc5a64d10e08c12e6" + } + }, + { + "type": "Regular", + "proTxHash": "82ed15ac4bf7a35c5e8e6bdb141db3182ded9980fa80250284f76732231ba4a9", + "collateralHash": "b1e7a75bc2684b850cc9f33fc2b7c49038c07533c84dfb733b295eeab03e1936", + "collateralIndex": 1, + "collateralAddress": "XpitL1UreRLgSs9SQkturE9QXAt8Xy8RRi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.232.95.72:9999", + "registeredHeight": 1986682, + "lastPaidHeight": 2127531, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XntBhqxVG7DwcbJXJj9HNDbcKhJs6CoGo2", + "votingAddress": "XvXSf9fMs4UzU4FKNTJL4yGVPhBVndQAc5", + "payoutAddress": "XexeHg1j2YWDvtDjmFetfPhXQ2oaX7pyrs", + "pubKeyOperator": "b7a4bd111d738e213df2faef7f84aa64584e2b9d4a81cfc5fe5a7241777d97bf98c6af21616dd6d58db034251ec24c5d" + } + }, + { + "type": "Evo", + "proTxHash": "60869d88c31ba5f5869f2e3b072288f5523a90b7b276f595d2d067c15bb33e91", + "collateralHash": "5c181983d364be01dcf490852740e1df86c8231721a8c294d513bf308999989e", + "collateralIndex": 1, + "collateralAddress": "Xtf2WcEZBGqr2QiGAxaNuKXgivmJfRMHU4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.88.169.16:9999", + "registeredHeight": 1986693, + "lastPaidHeight": 2127519, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115173, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrKhtxSG4KpZ6RncsnsP4Lvr85u5tW513h", + "votingAddress": "XrKhtxSG4KpZ6RncsnsP4Lvr85u5tW513h", + "platformNodeID": "4b19118bf62250d8bd1f65f25578d0949abf9397", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XyYAaM2rPsdLWmNFgtbGFtAMcwzCUeYfXe", + "pubKeyOperator": "96eb86258ea5a6541067f6127e6a17e1a06f072a14ca13cead1e425e1c485ed0b0435ef7c1d87f453665342ecf7d1841" + } + }, + { + "type": "Evo", + "proTxHash": "272c13b64739b9853979edeece1e3271bf94787122a8a201d253dafa9d4a7b7a", + "collateralHash": "68621a94367cb2c9449bbe6a143b628c2d8c91b99016e6a8fd8b510659d814b9", + "collateralIndex": 1, + "collateralAddress": "XtY8wDNW3HHr63JhiwfrSPdNXehN3ABjwp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "130.162.233.186:9999", + "registeredHeight": 1987387, + "lastPaidHeight": 2128299, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoNJgjmNx5nHiwHXMY8Dzm5ZZKiymQFpi6", + "votingAddress": "XoNJgjmNx5nHiwHXMY8Dzm5ZZKiymQFpi6", + "platformNodeID": "7c814f1fa29ae51672f2f319433b835cfb93cdd4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsC8eg7PfFY4cLVU6Tr3s8DMFWB9edpBFi", + "pubKeyOperator": "96b1223d109c50e25ecb947c62398d0eaa6db88f8ac9c93f4d44e77e7303fbc3ae8e8734ec11874323e3ec912ad78781" + } + }, + { + "type": "Regular", + "proTxHash": "61153d402efb4a83fc26ce11c5735427645f80142611b109e58f5fc5f375e3c4", + "collateralHash": "2fbbb24efd54d2cf95b94b1c6a3de88dc352a7f3f73d8086ccbbd075377d66c2", + "collateralIndex": 1, + "collateralAddress": "Xjg7kz8yRXLzxrvjdbUT8bXkirwU3FcPEa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.65.145.70:9999", + "registeredHeight": 1988218, + "lastPaidHeight": 2125906, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhoqrBv91QM175WTZGs73ob5CQieZojpaY", + "votingAddress": "XtMifG9xppr3KhwGeo9VHRksDJXAZkbQN7", + "payoutAddress": "Xjg7kz8yRXLzxrvjdbUT8bXkirwU3FcPEa", + "pubKeyOperator": "b7c8092b176c9c6bea48241d21a806e4fb2d2cc9893644ef00ffc847b7407c2700498d1d7b08491d9d94c4ac688eb827" + } + }, + { + "type": "Regular", + "proTxHash": "c8c433e4aeca70bc2b76cd2373ccbfc65a2a4249119a9aa32708525f6eac3db3", + "collateralHash": "5cc7656ac657af4bca391a51ccad3464afd970b406cb77a8ddc9d10b025f0d93", + "collateralIndex": 1, + "collateralAddress": "Xi34sWj8NfgBdx4fjG7PWw7dFm6QDRM6AP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "164.90.201.252:9999", + "registeredHeight": 1988218, + "lastPaidHeight": 2125905, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcGYkyN7GAcsjwY2evaaGzzAvQA9dwMP2i", + "votingAddress": "Xpd1KRycBGFsNe8ZmCdM1W9kzV5jP9FHT9", + "payoutAddress": "Xi34sWj8NfgBdx4fjG7PWw7dFm6QDRM6AP", + "pubKeyOperator": "97db87a46bf8d2cbb26f97a20c8111cdaab0739e446fc13c1854d9947c4e93a77ba8029ab71d8ae307d59c8189123ba0" + } + }, + { + "type": "Regular", + "proTxHash": "6a8129993bfb9be2823c3269cf61c6488ba2664e9b65588fefd3538a4dcc2a90", + "collateralHash": "5f36285c2f4cf6627b473e1a8d7fcfbaf93db7d17cacff544804af21644eca55", + "collateralIndex": 0, + "collateralAddress": "XisadyWDKyzxJbBdQzznfxcQjLFvBzDngo", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.58:9999", + "registeredHeight": 1988513, + "lastPaidHeight": 2128815, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2102612, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqbe2vZvb8Qb8bBeoMX6SvnrVjgkwSiNu7", + "votingAddress": "Xqbe2vZvb8Qb8bBeoMX6SvnrVjgkwSiNu7", + "payoutAddress": "XrxqQ34oTZaLV6xkeBEKd4N6FgGNoe1tio", + "pubKeyOperator": "091e7ba2e9546cf43699bc9a485fee12b9dbdc97b606c378ebc12d76daa4c61881c3d67911e1fe7d5439cbb59a126e8b" + } + }, + { + "type": "Regular", + "proTxHash": "960808f4a34e174db4aeb5942eb271c241c367449f37668587c28c235c9f13f3", + "collateralHash": "16ba4c1098daa6015688d3f1eec5f95565e77bd71cc1071d524f540e62582c21", + "collateralIndex": 1, + "collateralAddress": "XdUCAa9jyEEe4MHRj5bVAnwxHrosmgTiU8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "193.160.119.129:9999", + "registeredHeight": 1988634, + "lastPaidHeight": 2126299, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhy3LrjsQU14epgpLrHg7vrpNwiCiEVXSY", + "votingAddress": "Xhy3LrjsQU14epgpLrHg7vrpNwiCiEVXSY", + "payoutAddress": "XgEJG5LJ5pca7uFdv7RHmbNf8JJVTrXFub", + "pubKeyOperator": "8b322219e9ab2f2443ab69922064d94f0212f69806bc5f3909f03c951469c8c72b8165a0c00f2ad178efa382f2cf6dd3" + } + }, + { + "type": "Regular", + "proTxHash": "e6a62a34e0473ee290730ba87c13cee45a34ac75c369bfd7e15a2f6156db8e57", + "collateralHash": "06719e5b99e712cc3969240eaaad5b58c082a6272a34a6bf26bc8fcd9ed5801d", + "collateralIndex": 1, + "collateralAddress": "Xet5JRMTP9gN7FK8uWGBErHSwxPUyGfQoT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "217.25.90.254:9999", + "registeredHeight": 1988663, + "lastPaidHeight": 2126318, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeVZHTLktDsyGKSJuKDNd1sZ91p9C2oiQZ", + "votingAddress": "XtZincM9hfC6kGWG2DAJrKKaB12CdgecPC", + "payoutAddress": "XbC2VGjXCpQsqysKVK8Mnk2bZBvmiGMYtz", + "pubKeyOperator": "8b84651527912ef4b161aa2074bece81aa90399f2a8b519213ce2468ed051b5b9ca5de6f3760eef6964428c09418e02d" + } + }, + { + "type": "Evo", + "proTxHash": "ab65e314b9d04d6bb066fac4d35e62f74ac8f52a4c1134301354428dffb949d8", + "collateralHash": "1f56154e5c3f79e043c6e993d384762efa49b1b621a26e6c50ede0875012bed7", + "collateralIndex": 1, + "collateralAddress": "XeJQPpL5DS5nqAz6ikz3CsntqobMr55G2P", + "operatorReward": 0, + "state": { + "version": 2, + "service": "81.17.101.141:9999", + "registeredHeight": 1988686, + "lastPaidHeight": 2128119, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2010562, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgbyP4BdCoWHJEoLf49NovLnbAkVTRPPV6", + "votingAddress": "XbWdvZg2GC3YkrbUzU4dHY23kLhRAh3LCH", + "platformNodeID": "bf9c4973ba579814abcb848371a33f7ccba0dd4f", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "85445596c12406d7444effaaa74c8a01ed9583795a042c96184712cb095b9f9a43b6e738e07e99392d8bf10b8d45e540" + } + }, + { + "type": "Regular", + "proTxHash": "1d65667a8768a5dcfc8947f8050627406d4068b9a4060ead61569a5ccac44cc6", + "collateralHash": "b13852f68aae625f622745e079200ddf4c42eb46f20dc06f7d9d6dcbcfbd6767", + "collateralIndex": 1, + "collateralAddress": "Xgf881U3BVssxHVvV92DXbYZukLuqLCebJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.9:9999", + "registeredHeight": 1988754, + "lastPaidHeight": 2126371, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbrBba813oHu6n9cyfTc7es9KgcLT2Zr2A", + "votingAddress": "XxfAzD9CxKGjkdbXFed5E8K6hAczt8tqV2", + "payoutAddress": "Xc7SnR3rcfdhEnjaQujAnt9e9neyYc7Dhw", + "pubKeyOperator": "a1fab64959b99017e7ebecf541385bdf120f5847f12c67afb54462a34d3ae0e240ef1057078ba5fef2fed29e3d93db69" + } + }, + { + "type": "Regular", + "proTxHash": "cf238983415297bbbaff1cace0185e66519dc9f10de51153ae7cfd7ba9cdb94c", + "collateralHash": "5f018ffaad165dcf3c16f8c5fb96922ca404783133f44bb5a4f4d1e77b251963", + "collateralIndex": 0, + "collateralAddress": "XapiMqB3Py4mHPedCkRjhG4M9jEKLbXTRi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.235.194:9999", + "registeredHeight": 1988971, + "lastPaidHeight": 2126568, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmH3zFDHmtoeneRe9yjVnCWorkPTdZUGW7", + "votingAddress": "XoZY9oPk1ndEMim9BdyPQAsSxa7A5M6fvH", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "8b04cecac8f71167beed4f86d1e3c00181495b6df6a2647131d2b03ca057587097b9e9b33c2ee3a5ec0b8ba12bfe002b" + } + }, + { + "type": "Regular", + "proTxHash": "21b02cad2fef91d19881b6ddba6aa12a1b1a8246e7c25edcc2984298d68b400b", + "collateralHash": "6040509219df94d710f95275362162a8ba9e114d6d09509bfe5dd020fcb54a92", + "collateralIndex": 1, + "collateralAddress": "XvhgmMKkxsHQAajnBWnA4fPxMwwRTHWBu9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.22:9999", + "registeredHeight": 1989689, + "lastPaidHeight": 2126519, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114123, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtnAxHLCfKCKgknT5vez1gPDYUyX5pCnz5", + "votingAddress": "XnNfDCroJa2FKxyPLzzksmsFM2jqbsVbQE", + "payoutAddress": "XvNjEK3pSwJzh5CWpDoapqEX2hmkuEem5a", + "pubKeyOperator": "8236b44730a51fa069022e0ca57074b13648da67062db194591285843174c2e1c11bf4e43d080a63ecd62410aeec067f" + } + }, + { + "type": "Regular", + "proTxHash": "0dc2f355622da18a76e692c1cfde1f3e782dc35d9f91e44ca2d1fb884a26f47b", + "collateralHash": "cdf98343754d5e7d21d680f693430adc0e57d299e7bbc0d6cf1696bc206c5e59", + "collateralIndex": 0, + "collateralAddress": "XmYo51DKeZbQBwLzA6hrYFP4nbZmDVHcSp", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.55:9999", + "registeredHeight": 1989974, + "lastPaidHeight": 2127787, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2101526, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnyAwUL5Y356QtXKNy3pTLgjpuiBzN5XQF", + "votingAddress": "XnyAwUL5Y356QtXKNy3pTLgjpuiBzN5XQF", + "payoutAddress": "XtimBkeBnP9ukcdH6dSPL5RFAG434Lcnr5", + "pubKeyOperator": "8a0c5d3431784f7fd1fdff2ce1070129750b3926180d085051f64df80f728d0e6aca0934a60344a3c3ac6ac4f546ed61" + } + }, + { + "type": "Evo", + "proTxHash": "e0e7f6b2961b8f5d2634b71a72846baab89bd6b9b842e6cfd7da9a60aecbcdb8", + "collateralHash": "48c442fd0b4a84510bc24c51804d0277c3408dda41e0d6b00c17f75dec92ae0b", + "collateralIndex": 1, + "collateralAddress": "Xe29PRrszg9mb3Rj6STA5i1mjSreHLzxhL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.182.189:9999", + "registeredHeight": 1990586, + "lastPaidHeight": 2125110, + "consecutivePayments": 0, + "PoSePenalty": 1729, + "PoSeRevivedHeight": 2128086, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqqbbSj6hM9jYzXF6CDj2Q5GkDw1o9xp9n", + "votingAddress": "XvjoAiWNu7bnaykftzVYRyFyxPs3Qv9joN", + "platformNodeID": "267050cc7d6a92e26d3446fee3265d313e00f02b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "ab41d8bb466aed07584139a17940754fbee078a2b3bf95419b1a118a7c4382a2d526031637cd48aa248d46b2e103731c" + } + }, + { + "type": "Regular", + "proTxHash": "04a851d736321ed7b668e302b0de0ac831bcd822e8e101aca330d3df4c01d2b6", + "collateralHash": "04a851d736321ed7b668e302b0de0ac831bcd822e8e101aca330d3df4c01d2b6", + "collateralIndex": 1, + "collateralAddress": "7WY7QCZj97tQxrqkrkiavifhQHEBQ16GRg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "62.77.156.147:9999", + "registeredHeight": 1990589, + "lastPaidHeight": 2128291, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJTXtFYqKQ6GegAjCtmrRwGdvtrkBXzVM", + "votingAddress": "XfL4Ah6v4SpT55fT4Y28do8QDeXGd5tm4E", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8cb471f0adc4dba7290e9411edbf819d71daf3a795cead9573a9b46fc64c943e584c66e0af26ede88fee09965fc36f91" + } + }, + { + "type": "Evo", + "proTxHash": "74056fe5b57c33612cc688a2d3053273d40baa36cbf0ef2ba29e096e1377302f", + "collateralHash": "0d4332431491b53f361f984f36dde49846b0514ec69dedc162a29695b1a2961f", + "collateralIndex": 1, + "collateralAddress": "XpTwY5tCoMFbLZnyJkktre4ywB1KFdwETe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.182.187:9999", + "registeredHeight": 1990604, + "lastPaidHeight": 2128317, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XodEGL7fy7piUN3Du8wUEdLWUajAqA2XtG", + "votingAddress": "XdsY27fUinBqSXr5DNLvZmGFvMwdhu7koS", + "platformNodeID": "6b56dfbbef7b0bf3e2217dcfa8746b1b185d8e55", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b451aa29106bbf5291f36e5f67b7497ce7e4fad8eb0439f616195ee2e9818d5f2e5a851bf12e18abaf6d6ecd7ba06e0b" + } + }, + { + "type": "Regular", + "proTxHash": "dffdcfbdf94d4b30fd78e1f0a2521300c1cbfef8bc2de9ab080595ca9ca175b1", + "collateralHash": "4ed129f1e74e5963f036ce57cb50680c906968c56d59ded1412c51a7fc58fcdf", + "collateralIndex": 1, + "collateralAddress": "Xav8TxzPouA71omkh7toq7K6HeW4BQagpe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.126.127.16:9999", + "registeredHeight": 1990615, + "lastPaidHeight": 2068112, + "consecutivePayments": 0, + "PoSePenalty": 3807, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2068170, + "revocationReason": 0, + "ownerAddress": "Xg13XUHM8FzFcyLCGWsmJkgXcKJXNL1Hst", + "votingAddress": "XfiQGX3zqtUhb42hnuiKhrafje9FnTu1Jd", + "payoutAddress": "Xav8TxzPouA71omkh7toq7K6HeW4BQagpe", + "pubKeyOperator": "b24ee224d0e74dc51440f26c6c9f532917322948f235388c8283db0c52146c5b0c1d7c144e244ed8ced7418e03bdd03c" + } + }, + { + "type": "Regular", + "proTxHash": "365fffdded42ab25d444a81a5e4324138f1b4e257142d2be415624a90ca36def", + "collateralHash": "5bb595c20c9cb7c580a343b4aa3c0f4f7e2b309a02b60be527233498a078caa6", + "collateralIndex": 0, + "collateralAddress": "XiVNxuxVX7yCi7ATZMhQGLYUKNJStH7erC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.126.127.15:9999", + "registeredHeight": 1990616, + "lastPaidHeight": 2098616, + "consecutivePayments": 0, + "PoSePenalty": 3827, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2100714, + "revocationReason": 0, + "ownerAddress": "Xtrdbkq3HzM2jyjj3TwraBpMzond2qbHf2", + "votingAddress": "XcbAMttP9n9dbwQcLV5AvgBThnH9nbEJZn", + "payoutAddress": "XiVNxuxVX7yCi7ATZMhQGLYUKNJStH7erC", + "pubKeyOperator": "8bc68a3437ddcbe6f95ef5cfa58626bbd35306cdddcfcb17d4bb39a5b9787cd147b90ab69623c9c13566b1dbaa6d4bfa" + } + }, + { + "type": "Regular", + "proTxHash": "93527406f27bc074be8400efa7ee7cbe9fed132ac51c4bf4268abfdef12d2c6e", + "collateralHash": "b1e071f0bd3bb24945e5f7179b96e5e4f236afb12c01e10ff6a59ea2aeae6e61", + "collateralIndex": 1, + "collateralAddress": "XgTqHJcEW6xTZi5v7KrsDVZwySH8mbpRTk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.15:9999", + "registeredHeight": 1991131, + "lastPaidHeight": 2128836, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnXUmxopmCkedRnr3S3Pei2f7neD31TKJz", + "votingAddress": "XjHvQgJjc4vw9UsKzWqzPPAvDS8bydh9zr", + "payoutAddress": "XgTqHJcEW6xTZi5v7KrsDVZwySH8mbpRTk", + "pubKeyOperator": "b561bb2d632470724d3be206349574f244d55946a80aee9d27ec8317d72aaf957d6fae14f62cfd47f41d321b88fd505b" + } + }, + { + "type": "Regular", + "proTxHash": "3ce47e7b980d29aae8e6fa115423c65265df6d3898cd80b4417f5b0f3f4d3c24", + "collateralHash": "051dc4ec418804c15161c8853fbcf893e64ed6d8e618b36634a332b8c27b5d16", + "collateralIndex": 1, + "collateralAddress": "XqLviU4QashbtKCFsmQdwn5w9D5ocj3oQe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.82.102:9999", + "registeredHeight": 1992105, + "lastPaidHeight": 2126480, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdoDrnHi9YaGvr25PfkKmhXpsMiggy1uRW", + "votingAddress": "XkfG7vz2aBKxS11wUZYMuvmyPLhLbfExoK", + "payoutAddress": "XnRJEwd7XuHYi3kuLCGZAtLYF2iiNs3WeF", + "pubKeyOperator": "b4a7c4942007360fabf43f8365a4d8bf44d44fba898febe1dd58e5a06d685be2884970da36381d72e5b0e0ec1555d3a6" + } + }, + { + "type": "Regular", + "proTxHash": "52bab27ead33409d21831207389c30f241325e3cb5445b6cbd5e24912434339d", + "collateralHash": "67bdced2b8e2f557bdb0a925b3ec2f76865f48fcffb48952a3ffdbf88d8f9a28", + "collateralIndex": 1, + "collateralAddress": "XwwmxgoD4bPks8QvNGPJMdsGWY1KSahhSQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.209:9999", + "registeredHeight": 1992350, + "lastPaidHeight": 2126707, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr1HrmKNTkG2kAx3cZuLWvaW4P9pZC3gFT", + "votingAddress": "XjpBX9tNjaBD9ipj2jW6w7Mt7tugK63KL1", + "payoutAddress": "XrWQuFvKDvHU3MXpHijNrt8J3WihiMVjjo", + "pubKeyOperator": "b673e273ac1e8550f26102c73262add1c0b6bf92b9bfe00650305397c47fc2c29887e8669a24df353699429baf1110c2" + } + }, + { + "type": "Regular", + "proTxHash": "c22205489a124dd57b243cfd9c81e90aa82ed5275410df2d40e0f8c566d546ac", + "collateralHash": "9ae7ccd562c0b222f0aace511113fe24d4de1c821fe6de3b917be3def4b9fde6", + "collateralIndex": 1, + "collateralAddress": "XeMxrbsBGVjLWxFHrpZhtT94WcrA21uoJ9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.117.19.10:9999", + "registeredHeight": 1993277, + "lastPaidHeight": 2115311, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "Xwjt3GyMFTi8XshwgJXL4Jf4ChPpUF8yhj", + "votingAddress": "XszxY5xo7KyehhnxnHJ6qzA4jQm9qK1Uw8", + "payoutAddress": "XymNW9abA5PrLvNYakLxcGTgyafKcaxzKQ", + "pubKeyOperator": "aa72501bd56d606b3b4dbab4c94a1265baa16f6e71e449505386cd84b0544340ca70c4332535857a92cc1018ee20eb43" + } + }, + { + "type": "Regular", + "proTxHash": "ff0d9aa814a8683dfc8d8c1e54857e52581b33859aa09cc58cc7dcd848d0b60f", + "collateralHash": "1a2a4f8f87c49a4297aa900799e8a87d47b2bfeff6fdd0aaba93ea2a98396616", + "collateralIndex": 0, + "collateralAddress": "XuvxNJsFH6hXbGLDBEXYJpTdcouzBsYjy5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.23:9999", + "registeredHeight": 1993438, + "lastPaidHeight": 2126126, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1998454, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuCftbLb7Jv79kXKZiDi84ieirRN7MvKQM", + "votingAddress": "XvpoVJRnctzs2vSgr8fozd1S38TRc2xERj", + "payoutAddress": "XunyDRTpGZLgcWedMkjPHa28ggM6rHMmXw", + "pubKeyOperator": "a65736e1796aeedd04636d2d800161bd844812db42123958ac7b93438fd1df02cb1064caeff182a09383601c89c2c661" + } + }, + { + "type": "Regular", + "proTxHash": "fa0b3a2d56a72a8d66165bc044cd628a71ca37bf4b53a7da01f153722c065a8d", + "collateralHash": "12f338d7031553d8702645231fdcf871e8d666afca1ae8e8de4108b7f0133e34", + "collateralIndex": 1, + "collateralAddress": "XvyeN31DZcdm8YmNU7fcvoXbFA3vG5pCTC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.100.76:9999", + "registeredHeight": 1995343, + "lastPaidHeight": 2126357, + "consecutivePayments": 0, + "PoSePenalty": 543, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgswfcv3bu5z7SiPACK6S25JL7m75sbUzw", + "votingAddress": "XcxCB3XiLKfpoeZ7uE17XoN3j142a4mzVj", + "payoutAddress": "XhQatc65WsVDtZuuqCD7dbzxR3dNnvX8Xv", + "pubKeyOperator": "99d075bd80083e8bb2ab882eb3a64bed4d210b8b5fd01b19f72007f661188b7561a1a0f95d7553a32e5905bb34dd2fb4" + } + }, + { + "type": "Regular", + "proTxHash": "48ea79852276430d09ed2938d3d48817b777432d97688427cf2d61a2df4dbd4c", + "collateralHash": "4fb53577d3c15d25b65c5f3c2862ac531b3ac95b472cf4c89e90574aae86cc0e", + "collateralIndex": 1, + "collateralAddress": "XiGaJdPFPNHm3gFeLmWBF7RAB81WFwybbN", + "operatorReward": 0, + "state": { + "version": 1, + "service": "89.40.3.32:9999", + "registeredHeight": 1995612, + "lastPaidHeight": 2126845, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 1995883, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxu4ACEVdoykb7ZuD8cQQPg9zax8eR7vMf", + "votingAddress": "XpDCqW1dXGPxpiBYXNBRCKRiKfb8qUVgij", + "payoutAddress": "Xyu9og4Tm8iyHM7r3AWVUH1pru8EWBGd9y", + "pubKeyOperator": "92da697f18081244ff2abac7537e1ce323ec95946c538c837b44fa69ce7eda9824d1f0df0bf7484af441283a87940590" + } + }, + { + "type": "Regular", + "proTxHash": "9c48e2b7bdc3ba6a2b2cfbade2b87042ccd8b0e5dd65af5de284207ab6db48d1", + "collateralHash": "bf1c2f181bf1d8fb66c2a4ed043fe95e32753e9062887e699450786cd50eda1a", + "collateralIndex": 1, + "collateralAddress": "XcSoPrGtd7UK7BkwANXWjr8ksz1DpgfeHF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.179.73.96:9999", + "registeredHeight": 1995677, + "lastPaidHeight": 2126497, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2059560, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpfUyWVWjSNRHVcmagaTcz5uytsG8Zk596", + "votingAddress": "XcTZttFBjSx2gUGereRQwdDUMvirok2dDv", + "payoutAddress": "Xg3SjdPaZDABZArfiFKQ1PNhBsVLpuGYtL", + "pubKeyOperator": "920288b851ea36ffcee8a6c9cd2f8a2cc9b32471788a67fcbde9185eebeefc5c3340a37af9ec0346913629685edbb55f" + } + }, + { + "type": "Regular", + "proTxHash": "d06263d0628755adbb9cda300f3e7a50a47742f3253d78b89e9bdc90e348fa30", + "collateralHash": "69e13e94696985f0b237f03062a0cd5cc51128c54d3570503e79aed39b6040d7", + "collateralIndex": 1, + "collateralAddress": "XtBzpVrgRkGyRpJJe8TCtYt6KAkqshuRZs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.239:9999", + "registeredHeight": 1995835, + "lastPaidHeight": 2126793, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs8LhTLzr6QbGog9mCizZ75MLbYc3sFQeJ", + "votingAddress": "Xfm5Xknc1r7G4XQjuokQByUTM3DSn2NBTB", + "payoutAddress": "XrWQuFvKDvHU3MXpHijNrt8J3WihiMVjjo", + "pubKeyOperator": "b45b3a230fb00eaaee630340ca660755ba0976ccfa5db8ce0a75f226ac5b93b7fbb9189f65e32e4770be6a3a2671eea5" + } + }, + { + "type": "Regular", + "proTxHash": "44e2ac7f83983e6d1e936028dd794cd4c6ebb1d146629f4707514a6e863a037f", + "collateralHash": "44e2ac7f83983e6d1e936028dd794cd4c6ebb1d146629f4707514a6e863a037f", + "collateralIndex": 1, + "collateralAddress": "7Sfq985sEAtAVfQeRELcCAK6eeY9tCxQzC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.81.165.202:9999", + "registeredHeight": 1995883, + "lastPaidHeight": 2126846, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtRu318Tho6JHMUinMMJqLQ3NcnQgL2dJA", + "votingAddress": "XfnVRYfTe7VuJrQN4aowWwd8WGeVG7nDCm", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "95be84aec80edaea08287f54f7c91caace76f91090b9e5a7809263c400af429c3a820e8b24063f248bf5b2678a636ebb" + } + }, + { + "type": "Regular", + "proTxHash": "067c4b245fa9ca366b05fcfdb75fd66891d992efee58b412281c251b8dda129c", + "collateralHash": "20a4efc5086ff0c53c456939dadc31af09673d6f0bc8ff944f034398315f6e99", + "collateralIndex": 0, + "collateralAddress": "XoHnUBznfDeqgZx1tx1c1dSPmWHLARmgSP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.213.230:9999", + "registeredHeight": 1996054, + "lastPaidHeight": 2114692, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "Xp9jk3L7CxnwGaJJroTcnncRMWy4AtosU6", + "votingAddress": "Xz1yNZg28inp3bXincsnRKrVzfhgmfGQpH", + "payoutAddress": "XoHnUBznfDeqgZx1tx1c1dSPmWHLARmgSP", + "pubKeyOperator": "a42381c77ca99cfb797e9de8158db3ec79e3610864cae0236b00a0e69d1dcc0a58396713b33b70700e502ea1a6ccf1e9" + } + }, + { + "type": "Regular", + "proTxHash": "7dcc8db11b2d9313520c43906fbf8b5ad84ef38ac957e12de562c775950892a2", + "collateralHash": "7c957504a10e0ab1353e68982393b1cf1dd7fc2eaa42957d4b674141779e84f6", + "collateralIndex": 1, + "collateralAddress": "XsYKHrAcnmJxG51XH7ux5dKnqLtKUcfaaC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "133.18.228.84:9999", + "registeredHeight": 1996138, + "lastPaidHeight": 2128242, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118970, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqGvqkyNeTszAQh3P6UZ2P8gMBGobcLVTm", + "votingAddress": "XqGvqkyNeTszAQh3P6UZ2P8gMBGobcLVTm", + "payoutAddress": "XjtyafKWgfpP4M51p5TnAVsZt1B51yQLEa", + "pubKeyOperator": "827388dd833a3ff3b7793c1c343fae03f7215a877c756d61e0b646c3eed9437c8fe4157023660e9dcf1ea42a9eb746dd" + } + }, + { + "type": "Regular", + "proTxHash": "1f51015dd6a571b27bc33d86b4ea36715958a625ce69df88ab8b51ff526cfd20", + "collateralHash": "287e6b98e94bfcc9ede8351867dec83168ca876d354f1d1a0fe4920e35a06c2f", + "collateralIndex": 1, + "collateralAddress": "XssbNMAZf4P7ywRwznoBCu4JwKSpBY8Pzc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.81.214:9999", + "registeredHeight": 1997486, + "lastPaidHeight": 2128807, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2051762, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrs6obfVRLxn14EUK6kQj2B8NbpN9ShjFJ", + "votingAddress": "Xxm3HQionFSad5V6BKkyskyWsqGrC9aTDn", + "payoutAddress": "XssbNMAZf4P7ywRwznoBCu4JwKSpBY8Pzc", + "pubKeyOperator": "8789b1e72234ecfbf2765b41348b98f0d299a615f75e3a2c65ac0baf06438d205ad284bea3747aab931d320cc7f99223" + } + }, + { + "type": "Regular", + "proTxHash": "76af7e6f5eb0dcc759379adb64bee92e451a1e5519aa16c0b66161225fffd620", + "collateralHash": "b9302750b4fb83b7542e16bda6cb2071e39014c12c4f709a10937a687acb2077", + "collateralIndex": 1, + "collateralAddress": "Xi9cobkuXMpTDobUWuFKd4STB1ZTTju8be", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.5.53.135:9999", + "registeredHeight": 1997720, + "lastPaidHeight": 2128717, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeyjEoDFaYqTZKyGVrqAsEV8W279yCz3MW", + "votingAddress": "XpV6QExejWxQhAtsZDcaEjSbXTt1L5u8tK", + "payoutAddress": "Xi9cobkuXMpTDobUWuFKd4STB1ZTTju8be", + "pubKeyOperator": "b46768d98bc3d8688b19257f1b9ad65c1cd2dd90a9e7537b9fbee4103b9adc4bdf391d45a49e9dd41688e27d54e27255" + } + }, + { + "type": "Regular", + "proTxHash": "ebe672363226723faf83f232469633432527e90cddfc1ef65ed62aeb53aae410", + "collateralHash": "25cab9b008011d02fc13e58b2d89382e369ab06349b510a24bfde9981223941a", + "collateralIndex": 1, + "collateralAddress": "XgUJjGFR6HCc8nroqW9Qpb6T3ehqY7mzR1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.40:9999", + "registeredHeight": 1998579, + "lastPaidHeight": 2126207, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxYzqiY2N7Ufj2C6vE8osdyqfUz5Mw36rF", + "votingAddress": "Xqw7cwn2zNwz3dCw9eAuF6SdUKEaCdDGmU", + "payoutAddress": "XgUJjGFR6HCc8nroqW9Qpb6T3ehqY7mzR1", + "pubKeyOperator": "b1cf3622a62d4862f7ea52989349265e0e2dd1f547d2baed52cbce6da1eb8cfcab39dc83dfdc4e96dae66a8b52db5598" + } + }, + { + "type": "Regular", + "proTxHash": "7f41688477bd354d336f42380e521e58189a6facfe7516890c5d46c078fc2551", + "collateralHash": "7c7b8cdc071002990b038a16221bbd3611d961726fec3c0e5994a42f4100741e", + "collateralIndex": 1, + "collateralAddress": "XhBqA3uJHgqEbRA9DJhTvYcxy8njy7BvjE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.24.104.220:9999", + "registeredHeight": 1998581, + "lastPaidHeight": 2126208, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyRXU9hrkVbf2LS2gMMGZHbkkjzMeR53KX", + "votingAddress": "XcE2qiVpfNTXrGYCxobTdhBvhHUxdLH3a5", + "payoutAddress": "XhBqA3uJHgqEbRA9DJhTvYcxy8njy7BvjE", + "pubKeyOperator": "965dcda40c3afba3595a146d9590301b62e68351b06ef0a389fec663bc445b721e44da824d88c0c0a5215fc1d0da575c" + } + }, + { + "type": "Regular", + "proTxHash": "37875a395fef95797daf0ff694e12f5ef5e69c874802ea80f501a7634d61bdf1", + "collateralHash": "37875a395fef95797daf0ff694e12f5ef5e69c874802ea80f501a7634d61bdf1", + "collateralIndex": 1, + "collateralAddress": "7WywFv8u4RqQ1joH3WVuxwsqvRkD7XUoVY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.24.105.158:9999", + "registeredHeight": 1999417, + "lastPaidHeight": 2126996, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeAUF8rS55gtm9F3JKKYDeHNYHtvJiUFMR", + "votingAddress": "XwbeCMmanZzoVnc5gNC6tdXnpArCJ7xxWH", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a2a46ff4527df3a2229af67e56bc9a6033fa70e3a51bd32708a8e6f35ba1b584e8ddcc7a91f9036d96e1bac6552fabc2" + } + }, + { + "type": "Regular", + "proTxHash": "8694aa404f2dd2b925b871b3e65c3726db8b28e9af538afa7aca65a30667d696", + "collateralHash": "6573a194524756283ece818442868ebe731cdc01b6978784dfe9e6b57048312a", + "collateralIndex": 1, + "collateralAddress": "XyDmRy2T94dxkZXAW4fwPEcWaqiHe929CW", + "operatorReward": 10, + "state": { + "version": 2, + "service": "85.209.241.211:9999", + "registeredHeight": 2000421, + "lastPaidHeight": 2128097, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy5X5WbVDeRG8QWyCWH7QuzG5WtAP4Hjuv", + "votingAddress": "XqfXWNJia5hyXy2MLpSb2G4g6twD74nvzA", + "payoutAddress": "XsFyHJwMDYDQPFXVny3tWhB2rpe6SJdpyD", + "pubKeyOperator": "879fd5311e64eb2c3027062491826650ec708d0cd8c19d3fe529a62c87fecbf6c59ad9aa5c8677d014d5e2c117be6c2b", + "operatorPayoutAddress": "XyoUFg8mNCzMhUVUfaga5Qt6h6aW42dtGU" + } + }, + { + "type": "Regular", + "proTxHash": "37ff7a2e9c00d97ed3e22e83a7b5b8de9b6cfea9f1ce1816212de23ccd1ba691", + "collateralHash": "1603adfd4275df7264a181f668789d025322c19b4cb8ce0a56ef550125186a40", + "collateralIndex": 1, + "collateralAddress": "XwYJkHRiMRDbpfVHuLAWemoKMuuGZhuAGu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.40.2.244:9999", + "registeredHeight": 2000834, + "lastPaidHeight": 2128480, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuAfa6nozKHtG8z2sYnM5dbpE6H5Rk1FmJ", + "votingAddress": "Xwspwxjz4qhBPFfRR61PciKCPAfVHWHVUL", + "payoutAddress": "XwYJkHRiMRDbpfVHuLAWemoKMuuGZhuAGu", + "pubKeyOperator": "a176193533a03c5c699057ee839bbc38fc95d335fc4f82d0e31f053598b6fb42b0b19eba8c9fa24e0a49a6c194aaf81b" + } + }, + { + "type": "Regular", + "proTxHash": "213512f36fa4a31a87a2e7eaf3bd1136095f66c25008ebb1c3a6fb58a4fb67cc", + "collateralHash": "70848df5462450ceaa4f7f606107a2acd327a67c4e235e1e5fc44eac41ffd221", + "collateralIndex": 1, + "collateralAddress": "XiYw6nShugp3za5BcBU9Rw19HLgubhUt2k", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.57:9999", + "registeredHeight": 2001647, + "lastPaidHeight": 2125971, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XayptemXktRByLUbnQCxm8abi7RRryN92Q", + "votingAddress": "XayptemXktRByLUbnQCxm8abi7RRryN92Q", + "payoutAddress": "Xh1d7r3MjsWDprTP7Bo9Y8WTymPtrpa78t", + "pubKeyOperator": "017ecc97c2a331de89430e9ac72a88a6ed44b7dfa6512e0b6f2a9aff9c9a6a25e63f37bf1321e460998bdc63d9141bbe" + } + }, + { + "type": "Evo", + "proTxHash": "be1cfde128dcfb63035219b03cee7ef3c7cd9c483224dc811e8db64a907a7c57", + "collateralHash": "e584e145bb9a239f6333cdd2622d8c9924a19f6e08aecbce2d351d4c16ef7755", + "collateralIndex": 1, + "collateralAddress": "XsKr1koRmP7JtnvzpVEyLy63TLquEKKjsp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.93.236:9999", + "registeredHeight": 2001774, + "lastPaidHeight": 2127830, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121582, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XizDRRQLeqgHyLYmLS7rVaccvX5YkHBg1e", + "votingAddress": "XizDRRQLeqgHyLYmLS7rVaccvX5YkHBg1e", + "platformNodeID": "205ad11dc08ec4495572736d1c655891018e676a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xx9zrS2hwndNBztLrWtrUosCwnkBsPKXL1", + "pubKeyOperator": "b85108eb4b62003fbcc3c42737b721a496a5f18cad231bf821628c5fdd779e2a0243c332973afd4c03f6ca1a092473d2" + } + }, + { + "type": "Regular", + "proTxHash": "8ee1839db846c536b96de4f8d6ac6391ee86161a28aad3ca31c40ecedb6170b7", + "collateralHash": "46b207521499ca9bb85f70a3942f3a6dd86493da7ac577d29ee31d79524e4ee3", + "collateralIndex": 1, + "collateralAddress": "XwDbcyi2KXYdLWCN7fQTvtg8BuHaavfBMf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "62.77.159.234:9999", + "registeredHeight": 2001899, + "lastPaidHeight": 2126168, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XifCt1kEtkH77rErAXzmtsMdff1y3ijkMv", + "votingAddress": "XrohY7Q2kfLXaNDcrsR8JrJJT9GjAowYP4", + "payoutAddress": "XwDbcyi2KXYdLWCN7fQTvtg8BuHaavfBMf", + "pubKeyOperator": "b78d0394a19aa1fb76d6da39cf884aebb6f20dd5ab41191b59c12a2d71ce49f0cc11b11045cac0ce2ec1199895f9be9e" + } + }, + { + "type": "Regular", + "proTxHash": "fbe86fe3d6c55c3ae21f913ae6b65ded25125d8fb777af1155aa790fe8586bcb", + "collateralHash": "82342b5e250279cf4e97a08a8531176b330ec8a2d53348232377864f220213ef", + "collateralIndex": 1, + "collateralAddress": "XokMB8EEHYEtUjL8LhNV5VPiAp6nzrRooj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.91.76:9999", + "registeredHeight": 2002925, + "lastPaidHeight": 2127083, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb7ooa1RfLgPH2a9BjduP2ExLPRkR8irnQ", + "votingAddress": "Xb5hc7j8XFvBotw6L97kSq8F44y4VGryB7", + "payoutAddress": "XokMB8EEHYEtUjL8LhNV5VPiAp6nzrRooj", + "pubKeyOperator": "82078230599009a6297202a79d5dc2b3666f1530cd04396f230efd7bfc44feeccf763e25947c652394e43004a1335610" + } + }, + { + "type": "Regular", + "proTxHash": "8f76889580f945ef4bf7ae123233dbc494e73132c74ea1ceadb18ab30b4aa64d", + "collateralHash": "030a19b4a34c142cb637eb2fea1dc32214eaedd7f4ff691743ebe0aa4858881e", + "collateralIndex": 1, + "collateralAddress": "XjUzBq5zzYpy2PQL9KxPYzG3sB9HMKNxWZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.185.134:9999", + "registeredHeight": 2002979, + "lastPaidHeight": 2127232, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgVfFPJExVJwYoaeik1rwPzKXenukdEEA1", + "votingAddress": "Xhk3qGkU9maMzyfeJCLXxFcifUS4cz8J7f", + "payoutAddress": "XjUzBq5zzYpy2PQL9KxPYzG3sB9HMKNxWZ", + "pubKeyOperator": "850564936ada390210f1dc1eff78b827c82658dc7ac8b9ff0b9556f2f65570c80fbd031a95a6045a2d47464dc483a718" + } + }, + { + "type": "Regular", + "proTxHash": "f749484bea3c3770ef8bfc8c8c87be43b1f1ec57804db47adc02518f491b2458", + "collateralHash": "1a0bbb83beecb9112ad943de8aa284d05c5ac08ef53a04e0fad92801ca399187", + "collateralIndex": 1, + "collateralAddress": "Xs5TP1KUeSzSRgEW8mSFDj26ZhNPxezVHC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.40.8.160:9999", + "registeredHeight": 2004059, + "lastPaidHeight": 2128358, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnkHRs5jtZmp6ZBbLz2jZJecHgbxjShjse", + "votingAddress": "XeN9iAJJWSpbdT1jhbqBfFDJEGXu1yVCCo", + "payoutAddress": "Xs5TP1KUeSzSRgEW8mSFDj26ZhNPxezVHC", + "pubKeyOperator": "8ac9249bfa440a7142cd7a15536649ddc219555f6d9e65fdd3ca2adf9a00ca8014aaa6b54e4a0be45c8de6cf1f895ac0" + } + }, + { + "type": "Regular", + "proTxHash": "43c31bacad4f4323f5928b4b0e728989e50cdce70296684f9cf3d8a4601644fd", + "collateralHash": "65dec50f44dfcef99e2daf053efdb90244606e954391f5f5e84282dba854ed9c", + "collateralIndex": 1, + "collateralAddress": "Xq2wpYXLfZr2b4XigSKHbRpLbppE1g7ztg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.47.162.229:9999", + "registeredHeight": 2004059, + "lastPaidHeight": 2128359, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhakaKyMum2twKYALCH39avxPufNbnvGrk", + "votingAddress": "Xu7rguCA7asW4dkbFq8h1qpFwPt4jXPo7w", + "payoutAddress": "Xq2wpYXLfZr2b4XigSKHbRpLbppE1g7ztg", + "pubKeyOperator": "875c0828740f9c41cf2562b63e25b9f74a55d6b50892997f73118a4169494bada49a496d268c084361bdcab949d1df72" + } + }, + { + "type": "Regular", + "proTxHash": "ac8f3c1846006469c19477830bad44efec4e1dfe267e3e44cb358adefa829369", + "collateralHash": "07635fc57d1c52ee85691440958b20f886dbb3eaf20808434ffbf43f700be7dd", + "collateralIndex": 1, + "collateralAddress": "XcQsSzKeqyPKUpiH8vgYddpmqy33gNjLjW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.175.73:9999", + "registeredHeight": 2004636, + "lastPaidHeight": 2128849, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XofhGUkEMufcDAY5Pcy52QVEX4ybJE6x5e", + "votingAddress": "Xxjzb6Fy8PqwotCvpWwvo79iU1DnDe5RCb", + "payoutAddress": "Xm5ToHk7teDbgqedwSxq3BkNuh1noAtnic", + "pubKeyOperator": "8077d270aea7b5733f14122019614586f4c7a7fe1a5f8abc55fd6a15090c6a92fa164029bab956b101dfe679b951cd86" + } + }, + { + "type": "Regular", + "proTxHash": "b62d4c599a3e82ef9b3e8908fbc176a17dcfc50a8246d5d04ae0d8a36ae5daaf", + "collateralHash": "d4b4d4ab67969de20a1cbc9f156a5bf1f18887f914bbe9427eb1ca16ad0c57bc", + "collateralIndex": 1, + "collateralAddress": "XsrBmh7bvqsGQdsr7E1skJSFymdScYSdEh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.71.194:9999", + "registeredHeight": 2005046, + "lastPaidHeight": 2126006, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsSa9UKg8mLNJDme5f9e2Bpxs73KV7Urb7", + "votingAddress": "XdHuzLStB3s6j2MaWGWRsNyyDVRCZf94BY", + "payoutAddress": "XsrBmh7bvqsGQdsr7E1skJSFymdScYSdEh", + "pubKeyOperator": "b84793da216789ee856f7da79019c0816a959288689a67aa0153dbe2dda0c772f0c32abf432f9fc378ff632320df67fd" + } + }, + { + "type": "Regular", + "proTxHash": "85266320c071261f5354ee982196c8b523d19ac44d9f7d4e886db475e0b11f7b", + "collateralHash": "c32b2386645c119ce14c54420492c89fedde16c60b4a04a83a24bcded015fcaa", + "collateralIndex": 1, + "collateralAddress": "XipP3j18Uv1Xdi4TxnpdyLgjTPUE54fmz4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "80.209.231.129:9999", + "registeredHeight": 2005209, + "lastPaidHeight": 2126142, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnHznZRVsGHjd2MM6mCf3bJXoLYW3pk5vG", + "votingAddress": "XhKqGs5RMUeG97ToDoGXAQW2gJD69u7TbW", + "payoutAddress": "XipP3j18Uv1Xdi4TxnpdyLgjTPUE54fmz4", + "pubKeyOperator": "89fde1ef3f60acfda23ded2ec0a9bbe800b9a0b5606b8bd8f758bf42587597762bae88059107c4cb5885eb4d6a364ffb" + } + }, + { + "type": "Regular", + "proTxHash": "eea809839c8dbfaf047a1cb43faa37a416271447d3aff27ea7ad93a0cd91ba40", + "collateralHash": "5638c09cc774a9d8cbcced709ceff065344f9c2affbf184b1c81f28773d49501", + "collateralIndex": 1, + "collateralAddress": "XxGLiCUZ1p6txi2msB4sVhFomVQwCaGsTE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.71:9999", + "registeredHeight": 2005210, + "lastPaidHeight": 2126144, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkm1CKz4KakiTNHSaayiJhdaJMhxjXW7fY", + "votingAddress": "XvvAtiUUgHSBX8XQH1CnxTqFypMYtyHi7m", + "payoutAddress": "XxGLiCUZ1p6txi2msB4sVhFomVQwCaGsTE", + "pubKeyOperator": "96a508ab7b13d67fb77cf75851d0806e9b2388e299af5a01ef518ac601f1541e82d32b147d936f9e3a2fff768c5adbcd" + } + }, + { + "type": "Regular", + "proTxHash": "b223f91593eb4d660acea46a0e214a295af4fa4ba84f531c9be5af3fdc2f15b6", + "collateralHash": "1508b169152576aaac4dc050a7fd14c3878c3e99b70391a7f54e935d609b630b", + "collateralIndex": 1, + "collateralAddress": "XbStSMxix6DNNDWhea5FdGXfCyE3RRWGsL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.176.241:9999", + "registeredHeight": 2005550, + "lastPaidHeight": 2126417, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwrcGPrm2JsyADA5UFPBYLBQvVTutgBRYV", + "votingAddress": "Xns5iSZW77JYuPq6zp5nVbnVAMB6vs6VRX", + "payoutAddress": "XqKTLhwngdLniTvA7cvMsHevqFnzmMf35o", + "pubKeyOperator": "95c414c39b6c6f2bd891458bdecc21f527ff020d89f74a4aff94657cee8859fe5ae726c1eb8058a290e7c1d3fce5164f" + } + }, + { + "type": "Regular", + "proTxHash": "97d90767074d50ebb8f8f07bd2ac822d3f828971b8d0d57012e6b99ae7d19ce1", + "collateralHash": "a83ad36991c9cdf0d1be48f8bc116f6377d9113f3dd89f67af40961a914a1ea4", + "collateralIndex": 0, + "collateralAddress": "XvKunsvV1VYiAZ7NFNsda1kFzq9bnjVHpW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.79.228:9999", + "registeredHeight": 2005768, + "lastPaidHeight": 2126595, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnxSU5jVTNhuPhTRWsUorqKTz2ubpJnfAR", + "votingAddress": "XhtQTCZoxSN5kMWBAE13P3XMc3zqLGewor", + "payoutAddress": "XxWhHLfLsqgqjpWiDxWzZCa62c3mBYTDRR", + "pubKeyOperator": "b81309266783cec76fe2a148b1fb284acc3b10e703f5fae63b25c93906b37fa8b94a864d95eff9796dc190301c738944" + } + }, + { + "type": "Evo", + "proTxHash": "64fe8c60e2e4e47f6ab6f34368f2a297174e79074de25c7a3222b05d7502a36d", + "collateralHash": "1ddbb7db97eec40f542cbd3f65cabc36c408d79618394b0bc2328182ba7d7d35", + "collateralIndex": 0, + "collateralAddress": "Xnk94GvSRw6vJ6RnJuz4a6W3P564XeavBu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.102.10:9999", + "registeredHeight": 2006412, + "lastPaidHeight": 2127287, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhN222HLWS2otQXJVjMCap7gbKxHukhjPx", + "votingAddress": "XceSri8ZRi4vAi6mWnfkavHPit7ebQ7Br2", + "platformNodeID": "b4d5b3b4974b81d363c124c25eb49710fa95e9e2", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XwAmht8oZ7tVi33em8H4SgorHQ5q4W87pL", + "pubKeyOperator": "a5d00b75de5c0dd87d1222df4e5c0f2779146652179e7ad7ce94f348d5d3f4d29e4728f831b74b7174476fb0cecb075b" + } + }, + { + "type": "Evo", + "proTxHash": "edd39830c5f42cae9c259f4bd4f26646c3cca5b08f292e51dcf8bf3c24ea60f7", + "collateralHash": "9ae6a4eb9b1ae7a3f063e7057958c508ab6c887860dee0461ee20a89027becfd", + "collateralIndex": 1, + "collateralAddress": "XeyyCQPRD9vWi7qeqd2itJrKrX1ssq8RdS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "91.107.204.136:9999", + "registeredHeight": 2006841, + "lastPaidHeight": 2128009, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2115571, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xuky2ZzdnnkKfaSZoUufT6ev2n6LiebMYR", + "votingAddress": "XdDL8gRYfb91CY5kbjiBXunB64A4ghKrgg", + "platformNodeID": "f5201d1665e0dbb9118baccc7bcc309a37d553b6", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xo3uK1W94kGjkqRdfzk5m78FqvqXDbBTba", + "pubKeyOperator": "992cf6d56eaf74e403fc8b7bc50ad93f55b5d8224aa1b28b956fc41d306915f7237936eec7bad450412b20e0912aba9d" + } + }, + { + "type": "Regular", + "proTxHash": "815fd463058436811fec39cbfba0bea908cea8ccad62ec9e235d92d7f1e231d9", + "collateralHash": "3932d3fe8eeda94f148973e140e64fbd49059e0e611409a06b9a39ba996e5f52", + "collateralIndex": 1, + "collateralAddress": "XtBnq185XkikkkYMeyp5AD8ZAgRdPPvLsM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.80.9:9999", + "registeredHeight": 2007314, + "lastPaidHeight": 2128232, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyYnanHsBVKzjSwEPEp9jd8JTEgns2PAdV", + "votingAddress": "XncsnDNPasMCeokioMZJYBmAa91cDZj7wQ", + "payoutAddress": "Xdm14Mc9ti3qvSWQ1Fqg9F5NKSqBSjcX6S", + "pubKeyOperator": "a366beaba6a07a7210c21d441acdae780ece6b6bcbbcdbc0ee58e9b565fbb06baf45af1bf09861ab05e05565509e8e28" + } + }, + { + "type": "Regular", + "proTxHash": "64dad6caaa5f70871e13d0142c5ffc25f483e309860c231b098f93cc2ad742df", + "collateralHash": "16bb1c9d89cc057a91ba289d1d2083aca67c021e16e4982c90717f0e1300cf85", + "collateralIndex": 1, + "collateralAddress": "XuNGBybvGJkUKTTb2NDJNnz781wF3XYRVN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.223.218.14:9999", + "registeredHeight": 2007446, + "lastPaidHeight": 2128370, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvvzEStGWMk3mPxdngDAKS3AWvt6qVwsUK", + "votingAddress": "Xn8BeDwQfYi3rp1xbwosgEABKs88Qu7X5R", + "payoutAddress": "XqyvYxjBCDPPLDc9DFdMJ5GziKEs2speGS", + "pubKeyOperator": "b3b39cb42762388353c1f5090e9a882e1329669c58882f9bffe868a065a70db1d051a78468361785ba8d8f4ab3392de0" + } + }, + { + "type": "Evo", + "proTxHash": "c3a213b255a6321c441fa6edd0c6c47c774733c946a6fa619910b825226ecbcc", + "collateralHash": "5d26f4b9b7837a07e15f212f4633dd2a23a8a78312f7eadd09b1e55337587aa8", + "collateralIndex": 1, + "collateralAddress": "XwvxN2u6y7VWxzXgiNmcRifie7fD8zoqZ8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.183.248:9999", + "registeredHeight": 2008639, + "lastPaidHeight": 2126174, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg3Zy7boFnnEH6nRRSPxCep8xA9FZR1Eyo", + "votingAddress": "Xur8AGrsrjTxJgGZPn324vGqVUzYeifonw", + "platformNodeID": "383b1fa4465544fca2c100bd2353d6f746a535eb", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8fb814cbd8ec2c48200232cc5b2eda9662a07cae533d96f6fd3fdf414ba298a4cfdc9e65766e9cc8ac63b19a5845ac40" + } + }, + { + "type": "Regular", + "proTxHash": "c4a111f44e4aea7e735f810b42ed83bfdbf5752a04827b7b5f931a1555fd1846", + "collateralHash": "5810fcf581639673ea6118754c2374f7000ce879cdd909743eda61de7c5bfedd", + "collateralIndex": 1, + "collateralAddress": "Xs9SBmYdfAKH93cysXK2yyyz7xc9vUjGD9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "142.93.219.198:9999", + "registeredHeight": 2008985, + "lastPaidHeight": 2126472, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWgAtrkF3y4CbWVjccZo2CypKW7vdKtTC", + "votingAddress": "XgHmV79SnSX3y2z7z2ZcaXFi6Y5GRgy7dK", + "payoutAddress": "Xs9SBmYdfAKH93cysXK2yyyz7xc9vUjGD9", + "pubKeyOperator": "83fa81bfc72fce5ef57e948954a32c3dd9d6229a7c66da51524cc9af5eceab6765481450db6030843abdd4c5d4c3936e" + } + }, + { + "type": "Regular", + "proTxHash": "6b5eb7df2faccf1c4de25eca5dadcef8f4fd892daa98a46aefd82f8d0367ae0e", + "collateralHash": "8d3ad9a94615b5cd7bc63d52ff3c8f9bdaff694b8d76386428750028474595eb", + "collateralIndex": 1, + "collateralAddress": "Xjjj9q4w1vBD8W2saNBfWL7EJ7FcLtWGwJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.54.247:9999", + "registeredHeight": 2009196, + "lastPaidHeight": 2126651, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwwodnbsni4RipeHrfKyVPzBGnms9nigPe", + "votingAddress": "Xvfho86LGaRvoHTCVAkKEejDRQPiZcxw1Z", + "payoutAddress": "XdUmHVDmjVCnHpZ13hwUrNSq12AcphAzqy", + "pubKeyOperator": "b0152d78acf56a8497eb1c640656b789565c3a8b8824d4494bfbf11830e02ff9a6f2cb175b0ccad3352283288a9dfed8" + } + }, + { + "type": "Regular", + "proTxHash": "2c2d17806d770a0455dc4d436a38b84a2a146a97a75e2dd6d61cbe49ce2b531a", + "collateralHash": "7a517a8d0b81661cb2e9a336e97db376618b4fa319af2fa6b98914766b8c7c2b", + "collateralIndex": 1, + "collateralAddress": "XdHtt8ssqGXNCpZuBk6Z3SLBLn1VgF7WrT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.138.106:9999", + "registeredHeight": 2009280, + "lastPaidHeight": 2127665, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124494, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpQkvaMrrwp3kzMSR5LDi42MyjR5KQyqUC", + "votingAddress": "XtK3F6iYTkiAxeULXXaqpYAU1HYoY7KAJt", + "payoutAddress": "Xoc45HdfBEatrEoEjmLe2c39Jp1GhduEHg", + "pubKeyOperator": "94e1b61a56c929fcd7de6068741b48b5b9a20ff9bc7aa7cf5eeb643b9928a64fe4bada1993de14d28ed803ab4ca4e990" + } + }, + { + "type": "Regular", + "proTxHash": "dcaea47d7b1184ff58c8d60713d9f478eb0ff25de72213ba93a3957bc368a5c9", + "collateralHash": "721723297ed4e0d5833e3fadffa2b04248c32d2b6fc55541038c3c7022bdfc43", + "collateralIndex": 0, + "collateralAddress": "XyVf9Pjf6KmnJ6MRmnj2Datrx2PQSzJevh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.185.173.81:9999", + "registeredHeight": 2009815, + "lastPaidHeight": 2114950, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XyuU4yZ4kviKjpvR1qXHghFd6sVffMF2sq", + "votingAddress": "Xix4ZFoRfum6WKHCYtULSQAp3izauvDZLK", + "payoutAddress": "XyVf9Pjf6KmnJ6MRmnj2Datrx2PQSzJevh", + "pubKeyOperator": "8206e9a6763ea4de6dbf7982efc87e7198bfd220f9e4d802f481bc9e221bea47b4582c583aa28549428b77f70afd161f" + } + }, + { + "type": "Regular", + "proTxHash": "9df7b0df297a7a5e8c3a539d0d565862ae284876aee50e8cd119288991e755d2", + "collateralHash": "9df7b0df297a7a5e8c3a539d0d565862ae284876aee50e8cd119288991e755d2", + "collateralIndex": 1, + "collateralAddress": "7g2J2e22CVSVnR2o9pQXt36GhyjhUkDfNx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.95.22:9999", + "registeredHeight": 2010708, + "lastPaidHeight": 2128248, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XavQeRQQeD8KtHhmyqFENHCNdoYqEQSaZK", + "votingAddress": "XqNZURVRiA9eZBRLLHMBCLJiruSbPqPQ9h", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "89e7855b33c2aa8252c5093c68d6418ff0d0053d76c102d2f38a8f4f0d2da87ddb23d886e1fc87c737ae3122a1042a45" + } + }, + { + "type": "Regular", + "proTxHash": "974d547b0d3971eeb0c56780a4144443b75f684a488dcf222c97674ff3f4d338", + "collateralHash": "c67c422fc980af84217dc0a2b33d836410a9c31f2ae3307a7b8628ec663761d6", + "collateralIndex": 1, + "collateralAddress": "Xpx3b7bmLqXG3QdJp24bUYhRy4rpZYcAdu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.87.149.61:9999", + "registeredHeight": 2010997, + "lastPaidHeight": 2113461, + "consecutivePayments": 0, + "PoSePenalty": 543, + "PoSeRevivedHeight": 2126909, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtDVUfgb6Jp8CcPWYZ9vBQwaZ978BUTN2k", + "votingAddress": "Xv7SyZmyWWuwtDAbU4KUBxHeiXspz6qAv3", + "payoutAddress": "Xsg3CBWZYxh5RaSGZiScmNGsuPVpyaPoz9", + "pubKeyOperator": "a1e2eb1d96ee3967ea6396a7f7794b3c14bd4a185e95601bc6ad1460c6e72d13b6ebedad5ae0c786959e983d3c67412f" + } + }, + { + "type": "Regular", + "proTxHash": "c9d22f2f221c7cd1b048c5e13356dd95fdc530dcf2e3bbe0e232378fbb73829c", + "collateralHash": "91a32a8e6035892890501d666e7e9baec7f3e98d723609ac1bc605779856745d", + "collateralIndex": 1, + "collateralAddress": "Xh4m766nZAa92YF6QaZKDroDGv8TzrZzfY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "161.35.69.134:9999", + "registeredHeight": 2011191, + "lastPaidHeight": 2128694, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyDKJZYDR7BnuyhMUAezR5S6za4Ntqmfpy", + "votingAddress": "Xy1TDmU7bjfKt2KpgXmRkCy5d1M33ZZtaY", + "payoutAddress": "XvXv575PPDrxVb89MeFeiem148QmGYLkpN", + "pubKeyOperator": "ab458968b9b74e00915a28655ae9d3bed6c2099c4c9baf3129a68a148c6f64e7a9535b495be47c439c5f58675d625bdb" + } + }, + { + "type": "Evo", + "proTxHash": "fcfeda90d7d1937652bf8123e7d130141048fbfe52cf2fb587b9aad4b6ef810f", + "collateralHash": "008b13a1a1142e4b3c95af9e79a61703343759376ce353851f8e27435377cdb0", + "collateralIndex": 1, + "collateralAddress": "Xy67p8uHkpYYhPDtT5KBT2SJj5Ts3hocoL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "142.132.165.149:9999", + "registeredHeight": 2011249, + "lastPaidHeight": 2126194, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2103351, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbgCc5BcXAtMQfcG7ZxtqUr3VaBAHKY8qU", + "votingAddress": "XwTg1QgmpTNqfATBSPRCjF7UGZ7CZKFo6f", + "platformNodeID": "f232a6240d11e589ee4c86c88bfe66d53cb2bcf6", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XrsAAEWxY2eCPzDk4xYii73MDkMNsALa9p", + "pubKeyOperator": "a8026ea39ae2562bcf78c57087bfd7f3fda0a64441ca5bf0e63f4e28612ef8bd9c9c4beefc6a8dca125f81abcc230685" + } + }, + { + "type": "Evo", + "proTxHash": "66f0010300337221360cd477c898275ea48ca411dd7e04f7a2838e1b39cf82b9", + "collateralHash": "cac29369f99ae8b9e2746645d3d286c55d75fafc2135498b1981977a0aecefcf", + "collateralIndex": 1, + "collateralAddress": "XksVpmdfmcAQM6pLJy2kztBkNScJhnFgd8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "82.211.25.69:9999", + "registeredHeight": 2012337, + "lastPaidHeight": 2126457, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtSKuDu6529fVV3t7icVRDcTCiPVkyzvvk", + "votingAddress": "XtoHfHi6dzJhEJEPBnnCeADv1r8RNL1USX", + "platformNodeID": "b77f4e54a5639302286497d3c36874c96736a90f", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xrv5VrHEHAav66T1gi2s2yMAQbCvTeXPfR", + "pubKeyOperator": "a903d38cf86e8bca56297613edf4075c2f89a2dd5470e6d21e7fc88ae0800afd551affb8ca18a29ed2d0c1714bc30ef7" + } + }, + { + "type": "Evo", + "proTxHash": "16cd333a82c35b71829ad096866f7a0925f9b5350624c1649389ed5f73de25ad", + "collateralHash": "75aa332d4023b710458b114a5fa7b48a092a3f61a76ccb5e743234d9b3895c45", + "collateralIndex": 1, + "collateralAddress": "Xq1EsaUL7dZFH43v9f8DDAkdQpzGJhE4yZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.255.183.247:9999", + "registeredHeight": 2016231, + "lastPaidHeight": 2126875, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyS1avcvR8Yv8E9fiGGrZs4pEWFJnqrMwT", + "votingAddress": "XucTfeBUR1nnUDXUZvgs1CRZrZfJnBncC7", + "platformNodeID": "e6e3c3b3b6e652076e7863934ae940b3a801b6cd", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "abd4b0b28c5c43a7cc79b10e16e6898a3cc1e08b9b7641973a01cbbed00a0a86d2067dd37ce21c636e3739d248c0b259" + } + }, + { + "type": "Regular", + "proTxHash": "5231a43e0b3c9da2d9bd9edbf411947eb84d19e3dff3ab4e9cef602bf92b14d5", + "collateralHash": "5231a43e0b3c9da2d9bd9edbf411947eb84d19e3dff3ab4e9cef602bf92b14d5", + "collateralIndex": 1, + "collateralAddress": "XqJKVrcqS7TTtHzgvYhunj7cqQCVkTLjUv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "174.34.233.208:9999", + "registeredHeight": 2016354, + "lastPaidHeight": 2127201, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121069, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfxWjUVfzE6z2MChJzrjsBsgMXR74CJ1qq", + "votingAddress": "XpsE5Zcsv4GG5SeDNbKWbFS5kaLB99yQus", + "payoutAddress": "Xt2ijVCt1ToMXvsQGYtqSvnEQgfyJQkv44", + "pubKeyOperator": "9988394bac60281592bb8a410edb9bb6f4359c6bad4dffbdf5061164175209a958cfaebfce0f40232285950dfe164c08" + } + }, + { + "type": "Regular", + "proTxHash": "2fa93e519b7a70d618d4499d61ca94dd9dabd8e59ac152a3f8664ce6676c8b21", + "collateralHash": "1e0dc50d708487fc3e5fe1c11d8887f23cea73205b6470b543edff2083d17c32", + "collateralIndex": 1, + "collateralAddress": "XefYvArpzigrdbejckZYqsqrTy6U1u9mke", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.228.166:9999", + "registeredHeight": 2017122, + "lastPaidHeight": 2115467, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "XfHxBhNN7hmTvnNSbwXojjTenixuABt78v", + "votingAddress": "Xbdwypnwx43FYHP4BMn4AV2ThRywVgQiAF", + "payoutAddress": "XefYvArpzigrdbejckZYqsqrTy6U1u9mke", + "pubKeyOperator": "91ad0b31729931c9882b24ad38cd8e596e0f64ec4b87954c550d4ff02f631be619b55588f355c325ec1022a48e69c18b" + } + }, + { + "type": "Evo", + "proTxHash": "aea18dc0d503713e87eb2e6a24636b66dde356dc597210bed08975be14e37db3", + "collateralHash": "1bf6d64931a920dcc4bae6468e886bcae0fcb64717efb4a9ec20dfb23395f11b", + "collateralIndex": 1, + "collateralAddress": "XtdGpqRiKHVFBB4iNajAHKc4pyCvGFZCqN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.215.167.70:9999", + "registeredHeight": 2017852, + "lastPaidHeight": 2127950, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121688, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgbetHHiZNiFmcHY7gEiYze3doLwcrLABj", + "votingAddress": "XvBvXh4wNWcw25jd6ZigXF2FkL1YP7ic5F", + "platformNodeID": "689aa19ceccdd7cbb67954ad524680f3019301ba", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xr9gpNGZjJYi6VKbVFXZkPeEb8yK5UD3PU", + "pubKeyOperator": "a9f90e18d674fdd89a6a423bdc83d7a7f52b3adb8fa9c41ec4f9cf9349d42a7778f07a036dad56ecb9d5a7c8a145491b" + } + }, + { + "type": "Evo", + "proTxHash": "8da027b6f709c174da865c86c77877cebf75432b419b99575684cfce0e842220", + "collateralHash": "3c34b7e254edef1ee3a9dab52525921b3ff84223ee15ec8bf3a792944b6be8cf", + "collateralIndex": 1, + "collateralAddress": "XsyHBhtd4eZQ6JyeYcPtfr7durqNqay51X", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.217.127.139:9999", + "registeredHeight": 2018240, + "lastPaidHeight": 2128843, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122517, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjtJUHQKSsMNvya11DSMkRys1wtqw96fTQ", + "votingAddress": "XgnoYH5ArpsXSAR2S5WUWndhPbD8NnNhXW", + "platformNodeID": "451c824fb0d37abe2381d3a2753ceb8659f7e965", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xv7rTUx74aT6Rhvzc8YyzWCgyz7iQmxsBJ", + "pubKeyOperator": "82288d99909eb37b7c9a566c001d2ff50511a889dd647a1b7ea881f77b8b5a7d99a2fa1718759465b037d2f781a5be3a" + } + }, + { + "type": "Evo", + "proTxHash": "7457a10b5a1ca0088d2c5d381d1e41dd736b05b6f44588e8f94a1592109ed12d", + "collateralHash": "dcc6fadabda77d81e4e27a793d035a98e5f1c678b6917b4af94f26d51da51ee4", + "collateralIndex": 1, + "collateralAddress": "XrimqoeNawYnqcA31BdSGfJfV7zoAqKKTL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "161.97.160.87:9999", + "registeredHeight": 2019043, + "lastPaidHeight": 2128014, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121744, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkAUDAaqMpjRAoLnRn9FXN6WybbcwSxGtK", + "votingAddress": "XiGqYgBMf9saMv3ADFaLHDtQetBXNG5EXv", + "platformNodeID": "d5fded25644535a0e80930a4b7a89d3706b0b8a4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XhcswEdvQCavuG62nFPR7TBEighoJRVt2k", + "pubKeyOperator": "8a763cb66be8967b124cd055e3e19a2594315f81e6d978a4af3f63618f6f085ca2769175ec3054967656f1fac10762d5" + } + }, + { + "type": "Evo", + "proTxHash": "dab0d9af2d70e59ffdf3bfe375c6e9f3d185d2527c0842c7bf2815798a166526", + "collateralHash": "768c817bf9f2ab1db6a5f64022c76f7763cac752eff6900210bc0ce2d1ff560a", + "collateralIndex": 1, + "collateralAddress": "XazWFy3Eitz2EHcpDAZvoy5j8b4AbRMJoy", + "operatorReward": 0, + "state": { + "version": 2, + "service": "161.97.160.92:9999", + "registeredHeight": 2019445, + "lastPaidHeight": 2128019, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121748, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp9YacjeCBoiJ4PYS6WJ59RA3ugosySvXL", + "votingAddress": "XvPznsgmdCRDsiBTqcDZ2jcHm95Z8TCR2S", + "platformNodeID": "b9bbd514bcb04bd7b8aa1ab2cb48c1526ff6e83d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xvhj93mb5SazGetYGLL5yCcvafoYCqKA1n", + "pubKeyOperator": "8455cd00d19792377ac915614b06cc46f161662aaab1d5f1e73f3c3cac48a1f2991d75ba14decb308294ceaf7185ef21" + } + }, + { + "type": "Evo", + "proTxHash": "086ac1966c3c1bcc66398fca29d85386bb8a1cf9e269d05e4f0a71fe876f690d", + "collateralHash": "5b9ebca0fd974bbac825d1a0d03cb099a2a5e816fe3ef18bd161223e3a6562e8", + "collateralIndex": 1, + "collateralAddress": "Xhf9GEGhnVqAWRasBaFGEZKDF7iLeE4c1Y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "158.220.80.235:9999", + "registeredHeight": 2020110, + "lastPaidHeight": 2128030, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121753, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpFFAJkj6uJm4bRLiwWdj5RiK27Cg4SBYe", + "votingAddress": "XctZnrNXgw55hkfP57Nt47k9gzPbsvMJjm", + "platformNodeID": "3d3c81106601401c3a4a23bba7be6f4822a649a9", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XrWj2uFA7EvAdV7kLVgjTy1131pjyQHZBe", + "pubKeyOperator": "99fc191131ac69e0f25e0f73ce5160f99ac885bcc9d4844fca89f9c7c098265f39625a88218f64d9fdb2dc03daa157ac" + } + }, + { + "type": "Evo", + "proTxHash": "5d464a29e7dba9da33898515d8b45db2c3702f4c909e19de43f7ae77c190c8f5", + "collateralHash": "fb63d315b88f700d29154892b83f9ea5073222baf87bbf1d7f222ef93b25958b", + "collateralIndex": 1, + "collateralAddress": "Xp4kBq4Jvtt1ZvqyKrnU3NNYzmC6MQybTP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "158.220.80.239:9999", + "registeredHeight": 2020677, + "lastPaidHeight": 2128338, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122042, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyyPriDhPnigysh7VYk5RrWwPs4XKKENaZ", + "votingAddress": "XgdLf3rPYNMB6CUVKzDFtGr2wxdgeYoAPM", + "platformNodeID": "90d6833f86c9c822615e4988ece3ea288200d119", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkzV6rJwCXxbEcabRpk3NRHGv4FK5h52u2", + "pubKeyOperator": "93ebffb7d00f195aa53d3e0458921672727c775fc8f972302b098b5ae5cd1565d1769d194d7aba1e8215fc3c0ecaf8ba" + } + }, + { + "type": "Evo", + "proTxHash": "620ea4839737e145529f392cf1844398188c1e2ce02875038c22d2253415906d", + "collateralHash": "d371072ea84356ca7184c8b71e560016932c3ed1160a5198e115e4634b272a17", + "collateralIndex": 1, + "collateralAddress": "XpnoiANtaYjdQ3w4AoqfNBr8iv4cgww8kR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "158.220.87.55:9999", + "registeredHeight": 2021228, + "lastPaidHeight": 2128328, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122037, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xys9ATQRMMAxD4rnr94jC649wMqQ2Ya7w1", + "votingAddress": "XxMvQvjkWNHdiSgvyT5iLv8hpdm5i6zGHC", + "platformNodeID": "938617eee09616c71a01d53b4a9cd16facc55185", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XpQGS62o3hvoadgUL14HAJKkZzyHeqUZQD", + "pubKeyOperator": "a8d0f0b21fe8410ccf897dffde8b82f71a43bd04e5a25cf625ea8e1197fcc0853bcce33c2a9ed3724dab993238662eb8" + } + }, + { + "type": "Evo", + "proTxHash": "43c94cb00d47132db6595cc88f08a4ac2af5e3f8faf9adc00a791f1e8cd70515", + "collateralHash": "64f86a4714c14a3e21b0122a07014f50a5c32864604d05d5333f6c8e89bef2a6", + "collateralIndex": 1, + "collateralAddress": "Xc1P3zNo5qJ9vmF7kqAqkfHem8iqiZfsoD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.163.143.174:9999", + "registeredHeight": 2021465, + "lastPaidHeight": 2128602, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122295, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg6Y1qVYsijFDSD9xFYGGp6QSiCu5vcUXT", + "votingAddress": "XnynSSTXAynWFK2Ag9xmDcVkxizaNvostf", + "platformNodeID": "52e0f3de9e5859542c3f1ae2348c6a5197968a1e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XtH7kvbDQjXSHDy8viTJf3xozsegJGEMdh", + "pubKeyOperator": "8269bdb3e3d6e0f18fa00ee0e99a3658fb1cff52f8b7c1988805610add9d1b1c950489fb4263097c69fa7569fd3e281f" + } + }, + { + "type": "Regular", + "proTxHash": "1d77bdc8ef92af126a63512ee9a013d49d9d052353054fbfd4fe2fb1fbcc494b", + "collateralHash": "61033e81cc9a5ead47d83fd08c81dc07973bca79538b54af8011c7206489e062", + "collateralIndex": 1, + "collateralAddress": "Xw9Jdiy4W9BszMVQJ3MTpinhAxKeq8jydJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.17.153:9999", + "registeredHeight": 2023516, + "lastPaidHeight": 2127466, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLjLPHF1EW6T8RXytWB3QX6j3iBDMFDHF", + "votingAddress": "XiRKD1o6jNh284zWioyUCcq5g5iats5EJ9", + "payoutAddress": "XbTqBhLU44krjdArXuFmBqURvbVjfoRCwu", + "pubKeyOperator": "b3b3c7b1852a89983a40344786d18ce99a26d2a349220f119d1bf710ec066594cab37a05cc8f848305d29e246d7a700e" + } + }, + { + "type": "Regular", + "proTxHash": "e3b8fe8fbc401ef935d8cd190988f60669dd4778c1dedfc47f6047616f5e3ff1", + "collateralHash": "a06ced6512e23ec21628612cc2dbae69713424b3b6a7116a98d11e873632cd38", + "collateralIndex": 0, + "collateralAddress": "XjmraYMR6xTdNcypisg66M8K5Fm5U795zh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.175.67:9999", + "registeredHeight": 2024581, + "lastPaidHeight": 2128543, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdzsRjh3coHoCKeV5iaigYNGsrxL9yYCup", + "votingAddress": "Xw1ypcwBVMHhH3L1SZ8GR5dEzgj7SzhzNz", + "payoutAddress": "XmChd1358uqaETfEYX893Ye6xxomsbbqxv", + "pubKeyOperator": "b53d290c62ac90d6890240b886689a84ebd1df84cf9170c6785a3a68eca95926f6435542f2df27e1eabe17534096cde0" + } + }, + { + "type": "Regular", + "proTxHash": "dfc96c99ab162f37a005c0d2c6010a258cf012ed38f0d11b142c3d51cb460e19", + "collateralHash": "80bb1413a612e1b16cd32fc921c9739a5d09fcf919d57f74f92bfa0b257124ce", + "collateralIndex": 1, + "collateralAddress": "XtAbPRfHoWb7AS5BfTyeMGiYxcjXyX75ZK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.229:9999", + "registeredHeight": 2024932, + "lastPaidHeight": 2128825, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbouqXYq7WZe6YNCtKEa7gR3EYsR8iGecx", + "votingAddress": "XbmQH5EfJLU6sv3S2PmFjJEYY5EKnhfhEe", + "payoutAddress": "XtAbPRfHoWb7AS5BfTyeMGiYxcjXyX75ZK", + "pubKeyOperator": "ae62e082e0ea87aa42ddc715e329f1161fc3d906b243604a78f7ce05a6ffc540c99f622e8dc8aebd6b8a96fe53f6adb2" + } + }, + { + "type": "Regular", + "proTxHash": "b836d451a50d7d33aa2875a8a0fd779a70b2229b081e356aed56be3a786f7551", + "collateralHash": "576f26a643ff045fe6ac3c43569721d81619405a6ebb5dfa7505ed14950ed07f", + "collateralIndex": 1, + "collateralAddress": "Xvu6sMcEn4GP3pLiu5hJKY1rUfwAi7BFBh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.205.7:9999", + "registeredHeight": 2024942, + "lastPaidHeight": 2128826, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiyqcsfNiRoHWyUuvt7dvGUDsRcJwpjq68", + "votingAddress": "XhS2A1SVzquVPu5qcf1fdS1fjtgag9CWye", + "payoutAddress": "Xvu6sMcEn4GP3pLiu5hJKY1rUfwAi7BFBh", + "pubKeyOperator": "98a83c096562d7ca8a52b3a6ee4b32a8149bf299ff3efefb5f59aa37c176c975ead244db86baeeb464e5ef5ff478228e" + } + }, + { + "type": "Regular", + "proTxHash": "9dd1c4bb48fc69cebd2ee4486dc3ab176ecc922a555c1b33791cdcdbd927db4b", + "collateralHash": "9dd1c4bb48fc69cebd2ee4486dc3ab176ecc922a555c1b33791cdcdbd927db4b", + "collateralIndex": 1, + "collateralAddress": "7p3wDc681n1XPWnaooPfDX4dk2dJSXDTz6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.47.162.8:9999", + "registeredHeight": 2025072, + "lastPaidHeight": 2125751, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjRC2pDFSy3K4ZHKcU9udPzn2RHfi9gpJi", + "votingAddress": "XbuST1MSoGoYXyu8Z5NzoEFktRyZRjmkwF", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8400fc5b966d8a7f7d0ff770f0b8e72ca4e6a85af879c24eb3a726a933e48a8b57c64b7847a164805ccd84ebc28305d6" + } + }, + { + "type": "Regular", + "proTxHash": "d9cfe687fea00dfe333761b03c033851bcc2ecc0c36e490f887d93359e21e3c9", + "collateralHash": "167c80d6d75c2e5df15b79b37cdd580acc4093fe446ffb4f10000743dfd924a2", + "collateralIndex": 1, + "collateralAddress": "XqJtYPeREC8p1tUa2AvwG6WThEz8QW3FhP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.223.137.152:9999", + "registeredHeight": 2025101, + "lastPaidHeight": 2125796, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu3n4c3X7rty8TMfHyqvoCuMAZWDdc7vbR", + "votingAddress": "XyREXqxc8PrScvjiDDbWvKZTKxsbeCxvRb", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "9315e5dabf12e9095a30e9c3f2dc0c03b9561a1cd17f8c38574176a30ea9dd57aa966134a8398876f83f8623204221f1" + } + }, + { + "type": "Regular", + "proTxHash": "cf2f6aa65f43859ed6d2adecd36438ff2432c925b58d9dbd65e8d5c84218d8d2", + "collateralHash": "c65f740216a3639b0905e6f5ffffcbb97400912a695c6e580861528277450d5f", + "collateralIndex": 1, + "collateralAddress": "XeK8ATXozoLPdXgRRNyjhKNE8WhJUqnhWa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.52.139:9999", + "registeredHeight": 2026777, + "lastPaidHeight": 2127374, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoNLJCUeaJMV9VzkheYkB7evd5KQJSJDWu", + "votingAddress": "XeCyTLV1oWtK7nj5iiuZGv6x1icooBgDer", + "payoutAddress": "XeK8ATXozoLPdXgRRNyjhKNE8WhJUqnhWa", + "pubKeyOperator": "aa6df06e589cc27ffb6315f372881987f1376e2d47e29bd43f8ee81f1b604837cb0747dbcf9e4c305afdf040bae0d5e5" + } + }, + { + "type": "Regular", + "proTxHash": "43476324e6fb965a9f497fe2c746b92294286065b9cf8dcb8d138241ba044162", + "collateralHash": "7754aab1698677e25bca47dd8141fa4314be424a3af1cbb7673276c503fcb33e", + "collateralIndex": 1, + "collateralAddress": "XubbZbMJNT6gS41scm4UDuYPbV64z2qW4o", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.31.63:9999", + "registeredHeight": 2027206, + "lastPaidHeight": 2126311, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117096, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnwTgiAFnxxZeBwodCdsxPMrie7SuzTd6w", + "votingAddress": "XnwTgiAFnxxZeBwodCdsxPMrie7SuzTd6w", + "payoutAddress": "XkMfvBvq8P3ik1c3CfC7nxuzxC3C5At99c", + "pubKeyOperator": "aebcc24bc6850e7fd6180a55301386a94898e50190f3741bd1adf00ca732287b22b6194eb6d9ef92f769ddc8dc682898" + } + }, + { + "type": "Regular", + "proTxHash": "cfbfcccfc99cea358ca1055d9aee6e927771092bf0325f3b3210b3e1bad2a713", + "collateralHash": "cfbfcccfc99cea358ca1055d9aee6e927771092bf0325f3b3210b3e1bad2a713", + "collateralIndex": 1, + "collateralAddress": "7ffVgerZKhHj5cTf1bwx8Uf75P49tXscRQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "195.181.243.13:9999", + "registeredHeight": 2027438, + "lastPaidHeight": 2128075, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmCvaup9AEc8frtrECQvPxjTfTNwertrka", + "votingAddress": "XsbxkRPVKtNZzQ24VFaSxwjUmQ2XTJFLmm", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a8a795e9e48800a2d4b2612b515d9b0fbe1fd2fc1b093ac421b520876b3585aea10aafbf3e8f4d0595effc702bfaf974" + } + }, + { + "type": "Regular", + "proTxHash": "936dcee01b167ec4c1d149d9482076db14aae496fdc6d4d529fa055136a3c3c5", + "collateralHash": "a490fd7d9c05103f237d916c951bc8b6118104fc62f45467d8606473f02b6853", + "collateralIndex": 0, + "collateralAddress": "Xu74pzvCtqrsNy9gJGH31CcVb6vMzaAkVe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.29.29:9999", + "registeredHeight": 2027571, + "lastPaidHeight": 2126548, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": 2117368, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpbDYkes4x6UVHmcw2DBNPCkuKPeLKA5pG", + "votingAddress": "XpbDYkes4x6UVHmcw2DBNPCkuKPeLKA5pG", + "payoutAddress": "XbQFR22n59UXrzXKXqtfSLEY2wQvzdLRNL", + "pubKeyOperator": "b42eb95bfb4e272212336e608c7f2aeff0f900b22f1e3c996422f4e574391ff49563ca9c156c417f14329f61f7ed3163" + } + }, + { + "type": "Regular", + "proTxHash": "eaed790d0b07d31430888b04f47294ea5223aacb3068423d7b55120bf9072401", + "collateralHash": "5ed567c07abe8634c302cc6d03bc91ab3a722f5ee2335d8a971f37d2f83ecf98", + "collateralIndex": 0, + "collateralAddress": "XmiLcZ79dmdu4swVJr62ZqEZswcEBFkZWc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.9:9999", + "registeredHeight": 2028162, + "lastPaidHeight": 2128706, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XonnYW38Zr6eYFx5yavAhYz3fsZsMAecC6", + "votingAddress": "XpuTQGkaDiFY7Cq1pRpWeNjVgr3uzdnVuV", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "b394a4b83297a3afd859dc108ad73608dc474111cb40249b2600f8aae87422d6ccfd8b478ce2a0e8f739377ad0c3ac1d" + } + }, + { + "type": "Regular", + "proTxHash": "e73506a0a022ae420fe9a087d41668e50752d5c2f7ebc04ca5f10a72649ee4c0", + "collateralHash": "a0a40cc3090092f384fc3d8ac58e730a23e02dce2ac6d09af13a8539aa6c07e4", + "collateralIndex": 0, + "collateralAddress": "XuQ7G6vtHC3WB412x67ktowULKtjDPY3a9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.205.1:9999", + "registeredHeight": 2028162, + "lastPaidHeight": 2128707, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdedz3knh1BTSGhQipX1fcpAoVrpRqc9eE", + "votingAddress": "Xorn3axG5KirbTyZUsW4iNEeEPkWn4EShJ", + "payoutAddress": "XbogyBhAqdEchwEq9jLAp6iLubhTqyoxw5", + "pubKeyOperator": "947aa8dc28334e3f9be231721d42dcfcd2fd5d1ec1c98601bbf48304b51860b250283ee646c352235aabf976c750afd6" + } + }, + { + "type": "Evo", + "proTxHash": "9c55a18619ad89c1498139bb370ae68665ee68d95a113326687375dbeed80b20", + "collateralHash": "b76e4b57899e9567b24f3bf52eefa0844e280cbcdae33b63b62d86c0b4adcabd", + "collateralIndex": 1, + "collateralAddress": "XknNc6fRRk6mZTxUpdp6ht2H7tb76quSDA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.122.22:9999", + "registeredHeight": 2028325, + "lastPaidHeight": 2128354, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122055, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xodw2VDAJV9euVk4wx8AM7NUr3L9xQZEDb", + "votingAddress": "Xy7CnXZuEVySzgwJ4XeZebS85vrhUj1Nck", + "platformNodeID": "78c898f1fb4e72686b0d8e51e8aba5910d79708d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XiSbVJJ16q4d3fjnEniZeFXT3fKsrPSMR9", + "pubKeyOperator": "b8cd957a00042c90866fb561965991942571acfece531851c05d8b6ef1af2150c1529ed9e37da03a413f4cd1f148af8d" + } + }, + { + "type": "Evo", + "proTxHash": "110c7c7bc6d52cdded570a6e3bded9b957fcb2bc68f1f6045ebd61ebe51b0bf4", + "collateralHash": "882ff952ab75aa0013a3c4a4ddcfcd6e4312df599452cfd6ec9142c8f2bb3dcd", + "collateralIndex": 1, + "collateralAddress": "XeraQcs83BGEVf76LkcFLFLMGUM9wQHcVg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.123.10:9999", + "registeredHeight": 2028380, + "lastPaidHeight": 2128364, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122061, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpQgBReuJx8FNw7Cowuc5JLfkH9FZPyJuN", + "votingAddress": "Xtc6677w8kb1PYwXcm9NEJg2MxA5xB5EUs", + "platformNodeID": "19586c82f618a2011128ef989c11e48f8fb3b14f", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XexPKCW7X6fynEbndqMpxTwoLNP1ZKVGsj", + "pubKeyOperator": "985c4c8db02ca463dcb38905104afc7e729b29176d3b07b47f187a817edaebf17251ebf15d505b8c93d8c0ac223693bb" + } + }, + { + "type": "Evo", + "proTxHash": "8dc85b5b4d6f424eab1f23fd8a7d9340ecea1a74f3e6d98debaa98251774f3a9", + "collateralHash": "739b4731f5144fb20b6f6887281bdc45216375d5930313f470222e9336ca7bf8", + "collateralIndex": 1, + "collateralAddress": "XubVN4Khv415dY4kWH6S5kEb9xqPYHPR8b", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.123.12:9999", + "registeredHeight": 2028399, + "lastPaidHeight": 2128607, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122295, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmhEPiSV82AcrjJNh1EudQowvMgcLrXqrY", + "votingAddress": "XeUrNNcncVGuve4F4CBd4s762nVm3EXTJe", + "platformNodeID": "138231a9eaaf7330bdd1a5a2f93502d1482895bb", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xn5q5MFZJDhCmJ4vC95erorYGHQeWa3SV4", + "pubKeyOperator": "b61237822795c194f70d5324df58241081f981878b633ae90e01a3f21c0a7f113ff146e71482046bdf2f64e798d3056e" + } + }, + { + "type": "Regular", + "proTxHash": "531c4a13291a40fdd7396675700e5c2cf80e30746e4efb4595d9abb1c0ad9673", + "collateralHash": "a7c132806ac1b6b98e07d673ad3406ca3d754af90772001b9ea511c13931dc59", + "collateralIndex": 1, + "collateralAddress": "XpU2PfUXX4W3Dk7V6PyxMwdD5QgMJqCmPd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.71.196:9999", + "registeredHeight": 2028935, + "lastPaidHeight": 2126183, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvgrWpMKUrw6RsmETv7WCcXajXJ8EyMzx8", + "votingAddress": "XbAiAGViqqo38KC5nEsYooXUFbyd8hJLeS", + "payoutAddress": "XxDQbSWuERfGRrq7zFomQfTLFADuVqKDGs", + "pubKeyOperator": "b261b01e12ab3ecb44697d8a22ac82365eb0689079a6d426aba47ca82194953219599e540b914ca05735ce47643e9948" + } + }, + { + "type": "Regular", + "proTxHash": "a6f94a1a7f734183dbb31f21c61dee00437663f4ecca25cc1d388e8883646241", + "collateralHash": "56e8124ba9a5d74b78ae5b0fade9e67253b2e528ea04781770bbb6c269a95669", + "collateralIndex": 1, + "collateralAddress": "XqfHRCkGALhHcghGMG5CQVu66kHbuuQSWa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.23:9999", + "registeredHeight": 2028947, + "lastPaidHeight": 2126185, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe2mrxpnNZp7mgyHpkEQwo1MmRYbeWzSKY", + "votingAddress": "XisNTofRytmXwAobcJ8pYTiwbFpKXSUCgc", + "payoutAddress": "XcpW5ZPxLCytxYiiwxMevMvHZaA9FpZ1ok", + "pubKeyOperator": "9744df27282f8efe92e6237d83242af97a67d2f2354903f8e4aa76fb60a1b31f67ba4b3deff1d66a9d989986321e0f8b" + } + }, + { + "type": "Evo", + "proTxHash": "b41591cf598c31fb6f5f6ee1c0c7fc18fe0296b2ab4fdb4221f8d83b52c7d9e2", + "collateralHash": "a6c831112e0fca63c46b781b0990e02834f750fc4caf64c9db602128517c623f", + "collateralIndex": 0, + "collateralAddress": "XwgwS9fSjo48aLcKs6sSpqL66xWoztWKqG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.244.247.40:9999", + "registeredHeight": 2029168, + "lastPaidHeight": 2126604, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114225, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs1kjiYn941CFGuEqcFzatxKQBnw8K5Pnw", + "votingAddress": "XcppHwYBKk7s944rGfMu3418pZw4Wexbeu", + "platformNodeID": "8922664206817dd1c46572c03595d2db0fe52d75", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XiDZuZD8Ry5DKY5tbLv3oEJtnP4NYxV8mR", + "pubKeyOperator": "8777d79e66264542425d85bb26b990ca14dbdb0cced54cb39b6355d0da8c6086dd4dde3550c0c9e5fb708480031cc05f" + } + }, + { + "type": "Regular", + "proTxHash": "6b2e8b45a3eb32ce1482e9479bdc5d4d7663002213325fd39ae26f72bf1bf787", + "collateralHash": "2aa8dd3ed88710499e6b982b2826f04ae7b1e5800c6a71b2a9d9c97d43ddd40f", + "collateralIndex": 1, + "collateralAddress": "Xphjh1c7JaUmD8pZL9v7xTrastKuP6Pm4W", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.204.190:9999", + "registeredHeight": 2029574, + "lastPaidHeight": 2126757, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XerLGE3pjnQsnHHWPYSgXzBCcn5d4SpWyW", + "votingAddress": "XqzUH77contW8HDadngLXnVogEeSSBhWAt", + "payoutAddress": "XevqeHmxMAdsyNDC6bSjMTVDU6j5CcdNvq", + "pubKeyOperator": "99c81d91502ed10feb1fb1ae767f7864d59fcf2e5612674054cb907fceacc83f6c58561a717b457ece77ead1a9c58f10" + } + }, + { + "type": "Regular", + "proTxHash": "f1a1668e43f9327984ccb9127c8d2d31f825441a63977ab4046b5959ceed384e", + "collateralHash": "0b685da8caafbcaea63a39a3b74ad99a28837775d41050f3ea2ffa2daf867337", + "collateralIndex": 1, + "collateralAddress": "Xv1es9ZsS4NRreFKdY1LFtBkgwyr58Bw1Z", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.248.53.122:9999", + "registeredHeight": 2029744, + "lastPaidHeight": 2126902, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf6d8u5UuecoMiFcM54GNwEiQYci67pdKP", + "votingAddress": "XpGS2DohnFroSXMwJaGo8hB5HauqAEg9cV", + "payoutAddress": "XuP2NghveNTeCu6pyY7Xrk9XZikyL4sDar", + "pubKeyOperator": "b5cc62fa5cde63736bd9e1fa59dc9acfe9175265d311f9a32101222fa3e9184c552a811713544796b076d436da4b752d" + } + }, + { + "type": "Regular", + "proTxHash": "d26efcb1066b38a884e5d58564183b0713fc7230f9251c8df0901d33cc48d65c", + "collateralHash": "e8290f92482c7126b0efbb6a45ee68b945d31fb68ff5363864350f8dadf1fbdd", + "collateralIndex": 1, + "collateralAddress": "XjXHphxhMDt7PEvxe8AZxstsGgTSJ4tMtd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.236.119:9999", + "registeredHeight": 2029905, + "lastPaidHeight": 2127062, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjTwaPj1sVSjnhpHrG7NAUmyJTQpuSYCw1", + "votingAddress": "XmQP4Z8DmzBbS2bf8kebgoUMJgPRynYjry", + "payoutAddress": "XyHrxWcLxhLbT8wr2rQ98HSDaPaBB3f58Q", + "pubKeyOperator": "a61df70ebb7ac72cdda363baa005670e60ba41ec0dc9368fead05b4683f474d1c0595b3efe92af8eedef8ad7c32e5e8c" + } + }, + { + "type": "Regular", + "proTxHash": "6a32c992887999aacefdd8e4ea9a6273dbfc6b940989a78517dd5952586718cb", + "collateralHash": "5c5905c610809093e40afeda1e536fc2c025e64a077c001fe86c3efda179b91f", + "collateralIndex": 1, + "collateralAddress": "XejANRZDVsPX9v2BSjff6mDTuYENkjjiqc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.84.209.48:9999", + "registeredHeight": 2030381, + "lastPaidHeight": 2126561, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2063004, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xqs1Mqxc4zmBgPN2e6Z4CR7tngKGmhFFyB", + "votingAddress": "XvVjqE8YLCZPmMQ8fp3CwcEn5yrump116B", + "payoutAddress": "XqCVFZV2FBj6Lw7YUPTcD3spBzQ313BD3g", + "pubKeyOperator": "b417e7c0834310772b2ac6496bcd61fd1bd204f8565e6d29dfe88bc76ab64e846d41c7b34f7c9f257e3908bba3613d18" + } + }, + { + "type": "Regular", + "proTxHash": "b55cde7cec8c956a564d96901e20f8dad5d29f984ffa8c9dc7598367d4d12cfd", + "collateralHash": "bdcd5faaecf7414b09b1cafb08f0647d665cdcb7fa1b715df6fad15c51f75894", + "collateralIndex": 0, + "collateralAddress": "XpKwZmhqQ585BNiLqdUhwZ5dBgmXHxTYFj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.18.16:9999", + "registeredHeight": 2031423, + "lastPaidHeight": 2128636, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqnqUUxmQ4B4A3L5QhMGspu3DLp8D4g2XQ", + "votingAddress": "XspD2Dpgr94RHDk85RY3UDJPCWR6o4utku", + "payoutAddress": "Xo3TPyrnMWMQYtrT3rv8ivrJU8oSyjnvib", + "pubKeyOperator": "b535e32414c89a43a88c6159bf9a95609f34d9da6574d52da48dfe9f452389f5028b8b035e9ed8b3a12c76ece3eb6c51" + } + }, + { + "type": "Evo", + "proTxHash": "a61e0dddd59e515ca750b3f9b9627fa4bbbff49f8a56c95caef250628772217a", + "collateralHash": "61bac12e9c7aa981b654207f530a61c64636bd45956600fade193e4ff22e1c1b", + "collateralIndex": 1, + "collateralAddress": "Xx1V1n4n55RExdjnkk5RWmyTnNecYwsNVh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.123.11:9999", + "registeredHeight": 2031504, + "lastPaidHeight": 2128617, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122306, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc8dH8F1Fnuwoic56EHmBMDPsDdE1EmGa5", + "votingAddress": "XyxmRcBXHPYoBwAoFxnjJMafvDR1qnfbsw", + "platformNodeID": "a880c1440927c4fc62774c7674eac6d06b039dce", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XtYm2imaEVtDA7KJidvjseKq2KAAKcGig9", + "pubKeyOperator": "96ac2dba33251ddf29dbfa572f70ab60d9fd51426558f24748b0384411b2d665b075a1e087c2638e6dfcf32cbae58a8a" + } + }, + { + "type": "Evo", + "proTxHash": "41c180ca7da99171c1c5e983d72172897d78190a68831410f9a786489e6d73bb", + "collateralHash": "944adaaf929b32adeb020d5f6a87ef01a4a1c9ac04fda2a5599216c71a79ba8e", + "collateralIndex": 1, + "collateralAddress": "XbJEMssfcBBFHRns8UE9VngtghvXE8ZTxT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.242.224.124:9999", + "registeredHeight": 2031533, + "lastPaidHeight": 2128621, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122306, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwuzxpUCwMViFM6b1sDTVKFpKqaA5iwz6j", + "votingAddress": "XjiaFFAHXKduLqej8Dkpiz55CtZ7HuK9gF", + "platformNodeID": "6111e285a49c9979ed659fc6265d0db1241a0e57", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjHa87MAettc4Gx2c1hYEfELVrkCgQBNEd", + "pubKeyOperator": "b2031c362f21d23094f81e71b6c7da4a05dda8067edf5a0abf484d33c7905b1cb781c74085954566f8ae6fc00cbc850a" + } + }, + { + "type": "Regular", + "proTxHash": "4f65046a3417aa3cde545ea6563e209256d8fa5221f334774bd3104c1f90f017", + "collateralHash": "111dbef896b5d782ad1cb9433551913c8669b8921f4b154b1c1e73a0bb7ff012", + "collateralIndex": 0, + "collateralAddress": "XcWGHxXtihPUtpiWW5WAwXq4DEdF3DRWxF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.205:9999", + "registeredHeight": 2031626, + "lastPaidHeight": 2128821, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgenipjzeF4E6uK3W3NhbR8griF1NKf1iw", + "votingAddress": "Xtq4jVUgh6iFfmBAtVezkVWTzfkSx6uQhm", + "payoutAddress": "XcWGHxXtihPUtpiWW5WAwXq4DEdF3DRWxF", + "pubKeyOperator": "ab120e69244607764d356ee4aa3c8a960aa6baf7e90c0130c32e8f0b28dad8614ea78fc82f2f1f4ef967c89d5944ca7b" + } + }, + { + "type": "Regular", + "proTxHash": "3b3a9b4f4fade22019569ff77fc5699390296aa5a34a822dfa2a6db1303ace2e", + "collateralHash": "913b83a794dd65cff5cf9383fe0759c1742f1f76835eb13ad2cc7243804cd0a9", + "collateralIndex": 1, + "collateralAddress": "Xfn5JDNiJQtu4RQKAutkeJ7RxMinppHfuE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.246:9999", + "registeredHeight": 2031918, + "lastPaidHeight": 2128642, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2098989, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwJ68VUHABeUEaUWbjDesKdkbGKbZNcpF1", + "votingAddress": "XvTnymyfmQuzTjZC9BWr515puzuFFrdtGj", + "payoutAddress": "Xfn5JDNiJQtu4RQKAutkeJ7RxMinppHfuE", + "pubKeyOperator": "90398a9612bc269294622e37abfae5d3e552df897216a9e2fbfefea57922e808db010b90966ae556d63eb3fbe3beda7e" + } + }, + { + "type": "Evo", + "proTxHash": "9e83857d3a8f031c627dd75325af3a07ff09d3cfde7e9151550537421f50cc84", + "collateralHash": "8a551fe4ad73c21686420b7e17540bff76cc1c5233d0e5a88ab96b4075c5fe94", + "collateralIndex": 1, + "collateralAddress": "XwUppChKJfxSMxFGbe9c54jwf83LfLFH2m", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.242.233.166:9999", + "registeredHeight": 2032255, + "lastPaidHeight": 2128625, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122307, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgapQwNEYf2yLVJUFDaRiFcLkdHd5yjggw", + "votingAddress": "Xgpwdn3bDGJCDLtizk9qsuyVibURYykwMz", + "platformNodeID": "4176ec928ff0499a7bc7089ea0ff00966eddb3c2", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XiywzNM5W6pxT1hSPHYS5pJo2um7h7NGRH", + "pubKeyOperator": "8564be6687b3259be60175aa0469f3073dd2ee1ba991b93294019adf017686d2635bd225c9d7dead067c4067070756eb" + } + }, + { + "type": "Regular", + "proTxHash": "2ce489b307579637861a19785606c2c12eee311450f30c9fa194ce455fe8c2d5", + "collateralHash": "c54f7a2e33f9c96fbd9ee81a04e9b33f867759053b07986197e8d04fc039e28d", + "collateralIndex": 0, + "collateralAddress": "XjcvPuiWu3sxjPmk9cWX66kQvpZ6vshjKC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "108.160.131.192:9999", + "registeredHeight": 2032490, + "lastPaidHeight": 2126382, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiA2VPoLU9VvbxY519dSMbh8RJjjWpomF9", + "votingAddress": "XiA2VPoLU9VvbxY519dSMbh8RJjjWpomF9", + "payoutAddress": "XjcvPuiWu3sxjPmk9cWX66kQvpZ6vshjKC", + "pubKeyOperator": "981220dc263a13266615315a8acf05444f7556216e4db0087bd7f4f1e4fe221f278623d7b5fa332a54be91ca6b3416ea" + } + }, + { + "type": "Regular", + "proTxHash": "1e70e74b329e536e743b4a99c1b4e4666e9514ed6807499c52d9be7bb9fa2f7d", + "collateralHash": "30ce9abd7aad6605ab7a30838479e5882f5e29930f5c5b2dfbc4d8171434677d", + "collateralIndex": 1, + "collateralAddress": "XeJZRq51gEY9GnXjEaPSuC2kdo6xkUyFRU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.83.9:9999", + "registeredHeight": 2033275, + "lastPaidHeight": 2127117, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnWnUBQNPJvCts38fyGNuvegovbCpZdrY3", + "votingAddress": "Xr8Nc1qrUzLz6tADGktcZ1VsZ85DnXjefW", + "payoutAddress": "XhrbVZ1JXLviSrbv7vMGTbhhW6vyaHcHWw", + "pubKeyOperator": "83c34ddcd2744689b2c5e3535ae594b15ed8f49d168082570570ee353d09799a42b12300308f2765d06b8d87894c5c15" + } + }, + { + "type": "Regular", + "proTxHash": "0ccc9eb11967459bc8ab6366e1f13aabed3a6a33d15bd93f563d47cd53cbc088", + "collateralHash": "4dcfe98a51c993a9a083a35c86049c8badda736b7c4bc101bf7fc073ac71dd05", + "collateralIndex": 1, + "collateralAddress": "XvwKT6Jsgf2vuocKVy8YmChAuCo1jRAbX8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.237:9999", + "registeredHeight": 2033281, + "lastPaidHeight": 2127123, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnxZf8cJEjSaSB2imDqpR5CpVHeVfxFkUt", + "votingAddress": "XuwMr1MbrshM4696nGn9fqiuVVrGf4sEiM", + "payoutAddress": "XrM5EoiQqVUErfBRu7jyf38uofGVCLqgea", + "pubKeyOperator": "b7c6b3b4e6172a4a8e79b39a510f1a6372fc432557bce20dbd93fbfdecf0ac523ee175d20ac33d7b84c754eff29b1f18" + } + }, + { + "type": "Regular", + "proTxHash": "f4b73d7e3798f58ac02f7a8334bd3288ffd7bc08f76f5882310556134a7405e9", + "collateralHash": "974a2fd8a103678d158f175c52644f3955f2b0cbfbdcb10a8c1063fc73175a6e", + "collateralIndex": 1, + "collateralAddress": "Xiieq4JbQEj9YL98PWmkvnk9Jbzi8S2n26", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.62.52:9999", + "registeredHeight": 2033422, + "lastPaidHeight": 2127312, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsinnVT4Ap9wvc6pPEzK7N8RsuCQVm6yQB", + "votingAddress": "XsNo2csibqM74BVh9XPC7MAJWejSxttXbw", + "payoutAddress": "Xwv2nDWKPUZdN4s32vzg3iarEst6s16Jdv", + "pubKeyOperator": "932b46726e1202f4b2d6335270cd4986baf4c806dbcb4b91b9cf70b6b8a0ae93cab84829ebc6a38fb39058e7cd3e5aba" + } + }, + { + "type": "Regular", + "proTxHash": "4b50b6b2edeb62b2bb100f5ea6826bc75397474d5acb34e7c851974095755f78", + "collateralHash": "fe762f093c9ccf41376f5c4da7aa5aa673efdfe2103a805ac733ac092875c743", + "collateralIndex": 0, + "collateralAddress": "XdB5vMRLyNuZYq5hamYpdJurtgfZJZSkFr", + "operatorReward": 2.5, + "state": { + "version": 2, + "service": "192.169.6.87:9999", + "registeredHeight": 2033522, + "lastPaidHeight": 2127638, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf26TaFfY5XyNGDgz5LqQJ2ooJfq5Pp83b", + "votingAddress": "XeE3YgBxrHcohSaXZiFEmzJHPL6uYay4De", + "payoutAddress": "Xw3E1hQYA2EvacgWfxWrosrJTDGRpufTu9", + "pubKeyOperator": "8f5c9df8740a5955234e2d7dc50e324b8e60fdbbf662e9f47cd603f312656aeb098aaae0558f0fa7d7c1d1189aa0c65b" + } + }, + { + "type": "Regular", + "proTxHash": "87e60fdc618001e5ca61bab1f48ceb03399454776f5510933f2a0433e40fe9a5", + "collateralHash": "1d156d058c3283c012edb5811d192cafe3683ca9b2125020eebbf22a1602e566", + "collateralIndex": 0, + "collateralAddress": "XffKwtwBMzrXGNXhC91wjng5CUCWaACzjE", + "operatorReward": 2.5, + "state": { + "version": 2, + "service": "193.29.59.96:9999", + "registeredHeight": 2033522, + "lastPaidHeight": 2127642, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121479, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcQks8GFUSK9e85D21b2E97iC8ppFsZpMe", + "votingAddress": "Xs1SUuRYnDdaUK9zVtG31CdDg9NJ5VqL7Q", + "payoutAddress": "XtJ8ZReJASbsYRKxz9YC3AfMxNnPLnMmZd", + "pubKeyOperator": "834913633cabaf684c3bba0133cdc08b846e241a6fddd79fd77d39ecaa612ff00a7b7e8300e1e308ec62e317f61f0d69" + } + }, + { + "type": "Evo", + "proTxHash": "8b447ad22f5068a9f7fdd46a3aa09387d53933f56b9d625d0c1981888a92afe0", + "collateralHash": "b35f2e1ae5109cb21d3e2021b563aa6bb1db477251372b90028fe9d2891b5ed7", + "collateralIndex": 0, + "collateralAddress": "XmCDsFbRpTbZjNbnwa2MrwQLGjJS74aNzJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.157.91.186:9999", + "registeredHeight": 2034030, + "lastPaidHeight": 2126152, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128855, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxV1GvpDgZU5PA9zc7cALFjuPFpHpHyLKb", + "votingAddress": "Xk3es8Y1zLDhJkopFEJ7JnJ7RjV8XCXqTS", + "platformNodeID": "503190be0732d4f4bbe5b4a2d95d6e7af3280469", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XpA4oseroNCUCpdkDDBw2pYYq5KhshEKuS", + "pubKeyOperator": "a209a5d7a50048c46c27f8bc4b9d93762c6972fdd35a339803f743c4e7c072581fffc693e25969c69e51ec307b963dd9" + } + }, + { + "type": "Regular", + "proTxHash": "636cd738d98babe4406aa0eb94af93e3725cc0e8fcd75b93af840eaaf7815e53", + "collateralHash": "636cd738d98babe4406aa0eb94af93e3725cc0e8fcd75b93af840eaaf7815e53", + "collateralIndex": 1, + "collateralAddress": "7nzvmX6EWqqRgKZaRg1RPJ8ez1VFCzGsUt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.223.135.214:9999", + "registeredHeight": 2034244, + "lastPaidHeight": 2128192, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrp7ZboonhfMRYJjUaXSbJdgUkNRJcnLDt", + "votingAddress": "XhceDR9QBbLt6zc2JFXdEUs41qNV5wsgeE", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a33d57304b4ae14242eecc58a58d0809ed80221b38987d5ed0021da4743dba9a6bc29c2df60a4b8b81f22e9759966276" + } + }, + { + "type": "Regular", + "proTxHash": "97af1e3fa87da9b08d803b97463b7f87522e91d62177443c75670567e190c070", + "collateralHash": "6e70f3482f30eb76f5e45ac571405b5f8fcc63ef31fdbdbb0eba06d806bc5eef", + "collateralIndex": 0, + "collateralAddress": "Xw45PbzLgEstT3xQR6UzDorSbcn6KEMtuz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "82.196.9.190:9999", + "registeredHeight": 2034955, + "lastPaidHeight": 2112974, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xx7q2MTVymXVS9YdJwi6qu7bfBma2fTsMe", + "votingAddress": "XoLYAB3z8b2QkmW2NaTq5yKNS428zZTDGr", + "payoutAddress": "Xw45PbzLgEstT3xQR6UzDorSbcn6KEMtuz", + "pubKeyOperator": "98c5b360a3b3a4d64da579e68ce9f717c954f1dad72349cdaa8709f668ae0967903c7e526b9043997ff9285c0e6b92e5" + } + }, + { + "type": "Regular", + "proTxHash": "83df686961f7c3df7deb68af54004604c92c3a22f9df7ecfe4b4d565b0c7cc67", + "collateralHash": "baace5ae8e058303e19af7fa565442bc4fcd3828bd37add96e466b152d9f61d5", + "collateralIndex": 0, + "collateralAddress": "XweTHoaunie4jvvKWS9pLFJGXkDAh5Z7ga", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.22.25.87:9999", + "registeredHeight": 2034965, + "lastPaidHeight": 2112989, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115691, + "revocationReason": 0, + "ownerAddress": "XjFDqssR4wFAJ8PKmDBKLsTywYsd7QchRa", + "votingAddress": "XnFtgAVP6aDasR7qt37wjTDcLDHLyA5U8K", + "payoutAddress": "XweTHoaunie4jvvKWS9pLFJGXkDAh5Z7ga", + "pubKeyOperator": "abe8a2cbe5fdd412e70f01e021dd197d875093a4ee9d7591cb483b6d9a18493009d8629dc192467d7b0767432970f99f" + } + }, + { + "type": "Regular", + "proTxHash": "1706c7970e969aafd541a4506d312b0e5dff39ccac19537ce425103b5a5ad4ac", + "collateralHash": "13f457cf55df4e88730c4a24de56f07b8d389f6c19cca596db8de82977dc7bff", + "collateralIndex": 0, + "collateralAddress": "XbRcd8KPYTbb5rx455E4wqy9jpxPrjtV9c", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.109.89:9999", + "registeredHeight": 2034973, + "lastPaidHeight": 2112999, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115114, + "revocationReason": 0, + "ownerAddress": "Xjhy6SAupuHsRLW74wGzsK4cP6MKDTTJEm", + "votingAddress": "Xm3ANHuuUyBGmwocRCsLicdNygdA6cBkQ5", + "payoutAddress": "XbRcd8KPYTbb5rx455E4wqy9jpxPrjtV9c", + "pubKeyOperator": "a773d5a524885647450a9bd8476fafdae4bb97f15ba857bae69cec0253564f98026400d4fa65650e3a4c0e5c5196fc59" + } + }, + { + "type": "Regular", + "proTxHash": "1a6d2aa33a75c78ea99a9d0231eb1f91580e9f67ba72ca601efd1c5f361c0fbe", + "collateralHash": "24f8878e2d6040ba3b38da7239274a41d5569702fb0d98e81cfa22e0fa168707", + "collateralIndex": 0, + "collateralAddress": "XuPpqDHivCtWNb3JeGDhwNrK6DbteTnLmS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.203.112.94:9999", + "registeredHeight": 2034974, + "lastPaidHeight": 2116369, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117131, + "revocationReason": 0, + "ownerAddress": "XyRzBQJcu5rmQccwgeuXBp1rqzMsgVqKb2", + "votingAddress": "Xc2kqgTdJxfaXYdSahbxhenPXcfuiW5SAv", + "payoutAddress": "XuPpqDHivCtWNb3JeGDhwNrK6DbteTnLmS", + "pubKeyOperator": "927c921f42a0837c5dcf1cc0d10442dc27894f9c63c9d15e9f7d1490b5a5d57a3b4c0b1a84303a8c04a1b7a021e87425" + } + }, + { + "type": "Regular", + "proTxHash": "1ec0015dc56c529bb161f7b6c196955fe368ea47d37d74ef4378f8a4d1aff80f", + "collateralHash": "f768e5418c13fe4f990adb98e395ffdbba66891c2ec38f9a8ce5569a7513cedd", + "collateralIndex": 1, + "collateralAddress": "XetpeGw5hHG696i5e9MqQuZ3HYMBNEri1r", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.241.115:9999", + "registeredHeight": 2035378, + "lastPaidHeight": 2125970, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiT9fc4L83YAogY9FvHf5tfeg3SJQmZvsE", + "votingAddress": "XbmcDcz4brwpDGse7gYNR26Sd4xCHh8GLu", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "acb4c2d3f462405bd2e9a3742b6a32cf2626aef368386b171586e2e24c88014d93394d63a6be6f804c9167d88085b159" + } + }, + { + "type": "Regular", + "proTxHash": "068f02cd536e8aa88679330b68095ad7ea80504597034934a538afa12d74ee1b", + "collateralHash": "e8db7f8056d5f99ce1a04e75a6af0c7e4d77e958a37b6e08265b2a3acf60e46a", + "collateralIndex": 1, + "collateralAddress": "XhHpxXwnAczHBZFkJqUXf2j2CkE4xLLSEe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.9.210.4:9999", + "registeredHeight": 2035381, + "lastPaidHeight": 2125973, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xdk5EhLHWw17uaJe9n5YzbMoanQLvGoyZi", + "votingAddress": "XepZqctkiGygq6juCp37gN8UGDsjUDwBwM", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "873ae14c15d1ccbcd9a626797c2bd8c6b8af882e006b3c71ee4fb8f169e3186867371e8b4a38152da6349202e4813b49" + } + }, + { + "type": "Regular", + "proTxHash": "5f6e679df5d08adb3c3f2dc2ca073d23ac4e1654168472094dfba9e196af0597", + "collateralHash": "69d307102660f920f3bc5efa2f3068a47949b72998fcb47b223f4cb1387786a2", + "collateralIndex": 1, + "collateralAddress": "XxYBF24jHAECFSf8UQnaQsFcnQH69eddAi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.50.34:9999", + "registeredHeight": 2035386, + "lastPaidHeight": 2125974, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpodbqwVXy7oAK8Ecwr2SxrHh6D5aAqZKn", + "votingAddress": "XxdMUanxx5MEaHTm83vowQkZ8NzzqzKm1Z", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b7036d2ed8637e15b6216704ebb8bc432e96da575ec611bf96702aadc1fde49097f1ff92fe112dcbc081a526e2c66875" + } + }, + { + "type": "Regular", + "proTxHash": "bb0f4459a4a593d92da640b3c647ac4b34782a0b3352b9633ecfab71ad4fdf85", + "collateralHash": "d940a42873f29d7e7de5a1b0aac31d626dcbaae9c6234a3fe5ec982120bcd2a2", + "collateralIndex": 0, + "collateralAddress": "XrLytvV8H7o284zMmsxdHjEHXzUecVrqmg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.8.92:9999", + "registeredHeight": 2035812, + "lastPaidHeight": 2126353, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqYXLsBiiNNdNXgLGi8dxxb6aDJf6ikMYK", + "votingAddress": "XogFF95Z7izzVq6EThgEUiTcxZZskiW58B", + "payoutAddress": "XsjwFS1MX6d9KJgAZ54cHxz2pVWKMFxpRp", + "pubKeyOperator": "9676bcdcc6acb1f1735b655d6b71af1b91d8b16b690a9f41c744ffdc3e8d6477bf11551ffdf3c8fa2221e7bc12d4102c" + } + }, + { + "type": "Regular", + "proTxHash": "0d4997d8ac4c1dfbe71cef2aa647e6c5015878a6d072127911e8efb187ceb465", + "collateralHash": "48b888eea155483a7e84b690517d76b9c7d2a4f9a1350e3785aaf873ec598ad0", + "collateralIndex": 1, + "collateralAddress": "XyaafEgT8k2owkuHexTHn1sK7aw4GTpZDk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "62.171.178.40:9999", + "registeredHeight": 2036477, + "lastPaidHeight": 2126925, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvjobgpk6soFvS6ar8UwziDuF3qqPHDLNM", + "votingAddress": "Xvjobgpk6soFvS6ar8UwziDuF3qqPHDLNM", + "payoutAddress": "XckP1MCThUsPHYqmbJsi8XbcZrX9HfujhW", + "pubKeyOperator": "93680415dea56d81673e39590764272f36f5795129467de4341565bdd6e17b538b598b66453419b5476a947d2209d70b" + } + }, + { + "type": "Regular", + "proTxHash": "fe9ff6b8a7c701313e4c2368d279cb2bbc54a54b55171af9cc5ded1d8c72b967", + "collateralHash": "6cc119c63e05d215546df22aa7e5ef22caa3d1588913de89210aa9d3113bfdfb", + "collateralIndex": 1, + "collateralAddress": "XwRFueLb45QkEZZv6GPYaKFbhDArpx6EVh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.185.40.171:9999", + "registeredHeight": 2037089, + "lastPaidHeight": 2127601, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnh5S5A83LPWojxn6FtjnQuTuvU7YxHH5z", + "votingAddress": "Xnh5S5A83LPWojxn6FtjnQuTuvU7YxHH5z", + "payoutAddress": "XxWjgFQYDPjTbN1xdBt6jY5c7oaaP136VX", + "pubKeyOperator": "b1c699e12f6ddf4db237cc099a0b88b7edb859beec1119045514e495877ebee629a5a0c58ed34e7b17a6430db660c117" + } + }, + { + "type": "Regular", + "proTxHash": "df8e01ed6b560927dce7486046b246632eded096f008a9706625e7def0899144", + "collateralHash": "9debd2fef789d3261926368ad256271e05c0e7077e2a16372a44f81c4e1afd52", + "collateralIndex": 1, + "collateralAddress": "XwEVmaP94DzHLZaQaW2Hi7wXupJpXirtHC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.238.160.145:9999", + "registeredHeight": 2037191, + "lastPaidHeight": 2127094, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123931, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp3W9UxBUfLaAcanV63GwnpGonfr34om1X", + "votingAddress": "XvfD5Zvz1VqTSki9p7RJc2Zat6Lmy4pHcy", + "payoutAddress": "XpyKPDJYrkFFv7jnrHbyy5VyQESSkSR55n", + "pubKeyOperator": "8a63e379b7675b29b24eb9474deb99da3f8a000740bfa4a00c6eb0b460e4f23d6aa0c183e3b68040c8e191d4c4642f8b" + } + }, + { + "type": "Regular", + "proTxHash": "4f141eb2663c3e1b99eac9ee5b344e9cc65cb09f6252f5172c3ebb52cfa3bb1c", + "collateralHash": "d9c1c6fd168372aa174437e66ba6cb3c88631a79bf6a45727bc9cf846c6358a9", + "collateralIndex": 1, + "collateralAddress": "Xqtijd32EgKkfYRNwz9EyMYLc9fZpioVRT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.17.248.91:9999", + "registeredHeight": 2038816, + "lastPaidHeight": 2042190, + "consecutivePayments": 0, + "PoSePenalty": 3810, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2044554, + "revocationReason": 0, + "ownerAddress": "XpdFMhirn1cmR3mRNP2MJvW4cBLkzpBgrJ", + "votingAddress": "XeAsjmJ1AB82aeNgkmUep4Aw6qwxC3a4Dv", + "payoutAddress": "Xg5ahLSqrmkyC5qtjJrQEegnL2vTUeXzC7", + "pubKeyOperator": "82e833f21f3052e5e4cb3b159c8b44bc4a36dda04cad8699fc183933b7e43892d8b785f1bb91e1074d9697d37bb17714" + } + }, + { + "type": "Regular", + "proTxHash": "3802c1fd740fb81f19dc3212e046f4d31fabdfde5418f0d3ba7727853c7c22e2", + "collateralHash": "c6005b82e35fe70015685a23f5ff725034b692805e59cab226f384a95ce5fca0", + "collateralIndex": 1, + "collateralAddress": "XkdwWXHcUMpR7ypC5XKsziHRpH2jbXbPme", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.211.196.34:9999", + "registeredHeight": 2038816, + "lastPaidHeight": 2113511, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115690, + "revocationReason": 0, + "ownerAddress": "Xdys4q1d2HfvQsRNiueFzgmgh1qNNeDyQy", + "votingAddress": "XtYU5Y97mZRTA1kMjwkCjcCzvA4hh5c1S1", + "payoutAddress": "XsnHvhgDi2DxWpA5ZZxoJfTabe7Gmabp61", + "pubKeyOperator": "afc3416e87edab4e5918d41b6af3e44fc1493881aeb2072a825fbaf13b9f3c556224101359a90ae15d7f4a47db884dff" + } + }, + { + "type": "Regular", + "proTxHash": "d8b2d57db170b32b8b95f0ef8c7b11ca6ad737e202d5bddfa757a78841f52471", + "collateralHash": "00999aa68239227735aa6cbeed73b710d3c9b76cf0b58fe79399e8d8a9359307", + "collateralIndex": 1, + "collateralAddress": "XwWoawypS1V35qkHf7U3twEAAniJHmCmXV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.236.97:9999", + "registeredHeight": 2038918, + "lastPaidHeight": 2126130, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xi751QgLww6VJSdgfwn6b5dRXETwisaJAP", + "votingAddress": "XtQiTfSLHpQZzjv2y6NepUSSGxJrHQgDoZ", + "payoutAddress": "XwWoawypS1V35qkHf7U3twEAAniJHmCmXV", + "pubKeyOperator": "8c302c538d0367833a33bcb5f01c72b25a776add8b5c4ab0f8d0910bf2a2021d8e4080f2b886ff4760526e2bcb00f76d" + } + }, + { + "type": "Regular", + "proTxHash": "0fdbdef745b288aa3de234df7ddd971720b7dd67e98a5e663760b520554db02b", + "collateralHash": "6f24ab06bde8cbac29b92968a7cf518b51d702b46bf33e27f25c3ae1788e1e24", + "collateralIndex": 1, + "collateralAddress": "XsCVvya7soA8W7YZjfqzUGP2gvFhwwpYde", + "operatorReward": 0, + "state": { + "version": 2, + "service": "216.230.232.125:9999", + "registeredHeight": 2039236, + "lastPaidHeight": 2127188, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121059, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy9bjNCRg7Kc2xomzQNLZaWZmf8RPSzFUc", + "votingAddress": "XvFoJWF5Gfq4E3od9D3JrMA7EkyJNo6i9A", + "payoutAddress": "XsCVvya7soA8W7YZjfqzUGP2gvFhwwpYde", + "pubKeyOperator": "87830c4834ed4c1b9fa4f16d258bcce4e7c25389ea3f0bfbe984c013c4750830e8ac348dd789ddb9eeec23343c580ccb" + } + }, + { + "type": "Regular", + "proTxHash": "0e46835bc1f8e0c3ee25393670058ef50396eb57994e1ff4cdc14355eccbfeab", + "collateralHash": "4961d6f076f70b9f31638a1a705382ba85df47756de98e631646ab276b0f9daa", + "collateralIndex": 1, + "collateralAddress": "XnsPwd1WuNwywTKeh9SCfdRmRe87pcN4CE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.211.196.46:9999", + "registeredHeight": 2039772, + "lastPaidHeight": 2114534, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116554, + "revocationReason": 0, + "ownerAddress": "XngVpQiwcmQVaevuzhm4kdEn7td5Pi52dD", + "votingAddress": "XwcngXYQh3EzJNS7RSgaUMqLqsDpA5aJ21", + "payoutAddress": "XnsPwd1WuNwywTKeh9SCfdRmRe87pcN4CE", + "pubKeyOperator": "8dd33a751db6201854758acfdaa0463f1a209938bf2c5d8f81ad8fa78eb64ccaeca6dbecf93c8e79cc96937f0269d7e2" + } + }, + { + "type": "Evo", + "proTxHash": "1022cecbba9519cc6ae5dcda5d34c9215310d9ddab3f73cb46d332a409e4e5a3", + "collateralHash": "b3372696ed7d0e7e45f15d1c07cfd9ba1a39483ea54cf30a5f7f7fd95712a269", + "collateralIndex": 1, + "collateralAddress": "XrjY6NFAHZSKm9urkPhTpFyQ7s4jR3w2uv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.242.253.223:9999", + "registeredHeight": 2041115, + "lastPaidHeight": 2128629, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122307, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xaqgb3DaNJAFy5e8BBC1kzVHLaVFg6RVWC", + "votingAddress": "XcghULfj4EJuJebGMK8ozudWAV7SPJtCGb", + "platformNodeID": "f81487f965ebbe4f2b8976ae088243b2bdefdd3a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XnfKHvaJcQyFE6zTtfXTV3s1uSLHMXR6Jj", + "pubKeyOperator": "87dd51d17846e86752bd350518bf1cef7640d86dd4ab29c303d3335f6ab91ba0bb882c540f3dff663c874c304aaabb0b" + } + }, + { + "type": "Evo", + "proTxHash": "d014f16e0dc12e9be9de52d52b2eb57d6427a13072f7a9bfe1d761808b0876d8", + "collateralHash": "ae3358c0b0293caa3116b06797f8652607e61a54848236109cad1b647d6f47b6", + "collateralIndex": 1, + "collateralAddress": "Xmeec6sNZfXuzq2RPNWss2Q4q9LE6QrpQF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.74.79:9999", + "registeredHeight": 2042454, + "lastPaidHeight": 2126954, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120901, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XucwjzFaaGNqULp2KqdJhViCWYUoU7Bfd4", + "votingAddress": "XucwjzFaaGNqULp2KqdJhViCWYUoU7Bfd4", + "platformNodeID": "61fa724b4cfe54f56634866b3bf5455f81b9ad27", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfTcr3fxvpJHYeJDERd5DZoUiSNM7xi6gz", + "pubKeyOperator": "a6a488937d165b3a559b8f9d17931a1aaf17ae4b702d28cbbf9e22ee0c433552414d0548c402fddb4698c691a9c9f85e" + } + }, + { + "type": "Regular", + "proTxHash": "9f7702f3e459cfcbd5f6bb3a8c76012ca28347f0c781e85e73d87056491e199b", + "collateralHash": "7c4eb180d3020230f837a7843f21cc628b746a6e70ae7119e99232ad180a934d", + "collateralIndex": 1, + "collateralAddress": "XiFCJ4eT3PP8ythknS3zAT487mtLtjNjZW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.190.37:9999", + "registeredHeight": 2043646, + "lastPaidHeight": 2127433, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjNTRM4KyPYuzQpXzREAJBsdj89GjtAHuh", + "votingAddress": "XgwxiBc2FvJoLxzQoGbZsNQzR4UXwRac6z", + "payoutAddress": "XpEn4McCPG3XfJUkpqmYGTB4t38RaVBCpz", + "pubKeyOperator": "81cf4c6c36847b878cd2b42424e49267269c021f354e7960e8e6be16ecec5315fe41aac5757c8264b4083634a60760c4" + } + }, + { + "type": "Regular", + "proTxHash": "9208962a55a96f3f47ffbf5fca0f89a5da6a07dd5b7d04a8cc7a3e70a860cec7", + "collateralHash": "6a4a0e4375ccc0e9e164d4a750138bdae60549b188b83260529ed69beba755c5", + "collateralIndex": 0, + "collateralAddress": "Xeuusp6omeVv6KFuQnJqCZ4ZxECJPZtZoY", + "operatorReward": 15, + "state": { + "version": 2, + "service": "89.47.167.94:9999", + "registeredHeight": 2044106, + "lastPaidHeight": 2127934, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt2ei13VHfsquiP4bL9SWpXBvitqznd987", + "votingAddress": "Xu1TCG7UkxeRDEWWs22KQKcpfT9WYJKHov", + "payoutAddress": "XjMgrSgT4aJ5yhecpTt7RnqLdRahifMLiQ", + "pubKeyOperator": "b5e50c6c01641327e335381605794706152a2d9ff1c9ac22c81684d9a908f7b9e50035e2b8df6644866b70778b20e468", + "operatorPayoutAddress": "XenkGBYESfEh5jgeMprQV51wL9X31fPfxN" + } + }, + { + "type": "Evo", + "proTxHash": "c418f3897f923d8b5e1c5087b552e38cfde15292299ac4de0fc415be0ed08230", + "collateralHash": "09009d08d83d364f726a8f7392872fe4a6bebdd6f7015d4e12e8df12aae04744", + "collateralIndex": 1, + "collateralAddress": "Xchm5i5nBPWbpHBShQeVDiy9ym8474PM5m", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.74.78:9999", + "registeredHeight": 2044793, + "lastPaidHeight": 2128282, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121991, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjUZVnrKSSZp8tQ6SropBJGpcDfTSNFiB8", + "votingAddress": "XjUZVnrKSSZp8tQ6SropBJGpcDfTSNFiB8", + "platformNodeID": "8b81d0ff051b5576b2e8009004e457c349ac17d0", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkDAznGMdnF46nj2wAmYbzvoQeXdk1XixD", + "pubKeyOperator": "a2d3741656a40811fdee2cd488140935b7afb874730f8a2afad6493212607848f40410f9cd3175227acbee441b98fe85" + } + }, + { + "type": "Evo", + "proTxHash": "79f6b7508b8982b883ea1a6e6657e005fc751729bd6ebefae6d5b012c3661323", + "collateralHash": "4f7a8c749e28eb9ecbe61365b650b607a602177a21f157f4557dc82dec1be8be", + "collateralIndex": 1, + "collateralAddress": "XhTEaFvozr9AeL4A9XTjJzoJBucUSpC4EA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.74.95:9999", + "registeredHeight": 2045285, + "lastPaidHeight": 2126964, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120908, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdyESedwKpenfLYf5ztnzT3Q1MxRK6MEg3", + "votingAddress": "XdyESedwKpenfLYf5ztnzT3Q1MxRK6MEg3", + "platformNodeID": "b47f61a0f00f1e0b7f4315d476ea5319844df0b8", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbNM64cz68wHy4RsxVk8fYBe32yLimjj1D", + "pubKeyOperator": "b9f6ee4e924c3647dc43ca8bfc6821e896fbacc5157130dd89c3d2c3df4a1a21a3974aded03cf540d1ec9f84528c9ece" + } + }, + { + "type": "Evo", + "proTxHash": "975f3ed61f5ecb096509aa52b10fdc6a4b3b371d5d22835e393ec2a26ff36b9f", + "collateralHash": "31692c4a85c9117f19d64c077eefedc10dc33985a1ea8c4adf98c7694d3c735e", + "collateralIndex": 1, + "collateralAddress": "XkJD72so7riZ8nzgyeq9ANJ6vX5WHnDRw3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.74.109:9999", + "registeredHeight": 2045354, + "lastPaidHeight": 2126148, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120081, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpr62RzEKgioZG1qJSWhV1qUA4YZ3poTdU", + "votingAddress": "Xpr62RzEKgioZG1qJSWhV1qUA4YZ3poTdU", + "platformNodeID": "26158dfc0162d05173cf1853ad52b9b207d05ba7", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XqHR6sWUcF7dNoe8YhQmyvmroSGQZ39qST", + "pubKeyOperator": "b6ca2b094e0ddde0a5b1b22d4558890c361104a25f864f84c2c49b05a67353e3a8e904e5f406265e1c9315037dd8ba7b" + } + }, + { + "type": "Regular", + "proTxHash": "8e94637a0b4295d39e58a57a039d2db2609ebfe7aa5abbaf8dc78a0fd07d6540", + "collateralHash": "d57732171d58a5b413736d2b81c007bd04bb9438a78b2f8e6e23ca2f202ac3cd", + "collateralIndex": 1, + "collateralAddress": "Xire453qCVtZvd2prZALsqKMPK7VFeoYUh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.199.70:9999", + "registeredHeight": 2047663, + "lastPaidHeight": 2128149, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfuz9W3pFmghBGBQnEzspJ7N2F8MWt6r4Z", + "votingAddress": "XonqpiMnGMAPBd8mrfqHYukXg1Puz1NKiS", + "payoutAddress": "XeWQYKhAvWg5nM2bzXGVW83ecJASAmge2J", + "pubKeyOperator": "a8223ec4dedf66500e180f2d9586d2653144213f48454bbda8059084b54961d57355b8701f5a98f60e570e5839433860" + } + }, + { + "type": "Regular", + "proTxHash": "7a7e372527f616def2a6391c68b8fa501cb6d75622953f77cc7c7bb8fc7c15fc", + "collateralHash": "ba2554ea60a010b6604df4678e01756b2ac3c241e73fb35d177ac907671564d4", + "collateralIndex": 1, + "collateralAddress": "XyY2AEWEwVKdQgHkrd8qZSpqteuWTXh313", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.82.24:9999", + "registeredHeight": 2048060, + "lastPaidHeight": 2127355, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121203, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqGUDfmgWD6EVQbJkmAjWzVdnjV21qkY3T", + "votingAddress": "XqGUDfmgWD6EVQbJkmAjWzVdnjV21qkY3T", + "payoutAddress": "XpdPQvyPE9C3MrLhnQJ1tGqGEAG6UKRvgz", + "pubKeyOperator": "a23eb86f6e77fe500a81d7728a379cc6518ca57c5218d1ca08bdb0166c88d75074cf480def50aea704d24297df1486b1" + } + }, + { + "type": "Evo", + "proTxHash": "3d039ce62023346c62c2fe5f1cacb3a38678a0f54a2817931440d6c8e0856edc", + "collateralHash": "9c9941ad5d7be2f2cc1758babf11ac4fb90e7c72b7e697871711c59441f77e31", + "collateralIndex": 0, + "collateralAddress": "Xh7bVZn2RZCuXFz7VeBtx7iiGhLMr6ficp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.157.91.178:9999", + "registeredHeight": 2048692, + "lastPaidHeight": 2125857, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJcadUjCr4TwiiyzWdSWG1RcTHnrp2fxS", + "votingAddress": "Xs9v9Zv3YxYtK4B4fxheZ6HhN9yCaoMsmT", + "platformNodeID": "58d758efd634407e7ca6564f74a9e79f1d434adc", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xayer1AbcSWQnBEowZCKLUPdjUH6SrgygX", + "pubKeyOperator": "b45f5579dde0e1c0731292f2412e7b6fa8e93b548202f88c0870789d77cdf054909a7e68f73900de54a742f7dd2217eb" + } + }, + { + "type": "Regular", + "proTxHash": "c2780a4f92e3aabc0f3de4ce4ad8bf8029472d1e6d50a9638e96769cda133890", + "collateralHash": "399784302b96d213cff9c8b606d1b0fc9142e76fda8f2ad215e3e3d0180e8e60", + "collateralIndex": 1, + "collateralAddress": "XhqH4C9Fe5yYCcbVaS9uEMHEv733BeVdKF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.13.180:9999", + "registeredHeight": 2049080, + "lastPaidHeight": 2126175, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu5ReDreddMdkTjF33JJrGwd71LTWhEwjN", + "votingAddress": "XmKyZCLB7b9FXqrMvSqkAttBeHykDY5ub3", + "payoutAddress": "XyQkmasURmiurpmFASg4G1PhuwUXmFyprJ", + "pubKeyOperator": "b5249e91c02c0fb3a59ed64ad71752976f38cdf841a5ab97c93665a9da0423bc0bf4c6daf23f578b52ad8fc77a51fc1d" + } + }, + { + "type": "Regular", + "proTxHash": "d0437d0f347b12142723407e17ce4de7ee096a6db3e31ba9198972af5a22d23f", + "collateralHash": "d0437d0f347b12142723407e17ce4de7ee096a6db3e31ba9198972af5a22d23f", + "collateralIndex": 1, + "collateralAddress": "7fhUBVUnXnFutD1HNGPAvvmKy7KDyVjCE1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "212.24.104.21:9999", + "registeredHeight": 2050012, + "lastPaidHeight": 2127016, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmQE3Zji3sDN1ZyKVqkgwY1NuEWBYq3QRP", + "votingAddress": "XjGAxrqZy4KTESp4tKgvAHaEVeDPV5Ra4A", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8de86a152b717509905c5a9e3ef7dff39bc37a2cba77c24627acbdf4d52a05a43c99100a892f20078849a6157d4b87f4" + } + }, + { + "type": "Regular", + "proTxHash": "6a6d91bd49ce32bf4d6df058444bdddef747f421a982bb07409611a40c738ef5", + "collateralHash": "a0c0fa56db400920542f8ac4f8d7091f051b0b1959e9327fd9372edea083f1ca", + "collateralIndex": 1, + "collateralAddress": "XgYeRL9jvdJCbfHxgin5q8XrkSPzzUL27S", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.80.2:9999", + "registeredHeight": 2050698, + "lastPaidHeight": 2127808, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XccZ7fxfmMazG8QZnfDusBSkehWWsd848s", + "votingAddress": "XmahAgZqTGaFNf8HDD433Q1LhgzJegsmvJ", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a7b19b392b2be10de04573c1245e0a4fdbdecaa38bffd7f96cc87f3e485c80dab7955825c685b685ac9b823aaaaf9bb1" + } + }, + { + "type": "Regular", + "proTxHash": "bf78daf8d825e7b7ad6768bd9827e241ea42eee405e50b1bd372659e67df357d", + "collateralHash": "683f5be16bf47d092546ade2e1c3452b7ae28d89769787d956ac5828495e66d0", + "collateralIndex": 1, + "collateralAddress": "XusdLXfgJTrPmrR1QZXrCxrmvNYcND5ap6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.230.101:9999", + "registeredHeight": 2050701, + "lastPaidHeight": 2127810, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyKZ9CyuXvmN5LcUCNQg52P1kDWVLMFBPn", + "votingAddress": "XnQznwkKRL4VHw45Nz2PKLTfyPpHT7GiU1", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "9822d6214dc50707a1a0e949e99d9881d91727b1e082b51486580801c4411b612f1dfc29688268cd45c9aa8290d4ef22" + } + }, + { + "type": "Regular", + "proTxHash": "a3d855d9a84ed9ec36993fe87635fa6e3e2089f5b18286297dcf827916ef34ac", + "collateralHash": "d8e7399ba7897fdfef10d1cf971bf399e10b472fc0704ad8fdbac3ac88bac624", + "collateralIndex": 1, + "collateralAddress": "XdyViBw2eV95umLrSPXoZPBgw7Mwc3QnRu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.59.32.229:9999", + "registeredHeight": 2052222, + "lastPaidHeight": 2125992, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcPLfvWrGCyrS5oRsUupLhJGhcutLa2UoN", + "votingAddress": "XbDLzscRyGrjnrnK68NjDUKNgWdK4e8mEv", + "payoutAddress": "XdyViBw2eV95umLrSPXoZPBgw7Mwc3QnRu", + "pubKeyOperator": "aac0c81ba671d1631ba0f82085fb72bfb2f90f1076bc921874ff571c2059b43f653a7b487003a10395b971021b97fb65" + } + }, + { + "type": "Evo", + "proTxHash": "85f66efab1cdfbba29a7ace3afa2ba2d429aaa082c8ecd925cf6d9e40edfff08", + "collateralHash": "537201d66e7729c93b642e51cb13bc94796f3101de1af184a8cc1bbcd8d6220f", + "collateralIndex": 0, + "collateralAddress": "Xq3CvKa7uq77wwMi6zXkapqCxZsSyg2HzK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.132.162.135:9999", + "registeredHeight": 2052806, + "lastPaidHeight": 2116610, + "consecutivePayments": 0, + "PoSePenalty": 3851, + "PoSeRevivedHeight": 2092596, + "PoSeBanHeight": 2117963, + "revocationReason": 0, + "ownerAddress": "XijzJvECQusoaqF4WeD532E6hpvvsMZfVw", + "votingAddress": "XijzJvECQusoaqF4WeD532E6hpvvsMZfVw", + "platformNodeID": "0dac10094f405cd9ea2832646eb41575ef2a0520", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xy45nxWTjjUdvypbSH8iKd4dfUkBVumnKU", + "pubKeyOperator": "91ccf2d9395325976fdb0574e5d20a9d5205ad44480bb7dd2b17721c76e0033dbd06ccba35a655c024d4e031bce57723" + } + }, + { + "type": "Regular", + "proTxHash": "38cbf3408f75b3e755361b34cb3fb4c0ad6a96ffba91d123d549c21d580b8b03", + "collateralHash": "4759cda0abfdee5db7042645afdb9142daa2fa5a8434d543860cfa759e7b92e0", + "collateralIndex": 1, + "collateralAddress": "Xkb9J3SDBH8Lau6bjZ7HzozoJsqKtpm2FQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.115.139:9999", + "registeredHeight": 2053144, + "lastPaidHeight": 2126780, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbfWWRwWxoSRTzoVeEP4qKRcb83ewY4QUP", + "votingAddress": "Xn3xVLC8fvpvhpe5zoit8cnCUbStb5Vw6R", + "payoutAddress": "XmuCkJz6cJiQZKUHK7QLQ5qGGXs8eRzQ4x", + "pubKeyOperator": "82768a7d4876e72319d824ab3cfb63bd8d9acd51a2b666d2224060f395bc584748171b4a61c962a6fb490b0efa82b811" + } + }, + { + "type": "Regular", + "proTxHash": "5d142f257e9a1ae0347842579a5ea744731e41b2911910441decd3fa0903ad87", + "collateralHash": "18f89da342b9645a9b56ee3347bae1391026fabef3924f5f99f921bd4e06e01d", + "collateralIndex": 1, + "collateralAddress": "XcyC3YJfMh4bsXRpsPdivkhzMNoL8DqbEu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.8.71:9999", + "registeredHeight": 2053154, + "lastPaidHeight": 2126790, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy14EzF8n3DpTScEhATm5dBvBe1B13kWm3", + "votingAddress": "XeWG5msHiHkKJgkDmFsKJ4zqWMGQdJzxUe", + "payoutAddress": "XcyC3YJfMh4bsXRpsPdivkhzMNoL8DqbEu", + "pubKeyOperator": "90e0623a11b523e643cc4e83e5fa17be6f2347b826d02a826c58bc327da245f8cba24b717bdbdb71dc171fca243a9a44" + } + }, + { + "type": "Regular", + "proTxHash": "125c10b837535081735281606637274cd30e6ef9f127dd5f823115423353de28", + "collateralHash": "444a40f14941e5218274c2aaff1303f56d430cbf5d0a0f168274c794805fdd03", + "collateralIndex": 5, + "collateralAddress": "XgTxksBbs8QkCg44aHR4VBbEeAvcJzFrzi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.109.128:9999", + "registeredHeight": 2053537, + "lastPaidHeight": 2127247, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm41yStyxKe8XWXmRdYc1YQ47DVAkesmrq", + "votingAddress": "XvvZc8T5WAZrGTmtKCaoFx1mB5LEt3GoCk", + "payoutAddress": "Xqa1Ku6u1TsEMLD5NMuyk8Nnc2DHdfMvvE", + "pubKeyOperator": "aa4c63ab5c1893e15173dc4ce5029e1e841006c87f007b8a128d45770803aa2ec415e5aa0ab013022c14484e788782f2" + } + }, + { + "type": "Regular", + "proTxHash": "8247950b7ddb02641ff6292b689592d0a3d210f833cdd474d95f80e8e0ebf0f9", + "collateralHash": "f9039cf6343367dda7ec2aae068589273699d4960b42ea7393191570cb9265e0", + "collateralIndex": 0, + "collateralAddress": "XnbapaZbgEB2KbhVAztdbxJvevMBQwo5Qk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.140.167:9999", + "registeredHeight": 2053645, + "lastPaidHeight": 2127345, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpZq15pkrBuBfT43kicEaQp4fGUsS37sKj", + "votingAddress": "XjVhfzHGqABe6VgjxPnufD3vu1TqKhvCgK", + "payoutAddress": "Xop3ZqWKAbmJDrnFV5z8TcQvNqaAnYfRne", + "pubKeyOperator": "806763ba097d44106d3786c0f1f0aa6c313bb04d87307fe020cc795ce468d09ae6e67630c30a15f0f875fd6185bd703b" + } + }, + { + "type": "Regular", + "proTxHash": "b55da16cf89762b1d8ea69eb752549ec4610ebddbea210c411deb1250dd9d38c", + "collateralHash": "1d42be8180a8c47c43ff6931ef0e3bece8a537238c40db63459201d6538de3f5", + "collateralIndex": 1, + "collateralAddress": "XpZ6Q6FfBbz2Fa9kpctzStPCyT6S5px58y", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.59:9999", + "registeredHeight": 2054263, + "lastPaidHeight": 2128814, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2102612, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgnzYusZ7UEJAWm2QDPRJT3dJZJF5DapTw", + "votingAddress": "XgnzYusZ7UEJAWm2QDPRJT3dJZJF5DapTw", + "payoutAddress": "Xh1d7r3MjsWDprTP7Bo9Y8WTymPtrpa78t", + "pubKeyOperator": "00f03f3d4d82631f5fbad6b6421ca08f4e65b7ed46b435cf66334fc4ed4944ed641bd7e0d7466fab72b001def8e3b96c" + } + }, + { + "type": "Regular", + "proTxHash": "c76809be2d86f7e4c5e9c736017a8c2961a29a5e0b8e27594483b071118228d1", + "collateralHash": "43a448b000e109f93d4c0fb01e0a0ecdf0d06b39d014e40865bfe7f444546372", + "collateralIndex": 0, + "collateralAddress": "Xb5vjADmvuXCEaNXAQaeLjTDpbNaVQFaZP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.12.1.250:9999", + "registeredHeight": 2054539, + "lastPaidHeight": 2128332, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xf6onX6MnMRjGgCzCx8E8ML1g23QvdaNR5", + "votingAddress": "XgPHXxVvQ9jHg4mTqWUYmmjdZAWquT9Fsv", + "payoutAddress": "XwbY9hNP9rQ219zZrCpGaawurnK3292tpz", + "pubKeyOperator": "a2315111ef065beb1760ad8ab9994ee78378c4d656711023a087ce4972a23745136ab60bbb2ba393890db6fc54f4540a" + } + }, + { + "type": "Regular", + "proTxHash": "3c24921eb673ba62eb48344f83e5f9d3f7c97f2a52b15e66a559f22c792fb205", + "collateralHash": "2e683376e8dc3a0ed586096f6d61e510a28de23aff320f08ee53ce3eeba6fccb", + "collateralIndex": 1, + "collateralAddress": "Xy9T5HnzEhqe1ZAhR7V3rDBMReuniVHsrc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.212.210:9999", + "registeredHeight": 2055549, + "lastPaidHeight": 2125964, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvcThctPfv92xw9Kuda6NBPfgwmRyCJU4q", + "votingAddress": "Xbo89KaeAcFy6qB2hchi1as5jrTRd2CvyP", + "payoutAddress": "XgMg965QqFs1H8JbimUydQJPXpR1QPaqGR", + "pubKeyOperator": "a4f0c53f8d996e716c81b0a37b7d3f224888e05cfda2dc4e7dcb7fcbe3b380953c58be7cd836f3256e64dff39f50384b" + } + }, + { + "type": "Regular", + "proTxHash": "932d373f6098c2556500aaad9dc749b65c9b11d1000dcd58fc37f6149b8f086a", + "collateralHash": "dbeed1de28d826557cdd97baf146afca1781306b3b4e014a72e286cd5e6a94d3", + "collateralIndex": 0, + "collateralAddress": "XoQhnBwzRNx4Uq2QG67LmQG93suBBxeErb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.38.175:9999", + "registeredHeight": 2056085, + "lastPaidHeight": 2126430, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbMR3RzHr7sLyWtD84S458F4wvjYAgy8bW", + "votingAddress": "XnhTx3LTTQu2HXgkKxy6QKCnTH6M6dUN8S", + "payoutAddress": "XuG3AaMTYEzhu8dKZz4d7JmD86hiivRzYc", + "pubKeyOperator": "a30930b543669edfcd610632e7dcc6b31ce7162528e153b0aec3b173ae42460eb409137742822bffc5d40ceb8a79ae8d" + } + }, + { + "type": "Regular", + "proTxHash": "74bfe6591243aca33cd810b18d044cf445fb38013216ca3ebf937ced73a29a54", + "collateralHash": "2c0d8d24869b67afed8d986b54cfa670ac64175c38612600eb275b4109c37c01", + "collateralIndex": 0, + "collateralAddress": "XtwNekzbanf3QHVxZdbhgpLBQEgTGtwjxh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.57.12:9999", + "registeredHeight": 2056670, + "lastPaidHeight": 2126931, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb8aEGbHhB1thGvmpYYAeuzviCfirJqADM", + "votingAddress": "XkEDioj4z5EQcvFFR5WqQSvepHXXH3PFXX", + "payoutAddress": "XeTFTN7zvWfbJhemJgyrV2CiZ7XY3Sikso", + "pubKeyOperator": "a34285d618018c792524275768fc82c24c08b57eebdd806dde040c65bf9ba97ce7a04a860abd0a6b78df4dcb0eb8af31" + } + }, + { + "type": "Regular", + "proTxHash": "a764a261d271b6f59d0963cd202743cd031e7546e57e16a7f76c99742b18e096", + "collateralHash": "1812087e5068dad042ee843169bb6ae1f4750714792ba8fa0c0e2e28384efb2f", + "collateralIndex": 0, + "collateralAddress": "XsR7YKJ8GMDjESE7iscBC3ThGWwRKT842L", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.140.58.30:9999", + "registeredHeight": 2056671, + "lastPaidHeight": 2126933, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrWf98gej3VEgoCYTBoGFYJD3vnfYPohpM", + "votingAddress": "XpLXza1Hnpa4qqZKS8XKeefdTub6Km8yCh", + "payoutAddress": "XvTcSfgwpVR8szx2n7LUQA56fGi2qMANjc", + "pubKeyOperator": "821b7458587d49bfad32c078a15c701607781cbe2317f16f2487bf44d66e1e6d0a64a7833a93ad1e2c4458313174d37e" + } + }, + { + "type": "Regular", + "proTxHash": "d88bbb0f5c1e82270e8efe25b7b35231dab7e5ab3a303067d391bf555ece28e5", + "collateralHash": "33c296f7856c40f2c2c86b0a9d7bc2236d4a3bff01744abf803b66cc3dbc28db", + "collateralIndex": 1, + "collateralAddress": "Xgfpy5XZrGURgCcS3EsRahkkpgPRmasCGq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.12.189.12:9999", + "registeredHeight": 2056672, + "lastPaidHeight": 2126940, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsi7MjS4FVEyEzSB8ZSYPaBTW4QX7S6nQN", + "votingAddress": "XwVQosxHptiSMZFiM8CZrjtUj6Xx8KGL9i", + "payoutAddress": "Xg3xj8AY9NiTf9wmkfuWJPY6qZrGKejXV4", + "pubKeyOperator": "a7af2723e97ca30fbbf8a8869c61e0b793fe262efa5fffa420f09df2515dc2fdbb76ec4b233b85f9aab9baa7f05907f3" + } + }, + { + "type": "Regular", + "proTxHash": "feb254a8c3c0d01b772e7234883b73edc308839946b4e3072c726a63eacf5f00", + "collateralHash": "47cfbd56ea94d6f41c7fb9cb8d1d80dacd4b19a937311778a6a605d122004130", + "collateralIndex": 1, + "collateralAddress": "XgHnFnycurm4Hrw7bLLS2w2XBx2kVS6cxg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.212.202:9999", + "registeredHeight": 2056675, + "lastPaidHeight": 2126943, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqfW5ABLkCdpc3xAwqPomfSB36yBvjTgBE", + "votingAddress": "XetpZv15FeHtihQbx5MJjd6KCeCKDMkwXu", + "payoutAddress": "XbQz8ZCAkTbpjJPTbYzuPKiTHyPkkrx6Hz", + "pubKeyOperator": "84356c673341fb8133c18c9db8c11ac4e42820a3280f5464cf77566ebc41838ca6e69602dbb8955f635032f24fb5d689" + } + }, + { + "type": "Regular", + "proTxHash": "12f6e58291131b78b52bb708a6067c67004e738a16145387ddfc94a32b2bc19c", + "collateralHash": "01f7eea51636653be67aebe70ca0ef25bbe6ba48c287978dabc339c3026ad768", + "collateralIndex": 0, + "collateralAddress": "Xu6zbQHhQSDwuenM2MVPokykTf9aJJ84fm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "103.160.95.71:9999", + "registeredHeight": 2056819, + "lastPaidHeight": 2126930, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120884, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XapGVkwqVRbQTrzkyquvHR24eH3zhCapoQ", + "votingAddress": "XiK44ZtBvdKJ5mCw52jFjsh7Ci3zFUghSF", + "payoutAddress": "XqSkVH6RkrPysJHMo3GZBXBSxmHTsN1ryn", + "pubKeyOperator": "9934e520d30bb7bd36a3c26439191664f1ba79deded6d3e4cb14a6dd508b2076db747108387f21d1f2512c6b39e17054" + } + }, + { + "type": "Evo", + "proTxHash": "03e0ac65173d68075ce818dbf01c7b46fc8e9b1d242a3a4bf732ae6ce6471a80", + "collateralHash": "660d7b2fc52631431b68e5109a93882ba42a58a4ef611236499fda6297cdeca2", + "collateralIndex": 1, + "collateralAddress": "XksWzwwF9PtG78edvTACdRF9A3aWy3F7HQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.83.53:9999", + "registeredHeight": 2057106, + "lastPaidHeight": 2127529, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2057213, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xj1fLX2PQW4rg9GGf3EGC6eJKpvKyns49c", + "votingAddress": "XgoBG3jrV5LxnNqhD6oeWqvATjS2kgFdGD", + "platformNodeID": "1a872dde6185341cdc5c16f5f5a6b6d2f328ea77", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xc4fQcc1WoFym2JYhenSwDg1FgjTueFopE", + "pubKeyOperator": "86902fd542d9e3bac4740332cea5ae174e7df795e5dbd018767809b2867a69a24117f665b12d7279c41a4dcd53233086" + } + }, + { + "type": "Regular", + "proTxHash": "9b44b4c082fcf45e99d1e306801f632f625c12cca8556e3cfe8aed6f211706b3", + "collateralHash": "824c3a72803ec619c9a545754159d89fd484c6d1e21b0332506f52bdb0f40b7a", + "collateralIndex": 1, + "collateralAddress": "XttoD6SFmze9FPtKWnPTyWZjtJJfmPWSzm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "81.0.249.239:9999", + "registeredHeight": 2057155, + "lastPaidHeight": 2127477, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu1DNEomRHVxYdn5ixesvcbcaHDZuih2g2", + "votingAddress": "XyfGyTR5x4pckLK4dYPerJ71dzBh39xVxi", + "payoutAddress": "XbeSvHwg3QT3JzDfXugRng5pQHKZuVzynm", + "pubKeyOperator": "91810c3707fd9d33aa64e377eba2348cd4d86677cde7c933afbcca89862f58a4bc75703ca4651d58a68cd58c2f0f9666" + } + }, + { + "type": "Evo", + "proTxHash": "a20f3edb99394ad9d93997567599baac88abe28992276b602bea48d5eb4fc2a9", + "collateralHash": "1d0bc817f79c7c224ca44c40e8a684536e037876e1b87c69bb49011e03ba7cb8", + "collateralIndex": 1, + "collateralAddress": "XfYvyFfjLMvoMjGRppb3Me7PPnU8meNMVh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.155.143:9999", + "registeredHeight": 2057824, + "lastPaidHeight": 2128212, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdX651iV4HzSYib7D3oygqkthTWyXGsEFV", + "votingAddress": "XkqZikc7NmeWUtMYgrfVWkATPwCZtmiWQp", + "platformNodeID": "46941c00a9f138be1072184f6431e5110e32ccf4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XuJV5jqjpPC2f4wMS6b8cg2mteHbFJR233", + "pubKeyOperator": "802afc55f52e920139403433c960ea72d9cf5bb119ab8bcdd715f895fd1a367036cecbf8b85970f317e54895c152218d" + } + }, + { + "type": "Evo", + "proTxHash": "e4bb242753bad98939b0174a1b3354455e57a944abe77e8cc208435ad68cb8a7", + "collateralHash": "3f3ebcafb60d4cda65a0b2b2897679f36e5dedb7f6edbd179ca846bcf6591964", + "collateralIndex": 1, + "collateralAddress": "XfmQpodGj8ockD6K7vNWyVf8tYM48tkuXV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.66.223:9999", + "registeredHeight": 2058137, + "lastPaidHeight": 2128514, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xr4rorMRzCq4yeiRZGzxYeM34XA8cbAoAp", + "votingAddress": "XdBZ9LSzKkWSFWEziVCKLihhAganfWefQa", + "platformNodeID": "6d9c81386f0807c90ccd42e735c0176eb64163a8", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xswj5efjgYaz2QX2Yb734bdg6DBUMznpeS", + "pubKeyOperator": "b2136fc6e7f341d933798b0f921936bf2f2f97036604eef84ba04564db4a247d7cedb10fde22f76a46f434c44fbafe4e" + } + }, + { + "type": "Regular", + "proTxHash": "c7537583e7b2ab80973cb1dcb8d70ecf14898038cc92a6ae6f9ffb5281574630", + "collateralHash": "5be91b5ec042e652e978b2cc8a6d55ed75b996b02eede31d333f5e5524e994ae", + "collateralIndex": 1, + "collateralAddress": "XmtZg9ArohuG35odxCf5jMn2o6GKcmvXk7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.29.199:9999", + "registeredHeight": 2059091, + "lastPaidHeight": 2126100, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnqro3FJ5EcaUfZu7wwLT4MR7RC4Xjwszz", + "votingAddress": "XhnAUzSejWqyyYQdEwecmswteJnfYYdoCU", + "payoutAddress": "Xbp1PJwKE2fG8ZEVWampsnfeX9qjCBDqrj", + "pubKeyOperator": "93f29b1ca6222b39e35b9fc398798e55ea290b25ce1bdee513a84dfe370e506a299894327240ce5588ec413daa84f8c9" + } + }, + { + "type": "Evo", + "proTxHash": "c0b811bbe7bad3580506b12ac92f6acac73f35447c6f64685f4daba465be699a", + "collateralHash": "5fc502662e4b764c0ef9345b4983faa09b24dd1a9a845997a03c0ee52f6fe2c3", + "collateralIndex": 1, + "collateralAddress": "Xy9JNKbXgx4Y5mCZMx9nA2F248LWvoKPcz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "50.116.28.103:9999", + "registeredHeight": 2059091, + "lastPaidHeight": 2126239, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128824, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq8sPuptJGb7CS4mG1ns2DPUQUcETvjWHN", + "votingAddress": "XoFNbVexnnKYhBxMJj5rnPRFtoH1pFQ9Jr", + "platformNodeID": "6911c65adeb15823e08246e280289f093c6b5312", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XgJZPQasv8aT5FJPWdMGjpUyJgTSLce7rT", + "pubKeyOperator": "9314c154f8c763ab9d6301e7affccbca4e63fc2454c10643e58c9569c6936c49ba521ee2320dd7e9f5b2797a3e03621a" + } + }, + { + "type": "Regular", + "proTxHash": "effad73393cee69d3b490fb56ad1939c603f9afa1135a8704dfcb2456f2ed804", + "collateralHash": "cc54363fdfb179b4cede4c5775d3ecdb83a1b522e1568885bdeebd42d340e2ac", + "collateralIndex": 0, + "collateralAddress": "XjtivemkVJXYrMDTBHeCzAvjKeEuYDDkjP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.121.134:9999", + "registeredHeight": 2059094, + "lastPaidHeight": 2126105, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcaYT1yconQKFm9ZEvmKCms9TTs89vxSQw", + "votingAddress": "XniCfLmG3U2t7u5Q596KmJaJn93umCZMDj", + "payoutAddress": "Xbp1PJwKE2fG8ZEVWampsnfeX9qjCBDqrj", + "pubKeyOperator": "b1c1bf5b908d9f79203be2d3498ca7d8312c62fad8f0ea30a6c9bc97684133471c632696020277b0bf6e28e55aaa48d5" + } + }, + { + "type": "Regular", + "proTxHash": "a0975da9ad342a40d68be5cf2dafe63e880b44896015e760fb55c01091dc607f", + "collateralHash": "31465836b115fca6742738c8103acc0ebcea8e8fd9767639a3ca2c49d31b3d92", + "collateralIndex": 1, + "collateralAddress": "XbfvW5m7uRjQg7acQdYsN3DgE7QGSvHoje", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.243.142.33:9999", + "registeredHeight": 2059097, + "lastPaidHeight": 2126109, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuacYWVcyLGC1rwN2NYP2jKiqUsNrBku1p", + "votingAddress": "XtQNSj52bcFnLQXNVcUBvaXMqjzBX5zTuR", + "payoutAddress": "Xbp1PJwKE2fG8ZEVWampsnfeX9qjCBDqrj", + "pubKeyOperator": "b1deb28460b8011a8e0fbf6b692f1e81000d66d69e6d847a14012bb2c8e93c225c9e41fe8836af8ce78f7307d4be03b5" + } + }, + { + "type": "Regular", + "proTxHash": "b17483082e8a45b489c3bf913d881e79fec80bcf1f4e720ee3f56b89dcc05631", + "collateralHash": "045d3b4f8d613daceccc857d15d5ff786cc0dcbcd24389f5855efe21f1a75690", + "collateralIndex": 1, + "collateralAddress": "Xr1CmBLdhEkK225KDLf36fUs71JZmzxMFd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.217:9999", + "registeredHeight": 2059102, + "lastPaidHeight": 2126113, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxa3ScnuNnmUnRzyeqALhZFWYostYE9LTj", + "votingAddress": "XqfXN8KYa4Tko32UvzMoBmHhe7TarGWmRv", + "payoutAddress": "Xbp1PJwKE2fG8ZEVWampsnfeX9qjCBDqrj", + "pubKeyOperator": "8031cc5faddcd7258bf390c48290c771f7fe522b7830bc69c69d2d6a9663b4c916a09c3535c44b177508aeb5d7343002" + } + }, + { + "type": "Regular", + "proTxHash": "3c21a81af32a9ed044900b90548d751deb2fc043925594a856214b96d24f2bc5", + "collateralHash": "e5f426ba8d1601a34fe54e48c480b4d8d83edfb2812bc08e96a7d1879bbaf0f1", + "collateralIndex": 0, + "collateralAddress": "XjamUqvP1xp78uMX8mpH7NGhVbTwmrg7Lo", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.175.71:9999", + "registeredHeight": 2059112, + "lastPaidHeight": 2126119, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuWZLAJnBnSGKzw95bkcYx6Bk8dieroH57", + "votingAddress": "XbjZwD2KtzRu4ZV4durubjQMhsQAbWnMie", + "payoutAddress": "Xbp1PJwKE2fG8ZEVWampsnfeX9qjCBDqrj", + "pubKeyOperator": "85c4227da8434eef4d3b9ee1cdbbc536c8834625c3dc55649bab2f57b77b718232819a90c8b1aea5aac27b44ffa2145f" + } + }, + { + "type": "Regular", + "proTxHash": "bd117be08f77246d417ef12504eef539f728409f5b4bc55a6444424e81d7a214", + "collateralHash": "62917805a62f9059ce1b26d55ca5116bbe5523100e33168a165390fdedd507ef", + "collateralIndex": 1, + "collateralAddress": "XeVqcCoRt83Sz6A8Y4JkQGRpwFG2bioEEV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.105.203:9999", + "registeredHeight": 2059176, + "lastPaidHeight": 2126169, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwbEiCqgbAvoDHH2XUsGiDvSzsWydRhCSW", + "votingAddress": "XwbEiCqgbAvoDHH2XUsGiDvSzsWydRhCSW", + "payoutAddress": "XvWARb9qEnG8QwpSng7zW3AkHf7zHkMPbb", + "pubKeyOperator": "986bafc50655399d162fe211c73a4e5bcf2899fffa163c06b5063f8b0004d220c123d20cf15a0d4a5fdd3b326917f60f" + } + }, + { + "type": "Evo", + "proTxHash": "25a8b283b81a0c3b2b3462cffa660b19ee6fcbfe116013705c498fed1bd52637", + "collateralHash": "3fddef46c03424bc687ed8f4a274d62fcbfc11fb9a9ccdbf4bd79f67f8055077", + "collateralIndex": 1, + "collateralAddress": "XkD1Mcck3Mv9bHFU6LDqr2KeEew1d3kcyF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.172.66:9999", + "registeredHeight": 2061599, + "lastPaidHeight": 2128350, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2068122, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiynHtewRhaUkDU7NUE1Fi96sHBGDfBG82", + "votingAddress": "XfmXS5SAAgT4sYrMgPD7rSzUNyDfXJeTA1", + "platformNodeID": "08f76ab6c1ca63788e9597730b4232429d1f35c6", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbAiSsJ4jjmtVDkodUhSKE9Y55nmZT8q2v", + "pubKeyOperator": "83840081a94180b346b332bf7a454eb1d49ea6a09db93938d0f63348962fc0357d0c728d173b398b3a9047053a43e7df" + } + }, + { + "type": "Regular", + "proTxHash": "8b834965ac7cf0e910312d5991784a3b1981d189daa4ca5793d7047b7c6f82bb", + "collateralHash": "bacf90cd87353f1010d111da0b1e1671395ed3a5c923143334fd68baa11134ff", + "collateralIndex": 0, + "collateralAddress": "XumCpRpfAf78eDU2oGtQjJCqDqcf9GPcn5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.71.205:9999", + "registeredHeight": 2062952, + "lastPaidHeight": 2126502, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnjjs2qawx2wgKN7XQuHtEKeTMNqu5a9hR", + "votingAddress": "XxmNZPFf59DaGWpN74YzWgK7SMZms8UBVY", + "payoutAddress": "XpzTLMqv8ie3eigFtTpAup9yU4BV1ANBSe", + "pubKeyOperator": "81d7b132c4799130b300038e3bc45a8ab61a9beefb369fe8f68db5703a3a3ae40fac4667eb91646df8e37611403d0cbf" + } + }, + { + "type": "Regular", + "proTxHash": "836ad0cdecf42281a2503462d003f278911f91d27d8cffe8b2e3ad57e4f80a95", + "collateralHash": "93c08539240636275772ea1c32fff55345674e076bef33715622d86d092d9a82", + "collateralIndex": 1, + "collateralAddress": "Xxksa8BQTnLnSqUPz9jq8rYGbBpfmDMRGT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "216.128.143.17:9999", + "registeredHeight": 2065080, + "lastPaidHeight": 2128635, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdSMLFqznhx1JikTfzEX3d5Gkf8xvMk4Sv", + "votingAddress": "Xdg8xBRJdo2ru9e3pbqGvsef2UqQZcTgaA", + "payoutAddress": "XyQkmasURmiurpmFASg4G1PhuwUXmFyprJ", + "pubKeyOperator": "94d6a918bf4a35fed83422d0b95770fc9798736c820634e509b0127af2a3209728133516c219f73413979c4f1c7d28b1" + } + }, + { + "type": "Regular", + "proTxHash": "e152d2588be71911edea0d308e787e7e19330f888fa9c75f3290bb48c6d03a1c", + "collateralHash": "56a4169fcf77132603560fa1d5ba5d507a67172b5cfb322bd3389a8a5da62014", + "collateralIndex": 1, + "collateralAddress": "XbB1Ae87THQsVRRC1mea469YvFEeCGpa8G", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.198.42.189:9999", + "registeredHeight": 2066100, + "lastPaidHeight": 2126317, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcVo9b9nTDzE2aQ5L7A9D7rsRVh3G4wUxp", + "votingAddress": "Xf957tyQkZbHxXxLWRZXgyQkMCvy3AYZ8x", + "payoutAddress": "XbB1Ae87THQsVRRC1mea469YvFEeCGpa8G", + "pubKeyOperator": "8e945a6af576cd9efba04f106d1926c97b822b3208c26d58692275fc928a8a912042706b51b78f9154d92f0e3290080a" + } + }, + { + "type": "Regular", + "proTxHash": "69ec16c416d9c65714190e3bd902cd353f8db71350bc07c892e291dfd493a3d2", + "collateralHash": "4ba002f0de8b5db26531d44aa82d7c12744b7de2dee127d114d3cab5f0772bf7", + "collateralIndex": 1, + "collateralAddress": "XeShtEMewNeFCwf7WDnZMjzxUdmpaQuZhu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.190.48:9999", + "registeredHeight": 2066125, + "lastPaidHeight": 2126335, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsGhDy6ihRdpz5DGAq2B82yUcbgeQSahPY", + "votingAddress": "Xf9udAhSKBrbQAt81VbuiVNPenbCpS2zcW", + "payoutAddress": "XqCSwsG2RNTdWSFiNk8awoMg6SgGwpcC5U", + "pubKeyOperator": "9139b6836493690814527a677ed44a1b1a6ec4c3c1005973926971c837fbb6582da475d9dbae8caf1773c44d8a64055c" + } + }, + { + "type": "Evo", + "proTxHash": "8bc76ca7a979ded6171e6a0bd9bd2a43dfa052e7b54b092d9862db52efe38726", + "collateralHash": "313b46cac4e095946ecc3d73424d1f90eeffba910beba3a016c0890c5f43d13a", + "collateralIndex": 1, + "collateralAddress": "XfWhuK3BJWBcFMqbGy9etcj68Ej2k7b7Yr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.176.165.102:9999", + "registeredHeight": 2066399, + "lastPaidHeight": 2126648, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2066505, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpHMAoUP2V9VN9eQbNparSBuU9468ACcob", + "votingAddress": "Xd9EKJwTZ4DSzXtbmHveWKANRTrEvcx5EU", + "platformNodeID": "e9b9d6ac2a0e664c265c02579ffe4e95a70810fa", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XinXfrzGTyNMoD8i9r5Z86L9usH9ZkY5GK", + "pubKeyOperator": "876aa7b7d10602180233c84bef6edd4a8de51ba0366699efae37db82b64e227bc24d8a57b914d306587b7fd65c00e45e" + } + }, + { + "type": "Regular", + "proTxHash": "2de3be6ab0ebd9de732ec2219b68abdb476bb04e76c90ade1046a2593484be7e", + "collateralHash": "8352ebb4806d175fb8ed7c7c4014851266a00700108f74d7f4d10f8966571f90", + "collateralIndex": 1, + "collateralAddress": "Xbvq4WBrP1zQU7KtUssUjputhghjfvVevD", + "operatorReward": 0, + "state": { + "version": 1, + "service": "146.103.48.50:9999", + "registeredHeight": 2066732, + "lastPaidHeight": 2127789, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2101526, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp5ztZ4W55W2ZukgD942dCYKm9jSPV5v8G", + "votingAddress": "Xp5ztZ4W55W2ZukgD942dCYKm9jSPV5v8G", + "payoutAddress": "Xbvq4WBrP1zQU7KtUssUjputhghjfvVevD", + "pubKeyOperator": "0beadc9773da549093f6995bb9b071ea1a149a45a3345b10b62da2fc2273271b68ecf04f63975d67acace882238e83c1" + } + }, + { + "type": "Evo", + "proTxHash": "db5d1d4ad81f1f735bb6cc2561a9c1eabb1a3cd20395508f4fdb36f70ebd4f53", + "collateralHash": "88052fc51dc4b08e6d884292aaef11065c30570c7f918c1d4ed1671e21681fd5", + "collateralIndex": 1, + "collateralAddress": "Xdm53qEJccb8HZWVaCLnVWULFmA63L1Bku", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.77.99.172:9999", + "registeredHeight": 2067152, + "lastPaidHeight": 2128726, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119439, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeeTCSEBJsM5tLkEWbLXDR7DuXaNpd9iJb", + "votingAddress": "XeeTCSEBJsM5tLkEWbLXDR7DuXaNpd9iJb", + "platformNodeID": "c8870c00c4fcac34df6fabc5fa8970ee35c18221", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b911d701a1d6c11c32414c577e244ba209b1ccab558f188919d82faba5416a3770f6351eea62c78502259c599c2a224b" + } + }, + { + "type": "Regular", + "proTxHash": "a79882078a17ffd760597f074c92e3150bf310d3486aa7648d91f7b433e8e72e", + "collateralHash": "278b1df089d9c46c5d87c43de6764983dc2a65802cb8a7079256c07a092a5980", + "collateralIndex": 1, + "collateralAddress": "XbgRPrezWN7rLmKQJiUrRQ4tEHFBJ8Z9M5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.19:9999", + "registeredHeight": 2072235, + "lastPaidHeight": 2125794, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn4GZfpZ1CQxvt2YAcdNHbhRjfpfQ2UGxV", + "votingAddress": "XrzrXgdggq3DzBD7sQ6RevyTABM2t4DguB", + "payoutAddress": "XbgRPrezWN7rLmKQJiUrRQ4tEHFBJ8Z9M5", + "pubKeyOperator": "a6561e47e39d4a047c60b5fd892a8656282ac05bfdc9569381ad310935b3b785517f8777a545297c706f7ba9df45e58a" + } + }, + { + "type": "Regular", + "proTxHash": "8c6cc9daf12a550dce181c765941b69740df2fe3913ea33486c1148490230d1d", + "collateralHash": "7cc6d8a3fc8c3b3006470c8a159e940ac9539b71e74462930edc7c96efb2c83d", + "collateralIndex": 1, + "collateralAddress": "XxbLA1uyzrzBdKih2sPg64tf53ViFNW7Kv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.39:9999", + "registeredHeight": 2073223, + "lastPaidHeight": 2126618, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc3pidbK5P9ZYCu4xJ9TXHUhxodBcxMY1H", + "votingAddress": "Xf5Ck48L8KrSXHNqWgXMtcF57f4YvQAWT8", + "payoutAddress": "XrRTFbqF1a3GEd4EB8pxnJ1NvAqCvP6P2J", + "pubKeyOperator": "a62734c4897c1bc0b6c2bf3971c3d55f61266f6dd479fe1b622843c4c4997f172cc37166ab0bc45004eefc9c4f4328a1" + } + }, + { + "type": "Regular", + "proTxHash": "15f1103476a45bc0d248dca367bf9fc5c79cf1db810f78be8b2acb7e3ca8e83d", + "collateralHash": "604357d27f5041f6315d86458ee99cee0291817ebf5023689ca6503d92305e65", + "collateralIndex": 1, + "collateralAddress": "XeYaLQ9ExupC9c1g1n6o3tChppu2xvbYu8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.99.82.102:9999", + "registeredHeight": 2073324, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128378, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjnRRqWdwo3UAsFqf8PWwL14iAgiC4E47P", + "votingAddress": "XjnRRqWdwo3UAsFqf8PWwL14iAgiC4E47P", + "payoutAddress": "XeYaLQ9ExupC9c1g1n6o3tChppu2xvbYu8", + "pubKeyOperator": "94abeb22536010f72e694e824247a883173eae7aeea6e9c3c5c183800d14ff5f17e8d365b502f647aa1f40fa52a60c2f" + } + }, + { + "type": "Regular", + "proTxHash": "ec4b08435952bda3d9fcae748370ef0ee2b19293ada449e012f3e7c31a826816", + "collateralHash": "c5ad34ef64ea70f359106af2e7594aa9b3f0aab2969247c4f85a837fa2c12695", + "collateralIndex": 1, + "collateralAddress": "XgR5r4mTzC4TZ8P1CkDHeYXonxZJZFHZzY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.225:9999", + "registeredHeight": 2073921, + "lastPaidHeight": 2127328, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxtigpqgiJGYMsqUjVj9pCr792A3Jx3S3d", + "votingAddress": "XmBHSaPK3TqqWsnBtetgLjyix89YA5EUmu", + "payoutAddress": "XyHrxWcLxhLbT8wr2rQ98HSDaPaBB3f58Q", + "pubKeyOperator": "91cbcb483f1fe183a0728d6576ac0566b3adbac8e7ea9e1be32da104a40cb108245b9dc9e99ca72cf4e1e33c3526ba68" + } + }, + { + "type": "Regular", + "proTxHash": "acb10a2cad09133fec621aab8622d45adce12d062d94acaab536d52e0d1cda85", + "collateralHash": "a5903108239d9152eff23bb2c842e103f5d1fda3fedc60d75031833457f661ad", + "collateralIndex": 1, + "collateralAddress": "XgJqXGtwAc8Jv7qDboqPkzNGtU7GPcBVmL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.97:9999", + "registeredHeight": 2073921, + "lastPaidHeight": 2127329, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnp6yTBBiz8zt4Cjm8i2rSP1Et4cS3H43Z", + "votingAddress": "XpGqrGUNDQFusQqXLkGVfn51JpXyDtRoXV", + "payoutAddress": "XyHrxWcLxhLbT8wr2rQ98HSDaPaBB3f58Q", + "pubKeyOperator": "931064c0b8fcadf64311c68aa79b843322d286d7fa8a7306855c84ad0ccce843e16627e14dc9248f9ad6a9acd9856caf" + } + }, + { + "type": "Regular", + "proTxHash": "aa74bec90951e8a662fd57821bb734b3e846a60ce2f6de728b2edad1cff19947", + "collateralHash": "5fa6f4a2ecff7c5f9c4f6d1fc35733722860451035d3c2e0761640ca3405d692", + "collateralIndex": 1, + "collateralAddress": "XisZk3sexZXLfqwiYS2LujwB8ofoqHCQja", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.132:9999", + "registeredHeight": 2073922, + "lastPaidHeight": 2127331, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfhfejmiEEpKop24ZTGWK8NVnTd1iqp31y", + "votingAddress": "XuNjCNHftkMAB27DZCHeYFFx8sAmjJ5SMZ", + "payoutAddress": "XyHrxWcLxhLbT8wr2rQ98HSDaPaBB3f58Q", + "pubKeyOperator": "b856896e05bcd46437326bf784406aa2f93a3efcb807f05792a41fb11af3108c52dc619821a3c7c8f980cbc56e37869e" + } + }, + { + "type": "Regular", + "proTxHash": "49d12fb8ed4861dd76e8caac6b35409326bdc41762613824fe64cc7659c8f200", + "collateralHash": "ffd5ae879398d61c5893d1360ecc3a03d1464c2a4cf06f9ca3976507aca1e024", + "collateralIndex": 1, + "collateralAddress": "XbWC6JRW67AQ3NEGPhDA7AgPnFnjUqeiUi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.190.230.104:9999", + "registeredHeight": 2074984, + "lastPaidHeight": 2128437, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoYV3EsFyaxYRbEdwMkxkJZxrc7eV43B1J", + "votingAddress": "XySk7u1CWaNS1zTgcf6ZGiPEEHcDhxBMj3", + "payoutAddress": "Xd2YjHXbSppyeT8qVidPFzp5Rotxx4kMP8", + "pubKeyOperator": "9458189d5bc8d17634defd12e5095f2d8bf93dfd2024294e0cec4e5d62f74cc625eb0944c9663541cc6746529d25a0f4" + } + }, + { + "type": "Regular", + "proTxHash": "7865cac30f1111f49edae1c4462b262b91be1f68f0c8ec2fb54d36354c04c61d", + "collateralHash": "810be383a99e1649f9cc32225b91c707d633f1df66bfcd43a20cd9109f0010c9", + "collateralIndex": 1, + "collateralAddress": "XcdxHgm3MFEf4SfgmnfFkD5VF4mTEsadWn", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.232.180.228:9999", + "registeredHeight": 2074991, + "lastPaidHeight": 2128444, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs3dzvd2FTf77fr7WBnYDjyyENKY9YGkpe", + "votingAddress": "XyH6RMFaDttySirMBaoaq4ZhXWsjak95nm", + "payoutAddress": "XkA79p1tbQC9iEJgRexeJedmhuUCcgbvBs", + "pubKeyOperator": "aea66c08e6bb0c8c5271632bd644c075a934df449ddf98c16689c1d4e63fdf6c1b2cff456f67ac678cc5cdf5dde33266" + } + }, + { + "type": "Regular", + "proTxHash": "e32ad0c733e6877b4f354300f5615dfa461282f426aff4ca7a5a053fda64ab39", + "collateralHash": "b219ea1334d13ac44230714e2dc6ca2cdd83feb07eb1a1b869793ce7ce35dd9d", + "collateralIndex": 1, + "collateralAddress": "XkoTYcRgsarNVSMJMiDQMiZmfYgf8saTMP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "128.199.17.8:9999", + "registeredHeight": 2075088, + "lastPaidHeight": 2128546, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnAUBN136PFcj3GbkEk7HfvGSuvgifvLdm", + "votingAddress": "XszRPDVmsdJsD45vEwWcEYb6GA186o5WdW", + "payoutAddress": "Xt5iU9bXk1wq9SwS1sR7TTk9txvpwX3q4Z", + "pubKeyOperator": "a4e2b5ae146812acbeb254fbc6e5167e97bd8b0f6bd278151d686e04e67148073df2dc1fa783edace6a4835ca303b92a" + } + }, + { + "type": "Regular", + "proTxHash": "b83612423993b9f125431e90c1c01da5c4d5e31923e0976141073c4a9d566340", + "collateralHash": "3a54299ef380244cb206823fa895f187fc76f528fff10d92d8f7373c3f889965", + "collateralIndex": 1, + "collateralAddress": "XuVQN6itDqsecbtS65ckmappLTUng1DGzW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "147.182.150.185:9999", + "registeredHeight": 2075098, + "lastPaidHeight": 2128556, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcfVKtGgvmanWejC6A9RRNAQYyQeieYbX8", + "votingAddress": "Xvx8UEHDBU2t4bXmfXYQwT4S1aSVt11rBR", + "payoutAddress": "XnG2krASNXsGUVuYmTMERJSHvQEoW6iBA4", + "pubKeyOperator": "a9757514daa4cf1827031454a26f9869feaf4abfde96794338486bfe4404d8ef970199865ee018731792ee7dbdc97135" + } + }, + { + "type": "Evo", + "proTxHash": "2f91eb46842dd12afb2f84418000ccfc583942f52a3334a825519c59cbd3419a", + "collateralHash": "65a8a1205dc00099aa0fc1611d404b16bd837e9ff34d296e94e6aaa7acaf6769", + "collateralIndex": 1, + "collateralAddress": "XiffynaDn1SpvYTjuu3UDJCoDPnTKb2MNm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.21.145.147:9999", + "registeredHeight": 2075597, + "lastPaidHeight": 2125786, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkpwdGjudevywCTrg7ZwStgqyejdTtof8Q", + "votingAddress": "Xf71DheBKN6Ch7jtHK3C6YmpzfMuA1ttUu", + "platformNodeID": "8ab5d312345ca8b657722edff40ca65101847034", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XntxaZctDRbcA9FTdtLXk1eyjqJFyNooxK", + "pubKeyOperator": "b8296c36e58a4227475e1022961008581c15469b86d00396a882c3a9d0918352e845622cb05c91c00346aa54711fefc8" + } + }, + { + "type": "Regular", + "proTxHash": "b029f5a707f3758dd2eda1513833e5bb3ebb82bea7f838e92c36cb938600d409", + "collateralHash": "80e6597c0db9d2c64f5ab1ee84431794f01b9869dd4ce85db0565e39029f8056", + "collateralIndex": 1, + "collateralAddress": "XoU81ts7gaXfpS8FyE3syJvHjx855iGcv5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "134.209.30.176:9999", + "registeredHeight": 2075985, + "lastPaidHeight": 2126101, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcvrgA27YEtpVFx9aC541AGJNhvnc9T44F", + "votingAddress": "XhRjmxSeeZWXt8Y2b39aUVJsymxVfq8t3f", + "payoutAddress": "XjqA9RyBLAAGrkgNxaJAmrJF7DWfs1a1cQ", + "pubKeyOperator": "ace827ceeff04e73aa444e59d0e41a242af7d93d5813a69d746a0af69bc5dc5f793b5940c0d0eac0cb2c18a1fd5b4557" + } + }, + { + "type": "Regular", + "proTxHash": "aeb85eb056a1d10a0d8b59668087dce2698aafb6388cea09d4ca8fedd00eb6c7", + "collateralHash": "e3f712aaa3cff540cc7c2ffdb55965451483afc7dbb17bb7212d988e21f4a73a", + "collateralIndex": 1, + "collateralAddress": "Xxv9t5v3c2gkB8R2kougCw98s3DK33ewuQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.71.135.102:9999", + "registeredHeight": 2075986, + "lastPaidHeight": 2126102, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuDBTx7tycqD4H76xeVVEzenLyuyFd97ur", + "votingAddress": "XoDkw1HbUwvzNfuLk55n5VWQ8tt1p8KnC9", + "payoutAddress": "Xk8LjbN6YFDuyypgzNcRxBbpCtv62CbvKr", + "pubKeyOperator": "8b2ebc21bddb1eb9ade752ffda8b110df0779cb654ba5318b0bbe5406829e65281093a9fdab8dd5d5b72a2a77c1e7083" + } + }, + { + "type": "Regular", + "proTxHash": "bd8920955f93d5a9a311b9dc4c8edd9c8f0b82a918ef8f2b2066491a50f2690c", + "collateralHash": "7e2c31a69e0cd893fac0ea3de14f272c34fc1be481b37fc1eb09cd486608ab69", + "collateralIndex": 1, + "collateralAddress": "XxHqFRx2g5C4MaEwgwWepj6rGVrVM1Nkj9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "164.90.234.130:9999", + "registeredHeight": 2076008, + "lastPaidHeight": 2126116, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiTXuUXFC1MhMDTaSSE8j2XhpdML2Q3YTG", + "votingAddress": "XmBVqEwUYexG61ARA4vzGfwDiRiUcfXrDy", + "payoutAddress": "XkbG22XNT6bfuvgKoJFkWPPrjDqbmEBsBG", + "pubKeyOperator": "821552bb25d7020f59c84f1226890630eeda00082c48a69c02a3c6050c291893a50d77c99d36f8b07f6cbecc4ef50e2e" + } + }, + { + "type": "Regular", + "proTxHash": "597c503ed0ba77b6a440c5a4f11021300ec16d665de17ebdf6455e743ef759c3", + "collateralHash": "12233c4042de8cf0b510f96ef7dcd77e4c9713c494f523d9733ce153ac106019", + "collateralIndex": 1, + "collateralAddress": "Xg6UgpacKYVSX4eQsQyJChpS6okiRBWNPX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.223.52.232:9999", + "registeredHeight": 2076022, + "lastPaidHeight": 2126123, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XudRUv28dTtcQtdTzU9pRPDoGAVff8CQLY", + "votingAddress": "Xv4o4DKhSxapWUV9uxDLEn6nk36WEg4g4G", + "payoutAddress": "XasbeMjAF4ua6Q5iwrMcu8nEzbiarkyw5x", + "pubKeyOperator": "893ef65e6473b37d051bba2c2a5ed2589d8a20ce518763e322c9f060261abfa0fc31d2a13b2eb59139ad0563a68947e9" + } + }, + { + "type": "Regular", + "proTxHash": "df346419b05584ea662345f875d041478bd0a50ec059c0bf310e5732848d96b2", + "collateralHash": "d7e6c1847353240a8f162684a488e5e1a409da83e2c060a957f5c411a034f73a", + "collateralIndex": 1, + "collateralAddress": "Xg6pWbHF1XcPm2hCsGnLwR4bkraL2y8Sub", + "operatorReward": 0, + "state": { + "version": 2, + "service": "165.232.102.186:9999", + "registeredHeight": 2076027, + "lastPaidHeight": 2126127, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo7fEh7PfgJuUeUv7Q8ueimkfPovjFVa73", + "votingAddress": "XoPwHbVZ9DBwRbvyMqFNdUbCaewXH8Zaoi", + "payoutAddress": "Xg3mS7tBZZy29ur6co6M6txybCFfkQhEE5", + "pubKeyOperator": "a46b8baabb833ed7aacfa71011343aefe9e0fa9f86e68dd6c4d3c54ec3500bb943624a91c65f6ae8d75349cd71b28155" + } + }, + { + "type": "Regular", + "proTxHash": "f8e56f8f47b030f8a5417e690c977a04035f3a94ad7d50c60ba51f8165fc8bf9", + "collateralHash": "688c009e9d6631ce31468963079ed9c233378131f8dae649862210cce7de2e9a", + "collateralIndex": 1, + "collateralAddress": "Xj9px9y7neAFANpfYir6zND5EUXeUCWC8v", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.38.38.180:9999", + "registeredHeight": 2076037, + "lastPaidHeight": 2126141, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk7xMnh5GmEcqkNQuhceVUm8uFnwmuWRnE", + "votingAddress": "XrvPucHjvUqtiUFVaVLTAc14PtsyATprCQ", + "payoutAddress": "XtfQXDkGm4Dg5WPrxQ3Wdy7P9RWCK9MvUS", + "pubKeyOperator": "b1efc618163cd2f8cabbb2b323a535f433a2e96d6b1eccac92937d1507655b1ceb0e2f66674790bc06cdc43eda112a62" + } + }, + { + "type": "Regular", + "proTxHash": "ed5d113faccc54ab63561d856726dc0c06606e6ce0328b4925dd40564af6c6d4", + "collateralHash": "ed5d113faccc54ab63561d856726dc0c06606e6ce0328b4925dd40564af6c6d4", + "collateralIndex": 1, + "collateralAddress": "7ebFGyjwaLXvhH5GgJn9EtEGqnpXTXsBRC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.223.128.116:9999", + "registeredHeight": 2076867, + "lastPaidHeight": 2126859, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpj42oucXb5NeM3jgyRK3SbkwrFmaWTCW6", + "votingAddress": "XdumQX8bovVUWebWVCSiZfAAFNWsq7fCQ3", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8ce8635e87b1845157f9a23c3f5a29f1228a8759ee84966bd44eac29275a90f2856fd3ba454728eeea87fe51950080eb" + } + }, + { + "type": "Regular", + "proTxHash": "0633f37c22cb2151d06cbfdcf0e9e1ad32b316b983d35be21e2a51de1a022425", + "collateralHash": "2614fdded63bfe54e30f4578bb446d0d497773d1ecb875635462c513cefb4a68", + "collateralIndex": 1, + "collateralAddress": "XhSEj1cy8BtoKcbpuBNAbf85amEGqrrXRZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.133.169.100:9999", + "registeredHeight": 2077732, + "lastPaidHeight": 2127019, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2087187, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwjarEXeDTA6sMcEqKmstMPZxW9mhUi6rG", + "votingAddress": "Xi1vXVkD2r4peyPUsKnGAZnboF1NxgdLz3", + "payoutAddress": "XhSEj1cy8BtoKcbpuBNAbf85amEGqrrXRZ", + "pubKeyOperator": "8b198be369704768d486dff62bdf737c8ef185653559b93a50665659653f6c94cee1b00e03b8d6f79648e945091cf97d" + } + }, + { + "type": "Regular", + "proTxHash": "880d5d8cdb3b23c2152ba1cff136f4d131c4b4f95b52a6068f63af4c7ed5f209", + "collateralHash": "f7a6271645da1e4dce7d61fd1b435ebad61bbf8f4b8da918db50cdc71c42b046", + "collateralIndex": 1, + "collateralAddress": "Xi9PMRDWyVKk4BeNLx2MEe898QkNYRg2Cq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.133.207.248:9999", + "registeredHeight": 2078343, + "lastPaidHeight": 2128510, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2081758, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgD4g8przD5bfcnTjfA7oegwEhGU5fxvsP", + "votingAddress": "Xfu4YQokdp6bLG2t3ej7SqfnrtcknQWWfv", + "payoutAddress": "Xi9PMRDWyVKk4BeNLx2MEe898QkNYRg2Cq", + "pubKeyOperator": "9784cab2ab02a1f6e2111218102739deeab4d9bddadca63c511d2e1cd7a6a2c058e88b5dfb80709bdece1bd8d92d4ea4" + } + }, + { + "type": "Regular", + "proTxHash": "02b55f4701675fbd86d35316c49da383aef3f2662b1550d58605361aa3298bd7", + "collateralHash": "6034501372af7feef86c3f3a3bd9a09b71f398df0131c94870a3e47d2fd320d4", + "collateralIndex": 1, + "collateralAddress": "Xpm1attqW1LpQmPFp6wpEkpDinXr4YYKk1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.153.141.100:9999", + "registeredHeight": 2078352, + "lastPaidHeight": 2128168, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118893, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xc6evuhiLU1tDa6jZstuJHuZLee93PPCfE", + "votingAddress": "XwgGBzpjeJmu3eWiQeh2NJ9T1ZUJez4wgv", + "payoutAddress": "Xpm1attqW1LpQmPFp6wpEkpDinXr4YYKk1", + "pubKeyOperator": "b0e3c366607736d163f1a342bb7da444b2a60eabc050bd1c0eb76f510f41ad641fe0c290a55521e55b50ec47dabacee9" + } + }, + { + "type": "Regular", + "proTxHash": "210938a15d3b718598fa76866ff491e741920191ac0c1c7302686c58d83fd900", + "collateralHash": "18cbfcecdb3e23d5b5529cd2905549d973f2823adbf79bf754b3813fdd148bee", + "collateralIndex": 1, + "collateralAddress": "Xhb2DHNhRojtH9344Zru298FUVGpfpsPVD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.242.211.123:9999", + "registeredHeight": 2078440, + "lastPaidHeight": 2116076, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2116842, + "revocationReason": 0, + "ownerAddress": "XhmUWamwqPU3Z3YjPdkF1Uh7tdyZS9BP89", + "votingAddress": "XeB9ZcSx6bi5uypVbBQVYWn4oupd21QJVZ", + "payoutAddress": "XqzaftCcE5ctmzDYKdm2M35GAM9Hg7tt7M", + "pubKeyOperator": "aff6c536d45f36f2e03fc9457d4d89ec50db49211a057f54b48ecf0214f5b667f481b4f9312a23517e2d6264cdb22e24" + } + }, + { + "type": "Regular", + "proTxHash": "fe480ec4b76fec2d77c48f3386d391750f8f87fb38874c6a22d05a12d59aa45c", + "collateralHash": "fda64a99828d9caf34d1c2f613b356801f6a1bea036459aadebde53995acf58c", + "collateralIndex": 1, + "collateralAddress": "XeZVdWWPRqJoZ8GvCdxqQo9ArsKkLtgNrL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.153.132.24:9999", + "registeredHeight": 2078852, + "lastPaidHeight": 2126649, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120600, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwbcSmhdLcfwSVYYWVEc1oGfkcPCETYQtd", + "votingAddress": "XxGdFHFniQudSP7gzDrJamNXQ19C6epteq", + "payoutAddress": "XeZVdWWPRqJoZ8GvCdxqQo9ArsKkLtgNrL", + "pubKeyOperator": "99d7fd7f2b1bb1e83fb2df2ccef806dd8f301d7b2211c841c026fc05d4ee7ef1fb24118c8d7b13e4a1562ec06243e7ac" + } + }, + { + "type": "Regular", + "proTxHash": "342de2fb26f14e22ef9909959362f351fb76416158d23fbe546b4953da08d168", + "collateralHash": "308df3626af638fc075f1a410ba1f0ed46a65124ada13f23682eb63ba1366a1d", + "collateralIndex": 1, + "collateralAddress": "XnCxrxSSrNL5n6z9ax9iRfg3vpvLP85XTX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.133.0.167:9999", + "registeredHeight": 2078856, + "lastPaidHeight": 2128864, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxSDE3W6jzqyg7HmALTX2zF85LbVi8x3hV", + "votingAddress": "XyfcwjFew17FK3VWJBAL1ekmwKoVyCrFSQ", + "payoutAddress": "XnCxrxSSrNL5n6z9ax9iRfg3vpvLP85XTX", + "pubKeyOperator": "a6d2a41bbac4e6cd95286754c1c9056623e88b8a3542ce388cf2c372085c4f7831a5ec9a90982f295eb36a5d5a6b72f3" + } + }, + { + "type": "Regular", + "proTxHash": "6a86eff1d0b937da4f750bf212a686e1e81a10f24a59f8a274b78f6791fd67fd", + "collateralHash": "749c673b814ac741fe1413789f3d0b9fb7207f5dd95492f19e910de7e7122232", + "collateralIndex": 1, + "collateralAddress": "Xaw5aR5zGvedvGhLYRJAhueUPmJa9RaPMq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.163.231.23:9999", + "registeredHeight": 2078859, + "lastPaidHeight": 2126642, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120596, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtmpK5oQ6b1dHXsinypXD4Yh6fpD4GtJgW", + "votingAddress": "XysSECxybRnd9qxbfpQndvdKajoNXmCDTK", + "payoutAddress": "Xaw5aR5zGvedvGhLYRJAhueUPmJa9RaPMq", + "pubKeyOperator": "94ddbfd70e4d103e5907abb2ffd8580bdc8cc9060c98d2b31f0cc062270079d946ce7c46d02d2f9f807cd2342d38fa7b" + } + }, + { + "type": "Regular", + "proTxHash": "bbe16c114d15992589bfe868b1431cd2212ef1249d48314579156cf2ddfd19db", + "collateralHash": "88a04d26ae02bd5fbb82c5b6fc7f1647fd237e00cb683848f021de2e1f9ab964", + "collateralIndex": 1, + "collateralAddress": "XdF5uTVveWZr26Crwdx7fW9hvhBnkYHq7z", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.133.214.41:9999", + "registeredHeight": 2078866, + "lastPaidHeight": 2126644, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120598, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsb1KQEntNDvs6dDu3HgpKSUN5RYu2gLUU", + "votingAddress": "XssaLQhAdLtcLYdckVq8q2yi1wyu1wcrSA", + "payoutAddress": "XdF5uTVveWZr26Crwdx7fW9hvhBnkYHq7z", + "pubKeyOperator": "a11feb5e1f896d39ba79a2e7813b0171d09175449362f2b197cc413cc0bcb5b30189e3f6a7091ac7512b404277a30827" + } + }, + { + "type": "Regular", + "proTxHash": "8463d6b9e07abe6ad57509af9f29343df12aad7aae2ce146d06eee7d45b6cba7", + "collateralHash": "a5da7a884ca60c660c76d6b49fdf1153ef4125095aa85024a010a06a17ae0891", + "collateralIndex": 1, + "collateralAddress": "Xe8BnP94nKKthWzddZf6qW3qzu3z8geUW5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.130.235.179:9999", + "registeredHeight": 2078870, + "lastPaidHeight": 2126650, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120600, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqxNJuUAJgfjnGanPPj9PEgfxj9aB2tUL3", + "votingAddress": "XvHGZUXKsyCBJsmSapgZmT8QstQ8vCLLAx", + "payoutAddress": "Xe8BnP94nKKthWzddZf6qW3qzu3z8geUW5", + "pubKeyOperator": "81c4030b770da8eb6610903fa50c7740496b33235647fb5db9067a84121ec8c92cee137310e763aa5dfbdca7a16c4f75" + } + }, + { + "type": "Regular", + "proTxHash": "7d9f3ffcc5e332bf91db82298f2c41188891418f38cb68b26dc389c6dd139e65", + "collateralHash": "20fe0dba8a9412fe1c1c0b26eb66333ea433ea0930f72a13b52f6dd43dfbc2b4", + "collateralIndex": 1, + "collateralAddress": "XkvtpLkXHNQb8HdpTivDhPxk3YbQ7M7q6G", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.130.235.183:9999", + "registeredHeight": 2078879, + "lastPaidHeight": 2127805, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2091281, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJgHEjgrwNa23fPDd4TNhhoTeH6ZYJWhB", + "votingAddress": "XxuftD7nhLeBnBAsoeEeVhAzS2TkovWaTW", + "payoutAddress": "XkvtpLkXHNQb8HdpTivDhPxk3YbQ7M7q6G", + "pubKeyOperator": "8b1a168f4af71f83ac2f680cff8477a5b13acf8000ce3886c8aac2975263d50678892392eed8636a1db6210a6bafe0b6" + } + }, + { + "type": "Regular", + "proTxHash": "3145ffe2aaa0e3322cfd9cd7524a0400e0e3582dccc9deb95e820882c1bb9a15", + "collateralHash": "1fa565b8279934da7d0fec38e3072bf745e4e83aaab4876aa2356d9df0a97748", + "collateralIndex": 0, + "collateralAddress": "XuTgDvE3CnbF2wrkBjW3KkEX9WFsz6Fhck", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.194.217.23:9999", + "registeredHeight": 2078882, + "lastPaidHeight": 2126407, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2110523, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoG7zoncj9iF9XnPVSuaTPCML6486RMRJD", + "votingAddress": "XtEygixGeRxq7ew46Q8AAgKcZfV8c5qVu5", + "payoutAddress": "Xn1U2pQa3nHK74UTYatK4ziLtpujUbsZNM", + "pubKeyOperator": "8323578f70e5ca5590e68efc4ed98835507c1773088f82e20c5de156ec0a3119e058b9f19b1f0065e898342d4677b5a7" + } + }, + { + "type": "Regular", + "proTxHash": "90c9b4855184b95fcaaf54b46bf9720dc4eff771efb05e7d863c33c1549a15ad", + "collateralHash": "3ec0e514272e8f925bff321287c51d66442c287249a3c6a9fc64e449d473f2e5", + "collateralIndex": 1, + "collateralAddress": "XrLQ3A9qRMyEuJxL3Azja4QitagpYVxPMD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.133.1.196:9999", + "registeredHeight": 2078888, + "lastPaidHeight": 2126643, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120597, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhqLW8EPV4KQKCK16pY3TfbJsKZUZtSGeW", + "votingAddress": "Xxnzp8dmDdDphHYGiKJ9MCSd1u9h8m5At5", + "payoutAddress": "XrLQ3A9qRMyEuJxL3Azja4QitagpYVxPMD", + "pubKeyOperator": "b206a4408619e51f9fa7187cebb61f33f51e3b726aa53083f085e4d51c8b207310dbf4f702b5a31184eb874d94a73dfa" + } + }, + { + "type": "Regular", + "proTxHash": "0501e3918f79d40c32dd1e9c9726efac176744c9170e05a619b6e8239a934566", + "collateralHash": "1c08e96df7f9480c6ab28a76b219d9b8b820fc91009279d067c7502773a2783a", + "collateralIndex": 1, + "collateralAddress": "XvCCCgc9cXMVzkRhjb2zxds89gxvWrovrj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.163.230.181:9999", + "registeredHeight": 2078891, + "lastPaidHeight": 2126158, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2079414, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo6ggypwjKgidD2EjGfPPjm8MME7WBofB5", + "votingAddress": "XxveT4eQo9S69b7Uyw4RamAVtcMio9Zx4M", + "payoutAddress": "XvCCCgc9cXMVzkRhjb2zxds89gxvWrovrj", + "pubKeyOperator": "975e5db915a881bf08e40acfa0f89b6fc5f3b8a7d30fe08adc5338351c0761c18bdf692af32a166137f585cb92278e4e" + } + }, + { + "type": "Regular", + "proTxHash": "dfd32c90966000c9b4316457d1c87ee343d6cd52becbf0e907b28539f7ea14c1", + "collateralHash": "29d7f2149133653cf187dbda3c82dbd7b21c8d42c3ddb3bf2c0154d45cff0e85", + "collateralIndex": 1, + "collateralAddress": "Xpov8gtC6ETaLQmP4gMkaDh8bbrWkqYNZ4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.130.238.198:9999", + "registeredHeight": 2078895, + "lastPaidHeight": 2126674, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120621, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqqUB9DuwjBHA7kdxvJrr3zxJMu59me3jz", + "votingAddress": "Xsc9gzmsM9A5k2xyr2sLp9U5jBDBjHZaWQ", + "payoutAddress": "Xpov8gtC6ETaLQmP4gMkaDh8bbrWkqYNZ4", + "pubKeyOperator": "865d47bc780a26526472cec8305942aa23c304db3bedb365f9a38c432cf6530545ea82e74e5cabf48843286872aba4d8" + } + }, + { + "type": "Regular", + "proTxHash": "6ac4ecd142dd51981d698ddb205d01aa4d08b7621276c846a1f852760e3188bb", + "collateralHash": "f08b384d6f9dab1d1a2d33439ed3c66332f1d53c3e9c324c58a43e2d79de9a00", + "collateralIndex": 1, + "collateralAddress": "XyMpiNPbTxuRKX5QKFbVKzWFVDH3mnVX28", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.153.171.54:9999", + "registeredHeight": 2078904, + "lastPaidHeight": 2126653, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120602, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm6vqjB1FnDzYcjJqZvV6YN6ieTCondVwk", + "votingAddress": "XrUNgXsQnLN9G57viQw4mGCBGWiiQwX668", + "payoutAddress": "XyMpiNPbTxuRKX5QKFbVKzWFVDH3mnVX28", + "pubKeyOperator": "b66b63139c64202d650983d9514f9203df08a16faee6315cea9c9cb7e75b6a822a33cf9fd5239a1fdf5ed94dc940d8a0" + } + }, + { + "type": "Regular", + "proTxHash": "d1166018ed7c6340fb5c7270b2090e6b6a7cb76a9407490f7cfeeddcadb29494", + "collateralHash": "ebfe384d5b37ec3a22aaaddcb0b05444d9bb817df3c7595a440b10b13daaba86", + "collateralIndex": 1, + "collateralAddress": "Xt49jdDut5UeCZSkWjA9JFFmFxiMGoEEXr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.130.236.249:9999", + "registeredHeight": 2078907, + "lastPaidHeight": 2126678, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120624, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xuog1Y4u7sY9JmnZULRFGFZ28udk3wbXQG", + "votingAddress": "Xy971Y3UAX88hHsfVr7MiaEKJctsuH99yB", + "payoutAddress": "Xt49jdDut5UeCZSkWjA9JFFmFxiMGoEEXr", + "pubKeyOperator": "b9f749ba98daf4250668b77b28f687ce3578a2a745ebc048d7f3474490c02d084884564f5e383d81141beade5ff6920f" + } + }, + { + "type": "Regular", + "proTxHash": "b9033fb3593219ff1ec52aed9ad24043f222bd3ce6970781a52b473b90826f65", + "collateralHash": "ffc380b57b53535ee59dbf65ad3e3a143729738eb1ea9beca5a6bab77219bde2", + "collateralIndex": 1, + "collateralAddress": "XyjrJVG7Nft1YV5p3dkcDbRBMRM4kRbZ6L", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.130.237.111:9999", + "registeredHeight": 2078908, + "lastPaidHeight": 2126681, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120627, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoBU92HVPHemR17ZKUvUfLNNM9QJFG7aC9", + "votingAddress": "XyvTPURSYARzHEXyMjVJ9hBMFyGjGxW4k7", + "payoutAddress": "XyjrJVG7Nft1YV5p3dkcDbRBMRM4kRbZ6L", + "pubKeyOperator": "93f4f40e8bd2d8e60319d6a514b15166d58df02f35b2bd9990be74370ef4a5d7adc2f8623d9180d453e673472a0b188f" + } + }, + { + "type": "Regular", + "proTxHash": "a36e376199e47433d9149624c4feda21103b852d439731f48740a4c61a798e3c", + "collateralHash": "5b5aea28a5178a10247dd25f2f70c2aa8f84d51a79d72232393ed4d34d4104b5", + "collateralIndex": 0, + "collateralAddress": "XtD8cyYJZN4vpFDV1KzCsNDxHTpKwV3hdf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.231:9999", + "registeredHeight": 2079301, + "lastPaidHeight": 2126067, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgEhMuaeoHpnQLJspy7RvwGKZZgCoC7hEL", + "votingAddress": "XiymCvs7KaMDjvHPVAnF3Ru13wXdDmLmvR", + "payoutAddress": "XiyZMv5TW7cRrFzaNayp6a6pGL6cFqwr39", + "pubKeyOperator": "82e1b3d21456fbea7a982433a46a05f99d55717ae8ef7453970979111fd5313780aa16c542604da8be2777b54d28b33f" + } + }, + { + "type": "Regular", + "proTxHash": "fd30ac30170c02a85cd7ff55ce5ca82812926dd87f961100805b3fed4c5a815e", + "collateralHash": "7795ae058fa111519bb96639f0730f0b2717a54c4661b2889a38bcf210381b2b", + "collateralIndex": 1, + "collateralAddress": "XixKwPVTgPiV4W6B6vb5gfRyXMe1oMHRt5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.13:9999", + "registeredHeight": 2079399, + "lastPaidHeight": 2126132, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XivUokxZdTS4kZF9fTg1BKhBxzvwozMvio", + "votingAddress": "XtPEGp1mTijJMcxpjet8oa4rMatFmXb4cu", + "payoutAddress": "XxW93XWS4m5mX9TxhTD6gbcRmHX6Wo357P", + "pubKeyOperator": "93cedc2cc021e6c41d9d1b458e206a8f44b54e74d73ccc9cc8961404152d5ef0e99db0f598b9d982ec50674bd5b08275" + } + }, + { + "type": "Regular", + "proTxHash": "e0d34fb09c02a6ebf835b8a9c8078968207c10a70959a4f8063d941466358dbf", + "collateralHash": "940d4758cf4d799512781ea5ebf49d0f2f1f18a5eb4b3cbbd8d932b14cfbcd26", + "collateralIndex": 0, + "collateralAddress": "XgCCNnF9A3yzXdicpKCg9diYZ6BZqjeZNd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.148.196:9999", + "registeredHeight": 2079559, + "lastPaidHeight": 2127187, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhLkxBYFWdx1kry1gjmVeSbkusbtqpzEZ5", + "votingAddress": "Xfe3cvVZKTgsi7vqZZamDAYDT9h3nDuY4D", + "payoutAddress": "XgCCNnF9A3yzXdicpKCg9diYZ6BZqjeZNd", + "pubKeyOperator": "89a1b65b70a107d35bd850456722d733a56d9155f1f61fdc27ce8cae8c6ccf02ec6f8c8c0a03b6b95ec186c5a1100701" + } + }, + { + "type": "Regular", + "proTxHash": "ac85afef45c60a06045c2cf12624efb8d369f25ce1bcbc6242550639bd105b15", + "collateralHash": "5578b681601dc39cff206f5bfaf18205bcd1392e6f3a5c31ce3a9d6db5d8a985", + "collateralIndex": 0, + "collateralAddress": "XfD7aqtBM7h4pRu27GF3NmJ7tucYua7rHi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.120.189:9999", + "registeredHeight": 2079560, + "lastPaidHeight": 2127178, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjezL63swbBjmpxDi9Ufudf4bXZxUVEQvC", + "votingAddress": "XaxMQNXCV85TBmy4PxSEHSXv8H4TZEgP7J", + "payoutAddress": "XfD7aqtBM7h4pRu27GF3NmJ7tucYua7rHi", + "pubKeyOperator": "82af31436ac98ce6aff6b54d76aab9e0381d74a4718564bf3d506f480cc12e5d07e5983aa3594100e2366b583e161aa2" + } + }, + { + "type": "Regular", + "proTxHash": "7470161b513ab7f989a53c561370cc6bea3cd847398df9392c733f6dea35957d", + "collateralHash": "0c9dc3eec96cfa6b702a7ee0f6153b696228c572177b168a54a81f899eb76629", + "collateralIndex": 0, + "collateralAddress": "XvU5nnQNTuNnWGWiwSzhCQ5qaGPYcixkfN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.119.205:9999", + "registeredHeight": 2079560, + "lastPaidHeight": 2127183, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvUZy3rFAMj4DY1TxwTCib1mDncAg3xb8B", + "votingAddress": "XnBnsdhxYchRR5yFUP8296y9tcqbWdnV2H", + "payoutAddress": "XvU5nnQNTuNnWGWiwSzhCQ5qaGPYcixkfN", + "pubKeyOperator": "907a5d07335c3248fc41ffd7e9cdf21d7bb04635343c2a9613225feaa4ed9293521c83f38f9d3c4a15f357e7d7bd72c4" + } + }, + { + "type": "Regular", + "proTxHash": "bcb3067258958d8fe6bc75c4e9d141dbe1df1f55c103d112a32e57fc41869eb0", + "collateralHash": "04b4f2850d86abe0b658a8161c2d32db4ceba78427c6d3fde619d8fa3e446e97", + "collateralIndex": 0, + "collateralAddress": "XwvDjhmuKyHfVUsoNiHKr1EkLP5g5Ep72a", + "operatorReward": 0, + "state": { + "version": 2, + "service": "66.42.54.217:9999", + "registeredHeight": 2079560, + "lastPaidHeight": 2127185, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxFttRk1GSRf4i599Fgnz7PBt3i6C6QpuK", + "votingAddress": "XcTFvBzrSG29RqDaedvyLmEzt5rg5pBpBh", + "payoutAddress": "XwvDjhmuKyHfVUsoNiHKr1EkLP5g5Ep72a", + "pubKeyOperator": "a78ebefea744613ab801df09efaa89b5e2d742ad437a5c3d414bf407e8024187b571ed4aa10a31854e14e4089cb2caa3" + } + }, + { + "type": "Regular", + "proTxHash": "e6ebdc7b2536e949bb72ed8a71984848d4a42257ddb9c2b562ed09a0ea9f61ca", + "collateralHash": "3aff8de64e4ca758d9ddb51d7602be7b4b28932b9fd10b5157446addc6107cf4", + "collateralIndex": 0, + "collateralAddress": "XcgeCJHU1hP8ovnRDdi1mtHQ9xEFyM1ZKv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.111.190:9999", + "registeredHeight": 2079560, + "lastPaidHeight": 2126287, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xbac27w3BUqKu7PEegtPgeTuBVn8mjpKCw", + "votingAddress": "XukxtrVH2Cdx2zHs8qRdJ1pfSNLfRFuoGd", + "payoutAddress": "XcgeCJHU1hP8ovnRDdi1mtHQ9xEFyM1ZKv", + "pubKeyOperator": "89e3bca869b183bacf659b48a9b2083cfeb24ebab246a3a5d6272a66afcd51d0b2649da8a53a02a7b7155e5ac196ac0a" + } + }, + { + "type": "Regular", + "proTxHash": "2b1a3ede67b3d2a3d06fc244e5314dffdfe39da1351975643dbf3b561d940005", + "collateralHash": "9e034353c222e29891974d27b7bba170e8cc734d2b300e5f9ba96f5f3f0e0023", + "collateralIndex": 1, + "collateralAddress": "XcDbQ1LX6zKCWXbKFNZSgfts7bP9jD2Vcz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.211.72:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127176, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfBdSDWv3B9zGHSNvrQAiRQNRwsrVRkbd8", + "votingAddress": "XeGDHPtXP23F6U7XSs6XSnJfNZGvzqxieD", + "payoutAddress": "XcDbQ1LX6zKCWXbKFNZSgfts7bP9jD2Vcz", + "pubKeyOperator": "93e2ad35ba450869f8c0d2c8e65b78b420ea3c7a093d82d24821a020666996a740a41051df12b8d059f50e4ecdb0443e" + } + }, + { + "type": "Regular", + "proTxHash": "8a16402979e99fe575ce913e757be77a99bd4903bd0ce2f556a72386fbfe6350", + "collateralHash": "e33cb96c04290258878216a311ca9139032b943797fa380e66968a48ee7b2947", + "collateralIndex": 1, + "collateralAddress": "XcHGyKGxaVtxwTjMsLCRemc3nvqBMDTXDs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.100.25:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127179, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuauByBJKMET1VvoFPcstSKeBYHtTqkaic", + "votingAddress": "XcGZpsNZxS2yDpS72VRyR3sM9cHtMFbvSU", + "payoutAddress": "XcHGyKGxaVtxwTjMsLCRemc3nvqBMDTXDs", + "pubKeyOperator": "91307cb59558c393de5167b2a2a58be4fe64ba3c4b06c88f22b8abade66b7c6c70537f26cf6f402f7a7c642f737c03d3" + } + }, + { + "type": "Regular", + "proTxHash": "a4d4a1c75320a195cba70fcb116e4cb47c5de58a062469dedf74e1cdb491385d", + "collateralHash": "d81d369a8e1b39f60e0dd8166e1fd1c76adcfa557fce22db72d67b6f2e08d1c6", + "collateralIndex": 1, + "collateralAddress": "XdRHrfqCB69mndS5jmmTcHJxMTKStRawDv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.217.5:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127180, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdcsSe2sUivtxC9nutXUPhMMMiQWdPEPoB", + "votingAddress": "XkEpTntTUHiHeuLQdi9htfdeG3z9wfWN6z", + "payoutAddress": "XdRHrfqCB69mndS5jmmTcHJxMTKStRawDv", + "pubKeyOperator": "93b77f57852dd129853d49652e2f1aa642d0b951bea523445fa8a3009e678114a900c6eb2953b4a62a8a6347e4f4c130" + } + }, + { + "type": "Regular", + "proTxHash": "278a391a497b3fe31616cd8370d5ecc355361a0415980347cdce58af1d4b6b60", + "collateralHash": "513701c685328a4df6546d371f4178568c68ef433175474588ec34a745d0471d", + "collateralIndex": 1, + "collateralAddress": "XxHvp3GiFxtxY3rtrSJd424zd5nbnGA9Vz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.217.23:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127181, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmS3rYCu7R2tLxGXfG4JyqKzRsU22zvUj5", + "votingAddress": "Xb4AtcNcDUtgXjzJGXLS1yZ14mBpjx59oH", + "payoutAddress": "XxHvp3GiFxtxY3rtrSJd424zd5nbnGA9Vz", + "pubKeyOperator": "837760f1e24596d8299cd092845865c7c615626476d2cd362f823a91f7aef0d68fe0be4c4eab74e58b9ff61f9ea73076" + } + }, + { + "type": "Regular", + "proTxHash": "c6e63f45af46e31cd5abe02ec09c4dc5acd5289f35d380057cbf78f433fa106f", + "collateralHash": "86e186273c0c007479cf2c4293c79e491d6a2d04e7c9d260e6caf94088bf246a", + "collateralIndex": 1, + "collateralAddress": "XoSUr3meLu7FX8vwxmDHu5P5C6e14TEqDc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.148.186:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127182, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xja31oJt4UX2eqbJ9FSTQut5JA8dUSRkfq", + "votingAddress": "XuWn72yRi6jkUMpyAfRW5vd5pWEQJDH49f", + "payoutAddress": "XoSUr3meLu7FX8vwxmDHu5P5C6e14TEqDc", + "pubKeyOperator": "a7bb58f5ad661bed1e0e30d1d8ba0dd2e8dfaffebae636d180e74aa3453c3c0c8830d14d84c43ab7095a92c6da75e0ae" + } + }, + { + "type": "Regular", + "proTxHash": "f786503fc35a859528fcabb73679d7cd56b62d5585830176ed1ba19251bb9277", + "collateralHash": "5f15b6232d126f461472ec5f65dcaf018166f610aacc24cc58fa02b285a6c6dd", + "collateralIndex": 1, + "collateralAddress": "XhiUaJD67uksjJLdHWDYoF2s2z6vJR9XRP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.130.205:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2126294, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpkZgBBpj4LSYu6dBqaBRsgF5Tqpo3Pzmd", + "votingAddress": "XbrBxmALuL1uWMj3m4aytVD6pn6X8YiNmY", + "payoutAddress": "XhiUaJD67uksjJLdHWDYoF2s2z6vJR9XRP", + "pubKeyOperator": "939e9105cb7f043d50d9ee89a0dd62579e5812a0e2e9edf3c092a49c464f67b4267a8db53189d72d0d0363da616fe7e1" + } + }, + { + "type": "Regular", + "proTxHash": "f184c431b25677870bd83d1cb49d5ba6a68d3d4ffff464301e3d3b3b066afc85", + "collateralHash": "24011a87affeb8436ecbb54667cff36f33c0604a73b9d6a3a61f1e9345003f63", + "collateralIndex": 1, + "collateralAddress": "XkTqiqvPLFzX6gNhLpuR2DjNwS8suRncAZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.190.82:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2126295, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwK37dUwhzxiHej7C8uuErAXJo2sLa9E47", + "votingAddress": "XkFqA36zqgX2ChSD8MhcszXna7pmhiLocs", + "payoutAddress": "XkTqiqvPLFzX6gNhLpuR2DjNwS8suRncAZ", + "pubKeyOperator": "b9018145f392d3ddf4c03785e9fc8743228ee3aa230a979e421ee0220e13c51e8f502547c28479344de9b11159c1dd26" + } + }, + { + "type": "Regular", + "proTxHash": "464ebcf16843872466d242bb63b50abb0606cdd126379ea850934c982e82c19b", + "collateralHash": "e2d4758757c1935f03966e7e302402618924a2aaf75ff205d971e2d5b121a573", + "collateralIndex": 1, + "collateralAddress": "XmEnEVCbUPxquyma77prYXtq2CE1VPw4pD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.130.175:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127184, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaimNYK8atvqyxaGqsHen4HEFf2YqcFt93", + "votingAddress": "XvqzFPuuQrbTvNqtcsSXXu4dBheU5K5ukC", + "payoutAddress": "XmEnEVCbUPxquyma77prYXtq2CE1VPw4pD", + "pubKeyOperator": "a7224210ff5d4730fc4ab1462e2d2003eeca392418af12df45495cb148a8607b313ae19dc466f12fad8123befaf66d13" + } + }, + { + "type": "Regular", + "proTxHash": "4684e506181226295453d0501d068b28ad0ebab867e0e14ec28b07da7a3869b6", + "collateralHash": "a452b50d53f4ab85851654f2698f3aabe4a8c79fb6388d822e1daf29c46bce46", + "collateralIndex": 1, + "collateralAddress": "XbLNkyj1vEBSNsuBEN3oCWZ2A7tLnPTuDA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "207.148.70.161:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2127186, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnr3viYArnfHZXkff3fi9fHSuK4LETjd1W", + "votingAddress": "XbSCLgmuzAHgvL3aFb5Fr4bGvNNVcPszYj", + "payoutAddress": "XbLNkyj1vEBSNsuBEN3oCWZ2A7tLnPTuDA", + "pubKeyOperator": "adb62f2cc79031008e7c12a03f3942c3d7f18449855d7b5909b5db0fb35d68af9bd87b2ff80b7d078d2b9b4bc61673ae" + } + }, + { + "type": "Regular", + "proTxHash": "3d7c7f69cad63b3bedb3be291901f5f68d6901ea81b35f14da711bd02fb27cf2", + "collateralHash": "f7522af2397a8d4920e5d8da33f49dc9eb3dc35e600e019744b186d09773268c", + "collateralIndex": 1, + "collateralAddress": "XiN6cA1aeMabSexdCM9b93U4gLTRLFhvi4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.128.31:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2126297, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwk9de51ief63VnLo249MLPBft44C7auJs", + "votingAddress": "XvE1UhVPf76EpZLfjHbmzgeTo8MipM1wRb", + "payoutAddress": "XiN6cA1aeMabSexdCM9b93U4gLTRLFhvi4", + "pubKeyOperator": "a9f6ef4c54b6ded903d752ddbe570121590a6b29de460687d6222c548450097746fdf83ee8a1619bbe004e3ece2618ad" + } + }, + { + "type": "Regular", + "proTxHash": "2a2c069f92e18fc642a323593b5ed4cbe0426d3d1f8d181ee726767d641808fd", + "collateralHash": "7d8b43e842d37106dd94df36234c6bc651ce2ffa931d02015fedbec00f4b1d0c", + "collateralIndex": 1, + "collateralAddress": "Xs7PE6cJ2CT55EJyF1VLQ8N1kA9zxuU8Ld", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.158.79:9999", + "registeredHeight": 2079562, + "lastPaidHeight": 2126298, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjUc1juhRTx7YfcYyDPdLtvZ74VYdxsvia", + "votingAddress": "XgJhfEPADMZJUBAgRdKHf1YuebpLDCHVdU", + "payoutAddress": "Xs7PE6cJ2CT55EJyF1VLQ8N1kA9zxuU8Ld", + "pubKeyOperator": "90fe3b228afe54193ff0ada8ec6db55468d5a1b3878a7fc502dbdaf4122a515cb5873373df725d423e5915560b848772" + } + }, + { + "type": "Regular", + "proTxHash": "bf6216b352edea658031dda6ff686f3a09ff2a8c2b798bb0782d362f65e64d11", + "collateralHash": "c2862e289ca720ad3369ec43c6cdf7cf701ae6bc6a6599252bb8a78044ea2f21", + "collateralIndex": 1, + "collateralAddress": "XwEnkAsASUo4tk9AcwE9nKXgrNTXTc9EWu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.77.252.159:9999", + "registeredHeight": 2079563, + "lastPaidHeight": 2127177, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2121058, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkfzU7yrqDRQFbyQVpiB8xGfWwTL5wD5aY", + "votingAddress": "Xe33RN6ZGiibLjGtrqnWMXozvwxNpjC6vU", + "payoutAddress": "XwEnkAsASUo4tk9AcwE9nKXgrNTXTc9EWu", + "pubKeyOperator": "8d6ab95075ecfebb37ccca30926298f7b25ae5e837e7cb502b0a9b21420610a3b002dd1ee058dbd8325cd035d7bceae5" + } + }, + { + "type": "Regular", + "proTxHash": "7cb19372485f163893df4c517fed259b0a408735926b8ce456016f7c7f73274c", + "collateralHash": "8e1d5b2d2bacfa8f43c7b506e6b6d0d41e4f357bb8497eca968ed9872d2de669", + "collateralIndex": 1, + "collateralAddress": "Xo2j88mPgh4hK1rm7p4DgmE7wqJJgtw7zp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.19:9999", + "registeredHeight": 2079610, + "lastPaidHeight": 2126334, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbRSq5CC2ULmRtGwQqUVmDp3tZbo371ujK", + "votingAddress": "XweUmJWk8zF3fHudxZGLoD71DUFajFPDxy", + "payoutAddress": "XvTFT2f9VixNbtbgnTYGNdANjJLehH8hh9", + "pubKeyOperator": "8d933650b01087c12660730c155b25de969361fcafa71194691b034ae92a0a5df327beb7cd4d9ece13b79ae456c73d9b" + } + }, + { + "type": "Regular", + "proTxHash": "6855d693c916309646aea7df1e5bb0fc6985106c6839964df4e658d22e48f1dc", + "collateralHash": "69560c0b304d8a4c39e00fc67b37d46763ac8351b840bd5fc320ea3501e856e5", + "collateralIndex": 0, + "collateralAddress": "XoCRNeZ7qo7Zx8Y9YPubTUxpDwxhJpTVey", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.128:9999", + "registeredHeight": 2079680, + "lastPaidHeight": 2126373, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XofscaBDyXaCWtQZhoYCXpwEbk67HsY6oV", + "votingAddress": "XmQ81a6C43jKdTcdFJhmzyM3JEXXTdQSji", + "payoutAddress": "XemDxhDFieAE9VdKqdy8JiZi6p2mrCpzJ8", + "pubKeyOperator": "a005c6b88ded49635da3940a95a8fabd47a628a67d960d650a7193db1735789f2140c693d44ee1e9c9571076b06f5691" + } + }, + { + "type": "Regular", + "proTxHash": "9d5c6148801b6cb01a14a75fc339d89ffe20bde46e4e292771f6cfa223bed105", + "collateralHash": "02fa0fa6e5ca57500ece1a96bc8301956c1ba4880e3b8ed24e52bb3ac9356d9d", + "collateralIndex": 1, + "collateralAddress": "XxCDigUaYHYprFAdRKXD3ZpHDtpgwyduUs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.1:9999", + "registeredHeight": 2079700, + "lastPaidHeight": 2126391, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhVp4A5wtBhifmBp7upywouK7ha14tY4cT", + "votingAddress": "XmZv6qggSycFWGVDXapEU2oKHhCagSgNo3", + "payoutAddress": "XqoLpEDttKpB9mksDuAGfgvPecnweJwsJq", + "pubKeyOperator": "a3df26599ee6391e2b9acbedfb5a2f6d7ac1a13bb203b4844931a2a7f89b8be5e7bc0011703a53395ab4199a45b4e94a" + } + }, + { + "type": "Regular", + "proTxHash": "74ea6b1babee18f3df1affef66cd238dcd9b93801a65f977b583dfdaca91ac11", + "collateralHash": "417e949b9b8a43099d21f7dd6bf004602f3bd7841d9219ee41219064af4d4cc9", + "collateralIndex": 1, + "collateralAddress": "XogJj15dMD2gtPpktBgMtsH8esmeTios7M", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.100:9999", + "registeredHeight": 2079846, + "lastPaidHeight": 2126513, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xt93M2NePEeTj68YURQzyMdDf75fVXwogf", + "votingAddress": "XdEa5YtK1JoJiMmidN4p6WDDvD9C8wiYRk", + "payoutAddress": "XyVcfMfg6jwU7NtoQYzNSKtNjeRDUxG4ch", + "pubKeyOperator": "82d25f9c02d8305cce9bc9a49a16ca84ee177765340d8b55c2d44c442b2f41f7a6950229d18df43d3659e2657edc24b8" + } + }, + { + "type": "Regular", + "proTxHash": "4ea6e06bfea0099e7bc5d84b6e4702352dff5dfaf68edff3d037dd6070e465a2", + "collateralHash": "6bf16bc49b8be8d747dbda7d9ccfdfd236e2a92cfbdb648906e92a1b1b0f2a2c", + "collateralIndex": 1, + "collateralAddress": "XmSbkagscgP56QJt2PmMYqja8XyYmw16Dm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.201:9999", + "registeredHeight": 2079888, + "lastPaidHeight": 2126564, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmr36fCrjdKMPAT9wdFvMUuXyBi8iFkH8g", + "votingAddress": "XgYkk39D4PLvXnswnCK9dPNtXM5jT5zYgp", + "payoutAddress": "XbiJQhzbHo8kYMxtC9pyHLSVZ2nEmejJzQ", + "pubKeyOperator": "a33ac13acafc43ec63f9dc2f8b46351511ebe1b317585e436eb0d433151efd4debbed39bd47255b1685779c85eac3632" + } + }, + { + "type": "Regular", + "proTxHash": "be5f0277899dcc953538cd3f84ea85f760b520c4ca63f584c37c8980baca3b97", + "collateralHash": "b8f6f93a65d6240d920fc9da8e5b46c303cd202baeab3a46b8a8d573b86aee79", + "collateralIndex": 0, + "collateralAddress": "Xjgq4pPSgJXgysnkwGBRpBZArnLb8eYuqK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.200:9999", + "registeredHeight": 2079889, + "lastPaidHeight": 2126566, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs3k4g4ZQ4s7Kb5tUXwN3p5G3VgGEjdaB7", + "votingAddress": "XxPAUkt9CnaayUQrnvW76GPCeMpT77niXR", + "payoutAddress": "Xm8rVpPTvdWipQKsXDVLMVcyZyoTpqFbzP", + "pubKeyOperator": "8d5b17a152e38e1155c444030c531747298f76cab366dae55d8d70396490a91ac6f1a796db5e737920c601dab4148824" + } + }, + { + "type": "Regular", + "proTxHash": "1dfdf2e59110bf0845c3552b46e7baa1ebb90ca745cba6dbac6a0a5859366202", + "collateralHash": "e877609aeb7d4f8e9b8b7d09bcc7fd5b11cafce81c9424d7af55934533d09d0a", + "collateralIndex": 0, + "collateralAddress": "XkJBzYS8vZudL1R7ZX8MJa2Uvu7iYgg12W", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.192:9999", + "registeredHeight": 2079892, + "lastPaidHeight": 2126569, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrjsPVXgAy9P7isUm1s2TpxqvGPewawtia", + "votingAddress": "XiSqAYEvp7k4BUrcrUR3RpyoAhWHh7Au3p", + "payoutAddress": "XfSRMsDDcwiFFKoFwvgZDV67yHM8mUBqZo", + "pubKeyOperator": "8ace1fd1dc47a690f72227847e36856638c68b8090ea39abeabb8250cd8ed817980a20dd6e88d0a2882b32a68c649f92" + } + }, + { + "type": "Regular", + "proTxHash": "cdaf075c15ffd4fa456d5960422f61b000a04c83123e43f7755301c116789e47", + "collateralHash": "08c508917c3de1ab6bd588389779972e67166acb090ac3168505a534a882471f", + "collateralIndex": 0, + "collateralAddress": "XnZArM1gWgs6QR1kAerYHqkL9LfMAYZkv3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.9.210.5:9999", + "registeredHeight": 2079946, + "lastPaidHeight": 2126610, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XceSWeejERGgUzgjdRsmXkC7HsAo1P4YkM", + "votingAddress": "Xg8VijdK7df8Sc6BfbckHGc1bede8jFBJj", + "payoutAddress": "XuCQhuHwejDmPzBdRDxiMEE9aDFGoqdgmR", + "pubKeyOperator": "827243f83bca0ff0e218f5572849c0d3cca66da72f6af949f345723616cfc59617116be0bbb518961cb3a43ba20af606" + } + }, + { + "type": "Regular", + "proTxHash": "62ab2736bf85c1e1251cdfb95e8229b05d3b3fd97b39d9b9baf414c5f93474b5", + "collateralHash": "26d257e2587a987eb34b7cf3148e138b0fa2fbfeff90d0dfba13e4694e1dbcbc", + "collateralIndex": 0, + "collateralAddress": "XvFNrxjBtvjhNtAbALFYkP7FFikzRxf1WT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.233:9999", + "registeredHeight": 2080170, + "lastPaidHeight": 2126802, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XebTXWQ5bgjZivkcBZc2VWN5sphBgLrXRQ", + "votingAddress": "XjAbkQpYKqGmokDxhSXGks62QfdfwfaRmo", + "payoutAddress": "XqKDAYcTsZtvhmFJSSLmjmW9LHoMY6XA9A", + "pubKeyOperator": "b71248c0a1911bf424d9c51a080a7e1f4bc6e58cf538ccc8a03e8f88d478d4ce680d90e2a520c7b912d38dc0be24f15c" + } + }, + { + "type": "Regular", + "proTxHash": "26a96223cbe04b83415c670f1a3bd120f91462ce95c5c19738234145fd5c688c", + "collateralHash": "aaa962cff7a1fcf73570e867c817d128f475fba023a67376aa61e219b546e0b5", + "collateralIndex": 1, + "collateralAddress": "Xj22cR8otnpJuYCkaBmkYztYeCvQvczdcU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.29:9999", + "registeredHeight": 2080217, + "lastPaidHeight": 2126858, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xsu6Q4FTzC6izLKXsEHszcLSKCq3ZSzwEc", + "votingAddress": "XnriWe3uCXdpA2AV1gbr4Ascj7de5sHBZg", + "payoutAddress": "XboVf53XsFHLmvPLUm381EpcJjF6nyr9Ns", + "pubKeyOperator": "8c2c1231c85850a6d56cb986cb19ff45e351a6d72a28cd39fc87839dc8b4d937d4b07185656f7c08b3d15ebc6ccac971" + } + }, + { + "type": "Regular", + "proTxHash": "67715e751626a41178494de7e5bd59813177146da5e2402f32ea29630b12fd50", + "collateralHash": "da91357b34aea1af5f5e93f8871630ee332af89bddf9f755d274e8e541c9d28f", + "collateralIndex": 1, + "collateralAddress": "XyqkXCYD7Rgs2eYvihn1qkhQPEwdMHQn11", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.199.118.11:9999", + "registeredHeight": 2080314, + "lastPaidHeight": 2114611, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XpR4wrPNJQFsEs5QXognuAzyyzFofQ5aqy", + "votingAddress": "XwT8grFn7C9qYgrSQ7YQk9LRwNQqKcx1Bj", + "payoutAddress": "XqzaftCcE5ctmzDYKdm2M35GAM9Hg7tt7M", + "pubKeyOperator": "adf16562c2c70a8c31ce096b0af2c64385505964d6ccb722d0c8b8f72023289aad9837356afd580075461a8750585703" + } + }, + { + "type": "Regular", + "proTxHash": "9c341220ff2d511bc712ad53afce4f9f2b53b3b5a5f9943bc0d36fd14438c1ff", + "collateralHash": "e17cfee07ede68adba529584d7a203a183ab5bacf2072af7fd23614cfce758d2", + "collateralIndex": 0, + "collateralAddress": "Xgrr7zx67zSSu2YjZZXdi3zzt89nR7ML6x", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.6:9999", + "registeredHeight": 2080417, + "lastPaidHeight": 2127056, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyVzeBfP4LjFs7KmQp7j2FD3kN7jXB1bhB", + "votingAddress": "XbtiViKhaeaaVq4NYEEBQtXqfG7puBzq1v", + "payoutAddress": "XhZ6GomekEy8eLM21bRzGw5gCUn3VahXay", + "pubKeyOperator": "b5f1850d41804762c6a4191d203c98c2d50ce92d18dd9911126300df2cf3afdb1b76565649fd72cd7becb0b4ff0059f4" + } + }, + { + "type": "Regular", + "proTxHash": "2ea7596cac50d16891a08d905b16e9310679ef88cfb897c8a351f23060be7a71", + "collateralHash": "dee206ed59d57f0fde964365100f4b7ebf595bdd00f4e32dbbab82f6b584718e", + "collateralIndex": 0, + "collateralAddress": "XtrL7E418SB4aXxvZFYL129DX2hD5NbrLj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.195:9999", + "registeredHeight": 2080417, + "lastPaidHeight": 2127054, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfRP32TRbbLfExJc1UdWzSq9oMWxKDtju1", + "votingAddress": "XizNApWyxaKx18MaY32LTW2QZgeanvtY5C", + "payoutAddress": "XyMRW98xkkso8EtoeHCSGoPPayAgzUNAtz", + "pubKeyOperator": "a45804636d4062b0374d417b54af90cc969e80cd522963b6cdd5ce17e62ef9ecd341bce6b160c791ed6b06b01f27ed5e" + } + }, + { + "type": "Regular", + "proTxHash": "770500a62828b7bf166402fd8ae79183e09a8064c5f8a78042c7c5f81bb7e133", + "collateralHash": "211ce089c578b36135041d448dc029b70448f7dcbcc1cd4fe09d8b1247f7a3e6", + "collateralIndex": 1, + "collateralAddress": "XvyBQ5JM9Z5NQ6f79rs7kHJTzBEBotrJfU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.217.253:9999", + "registeredHeight": 2080716, + "lastPaidHeight": 2127408, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu1QL8nXcE3GyX8CWHnUHJ5yxe1QSaR9E3", + "votingAddress": "XgX6r73V8PJ3wF55pNPbevgA6WqaGqS2yJ", + "payoutAddress": "XsPCv6vHucHtU45dCKTUiYL3SJpXaXhGEU", + "pubKeyOperator": "86b391a84f09a0a53cd6304731ace16303f84c2832c1866626bf691573c1b48605473298e0115808eaf230e3426b8d6a" + } + }, + { + "type": "Regular", + "proTxHash": "2d58ed9746dd200e1ed459f01feb171949506c3f3d2ad09f6f06aa43e950ddb1", + "collateralHash": "08bb1e26a646a8784f0ae80507892875a4e9d9c33cb2b1881a23490f898a1e77", + "collateralIndex": 1, + "collateralAddress": "XrXc96swnjE1xJyx2cLhctEPMQYdLNuSz1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.247.182.58:9999", + "registeredHeight": 2081085, + "lastPaidHeight": 2128805, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119532, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiQunc1pXKLvgXxJUGkHFdjeZZkjdkAnSp", + "votingAddress": "Xecq4d3KC8f6ZQ3stPV715iAbty9tKnRom", + "payoutAddress": "XximVXVVv5cDaWextwj6HShophnRxmERJr", + "pubKeyOperator": "8d4d8803f4ffca920be5450b91b251c28697f16a96428c381d955a00e54f458bc54b9d8a40ee01e22a7a5ddb5df90d16" + } + }, + { + "type": "Regular", + "proTxHash": "2050c4130227b9a2025dfb13d2a27be2c14fb0034287f10f4d8e8f7f4cda4dcd", + "collateralHash": "8cbe4a7bb281bb630cf5c81c97745ad8ac7a7f2df65be696578d6eea5c4666d9", + "collateralIndex": 1, + "collateralAddress": "XtczWEJcz3NatDSr8bSSwRnjaj1XiBBUp6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.171.21.121:9999", + "registeredHeight": 2081112, + "lastPaidHeight": 2128801, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119530, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfajjJk1HyW9Pw2NyzvHXvWaTe96LtzZma", + "votingAddress": "Xn3C9Drkw3WBF6SSEBmRvqyy1U9KLKxDqq", + "payoutAddress": "XximVXVVv5cDaWextwj6HShophnRxmERJr", + "pubKeyOperator": "88f4d379ad907d9ba03b61eef957988704d7967b0752546267c4df2d18732efb63286c894cee729a844c014a0d1e5c63" + } + }, + { + "type": "Regular", + "proTxHash": "32fd1fe77c9b3a5f4a35117784ea75ee082e7fca8df4fa33e067318f89f4bcaa", + "collateralHash": "fdc0eec58de37ef99d0415f8db586b4c7d4e66c62f349bef08f496d865ea02e6", + "collateralIndex": 2, + "collateralAddress": "XqBGGgzSMi4Yy3Jsu29h8J71hrRkRtWa7Z", + "operatorReward": 0, + "state": { + "version": 2, + "service": "147.182.148.82:9999", + "registeredHeight": 2082052, + "lastPaidHeight": 2128755, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvA4FFcMLPrDcRnMxnEsjgXeN5Lg8WytU4", + "votingAddress": "XqYYUZMiuVRCmXuxcEoEeVkZqNytk1eGRM", + "payoutAddress": "Xc4Ew6yXQShm56xrSigL6bQ9isKAHEHT4H", + "pubKeyOperator": "a58d9542a1b08b4fc103ae59bbdf1458793117596a2db3742b79d2a66de0a84c9854cdbc8ae284cb873c28d5d21a2499" + } + }, + { + "type": "Regular", + "proTxHash": "aeb6dd0a9d21b5886edfd062caf2c064189dbe65981e0e774b4550cf4c383b7e", + "collateralHash": "a36d2b766050bab8dcb9195e50d0176b1b31e16ca2ec4733350c675d1cc677fa", + "collateralIndex": 1, + "collateralAddress": "XdBKSPf8xzwe9qV2Tuj2isdShnvtiJTxkC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.136.78.73:9999", + "registeredHeight": 2084288, + "lastPaidHeight": 2126771, + "consecutivePayments": 0, + "PoSePenalty": 543, + "PoSeRevivedHeight": 2120719, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsvAWon2zT1tX5iJjRWcg3mYeUVv8SUvcj", + "votingAddress": "XsvAWon2zT1tX5iJjRWcg3mYeUVv8SUvcj", + "payoutAddress": "XdBKSPf8xzwe9qV2Tuj2isdShnvtiJTxkC", + "pubKeyOperator": "a5aca414afcd137f2fae0c905e3ff48df0572d34a158b6bfe7771e123a70a6f983bb98acc4b07d6a4865838a73fef685" + } + }, + { + "type": "Regular", + "proTxHash": "93cf79432f34ba8cb6d5b4d09cba24e9e022b78ea0aabe52db4c811c74180cb3", + "collateralHash": "4a5a0c5927f2c15663257a5f2afa370ae2b55640d201be144e0d4e8b62542023", + "collateralIndex": 0, + "collateralAddress": "XfLnvqtmM6zUDgqxm17LXzQy9FEepAqyFG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.9.237.34:9999", + "registeredHeight": 2084893, + "lastPaidHeight": 2128249, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoECuhSQRSrczQJWdnEMfTiKPqBpyYYKxr", + "votingAddress": "Xk8PDpgawJc6EC7p6nWtTFEDMWxU2cmtnx", + "payoutAddress": "XfLnvqtmM6zUDgqxm17LXzQy9FEepAqyFG", + "pubKeyOperator": "969612f864ffaccf659de757a52d4d4473e9a8d241f24e558334d33ca161daa01d969595fde84f003db66bb0b36a840e" + } + }, + { + "type": "Regular", + "proTxHash": "d46b2b3c5b48c69a76906e4760026c272974a3d8adfd895af15fb5f7b554b236", + "collateralHash": "a292b16a1556a4f5fb8b2839eee1eec4ec187227b3d41459c39fcae61d2bce41", + "collateralIndex": 1, + "collateralAddress": "XwRyboRWYsm3u2aVLYLEwdoyiHAMhpjSaH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.20:9999", + "registeredHeight": 2086041, + "lastPaidHeight": 2126051, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwLXoECisBCdKupSZwshEPaiNHiLGr6CmY", + "votingAddress": "XoXKPd848Cs5QcUQceysZSLx2Mfm7qfDMR", + "payoutAddress": "XtcbrVjTGRJhegpSXJUhC1Ez1AFDc6URji", + "pubKeyOperator": "975ab3071c0be550e05b0e96b49e5a6d64f1ffed30c062bf8650acd0df2126cd99924f7f0e6fb0a2905bdedf397ed7c3" + } + }, + { + "type": "Regular", + "proTxHash": "772f69fbb87538cbcb747be1c291e766628351327cce69ea323adcb63cf8d820", + "collateralHash": "69e0c75c7e6146de30e6a7dcbc758396994996bebbdea5c78718357eeae95499", + "collateralIndex": 1, + "collateralAddress": "XmfpNYAiQ7GwLrDiGtxAWUvjWypwaMrQiv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.130:9999", + "registeredHeight": 2086054, + "lastPaidHeight": 2126061, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcKSNc7UJSS2Tbnbt8iHRMf5qz8PWwtwem", + "votingAddress": "XbuQbptSWA8UFanA8QtXcyAjEDzHNCg8Xj", + "payoutAddress": "XtgKMFs6DqoTX2KAwZ2T6eA2LtwWYnseyd", + "pubKeyOperator": "837a907443be896ddb104b393a226d2ddec05506e717055ce507c3d4eab85d5b970b9af10c040ebb3a00fec918b5a38c" + } + }, + { + "type": "Regular", + "proTxHash": "9048d48382b3cc2a7fad5ddf794fb3b7e6b382d7b416dc462a9f77d73082376e", + "collateralHash": "c155714ed674190b272d4b20cffd466371b60d109f125e8b241021195b0b0fad", + "collateralIndex": 1, + "collateralAddress": "XpEGCP7aKEVJu3brL6jnoPUA5FN8u2gc7Q", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.63.89.86:9999", + "registeredHeight": 2086463, + "lastPaidHeight": 2126368, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgLdYvt56Q8nfj43vJdgqDRyE82D15rLPa", + "votingAddress": "Xhwkw9ZZbdWUJ9sFwaSAmDFysZDJSYa3Q5", + "payoutAddress": "XyQkmasURmiurpmFASg4G1PhuwUXmFyprJ", + "pubKeyOperator": "b0a71e0ab1b55d54792a2106181ea783ac84ea7eae46eac706bc661eddac676125a43f708a40bc23951278d6fd7c8521" + } + }, + { + "type": "Regular", + "proTxHash": "efa0052e64499aeb521334a41eb12205bfa924f64252c9c9011bd932af74c51d", + "collateralHash": "8999b3d56554c843f0ffa33a58a7c97b21bcd0aef14f23423d3f090aa536bb5e", + "collateralIndex": 1, + "collateralAddress": "Xx7qUWfQPrzSGCpYf5j7BU2NfoDCvFQ3ox", + "operatorReward": 0, + "state": { + "version": 2, + "service": "138.197.158.8:9999", + "registeredHeight": 2086483, + "lastPaidHeight": 2126384, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu6muNomwyc5uzfFrVCEWQw8PVqwMZof5U", + "votingAddress": "XfgPCM2UKbF2xw3g4y3QWUSgebWW1jrxK2", + "payoutAddress": "XiV5yd8ktudSxNNrUn7oiRt3nMdBLdVq4A", + "pubKeyOperator": "89d040bb9b6cb8620dda20f1eef7566dd081b399d7646f533d1f9d91d07f7343f589a68d06bb44997d5dc65a33e1826c" + } + }, + { + "type": "Regular", + "proTxHash": "221492f2b49bc96952f4cf84893b456e45b014bb516f267b0b3ca6d7d64300c6", + "collateralHash": "48162059e31f19186f9c116f2d5e2f0477e5f67e039c1188ebda8847e3473f2d", + "collateralIndex": 1, + "collateralAddress": "Xh6bV5oyxZZZmFvewZDkb9YyZj7LtxXj3Y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.227.142.41:9999", + "registeredHeight": 2086486, + "lastPaidHeight": 2126390, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XffrXQsU2komskVA2evvvrd75cdWPiCqX4", + "votingAddress": "XgeJPtbgBWv33KkgZ3uZhUAX4gY94yauwP", + "payoutAddress": "XiaQWtHGFtynacdbqUto7g7JkMXKgTPBGW", + "pubKeyOperator": "b026135bf55abcdfea1a2afe56501024103b44f4425d1f0b2cd2a7360e9edb28f242585a7a0983a1323c33721c7a12a6" + } + }, + { + "type": "Regular", + "proTxHash": "f4a109388447df2b5c0ac6fd4271969ca3c176c1b979e16fba541c7fec1b99d8", + "collateralHash": "9dbf6baa085b4419cdf684520bbb1a8a3070138aa1d5f323632d08738ef8509b", + "collateralIndex": 1, + "collateralAddress": "Xf6rnSA7FpJmyFjMTazye6rAGPuAZfrhxG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "206.189.112.121:9999", + "registeredHeight": 2086639, + "lastPaidHeight": 2126518, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqDCqkkbH3nY6SdVwFEK8eZ5mmucbQrXrL", + "votingAddress": "XxmMaY2KPx3L8sM4W4JzqVSeWziiXq5wzF", + "payoutAddress": "XahiF9n9BkRyPac9F7fBUvFfd4FKffpUuw", + "pubKeyOperator": "a6f580694b0a962a436c757d78e997bdee45cae9ccd437b03838c87474c18c51de5b6f3beb0ffa343115fb1533e2ee82" + } + }, + { + "type": "Evo", + "proTxHash": "6ee0be87042267b34f8867626a580aa190d6afe3306b3ddfb97d3a0fb6f596f0", + "collateralHash": "6dc2552128987ccda5bce18b79e9672daa2ae7c7e64098658d7421c3b84ca615", + "collateralIndex": 1, + "collateralAddress": "XebFHejJkn5SU9oUXWU6RuwArPSanW2tNh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.187.31:9999", + "registeredHeight": 2087993, + "lastPaidHeight": 2126271, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123119, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XczcvTTnyUFjwRae6CFtJK3oofu7E8YRHT", + "votingAddress": "XczcvTTnyUFjwRae6CFtJK3oofu7E8YRHT", + "platformNodeID": "1146bcff061ef104cca3832f4781de58b6b26f0b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XnyCSR1jTHRuzifUvbEcdArF9wcRuMCpo9", + "pubKeyOperator": "8e63c9e1e1dca75b1cc4986f774da70782b415127adb1f81d57e692ab1f425b50bf806544d7407d22cefb9351ea3150f" + } + }, + { + "type": "Regular", + "proTxHash": "8a44f87f4068e9fcbbf48a27e9107fbb42fe9cd8b6262ba6683ec97530b36508", + "collateralHash": "729fedd351d7443d2b98373648f06b16f77b484fb0ec147644ca273884e6c960", + "collateralIndex": 1, + "collateralAddress": "XsyyhftyhZ8FcjEGVNBBP8STHmGQpqUY77", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.166.254.106:9999", + "registeredHeight": 2088021, + "lastPaidHeight": 2127965, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJktWeJi8eaAM4Pr3sAmSAKBjixw9Gtsr", + "votingAddress": "XnCF9pvxsBtbQNSwx7QMie6azPSP2UrrRF", + "payoutAddress": "XunkSuuZmbzVsckcBPD8rzAMtdPcH1Bg4Y", + "pubKeyOperator": "b7b2c324a57c182d9c23cb9e2e1158b6faf92a1c7caeacec03f1d89da94b9ed5f125626317654408a83af740985726a0" + } + }, + { + "type": "Regular", + "proTxHash": "447ea324892e06174d7b53ec088765676688741d40d983adb845e1c2e2254590", + "collateralHash": "b88218c524254989486233d4b6c1437d160e731164962639f51cbac498a31a4f", + "collateralIndex": 1, + "collateralAddress": "XxeWZFB6D4RMwBsatS5g5wkfjLFKGP6Vkf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.71.197.76:9999", + "registeredHeight": 2088146, + "lastPaidHeight": 2128102, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xwzojz3pVV2HnpUFQGJ35FAYgPyv3w5nFp", + "votingAddress": "XkC8dmkc3sRebi4gJTNyUZfsTuYbXFLXHH", + "payoutAddress": "XgqyeZhRtmirrhP9Hbd5csbk4vwrYMi9UF", + "pubKeyOperator": "a5951abd46313171a07fbb4a0fd79edfa0ac7caf52ac25632870cffbac5ab6d9b72074875d1d440de083b48047e53c41" + } + }, + { + "type": "Regular", + "proTxHash": "1452b7d2c2e7944adadb647a95bb6984c4263f2cc916529f26fa4d21decc551b", + "collateralHash": "e1c69c2cecbeac1221311e23a575387361fbb1b30cf3f4e0da9d3789e3fabebf", + "collateralIndex": 0, + "collateralAddress": "XqP4UiSnYHw8fqhqSCwRVcEMudLDmrN3rj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.179.153.122:9999", + "registeredHeight": 2088545, + "lastPaidHeight": 2128488, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrgWH3aRvzWGfawv3JpGQk7theTecysL4T", + "votingAddress": "XfgwauvZKg8TxQ6XuoVYZDUVkR8uKHKRXu", + "payoutAddress": "XqP4UiSnYHw8fqhqSCwRVcEMudLDmrN3rj", + "pubKeyOperator": "a0090ad43f702404e6a3b3287a344ad6912a8a981061831740dba02522d61e3f21d6a246fe9b8ceb73f727e0894eb01a" + } + }, + { + "type": "Regular", + "proTxHash": "297f7320503d5917169e2942530dc09dc43a768eed9ab31bdf8c9d34929a4f0a", + "collateralHash": "eca9ad3c55c7e2ec5f8c56ea8d369859cce564f0b2b8db4f2b490abbea4800b7", + "collateralIndex": 1, + "collateralAddress": "Xy8YYZpX7JMNoNP9sYEMbMLFjVdrhjp1L2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "68.183.42.95:9999", + "registeredHeight": 2088874, + "lastPaidHeight": 2128769, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoPyxMjivXkKPMx7G4KpiXrpgUoDBzEga2", + "votingAddress": "Xh2doqFaXPKSDeNCJWAEdhva2ZuJYSq88M", + "payoutAddress": "XiK5uNHbrwrcjDqponX5agYKnkg1yWwzMy", + "pubKeyOperator": "a9e143b1a9cef54940ceebd3ee11f5a56fbe72494efd02822aa5ff64755824cbbda65ea370e69336fd438cd086d92ad5" + } + }, + { + "type": "Regular", + "proTxHash": "7e8bf9d0b3c8e7ec56c179facf2d20f63e13aa4ff0d7f5c78f489423cf5f92ed", + "collateralHash": "f22209714f95e3acd9d2086b995668c8b69da270f29a9915db7beb8ea56ed7c2", + "collateralIndex": 1, + "collateralAddress": "XdTQfRgcQvrPGRsLzL4KKesQXyn64knQwv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.65.90.229:9999", + "registeredHeight": 2089321, + "lastPaidHeight": 2125938, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeE28XrZxTfoiYH7i1tfrtwJ6Wqxo2U5Sk", + "votingAddress": "XbcRfj3uiNPqE28DkGi5J3ji164VCocVLD", + "payoutAddress": "XjsCBgY879YSjdpXaaqrFMiEbWUXyRTPQZ", + "pubKeyOperator": "a14d368ba3b7f01bda0d57a31f0673feef104585a68f6f2997f7c4448e864871bd1adac36833b33d0dceadbead060d8d" + } + }, + { + "type": "Regular", + "proTxHash": "71a44259b4ecc2495ed40ee021a3be7ed79c162b23fa30f5b930222f0c8d8668", + "collateralHash": "d12e0689b76b54f6094392cc39487867bf4cd7cbb2b9da2d42cfa55b03e4ba9a", + "collateralIndex": 0, + "collateralAddress": "XboraTzkEcMz3152yrnJC3mQJt63bPSE4L", + "operatorReward": 10, + "state": { + "version": 2, + "service": "194.135.95.186:9999", + "registeredHeight": 2089324, + "lastPaidHeight": 2125941, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkZ3UHLYo9jPYzap8NttWTVSz3cstqQf45", + "votingAddress": "Xpf2hDgUX62ktdDuFLDtbDZ3BKBjeR3buB", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "8c3f7a90e55ad49a2a9990b099acc9b9e5519642455f9e545df907c9197bdf9b8ceb8f4b8bfd60fcae2b4f650a4073f2", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "1e1e5d5882bda6998268e2860ff740a7e38e4872c8e059ce716d744b4a47a347", + "collateralHash": "cfde40be86237e0943df3988cd1a62d071aef87cb1fa9a48d4b8d61431668b52", + "collateralIndex": 0, + "collateralAddress": "XmzRfS7Jhsyymspy2ZPBYgmghb15KvcqSp", + "operatorReward": 10, + "state": { + "version": 2, + "service": "185.81.166.24:9999", + "registeredHeight": 2089328, + "lastPaidHeight": 2125946, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiKMUeUMFPpSCbF6Kno3YKiMZFB4KnYLro", + "votingAddress": "XqXuZxe6kJHLbijsmuDHVN3566bVAg1EtF", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "aec8b2dbe65f7d0e9b8b711315e695fd8ad0cffdcd34694b2bdbfb084a14af751aca8ca58b7e735f865b951cfede84da", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "8b9d978daec0d2249cb88e42426325f3dc36d01dd6fadf8c146f97d5f6bd5f5b", + "collateralHash": "a3a977c4d160b9b8f6cadc95825bf9aa7551794f277d52c2044b454535bf0cb5", + "collateralIndex": 0, + "collateralAddress": "XeWgDusqoNq9b68seWxEecWoXzyfnHBNAx", + "operatorReward": 10, + "state": { + "version": 2, + "service": "89.40.0.109:9999", + "registeredHeight": 2089335, + "lastPaidHeight": 2125953, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxaShF3okRy5RYXthWwoFRMTEj3P6psGL6", + "votingAddress": "Xw24BsvS3hjWg3yDZPFFeV3zyyMHQWyBDy", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "a218fae069be2f1ecd1006cc1d9229e11b2cff57a82eb2192323700bcf87fb86b174bca5a1cf832c0158e51b8f5f707a", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "0e595bdd4838e81f5d20e427921e9666bd8e3d066a23b86d5deeea336172182e", + "collateralHash": "d003c0bb7331e4f80411414ec93dcc62c0701d2d756322abcb2617ce56921534", + "collateralIndex": 0, + "collateralAddress": "XeVekBFoUt8GKJnthDDKCpZEcu1dqVeWu6", + "operatorReward": 10, + "state": { + "version": 2, + "service": "94.176.232.82:9999", + "registeredHeight": 2089340, + "lastPaidHeight": 2125958, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn32ASmbhuAJtMTAySQphLMEC7zM3gzxjn", + "votingAddress": "XwxtC5MsDYvG9sDFhoPsorK7sGwidm2PM2", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "8c527f9e3aa4080d3947303a6cb02c654073b63cc2a8bdc30f32869a38a82aa5909d2ae242e92786ee851b1b5851e5f8", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "6691cdff0b1c6dacd42be799cefbdad3d23e94cbeaaa206b52e0bb587405c17e", + "collateralHash": "68c78e7aaf90120489af01b067ed354ebf43d8bbea3166e7cf7de2ad5bc18a02", + "collateralIndex": 0, + "collateralAddress": "Xghk9ByyLF9RR3ThzViqi9GhqRytMjoa8z", + "operatorReward": 10, + "state": { + "version": 2, + "service": "176.223.136.243:9999", + "registeredHeight": 2089344, + "lastPaidHeight": 2125963, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgNtQxUgWoVXEqxarpS55yW7NuhkttmMTq", + "votingAddress": "XgwDHAMapGb4ptA7NZjxQS6ViSeJsb7Hm8", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "b46d8cf92fe4d2daf83c6cc0d777256f06d3e8ea5445d9fe33110786a2339884accc0bf533ea4f4ceb8727e43cfb61de", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "0ce628a28068eb1381a9ece3ad36197297984a86ef44abcfb3c8431a957fa3dc", + "collateralHash": "8c63eaf831a7e70432fe4103096a306412d7757737471ebdc3e8f45d0106f320", + "collateralIndex": 0, + "collateralAddress": "Xc2fArRYgZVvvfMC7aK6mRjkSiBoFs1ycZ", + "operatorReward": 10, + "state": { + "version": 2, + "service": "176.223.134.113:9999", + "registeredHeight": 2089348, + "lastPaidHeight": 2125969, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiES3RpGRSQUzTCEBrJ2HHzuXtqJnx9x2s", + "votingAddress": "Xx8nEXv1QHjQBngYubLi7LEH43WtPkS42N", + "payoutAddress": "Xxt5QWRLWMCenbqCyRK6MJjpm1Q5FMuNpX", + "pubKeyOperator": "99888c399cecd946d4b1661105657aac9481e1bc1bd78ba7dff9384fb2e8a7c363e554e81107da993b3c4fbd560f781e", + "operatorPayoutAddress": "XrPpHJYFDdhBVPi4tAQ3aRiEjmxEgWnFe3" + } + }, + { + "type": "Regular", + "proTxHash": "640368db560b2d3b6b5cb0d6396d37e16b250d024a028b62ec5b495e0b766179", + "collateralHash": "6a9e554d23448748542b49622ac1e3952445feb69a3f27f0116cfedd1f8b4940", + "collateralIndex": 1, + "collateralAddress": "Xp8sUcF5eMDNjQD2S2KXmPuh6KndcE82o2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "147.182.156.152:9999", + "registeredHeight": 2089723, + "lastPaidHeight": 2126251, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuApiLkpJ33ucXAtfd8HUYbdgS14ABxwma", + "votingAddress": "Xi6FWjEGeanBMCA5tYvUhWrRJV74h6sLrT", + "payoutAddress": "Xhxydng4SBAjPbcYPiHQkFJ1NH8U3WpcdA", + "pubKeyOperator": "af9ddde94daa92b912b573085b6fceb41dc393e3ab39b33d4beca5c649087cc1bff197e032c584cc29717dcbf12040ad" + } + }, + { + "type": "Regular", + "proTxHash": "a98e626ccfed86543a9d628b7f2c51ea07fec55cd12da101179bd695a4596e9b", + "collateralHash": "4cbd0a8fb493128b4c968888379fe9153152083956fcf5f35b1f3d91f585afbf", + "collateralIndex": 1, + "collateralAddress": "Xgp7MbBz6fXUnZ3YiwS4jYKUra93ZMk82S", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.34.49:9999", + "registeredHeight": 2089732, + "lastPaidHeight": 2126256, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqBJUX9fyAMj4AbnU3DN4DZrb7LzmJRBwm", + "votingAddress": "Xp3pwUA4rF5cMgdRmwDNKvrgpsHNVD28uf", + "payoutAddress": "XdyYvAB7W8M11FzzoCKqXcMiwzPNZFJBxD", + "pubKeyOperator": "a83a354c58a167a5eabaae16a50758c20fcd36ea549306d519b3ea4260d18e23cac2225ff60401be5f166881bc56ea1c" + } + }, + { + "type": "Regular", + "proTxHash": "3bceb972e8f224dce72c2aed5440a1afdc34abc75bd1b559a7fc023961d3e61c", + "collateralHash": "9be3dc828d71c52c128e0303925b826ad7e62a741508722a84912be21519c8c5", + "collateralIndex": 1, + "collateralAddress": "XrSPX2jFfTjeEfd3A26e4g2h67Z4X1hCP7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "147.182.154.116:9999", + "registeredHeight": 2089737, + "lastPaidHeight": 2126262, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsGoHeP5i7u8y7XtMNvmJJyEdwHfRXgK17", + "votingAddress": "XdoE76nsY1ydgH8t8RWUuykuShPN7TFz26", + "payoutAddress": "Xf9f8bQMHcKcE9BmE6cbYvbh619sd4sHS8", + "pubKeyOperator": "8cf77f00fe0da155ebbc4f52d9360385d059a01651a79e66524a2dc5cef4873dc4d91ff8da2a042c524510d9c0c5b4d0" + } + }, + { + "type": "Regular", + "proTxHash": "6e27739c5affe0ec30090b7be387ee817a429bac2fa5a2ab0d351ed4c7774e1c", + "collateralHash": "1a1ad0dcb1400d90a34286915a6ead08b71fe7f55c7c56b122c81db3e2b461b6", + "collateralIndex": 1, + "collateralAddress": "XjBQngnhGictxZjGU1hR9MH8pvBEZ3fv6a", + "operatorReward": 0, + "state": { + "version": 2, + "service": "161.35.82.173:9999", + "registeredHeight": 2089749, + "lastPaidHeight": 2126289, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu11EVWB7X9VDzhPjw5xHeaep17aNDH7S4", + "votingAddress": "Xc9qEeqh3skoEsZgZofU9QT9zK8HupRnEu", + "payoutAddress": "Xrg7FoE1wYs5dmCxpro7SmQvLbqLYcwVPS", + "pubKeyOperator": "b16bfc76e595eab19a405486177f481cbb93a4f8a320aaefbead471941512dbfa7e7c44f1cb46e7a3c4e2f409ab15ec9" + } + }, + { + "type": "Regular", + "proTxHash": "d4aeeef5c7e16fa3e10ab669e854c5581ee149aa5dc9f75fde01d9ddb535e29e", + "collateralHash": "52b31088e4daeaecc3fcf5bac520015084509cab955b90999fd69758069ae73f", + "collateralIndex": 1, + "collateralAddress": "XhVFgUQPBapjJdEYHzdSnm9swW4dU5tmDT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.162.111:9999", + "registeredHeight": 2089786, + "lastPaidHeight": 2126320, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeJCmhuEsGnuG3EkFhPZfAtHruAod96bGm", + "votingAddress": "XpsSfkgszevYTD2T21A6545pk5NKsfexyY", + "payoutAddress": "Xth3xaJ3TUG3RuVsc9Ckcqp1pKz3CeVPPD", + "pubKeyOperator": "b772c2aed08f45b9bd95ab656ca92b39063f281f20f26bf4d5e464b86952c99739bae19db47ea326ec54d71c7907e4dd" + } + }, + { + "type": "Regular", + "proTxHash": "55fa0fd8647d6a77a9f0be842650664c6cb9aaa7d6958fccc09eeff9fb8ccd5b", + "collateralHash": "114181d5a9d9d8cbf6578a2a952a8f9ded35617b2943cbb8ad1e99f189456533", + "collateralIndex": 1, + "collateralAddress": "XsSBVv5T4CjdR6WeQKDWPya2PP4AS1ypCk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.241.98:9999", + "registeredHeight": 2089797, + "lastPaidHeight": 2126325, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuyoFFnyQGtUQV5xjpXRUBN6pS7XRFXjMD", + "votingAddress": "XwnzLyhLmZcYbf5CLizggeWLSzJYLG32jH", + "payoutAddress": "Xtv2ykrdMif3j1uchZGVzRGJWDaLPS1hcT", + "pubKeyOperator": "850c2c250559a68e02a64fac8cbd63fc326c6f130ee5db3d0ca85dd81e79b2c3cf06dd018d38728454cf5cf11bf3b0c8" + } + }, + { + "type": "Regular", + "proTxHash": "c565f5c98cdd2b1b21635f770351051b60791b268af69d4141c2b9aa3a9fa107", + "collateralHash": "fcc882ec101e67948c04b2b2c59a6824efbd55de574531765cedd2d9626e2136", + "collateralIndex": 1, + "collateralAddress": "XvXdiSRp7efgyNbBpuQHQWDTmuBpiM9CUu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.175.68:9999", + "registeredHeight": 2089797, + "lastPaidHeight": 2126324, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsPdbao45hekWLABRxKcoE9R5KqXyzpb8A", + "votingAddress": "XytTKjLEwxgTYjy4StaNMfixEtyasYNm7t", + "payoutAddress": "Xu5ZhfWHLUuLv2CjzYuMx7tjaZYT254xx9", + "pubKeyOperator": "8b425b874998b94e564cce0264149495aec92ad22a57c6ed60d902c8d7ca96a071b675adfc1580c1a719d1ac300f1faa" + } + }, + { + "type": "Regular", + "proTxHash": "b1aa779c9cef8e2ca84fa9f2a8870463cb11300f4ffff0a4bce25b7b57eb2d01", + "collateralHash": "0d9455c2d7b1906f65015ef73aecbe3e528be8ed7f40b9e6f3e78feb61f8343b", + "collateralIndex": 1, + "collateralAddress": "XnwUZHari5wbhiyxsUMsLC3SGGJvv91t5U", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.105:9999", + "registeredHeight": 2089798, + "lastPaidHeight": 2126326, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo3xqzUvgosyqFteadpBQM8yqAn7iZh8NM", + "votingAddress": "XkAbzmoBm4GWAKSaeqVsNLoXCCzrRGnWpm", + "payoutAddress": "Xu8t2cUH2jH8yEVSDVxmATisubgssiJ6e8", + "pubKeyOperator": "956ee18e0858949f2f28f695854e1b93b8d619c90aa4336f2f322d06ef5fec3c557f0aa7d645b39f105e48d9fa9bb7be" + } + }, + { + "type": "Regular", + "proTxHash": "83a5bcccc3632cbd41b5f1a31c476eedccb73e73a893af3c7cc55ae1f63ab0dc", + "collateralHash": "e5b95b5538bf59d7a09a39cc489835c4aa750cd8982da246faf99bed46fed33d", + "collateralIndex": 1, + "collateralAddress": "XhjhLi6LedBZzbUKbAhQaQtaT5qD8TeKZN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.219:9999", + "registeredHeight": 2089802, + "lastPaidHeight": 2126328, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvLTMRSmPcbPu5xup6ZFtvPaM17w2gMY87", + "votingAddress": "XomK2amELKHM9Gr6vqTSAR25GRho3fQ2aG", + "payoutAddress": "XuF373YR3PEZm9suFybLLndtpm2MdkDzgc", + "pubKeyOperator": "9109c4a181b53602cafe3a2330f9b9e972691d2075f85942eb0643db74513831a2be352b2d27bef802f7dd992f006534" + } + }, + { + "type": "Regular", + "proTxHash": "578096aa8c9e9cfce7b0f748e189ceec54c73d3a5f8f5c49046720495fb510ea", + "collateralHash": "25fc698bad860362580e071748b2ae5a3a2d0ea8a8218a75817a6b35c5c6b156", + "collateralIndex": 1, + "collateralAddress": "XhZnfwtiMw6dQToe9jg9CkznwvYzqqP5Js", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.217:9999", + "registeredHeight": 2089820, + "lastPaidHeight": 2126347, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbvaCHM2gPinN59utSZX4u2TWTBAFWViXW", + "votingAddress": "Xrd16aPQU7DXvL5hb49cobnJmzVdj924Pr", + "payoutAddress": "XucdyLrpvgniaXxtRsqdAvehkXkCZuwwKT", + "pubKeyOperator": "997232fa4c8d8532c6aa9eedb035011309f07e6b90d3ee6fffa2eeee5f66fbbb164ce8290c6fa63fc1b74b86161d2900" + } + }, + { + "type": "Regular", + "proTxHash": "98ce60b8e1c83ef38b590cc09d86937c3670731cbc7759ab9b1bd26bdbf4c9df", + "collateralHash": "765e12741a62e0d39cedf8d826c09e25f6c779badd50cf9447b319d6733e559e", + "collateralIndex": 1, + "collateralAddress": "XyCntb4pf6A7KMfmMyjGL5v6Yv2mGtWHsN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.236.104:9999", + "registeredHeight": 2089824, + "lastPaidHeight": 2126348, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjJv7W98wAJeNayUHFZwwZhKASSG2xH8Ku", + "votingAddress": "XnCSeFCShBeZEdozwmdMpSjpHVjfnaaBhG", + "payoutAddress": "Xunwya1Eqy1VbTua3AKdrwdTwFSwtaQwVh", + "pubKeyOperator": "9012d16e4840215af9812858a9a26d04d9892589d35634329a80de87d184897eb5105fd46e3e26cae8ddc0cf27d4cb91" + } + }, + { + "type": "Regular", + "proTxHash": "0a4398a5366fa46fb1576ccbf20a7150437ffd24f4199b73217a8daa76c1154a", + "collateralHash": "23b51bf427005ca18cb061b15e1421733396d51f4f08ab367d00315cc2667726", + "collateralIndex": 1, + "collateralAddress": "Xp21Qf2VV4M5kAJrTgLUTSvUv5jrEoJqnS", + "operatorReward": 0, + "state": { + "version": 1, + "service": "[::]:0", + "registeredHeight": 2089828, + "lastPaidHeight": 2106976, + "consecutivePayments": 0, + "PoSePenalty": 3846, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2108778, + "revocationReason": 1, + "ownerAddress": "XugyYSjJnAuPtvpyzF1LFYFSUZdg5smN8v", + "votingAddress": "XimeYnqYd9YzrZtUgvFvFrUTuPWVbCDSA9", + "payoutAddress": "Xuux2GizoCx8b2m4ucFso9FK4DgQoHN3Mb", + "pubKeyOperator": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "type": "Evo", + "proTxHash": "64c9c11cfe31be3c1fec56ffb2a756cb352c164f3fce1c0a9f991ab797b20d90", + "collateralHash": "4ac5055819ab52e571470c5dea86bd8eac91ec50725ab4cdbce31c52a37741ce", + "collateralIndex": 1, + "collateralAddress": "XrgFyfjaMNA1RycNPHWa46vniBYqnXksTM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.7.115.43:9999", + "registeredHeight": 2090832, + "lastPaidHeight": 2127304, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwKvxmBJKv6DLppFTXbMqFaxuu8wSkzbCw", + "votingAddress": "XeBF28ZPGRS3ETD1KZW7nC5yh3wwX7tDFf", + "platformNodeID": "79ec25bf51ad09c3b4e6435e3e6d22e864ab690b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "abf8d7c9e5faa19a6c82f274aecb942fc2f5d34216f074c8ee0a79fade914d1300b94f6dad8dc92fa1a65e088db7a7e3" + } + }, + { + "type": "Regular", + "proTxHash": "a9acb5e8993af1e6f2d51952db3bf747e93a80a924b8d4291d0fddfcc1c6a4ec", + "collateralHash": "ef5ffd67fe6ae1f17e0153ea35f178a84349951eac2a3f7b06e38c9b8addec45", + "collateralIndex": 1, + "collateralAddress": "XvcU621JxHLQDExg69fVE1Gsgm1QNfLd8c", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.47.161.193:9999", + "registeredHeight": 2090838, + "lastPaidHeight": 2127307, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XotoYwwXwCUW9zZjc8L4nm6ZpMzsUVB8ff", + "votingAddress": "Xp8qsGA4Tyqgrgx6e17EKN7fdBegd2PUTc", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8075cf153b756f10ef006d9357af3245b2eea01e5d05fb92602041decc50d3df9961c6d3bc769a1bb7135f965a8dc465" + } + }, + { + "type": "Regular", + "proTxHash": "79b0db2d77cca8b80974f743aa311ef27022cbcb7f623ac727f81b3e4256805e", + "collateralHash": "c97511e2dbfd24a194ad9b05f2849489d3c937e46f41ad7243637d4272f27917", + "collateralIndex": 1, + "collateralAddress": "Xw3YjEL5NPiwxMqzExTF7UrkdxbzRRfv6x", + "operatorReward": 0, + "state": { + "version": 2, + "service": "162.246.17.248:9999", + "registeredHeight": 2091249, + "lastPaidHeight": 2127769, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaqA7FrLiRLSseD7gPu25ZGBwDUWJVPwwP", + "votingAddress": "XeFFf3dGfkpKuy6bCutcbfw45CsRLDC1Db", + "payoutAddress": "Xnx1ZLe1GULVJbSjcsNPKRBzKDHWnzUBMt", + "pubKeyOperator": "81dada1cac0a87e925e4484020a17a9d83100b826acb743470e71cfbf0454073df05fd7a77049912441311dce93089a6" + } + }, + { + "type": "Regular", + "proTxHash": "cb838a65cd1deaa0bc3c51971e20e0a7d9626b26ba72ef9a2e51be3d2c87522b", + "collateralHash": "cacc9430357b75ec98f2df67b9d479433370d7cf8424cb954eb1344a3e5ac23a", + "collateralIndex": 1, + "collateralAddress": "Xu2qQxj7oSkiMawtpN73bR6BdkqcgtzcY3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.205.5:9999", + "registeredHeight": 2091644, + "lastPaidHeight": 2128189, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpVS6n92U7WHC9FJnahkhBduZjcaC1TdtG", + "votingAddress": "XiThH8si86H8qRirPYjisXCPHwWPG1gcGE", + "payoutAddress": "XtXo7h7NN9ZXhNaQc5f4meSjohf9VGdL4w", + "pubKeyOperator": "a52f568b6c4f64c8338629771a3816de209d79345cc3dceb6b6f8109b81caca35e5fe82870bda259af637807cf715013" + } + }, + { + "type": "Regular", + "proTxHash": "ee8d831b7ceb4b14ba7274599973050e236b77ad6c29fdef7babae84a23e4e9d", + "collateralHash": "7817d0c93b3b4a831d119e8b95da08863c801f221e9d59076ff2a72582138006", + "collateralIndex": 1, + "collateralAddress": "XjyHXEV3QrKRUPUEUZjrVUivQTsc7yX133", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.101:9999", + "registeredHeight": 2092134, + "lastPaidHeight": 2128634, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvmE1hRyemihsDWCUfyf3etCcmgSSM5Wk2", + "votingAddress": "XrgDnv2Ceu8D9zURSehRoksVjdFD9KgjkC", + "payoutAddress": "XgwPCgR6BLFiWfepFipnEQeUisf7gwUt8t", + "pubKeyOperator": "ab10bf77192ce7f385e8644b55489678f3dda290304148b09703576ca4e67af565b379f56270744e101a450ba73fa194" + } + }, + { + "type": "Regular", + "proTxHash": "0195552213c967569b6b0e31a40974b454b3a3642d1b5a2d89e20ee32c400c08", + "collateralHash": "e856fca94ac94f3324be9cede3de0498bfad9a95e65138d6b209c72ffe067021", + "collateralIndex": 1, + "collateralAddress": "Xs57r8jyVtcRUuCxXfFDP8Lz1d7uQ49JZY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.102:9999", + "registeredHeight": 2092681, + "lastPaidHeight": 2125887, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxzRDYupboABypvehKLhVBUhqBw8KmLUFv", + "votingAddress": "XnkvwSvWccVe3QxYSV72G7qP6T61uEckRF", + "payoutAddress": "Xs57r8jyVtcRUuCxXfFDP8Lz1d7uQ49JZY", + "pubKeyOperator": "a1df1962051914b87c3b9e89a657f90aa295dc89dc95fb743b466c9915841da64f7182785175c2c49569b4e9ee926576" + } + }, + { + "type": "Regular", + "proTxHash": "ccbd9a13768d65e0e3d4383d136feb75beab65928c4d73f46382c09bc68b1086", + "collateralHash": "cdcc99a0be837cd91c8b3aa5509558165b7cc1090621aa8429e00b42413f4099", + "collateralIndex": 1, + "collateralAddress": "XeAr8rDecopCw6sCre4yuedk5M8oXzwNRT", + "operatorReward": 0, + "state": { + "version": 2, + "service": "92.53.105.238:9999", + "registeredHeight": 2092944, + "lastPaidHeight": 2127811, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2094696, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnsCvSXtAAhirtv9cedhS39ktHgeJSES4d", + "votingAddress": "Xb6eCPeqanmCtK1Ka6xKgyFLkVwaDwgiEG", + "payoutAddress": "XdGJcejidPYgYRdpEif61bKoDnSyyHFyBV", + "pubKeyOperator": "81963981e29d4f88b7a67db5d304b853af63f11d40f7458669d309e3891c79332ce496178e11fca3b4e59c98f639374a" + } + }, + { + "type": "Regular", + "proTxHash": "016753d5c82c0061148b1959bc9982e479135bc9c9c4fc2626ba6c135256144a", + "collateralHash": "19d7ae18a683d23cd8b9d00ddfe70c7fa72e9cb5fdb2b4e2417dcaf34e4d608b", + "collateralIndex": 1, + "collateralAddress": "XvQfzT2Yd6wnSqCzcorAyYYQ8XQYYCruPu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.19.64.19:9999", + "registeredHeight": 2092950, + "lastPaidHeight": 2127843, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2094725, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJcoc6sAkjefBE9npmv4rtdsapXnKBDBU", + "votingAddress": "XyWtWXPTxf2Q8dH5NLsyUHHZf11ao4fC6M", + "payoutAddress": "XxZbfPh75nFgWY8eAJDkDvkE8oiKztr9Kn", + "pubKeyOperator": "ad03315bac0f2397141fe09217f6f6cc833ed3ab06bca53477a00392cc273ebf2503dbf8d11176f8cd8ef717ae8ae0c1" + } + }, + { + "type": "Regular", + "proTxHash": "bfbf84f39c3b1a151eed0d79371da313336abba5bface7904f491e7e58c97a30", + "collateralHash": "f0ef9282de42b23c5b01c9a77ba4714112ae4da7baa0ebc5615bee795b6695d1", + "collateralIndex": 1, + "collateralAddress": "Xrf9fQaJ5RvSjm9iQrRwoPQpgD9GbBJTC3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "92.53.105.80:9999", + "registeredHeight": 2092952, + "lastPaidHeight": 2127850, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2094730, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrkJE5ANkWzeVR9MBsLebf8GHPoWqrXgwM", + "votingAddress": "XbSMBdxCsTpVzF8HcmhePtSHG7c4dYJZ8w", + "payoutAddress": "XogfE83ExdCEpVac86L5mTb7b6xwTZCTMb", + "pubKeyOperator": "885e99a568e0ec8b5d640d75242fdc1eb8d5b9944a48b49128dc974217af41447db648b42f96e39ee1abc03a6abc81c1" + } + }, + { + "type": "Regular", + "proTxHash": "6ce438752f0e2983efb1b940f63b8633d03ad28c06f8b26888b7090f2e084d1c", + "collateralHash": "02e2f4485ecdf0dd3dcc9ec8899e8600069edbd8dffc54c2846712dd9b74474a", + "collateralIndex": 1, + "collateralAddress": "XvsEGBS6GPcNLnQitTakXzA1aeEVAeFLs6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.197:9999", + "registeredHeight": 2093135, + "lastPaidHeight": 2126258, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcfuMQeva27XhA2FKkwo2feNGKFzsUdTmF", + "votingAddress": "XpBJ3BanrhCf6i5GhS7pFZuPGqtPgfGLLS", + "payoutAddress": "XvsEGBS6GPcNLnQitTakXzA1aeEVAeFLs6", + "pubKeyOperator": "a04d7f4e3c0e189b6331ffaeb8d9de73d81597a665ba8fa8322871fc4282a7aabf2dcc9a820f82a2d556b8a081b4ef1e" + } + }, + { + "type": "Regular", + "proTxHash": "275bf5b7a4b0af971c523e34607c23e08db28df29779a6c289772498c48ec9fe", + "collateralHash": "d2f37da3eb5a92ed61862d6ba3e134401474ec03f9a32f64f7a225d5eec80693", + "collateralIndex": 0, + "collateralAddress": "XgmY7TCcwYTGVtS16J2x4fGi9vpozzugk1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.197:9999", + "registeredHeight": 2093140, + "lastPaidHeight": 2126266, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xpq12oeJcNRvfB2tedeZXZLkHGs7wzgz4U", + "votingAddress": "XcvXVCWZ4ayr4s17Lg5s9egP4Up69shJX9", + "payoutAddress": "Xwst58FRvrYLTnewB6c61ptieqpbQPx7XJ", + "pubKeyOperator": "b536bec4df30bbcbbf529d76fa7897c9e7556c2c544a4f527ac5e57c146e0bf0c6e5fe3c7d0f6178598e80b42fde392e" + } + }, + { + "type": "Evo", + "proTxHash": "4eba7299acd923212f9ff9faefda1c8268ff2366faf4099cc36fd0db403703b3", + "collateralHash": "f99f3962ceb7295681c1b781cb81603695a370227e8b6f1b2725f068321a0629", + "collateralIndex": 1, + "collateralAddress": "XyEdsTn6YgFAykTkwFxjHhZ5pAATYkZUVV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.179.241.182:9999", + "registeredHeight": 2093478, + "lastPaidHeight": 2125767, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2122610, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbEdLbWjtQ7CU4CvDfwJtcfWpAjrCYYJ4n", + "votingAddress": "XyTfXSzhvWFDtYZkgiE78EiNKtve9tJKLV", + "platformNodeID": "5e2e5f252d800434df16e1c0da35cff3fd7e190b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxDuNYWvC3Mz8BrsBRPP7ysBgZU9egSKoQ", + "pubKeyOperator": "826326a01ce533f34e78cae278549f791cbf39cac606c49a790e278a667263ae689b433a9ad817c441462bdf0be1d841" + } + }, + { + "type": "Evo", + "proTxHash": "ce6ca219907bdf643803b614dae6e52ca3a2a43910be8d478a0a1d303b987d9c", + "collateralHash": "a1dccbc34f540378784aa4db876752cc81cfa8d50e4158c080784a3519051d91", + "collateralIndex": 1, + "collateralAddress": "XbVuLnihkbZEqkcKREtrcHBndgD6EqAxXQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.179.139.125:9999", + "registeredHeight": 2093654, + "lastPaidHeight": 2126686, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnj7gkRbr6nDZXJxLYxuw33hhNXFbFD3rn", + "votingAddress": "XindY1wNSaFHjkYPscKS7apDzkjEDx79Kd", + "platformNodeID": "2577d4d04e7c62554b5dbbf442b8785190254988", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbxRVUHFHvu1UzZzR7AtEuf2wQA6rXMRHi", + "pubKeyOperator": "910ad7703f1e943963031d2dad7c9430269259a4b525d0f3c7266abbfa9a44ccdcbbaca7aa8e45c658535ecba21cfe65" + } + }, + { + "type": "Regular", + "proTxHash": "174fd2843393f5e4c99914bd60a6f20ef1f912111b37b925750c4f93fd2502ea", + "collateralHash": "8c3afac64caf3a81aebb81fb91ab1b45bd940fc3626523619357be9c837ad9dd", + "collateralIndex": 1, + "collateralAddress": "XvrNaDWxCsyyMc85HLZpfvkGKNxHHfBYgV", + "operatorReward": 0, + "state": { + "version": 1, + "service": "141.11.49.167:9999", + "registeredHeight": 2093997, + "lastPaidHeight": 2127012, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyZwxqibcGtu2SKJRtE1GpzSzdX9n66Jg3", + "votingAddress": "XyZwxqibcGtu2SKJRtE1GpzSzdX9n66Jg3", + "payoutAddress": "Xe8C9DX2bba1bwdgcekZGuVs7VahPC2myE", + "pubKeyOperator": "00c892af4c2bffaa223c6fde02533da391282799233adeda589e5c5a2659fb60b9b785e31ac48c2cfabe3dbbe8e84362" + } + }, + { + "type": "Regular", + "proTxHash": "14d53cbf8dee2b9877deba6ff65695e954e91acf16239a90e42ce70ee50f276e", + "collateralHash": "14d53cbf8dee2b9877deba6ff65695e954e91acf16239a90e42ce70ee50f276e", + "collateralIndex": 1, + "collateralAddress": "7ovKgNY4x3yynZKFq7JvDvEPhRynhCtoHY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "80.209.239.139:9999", + "registeredHeight": 2095028, + "lastPaidHeight": 2128167, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmZAYuUq1asjseEgpN4X3MyQruLo9QAuta", + "votingAddress": "Xhpt4QEF5pb4ipiMqV3zVyoR2o5mcU4u5u", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "851ed02ea562eabfe3fea562264dab98b8875f24971e19bfdf42affe2f13ef2b3f71b284750be3f1039c95277016851f" + } + }, + { + "type": "Evo", + "proTxHash": "61569ed796c4e1e3e1f1cf34306526ab967feb916242cf9e9b251206fed9f656", + "collateralHash": "632e05f025b7b57b9a8de558900973bd6c368d833aa3d87c11c8e6f39d461530", + "collateralIndex": 1, + "collateralAddress": "XiGXhjYVjEiDW8FyRjhtBWkgCihWmXwRQQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "108.160.135.149:9999", + "registeredHeight": 2095278, + "lastPaidHeight": 2126555, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2120502, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XejwAoUGLLnSkdV9RZuRSVvvh8fQLBKjMc", + "votingAddress": "XejwAoUGLLnSkdV9RZuRSVvvh8fQLBKjMc", + "platformNodeID": "9b985ed306278358910a58f727f4cc2519ca95a5", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XpXJAB519suts1bdGByJnhqwH4yLpzkawU", + "pubKeyOperator": "a3b5d3691a867c6a68ec67e3095278611858c90a74d504c2840111f03bea1c2acaf70e2edf37bca6f28cc907609d22d9" + } + }, + { + "type": "Regular", + "proTxHash": "e9883af43902d4d952eb276fc0f87655e08cb35fe8ab837dd4ee9f7b35c9d630", + "collateralHash": "181c4f0146f0eb0151ea72633da41b3b2ba84c58d2399db5dd1c5e57ae8edd5d", + "collateralIndex": 1, + "collateralAddress": "XqpLouk2cfScqFkuvZ1Ji9aX8ndC6kPEZM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.36.130.224:9999", + "registeredHeight": 2095784, + "lastPaidHeight": 2128828, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbD7wZwLbvJww3iWoLJWjcCoBYAds1rg7U", + "votingAddress": "Xe6PQ2QyiyNxncW9v5NyqxMmeqBoSGaREx", + "payoutAddress": "XkwjocgndphrdHUNbueXd5LRVM4qGnKFh8", + "pubKeyOperator": "90dff1648ae43d636040b6ae63420dcceae83edad06d790b82043053e49fbab09c472a0d396d051e83b77d440cc8c90b" + } + }, + { + "type": "Regular", + "proTxHash": "13ce871b9562e03228c4571750a3aa0410aa1a9ae8621698664d4c552fe91cea", + "collateralHash": "b3117fd59a5d2f9dba63b1974aa49c68da09f87acebb1527dbe491b974291530", + "collateralIndex": 1, + "collateralAddress": "XxfJpsiW7TSaENiyenNstcE5hFckQ3SLr4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.21.224:9999", + "registeredHeight": 2095827, + "lastPaidHeight": 2128865, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdWMUq38tcDFhVv4RKrviQSyjwVo2YiAEx", + "votingAddress": "XdrSKk3Kz8KSki1TGTVX8xcG16CTgD9imU", + "payoutAddress": "XxfJpsiW7TSaENiyenNstcE5hFckQ3SLr4", + "pubKeyOperator": "ac1b498f6193fe192d61bffa332ffdd0b5c028b4177d9a164a6c07bb8faf607d470cd1a1b5f709ba8d75dc7d7c919e8d" + } + }, + { + "type": "Regular", + "proTxHash": "37a4bf11436043b691deeb394098824a3dc845f2d2cd0f8bc7ed858e7c1f31fc", + "collateralHash": "6a313d86bbe08f9bd843a76990f40d727cb5fa232889a3f4b4a3f75b4bc6263b", + "collateralIndex": 1, + "collateralAddress": "XfwC3qbTqgwUjfDKs8pZyPADWorY811Ss8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.109.166.101:9999", + "registeredHeight": 2096309, + "lastPaidHeight": 2126086, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe8AVhiPnkjatM5Fbpf6VMCD8YbFFUisxZ", + "votingAddress": "Xe8AVhiPnkjatM5Fbpf6VMCD8YbFFUisxZ", + "payoutAddress": "Xk5CjoUHSt4q2gJ4cpccbF2gpc5MMn9Dfx", + "pubKeyOperator": "8ae2d22342f8177edd0cd45217f3877d9a01d291e720c6d0921a6bb3a3acea3c74a56f65894104ef8b576d26effcddce" + } + }, + { + "type": "Evo", + "proTxHash": "52882407701dbd3b1b73e37c05225908938785da21470c67f61897c62dd4509a", + "collateralHash": "5714270742d1f461e180a0962af82028431d37cc1b455d314cff885785269a30", + "collateralIndex": 1, + "collateralAddress": "XsnMsPpo2dXCoFWRVDss8vyg2LJUUo9xeH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.141.74:9999", + "registeredHeight": 2097536, + "lastPaidHeight": 2127192, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbwhAuvAFydjA5m4S2S51kfgjz41fnz51v", + "votingAddress": "XuoV7mQKSikoZ5z1DnJyyUSJ14HCKYVmYE", + "platformNodeID": "fed1007c668b46abc06dedb423d1adca933bce56", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjhiJxbi7QFwKpLCsjCM53biHq4LbEjx8v", + "pubKeyOperator": "9507595a4feb8a826038f7f2109f1ba0b96c6a256e3f34bbd88d3115c06d3579b0c2d2d5666105cbd64857d3f8fc1b76" + } + }, + { + "type": "Regular", + "proTxHash": "b35a16ff9d9209135d3691bcadf6c62ebf0f97d75c3526eb778125e6651a9b92", + "collateralHash": "c475c4ce7985f72af765368d6fce95709141816cec4f8b86765c692c25f53234", + "collateralIndex": 0, + "collateralAddress": "Xso4K8ok5Jmppo2j9Jhu1GDxLbKMwQSJ3U", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.95:9999", + "registeredHeight": 2097874, + "lastPaidHeight": 2127500, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrmiJmFGJZcJVxVDjqM5y8NqbGCWD2Gw6A", + "votingAddress": "XxJaV7JGKQw3ihgHJQZDDvn1GMUQj3JRpz", + "payoutAddress": "XxmC2vrjkbkunwNBsHoVzeX7Sxj7YmkGs1", + "pubKeyOperator": "834380ca900a44db888669a5cb312ab2a640509821f8d79be1341fbeda3fc6393eca0d1f6e54814bd96ab60b722af887" + } + }, + { + "type": "Regular", + "proTxHash": "df77c7ee23c91ef71a242dce88c7d3d6a72f083656ce63472890bba4b324713e", + "collateralHash": "a5020186443cc6237fd36b886eb0a4fedabe10d6983a12a4aa49583036a6597b", + "collateralIndex": 1, + "collateralAddress": "XnDRgggkQmjQvH74NR6EJXAFwewbAMKZcV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.163.18:9999", + "registeredHeight": 2098947, + "lastPaidHeight": 2128597, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnxsBxHnwu8rVtTdLkwYrnpPdygLDmg9A7", + "votingAddress": "XouSnj5rLnvWvvZTeZ46jwEYCNJ1aNXqiQ", + "payoutAddress": "XnDRgggkQmjQvH74NR6EJXAFwewbAMKZcV", + "pubKeyOperator": "a5e41f1f312a3d99009b3374cd90ce2d4bfabedaa2e890402b13313b87bc0d359fc1e6c1a2d9c54e4e0430987ce6e3f0" + } + }, + { + "type": "Regular", + "proTxHash": "96c83ca97e43e307adbe113683827234e192b24e97e32842971f2e1de9a67a8b", + "collateralHash": "bc59e02aa1352ae60a66dbb8758c57cbda2afab4a3409fade263d6df494ea1e0", + "collateralIndex": 1, + "collateralAddress": "XcxPSBzgQ7mKZvFCPZLoBvg1VrTkBfXbH8", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.205.9:9999", + "registeredHeight": 2098949, + "lastPaidHeight": 2128603, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgx7Q9LaskmvYk35zYBp9m2Z4cNRGrPDav", + "votingAddress": "XhtA3hTqukV5E4Ud8awhudP9Xs1v1Kifp4", + "payoutAddress": "XcxPSBzgQ7mKZvFCPZLoBvg1VrTkBfXbH8", + "pubKeyOperator": "8225068c2eb10a88f3035deddc2e15863e4a948f882029cb5eed20a2d8681d2704613cecf753c32652da2ed09892249b" + } + }, + { + "type": "Regular", + "proTxHash": "75357ba3fb4ac057e67993de9ae8b56f7ba2b2680021a80ed2a10a8eed31a3e2", + "collateralHash": "543a7bba16ea7935a46e1cd0b9c771d7850eb109ed0f42261b2d8616066ffb74", + "collateralIndex": 1, + "collateralAddress": "XkFDxbjUKtoZkCAqm2ugiU2zGb51GQxT4Y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.232:9999", + "registeredHeight": 2098949, + "lastPaidHeight": 2128608, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmnZkaAgi1wdM2jErR5ZKFQpkhyQ6QtgDd", + "votingAddress": "XtoBKmoJ5BaiC7jtuUtpGLBFHkst9tAnLh", + "payoutAddress": "XkFDxbjUKtoZkCAqm2ugiU2zGb51GQxT4Y", + "pubKeyOperator": "a0caf2d097cac09d478e1e7992ec6e8423f7962ed1aa0afce5a2fb34956785fa758c5d2cde66d80d69b126e1ad783b56" + } + }, + { + "type": "Regular", + "proTxHash": "220c43630719e834efec1f57cae8235e12c668a091f869b003f531ee0aca326d", + "collateralHash": "3d8611fd06e254e4afe684fc5c79fd6ec785308215709b687ecd5c8a2f800dc7", + "collateralIndex": 1, + "collateralAddress": "XdQ7Smre9T7AvaHsUGM9HYicbTo4Lsd6Jx", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.15:9999", + "registeredHeight": 2098953, + "lastPaidHeight": 2128610, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiSbvWFtPTuvHHdKtC8Rt4Eg1SQ95axVZh", + "votingAddress": "XfovDFzLNj3vcjBjPMwjxuxWsLXihiFNxo", + "payoutAddress": "XdQ7Smre9T7AvaHsUGM9HYicbTo4Lsd6Jx", + "pubKeyOperator": "b0727ec24a7b9acbff4f322f420f8c513f02fdd6b0534092b27dd4ae1a4cd624556762d1cc477526a7c37d718d563f81" + } + }, + { + "type": "Regular", + "proTxHash": "d7828a555e6ff78598d04b91be1b8c94039b60b632912ff04a86546f874e3f8f", + "collateralHash": "c9916626a82ef208536109b0217d9a58a8ee47d01e631beca5a6b83376259800", + "collateralIndex": 0, + "collateralAddress": "XmxadH9RzvMz3rqqPE38a6fUvPdBnnZHqv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.96:9999", + "registeredHeight": 2099234, + "lastPaidHeight": 2128846, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoMeohZNhEnv5qkKv2VUbRmNpJ1QWDmkoQ", + "votingAddress": "XpDZipn3rQuy98F7f9CdNgJWDvqubjArud", + "payoutAddress": "XpA3DSrDpx2rMf5QbjscciRT4NeVAY2WVr", + "pubKeyOperator": "9505ffc95516831ad07573affb06f4f3fb94664e5c191092bd0237d160db8b84780c85f9b18c96e33c43af1d4db01262" + } + }, + { + "type": "Evo", + "proTxHash": "d23104cb8d1019500523e8dab780b9635a7a2e9e48779d62063cd1053db2f4c6", + "collateralHash": "8077b2febba678b2c25775f9775a5bee9456b8f7c68570f8f433bfe99db567d6", + "collateralIndex": 1, + "collateralAddress": "XuRUh5LZtJgkdSzKCBwMyBcCkHjvCmgGFu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.254.241.7:9999", + "registeredHeight": 2099559, + "lastPaidHeight": 2128554, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119278, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdFZxdFeV1DcWvQyZkSAiNQ5xqR8aunaVC", + "votingAddress": "Xv3zj3GohRu761Et7ZVrVzFJXzfxZu2ggx", + "platformNodeID": "7b6853808c0b720112a005c4ffe6db4e2758f428", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XoREQsu9vrFQmaMyhKExNiJS3DRF9Q3wPN", + "pubKeyOperator": "8ba29c3ddfa4a7e22f779810aca6ae991ddd06f7a53d57ba1478607132caecb4841b27e7b4c8cb5baf262d136b506acf" + } + }, + { + "type": "Regular", + "proTxHash": "0a7867ee2c48403f5ec768e99340727fb0fb83a74948e490a39d51e192c1af0a", + "collateralHash": "17fc8775d707912fae56fd394b2a3fbf15cd53fcae5bda387328a51efde49368", + "collateralIndex": 1, + "collateralAddress": "XscksiY8NV4HW3taC11PZshQ5M6riVqPs2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "74.50.90.113:9999", + "registeredHeight": 2099669, + "lastPaidHeight": 2126026, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdZ6qDvgN2CeXdm8BfAMvXoo6fCsvcYEsh", + "votingAddress": "XeWJahrg5LxFFB6E3MZMCNxzNiv9Yk4HL2", + "payoutAddress": "XiGWxtF63fh2diFpmHdUimi7fEhFz4CMTH", + "pubKeyOperator": "866149fe0b670b4b4178f60fb0c9a70dd0b0210e4fde98f327f0d0b3136fd0d0f695564a2b78b61f371940e3a67547a7" + } + }, + { + "type": "Regular", + "proTxHash": "275b003bf05733b79b736c0a0f4eab4c466aa5a462532754f7ec597c80dd0a8a", + "collateralHash": "2e2329bbaf5804d1f00100103628871ef28bdc16fd6c94cd6f646f3748475625", + "collateralIndex": 1, + "collateralAddress": "XiYhYj9xRWSo6Y1XDNBaddXKDfDoypaBTQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.226:9999", + "registeredHeight": 2099749, + "lastPaidHeight": 2126087, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv2KXxDKMzyjund7KgPgiEV3fbYV6kpBwU", + "votingAddress": "XfAS59sMt9KtGusK8w4C6GsvA22kBvzf3Q", + "payoutAddress": "XkwjocgndphrdHUNbueXd5LRVM4qGnKFh8", + "pubKeyOperator": "aaa37de1c23db5cec72c9e0d07241274f4f238798396d59a75a5435377d70ba9b6fdfd1c44a70f23b6521ec0c2f040c3" + } + }, + { + "type": "Regular", + "proTxHash": "9920e90293a6c387366ddd0c99d78d96f48b6167918482128ce774246abd70c9", + "collateralHash": "5cc4d63c1d598eff12f63ca0778a89c209857fbf8c0003a54606bb8793f87206", + "collateralIndex": 1, + "collateralAddress": "XgPx2he5YSbJDd3zv3tSBabGQ714hZpYSe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.222:9999", + "registeredHeight": 2100395, + "lastPaidHeight": 2126594, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XntScmGogexs9BGWCM5G29wypNiW5K47iK", + "votingAddress": "Xbg9x3tViaXPT8Es2fHibfiU4uUq2he35j", + "payoutAddress": "XgPx2he5YSbJDd3zv3tSBabGQ714hZpYSe", + "pubKeyOperator": "99c383530cff197956f4b8ead89a4c8357265009007c71a37a05602d9103d9fb195bf15b533c967b61fb0ea7a27597ae" + } + }, + { + "type": "Regular", + "proTxHash": "236987e4e61c480449cdc3714bd656d8daf80ed7229631f732fd4772d30830c9", + "collateralHash": "6644c8d02b4ed15f20074f4b46291bcd3f0fb547841d60126662400f3edfd45d", + "collateralIndex": 1, + "collateralAddress": "XwJQf4GDzprT5w7Y1D96wK513CZLQr3d6J", + "operatorReward": 0, + "state": { + "version": 2, + "service": "80.90.186.194:9999", + "registeredHeight": 2100761, + "lastPaidHeight": 2126914, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XayQv6u5YyjmdVvpKxK1FyEY1yrXp5siaL", + "votingAddress": "Xq1KgvhY8Ys3rRMFmfh15mUBEWftmUyx6E", + "payoutAddress": "XovYPbaHbLhfcAufRM7vw8sfGxnsDrKUNy", + "pubKeyOperator": "a062c139cf691e9f674d63b760f6560fc793dd6b5298e02d04481e88ae61f743363f4d2317057de3aafe7a9bae477233" + } + }, + { + "type": "Regular", + "proTxHash": "84359ed70510ec75d378512d625ecd547ed625cd662c31cd4a11da57b5a407fd", + "collateralHash": "93a3f972c30d9cc40c837627920fb442e49d84d27b31c02406a40802d7eba663", + "collateralIndex": 1, + "collateralAddress": "XozQwKTqq7AJvmzCGZHXz1yfY3zy74vNE3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.225.38.250:9999", + "registeredHeight": 2100762, + "lastPaidHeight": 2126916, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg8T36XsnL9aJNmHCiNiHFQKAP7UdssF1s", + "votingAddress": "XtsBs5VqkjXwDVpXQqR4diCpzUvNJLguNS", + "payoutAddress": "XtsNrkbbuVQ8BQLV1fiZPebMafvrnnU79z", + "pubKeyOperator": "a9ef88efbfb1a1bc0480ca177715fabcaed75944387c40c2042296ea3bfc2cb7ec7c1763930207cfd8ef99efaf878e0c" + } + }, + { + "type": "Regular", + "proTxHash": "ae0a8dbc0ef1c53f86487cae7cc54cdaf288f0ebc85676c7c4a1430d26fe2563", + "collateralHash": "dfdd8694716a906abce2b6442c3f6ec780d4c86985248410409850ed82ff5723", + "collateralIndex": 1, + "collateralAddress": "Xew83hoKjdMKt2ShV4YWjd52pAtNTrSfz4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.178.72:9999", + "registeredHeight": 2102037, + "lastPaidHeight": 2128341, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkuKi6MLPF3mnKkP1V97wREhGd94beJrNf", + "votingAddress": "XeQcQeDsnRUwMN6Rx1zeCHz2RLKLMMY2E8", + "payoutAddress": "Xew83hoKjdMKt2ShV4YWjd52pAtNTrSfz4", + "pubKeyOperator": "909ef21b5265d4744f47958f89ec85c4f7624a355d3b049b41f590a7633b7b57e6528bff0e9bd5d4cb3e77c99d3ea519" + } + }, + { + "type": "Evo", + "proTxHash": "3b08c9c6b92d3258d0f6fb93bdc593dd9a930b9bdc76bebe8c076338a060b30b", + "collateralHash": "1dbeb9dd7732ae9f1b8c160549fdbe58bb430fc833642cb0d7ecfdb3ab0a8bc9", + "collateralIndex": 1, + "collateralAddress": "XfKxAwrGvcVXuQzWMrzXBk7XZr49Hyywq3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "57.128.212.163:9999", + "registeredHeight": 2102416, + "lastPaidHeight": 2125932, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2127859, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk3ythnEiJKd1utkHmHR5NGpsxcyVe6rjC", + "votingAddress": "Xk3ythnEiJKd1utkHmHR5NGpsxcyVe6rjC", + "platformNodeID": "cef856f6b2d36b70514d1f97d6c5a28aa46515f3", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxkdAt5VovQAQ6c2XQobgvnByP8VM8KE6J", + "pubKeyOperator": "89ca9e7cc33bcf34a919637f4a0b98100746da51425d0ef33abb873ce2a0de5b6357dec7fa916a92f388ad6d423d3ad0" + } + }, + { + "type": "Regular", + "proTxHash": "480c561544ba07032dc09bfa67e6af6148ff337ea467b55917f5f9af839934d7", + "collateralHash": "064b7864728d3699cf8a075621de17dbfb6b3a2b73a00c0a43f38a062dbe6d20", + "collateralIndex": 0, + "collateralAddress": "XiR1mYuwBiovzW3F4ijERPCMV3PukFadFt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.100:9999", + "registeredHeight": 2102851, + "lastPaidHeight": 2125824, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiJqcGVfJ5eMTDMTVfLSth38kqAne9ESLH", + "votingAddress": "Xv8pGGjGXGncfTE7so9WYjfMA9UcD7RLTx", + "payoutAddress": "XbPtmf1qTeAXAPSxcKkvaPxqDpKXnKGguF", + "pubKeyOperator": "b828069cf441eeb6324ab220a3aec51493e6d24f1ccc9ba777108c51916633097ae2bf0e76a4248833f7f54b79f261b7" + } + }, + { + "type": "Regular", + "proTxHash": "bec21d57da059a645387a6c88b7c34b0dc2bcb3b15eacd886b08ff30928743e9", + "collateralHash": "7270de8bf8eed903f96fa20c732e27e7912d55a98cbb4628e3038a07b2a997b4", + "collateralIndex": 1, + "collateralAddress": "Xx9FwXZjmoy4g6hxsNVBSmd5ETXxBztfeC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.128.36.200:9999", + "registeredHeight": 2103451, + "lastPaidHeight": 2126296, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtbzvBwuY6DTbbVsdwxKvEu6auiMLmZi9r", + "votingAddress": "XkKp9mZ4wALX1nGjMU3TS9b4eRq9msr9ZK", + "payoutAddress": "Xx9FwXZjmoy4g6hxsNVBSmd5ETXxBztfeC", + "pubKeyOperator": "aed22fe73b6af02d19451d495c4c707bf0527eb75e61dc2bca54026f55d4f3ec4ee6a2bc161bc0b1a5c6e631b9506642" + } + }, + { + "type": "Regular", + "proTxHash": "93d196b986da321cd2dd14890118b2f9df9f1902b66390ebd273357e5b39aa38", + "collateralHash": "20cf1977e90ed4b28ca11b3915f2b17996f0d3df658ab6d84da2f740c61ec23c", + "collateralIndex": 1, + "collateralAddress": "XkryvabwrMqyULY8QzRg8fdoYe28X8gaXH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.9.210.2:9999", + "registeredHeight": 2103709, + "lastPaidHeight": 2126485, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvxnidfwuS7GqHhVhfNtUK3PTd3BPcPXvD", + "votingAddress": "Xd1ssF1rkVEQxn3ocrxro6jFgJowHsyzKY", + "payoutAddress": "XxwEWPKZiD3M4LDCptutBgnfFx3BRMmPoS", + "pubKeyOperator": "a9af8512ade6fd79df5f0410bae817acbc9b2a2641ad4c9bd3f3f8dda126ed9387b948055de4d2a1619db7fa40dd9a5d" + } + }, + { + "type": "Regular", + "proTxHash": "1c6847ea993fb7f986d9c3bb004d88aae02f5791ca011f7823371b1ae76ebfb3", + "collateralHash": "87b6ec1d034f36ba5a55c324214f0b76d0ae68a4cf2affad541ea0aab25a6452", + "collateralIndex": 1, + "collateralAddress": "XfUNASkUHkgWAhTKfZMJAFWAFVUCoqURTs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "137.220.66.225:9999", + "registeredHeight": 2103953, + "lastPaidHeight": 2114330, + "consecutivePayments": 0, + "PoSePenalty": 3847, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2115978, + "revocationReason": 0, + "ownerAddress": "XsRaJ9yEwqD3hmhaZrM3spThDRoQt3hDhR", + "votingAddress": "XkRHfRi6MBF4HvL4vBCUgiQVLUXBmD9e5t", + "payoutAddress": "XtkkBbXmbR9XD68R967D2Tr8MHnaKFQL2o", + "pubKeyOperator": "8eef4f55b3a77340aface0d84f6caaadba0ae906b2d0352ae9720e7bfbe4d3b8e109b4cb0b5143da2f5f577c8b39b648" + } + }, + { + "type": "Regular", + "proTxHash": "ff46854045f60f4f85ffbdf28d292a36fb292d79198ae5562f6390e9ad06e129", + "collateralHash": "ff46854045f60f4f85ffbdf28d292a36fb292d79198ae5562f6390e9ad06e129", + "collateralIndex": 1, + "collateralAddress": "7UvkUsjr1vAuydWpBMWvaXexjfLqBhPR9X", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.223.135.19:9999", + "registeredHeight": 2105178, + "lastPaidHeight": 2128010, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk5ZuUWifKF65e6m6kJ7TqDVHBzADWBVnP", + "votingAddress": "XtwyWrNyF7tyuJHdAxN5oB851mjusqw7yZ", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a11d40453372a8640bab52ae9249a864f028381106eb6325ce3857b0851919e27a09ff54b317ea9096787efba2652106" + } + }, + { + "type": "Regular", + "proTxHash": "1af38033011aabbce7d6b478bae859e667406e751bd0c98e9888300d6256eb63", + "collateralHash": "1af38033011aabbce7d6b478bae859e667406e751bd0c98e9888300d6256eb63", + "collateralIndex": 1, + "collateralAddress": "7fVyguaNrt3fCRQE62XqpCUCSgmupYn7Gb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "194.135.88.224:9999", + "registeredHeight": 2105178, + "lastPaidHeight": 2128015, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xptg6BmyMEuGtZVpJGDGqM6oT3xmgQoy7i", + "votingAddress": "XvkBoCf4HjipAzW5pK8nXZExbShyi96jeE", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8ba668c45446203986cb6bb9ac0eeaee78362d245e93b15b2b4ef539c438ab6205b0983a1447b962aa4bfda062d6e850" + } + }, + { + "type": "Evo", + "proTxHash": "edf362e55eafda494d9c5aa28a8332dc1bcc67b324d24ec2665dd92e66e51898", + "collateralHash": "897ac84a6721cd10bc40684dd7e3064f3d04147d69980088c01a49c6180b062d", + "collateralIndex": 1, + "collateralAddress": "XgEDRmuu1oKdHaJsQPiWWFt7562v9tdz99", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.254.241.8:9999", + "registeredHeight": 2105452, + "lastPaidHeight": 2128321, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrSK9QRM9gJnZeSk1C31AmaBwnN8iGhvDi", + "votingAddress": "XkU5ZcPMFy8ofb2pdWUdMVPiHEp4wH89Z3", + "platformNodeID": "10bde186929db1c95b513d1004d347c4435efd43", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XvbrT9NddWrva63s3BDJjLx5An8bpB9wd5", + "pubKeyOperator": "b68787aa6857568cd49fa959bd9fe849502aa3e193690db33b328e9831e74ee385509851163220a2681bf5d99a8266a1" + } + }, + { + "type": "Regular", + "proTxHash": "38c05fbdc8f205b1983c67ed60de28355361663b415a5ec96b2f9fea34bc0c04", + "collateralHash": "ac79d3149c85cd97d8915007cfccb5742adaba42fc0c856e0df6404ca73c008d", + "collateralIndex": 0, + "collateralAddress": "XqCeLwFYaxjn2hQdqsemUpDxNN7SmtC7Qt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.101:9999", + "registeredHeight": 2105479, + "lastPaidHeight": 2128340, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm5rxFRajU9JqhUrDw2WdyDnSjsANbpU8j", + "votingAddress": "Xex9R9o4JKMVpQhqDCEoF6E7MFJ9wjUPGr", + "payoutAddress": "XeG8SbHan6NjM5QhFPpu5NCDtp8KXbBBbn", + "pubKeyOperator": "b7397b5af655fce3cfc1d3b2dcf0c1487d76999f7a9d6d7a82807faabd10c6c7f8fb120cfca6e7e1616c798fc3e63d3f" + } + }, + { + "type": "Regular", + "proTxHash": "f29321c4e581645b1ba141acb76680a37dec95cb588c9856c707c000f38a4c51", + "collateralHash": "70bbc7e20a626adfe478e040767e887d608356540489945f404e2e0337d45b97", + "collateralIndex": 0, + "collateralAddress": "Xk5s4KCpU9Rdhj5oSkctoAYJbuWPmVJvBi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.234:9999", + "registeredHeight": 2106331, + "lastPaidHeight": 2125848, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyDQCpxR4SiD3zYiGmYJpaGM7WG6zaTpew", + "votingAddress": "XfagV7tgfrMnuk98wiL2XmB2BooVaThxqb", + "payoutAddress": "Xyyu1jh6WJRHGDNKWv6Q7FCpoTGta6tRRb", + "pubKeyOperator": "a470c7346a1ed1dc1381266662e84ef972bde28341cb4e47b0c01af661abac652d95042f9c585f4d8cd3225896cabad4" + } + }, + { + "type": "Regular", + "proTxHash": "dec802210b8b7ec86cc24407c602c88bea23cbf81f504e9db2851194d5911ebf", + "collateralHash": "8bfb7513774a89a74e1b1cb967b4a479479831b8a275ccad88bde4326f83b9b5", + "collateralIndex": 1, + "collateralAddress": "XhVYaKkNxHWUfShpRPKJCoC62Ug22gBUm4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.200:9999", + "registeredHeight": 2106450, + "lastPaidHeight": 2125923, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsDmt8tdgFYF1W5pbfvbQZioNN2kfhkr9d", + "votingAddress": "Xe8XK44J4vFYHVg2tjTMkY3xEZ17abXEbD", + "payoutAddress": "XhVYaKkNxHWUfShpRPKJCoC62Ug22gBUm4", + "pubKeyOperator": "b4fb41c5919d1eb2259cbf4015903d2a9dd4e15b420db3d606af7a3f03c8b64db7a99ec9d1fa90764890de289a85afe9" + } + }, + { + "type": "Regular", + "proTxHash": "678f4b5b3aba95be6bf6c32d75d525aceedf3818938b99044d7fd88501c315fb", + "collateralHash": "1f568eb3137b87219d5b53444cdee2acc82623f6e92c4ab1bf3ca60f00de8f58", + "collateralIndex": 1, + "collateralAddress": "XikqC6WkJLsQb7i2DkKpya6owL8YmA1QhT", + "operatorReward": 0, + "state": { + "version": 1, + "service": "45.93.44.216:9999", + "registeredHeight": 2107892, + "lastPaidHeight": 2127230, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxgUxRuz6uo7VY7z7yXdXA27aCYj7siUG1", + "votingAddress": "XxgUxRuz6uo7VY7z7yXdXA27aCYj7siUG1", + "payoutAddress": "XxqTSYy2NKKrpy5pMH81jrSc3Zo8kEaE1A", + "pubKeyOperator": "1521c18a5abdd7885b6a09455739456f9e94f636df271f10735aaa324ea2146e95e4e221e5e5e8d7068f706f8dc120ec" + } + }, + { + "type": "Regular", + "proTxHash": "b0b1aae4e8b0741f8da31021712bcc15a3dd753adedc33e105258df2a54c3d54", + "collateralHash": "78fd547f704b3a8d189fa6bb1d0f264302fd84f452a56877215387c21984a4b1", + "collateralIndex": 1, + "collateralAddress": "XkqRgK9CfpUPyE1L2As5vrCf9U7gJPUnuS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.135:9999", + "registeredHeight": 2107965, + "lastPaidHeight": 2127271, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xh7xdr2dFXDTrKfMGZLPWcNgqu9vpBUNYn", + "votingAddress": "Xj2wQipXTdPskRpG9qK7v75XJh2My1HdQd", + "payoutAddress": "Xtw8fNFvzJUWrS3PLZ2DxPrgnQPGXThNJr", + "pubKeyOperator": "b62bdf725e18d393de25b4d99ecee886d6c93803ec672bd4227f90e37a0ed8b9d3ce3c01357eb8208fa449eafe5c5d89" + } + }, + { + "type": "Regular", + "proTxHash": "160ad68449b9d8f2a3c18ba404b78c71a2cb91cc136cacc81b26ae5901e91f80", + "collateralHash": "b3aea07333d51bf133f0ae686ff9131c4a6d5e6d03dabf912035ab0dd151e17c", + "collateralIndex": 1, + "collateralAddress": "XxjNRuo9hhXy1EztV8zwYCB55iAD61P9kL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.87.201:9999", + "registeredHeight": 2107971, + "lastPaidHeight": 2127277, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xnp7aABpxbVPzAi2B421v8B6HjUEtJzV4g", + "votingAddress": "Xj12FtjFndxhmbDBQuKCk3nyn3TKbE4eDe", + "payoutAddress": "Xtw8fNFvzJUWrS3PLZ2DxPrgnQPGXThNJr", + "pubKeyOperator": "967a2c21936766b8782c8c88d80bf62014df81052130398d1081b37fc0eb6e3c412e10287abe296731319413aaf180b5" + } + }, + { + "type": "Regular", + "proTxHash": "e714ebf3e4b9b44eb5df3369c8ed86ced07d39d51605e16c9035569a775231f9", + "collateralHash": "7a38bd0896ce71feb976eae3f6f17e471c30155194bb97c967fd0d16dbf1ac8d", + "collateralIndex": 1, + "collateralAddress": "XjEr4AFhnAaWTdiuWNoSoTwqzX36fpGHcS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.83.6:9999", + "registeredHeight": 2107972, + "lastPaidHeight": 2127280, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbJKo7StZZykmcBFoXstifgQa1G8nDt56p", + "votingAddress": "Xyc63WgazMfTNW2aJJQvF1wxJkaSNZS1uZ", + "payoutAddress": "Xtw8fNFvzJUWrS3PLZ2DxPrgnQPGXThNJr", + "pubKeyOperator": "a6a170449d0946eac1bcbb9d39759c1daef5b4f5927e4e739fc0b89521d4e0b9aea1efd25ac47ea8f18efb3f7698b41d" + } + }, + { + "type": "Regular", + "proTxHash": "b24c02d54f53bbb05d0a283c4ff91c69bfd7d06782136184bde03e2bc58de91a", + "collateralHash": "dbfd43075522103272aa0feb518bee899d13dfc6ddb58780d3e0c6d301f9cfcd", + "collateralIndex": 1, + "collateralAddress": "XmJsShyuYdndbFfrYTLmoVLeWUAhu1xbMW", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.112.127.92:9999", + "registeredHeight": 2108046, + "lastPaidHeight": 2127344, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqrRmMHQbGLky829Lze5b7YmheJrdUs3ny", + "votingAddress": "XqrRmMHQbGLky829Lze5b7YmheJrdUs3ny", + "payoutAddress": "XeNSpztb6grDNLG1qLqv2revxtcGz1m9fY", + "pubKeyOperator": "841d7d400c22abcfc2e90a8a33d9e6746521b93cc3275cfaa38d3335d3fdbd8e80cec66554f3f625f62dead37668845a" + } + }, + { + "type": "Regular", + "proTxHash": "5e2cfcaddbb899c6810ced884236fef546951d5aa4b3134e72c18d3134f329eb", + "collateralHash": "9441ea108b44597cd908567b874f1c5df40bf8089b085bbfe234280241e893a1", + "collateralIndex": 1, + "collateralAddress": "Xk62t4xZHXfamNDmjNNscWeC2WjbkqtpzA", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.112.127.91:9999", + "registeredHeight": 2108168, + "lastPaidHeight": 2127462, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnaoLHu33utRVxxfuDz4rwXNUjDhG8yxtE", + "votingAddress": "XnaoLHu33utRVxxfuDz4rwXNUjDhG8yxtE", + "payoutAddress": "XeNSpztb6grDNLG1qLqv2revxtcGz1m9fY", + "pubKeyOperator": "80f42ff2d1d6c4a67c024ab3b5a122750630bb6e94311a7abbbf38211391704caa9a9434ce42881ab40d26ac01038856" + } + }, + { + "type": "Regular", + "proTxHash": "0d6eec8a8c6de81942226e73aa90e5ba752e0c7cfd52837033649b1c57d89e85", + "collateralHash": "910e3c236a0532523cffbba436d755e365767a345eb1bc507be068b3eadb48fc", + "collateralIndex": 1, + "collateralAddress": "XfE8B8BJeJ5VfqFwgJMsRDSFqJvN5jDa5v", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.112.249.49:9999", + "registeredHeight": 2108325, + "lastPaidHeight": 2127621, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118433, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnkuZrXzho3vGqbWnhAs8ckvq8AxApAtwU", + "votingAddress": "XfYhhpw5GXX6i9UV4M3BDzBxzfS2vCUw8U", + "payoutAddress": "XmgF2hmSLPmAYYuUHmnjtS6GNLXQMVz1b2", + "pubKeyOperator": "a01f4fc7721471f3692ca5c73c03674ee42948001e446f8ee32668a42efc589c8f4c9ac43b6cfb0d967a61b4ddd40781" + } + }, + { + "type": "Regular", + "proTxHash": "f55315031c096519ae5f942cf83dd1259ec2f3fc9510432e690e29fd3698933b", + "collateralHash": "d6a71f8e7c0bb8a22bbf65698608d5f58f0aef4453fbe445d13e0a1b1dbf4d74", + "collateralIndex": 1, + "collateralAddress": "Xfjo57rFmsUHPpFEttHGigfeNrC86w1jrm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.112.249.50:9999", + "registeredHeight": 2108326, + "lastPaidHeight": 2127609, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb1BkN46nf4xKCtuFFwqkgFyLnJLyTBfUx", + "votingAddress": "XtEjxcde5Nmmzjr6afZu8qCbM9Q8r8nmJF", + "payoutAddress": "XpBwLdfuDYAdxvMtfrMaDc2GgomJueujBS", + "pubKeyOperator": "8b40f3fed4907314fb4ffe36b571bfd7967789c02cac9d32df155a5d8d00ae22ec470e12653c8702a43ab49efd77e2ef" + } + }, + { + "type": "Regular", + "proTxHash": "549f5e42f98a4c7cfc10a5c322a371c1dec554eed719486b586fd4dfab316994", + "collateralHash": "5b86c4a6c819cf36f49fc3addba9a5cd4d83629918ae0aee0957c2ef8f880d70", + "collateralIndex": 1, + "collateralAddress": "Xp5yh5DsQ7XMDiC5znBcR5FzCjcTbG28YR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.112.249.51:9999", + "registeredHeight": 2108327, + "lastPaidHeight": 2127622, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2118434, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xm5oxdrKRxSCrtKHKrh8TyooFtD6rWRAw8", + "votingAddress": "Xx8LuToczNSFhUHgok4yNaaNA3NePJtHWE", + "payoutAddress": "Xy6TLFCoF8E2jXEqfgN69Txc7oQMNigZvV", + "pubKeyOperator": "80b67eb6f36a9de39efa5e98eb2b35dd0b367a72bc735e58dc19be1601aa510a675e9f277e8975fee94d8a595faaa363" + } + }, + { + "type": "Regular", + "proTxHash": "1001aaa1c40f5225ef6ec8bfea100fe1d10a62c24fcc9b72371f746f1d6d3c38", + "collateralHash": "5d3b4b2aa4504aadc07c98bb6de7b7f10acb048e31a4f1f7ebc02e8775f32ef9", + "collateralIndex": 1, + "collateralAddress": "XezksFa9Jbuntw84TJMWT136Nb6s4VyYGZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.112.249.52:9999", + "registeredHeight": 2108328, + "lastPaidHeight": 2127610, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvUiL6DLFJeYGPYUjHHEkaPgkT4tX41t9Z", + "votingAddress": "XrM6iSveBpVCgL9WPRtaQ6dYgsjPE7nvZz", + "payoutAddress": "XfbnX3kLzxZcoEdqMfVoSavqfcSw7YMDZi", + "pubKeyOperator": "90e6366553bac6fe0475f86e6d873c6f305f6c1f3d6f506febf5efb208ff69c85a899dc87a8b720921aafac5ce05eebb" + } + }, + { + "type": "Regular", + "proTxHash": "6b8a7acf27e7bbc816b9efd8a6d09911c5d2eed5b608aa03eceb8a0f7f5917a6", + "collateralHash": "117219df3ee6a7a5550a6dd963aedd4e9f3459aabbe6e09ca22e6639bc4b31b2", + "collateralIndex": 1, + "collateralAddress": "XynW77tKnn1UZDhjLnjEaDs3rzC9DCzy18", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.225.37.46:9999", + "registeredHeight": 2108368, + "lastPaidHeight": 2127732, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xrtp1GxS3afHfWTXeye6Lim2e4yqn5u1mo", + "votingAddress": "XipBCxxLbUqF6YcWUFULsTYaDLBSm1hFCe", + "payoutAddress": "Xfw1CdpsVjSbAjeceDUHgJFgUNADRnGbmD", + "pubKeyOperator": "abfcf760e181f050f3682b6a4edc7dc837367c7fe5d80f9f8f8e5c81231e3ae3e68b55e30ca6f6946dc333f862682d75" + } + }, + { + "type": "Regular", + "proTxHash": "da9cc4c4685f3a85e225bccae889852eed4cba3b564c7cf09877605ba90b629b", + "collateralHash": "5f7899d89de9c3d11c07d76d92805c32d1e69a749ede04c3453404a3d390915d", + "collateralIndex": 1, + "collateralAddress": "XqKzS5Fe2BCSYH2S1wmVDrPZSevgL1ksNQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.225.44.56:9999", + "registeredHeight": 2108370, + "lastPaidHeight": 2127736, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XipBCxxLbUqF6YcWUFULsTYaDLBSm1hFCe", + "votingAddress": "XtsatDJZEVWAjxrDbLUo54epbu5dqubcBg", + "payoutAddress": "XwZZsBvtixLKrg2mvwfZrH1fjeS7j1HaPv", + "pubKeyOperator": "98984ee276b4e038acd5863feaf53fb234c8eba4f584c6960a45d9a645fb088b7b89cd5cb7d55581a1bdbfc9ea1c8e80" + } + }, + { + "type": "Regular", + "proTxHash": "b0e233241fac342d1b7aeefbb12d4062b39dc0c3ab4564d752963748da4348d8", + "collateralHash": "b07c0f2ae461c73849df0e0092e14a983aef2ab17784fc1dcc30b47f247932cf", + "collateralIndex": 0, + "collateralAddress": "XsD9XCP3UQYsVYy37rxFWwUqJMwBddCzhh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.104:9999", + "registeredHeight": 2108387, + "lastPaidHeight": 2127753, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XciWFQ9PuU3TA14ufTHqombeuAdEQSEbV3", + "votingAddress": "XgMUnHMVEC8pXReQHyp1QVAL27KDR4779M", + "payoutAddress": "XyrpHmBsiyQsiNjxpSLhya6TLBu7sevDht", + "pubKeyOperator": "b3e17a3d15c5a71f51d24a67e5a8acb2475ccb86eb7a925c12f8ba8d86037190aa66b0aa18b135bc31167413b03038d4" + } + }, + { + "type": "Regular", + "proTxHash": "b65a7fc5c1381e6816e793dff006051f9ec534d36a996f889f29d3cc35299de2", + "collateralHash": "aa38acf1d6069b30da4ca34963946189a81a1e7911b9e9ae85b0595cea98261b", + "collateralIndex": 0, + "collateralAddress": "XyqJLkQj9EQdpYYdptHBoDqH2mdBCxQP3b", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.236:9999", + "registeredHeight": 2108387, + "lastPaidHeight": 2127754, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmeRsxS68vF3mUdLtrSh7FDDyrnx3UtaNG", + "votingAddress": "XviUigrYu2HPRuy4EQFSD5x3qULVvQBxgs", + "payoutAddress": "XqxHvXQAPVTq7iH3f3sRoYJiJX9kh2Mx2Y", + "pubKeyOperator": "b848a0f75386ff725a027f834f58b705feaa3be3272b48f50fb683f22388bbdb4331ca3ae84e78d0c7154ec95944136c" + } + }, + { + "type": "Regular", + "proTxHash": "d6d703fb8e3158134cafafaf3eeb0d99debb07d6bd0277e497ebf0be56ed7c5e", + "collateralHash": "676a6451b44d9541e85ecca509eb02a3d7c431faeccab08aef7c6ca37460db02", + "collateralIndex": 0, + "collateralAddress": "XyD56jcVBEza7X4dVkNdCoPGT7q6PMmEdw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.133:9999", + "registeredHeight": 2108443, + "lastPaidHeight": 2127814, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyVXox3tkSJp9A1sqMcsWFzbWvMpU5bXMt", + "votingAddress": "XvpBxrYAFLRqtkUdTNAFyZ6u5e4ZAmZNcU", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "8d81ccbc933addb0f7a46374579041d63e6b55fbfc7ddd2579077712dff3199c7e977b464ca30efc28f36b5142be79fd" + } + }, + { + "type": "Regular", + "proTxHash": "96467f5d9ca7f22cfe0a42ebf4dbb9471b9f9234bb6827cea4b613a82600f274", + "collateralHash": "7509855d5fe7edd746049b3d5068be2ea65ff40cd24521777a27d31aa202dfc9", + "collateralIndex": 0, + "collateralAddress": "XbsQB323wWnR2VMYduxThCn6NEUTyvVjWH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.196:9999", + "registeredHeight": 2108555, + "lastPaidHeight": 2127933, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfQJN1rVeKvQZ4K9BUzAFq5TufjAqybAY2", + "votingAddress": "Xcs2MJMf52743eDTd5MmcP81kf2sph6sAn", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "88a7998c32b37a756d9781bdd0d3a6ceee7b2aa928e7ce29c202e30fb14f445cca4eb703560a9bb40b9ab618e8e852dd" + } + }, + { + "type": "Regular", + "proTxHash": "af53f4c094da40ce046f2a6c06f860d6354f5eb476bdcb1926dc62505bfd84ac", + "collateralHash": "d37e29ba8ea30bf815da682baeb0a4beb4226495bd246f9c9d3ff36640b9f7f3", + "collateralIndex": 0, + "collateralAddress": "XmDxJ8m24UG9KcTZkJBbeqU1BEu4LdCEfu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.185.132:9999", + "registeredHeight": 2108557, + "lastPaidHeight": 2127936, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxFeFcpUBn6J4qUbv7u2mGVKcQ3EzHiuuB", + "votingAddress": "Xntc3iX2uDsmicYJk1PrjC7RZm551r3Ah6", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "b9ef1d26b6efe356dc98850c9d2709d59da2997c1f689c5b86fb4bdcaa8b4e926d49ee635312cf4864e2ffc140bc5bdc" + } + }, + { + "type": "Regular", + "proTxHash": "dea6bfb946bb3614f5e24f805e20739c97a48fde9c0dc2513f5d70a65bd0c63b", + "collateralHash": "0fe242495d2bcfc3ce64c68b8718285bce9aef23688a5f6da05a25decd120354", + "collateralIndex": 0, + "collateralAddress": "XuUs3TYV9nQPw1e1sMquZcB6fEZhdKjy6e", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.10:9999", + "registeredHeight": 2108558, + "lastPaidHeight": 2127937, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xvn8okR7HLYNe6YsPDHw1oGYjkqaY6X5xk", + "votingAddress": "Xck4597tyifgTZuW2rYbjTVyR8u9Kwexxc", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "a7e46cae98e76f8f5355e261718c4f8130e36d541e68c91a5c7c46f2f163a90982af786c940286f98bc3998f719bf44a" + } + }, + { + "type": "Regular", + "proTxHash": "d493eebfd40ffd8b493f72d4e75d4ed16c39091057395b5102c3ba5ed0d77cf3", + "collateralHash": "c4a4a1966da3180b4f9eb34bacce82a86b5341e53100dbbd4e27b7778a7b1c8d", + "collateralIndex": 0, + "collateralAddress": "XmRtxU5JnDngM4oWE2F7FxiMcLdUu6CSfR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.205:9999", + "registeredHeight": 2108558, + "lastPaidHeight": 2127939, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyyNUEs3ncSUAmXvMDv288WCDtDEM9sPW4", + "votingAddress": "XxhjXcZiTjPtLcarrzYr59TqpD6LgLiHP9", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "98bab8784f6428f0d8fadc1db419e80a3682d040c33542b251ca9e63103dcc033898c91527d40c0d68f7da61883b5478" + } + }, + { + "type": "Regular", + "proTxHash": "e8c51058b1e633d0119902801fbbacc8a93cb8cb8c011749bed905fb2745695c", + "collateralHash": "efdd64c0a50ecaeb9bdd5637c651d33f084a2596612a471de3392ad1fa06ef37", + "collateralIndex": 0, + "collateralAddress": "XgfhcNMAm4nC498huuceqbV11VTnW6q81L", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.9.210.13:9999", + "registeredHeight": 2108558, + "lastPaidHeight": 2127938, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsnWiALZFtv6QHWwiS1Dc1TJXrDjFoZ9aG", + "votingAddress": "XvasyTnJCbJiEBRn6WSN43CaB5JqrjFzSw", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "8b59d77750dfa3a5f85b78e198a6d207059baa531eaccf8820c53af24625fe2a3f7f7613d7ff16472542e15b3ab54cbe" + } + }, + { + "type": "Regular", + "proTxHash": "6bebf746e4839a9454bf411dffb7abdfe0c1e9a990356f0ce57a304adc2774fc", + "collateralHash": "db92a5c1a01a36719f37bc5523e8e33f785e1b6405321accfcaf1fb88cb31d99", + "collateralIndex": 1, + "collateralAddress": "XvueKb4aWs7F3CB8gigua13ZFfA3kgbNmt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.121.143:9999", + "registeredHeight": 2108982, + "lastPaidHeight": 2128372, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsbRKnzEcYqURwytmHvoa2FYwXfFfWSoeq", + "votingAddress": "XvJh4zBs1fhV2vPnuBKsQaXSwyEphH6xYf", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "885cb002a65182e6989134d230b5c66e1e01beedfd0aabb629d90767e6cfbde2e9cb6d4edccc709ae54e17a4c8c8d335" + } + }, + { + "type": "Regular", + "proTxHash": "0e535f58128665658f6fbd36e9c0b0b66503b2bc22e7828520a094a576e877ce", + "collateralHash": "79793f9c2a894b055427ad84b4b4eadd100102348774a1ce64bf5d917774c409", + "collateralIndex": 1, + "collateralAddress": "Xxp3y6yK22TBkq6wwYNqn85AV1FxKr2ZHf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.251.210:9999", + "registeredHeight": 2108982, + "lastPaidHeight": 2128371, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvfEL65iLAexm3arRwWaqpvxDfGBkkk3hn", + "votingAddress": "XgVTwgjyARHZXAy1FgvBa5LB4PBUwXU7sG", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b5d7f64eae63ed774f2c98ba5060be7954daa8b57b9fb0fd987418d0f710b1f51595d0938f5a312e2c83de5f8bb19885" + } + }, + { + "type": "Regular", + "proTxHash": "7bcfdb45218aea9853daa863984c0a1b8ba9cd72e02b3219ac31e091076a4389", + "collateralHash": "5073a7c023b9263b2208130d5fcd6db4c860f1548fa4c0f57f28eda29465c15f", + "collateralIndex": 1, + "collateralAddress": "Xo4bndbtEdhAboSNDuWpDZwqTc8ZDxoSqC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.129:9999", + "registeredHeight": 2109225, + "lastPaidHeight": 2125951, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2109931, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnT5FrH1hssob7eJomQpqCxPueRQZ7PRt5", + "votingAddress": "Xat9KQjq2rjGxsdTPiv7HJGakg9PZtoq1i", + "payoutAddress": "Xo4bndbtEdhAboSNDuWpDZwqTc8ZDxoSqC", + "pubKeyOperator": "b5e8fafbbabc4e5cb899bbee5dc5cd860c5aaf098f7ccc4019ce06b6ade9a3e08a20abb8fb5f297909b453580f128235" + } + }, + { + "type": "Regular", + "proTxHash": "6fedbfd5f0d6493617f7a7868d13f5d3a589df8a0763a23a32988a6e7309cf0f", + "collateralHash": "19bb5a78859f88b378005336f44386b2b067cfc39522ec6ec293b40f5af705ae", + "collateralIndex": 1, + "collateralAddress": "XfTSjBZTHUNUuphYf7emwQh5jhsorBdGmm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.175.64:9999", + "registeredHeight": 2109796, + "lastPaidHeight": 2125849, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmLCEwpAta63rTdpBtCDWejoyUyeJFvL9k", + "votingAddress": "Xy2gEoGW5DUgGdJgYebBDYNKvu6NyYP7zS", + "payoutAddress": "XfTSjBZTHUNUuphYf7emwQh5jhsorBdGmm", + "pubKeyOperator": "b3dd66573c30480719fd6a15f5d87b269f7f2972615ec184faddd3a93ee37fdc92c432e42af55f18b0e3f7cc5104b948" + } + }, + { + "type": "Regular", + "proTxHash": "22f1542de39d1582985cfc7b8d9bba012f52e254779995b84989c5f059816566", + "collateralHash": "465353d353ae9c0a668b902a7211e5b71aa4ae3b2b39ea558aa3f89da3f3b5eb", + "collateralIndex": 1, + "collateralAddress": "XtStsGaSH4mGeHYTB48UNrmhZMhvuARpPL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.190.46:9999", + "registeredHeight": 2109825, + "lastPaidHeight": 2125871, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxDZoSaYCCEopT5EVXNJ83zX5k4sjupvdm", + "votingAddress": "XqgSZ7NiLcYpY6yMqYrUKXeLvnvKUsCP6r", + "payoutAddress": "XtStsGaSH4mGeHYTB48UNrmhZMhvuARpPL", + "pubKeyOperator": "90fcaa6055ba501b2e8799acf1ae46a5b06e42fd96e707d0616d2c4c5b786b882d7e0eff20160aef51bdb8381a25c5c3" + } + }, + { + "type": "Regular", + "proTxHash": "a6c278f0630bfa524547108aa6a21bc8162b92a168c2bf594b057dc7aee63ead", + "collateralHash": "feead4cb8aacd516344f0d33d5252fb1cac4eed6614e2b45f0e3a1c26d6ec828", + "collateralIndex": 0, + "collateralAddress": "XrhuRDzFZrYi6Z2BCs7SoMVpH8Zgyvgyv2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.106:9999", + "registeredHeight": 2109897, + "lastPaidHeight": 2126819, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2110999, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdktEMcZKDCtYJLfD5s7wyaTF1iDvczWBq", + "votingAddress": "XiwoRD3RcFYnxRzMh2KmhTzjBt4x4GhaFt", + "payoutAddress": "XcUUSRC3Udrd2HmURhr3FPLMeoxBqMVHpT", + "pubKeyOperator": "900b449400512a5ce635926561f1583518a285b12e1bb61dc554f41625bed6d7754e91d79462da9febff9ee016567603" + } + }, + { + "type": "Regular", + "proTxHash": "9d7a0cd3531b88597ae8a9c717d3b860bdb4bd6293f16448b8063774014a71a1", + "collateralHash": "7f9bce90c930e8dbf0247584922463def5224cad8048d5552568d50553fa0a49", + "collateralIndex": 0, + "collateralAddress": "XmpJdPebNy1HMm8z3shZFciCdkVbwbR937", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.108:9999", + "registeredHeight": 2110746, + "lastPaidHeight": 2126596, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeGXp4XK3fae3MqyAjXk7UT7x41XYG97X5", + "votingAddress": "XyaJEZk9CBdx7FuGj3W6FPqJri7QQxfLB1", + "payoutAddress": "XkNFxFBJtDzfsLC6vbpspimTjZAi6G7ACB", + "pubKeyOperator": "8be02fe8ece9925462f05439d5c791f423c9cd24976d0885dd26260bbbb0f123770a3076d69e40823e074346de952480" + } + }, + { + "type": "Regular", + "proTxHash": "b0355c25a7f69b14c865456b3d0881229268b0fee2ab5196c4daf221ce183b95", + "collateralHash": "0f0e69dd872461fa2f2ef14686c034a972685280c4bfee593c924fb73808b3dd", + "collateralIndex": 0, + "collateralAddress": "XvUhqJ6ZVCzo33S3RkWkqPivHWB4RrhZvq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.238:9999", + "registeredHeight": 2110997, + "lastPaidHeight": 2126816, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdPPtmUA435mCkkenbZxKUxHUdqf8To4Dj", + "votingAddress": "XooitZdDBhV99AxsaeSAtt9CSM7PmKPwZx", + "payoutAddress": "Xxqh8A4GTwsrb5W27mVMwqZKtX14unrZjf", + "pubKeyOperator": "80b26c967aee7eafd1fad0002c0ee1f207e08da363e1872032e6a1db88c6153ec050df580efb20d06e2635ac1ffe8a56" + } + }, + { + "type": "Evo", + "proTxHash": "88f021c8a3d7b4997c8947eb921f23b8d4e293664cf680e1807c34047a0a5a8d", + "collateralHash": "ad0f83cab25e79bd595d3c0cabd477c3b711fc6998caaa0fdb5e983a98c35ca3", + "collateralIndex": 1, + "collateralAddress": "Xe8H2B4426MCCtCxWKAUeXjEQTh8DcjeaM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.28.255:9999", + "registeredHeight": 2111158, + "lastPaidHeight": 2126982, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XouFrabeUYQvAFDEyCxb4dbgof3xhyzCXN", + "votingAddress": "Xk9ixNRrjtuKUyWipYcg4nA82AfTvDK6Nu", + "platformNodeID": "ce03948dd38c60d45da9fac1d24de40173342202", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XndUChr6B4u5gkN5BXDcb4tqUCBSobnRqx", + "pubKeyOperator": "a0aa9cd3426f120421a7ea3a12cee267fce5cf0427fb27c0b766e0d7dc03922bf67a5e427013446d2a64dec676917aba" + } + }, + { + "type": "Evo", + "proTxHash": "f46c5b8627939527541e293b16ad035fdc79d282e328c412fb80c1133ba593af", + "collateralHash": "f60cae12ce89d8ec5d944ce3c56222e2a4aef6c5ef29a8f5b3cc8791e55040a3", + "collateralIndex": 1, + "collateralAddress": "XwFPpvPDdNLvMds51tQ1aWT4b81DPp3ZvP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.175.127.198:9999", + "registeredHeight": 2111307, + "lastPaidHeight": 2127127, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxr4p9jrC2TiZ9gPJN7MVyiwQFtpk1mi7V", + "votingAddress": "XmLWM7SQEbuK6dZtCEcWU4TSjaG3hWcr31", + "platformNodeID": "22808539fbd39cdba9cf5620f44bd115b65edca1", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfozUee2MMsSKNf4NMnThn61JSafASeHb4", + "pubKeyOperator": "a61f2c80b0f3d2b85347589ef6b0106910a5812479e8b0096c5e23be38b77160439ad8e9d80f42b286b3639aabb44b0b" + } + }, + { + "type": "Evo", + "proTxHash": "f513574b70a029ef1f482cf31a7a338e7fb1a7b0337929a0dd3a480eb9faa4b3", + "collateralHash": "a6172e3d653651439be699cf80791aebf87c486db0ae8f490821db08e13c6042", + "collateralIndex": 1, + "collateralAddress": "XrHLsgJ6yzU1S3R4TQRtb5L31YVnJazdZH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.254.241.9:9999", + "registeredHeight": 2111527, + "lastPaidHeight": 2128580, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119301, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy9xhtKtRFUdhthmL7zkzCgoKhD9JVDWbc", + "votingAddress": "XnYVm5sLBWDmQFDCpSxgDKDBXMeFCF3okx", + "platformNodeID": "e6d827fc1f87b1be8fd2662230c66b845883f3c7", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xhm7dwhqXngnfAHwTmd5mvQKWxfv3mnQQ2", + "pubKeyOperator": "b5985cb4fa9498fbfe0dfcd91f58d9e1e11a05938eec1f6a0623849901ca2c3dc75b489fb63cfac0b3b89701fa121945" + } + }, + { + "type": "Regular", + "proTxHash": "66698158718c3f47f56f7e91b8587468cd1cea271e3fce9c027607c0db6decba", + "collateralHash": "00dd8e610856a4593ba19d62b2299bc2c3d5063242cd2a7a53e64e0d30fdad3a", + "collateralIndex": 0, + "collateralAddress": "XvfZ7QJ79Aci3WXdARnmNvSuqfQLQfKaW7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.240:9999", + "registeredHeight": 2111608, + "lastPaidHeight": 2127440, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe81krWgpZkNqWjF17gFaa4McG5APJpeZp", + "votingAddress": "XhrmBZkGjozx88ifQPtySPYpx8cpGnnmxE", + "payoutAddress": "XnGDvQGau2Dqtc8GNe25vJ2fGKxSK8h238", + "pubKeyOperator": "b6ba6201e2aba5be53ba22191a2a56b7229be8c814e776d061beb25c2321a7181583587c68ded34616d1fa898ca6c9ec" + } + }, + { + "type": "Regular", + "proTxHash": "1eecf1e3242f1cd0d9dbdf2b9d1be22bf6b887b8f3677a55bcfd8e2e363fe823", + "collateralHash": "68e48bdbbe8e0a3c8451969967dd409f9e36299cc27b806e3a9cf21af7cf191a", + "collateralIndex": 0, + "collateralAddress": "XxMCjqUAXxcgYHCoQ6WWqhHVsWHPfCJxWj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.110:9999", + "registeredHeight": 2112203, + "lastPaidHeight": 2128124, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xorm953tPutgJb5cDCpnyUsg1V3fWZgWWw", + "votingAddress": "XvcHNY3kpC9Dii7SUqtASiz6oZ1WL3JYHw", + "payoutAddress": "XkzBo8KZB8Z5gkcqHn4TNLxqDNYyQb5UFY", + "pubKeyOperator": "957c03a3d52ed2291394385d1650e7507fc7b60799d0abb6ee079720f17aeb41d5df2fcef92e58cb5268ce6e51a06c04" + } + }, + { + "type": "Regular", + "proTxHash": "115161f859a2d1a55b1328eca13756873ce40dfb2acb1c5f9644d8894faf97a7", + "collateralHash": "ce03c24e1eb2d9de43ecf11f544c2e8ad9bee41d448537f6075a54b8c701b4e4", + "collateralIndex": 1, + "collateralAddress": "XhifpVVVB3VaqitiUqU11i47KMEWZKNULJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.84.43:9999", + "registeredHeight": 2112215, + "lastPaidHeight": 2128140, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwwnidNGuM2JSg4xo19D8pFQ9dU6LxNvAw", + "votingAddress": "Xp2TtpFzCAYNE3kuZEZdunt5NWVzYLwo6j", + "payoutAddress": "XsA9iQB6UcAey9hGn5XV1war8vJEyXhrfZ", + "pubKeyOperator": "940bb2411f8d326afd0636974b94767f8fec9959d6cd93a027ef059037e29f2e57ea4c21abf93f8c569bbe69c868dae2" + } + }, + { + "type": "Regular", + "proTxHash": "0bf43408a4dd07edd9642b4cb4786075979da099c245dafa1db3bc8ebe86dd53", + "collateralHash": "e6cbb3f261fa656f108e530c87b4f7155980b2d0ef19742db2d70978b4789146", + "collateralIndex": 0, + "collateralAddress": "XkrNUiku4rCpiKrogzEJcgBnAeRB36mzpM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "143.110.243.149:9999", + "registeredHeight": 2112333, + "lastPaidHeight": 2128257, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiMcpEt7G31aXtNSMm3mkoLqfyh47XBNwA", + "votingAddress": "XxpKLadvtKV46pC9kCsyor93P9FAScehLu", + "payoutAddress": "XqJinN9oc9JM2QvSuhbQPEqVPUsFZ31FaZ", + "pubKeyOperator": "b0d2e7505454e0164676dce46954bbf27c9c79204497cc9f8a7ea71318772ed2d5790083f5cd792f120861abdfe78888" + } + }, + { + "type": "Regular", + "proTxHash": "02e8e46a2f03ba206cc046c7e9c60c42d47c91406cd97d1f25c1500dee727827", + "collateralHash": "233c328d2606aa47b109ca778f9ba226eaa4d713ba0c8ad8df48361854da9edb", + "collateralIndex": 0, + "collateralAddress": "XvU1b58qBMWLGMpSDVeHskNzEywFZuq4iJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "85.209.241.242:9999", + "registeredHeight": 2112691, + "lastPaidHeight": 2128576, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiPH88KyXTpz8AcssF2NR4xCGejE9sjHHt", + "votingAddress": "XunDaf18FaVD182CNaMtwdGiMy2E1WksLM", + "payoutAddress": "XeUiDHFHEnSAzFZjWSN5ftYa3QfVeVxgje", + "pubKeyOperator": "87ae087298027094fa0f881d9a305d02fd552dbb98eb5e55d0b869e8eb402cdf2d44012206bc6bf295290fc18d94fd52" + } + }, + { + "type": "Regular", + "proTxHash": "2f7dabe1ba7b83d7bd335edca095733a8118fa08cdf3a0bc133c0274f7cb7aaf", + "collateralHash": "dc5cc41d5f44545c64ccffa116ebc1ed500fe524f3845f973c9375049ea36c79", + "collateralIndex": 0, + "collateralAddress": "XjtWX898t6KLj45zgNKYwtjtfGdwaCPkXQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "176.57.208.219:9999", + "registeredHeight": 2112826, + "lastPaidHeight": 2128675, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo2LBrVD8n4jLuVtRbXHtvUugUi1wAWrDb", + "votingAddress": "Xc6XXEsPW2WAyVcH9Uie5LXdzMB2vLNU6y", + "payoutAddress": "XwBheoEvLFMnX7tHSUUNAKtt3ru6ybuyWk", + "pubKeyOperator": "b151d70a38ac07d6a149e8ac34ba98c6ad16ce0838bbd3ab991f07eb92b1b2111f28e7ce8bcdf7a416586fb37b487437" + } + }, + { + "type": "Regular", + "proTxHash": "3be6da17824f51902da5f791fc61f53c4bb914b7ac85f79bf4711af6856b6d7e", + "collateralHash": "5f9fba9ee2f6767b457d17f8617fcf4a2e06e391a302f148629f952a46d5013f", + "collateralIndex": 1, + "collateralAddress": "XqiwQuFbVCFBFRW9VuhbXuDsmaLKsFo6Po", + "operatorReward": 0, + "state": { + "version": 2, + "service": "217.18.60.47:9999", + "registeredHeight": 2112832, + "lastPaidHeight": 2128682, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjbC5uWyNipgBTxwo6mhqF1rq6eTijB2NG", + "votingAddress": "XtE7FvyA78h8JVb7dB1QS4ALnWSEyYq34S", + "payoutAddress": "XiGsxxv7LhmwpVf8ZsYxe7B5RmpNkgZWbi", + "pubKeyOperator": "88dfb48299e6ec6aca77673bd60c40fd0cf939414bdf3c604614889014509a1891742092e045b1373c715c28253bea05" + } + }, + { + "type": "Regular", + "proTxHash": "42b9dc6d9043ff38ee58f64a945d4d713467e220e18e1d32a5a1d98acb4eaa8b", + "collateralHash": "cff22134464bfee621c662d3dd6e762e76dcf0c11a2892c7798585095f2bb3b7", + "collateralIndex": 1, + "collateralAddress": "XgAPi4Lx9vyUwGVzyNbdbV7U8FSjA3AUZC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.4.162.98:9999", + "registeredHeight": 2113538, + "lastPaidHeight": 2126062, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy4rTjKzRydqG29N9JX5GNRpRu8Pau54is", + "votingAddress": "XgXm9oLiCnoEZZgRy7P5shcitb3sharf84", + "payoutAddress": "XiiNsCqH7oJjgghJ8UqYFvhCxVhRscCYVV", + "pubKeyOperator": "b0afb5cbb5a694f5586a331a4555968ab030c84eb12524287702db11d3dfa7ac95f1bf416fc7cbdf8b763ef30e9e2229" + } + }, + { + "type": "Regular", + "proTxHash": "9918f7f3afbf6c4a5b32a0ac3f8c400fc63c9660067ff1df9bab9145516ae212", + "collateralHash": "a901de7598c02bea1af0da75a055fffaf1cf00cc9e19398c0e84af878df11654", + "collateralIndex": 0, + "collateralAddress": "XstgqbeK78yJSGbedJBwrzCN8XQChRU8oF", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.235.132.126:9999", + "registeredHeight": 2113797, + "lastPaidHeight": 2126253, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy6BrLVJY8KbSndd7TearHxDStPt4mk1xZ", + "votingAddress": "XmvtnXAYqtLczvzMoUEsKCS8Xc5qoc8DrD", + "payoutAddress": "XeR7kamgK5yPLAxrosRZ3mtuqAVSC7s1Aw", + "pubKeyOperator": "9418e46595c6d52b9cbf3d01c0de941cdaddb64821060695e6e055c0b357921b45b9fde8e626a4b8c51452108b7641da" + } + }, + { + "type": "Regular", + "proTxHash": "e199dc8c539c324bb9881e986c6b5fdb0dec8bcc1b4ff9362f5f3416d464d469", + "collateralHash": "69c2d8f4ed053ce297e740122d3af4a2a1c0190fc316da422cbe31491d632bc9", + "collateralIndex": 1, + "collateralAddress": "XeSwsf71WhK3d3JPmQaZ3aE9m2NScgsRHY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.193.211:9999", + "registeredHeight": 2113846, + "lastPaidHeight": 2126301, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs4YYeNwkNYopKZXbTwc82XtMHYocLehwD", + "votingAddress": "XkxjjFo66WRe1xDcT2DZzqkZJe7tAAuuWZ", + "payoutAddress": "XtYvoNtu8TswcoBubiRtJhFZjNDb6N1wTU", + "pubKeyOperator": "9571c70ba61599eebbdc851dc3d019e68efdbb7ae9cf36ab9da9131bbac534634e364cad8a9122217de026cd7e25b609" + } + }, + { + "type": "Regular", + "proTxHash": "3d5e8d50d0ddc4e948e6913d21700f4e45b5448d613cade53908a4820c5a48c3", + "collateralHash": "a2da4ec361c92927b88ff1444f13fc3c69b054f95689c8786f565ceef0226e04", + "collateralIndex": 1, + "collateralAddress": "Xh3Uv9UQc6JdJM3CUprS8rDxSC4WGJiYPr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.221.33:9999", + "registeredHeight": 2113903, + "lastPaidHeight": 2126346, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqfQmguv4QAkADNcy6ZWS8zSf6Ag1eSR4u", + "votingAddress": "Xo6BZ1CLkAsJAvXYZLe8jm3QXfGG7CF9Y5", + "payoutAddress": "Xz1zBzcGHznP4EiFvrpebVN4ATpgUncXtX", + "pubKeyOperator": "ae4c2bee48eddc193fae09b8895e89d2293050fc2a0d9de1de36acc42347ee83f92d8dcf5411d0051db93528123d957a" + } + }, + { + "type": "Evo", + "proTxHash": "5422f2847c2884ca2594f29c54f8fbef2c8f542e128f726f6ec8efa18fdc512b", + "collateralHash": "366e2d65e7acd68864ba856e1d250aa4e1ca14b84ac5758eedf3ec65454dc343", + "collateralIndex": 1, + "collateralAddress": "Xg2odHrMdawwpVUiZ2puQggJmRKqBNKMJq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.200.24.196:9999", + "registeredHeight": 2114163, + "lastPaidHeight": 2126559, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdTqMCdMFDBkKGA629UAakdj7iFy4iJvxu", + "votingAddress": "XdTqMCdMFDBkKGA629UAakdj7iFy4iJvxu", + "platformNodeID": "6f020c24d5c7fbb99d9d371dc6ffa02ab67e7208", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XhZxR638hsaFPsr8LTvtMM4TtfWXaAzku8", + "pubKeyOperator": "a0f97343bab7cc1e389844b2c53375d57a85157bf6cf7eb0fb9a31c5cfc44497c127e440d393bebc87950169d7e86320" + } + }, + { + "type": "Regular", + "proTxHash": "4105c17c98df9b773d11c12c4ea48a77fc29c116192c0760ec916260e24b7dba", + "collateralHash": "bd7fb7d6a620da19c87b91edaa9f2975106576abe1a80b605b376fcfdd39c3ac", + "collateralIndex": 1, + "collateralAddress": "XbWbiLeY6wFKeDEJP7AMQbY1gSzvVraFBs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "167.99.153.103:9999", + "registeredHeight": 2114245, + "lastPaidHeight": 2125845, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119777, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XduzHG4RCsHPP9DJFUKvjyaz6fjsm6yjbF", + "votingAddress": "Xvb4WKisgnAtKNLa7rk6UYmq8EN3s8onKt", + "payoutAddress": "Xrrgz4LtgJbuAaSgkFxP9ZeVVsWJTZMPJ8", + "pubKeyOperator": "b662384301259134c9b260f99219fa27b100c368d20081ee893e4af364a67a1b373c54c9c7f2f38453340eeead0d3818" + } + }, + { + "type": "Regular", + "proTxHash": "89abf63d87197e239544fb402d8368bf52716ec0026dcce3856dd058ea52f76b", + "collateralHash": "fe0de7ba7fe98b91ebf3f0c43dae3c351986319d64727c1ec1442e819b86b62a", + "collateralIndex": 0, + "collateralAddress": "XnjTY8und4UqHED3PmpKZYeZnXwJWKN81y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.235.198:9999", + "registeredHeight": 2114336, + "lastPaidHeight": 2126700, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XaxTmZHoWaNSN4UorThCGCC79Zi8jpK7Hc", + "votingAddress": "XyMZmtWTXHf3VfUuWWwDVgF8BjThnhMY1J", + "payoutAddress": "XcDw1n2TfAa1c46SZ5opYAYLstBYgFgwKJ", + "pubKeyOperator": "8a9df462d882d60b39e65d8e9d8cba327cf827b2cf022fbf27acd5e945d2b0cbbd8fa33c1ad343d90bdf28042a224bd2" + } + }, + { + "type": "Regular", + "proTxHash": "9191469949daf0493b635d54c64f3b2fe3dfc831767bd31f536b78cfaecafa3a", + "collateralHash": "9191469949daf0493b635d54c64f3b2fe3dfc831767bd31f536b78cfaecafa3a", + "collateralIndex": 1, + "collateralAddress": "7iV2ssH6e8VjPj4VWk6WFu1JdVAn3N66a3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "79.98.28.235:9999", + "registeredHeight": 2114574, + "lastPaidHeight": 2126900, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyjEhtJQqxhiKYvadsht5E6GVx7eEb7GKF", + "votingAddress": "XupRSEhw4snRD8nEEo9jbFywD5yiVKprtp", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "94be99dd0fd24294e6f41d4cdb7a8c70016185d2204f3f918df3c6fb7bf5a7babff80aef6fb24753593e2ccd8f8850ca" + } + }, + { + "type": "Evo", + "proTxHash": "ed2a0d621c834b3c0652d8e6ad8265a971e8847766f40af13b8d3413123d8d23", + "collateralHash": "97830192daf1966d701971b288fd69554db0a02b0f320f97f82e11eed0f3966c", + "collateralIndex": 1, + "collateralAddress": "XwqcJ64p65zMtJJdD9C47TQKhaEusxzReR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "93.190.140.112:9999", + "registeredHeight": 2114650, + "lastPaidHeight": 2126995, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu8mje37knBPhadD96tScCsabM96xnD2bV", + "votingAddress": "Xb6L4uX7oCgro4FVzDvh5wwYWgLXME8G79", + "platformNodeID": "d80a1d13b6e11327c3e289b08d9b9e4f11e93dbd", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfwT7QQP2DSj7FdAd7M53FKUgQCrrujtSS", + "pubKeyOperator": "83f3197499ed4a79eeec070f5e8a44e46e3576b0ac3a132e09ca3ac12c41efb49b7d852b0c9cbedc635e2cbcb28a3648" + } + }, + { + "type": "Evo", + "proTxHash": "8239cf70aba2791020c2af741476da624445be6c6d27055875be19c79018b92e", + "collateralHash": "4a71c90b00631e741c9aa757a1454eb3526dd99e62d4b65724e2765179dfd711", + "collateralIndex": 0, + "collateralAddress": "XiG1Xt6yNq9tZQaNcMqWgaeKt6XwnZ8WMz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.237.193:9999", + "registeredHeight": 2114704, + "lastPaidHeight": 2127368, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2114993, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XfGd8oAtzd2dj9orjB4sMSMGL6Lk47poXL", + "votingAddress": "XtRk8B58WRSDXjpggZvVZHtcBtexbFGPMX", + "platformNodeID": "19d178d7e0abd8b38feb879c3130f66ad8c937e9", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XeJDZPQadxHBRToB3LbC3bQBcvu9H5pca7", + "pubKeyOperator": "b8448f230a76c7edfc0e8cf88799cbd9e557b19372db9df47818a953a7eacc5f2c681f08a075e7bf39a3f86dd80a7e67" + } + }, + { + "type": "Regular", + "proTxHash": "13dcc4ebecea14d97af3fd1a5e6aa2e561a61cc7cef15a60b687b7453aef4e8c", + "collateralHash": "0f5b12d085bf4aea30a740df524b18a7c2c8dbdbee16e8667bb1f0d3226f8fd1", + "collateralIndex": 1, + "collateralAddress": "Xjb1pGMoeYtKPyrwWBK5Byt88E9AySQK3Y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.254.241.4:9999", + "registeredHeight": 2114996, + "lastPaidHeight": 2128528, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2119257, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyFvvWjLYR9ehxRe84E7KTQ53HSLGS3nu7", + "votingAddress": "XxgsJdvmPWHZKSSk9xSanzpAajfJezci7Z", + "payoutAddress": "XfoSCmP1uk1sWZiRyuLTPiEAMTs8JwA1F5", + "pubKeyOperator": "aa2b45005c4bf5e5d059bba4565fe586a334529838bbafbc3685681ae3d24bd61e09a9844739f90e0784df2db1fa84d2" + } + }, + { + "type": "Regular", + "proTxHash": "d8a63569aa7c6dc178e1da842ca053b46e9496e7665fa30bf7d9a779be722966", + "collateralHash": "f317cc59d5eba76e6c81f4902d255956af34c7ba85ed0fc62329a5ea1a627e82", + "collateralIndex": 0, + "collateralAddress": "XjCm7jLBzx7ZPnkuaJERFVqctDF3mhmFTX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.3:9999", + "registeredHeight": 2115010, + "lastPaidHeight": 2127385, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjYwHkXagXpaNWdQW5o2gr8VJGgLHQuh9F", + "votingAddress": "XqfirTMGEBMo8UcWoYJGddjaJDsAWYbkwv", + "payoutAddress": "XjCm7jLBzx7ZPnkuaJERFVqctDF3mhmFTX", + "pubKeyOperator": "b5e7b08023d4d58ade5e57b0e2b10f066c9c98d212c3ae1cdb760505b6e9600d5d5353e85ad4262cf41ece91cbaf7946" + } + }, + { + "type": "Regular", + "proTxHash": "e9167ba02a04c4959d189e23c1be76c60d5262b88d230a4e256a436f24332c23", + "collateralHash": "2d417b7e26784a3d55d2bf2bc2e8b53524f9e6fc3d19df43be50cb14833530cf", + "collateralIndex": 0, + "collateralAddress": "XbnrWeTvdJBLPk8dXHhBV8yzcm9FxriNpv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.54.98:9999", + "registeredHeight": 2115010, + "lastPaidHeight": 2127384, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiiMEiCwktbE67FabZESQvUTWVEWR1Fxi7", + "votingAddress": "Xpc7fNDGLHcEh72iEho5U1Dma6HkxfnoiC", + "payoutAddress": "XbnrWeTvdJBLPk8dXHhBV8yzcm9FxriNpv", + "pubKeyOperator": "82ecc372422a9706b2c9f3ae0d9aadda3cc240f347297c0d8e4df6f5beb4d83dddac550be5270e060d4792686f9002a9" + } + }, + { + "type": "Regular", + "proTxHash": "9fdf1b7048e1406b07d35ffb2552b69b63095e512dbdf9e5debbd7b20c6f6d3c", + "collateralHash": "893a43b5b50fab1f97727d901d17509600f2d90870800968918daa6dfc76d955", + "collateralIndex": 0, + "collateralAddress": "XrSc3AhaSDR4WWqKp11HGHVbURZLwii871", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.71.203:9999", + "registeredHeight": 2115011, + "lastPaidHeight": 2127387, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxedYHVGQugsaV5qMuYnGX3wfQU23SGhte", + "votingAddress": "XbTJZDcBHDC8j2Bt9TiBf5y3EUD1dTCLdU", + "payoutAddress": "XrSc3AhaSDR4WWqKp11HGHVbURZLwii871", + "pubKeyOperator": "b1d680073ce65462f442ac8f4aa6b11d03d3f71e2854ba1518a89a0fbea9ca69d1a58067d4af030fc3846b83b22649f6" + } + }, + { + "type": "Evo", + "proTxHash": "36d014b83c54f35061dcc08178315fca46c951ffa6c606e2c0ac3222bb0d01eb", + "collateralHash": "011977b491e8ec7ed53cb356de718bb1df299c951dfe990c1206ff75860b13d2", + "collateralIndex": 1, + "collateralAddress": "XnUtv9FgxRJ6paoqjbsVmmunpNvwCGHCtf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "172.104.90.249:9999", + "registeredHeight": 2115351, + "lastPaidHeight": 2127773, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdCX53AxgyebThf9PFx2cFX7YdhtanHVMC", + "votingAddress": "XdCX53AxgyebThf9PFx2cFX7YdhtanHVMC", + "platformNodeID": "3b6f7a39a99f27ca34188e31e26e2c7c1b2686b4", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XcNqSTq9qQZXc6bGbUNuv3ccYa438zbArQ", + "pubKeyOperator": "898b7babc611a4f6ef51cab87722f08d823df46a1c73d1a9a0c17e5b1c1a6d206f2db4975371b60aa9ca1f91a0e6dbf4" + } + }, + { + "type": "Regular", + "proTxHash": "6894311f6f8d6d0be5ebeaf9b3bf9db77b77f258bd9b235c7464312caeb00b99", + "collateralHash": "5604cff04618923dcee9c5e2c6e11caf1f49412a3894dbda12dbb6acff517801", + "collateralIndex": 1, + "collateralAddress": "XkThgotrJhVMLU2w7sfB62M6H31czyswmt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "139.180.212.166:9999", + "registeredHeight": 2115357, + "lastPaidHeight": 2127779, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XyzdZeDpu4dL7wCgofDZRL4WLsaVLzuwvC", + "votingAddress": "XgCF23SsgSmJMhLFQcjbwZiafxgoA11BBH", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8982f37a9a6626befc8e48eb905d41771f69ded66ea3ceb4eaa549b3cdf0ae50c96c64104c1c1fd75590c9b4f208a108" + } + }, + { + "type": "Evo", + "proTxHash": "ffb44ddfe12fd80c16fe61d6bce14e15bf0b1692e586b6c4c49651afc938b781", + "collateralHash": "9f7a703c11d6eaae3396fded435e818f133542debd7ec4c01df75e4aaa33519f", + "collateralIndex": 0, + "collateralAddress": "XqvYJLMbuV9GobFxojSaHuAz5Cs6aC3npC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.157.91.176:9999", + "registeredHeight": 2115705, + "lastPaidHeight": 2124980, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2126689, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv7bTXDppdV42qDtZBxmRDPCMeswiHDFrM", + "votingAddress": "XvjNo8niMfw52gHx2sHePa89Gn2VVbCfKD", + "platformNodeID": "0fde6bb71d91a42f7dfa5e8f0588fb23d8be17b3", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbG3GMTaftodNzS1MwqBjRcQWivje9KTpV", + "pubKeyOperator": "88ba0168b67e16e47274bb29e7f85a947879f8aff1c4667a91b7d1b3dc6c6eec6e4fcd27036ed64a105687f5ba6589ea" + } + }, + { + "type": "Evo", + "proTxHash": "007a7d6e5fc0adca9dab24584a03dabfcd4d907d811e4b69aa3bf2f9cdd80232", + "collateralHash": "87a73846400a98d8cef08cb1b19f88e62c86f88079dc9f8b13a8608b071b2bff", + "collateralIndex": 1, + "collateralAddress": "XdwvcnD7QxUZGMKb3yfQ6coENDSsaq4hRy", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.201.164:9999", + "registeredHeight": 2116059, + "lastPaidHeight": 2128519, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmgThGxeiQEkuccidNPXqCo3j2uA6hfbTq", + "votingAddress": "XhoiN6TWTy9XuyFnUwGpfvt9Cr1xPoFhTC", + "platformNodeID": "849d52a31a19dcdfda3a18ffbd70ce341c625e06", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "aa3661ac92b342558a833802bf14ba1b91684eda6728c0c51cf39a1ef8145ab3c69ee45fe0a556ecc44e75d500fb0b78" + } + }, + { + "type": "Evo", + "proTxHash": "47aab8e3800b1ce84577bea9e92c602794de4810d75caedaef264e03804ad41a", + "collateralHash": "1de5cfb67d5bcad5bd1c40b62548ebe2e7d6ed9a3f79c8e4aabd6b12196c84f4", + "collateralIndex": 1, + "collateralAddress": "XkR1FVrxo9JoEY2z85Tt4Aq8SZAC9jhqkk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "93.190.140.114:9999", + "registeredHeight": 2116077, + "lastPaidHeight": 2128539, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvRP4xKVveg6efNWP2UWueT3f1d8jdGftZ", + "votingAddress": "XraJeHjBMMjTk1XzrjFA5Sgc9fHzG1NZkA", + "platformNodeID": "f7db7a5794a1e7b06b8e697c8d6cf108da02773e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfwT7QQP2DSj7FdAd7M53FKUgQCrrujtSS", + "pubKeyOperator": "9814757029e2483b972a6c19249fa6c5708ddfa51a7a1f82c98bba3ebb85f1657bad1b11468d99dfda8bf38976abc044" + } + }, + { + "type": "Regular", + "proTxHash": "752e1eb546b5b9805ae6deb08edbbb51f7b68f5ba5d8b216cfa875e2746feca0", + "collateralHash": "fb03884b8b89c04e2e72d0b409b8d88234b5b82a5c55eb54e6831959e3b13cd2", + "collateralIndex": 1, + "collateralAddress": "XgqMhfVNYjqVzEViFYho2GaUuZwktdiJhV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "174.138.9.67:9999", + "registeredHeight": 2116078, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 3854, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2117397, + "revocationReason": 0, + "ownerAddress": "XuyYeNdK555SnUNAm2F6mV19JtLi2stxiX", + "votingAddress": "Xc5AMutmGyuUVKTekqi9RzucXoXd7EcjEj", + "payoutAddress": "XgqMhfVNYjqVzEViFYho2GaUuZwktdiJhV", + "pubKeyOperator": "abe7e4b317650666af4a8084dd0d8541d3e31899b36ed6e5a1fc0525018de6cefe45c7ba790af5bbe18d2f6a665659b7" + } + }, + { + "type": "Evo", + "proTxHash": "e8519e0a0dde718c3d3ab7a0850855499dfaef6a7881487ce91c9d5f1e6fbee2", + "collateralHash": "7161c7dc6a57352bf8ffa9926a1d568d3fd78320f2924354c6b569cfda2feec8", + "collateralIndex": 1, + "collateralAddress": "XfcPNiXWcd37jaJakAYYLcM8Yp17BEQ1B2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.158.107.124:9999", + "registeredHeight": 2116085, + "lastPaidHeight": 2126978, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2123814, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrztMxpMwRGcPVgormXF6xaGZdKJyt6EkT", + "votingAddress": "XrztMxpMwRGcPVgormXF6xaGZdKJyt6EkT", + "platformNodeID": "54c30273d72752d4953d81ceb0e92c0b313902a9", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjHAjFYkm13NmL4ou8zGPRzmqgMRxnCnZF", + "pubKeyOperator": "804f2390d47b8bf77c6dd0557aa524ff026a35c4dba556823d6d957e013d54ce3467633ba63a84baa7bdbbc1bba86a91" + } + }, + { + "type": "Regular", + "proTxHash": "775dfaea33800a8fd42caccc08f27145e3a172c1e727205b806e7e8dd0218b36", + "collateralHash": "b189cdc6be9e406a2191ee36c9ccd0354d5b268d4d1f1e4839cdfbbe5fcb53cd", + "collateralIndex": 1, + "collateralAddress": "Xpjiif9SnGKY4trM6uKX8NtHwXZ2pwtFbg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.250.249.32:9999", + "registeredHeight": 2116132, + "lastPaidHeight": 2119314, + "consecutivePayments": 0, + "PoSePenalty": 3829, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2122026, + "revocationReason": 0, + "ownerAddress": "XwHE1EgD2YfbPA4kjJVQJKR8zU5jspHQqX", + "votingAddress": "XsRZzjFo2z3pbBga8j6FFQDg44zCtwof9G", + "payoutAddress": "Xpjiif9SnGKY4trM6uKX8NtHwXZ2pwtFbg", + "pubKeyOperator": "960c99fa474c204e560623edc5c2245a30265ffdcf8867e4215f66cc22d5f823bba0744261cc90eb945c87aee5259625" + } + }, + { + "type": "Evo", + "proTxHash": "ec61536f25506db52ea25fd10f688d01e29bb0becd5cf8dfa928e16a94d13778", + "collateralHash": "27b2647072b372de6fcb929e0062638a199dbd318711f289d6c799dc75daa52c", + "collateralIndex": 0, + "collateralAddress": "XkhZQjGirwfi1PsNHJZuoKz64M7rhNyTPF", + "operatorReward": 50, + "state": { + "version": 2, + "service": "64.23.134.67:9999", + "registeredHeight": 2116201, + "lastPaidHeight": 2128673, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkMXEvdd6th7KK8tzCh44nbapWwMBW4DFB", + "votingAddress": "XoL8FaijPpW27xCzXHR4JMJv17tZnqbjXp", + "platformNodeID": "66bcb448672ba345ffe687e84f20022edadcf263", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkhZQjGirwfi1PsNHJZuoKz64M7rhNyTPF", + "pubKeyOperator": "9696ad67629280a36020169dcfe790c7f550b5b3afd3fcf3c255070450cd439243d9f70eeac551a379cea65d60c0c6a0", + "operatorPayoutAddress": "Xf1rZqQzrMgT3D2suCJvfD1TYkSyNKWwp3" + } + }, + { + "type": "Regular", + "proTxHash": "b1c9f08427c5eb8ca2da8dafe5b705e59de176d45fcc17031133a29648b2046b", + "collateralHash": "570f1bcc79e7b6183a357d5790ec471385fffa453f55d3362796b6a10390aecc", + "collateralIndex": 1, + "collateralAddress": "XffWC54cu1QiQLY5BW5ywkkwn6AL2MDx2q", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.83.122.122:9999", + "registeredHeight": 2116213, + "lastPaidHeight": 2128686, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxMwXdnH3FSd153yyJX9cDpH5sBfP2ZiEF", + "votingAddress": "XmCnHrXFjLBhoMKyJhgv1mPQTT9kRC9qYX", + "payoutAddress": "XffWC54cu1QiQLY5BW5ywkkwn6AL2MDx2q", + "pubKeyOperator": "a9ceaf4289aafb48c5cf547d4a50f22e254c8f814a506ebbbe4ff50a6aeae4da0747c6030bad312d42c44983de509242" + } + }, + { + "type": "Evo", + "proTxHash": "e08e168225f8c14b149b781ecafb320618a5f22c759ba8f8054caba82c78df3f", + "collateralHash": "0ec2bf4be0e6c25946cbcf564ebb1bbb321e63160868084c1289715da6b7bbbc", + "collateralIndex": 1, + "collateralAddress": "XsFDa9imuoxjWkgeqqYtFCFfHhEuEDDpvN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "93.190.140.162:9999", + "registeredHeight": 2116256, + "lastPaidHeight": 2128730, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xy6yopHXW7DipX7SAdGswbuhi7kf5SLvqV", + "votingAddress": "XsVMNhkHnqasJWYPGZot2PLqjRMB45U1pv", + "platformNodeID": "d40b15d9b075726b6b6a1bbdd2ea3ea392312783", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfwT7QQP2DSj7FdAd7M53FKUgQCrrujtSS", + "pubKeyOperator": "96ba1fdab8f697eb1fa7acdbe2621b389b65389ef9408a721d7217a50531f1bb049a8c6ffea0be3e40e38fd6592b1ccf" + } + }, + { + "type": "Evo", + "proTxHash": "36b3e63ba54aba9b75994128d124e9e1cebe348cd30415b5098c60526de0157e", + "collateralHash": "4ec9522356353de8a471fe9e1d08d588fa95b229dc10515fa5677d0c6d485ef3", + "collateralIndex": 1, + "collateralAddress": "XeuQEvyPZCRMqYPQSJqQMDausNxpisekAe", + "operatorReward": 0, + "state": { + "version": 2, + "service": "159.69.204.162:9999", + "registeredHeight": 2116475, + "lastPaidHeight": 2126714, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2117561, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhmYn3tuEa2tUfNnVBaFYZ25bP4fTRGNgJ", + "votingAddress": "XiV1yCLuJtkb3qvwSmHB2ukWMxkTYZeNsD", + "platformNodeID": "eccf6c009de2acb3a432319bea107bbf16a1913d", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkQnwA3ZgchkzwXqLzYPVRvzQrY1yiBvzR", + "pubKeyOperator": "b608784f5b3c6458e921aa2c4eddc7747fe248dfdaeb24052e14a62defe544b9d724754715fa2cb261a07badbb0ad0d5" + } + }, + { + "type": "Regular", + "proTxHash": "b6ed31eddba613e94989f7e9c1404323d057ae27e06f26bbfe8f08d50a3a4dbf", + "collateralHash": "ae6da398a53253e10d94bf428292a73f3b0e1d2a7ab526553b403bf4ca2a8ab3", + "collateralIndex": 0, + "collateralAddress": "XtpZdB6Yr6bwfkQY7BikqN3YZTxHpW7gz6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.198:9999", + "registeredHeight": 2116710, + "lastPaidHeight": 2125919, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xz1D4ceoXDAZxQLJmynMrgGY9PeCfqg3Jm", + "votingAddress": "XpF9QhNgq5HoNK8tV665nzJW6jUf6aZVy3", + "payoutAddress": "XdEV1zfgTD6JhpsgAqYuZN3V9Yf5UdJwF9", + "pubKeyOperator": "8bd513bdaa591e2b3df2b2096165e3460285583ee5b841029303434866535c4ac04ae47acf305699884ef5d242f73039" + } + }, + { + "type": "Regular", + "proTxHash": "3e75b887ff111eebdfd6389fc26d53ff01d713de50ca0d0c36af8d2cc052c0ab", + "collateralHash": "ae6da398a53253e10d94bf428292a73f3b0e1d2a7ab526553b403bf4ca2a8ab3", + "collateralIndex": 1, + "collateralAddress": "XvFpVLLS7xPkWtfk9ebrycR7UrXMHhAbGX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.199:9999", + "registeredHeight": 2116713, + "lastPaidHeight": 2125925, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvF1WjT4YTFxgMVZvYogKyneTtfpKhWZRN", + "votingAddress": "Xg7syWX8UdkopZRSoTf1GF7efvW5oJTJi9", + "payoutAddress": "XrfrxqNhki6Zf1rA77JN6o6PSjVXSew2fC", + "pubKeyOperator": "99a094719fe6db59a7aae79835a7853b9c564734eb3c55d32e3f9871c83f186eb56e9634e641f5fe554fab4ca6b475a1" + } + }, + { + "type": "Regular", + "proTxHash": "fa85edb9f16be0dc69303bbc0058c609a87d6133d10ac9bb427754440d2552ad", + "collateralHash": "ae6da398a53253e10d94bf428292a73f3b0e1d2a7ab526553b403bf4ca2a8ab3", + "collateralIndex": 2, + "collateralAddress": "Xig8Vp6qFaFQSARfD2hBu8ZPoZp2ihFhnf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.200:9999", + "registeredHeight": 2116714, + "lastPaidHeight": 2125927, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmfkp8ehwyFduWsRv3SSuLfJkNqNjRbzKP", + "votingAddress": "XbcnATT9iDZQ2NDnkDAcfYFPTU22DZNR9s", + "payoutAddress": "XcQ21kh4tQhBL3HjiHC5hYesL7pFQiWEuV", + "pubKeyOperator": "b6ce7168806d5617f27df0f1d6eca695e560f3a38c4d3ee7b3a7f27afc793de8af33b455d6730b0e1f12ddc18a7498b4" + } + }, + { + "type": "Regular", + "proTxHash": "e3bcdaf8ab9960668918157422a9139341a3e7b18d16e1603c9a5b91d761af6d", + "collateralHash": "39f127c6a422b32f62343a1aae7405068cf7a698d59c499a3909ef88b7e28b8d", + "collateralIndex": 1, + "collateralAddress": "Xrp21hrZd8n9TUcssWhaZcjqvBwanYgyLN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.18.223:9999", + "registeredHeight": 2116728, + "lastPaidHeight": 2125939, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128686, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xmvk5uQRtL9xig4FkzAyrovEYnvqzFnZiG", + "votingAddress": "XeLvWnQXcYXBek6hNzGhookLWPS8aTf73C", + "payoutAddress": "Xfet6ZdQe3LRV6DEEPfMqSZbj8vHAKFEF2", + "pubKeyOperator": "834bed8cbfb39d026a7872061cd1c63254df2fdee88b8cdb47420e92b6721421ac119dfd07f24f406db6cc66c1db880c" + } + }, + { + "type": "Regular", + "proTxHash": "2945e3d075945de246dfdada279ce63d4d282ac570c5106c5e47b8308fc797b0", + "collateralHash": "608a7b36a297e9d047b1901aebfce54e733746ae1e7004f166303eb1f7fd5523", + "collateralIndex": 1, + "collateralAddress": "XfdrKcsQVxceNandRGL8UgerRVJMTcQxS7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.248.214:9999", + "registeredHeight": 2116756, + "lastPaidHeight": 2125966, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhpbrQovhDbxZQdzQ6YNz6Bhu9yZsA4wdA", + "votingAddress": "XdBNZxgX177aB5fXrTEUM74JKkVrrZpT6P", + "payoutAddress": "Xfet6ZdQe3LRV6DEEPfMqSZbj8vHAKFEF2", + "pubKeyOperator": "8ebbfcfe2c7c0b7b6fa06512b465f561da5aaf01f3b78341e7d82b30135005cadb6910ee985732c0e865875ca2b47510" + } + }, + { + "type": "Regular", + "proTxHash": "7378516639ee793e8e91ed32c691f091db435787412aafc48759b196d641ea32", + "collateralHash": "5c884e6b2f1fdc87681bb44c4b7c763f5340d6cf34250a7ec76ef20032fc0a1d", + "collateralIndex": 1, + "collateralAddress": "XbhFhWSgYeJThKU45psF3AC1oak6rL7fx3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.196:9999", + "registeredHeight": 2116768, + "lastPaidHeight": 2125975, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtJZXRh8FdAvHfVS1nZorooeTL2Un3pxS4", + "votingAddress": "XtwM4TarnocLZAtbArLupQe7s6RwQ58owQ", + "payoutAddress": "XvBL1ZD2aaa9cWpE2eNxR7LT9sEr3TJH8Z", + "pubKeyOperator": "ac67c0297f110998016ac5bdeb7ce4c51e990906fcecfeda80074c8578316d93c215ae95052a5429cd2fc66f4e430f56" + } + }, + { + "type": "Regular", + "proTxHash": "e8aa2270d239b085e1fa4c95ac17d3cdb67fb6e3cc90aa8b277d99d05c1578e2", + "collateralHash": "6041edad0416fb2f39bfe9158006d7fd1b4c8bf38284da267dbd4803657bcc6f", + "collateralIndex": 3, + "collateralAddress": "Xr21jDjoah4fvhWmZaeTq2dHm5pX7qsShb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.192:9999", + "registeredHeight": 2116798, + "lastPaidHeight": 2126014, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfx4aG1wodveuJgkL9sxFVNZoN2Hn3ziLw", + "votingAddress": "Xe8LQzacDFCGuuzRD333Y9sFTLvo7zYMDY", + "payoutAddress": "XqFhQWqy1soYi9mBiqjHwrsKBfru4tEz5v", + "pubKeyOperator": "91918c9df2e05386760d43486fb7912d00a3698965b0c704ad43dafff0f58e65ce28d783b82ee27d30a56355fc456c08" + } + }, + { + "type": "Regular", + "proTxHash": "20a063fdf88b36024774e05419248e84f09a76346c11378167601bca596e9a0a", + "collateralHash": "6041edad0416fb2f39bfe9158006d7fd1b4c8bf38284da267dbd4803657bcc6f", + "collateralIndex": 1, + "collateralAddress": "XhBa45VoKJ5V6vxYruxjVyTA81Pxmwfkgb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.201:9999", + "registeredHeight": 2116798, + "lastPaidHeight": 2126013, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnBToPjw4bSBCPuPcLgJdEr3hTkeEUVstm", + "votingAddress": "Xh5iMcpDQMMHBtWpU7mEPP8qgZi7tehhza", + "payoutAddress": "Xfz5LA3AfG5E67hyPqbodSM3C64F5xCrKM", + "pubKeyOperator": "adb39d9021a7057ed18ab7147db95c794db45e1ea9da4d1f6e95f540e4a8c7a2b18bf8e1dd9b30344c9c418fdddaf752" + } + }, + { + "type": "Regular", + "proTxHash": "56852e938fbd90db9dce85b7eaa114df017f0c1b2c6f1fabe7801d73271517ab", + "collateralHash": "6041edad0416fb2f39bfe9158006d7fd1b4c8bf38284da267dbd4803657bcc6f", + "collateralIndex": 2, + "collateralAddress": "XnHw5B9B49r8AkNvbkdfCF79SgYouSG5gv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.202:9999", + "registeredHeight": 2116802, + "lastPaidHeight": 2126020, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcCJQiaEBdPu37eutxmpWxNwxyJvmMaVjn", + "votingAddress": "XdMFGue9o8VyCSrGFutYCkoZFem5QgZGvT", + "payoutAddress": "XunU3TNQ1PGHW9DkEFZuPJpF949zLDtv3T", + "pubKeyOperator": "af029d579d05585b2b7023cd831bf57766600e77d19005261c08e3d66ac7e15c6edb23e300d99abfe37bf7e4dc8abd0c" + } + }, + { + "type": "Regular", + "proTxHash": "13cfe1dddea3ffd0adba44976662a0cc4aa4483d897de1aae472aab4de4e416d", + "collateralHash": "6041edad0416fb2f39bfe9158006d7fd1b4c8bf38284da267dbd4803657bcc6f", + "collateralIndex": 4, + "collateralAddress": "Xxyr4pNqShXbfAukLAp5iKM2g24bxX1AGi", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.203:9999", + "registeredHeight": 2116802, + "lastPaidHeight": 2126019, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhvHcfNmtbd2XQSxc5phFpKgMMw2XH5ZKq", + "votingAddress": "XnYWVD33sfDC2DByXXwVbCt537PQpkhUvo", + "payoutAddress": "XrnUSJV1Q1cEKDLMKi4sn7cFPxtjKWvpVx", + "pubKeyOperator": "aa82f67ed85ef5a007699baebed514b5909d8ca77a61b98d8b4224d29ee2debeadab485edc121b63bf682f5c4fecb270" + } + }, + { + "type": "Evo", + "proTxHash": "57eb2627121afff87b1378dedef3b4b36984821316ed720ebc9a7beb557ee722", + "collateralHash": "4bb0aacb30cfb26a80bd18877723751f00ff2d2e25961f6c20b9f9fa5cb9ca94", + "collateralIndex": 1, + "collateralAddress": "Xk5H6wX5cCBPVzkGqoN2gkSkrFRrraXb6k", + "operatorReward": 0, + "state": { + "version": 2, + "service": "93.190.140.101:9999", + "registeredHeight": 2117095, + "lastPaidHeight": 2126310, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xg94jxfpTmK4uWfrDcpHTUR5e13s8A6JtA", + "votingAddress": "Xz1QzAnGyNvTvJ67GAdh4yNjH9y5gmYKZE", + "platformNodeID": "0f12674271d764f7f454f0184860554b1c271ef5", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfwT7QQP2DSj7FdAd7M53FKUgQCrrujtSS", + "pubKeyOperator": "b44cd1ce013cc74395dbd8ae3bf131951bddac4e08a7b83cde543835fe1a623d4eca8f01d9677fcda680a6d8a373c75d" + } + }, + { + "type": "Evo", + "proTxHash": "71f33163403d54af9402b5e9e46384b2f828120f0ec9d370cc08b3aec4e92fd9", + "collateralHash": "a630c9c53b9aa022e1f6bf1c8a1e81d251e4e9c963509f1575e960a49f38b914", + "collateralIndex": 1, + "collateralAddress": "XvoNaHkBoDhm96sxXdAA95UvEEkyrpQLp4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "93.190.140.111:9999", + "registeredHeight": 2117096, + "lastPaidHeight": 2126315, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnUMbDay3By1YiM7TTwVktt9FXMFDUWSZq", + "votingAddress": "XhLuCktJPKZa3tTtaj41UBoi63uDfVFtQ7", + "platformNodeID": "3faedc3972d46af963279d7b217a50bff7a161c9", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfwT7QQP2DSj7FdAd7M53FKUgQCrrujtSS", + "pubKeyOperator": "b56a94a344a376bc2c8a81b975c6b4567ec2dc428ffb3cde63655681f0cc127ecd27d0097629cf87ca846fde3352cb33" + } + }, + { + "type": "Regular", + "proTxHash": "d1fbc5b1ce4958666f187242d0875ec8a382973ff3d7b5cbe0ad6c61e7d33740", + "collateralHash": "ebfea5dae842ed8e31b7d8d39c2e5670c2af7dbb36feafeaa968e1d8575041b9", + "collateralIndex": 1, + "collateralAddress": "Xx5SoPpxBwViFf9XyTHXTyYYMuqvbeZf8t", + "operatorReward": 0, + "state": { + "version": 2, + "service": "136.244.105.158:9999", + "registeredHeight": 2117220, + "lastPaidHeight": 2120348, + "consecutivePayments": 0, + "PoSePenalty": 3834, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2122602, + "revocationReason": 0, + "ownerAddress": "XyVdje8rLi2oaqvhzWAEdXe3nnM12f17ah", + "votingAddress": "Xbk6StxXsEEsV1u12uGSp635tEH6fk4tCT", + "payoutAddress": "XjuACDHH5hdMUYh87gesfFUvpRSR6C5x1o", + "pubKeyOperator": "92c88b5512ea12ae8782355e03c58ccec10aa22df508c6d50875cd21d875ec7e31c1527c8af6fdb4add32d28ad6a90b1" + } + }, + { + "type": "Regular", + "proTxHash": "93050fd7d75506354645518b047a6994373c9a79cc3c6cc9329a0fa03f74cab0", + "collateralHash": "f8b39244e7d772ab4b2dc274616fa79b0b7ea04d1c3197be9ef15f8ac4a6e624", + "collateralIndex": 1, + "collateralAddress": "XsBRfVHsPTUraefhnjkbVSjSNiZA68hrKm", + "operatorReward": 0, + "state": { + "version": 2, + "service": "209.250.243.84:9999", + "registeredHeight": 2117221, + "lastPaidHeight": 2120350, + "consecutivePayments": 0, + "PoSePenalty": 3832, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2120874, + "revocationReason": 0, + "ownerAddress": "XxyTVVypxWcKBSQh924cnaJyENg3RR9nLt", + "votingAddress": "Xin9zNnwyywRCuaRpo68AvGRDkMktzeGwt", + "payoutAddress": "XiCCJvZ4xFr31Vc1H1QHTZWbW3pQ7nTBV8", + "pubKeyOperator": "91322e4bc2d65577321cb15ca474a71e0c3f901cbfa53a36ec86bdb7eea0c922fcb7e02dc4b5b25b0d6106b436c7eef4" + } + }, + { + "type": "Regular", + "proTxHash": "65c892fd43c443fb4d2328eae3b2cb28d96bc1eee0a026a3babc15585783b7c4", + "collateralHash": "d3394a0df692cf7c7d02a02e3d5a768e4c7685dbc358d24fc36ffc55b2c940dd", + "collateralIndex": 1, + "collateralAddress": "XeBCssJfZA7KbW5CHM1yqD2KaZ2t5UZU6F", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.171.15.125:9999", + "registeredHeight": 2117263, + "lastPaidHeight": 2126451, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsRFUeygB8bnRQXU5M17mqtK6mxFiDn8Uo", + "votingAddress": "Xp6PocfowtJtG2bSEfgWe95xRzw7NRwWP1", + "payoutAddress": "Xh9PyRGSZp1YHjMcNHe39694KdNnJw3Yge", + "pubKeyOperator": "894e9475f712f0a14d2369f4ad80de3db09e35896854dd6a1f889c0f3fd8c95940756491ba33821537df38849cec9e2d" + } + }, + { + "type": "Regular", + "proTxHash": "f67eaaee3af2d87fca96403295cf47dc39fee3a0feaf0b3a3fd7534ee8714b92", + "collateralHash": "5348e030b2f2a831172b0d4598356f918bd245d4baa7d6d0afe88ee960dca29e", + "collateralIndex": 0, + "collateralAddress": "Xi6bqDdF8L1hBNgTH7nZY9Z8kSkkZsDxCK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "141.11.49.21:9999", + "registeredHeight": 2117397, + "lastPaidHeight": 2126580, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xp2meZdFC9grVZEzRqMWz6muoDSoD2zfL2", + "votingAddress": "Xp2meZdFC9grVZEzRqMWz6muoDSoD2zfL2", + "payoutAddress": "XeNSpztb6grDNLG1qLqv2revxtcGz1m9fY", + "pubKeyOperator": "8e314e4beb4d18deb6da12e0334115d3b1479d7674052994be29b2ab7d8891d820eac739d76136c0006f89395eb45637" + } + }, + { + "type": "Regular", + "proTxHash": "1f90412ef279ea7a2b0484510f97789dd64a829837053e79dec285aec7955326", + "collateralHash": "8e32a033d5de1a131b35b86480c9a7ec1331b2f402bc168a8b95804d878cfb1b", + "collateralIndex": 1, + "collateralAddress": "XtqNSjAGBU3L1h4pATuXnooZFZeqztMu2V", + "operatorReward": 0, + "state": { + "version": 2, + "service": "116.203.252.203:9999", + "registeredHeight": 2117420, + "lastPaidHeight": 2126587, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnkQRSE8iGajHyn5rBEC1JhkwuLXL4rdgi", + "votingAddress": "XjrtNxxFsQEcmf6FSb2SKFoxrGqMByfUEX", + "payoutAddress": "XjwN7v8cLSKisdr8FBNkD3YWKiCq5faM7C", + "pubKeyOperator": "82dcf1a5575fcd33fca208d1a45de98dfb82eaee493bb9402a5f13c3a363c5f5550d0e0be16d993e978b68c50e554e76" + } + }, + { + "type": "Regular", + "proTxHash": "2f9bb78caaacd38b68dcb3bd47c381fc898006e869dc23bbaa1aee3db64f4db5", + "collateralHash": "4aa459e6d9959bc2f316a6ee3b3ee614a4e1d6b87395cfb35d54df099cdc7eaa", + "collateralIndex": 0, + "collateralAddress": "XsCxW5a2A22LxJA8JiXBz3j36VW4wcD4cn", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.0:9999", + "registeredHeight": 2117465, + "lastPaidHeight": 2126628, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmMNTCpqxzRr9zFF6BQhtv3J8sTnQo1vpy", + "votingAddress": "XjwJi5T3KDkBkTfEckVj8DUHkYVhj5pmqo", + "payoutAddress": "XhGtvAD48ZhDJ5VjbRAEsJM8V7uftnZfo7", + "pubKeyOperator": "982635467a9c8cc35ce6dc4d5d09937efd545d258539375b90bab3a50031b8e90d1880865cf957128bc3066c74bf0c5b" + } + }, + { + "type": "Evo", + "proTxHash": "5f0f9700d4e6c9ced64ad672d88b0c021ab9d8caa94c2500cc2cb70228c5cec6", + "collateralHash": "3b21e05f29a7be66a36ea8a48941f9028745745d1f06965466e6b9bdac2c1383", + "collateralIndex": 1, + "collateralAddress": "Xw4dZAtfJKFz9jo57Jk3mNwvvcPCecN7wn", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.246.145:9999", + "registeredHeight": 2117681, + "lastPaidHeight": 2126839, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiWREEpBJgxvLfPHPLcHEEHwti6pw3vqhe", + "votingAddress": "Xv5wDCoaGcPzZhMfvBbcYVcZCTAJJLzWc1", + "platformNodeID": "6434a484a582b49202f89f2e0010e174ca65d612", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsFhqSus6AbN4nzxSPaeaKEfZvGqXdrPq3", + "pubKeyOperator": "a139d42e3d85021cb660421205e07dea66c21cc252062e584731bc7ddb40fcc95a35de14eb08e3eafc455d21004c0fde" + } + }, + { + "type": "Evo", + "proTxHash": "47b1197bca506b44aca384ab8df5edc43906f3f3e3a05a2ff35f3b2e6550d427", + "collateralHash": "7a2acd6a2cb443287aee9714c58e82c04010571bfb1d2151d8a0072ef3be2685", + "collateralIndex": 1, + "collateralAddress": "Xe7xsCztEFLpUuJL8JWG65P4T8FXXEMVkM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "2.58.82.231:9999", + "registeredHeight": 2117871, + "lastPaidHeight": 2127024, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xk2QHTCxb95YhzKoaQBvSgAVrainAcu4R9", + "votingAddress": "Xer8QSQ9GM6CAqMAGmxndTXxX5ZM548P6N", + "platformNodeID": "b439f25abe95293c1b25eaa1319309a9696417a6", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xe7xsCztEFLpUuJL8JWG65P4T8FXXEMVkM", + "pubKeyOperator": "95fecd5c42217a2e3cfa4fbf077e2324005e47ba4698aa6a0a82f4a382bf1ab294403fc6cd067b448b545121aad9ee97" + } + }, + { + "type": "Regular", + "proTxHash": "d5d00cb8101e3aea841972dcb5001ea346729a2b421886dc2ec5837fd9933c0e", + "collateralHash": "3b3f98be65656d644d2456f13c9dc10117b939411bc0b6efe2c07de4371808b9", + "collateralIndex": 1, + "collateralAddress": "XvdZt37EUttbnfHx2awwXb9X2DGTaYvHXZ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "54.37.234.121:9999", + "registeredHeight": 2118273, + "lastPaidHeight": 2127459, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhShRiDwyvmP6VDzjKeGUX294UvrrY34Yq", + "votingAddress": "Xm8dbtddzPoMuczCniQP3TTKPMRtfPNPou", + "payoutAddress": "XrXTrc9fdbSxWBKJsfw54ep7nES8GdqEcj", + "pubKeyOperator": "acefd02d9bbd4bc824a3817b4c51dc4032e70cfb9540b902bb9ef1af1a2cef995c95dd26e7f041489e142eae31d936c8" + } + }, + { + "type": "Evo", + "proTxHash": "8954a426836f71a0a04e8321cb3b3487ed404790ca19d29419d15cac02de4038", + "collateralHash": "254a2b4fdccb917e2a26fffd5ab1cf0924be328518e4f6c678cf7859615bcec7", + "collateralIndex": 0, + "collateralAddress": "Xm3LLPRdgWBipLCzZJu2yHTU188ErZNsbt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.10.199.125:9999", + "registeredHeight": 2118372, + "lastPaidHeight": 2127558, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvAH1tprsPK3UrbT7qwAPQKoxSUzYQmtjq", + "votingAddress": "XenGynmXnaEk21vGK14WEnT5kTbENmqbjp", + "platformNodeID": "f6dee245200165e103f5dcde2bc1b4f9cc30bc3f", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xu82QY3eefhL5miK3yre6oLrRCx8wZoKNX", + "pubKeyOperator": "82af0e5c19bd0f8ebd6d92c648ac4bdf8877ebcb70858decbbb9f9ea38bc623b2029616a54bb5478f2136952ad7ad3ec" + } + }, + { + "type": "Regular", + "proTxHash": "5638715aa8c3b04c58ba29422758adb6757502d94fd984788f319ab0bde9d5d4", + "collateralHash": "5638715aa8c3b04c58ba29422758adb6757502d94fd984788f319ab0bde9d5d4", + "collateralIndex": 1, + "collateralAddress": "7WowXGov9AZVyVPYRSByEqTYpKjvWbZHEJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "109.235.70.24:9999", + "registeredHeight": 2118857, + "lastPaidHeight": 2128132, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xhi7aYkh469DeehKYWesiXS6iyFw8n5brp", + "votingAddress": "XvDY1CyjerfgKV1Dgh145oS2ZnURyNiqLG", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "84fda010a53c867b39416524eedf0b31bc5f67ddaaac59d57d577973b47f2999e1e4b91791b725ef21111d40d94b6276" + } + }, + { + "type": "Evo", + "proTxHash": "24dc24a79e14ecfc945e04d8a69e6d0ef922f43cc166c1dfbc6a22a448bb4397", + "collateralHash": "cd2e74d0ce951b78168b4f3df1ab99924f8881cd9276528f3ef160d1fbb1f3b4", + "collateralIndex": 0, + "collateralAddress": "XnUn2qER8YyEHtXvQx9HpY3rRmQxCkFX3w", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.66.81.130:9999", + "registeredHeight": 2118978, + "lastPaidHeight": 2128255, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqpycfueTRg7VSBCUFhjFdJ222rUcdXwLs", + "votingAddress": "Xtvq2JKkMvSUjm4y4X2fWwEByDGH4dktRE", + "platformNodeID": "07b703a3399ed181a393853cb0011f739c122c1e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XdTJofN5zsuHUE6SWw5XQBqumj6tbxmsG6", + "pubKeyOperator": "91168dc7651c7d875514196d073e54aa23879e01a0a81b17fac7b855b6213932ed1839db12c88a8668d6485fcebf0a07" + } + }, + { + "type": "Evo", + "proTxHash": "fb039ef63df8d1989aec4f87b728e7179bade6d1b429ab0c952d541c66eef4c1", + "collateralHash": "6b9f2c111998ba3fbc29599113b449d3b8f227729ac5d8b2cbc58d36c1de8398", + "collateralIndex": 0, + "collateralAddress": "XvtLeW1hsxRE7xhkvK83mYKEAnbRExT4P2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.66.81.162:9999", + "registeredHeight": 2118987, + "lastPaidHeight": 2128269, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxTstAvWQbbWonCjVAKQ1ccfBpJWnJ2KEn", + "votingAddress": "XgMV92t6SV17wxf43Zw4hZvhWvatyvNEba", + "platformNodeID": "02f5a88685f5e1d7590d76551e6cf2f7b5229453", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xs2X5tPqXYzDAocEyQrzHrwYzYQnFp9ftX", + "pubKeyOperator": "9837e44db6df192e71011a242f34a1ff969758a428103eb1ed0d356a004aeed32d66fa4a9471668eb51e941720865a91" + } + }, + { + "type": "Evo", + "proTxHash": "87f398c274ae7f07e7cc86a4a5f5ab6e681be04143556f8df875c1db4473edff", + "collateralHash": "c21516598d486558d9ac9c1ab10de121ab0a969ebcfca5e89ca8e90f40291455", + "collateralIndex": 0, + "collateralAddress": "XbFDCvopg5zN8PyLJzdYY689usWMcrHnqf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.66.81.218:9999", + "registeredHeight": 2118990, + "lastPaidHeight": 2128276, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqyAEUNQ895VsoaDNRJ4zC5xfDeRuC8f3i", + "votingAddress": "Xi1UcywA372EeayWfJ361uQ7CH93ENK49p", + "platformNodeID": "a022ed7f6a435d37729ccb1de39e951310dfc5e7", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbjyDFmE9QgjxoJkd92NLNgR1xPkoVPwP3", + "pubKeyOperator": "b26255fdb33cd5741640458c65bdf051e3bf927b871440b088d4e06a1eb7b49b560834fbaa6f0296a1f9e57e21b64ccb" + } + }, + { + "type": "Evo", + "proTxHash": "70e8aeea3bd08d782eeeeb771ec4cabe6cac105d2ff4b78c06b2e07ca698fed0", + "collateralHash": "17fd4ab539b02119ff15a6c431166c81cc8ed7a86c4287a1dafeb083767af5f3", + "collateralIndex": 0, + "collateralAddress": "XyQQyUPCE2og1w7xtbvWnSnNVs8KQuemnR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.10.199.79:9999", + "registeredHeight": 2118995, + "lastPaidHeight": 2128286, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgyqtnzNLdVtkbSj5mYNms3j3b5PWQDGRF", + "votingAddress": "Xc3YKN7wbZ1Vqeg97muVZxFZBLHEy464yn", + "platformNodeID": "eec59e9ae8cc388b2286075b0c8e4f221f112a79", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XeMnyfPa9wTJ6ucDKiqVekGMJv37j41gsz", + "pubKeyOperator": "94c363e4fc195cd59e377820c00ac1d1088de511ec3d502dc8d37b0094fc93ad587d1838e9962d7642506293066086fd" + } + }, + { + "type": "Evo", + "proTxHash": "ca29b00eab6ac180c70a9d1260dac7e2018688a5450c802028fd5da1dc5bca89", + "collateralHash": "254bf028ddf7bc15471a145f345ea7c74eb536ea6a2b1e5ecfd87858e8738a2f", + "collateralIndex": 0, + "collateralAddress": "XiQ9k7inmP68VS7RvWXJfR9yshzcTF5ebg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.10.199.77:9999", + "registeredHeight": 2118998, + "lastPaidHeight": 2128290, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsgfDi2RoZqh5rVQeSNK6TvDruTGHCi22m", + "votingAddress": "XhwvrhyHiAD85djZnmJxiHSkteFTumHk86", + "platformNodeID": "580b5c1c11f2f71ea589f232b17e622f723aa168", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxR2jFzbYqsJpP1SgFxKqHUoVRLNG4aAtu", + "pubKeyOperator": "ba003130e2cdcf7007b358ec503f81be668dc73cb9b43ef60d4f3a7158f4594b518220dc6946ed9cce6a22bdf141063f" + } + }, + { + "type": "Evo", + "proTxHash": "192e7cd62fbfe2bbf7d9a5972c209883e65332b5b860a64236b79268baa9d051", + "collateralHash": "1fae377672dc431f7c746da7272053c1e804da8e51498ffb42fb283e05a3bfe3", + "collateralIndex": 0, + "collateralAddress": "Xu1Qp4EVjjfydNUMbcqH23fQVJxAWR4Cb2", + "operatorReward": 0, + "state": { + "version": 2, + "service": "157.10.199.82:9999", + "registeredHeight": 2119002, + "lastPaidHeight": 2128295, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxrSsex4W1ALeoWfZUArdYUBPnYYggxbb5", + "votingAddress": "XiZ5zUX5QbHdDHvfjeMWQEnyuzeLKPHynx", + "platformNodeID": "102c13b35eb55447a468204df7bbf252c54810c0", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XvE6UduLzZFmBQJTD2HaA7mQJnQhMK7Hfc", + "pubKeyOperator": "992c84adad7de610a4ecb2d3a370d584cc6c9e8b83607e1dfa889cb7d5aac1bfb62fcad2ca56b724d350af4fd9d543f1" + } + }, + { + "type": "Regular", + "proTxHash": "8270c05563a4893f524b25c72cff4393c81b91d2388ef93fe6361f2666dc27c3", + "collateralHash": "8270c05563a4893f524b25c72cff4393c81b91d2388ef93fe6361f2666dc27c3", + "collateralIndex": 1, + "collateralAddress": "7d9MvzYZVVZGucDUPoRHehVgymXohR8P2Y", + "operatorReward": 0, + "state": { + "version": 2, + "service": "198.7.115.48:9999", + "registeredHeight": 2119063, + "lastPaidHeight": 2128356, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiBGsZYFPbx6cjh2YuEqx7HRn9emfRyT4k", + "votingAddress": "Xv17S75mRTMKQA9TvorWqamyB3XYr58BcR", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "a46f405acfe3c6d266b4b97b497aabda976d64e6c528ff6c20307dbee5681b2c05e10bd2a42db07951b080f15d3745c5" + } + }, + { + "type": "Evo", + "proTxHash": "7ffec5def480d757a2724367db6c822ab094c736ea8c0d0af1bc914e036a1701", + "collateralHash": "2345a1e9655270c050328c683f260b28d05d9cdc9f2e1a92dfdf32826744c217", + "collateralIndex": 1, + "collateralAddress": "Xm88mmRevYCQYGpMknPokcGFhEE3UdHpTP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.225.11.5:9999", + "registeredHeight": 2119238, + "lastPaidHeight": 2128509, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoiyYfjWDzV682zf82Bbz7hdJBfiP9wjws", + "votingAddress": "Xxpa2Cwd8Uch4Rpi4Nr37ppxHonioJHdWZ", + "platformNodeID": "02b224f5d774e0457ab638300c2ec2a6198fc4ee", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xh9PyRGSZp1YHjMcNHe39694KdNnJw3Yge", + "pubKeyOperator": "890f7ba92872888c7c72099134f93b4959f97c799f84002202bdd4fcc75d4b2cae22e59076d09f79606dae90656bcd6b" + } + }, + { + "type": "Regular", + "proTxHash": "1bc9e4b6e7e910f65baaa0031faddc78b041bde66dc6bc040c3bea94c751cbb8", + "collateralHash": "8538eb26c30ab06ca96cca97d6aef08ee09503d43369d9a870d3741614d83067", + "collateralIndex": 1, + "collateralAddress": "XeP9wbLfyakjtjz6BwLhRFMc94wn4AxBDj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "178.63.236.106:9999", + "registeredHeight": 2119493, + "lastPaidHeight": 2128773, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiZPsf4PPcRjqht7Xu9Pm1mhQscZUmaiXJ", + "votingAddress": "Xx9azDQq6kWRMwSsZ6mfSbgpMxcgVp1yyu", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8125f3368085521ac558a05eb8bacc02db7afed6678a1e329eac5df57d04609ed7da25feb6a0b8078e047b1405776587" + } + }, + { + "type": "Regular", + "proTxHash": "45e437ed6f10f588c3e7cd3c7bfcf4b53d283742b5e8f7164f18b38336e8a064", + "collateralHash": "7423b5fc8bd364e8daf4cdc136d87b325588d7af70ccb1788f0187fdeef92ff0", + "collateralIndex": 1, + "collateralAddress": "XgR49DKyFZCdtWLtFuDBYXc7ujJbyXQ5VC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.137:9999", + "registeredHeight": 2119495, + "lastPaidHeight": 2128775, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbjQQqNCWuABnbkGZu5GRwTKKmZjTCN7U1", + "votingAddress": "XmaFgCmScybJcWwH21H7M7Q9bgpuAHbzvG", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "97ca7cad4a0b66b24ecb2524b87986b8bc98ca2e709b0e836863787a138c9acc9aba1d9788c22e8f0a3fac8a44bc613e" + } + }, + { + "type": "Regular", + "proTxHash": "6740eff4c8418cd5e07c1ea1d3a2ce28cf185e61a62cf5b1ad5f07fb26ca57a5", + "collateralHash": "9c875154ec2a7d9540e519acabf41d18dc6c8a9926ed4f73a9823f0da4b42f01", + "collateralIndex": 0, + "collateralAddress": "XwWMdvVBmpXXbByCoGnwZt9MFK8FtJeJcM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.177.30:9999", + "registeredHeight": 2119961, + "lastPaidHeight": 2126023, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkygiDeYGkL9VHCDHqCfiJaW82QRBEPVSM", + "votingAddress": "Xox2PPHBUig1KENY1cxf1cUtdDq9XicAUt", + "payoutAddress": "XwWMdvVBmpXXbByCoGnwZt9MFK8FtJeJcM", + "pubKeyOperator": "b3171adc5a16e263933498c6c6736e3bf512592bf4a8a84d95085b6d683dd780e0d95ebcdb46cc2bdb1ad16c77d8bdc3" + } + }, + { + "type": "Regular", + "proTxHash": "0186e587f4578711e94a4c6d7479857d30ecf23c5cde3d51fcb07ba6c8bae15c", + "collateralHash": "91ed47fb054c0b1a719a76dd7a1f133a707a9a44e4af255626284cadbe86bf3a", + "collateralIndex": 1, + "collateralAddress": "XxBsdL4mS14uZt8yq2zuQrAZSfMiEk7ZGz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.42.151:9999", + "registeredHeight": 2120317, + "lastPaidHeight": 2126375, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmxpEzKMBGaS5xTJ4qNGeEtEg3PhXp4BMM", + "votingAddress": "XnGgk5LQXcqpFYvTq5aEC3BnnQisENo7JY", + "payoutAddress": "XxBsdL4mS14uZt8yq2zuQrAZSfMiEk7ZGz", + "pubKeyOperator": "a61488a7c6a2852de7be853333bde560d4e816b6f334ae7a4b8a38d5867c73f0eea8efe71bee8e974dda05563ce6a321" + } + }, + { + "type": "Regular", + "proTxHash": "63282bd107284cf3f0e066d436103bafb18d4f6c7b4685d8c3b65f22acaac0d0", + "collateralHash": "5013eeb4e2fed627e89a3ab04338c5ba1be327cf8e2c9b683284999be5fc750b", + "collateralIndex": 1, + "collateralAddress": "Xfsxys2sosHbTbMp6aER71NFpPCNpDzB7H", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.83.166.27:9999", + "registeredHeight": 2120919, + "lastPaidHeight": 2126974, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbS8hBNW1aFs3bs3Dps1Nu8SHXr9zshvLY", + "votingAddress": "XhUpu3SbzwDA2zgEwSEmbyVH2QTj1FRYch", + "payoutAddress": "XcbUZQQnXRLuKNkqamHKfJpmRgfMPrjQqi", + "pubKeyOperator": "948b7f2b66e0e63cae8557e52c05561c25741d8745ab33128cdf8726f6d6ea412cff256e7e7ddb77d5c9b122515c467c" + } + }, + { + "type": "Regular", + "proTxHash": "836f66f32f4389df16eadf8e9d36c136de9beaeaefbe844fb0bc6d7484e9fbc2", + "collateralHash": "836f66f32f4389df16eadf8e9d36c136de9beaeaefbe844fb0bc6d7484e9fbc2", + "collateralIndex": 1, + "collateralAddress": "XkjZr5VaQBwxk4Qy8rM1vaRY9uJSChWnjt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "174.34.233.209:9999", + "registeredHeight": 2121066, + "lastPaidHeight": 2127198, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqeDmx6W31D98s5C45ftdkWKdhtDg6Zk4D", + "votingAddress": "Xm7i9wM5sZYg2iyRx53tmZmLPDUouUQkTz", + "payoutAddress": "XvPxypPaNFzZveNQJiM8oge6RqJ8wTE4sk", + "pubKeyOperator": "8606031430726dbed1c111eebc99c36837de5efc412c0bcebea55f5f5cc63806c4aa5537318080e31ed02a0c2f7d9a8a" + } + }, + { + "type": "Evo", + "proTxHash": "035d2fa64db2b9a59aa90445dc84499e4911fc75b382a9b83682a5e8cbba6a15", + "collateralHash": "1e4356a55252ba587b6f8ada22f891f4f0ec33c261c98c9c9dbc09b54c93027d", + "collateralIndex": 1, + "collateralAddress": "Xo2fwuqS9UoVuDNBZyQHeBxUZtLkE8WAdY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.197.250.227:9999", + "registeredHeight": 2121202, + "lastPaidHeight": 2127349, + "consecutivePayments": 0, + "PoSePenalty": 1114, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xkrf9ePPBfocF5PVcTu6K2eCSYsPr8BtDP", + "votingAddress": "XoCy6kUo5UQb2kTcY5eDTmx3NUpdJqPmdB", + "platformNodeID": "cc8c8166bfdbb3502b3d29ad93500b08560f0856", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xn4s3jvnahEPKc9qnixoSxvzJtHtWaKKPx", + "pubKeyOperator": "94792df22b5bee16fd1079ce20ca16f56c6880e23958ec5f28ba4a8d4a3e70de8f364441bf239206c6cee2b254dae4f9" + } + }, + { + "type": "Regular", + "proTxHash": "d69b5cdc148d9dae9a8afdfa3cc6517332f6aba2af44dfc0d6b3bc02a28ccbc8", + "collateralHash": "7a8ed27003d2589f763d72a526790b9b3effca64d284cf5b292b0148ec9b1c6e", + "collateralIndex": 0, + "collateralAddress": "Xdfy3uttn2c4Cr5nyD9kScCaw7pcUQj1D3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "144.202.101.45:9999", + "registeredHeight": 2121331, + "lastPaidHeight": 2127480, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XedzWL5TuiHhoH4vBihxCaPfTN1uMoiTUS", + "votingAddress": "XedzWL5TuiHhoH4vBihxCaPfTN1uMoiTUS", + "payoutAddress": "Xu13wMMkeGzZC75kPW9Nhm2N8wEjMtzsmT", + "pubKeyOperator": "b11cd10c7814a4b495d8b267fc0c8fcca6342eb10f078fb9bcaf058a970d49fa25061b2afe12d6d0dfd6c5aec5512a05" + } + }, + { + "type": "Regular", + "proTxHash": "66b49ef8c3b3e79d2bf312a1e1ddb224f32b0b622d12303b79ed6e6cb87c2105", + "collateralHash": "1b4bf9688693b0aed7914861c8a160a474a22314e7bcdded7ae3e7e0e2b64fc6", + "collateralIndex": 0, + "collateralAddress": "Xwz3LAqt2zT54fSrJuafDxVfFYbPphPUzt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.225.54:9999", + "registeredHeight": 2121332, + "lastPaidHeight": 2127481, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhJvxHfbqMf2egqi7KvQGjwRVreg6JNJf3", + "votingAddress": "XhJvxHfbqMf2egqi7KvQGjwRVreg6JNJf3", + "payoutAddress": "XjgnhXN3o3s3dSAE1PsTpZH8vmnG6QRUVY", + "pubKeyOperator": "af76ebb12f5ee55e494651248a658d6a5abf3e94065d26304a62718362070c133628060c304abeb6b33c9ba9cd0cffa0" + } + }, + { + "type": "Regular", + "proTxHash": "b1f5c4976fc59f4d08dc757d019536f4a9f1012799fc5dcafe1d4c02e2b64b3f", + "collateralHash": "eaf3185b4391dfc8f260f90747f042da09b04d383528e2c373faceeae02e8b7a", + "collateralIndex": 1, + "collateralAddress": "XfMTc2PvqdMCnQhK1B8enjFExjS4UPEzTc", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.224.35.163:9999", + "registeredHeight": 2121519, + "lastPaidHeight": 2127756, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XbSWVvctprpTST6uUkK9XQTBRfZyM9YLq2", + "votingAddress": "XbSWVvctprpTST6uUkK9XQTBRfZyM9YLq2", + "payoutAddress": "Xo9da2jyYo2WuUatFsZKPELepVJvXw96uX", + "pubKeyOperator": "96cb64e8484cc8df485fa13cf85e43e95871ef5c57d74d11cb99c3f0f20ff750b9b1c941fffbe869c72704886d03eba1" + } + }, + { + "type": "Regular", + "proTxHash": "9321d1088b262c3e91a07d94e29a3de4292faea85897cc2835cb51b864031441", + "collateralHash": "f04360bfd6a2b18405bc1c3f4da30c34a5d520a01f20120d3f90b08ef702ae5d", + "collateralIndex": 0, + "collateralAddress": "Xp2bisacojXjSK9ssUnWUvzfxZJxebrajj", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.207.131.17:9999", + "registeredHeight": 2121522, + "lastPaidHeight": 2127760, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmJBngAwCAGWUXhVTUA97iXLR2t4yLoQ6y", + "votingAddress": "XmJBngAwCAGWUXhVTUA97iXLR2t4yLoQ6y", + "payoutAddress": "XvUqf2nA2xtk9q4BHEykeNws9b25gMasNW", + "pubKeyOperator": "a3972a3dd9094a427c10df317bff7c606741141dacb175ea48c9cb1678bdb28d53f97a8f78c61c7dd02b907054aba96c" + } + }, + { + "type": "Regular", + "proTxHash": "847806ee2daea63c41c484539383668557b5f2b3c625b8bc424ad7956141ef5c", + "collateralHash": "a870727673edd20f53cee6040f215bf56f1f2a5df2c2354fd789a243c7b43194", + "collateralIndex": 0, + "collateralAddress": "XvAaE1bo8RQMaGiefjSCqqkFTPAfkNPbNk", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.13.139.114:9999", + "registeredHeight": 2121538, + "lastPaidHeight": 2127778, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxAqeyzH6Yjsz2L9JyZKK1E6B8NCiXbJ7d", + "votingAddress": "XwaWqpEwvxDDo9vkqCnrSWUBEuZVAE6ao1", + "payoutAddress": "XvAaE1bo8RQMaGiefjSCqqkFTPAfkNPbNk", + "pubKeyOperator": "8d346722a37e9ca827da228446d3eff74ae7aa7efffa560d31d59ebd246a29a1e65d3eb947d9dece222d8fd30c61e45b" + } + }, + { + "type": "Regular", + "proTxHash": "46ebc18bf2d970ee05c794af9f76e926bbe34655b944dd9844b7a536ee22f969", + "collateralHash": "6f2024f62412e077c1da48a9bf672a0e40fc7260469e6213b4c749d6d133e243", + "collateralIndex": 0, + "collateralAddress": "XitrgNpNP1i915vK3g7z4hG77vFq5K8qNr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.80.1:9999", + "registeredHeight": 2121548, + "lastPaidHeight": 2127788, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvSiRVhiuKmj5CeK9mUhLLEBuryzc5bauf", + "votingAddress": "XdE1XV5zFF5MLFdvyM2EX8vrsR58P1GL36", + "payoutAddress": "XyHuayGskB4yJ9f7p2nK6vGmN3RzokcmvF", + "pubKeyOperator": "88176b84f885b3c96f19cd910d654dc7f4a6f6ac01b4954e1dc92421174240b234f830d1631e1f8e7bce603af817d370" + } + }, + { + "type": "Evo", + "proTxHash": "d9301d2e636194bfa3e68aa1aa2ea85d08e2957875edcb5e7f4314bfdde9edd0", + "collateralHash": "fda289a37185bffe24613d84d738b83907544de0e19fb726210d0f925ead1eb3", + "collateralIndex": 1, + "collateralAddress": "XvydukZEG4SVNf4eiZrRNkiUy741ATB7p9", + "operatorReward": 0, + "state": { + "version": 2, + "service": "163.172.20.205:9999", + "registeredHeight": 2121580, + "lastPaidHeight": 2127825, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xu2qdXkZJaaKWK8jwSCSe6MVPBUMd5gVwk", + "votingAddress": "Xu2qdXkZJaaKWK8jwSCSe6MVPBUMd5gVwk", + "platformNodeID": "f1ca0cb0f3d9ef46af826badc4a1d8ae9426320b", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XkU6s6GD2EeR8xVHcFwfUqbeztkghxquQS", + "pubKeyOperator": "ae2450490d2f92dc425bce7020a2bac9b1a47ed8f89bb13a1184ad4bebd25b50925ff71a6d706e6cac158e5c25e0490a" + } + }, + { + "type": "Evo", + "proTxHash": "ce99b1297bf30cd84ce448c08fba3580981febb9929d8baf271d5e53daf2ea70", + "collateralHash": "b87945095345001c89a158b1885ecf297a62cb7a4ec1344f575ebb6e72dba7f0", + "collateralIndex": 1, + "collateralAddress": "XhzD9GS1EBeWPSLyqe5U7ADPzpWuzVHzUU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.83.191.208:9999", + "registeredHeight": 2121627, + "lastPaidHeight": 2127879, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xxa9qV78V7raekzhe9wrNPUZyb6Lzyfok1", + "votingAddress": "XfAzigLqetFU6GoC48WdRNXnr6Gb6Vq6Fo", + "platformNodeID": "ab0e0843fdb0632b4fd3de7c12e692972d0954c1", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XbapNPSm6CyNUs6mKSy4mKRTnK7wMen3EV", + "pubKeyOperator": "8ff732e75551d9392d54236c679e71e2fa51d1a40c723964dd8f93f4288d63508c06808d57aacae1ab033c32bf357149" + } + }, + { + "type": "Evo", + "proTxHash": "a0c9b5138ac6709cc8220797fe818338788f85378934316d298c03e392d32b1e", + "collateralHash": "65429cf597ab9f9f4dc0ba06b76bd133fb1595a56baf430a339869c100006de5", + "collateralIndex": 1, + "collateralAddress": "XybXqwFdU93YfwkDxR4FPjxksZzM9yo4KL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.59.4.9:9999", + "registeredHeight": 2121632, + "lastPaidHeight": 2127889, + "consecutivePayments": 0, + "PoSePenalty": 1779, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xgov3BCtm9ZGoQscEy1cnSUKVBM55mv568", + "votingAddress": "XvYLLjHnFbBq26qJppAfevWMkoicDttRLR", + "platformNodeID": "c1b9318fc837d844968f0ddb178cd037d7f202ac", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xeu7JeMEMveW8fZKHkQ3bcPkfmF8f9T14U", + "pubKeyOperator": "b26c789c9fc11b03afc353ef8da03c0ff93ec03ae62ab18fd244610abe736998df539d6f784eefaa77d7355570e537b7" + } + }, + { + "type": "Evo", + "proTxHash": "c646cdbf76e5d5b77ef99f3806b23bbffe885985d0bce82b3259742048bd55e1", + "collateralHash": "07e94f41d7dbc9115272915d91a3b93cff234e1ec953b76cb1cb068fb003a120", + "collateralIndex": 1, + "collateralAddress": "XvNr2w8qtfVxTbPcrWA7SzPUaCxTfbFb7H", + "operatorReward": 0, + "state": { + "version": 2, + "service": "146.59.6.50:9999", + "registeredHeight": 2121636, + "lastPaidHeight": 2127896, + "consecutivePayments": 0, + "PoSePenalty": 1779, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xq8YHFEtDm2T1bYKQC4sb4savd2qCCC44y", + "votingAddress": "XbquhM5DsFhqk9bYW7f6zfXB88KCTz45wn", + "platformNodeID": "040e8c9cd139365d2cebdbc76769a0748bacd7da", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xca26tChyDv1mfMiN9tYyVPz2Am4ZDcuyB", + "pubKeyOperator": "b3dc5af8e7d0ffc416b5879da121f6df6a382c06b03143e6724e619fd599c8e4009f6d5592c7a13633063127578713c2" + } + }, + { + "type": "Regular", + "proTxHash": "0ac025f48eae92e393702aa7c3eb5cae3a9315749f5de0a1e44745552f6eea9a", + "collateralHash": "610d8fb941ff69513809a778350329aa4d583564020216da3e76fa9ee85b9e6a", + "collateralIndex": 1, + "collateralAddress": "Xdw6KydDZWAPBD1qfmJdj9kWgdUAj1ohbn", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.83.191.210:9999", + "registeredHeight": 2121638, + "lastPaidHeight": 2127897, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjzPeM5T8sW752mb6RhD9xJRaoHa35wWTg", + "votingAddress": "Xvtz7wU1MaUbw3SVmh3i2HqYjJGeSrHnxX", + "payoutAddress": "XnPR69PWHruGCJAx7uf68S16jdrj22DkVD", + "pubKeyOperator": "92b14b67448e0252d9109982f2c2dfd08c8832a478dac49f557c9bc849d3a431e335113999cb6851692a81160cd4b444" + } + }, + { + "type": "Regular", + "proTxHash": "5e1950f12af4ea34b2c24a567e3de3750abf3bbf8e809d7b46dda0922fa6f607", + "collateralHash": "01c24d52cecc79b1363141b80ea4e90586b22739980abe893c4e171a3ad7df6d", + "collateralIndex": 1, + "collateralAddress": "XtdXBgdPDsVvzxn2amN3hjTYo9TyzwHaEK", + "operatorReward": 0, + "state": { + "version": 2, + "service": "155.138.154.140:9999", + "registeredHeight": 2121953, + "lastPaidHeight": 2128238, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvcTUUgx3BLA9KH3VJw7tDc1PqAQWu7jUi", + "votingAddress": "XvcTUUgx3BLA9KH3VJw7tDc1PqAQWu7jUi", + "payoutAddress": "Xyt8nCUHVxPTd6MKNAKy6kFxGAommbjxDS", + "pubKeyOperator": "944a40671b45d0230ffc7d585a57e4d73ea3e9ae8fe58f1b9b97f42a561270463c5a2be320eab151d23df3ee982fae57" + } + }, + { + "type": "Regular", + "proTxHash": "a717fb0d0df097f7566aedf57b4486099126b7038448d27e88a83b9873730e2c", + "collateralHash": "b9fe273f51c2c7de187297fc07bacf3a27323363e747db4c4e0ea329f328971e", + "collateralIndex": 0, + "collateralAddress": "XvtUQgxJek96hEfHadbDEquhEbXapuJbnP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "144.202.37.1:9999", + "registeredHeight": 2121953, + "lastPaidHeight": 2128239, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XnqCzB4wPnuyur8ADgFWAGhqXBiGnjELJN", + "votingAddress": "XnqCzB4wPnuyur8ADgFWAGhqXBiGnjELJN", + "payoutAddress": "XhawTdEDN3cxKheLG1Y4K8KeSzjLxyHymG", + "pubKeyOperator": "97679d86641b4b42a0ba07ddfe0af173aae13f8aabb2c24e372a2a4defe92276d101b6f4b95caad515d63e74cda952ec" + } + }, + { + "type": "Regular", + "proTxHash": "369209293d5d2327ca84fa5037ad5c05d3eb372165e884fef887581b4b9761a8", + "collateralHash": "860a51f08cbab2ee7f0ef0cd2f1cfb6e8e7b921d16fe8d8f2523ca74e6012b8f", + "collateralIndex": 0, + "collateralAddress": "XehzvhJ6X51rtHoV8puCVrqvdKJ2eh9wXE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "66.42.84.27:9999", + "registeredHeight": 2121953, + "lastPaidHeight": 2128240, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsfkwiJGNyK2pszkSSiy4X9NG64Tw2NRko", + "votingAddress": "XsfkwiJGNyK2pszkSSiy4X9NG64Tw2NRko", + "payoutAddress": "Xpz5pvc5ZBVfEb8Z7UdzmNkv6HLiSd6rNM", + "pubKeyOperator": "8a1ca31c5fad43748c63c12b34927e70bbba39e94c1d66c75995bf98ce691687155011b036eb0fab4c7237f54ea232a6" + } + }, + { + "type": "Regular", + "proTxHash": "8e905d80fbfc7664f3a68619738244dac6aa8f925fba1ab659361f82b34280b0", + "collateralHash": "b3eb34945fd931bd6e9bd8ff98cc79c583d290c8fd5f0cc750f2bc4d124d4ba4", + "collateralIndex": 0, + "collateralAddress": "XmvH5HroS6YVahRECKDanpoqrnXu2nHtaU", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.116.16:9999", + "registeredHeight": 2121956, + "lastPaidHeight": 2128245, + "consecutivePayments": 0, + "PoSePenalty": 1697, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XotgbJrUSyP7b7E8AaM4mmFChxTTDoJvGC", + "votingAddress": "XotgbJrUSyP7b7E8AaM4mmFChxTTDoJvGC", + "payoutAddress": "XbMovcqW1e55871M9sGo8FqHKCySJvUe9X", + "pubKeyOperator": "a067e4affa1ff33c5e522248234b652066c0b4eed4ace97b832e0fda888ec7c9180e0a47019e618175271e072ab07a54" + } + }, + { + "type": "Regular", + "proTxHash": "b0224a48a29101f031977bbdc9abe86ecc12cfaf56e8280a52e56ee7cc87f779", + "collateralHash": "b0cb10bf778c18c940f5fe62ee59768b03983f44a70806bd337cb35df20c9e04", + "collateralIndex": 0, + "collateralAddress": "XsU55abMNxGqc4vim8vJSPMYdbBURUzW3s", + "operatorReward": 0, + "state": { + "version": 2, + "service": "144.202.72.211:9999", + "registeredHeight": 2122077, + "lastPaidHeight": 2128373, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtubJyUg11qWyQuQkkwaKo89iCVEWng5u9", + "votingAddress": "XtubJyUg11qWyQuQkkwaKo89iCVEWng5u9", + "payoutAddress": "Xr8HF6BUVASsubQC8JuzkAVzcVY6pr6Wqj", + "pubKeyOperator": "a7af2fe0e8fbcbe4ac261600200c36e0ebdf88b6beabe8262c8f0048630cbd903bb6403f581c700489acc53d1fcf326c" + } + }, + { + "type": "Regular", + "proTxHash": "de24b8bbe69fd3f00dedd981f2da87466ded6d5db66c26ef46d2395d59cc2adf", + "collateralHash": "c3e484c2d7cb4e93960ae509f968a7a726ce401ca27e02fd403ecdffb77ec121", + "collateralIndex": 0, + "collateralAddress": "XdNQvnNvFxcAPHpS94cyDHph4QVEhSvxFa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.112.102:9999", + "registeredHeight": 2122082, + "lastPaidHeight": 2128380, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqL8u1JWH4Ugzdo6eQ353tTB9fQH1SVgxD", + "votingAddress": "XqL8u1JWH4Ugzdo6eQ353tTB9fQH1SVgxD", + "payoutAddress": "XdHornL2r8sAFJ2N77wL9cRUPumxot1oMG", + "pubKeyOperator": "b2af28307e4066dbee2dfba2f95be77f943fdbf9598302396b384c164a5adb5883c8936e0c9249ed22fc59f05bf28e94" + } + }, + { + "type": "Regular", + "proTxHash": "0ee79652348497cf4edbd02650d984249c521e3865c48f2a5e4120d3c391f2fd", + "collateralHash": "34ac7230803e1689d4d3a9a0970192f16819d6c3be26496bac5aca09227f70e5", + "collateralIndex": 1, + "collateralAddress": "Xc23ZwAS5RqiYZ3o19K7Dfm2QJ7p3crLS3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.32.115.119:9999", + "registeredHeight": 2122083, + "lastPaidHeight": 2128382, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiM5J27tHVF56RrQUPpGuCEZYqYeTYkLes", + "votingAddress": "XiM5J27tHVF56RrQUPpGuCEZYqYeTYkLes", + "payoutAddress": "XpJyzgWMA2mRfSChvbeS5u4uS8YZSXKstJ", + "pubKeyOperator": "aa479dbbdeff73b180056845098189694db971305d0e0eeeaab42c4e1a8df7dec81d1401ecdcade9cb144ab16f89d54c" + } + }, + { + "type": "Regular", + "proTxHash": "87c6c4efcd250a38e2b983fa1cb38e9e9c2a61827861d0442bcdc8aac98f2d42", + "collateralHash": "a08037aea966f40fd517cf530fab969cbc7b1632da83f304b79028330b7c545b", + "collateralIndex": 0, + "collateralAddress": "XmbzxUq39NGT21TPtTu8Gd5E9uA7XCddEM", + "operatorReward": 0, + "state": { + "version": 2, + "service": "158.247.194.66:9999", + "registeredHeight": 2122238, + "lastPaidHeight": 2128540, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeHr2e2zN8K17XJUn1irjnYcwEd41LMZBL", + "votingAddress": "XuZkGdLTJHd6E383mkYmz3mWoNSUfXDBfk", + "payoutAddress": "XmbzxUq39NGT21TPtTu8Gd5E9uA7XCddEM", + "pubKeyOperator": "b1b42395ede0edca8be848492388acde22a12fb3bbe2827b59b2f3db0225d2411c619586eb2ac0f87a88176eed1cbbf4" + } + }, + { + "type": "Regular", + "proTxHash": "defcc6fa2a16a5b273799e7ab05a141647b676e34b88d2dc2b88fd94cae3bb57", + "collateralHash": "2182d4ed7b9055c76fc4e69a4c8699c9f94c4b6f61fb16d2b2ede49f97e4579d", + "collateralIndex": 1, + "collateralAddress": "XxkCkVqoC8dS3mmG3Vjj7MwXENEwrc1wNL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "217.25.93.31:9999", + "registeredHeight": 2122593, + "lastPaidHeight": 2125749, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvpC1uHFzxWUxrpHR6hCvnjsnzp7emGK6L", + "votingAddress": "Xfp9neaf321Fmo6GHcUDALoSJ3u3pt2Xke", + "payoutAddress": "Xwv8dtGP8KrvL8aWvrrrpy3va8j5USvMHr", + "pubKeyOperator": "891375a5d177690443981f5458aaf04eb5c839b33dcd753d1f1cedcf2d3efde9bd2b3c1cf0d6d8f7a1c41faa20bb5b21" + } + }, + { + "type": "Regular", + "proTxHash": "b99abd7aae10472ba78ae6082fd9874c77580c800e9fbe94419e8f80c1f0844c", + "collateralHash": "3420407c7a2f433740631a98a89457c488aa1d7cd84a49e3b2a7c0909faa37ea", + "collateralIndex": 0, + "collateralAddress": "XcF8KHvig6EQsHo5nufq7cEcwZPeX6n3a5", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.195:9999", + "registeredHeight": 2122762, + "lastPaidHeight": 2125915, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjAAHFpN6uBMYidHjejtYu5uW87pXMmnKK", + "votingAddress": "Xu3VbZiPHHLvn1EpXRo4ivmBxVTKHPiJiL", + "payoutAddress": "XkYBEuDDHvKicVPKHTUwBwwiLLEew3uQ8k", + "pubKeyOperator": "847dbd0c1c0273a27687572694bf36cc70d39203b75c2c8031aeff5cb6fae643d1c6e9f0db726cdbbd6091a0f803c986" + } + }, + { + "type": "Regular", + "proTxHash": "4aab9e77037099861a0964d696b6e2efb23f4152720b7161a828f5e8684432dc", + "collateralHash": "3420407c7a2f433740631a98a89457c488aa1d7cd84a49e3b2a7c0909faa37ea", + "collateralIndex": 1, + "collateralAddress": "XcCU8iJzicumaqeMiXXubGf68XjfQTVFCy", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.204:9999", + "registeredHeight": 2122763, + "lastPaidHeight": 2125920, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrJEY32SLpkCsx5ASPDZVtUKpDGwmtZNwY", + "votingAddress": "Xo4nEyev8zpb8kA4a44eVygDx6fiWvBErJ", + "payoutAddress": "XeppdyhbxAnwmcrWWpr6Wy2KGMHr3LU7LC", + "pubKeyOperator": "b4ab7d9992afb127af67da0506063841a2d974a7ad377d437cd8f254680e77cbe27997c96afbf60217d236593331cb3e" + } + }, + { + "type": "Regular", + "proTxHash": "ba5ae5f1a49ff5fe9aba98ca73417254eb05a107ff6b2b7f77862d6fd28eef5d", + "collateralHash": "3420407c7a2f433740631a98a89457c488aa1d7cd84a49e3b2a7c0909faa37ea", + "collateralIndex": 2, + "collateralAddress": "XpZwuh44zBus9h2WDaENdUyy1o2CRujdL1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.205:9999", + "registeredHeight": 2122763, + "lastPaidHeight": 2125917, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XtUgQ8UdvMdVekcwntZ25neoxRm41BKqsz", + "votingAddress": "XmKw26Vsvk8NJtGoh7fs2NqnCRZR5dotxL", + "payoutAddress": "Xoi7DPvDUJW19ma1G1EzAdLymickyKFP5b", + "pubKeyOperator": "949f91ea055210e7e12c9aa8ee9bd76c99196e7ab7e08f75256003dc8c7b286dd40e9cf133837aafa8d2db859c217321" + } + }, + { + "type": "Regular", + "proTxHash": "d0427bf21db161a8ebfe2f6ced4db2432ae8b56d3144840779b6261a72ad1188", + "collateralHash": "3420407c7a2f433740631a98a89457c488aa1d7cd84a49e3b2a7c0909faa37ea", + "collateralIndex": 3, + "collateralAddress": "XoTmvSPqKxhovHGaYn6jHVvBLQeYh2kWDY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.206:9999", + "registeredHeight": 2122763, + "lastPaidHeight": 2125918, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcSN1ymy2P9GTt579hwcXkmfnQjhu5yx8U", + "votingAddress": "Xiv9M7a5bo4jvE18SvhoHCn8NhuxkP9SZZ", + "payoutAddress": "XxhEZ9BcmJDTLBUBoai5DqX8sdJiCfZiLQ", + "pubKeyOperator": "8344dfcd30e06c021878d84712b3b23b8d3695c17aac22f4a62316b4dbab1a3f2d7ad156e627c7a72504392953f37966" + } + }, + { + "type": "Regular", + "proTxHash": "3f7d3adf1f005d761d0514ac395da8dd4dfa2b75021fcf8dd8d6ed2d27244a49", + "collateralHash": "62a7c55ce480655e1153f953309057d2571511d92482d5481874a45849f69806", + "collateralIndex": 1, + "collateralAddress": "XdAujXwmJS8w753pLgh84fL9wvDVCw2Xwz", + "operatorReward": 0, + "state": { + "version": 2, + "service": "64.227.32.83:9999", + "registeredHeight": 2122771, + "lastPaidHeight": 2125928, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XygeWuNKVnV59HH78RCYBhrrJqUgsZMaPe", + "votingAddress": "XwkAad8ReDtJRXC6PtbA3265GLUk2H1Mkb", + "payoutAddress": "XbhDzJMMwi5u9B69GKzaWDpw84rmW8r2kz", + "pubKeyOperator": "95f78b0c126ff7ddc3a8aa2b4940fb3cf8e515c8d3dae78e9bab29ec48953843b1cdb8aebc31417151075f16437a948a" + } + }, + { + "type": "Evo", + "proTxHash": "092828edc081d3ba1a54f043259b941368f2c718881b06a9d347883b21bfe313", + "collateralHash": "ca9d7cdc0b0455ca50e74b74de958e5e6e999f82f8e57dd2d6b66c9d960a3cb9", + "collateralIndex": 1, + "collateralAddress": "XvJhEecD2j9uEcSGtSXBfikaSHbRSmWUAd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.108.74.75:9999", + "registeredHeight": 2122830, + "lastPaidHeight": 2125990, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeCQ3Xdh2pH3YMj2cX9Qtj9HDhWrY6iC7c", + "votingAddress": "XhHNsCmtSB84Qz5CgRbzQ3XNrBBzobiaPB", + "platformNodeID": "ce14a7c74b45f7207c505ecd4964587d43c67918", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XvJhEecD2j9uEcSGtSXBfikaSHbRSmWUAd", + "pubKeyOperator": "b1b38452732a88ee6949226aa693a7f96733facba4013764a38d46b831ec78d7f4bde1906e41c6869918b8f7931de5f4" + } + }, + { + "type": "Regular", + "proTxHash": "2925138ae00b8b79fdaa08721864d283404843436cf09ddbcda3f5a92ee53ddd", + "collateralHash": "a70b2d1af20ba57648ffe17b7a477fcddca707bf504b71be3fc1f271b6e2be77", + "collateralIndex": 0, + "collateralAddress": "XkAiJuhrjwMpdTvAViyaZ21esy4LUpwGMp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.194:9999", + "registeredHeight": 2122940, + "lastPaidHeight": 2126090, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsMKX9a3LJJfdvZjkdYTuXBwtUDZverpT1", + "votingAddress": "XuuiK5MzevdwLPmfVwrPrPFTRsAzJaBQDT", + "payoutAddress": "XmkT2m346Qgu9HNwpKPLWinkACCeTqCAhf", + "pubKeyOperator": "8330cca1fbce2fddaee160efccb34c488e5af56ec73242e5def9792350af62db0f0a75868d0784debc1f98b6d5a22151" + } + }, + { + "type": "Regular", + "proTxHash": "a69548e3df63ca468ea46004ba22d8cf0e702a507461f93b4ee570ef5adc7efd", + "collateralHash": "a70b2d1af20ba57648ffe17b7a477fcddca707bf504b71be3fc1f271b6e2be77", + "collateralIndex": 1, + "collateralAddress": "XtKajoRS9YgEa79cGDxtt9tzFPD7878yec", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.207:9999", + "registeredHeight": 2122942, + "lastPaidHeight": 2126092, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xv9RQhdbcFmsusVaMHvpZCdc3UsQQmRt5P", + "votingAddress": "XsNLEEzawMUtFfPFF8B25oeu8fY7UEMMsn", + "payoutAddress": "XeppdyhbxAnwmcrWWpr6Wy2KGMHr3LU7LC", + "pubKeyOperator": "841a1dc503d16ff03297e220a2e0995a7fe68593b0bf76bfb9b90301bf408ff87094523d6961163b0fdca52226821d3a" + } + }, + { + "type": "Regular", + "proTxHash": "7301ea2a6f1f41a88280b4fe65cc307ecb1db32ee489252fecf816f87c2449c1", + "collateralHash": "a70b2d1af20ba57648ffe17b7a477fcddca707bf504b71be3fc1f271b6e2be77", + "collateralIndex": 2, + "collateralAddress": "Xdeu68BRZL4d931dPxWkJS66KyJcEQGfZ1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.208:9999", + "registeredHeight": 2122942, + "lastPaidHeight": 2126091, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkQasGegaAeqC779gnGx4h2fT776wsBDJU", + "votingAddress": "XcUV4e6VpDApVWUCiAHvH4Hc7nqnutyyEL", + "payoutAddress": "Xoi7DPvDUJW19ma1G1EzAdLymickyKFP5b", + "pubKeyOperator": "a114e45c089f23f710fe1e4ab942395d425420a98b86408baddfc462a2d0817b90ccb46b429bb27593c7e44c3a454a47" + } + }, + { + "type": "Regular", + "proTxHash": "24179655b900518789880c2eb1691e13d526cf5e9b2233a1fad50cf879887c2a", + "collateralHash": "a70b2d1af20ba57648ffe17b7a477fcddca707bf504b71be3fc1f271b6e2be77", + "collateralIndex": 3, + "collateralAddress": "XdArxi6JdCgfQXuGWtk56JDY6rUn1srP3b", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.209:9999", + "registeredHeight": 2122943, + "lastPaidHeight": 2126093, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XxftRH3twVAzaHxzTwLeKCE3fZKM6kXSf5", + "votingAddress": "XbJzBYCRxYqJ9StMj85Hg73zrdh5tMvQCQ", + "payoutAddress": "XxhEZ9BcmJDTLBUBoai5DqX8sdJiCfZiLQ", + "pubKeyOperator": "a71d104d92350efcf3f7a40f9c57ac7c14b4fd11a5b80167992c21fb557bb1d3adc27faff32d7782ffaee89386164618" + } + }, + { + "type": "Regular", + "proTxHash": "857de59d343bc73ae32955d92f4e551c2baa07ead908cd01a4a74cdc177abd7c", + "collateralHash": "40f6c2b40d2cb613aaa8ddff0c71344682f056a9480e97ee29f451541205e2aa", + "collateralIndex": 1, + "collateralAddress": "Xqr5WiUrZcrzmJynDLipyx34nSGjnMtikC", + "operatorReward": 0, + "state": { + "version": 2, + "service": "43.153.210.9:9999", + "registeredHeight": 2122952, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 831, + "PoSeRevivedHeight": 2126935, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoMGx9YLBD3KxLiMX1yybboPs2R33QGWfY", + "votingAddress": "XspB5PAxQV847frxww6VEjAprYLsmdks6v", + "payoutAddress": "Xqzg6jZ7qBDdZeuVQxSQQhFewVS41Eq5sh", + "pubKeyOperator": "92aba887f570e9b3391dc5501c3ed57efb105801cc77f3676f4a852adc2f714df84fa2892526052e7024eaf66d2dd044" + } + }, + { + "type": "Regular", + "proTxHash": "20081902183024e83d79b207cca106255ca3cc14db40b04cca2dd4651a10c363", + "collateralHash": "16771cfddbe09b3ff634383bba5130c136a554dab1c462e88f3a7ebadc2ac760", + "collateralIndex": 1, + "collateralAddress": "Xs5n8E7GUEMpCqaLVzsmpCx7zXKPY5MrQY", + "operatorReward": 0, + "state": { + "version": 2, + "service": "23.88.22.68:9999", + "registeredHeight": 2122970, + "lastPaidHeight": 2126121, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XrtbWYQpev4ZSbNGSnVd5riSfaZGybXezw", + "votingAddress": "Xg84inYmLYMmYnFXVqWB8YDgZ5GYrZQbr8", + "payoutAddress": "XawkxDdTEZ7C66Gv95j7Vy5NUVuB6jw1EX", + "pubKeyOperator": "8d317f87944da2810f51e391450f14575fcfdaf18e63c72f6e0253465a546e8047c5af752de423c87312644e327b7268" + } + }, + { + "type": "Regular", + "proTxHash": "5faa996478963f742cb1871fd32e637b2139e29013930999a2ce0c66a500f27e", + "collateralHash": "72f0601fae008845767657ab3787c5e64f89de67f7fde802d09118565b4faea4", + "collateralIndex": 1, + "collateralAddress": "XwZNaLGXapehw7NDzsqNx9nV67UJ7bQAmL", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.182.215:9999", + "registeredHeight": 2122976, + "lastPaidHeight": 2126129, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwGQ87zTpdNKt5qKpNaC3EXNqSx617oQDR", + "votingAddress": "Xbav8eLPfD8P6KpACoymE4jMCkzbiNUgA9", + "payoutAddress": "XawkxDdTEZ7C66Gv95j7Vy5NUVuB6jw1EX", + "pubKeyOperator": "acdeb689664aed76aa147b304c11aeab48f0f34e28aa96e85bcf925311bbe817b631b08e5e474de0be4e4d6445764238" + } + }, + { + "type": "Regular", + "proTxHash": "bb20e0bc59ba68525a340dbb8095458b08e8179ae648d7219b24eec28c7fa694", + "collateralHash": "49bcc38dd322c77105e090de0b3647202266c9ee6f9fc402f71235113b1660d4", + "collateralIndex": 1, + "collateralAddress": "XoYZpekAip3RjnVwZtW7B9JemkFP13KLGh", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.68.155.64:9999", + "registeredHeight": 2123093, + "lastPaidHeight": 2126240, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XeLtLBPGkwUZiXyHKbvLnuQom43jLBmyXe", + "votingAddress": "Xf6QPfF9HXr7u5bDsdVc6CkAXGRpHJugmU", + "payoutAddress": "XoYZpekAip3RjnVwZtW7B9JemkFP13KLGh", + "pubKeyOperator": "8a116c71208267b03385b03086fc8a0bcc089cbc52924dbd9d4c51948e2c14e560cd1c1f42334f3a4070d7085483e4a8" + } + }, + { + "type": "Evo", + "proTxHash": "52fc4d740991fa557c439a5d553ba0bd71f84675f41268568c33158be6405f22", + "collateralHash": "d195b05f46e01e11812769bd6ce919f29c722262c5b53beb58167981c556b63b", + "collateralIndex": 1, + "collateralAddress": "XhL8XtEf9AuTWPzqMxsqc1jKyxvdhpKUfH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "147.135.199.138:9999", + "registeredHeight": 2123120, + "lastPaidHeight": 2126275, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuFpSsykBKzjT5LX5nwSjZenv97eouzReS", + "votingAddress": "XhRSv7sv1UsvtcQ4aB3CC7u3MfwiYgvRBn", + "platformNodeID": "c7f4e296e00349967e41b67d9e9bff82d2bfcb21", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XnWSbQBpz4KM4wkaZ3uMgR34QEUCHHZRt4", + "pubKeyOperator": "b6828be7af0fa0e173d8ec5c8733135e29af030181fdff59b7f5af49c7e8abe95e29cf7850defe8532a65cf02baf7349" + } + }, + { + "type": "Evo", + "proTxHash": "b09cfb1d82a643408818d4a02f491a7ed2dc66f074618706221f2f49f2bae0de", + "collateralHash": "fe25b57e4792d4a46927dffb57ca32deb1a4c2f4d489b4745dc7a395a20986f3", + "collateralIndex": 1, + "collateralAddress": "Xw2kYxv4AK2mGRFtWjxBTn6DKGHByfueDu", + "operatorReward": 0, + "state": { + "version": 2, + "service": "79.137.71.84:9999", + "registeredHeight": 2123120, + "lastPaidHeight": 2126280, + "consecutivePayments": 0, + "PoSePenalty": 1779, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjcpvRPUcCygvPtCW6S9ETwtYktFKc9iob", + "votingAddress": "XeeF8E6hUyxpzCT9wbBJBvpQpFGSCvz4ma", + "platformNodeID": "02665b39f76f9f7df6a5e4bb7f5fa51c8b8862ab", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xp11SZJk6JELDXyD1ukGPtL5fXaB8nm4uJ", + "pubKeyOperator": "8c9915a08877dccfd154700578c7bcf55a249b822fbec0f6adc812ce87e8ca58525f167e90e22a9f2653fea34aff975a" + } + }, + { + "type": "Evo", + "proTxHash": "e7ea6db743a83a34825d0958c7366ddd80053d7e97232597f81f8e0d85570b20", + "collateralHash": "c1c25b2875ad4ff8508e8fa039112c46c560f32046eb21f8c9261ac01c070486", + "collateralIndex": 1, + "collateralAddress": "XfQbKPiUYHYcBP84nfQWovkhGPwycqzpS6", + "operatorReward": 0, + "state": { + "version": 2, + "service": "51.83.234.203:9999", + "registeredHeight": 2123122, + "lastPaidHeight": 2126285, + "consecutivePayments": 0, + "PoSePenalty": 1779, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xyoo9uCDPEK3Y7Jkwo6jeLxB8Y4nXR6KgE", + "votingAddress": "Xt73UZJH4LjVC4rXpbVPUmDaT4EUPADDBH", + "platformNodeID": "f9dc470bf772fe1d07a2592abb7e012d318bba62", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XnPbSVh8gr9TwkoKqSJ4i4WJuFtzrDLiGG", + "pubKeyOperator": "84008f643dfaf4470a9933e41f1f864a0309ec345726b4f443cb194c8a1318fdb224fe38297493d3d4932b4abcc43352" + } + }, + { + "type": "Regular", + "proTxHash": "5731fa3be25c0c144325178ab3a862e2b75f74fe5425450cc5ceccddbc2fa54f", + "collateralHash": "bfa481973605169dd8988265b401f3e1b060e7db81c5cbc7cd49defed4dd243d", + "collateralIndex": 1, + "collateralAddress": "Xoh3zWU8PgHAPNUCLvKaov9JPZQx8Xy1qX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.231.21:9999", + "registeredHeight": 2123178, + "lastPaidHeight": 2126338, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhFeHfhcJtoU5vqGU5pz738aquNrBgTXj9", + "votingAddress": "XuQGjAm7yQJJnoZDhys8xnGznRWcg6dRef", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "831b3b727312462df65d0b9724d71954465950975612be5ec7020eb2f407a5467ee9ac822fad86aede56a166a7b8a545" + } + }, + { + "type": "Regular", + "proTxHash": "4ac57f68ac0e9c15e02d1023f3aecacc554c65525bcf0762972de51cef873056", + "collateralHash": "f0cb5dcf34c78e58ee6fbc86b5873ee9833d9d52bfd2e2821f482f4a56ced896", + "collateralIndex": 1, + "collateralAddress": "Xu6NNTsiwwtReiQAFystYKruRQtLA7hSYr", + "operatorReward": 0, + "state": { + "version": 2, + "service": "135.181.53.224:9999", + "registeredHeight": 2123179, + "lastPaidHeight": 2126343, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmE1w7pENpQXndLsM5urk4d2YqRufkTwvC", + "votingAddress": "XcGhZue12AkWphMYGfAMRAwH4CR2JW3ata", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "868047de1e239352fb170407d61067305af2940490f444118e27690ec26f0b44255e1321f493d7dd9260121363dc820b" + } + }, + { + "type": "Regular", + "proTxHash": "d0ac8249f001a680470cedc4df8b9678051d020775a8745221b02da6b4325a05", + "collateralHash": "64fff137a5d9fccd3faf985320bcd0c9e367dea716fca1ca6f1d9ed43f8efdfa", + "collateralIndex": 1, + "collateralAddress": "Xybf6QwsknrP6TPAoSvVmjT1QF8Nweu39m", + "operatorReward": 0, + "state": { + "version": 2, + "service": "54.37.199.238:9999", + "registeredHeight": 2123246, + "lastPaidHeight": 2126410, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqjSXJPmSvHv3VnFyqMBTKvJxNRB3K5sPY", + "votingAddress": "XqjSXJPmSvHv3VnFyqMBTKvJxNRB3K5sPY", + "payoutAddress": "XmrT1BiLFt64EwG2DKmp1ReZbd8MJDYKaa", + "pubKeyOperator": "b3485483f5fb3d74c812cb6ea9dd807d64101d13d3135a7d4863a3562ac9ab897ea5d0853e2aff9c50924963de2a508a" + } + }, + { + "type": "Regular", + "proTxHash": "5aff186238b7e52cb513b631537982069d43b91439b366db0120a1e3b44ae51d", + "collateralHash": "13e4c36e8390337087201df26e6a7368b2945a3768398ac849467925a67c1958", + "collateralIndex": 1, + "collateralAddress": "Xk77eZJadwm5xsLzHhwToZiwLt1eZ7NU4E", + "operatorReward": 0, + "state": { + "version": 2, + "service": "45.76.215.91:9999", + "registeredHeight": 2123422, + "lastPaidHeight": 2126590, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xe6oyHaheWYHi347ARZZLw7Xq2k2rTmVhE", + "votingAddress": "XtuBjpRuDUsE9gGqgMqVGnu4L5Cc84Xs3Z", + "payoutAddress": "Xk77eZJadwm5xsLzHhwToZiwLt1eZ7NU4E", + "pubKeyOperator": "8a4403fc5c29c288ff22747abe3748f964fafee96f0ddb6cd798b1dd84336bfb8d1490ea400339ae8f9e593b6c1af477" + } + }, + { + "type": "Regular", + "proTxHash": "98e6e434e93093183fd522dd003214c228c5026be23cc8210d8dda9f6bf9c0ae", + "collateralHash": "b3a2bb2b62ef20f3cc078fdb6490184f8f376faf6874e717572bbb822224e7f5", + "collateralIndex": 1, + "collateralAddress": "XxAgjfamZ5dy1icQYaDpuqK8a5mKTrJPHg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "149.28.18.225:9999", + "registeredHeight": 2123434, + "lastPaidHeight": 2126600, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xfc94vwx3LH7wqiyK7Ew3PYMVLKd2Vvqmf", + "votingAddress": "XoZgQpUE1srYwMzHvKBRoo5PmmE5i6aZ8Y", + "payoutAddress": "XxAgjfamZ5dy1icQYaDpuqK8a5mKTrJPHg", + "pubKeyOperator": "b4d96eadfc9057770e3c9ffe5e23cbbaefa28265b29beaf7873360de075a91040081ce159fa0cc4fa249f10af2a62fa7" + } + }, + { + "type": "Regular", + "proTxHash": "b0e4bd42c89df447adf25b43930da4473aebe63c7b7472b2cbcac5d2b8737efa", + "collateralHash": "58bba94727c7dd68686748083a33190cb39ae6ccf7855a927f24fa4d0373325a", + "collateralIndex": 0, + "collateralAddress": "XrusEmFTK5j923f2HmF74bPSsdqkWAF4TH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "202.182.117.248:9999", + "registeredHeight": 2123447, + "lastPaidHeight": 2126616, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiiYHEpfPVML8a6eUoNNVLVTzKHg284gby", + "votingAddress": "XoKQn81zw7zaZxAe12Sx3GZDY1QydkrPLw", + "payoutAddress": "XrusEmFTK5j923f2HmF74bPSsdqkWAF4TH", + "pubKeyOperator": "b1f7ba301c7ec25993b970ef1cb5a2961a865118e856875368f14bc434329956a621bee5874ebbda7e7f3cbccdcbb116" + } + }, + { + "type": "Evo", + "proTxHash": "28cdae2272c4e52901cb76097e4109ff96d442a9d323f37cd4d325a07a0d49dd", + "collateralHash": "efe588c8de3cc55612c552de05aef31545426c36e9cbe0e21b6e5c8cf3ac1293", + "collateralIndex": 1, + "collateralAddress": "XsfRwHD73i8yX1d7CKkLSLKn6Wvm6ir2rH", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.67.156:9999", + "registeredHeight": 2123927, + "lastPaidHeight": 2127417, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2124253, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmHZd9SHYpGfwfUodaeFADmCwyiptKN7gW", + "votingAddress": "XhHNsCmtSB84Qz5CgRbzQ3XNrBBzobiaPB", + "platformNodeID": "456a0ada76a935af15dc09d2a5fda5d0fd363437", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsfRwHD73i8yX1d7CKkLSLKn6Wvm6ir2rH", + "pubKeyOperator": "9183c2be1a60f242b4a9d9882646e6bb06e0c44e8e8d78b8ca1e763e67ef6d14e57388a461057e210ac15f084c90899e" + } + }, + { + "type": "Evo", + "proTxHash": "07bffaa884f78cfb549d6557065d01a5c537b39434b2b2767a6114e5d9d73ccb", + "collateralHash": "51173e39f43f370123e081d24308ccf743065cad67f7f2b574dd7c8b460f754c", + "collateralIndex": 1, + "collateralAddress": "XsX1yMuyEwd3gYce8QD3m1v5G8X4MSCty4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.67.159:9999", + "registeredHeight": 2124162, + "lastPaidHeight": 2127325, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdEQhMb99ddVp7qE4TGfdm2ZxWs7iGCCyz", + "votingAddress": "XkSJBR5aNyuCtiS1xULPmxZtbftWwh76wg", + "platformNodeID": "50d847734406592420320c864eb572fb900e5c36", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsX1yMuyEwd3gYce8QD3m1v5G8X4MSCty4", + "pubKeyOperator": "89717a29aa87fbee26a8e1ff647350f3d950129adb49adc386a042984821d823d3d6b39e9b6669c243051a86fc87edaa" + } + }, + { + "type": "Evo", + "proTxHash": "4c2e231fe2732724651d0fd8c5db6a37e2f689c47170cffc52eabb8318d227ef", + "collateralHash": "255b13486e88b62707faf103e21f352cc0816f8a6a1040d50c94460e2c99c496", + "collateralIndex": 1, + "collateralAddress": "Xgrg5KBSqX6xUkfxkHzMmcWHPSYiQd6ajB", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.67.163:9999", + "registeredHeight": 2124254, + "lastPaidHeight": 2127423, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XsoL6bTQkWDq9ZaNgTu2g44tCV8duk5vNs", + "votingAddress": "XhHNsCmtSB84Qz5CgRbzQ3XNrBBzobiaPB", + "platformNodeID": "1603960a47322033b09c989d2f37ad2fdfa51a48", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xgrg5KBSqX6xUkfxkHzMmcWHPSYiQd6ajB", + "pubKeyOperator": "92e5f1ee8bc8051b9cf44fb4716c54d6b3eafcdf3bc4e11ca28a76f7e4a1d789eace8dd9b1d7b03007dc74464780c77f" + } + }, + { + "type": "Regular", + "proTxHash": "1c2b19d136daa7decbea401eb14274709860b7f6ba01c17d328b4b92d631ebca", + "collateralHash": "93b6c31b4f3962644dffcfe5727ffacfb8adaf6fa63fe9e1efdd7de3f1d20a6c", + "collateralIndex": 1, + "collateralAddress": "Xw1MpBXW1Y9Hp6WmbjukprWGiZrf6HNxiQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "62.210.97.79:9999", + "registeredHeight": 2124306, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 3727, + "PoSeRevivedHeight": 2127165, + "PoSeBanHeight": 2128362, + "revocationReason": 0, + "ownerAddress": "XrHewpFKPVj7NfCGg1s3syB5a5k9NPCQDd", + "votingAddress": "XbUybEykvT76CXPNTrV74QWYqQevtR1QRh", + "payoutAddress": "XsCjtP8rP6ddHxmgRQPFL5o1jBGPC73FZL", + "pubKeyOperator": "b560c79d8aebce598961ca0a34edb72c9284787fc739ae51c1e85e15cf4d521286a1f71e68df2ff4d7dfd2e02515cc46" + } + }, + { + "type": "Regular", + "proTxHash": "e6b3058e28791a7cad3969eb639d86fb5a76ac6c28be3c36a49928ab15248fe0", + "collateralHash": "5f38396ce62ccab08847f53abd5c860a7f3889af12948989c77e68af44dc2d1b", + "collateralIndex": 0, + "collateralAddress": "Xieae9XRiq75XqFhq6JUxyEHsJidQuGXXq", + "operatorReward": 0, + "state": { + "version": 2, + "service": "137.220.38.255:9999", + "registeredHeight": 2124674, + "lastPaidHeight": 2127847, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xn6e393H1rrAAtgDqiZkD3pxxiuLU3fJqa", + "votingAddress": "Xn6e393H1rrAAtgDqiZkD3pxxiuLU3fJqa", + "payoutAddress": "Xbb6xbUMwnfnPa97F7DgTaB2tt8rVgEABG", + "pubKeyOperator": "92ac2d0c912df5d2a575fe25a5e40766b30915d3923e53313a644d18c778c69a0f09ada47729e12f51366fffc737d81b" + } + }, + { + "type": "Evo", + "proTxHash": "13498142da3ff383acabe5f3dbf161b51fe65913ee73d2c38e98e6dd73b54b38", + "collateralHash": "7d8ae8af29d198c01f0b96957b949f2662f867089393925c4ce2efb586c7a9cc", + "collateralIndex": 1, + "collateralAddress": "Xv44sZRsqBWmrVJJqXUT6vsHGXmoLxssYJ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "65.109.65.126:9999", + "registeredHeight": 2124877, + "lastPaidHeight": 2128052, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XoX2DL5iQiNxwDzZPwq7Tk322ZGgK8F7ua", + "votingAddress": "Xgp1MiA5jad1CNYC11nUwXgXAdgrz2X7g5", + "platformNodeID": "63670a3a65f2d3df548f5b7cdc06353cfee0196a", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XrPV2rmHZeEXUEhFLbge24iKeyW4jEEbH8", + "pubKeyOperator": "b854f486612ad943a6524ad36250bb43ec2472ace84d270d544a5533f9c617998bc1ce0b35afe4056937f7ad2b89d3f5" + } + }, + { + "type": "Evo", + "proTxHash": "0c00d16531a1ca3012ca4b29f8e3474c5378afcc3f1a671030de16f9dcecf350", + "collateralHash": "e342200d6b3fec4a3725641f862d828ec5f5236e666617e68f3d1e9ee814b987", + "collateralIndex": 1, + "collateralAddress": "XoiCYBve3eFL1VfRXCmuJ6fjjGz54c7Jmg", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.27.67.164:9999", + "registeredHeight": 2124878, + "lastPaidHeight": 2128058, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xw8hVyvAnnTUYBLUWqa3YF8tC7FKGktaYp", + "votingAddress": "XhHNsCmtSB84Qz5CgRbzQ3XNrBBzobiaPB", + "platformNodeID": "8b4e3231c7387be7bdcdd4f47193d4f8ea9362ce", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XoiCYBve3eFL1VfRXCmuJ6fjjGz54c7Jmg", + "pubKeyOperator": "8c17441f3380fa55caf6dd8da4cb64ebf27c5c6dcc7809c2855a15096b9553b8e163c067907edac1014dbe1aaff97323" + } + }, + { + "type": "Regular", + "proTxHash": "1d3f38a1e8683e340961c0e72df95fee1a788a6047069c2336bb23ae38399f20", + "collateralHash": "c96f9a9016516e63b97a4f170834b0ac466647e6e956e603d4e82172853bf12c", + "collateralIndex": 1, + "collateralAddress": "Xnym3754AAFzpHhEhphrLhFoQakJ5CDjYs", + "operatorReward": 0, + "state": { + "version": 2, + "service": "89.223.65.183:9999", + "registeredHeight": 2124880, + "lastPaidHeight": 2128061, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwGUGKV39RHfLf9nfy8wZwkBSaoWBS9wck", + "votingAddress": "XdtLv4dWgbxMQUTU5BtgLTePYVTDeUN95D", + "payoutAddress": "XxTJnMrm1onZtyH6PFob6HVy4LdCxEs5P2", + "pubKeyOperator": "8a4f3c9061746ba632a6a8ca89c6eca62a1042ecf1d311c96a3cb15408a04ae283feb7ee115ccde67aae5ed0d97f714c" + } + }, + { + "type": "Evo", + "proTxHash": "02ea5d030da10c84ad09ca95289c28d6affe7cd40947ad30fa11fc782c677d75", + "collateralHash": "6f32f7e4cb10979ce171f886d26e0fe1ad65323923c8b8509d5ca559ea2396c2", + "collateralIndex": 1, + "collateralAddress": "XfYXp2oY5jLXTyu6e922qXbfpmZU53vVAd", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.194.216.84:9999", + "registeredHeight": 2124959, + "lastPaidHeight": 2128145, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XcVcDXydXXhumVwwfU28yJevu815sbZzZc", + "votingAddress": "XvcJy3KLD2UjXge74oBhcK73418m3e4jVc", + "platformNodeID": "999e660c07fdcdc6e9a58faf3339d549d44142c1", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XmKYWZ6ZViGFnvnqMepm6NGCg3FZMbKTN2", + "pubKeyOperator": "ac1b998bb0b566a3faefaf1d76d3b20b9754e950508d43976aa93b9b5b007de58c4b2e5fea65497f6f8c0f8595137bea" + } + }, + { + "type": "Evo", + "proTxHash": "34275283d67d69a588edafd85a75a7131775a5f812a419d7608997ed3764df1e", + "collateralHash": "66d98175bc05bd677dd0c8bfc3fcd6f3fe70e281c2a1a6060c4b51590150881b", + "collateralIndex": 1, + "collateralAddress": "XmPxXNDsFA2uSoKZpMnJqmSrqMFYAG436W", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.254.241.11:9999", + "registeredHeight": 2125839, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XgmK14us4byG6RaufEVQY2QRHkhcU3Afow", + "votingAddress": "XpScTRnXuowBfnk6ihUKZ69Rv6oCRj3mEb", + "platformNodeID": "14f1e0ccf8525fa58042e96e01df70d579b2f303", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XfGuWUB1rh7iuSfU5aJ6NGi2nfdjUk4Cya", + "pubKeyOperator": "8cccf9d5282db40bcc3de1471a9c42d7b9874ab0eb6ce7275af0474d2327efb5d024154ec3d990c61b86c2957e338a92" + } + }, + { + "type": "Regular", + "proTxHash": "28b4ab8c030635d847eb11281d04a3327bc570e0c2f6f12b0ea1540898aa0740", + "collateralHash": "ee892687fd0cb8069fe8264edc9b6dc743c214994d461ea64a0dbe58a07b369a", + "collateralIndex": 1, + "collateralAddress": "XsmBApYrr9RZgCVVriui84rw6LuWHzD7iD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "46.30.189.214:9999", + "registeredHeight": 2125971, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XdcJNxfZ3dPBfv7diGLGRnD8fi1sqnncCq", + "votingAddress": "XdcJNxfZ3dPBfv7diGLGRnD8fi1sqnncCq", + "payoutAddress": "Xb3i7W647HEfmj126dEfg7hN9pZWjZG8VV", + "pubKeyOperator": "a5eb4b1bd159f3c7aef23282f8639b6d8815de0193a4f45305039cc4bd4c10b9112f81c59c24ba27e8bc177e25edeed0" + } + }, + { + "type": "Regular", + "proTxHash": "be38f8e89bdbe128f935b662ce2eedaabb7b194cf7a9f57481e2b5b81dd4a08e", + "collateralHash": "46a66fa30562546a5f5796d4348bd80ed7ed425836b64dafe0875acf0eb3e903", + "collateralIndex": 1, + "collateralAddress": "XrzKKHJ8oSDA4SJLoayg5zHtwzzUrHxJoP", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.190.53:9999", + "registeredHeight": 2126106, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XhyPX3Gs34DNhHr9zB92kzWTjjkQtFwtSG", + "votingAddress": "XsdaEdw77N3yfmP4fmkLmnyMgmXMgfePkM", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "8810acb5c071bbe8ce4fc7685ad4a42e99927a0edfc2bec8cf65adc008bf82206cc8f3f795510ee1ccdc7b211e0a71a5" + } + }, + { + "type": "Regular", + "proTxHash": "9ff40ce557f82f8f763b3985dd0a6aa84482827f52b1251c5f2ee682c6974839", + "collateralHash": "bdf768cef667e326ce9435932427d5cb743697e90b2aa1e45ef847b19fdaf1dd", + "collateralIndex": 0, + "collateralAddress": "Xu8JVk7nY4vsWwMhngSRVK5B7YyoVA8gBQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "168.119.87.132:9999", + "registeredHeight": 2126264, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xb1rhbmmhPous2bkYCmFYgPnpW2pokrcEQ", + "votingAddress": "XnFqRYq1f71ZXFmwT2sjA8P9i1MuFcy7Qg", + "payoutAddress": "XbqvfRV6SMRAfk5e3Psg7gRGmCgfy7Dn9g", + "pubKeyOperator": "803aed9fb24896cc39d6892428d7367af728bf9e0dea6e8e0487505e357c6f7a61cb2fa5ba0eb6ade37c999a400f5dc0" + } + }, + { + "type": "Regular", + "proTxHash": "19db0157b098b580ee2cf6b1a65465f5be40b9ade1c27e4c424dc651f10f36ef", + "collateralHash": "fa4ec71c983d485909757f538467241c7b8268239499ef423025c9ab3af27987", + "collateralIndex": 1, + "collateralAddress": "Xui8WQJV8RBpEJx25Uag8qvToTnc4vvdhb", + "operatorReward": 0, + "state": { + "version": 2, + "service": "37.97.227.21:9999", + "registeredHeight": 2127000, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XvZBiLGHoszoz1rpTpBWpPhQrVq67VxMwQ", + "votingAddress": "XiHx5fUw5HHDhWX8obniZQabjPztwom98J", + "payoutAddress": "Xui8WQJV8RBpEJx25Uag8qvToTnc4vvdhb", + "pubKeyOperator": "8a08a8fd77e72520fb019d7b9bdd4ab44e9c058d9c009b3554ebd23c1de7f00d273947cb5084927b20bdb255b29d068f" + } + }, + { + "type": "Evo", + "proTxHash": "174defd7f00894efa75a025315106960e5538a62112d9850f6f1b2940446c2a4", + "collateralHash": "5bd1a152cdb8ccb318daa5df576b59487d8796d5b2342549fdc2354689381e1e", + "collateralIndex": 1, + "collateralAddress": "XcYsiYT81XPozXPRPZCbn53fRyBdQaytaE", + "operatorReward": 0, + "state": { + "version": 2, + "service": "192.248.178.237:9999", + "registeredHeight": 2127180, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 848, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqUski5t9oXGVsSfHvpcfFUZqVi2jkitYx", + "votingAddress": "XtZSSp6n8MG2h3eXtzMo5Nt7j88mP9XkqZ", + "platformNodeID": "b96f7087d1ca66cf0a4179a56ab064e231aef9eb", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XxQ3nNqd2xXsZu2PEjdcV3HojBz3GDaxby", + "pubKeyOperator": "ac7866cc73500b1e397b8aa62dee54e10f479b2b42facd2d4650d1daeb85ae8a37bf2d03d589f1ee069bd1c9cfd83e64" + } + }, + { + "type": "Regular", + "proTxHash": "f4ea8f3806f7a48f4fdf21d1b9286a66bc45671f632359c93ec298f5a2527cc4", + "collateralHash": "eaaf44a333eacbfec547caef6a257539b9707b3a8a2a86660ceaa2a870f45004", + "collateralIndex": 0, + "collateralAddress": "XrfDtRUyANFgJexx6gHnzM7M1xiwRCL4ZX", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.193:9999", + "registeredHeight": 2127297, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmjbF33Pj6cobdxQGqfu4zwncELdvn8boH", + "votingAddress": "Xyw7AX4zScP95xRLK12q4ArWFNvF8XybaF", + "payoutAddress": "XyMzBWobV4oHs7VUvznr6byu3jQs9U3X9c", + "pubKeyOperator": "aaa650bee30f2f2fc6f131a4e4540e34d7e64f3efc3fb30d2ada3789dade20cefd8f5b5270b9d279e5312f3af716d132" + } + }, + { + "type": "Regular", + "proTxHash": "5d47e4f3a15e472c1a7f8deb474f82dc440ce769c07c9f6fe7918542de096004", + "collateralHash": "eaaf44a333eacbfec547caef6a257539b9707b3a8a2a86660ceaa2a870f45004", + "collateralIndex": 1, + "collateralAddress": "XjgngN6HLK8BBYKrrJCkk2443LoGyNuojN", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.210:9999", + "registeredHeight": 2127298, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XjyVEMtjRxm3otqneMKfieugPZ1SyfvULQ", + "votingAddress": "XpS33QD5Nua7LjV1kDgyaB7Hgr1ZoXfBPZ", + "payoutAddress": "XrjkNya4ZS2dNtDTn3tfaF35ZicYH81b4c", + "pubKeyOperator": "b63a0aa8ecbfb23e429fbce85369d878b02cba9383b5cd1b41d06af836f9f754d897667a767ae065a672609e7cdc467c" + } + }, + { + "type": "Regular", + "proTxHash": "f4c0d579b470e048f1729e463183ce64d281d8b519717f881562dcb4ac1d89f5", + "collateralHash": "eaaf44a333eacbfec547caef6a257539b9707b3a8a2a86660ceaa2a870f45004", + "collateralIndex": 2, + "collateralAddress": "XsYCdcmDE2rN2zYfaE5pXGqDRJgDGWTHQv", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.211:9999", + "registeredHeight": 2127298, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmShm6xvYb6W6D6y7zXv8Wiy1oCoagqsWL", + "votingAddress": "Xh3oV6TdMNjEBBAEWZaMkuhEDJ38Tpigmc", + "payoutAddress": "Xi5kig8VxdhonKVxyBb6eZTQS5SuUC4Tmc", + "pubKeyOperator": "a8306a678fbec80a6cfb1097a30a3f76dc019c8496089c2ab65cb64c40f0f28d1f3d4872f25defafd517b0450ed50f7c" + } + }, + { + "type": "Regular", + "proTxHash": "5be3146c3e2119caea8631567b797faac31948362deda6962cc45107f3e03159", + "collateralHash": "eaaf44a333eacbfec547caef6a257539b9707b3a8a2a86660ceaa2a870f45004", + "collateralIndex": 3, + "collateralAddress": "Xu37C8mDBGmWrrfJGAfK4YXTHNM2Nx7Q19", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.217.99.212:9999", + "registeredHeight": 2127298, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XozrmKpqffJL8ctSv9HfXrXj6AzCS5imru", + "votingAddress": "XtobkhRRtgop4SFcEjQJVfEGZHx5Ry3v66", + "payoutAddress": "XrCruui6Fj6ZNLhwAGqkbsxFSdG8aGKTN3", + "pubKeyOperator": "a016cb404a060418bbe56df09418ed0f18e4446434b666288d22a15fce6275d910aa278f21f997352a9bd9c90e64e47d" + } + }, + { + "type": "Regular", + "proTxHash": "3e6191fc563b8f8f3053efd9571d0c3b9015217bd2ec73ee26d59fa5d39a1c3b", + "collateralHash": "d51c6cd09c75cdec81913c9e381fe4ef7916e785f1d46ae42e263cce526bcef4", + "collateralIndex": 1, + "collateralAddress": "XuJQZDH9A78mAH391Fc1t1BGMbSSyvvUNR", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.169.181.71:9999", + "registeredHeight": 2127481, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 3727, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2128074, + "revocationReason": 0, + "ownerAddress": "XpaaqJLeeeDL3X5Lj6AEP5WA2vuAMwTwiZ", + "votingAddress": "Xg3SzmBt8CGsu9oU7GxovXxVVxZuewcm3W", + "payoutAddress": "XoyFc7yBNGzanCMgVNw3J3if47xwgVSx8B", + "pubKeyOperator": "a90aececd4f673042685b8befa5bd4f4225252059b6550cf6c1b8946d065f747d06d83a790ddbe710ca762149384be35" + } + }, + { + "type": "Evo", + "proTxHash": "706b871255d45be704983d89207ff0844c281e34f8e87e45f8ae173270deb354", + "collateralHash": "f7bdc67bc25168ad1239fcc653662f1ec258e576dcfe25b6e38cf7ec7f9b48d9", + "collateralIndex": 1, + "collateralAddress": "Xhq48LuE5D5AuA66Auv2xkCFQVfpF5oVjD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.146.18:9999", + "registeredHeight": 2127915, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xs9KnWdFagh4ZEuqsdFrhwbtK9aP1rgB7x", + "votingAddress": "Xe6AZnVruPpCTKoqnNtYesXreUJFtMmEcV", + "platformNodeID": "852a76ede27b0ed1ac5c85776135404c107c9ae5", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xi4aj5nae4R7MD7ASEMYuS8Ci2F48PodtS", + "pubKeyOperator": "a6325ee90ca89f7ac54204c4eb94af561004983a2bccf178573b2d3d7e0db81ccf95411467657a850fc214d4a235084d" + } + }, + { + "type": "Evo", + "proTxHash": "f1616a597eac912c0db8b4696ec11b2c004a421d77a4ff599f6b13654f5a88f8", + "collateralHash": "0777f21b75298a584205db98226fbb83cebd995aad887530ab6d938de03cf183", + "collateralIndex": 1, + "collateralAddress": "XvWFunADhs9bVvGDYS8tg4zYURY63ka9LG", + "operatorReward": 0, + "state": { + "version": 2, + "service": "49.12.102.105:9999", + "registeredHeight": 2128111, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 1730, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpUdnjNNUS2bUaKWv6oJF5WuUYC2B9eK1c", + "votingAddress": "Xsg7U7QyVqpRTb2WtxcBwBuLpjNx3Yjb4D", + "platformNodeID": "4c90c9f99f571a8e4b0e33dbd385b83691012782", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XtmHPhq9ogKP4gaHGBWP1eojqjVo91LjN6", + "pubKeyOperator": "85885252ded0ca7fe632a1163e0c8c64631a338a3a3591024114fda17f2ec6a0f3b5ae401efa86eafc4f07d8717cd4c7" + } + }, + { + "type": "Evo", + "proTxHash": "db8688d31781cf8cbe39dbe2dd5fcb7b3cc172adefc8782317352a4018be75d1", + "collateralHash": "4ea6c2414f61690b15a36af7da97a9beb8d233d7944d35c00fcc704ed655cb49", + "collateralIndex": 1, + "collateralAddress": "XfGohgz9qXb9ZGD4BGsm3rsAYCCSRfuefD", + "operatorReward": 0, + "state": { + "version": 2, + "service": "91.107.226.241:9999", + "registeredHeight": 2128272, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128466, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqLmWyznjaS9ZLV4SSTS4GAasFcjE1QjAv", + "votingAddress": "Xe3vnAvdh8kXk9B7rvxrSzJiW4YjChspL8", + "platformNodeID": "3cae0adf74d5eee344457fae3a5bea71e53b580e", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xw6wvfWfFe9DWNX3NS5ts8Hafp8JtB1EdS", + "pubKeyOperator": "ad28d6797504003f715ef13fc4a89a436155237a604c59f3854f2c0b46d02c180e236a62114119ee39f1c84388e72a1b" + } + }, + { + "type": "Regular", + "proTxHash": "10268611ffd8a8f1dd6c358d07ce56cf4da01e73148e843f1c0e5c8efde89f8d", + "collateralHash": "0403fe17b9be48e59eec6412add4dc498a5d8ee5baf66ee7e9cc9a04c343f27a", + "collateralIndex": 1, + "collateralAddress": "XxceBVhPQsT6Um96hDmRzyX3kPXXmHmvFQ", + "operatorReward": 0, + "state": { + "version": 2, + "service": "104.225.159.232:9999", + "registeredHeight": 2128448, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XpZtktWdYgMujod99mKeuu9oMr2fXxZM67", + "votingAddress": "XpZtktWdYgMujod99mKeuu9oMr2fXxZM67", + "payoutAddress": "Xhn8fMd8xqw4PMrUSZpqT182vUQTQCiML7", + "pubKeyOperator": "86ba76ad30121f8f31057bcf021a38cb05e01990343dbcc9946556e2e30de6523b552eb235307b572ac75ca9f8388743" + } + }, + { + "type": "Regular", + "proTxHash": "3228fa8c43170b3fcf905076db164b9234c356a6383b036f5137e8cd022a632b", + "collateralHash": "dc90ca184c4d24261a6f849bde583e5130c2efdfccc49f723781304b5a5ea09a", + "collateralIndex": 1, + "collateralAddress": "Xm4Ux3v2mMEHCfhofuFVQmvxJXRabEaDP3", + "operatorReward": 0, + "state": { + "version": 2, + "service": "2.59.42.120:9999", + "registeredHeight": 2128654, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XiLoS2M5Scmhydz8bdGkkUGzqLdL7iDSve", + "votingAddress": "Xs5XiDc5hwSZbkSZ95GpUzupEwzgAZfcLg", + "payoutAddress": "Xv13zD9h1VH6cuVc5fdrcmCeJwz3Yj7Kgo", + "pubKeyOperator": "a4b5d0f377a66a27e2df6449dd057ad2ff8b16c4b8adeba23a69bf148ceb86ef755ab0e9d541277d5378d870e9d41b11" + } + }, + { + "type": "Evo", + "proTxHash": "e78966d144d820782ab9f8175f4e4cbb4ad600f45c679d8710070ca8ed7cdc1a", + "collateralHash": "f1643a205e327cc72d99b0fca1f651bce7c031daa67f72c0091b1aeeab978189", + "collateralIndex": 1, + "collateralAddress": "Xy5THvXVbvHWAqzAEVFHvUbS94nkvGQ7T4", + "operatorReward": 0, + "state": { + "version": 2, + "service": "195.201.238.55:9999", + "registeredHeight": 2128654, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128786, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "Xo6W8PDuDUQrcyCHHSX6DG5BVLQ5bwDe6B", + "votingAddress": "XrLGtyr9QESDK837VAjko7GmvtBkmGScbQ", + "platformNodeID": "ce84a5ca66bb9bcee40657559d22e17a7a45bd81", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XtmHPhq9ogKP4gaHGBWP1eojqjVo91LjN6", + "pubKeyOperator": "afbab491d67dc742440f92861cc6470c172bfea5006ee2bcc0b2ae8ca1ab549cd5cf5810bfdda23a1c9a8849c7c50b02" + } + }, + { + "type": "Regular", + "proTxHash": "a6024d343794bd419f1ff0ff09e117c3aa59483e2b99d15a75bce96bbd095319", + "collateralHash": "0b43ebcb9c9c3f264f3e2e4f4e97aeb1b38ba6ed811253996cd3c9b05d4b20d6", + "collateralIndex": 0, + "collateralAddress": "XkAy3s4NSs1ZuniyzBVRzP7uUBKjkb6AEa", + "operatorReward": 0, + "state": { + "version": 2, + "service": "213.226.124.71:9999", + "registeredHeight": 2128656, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuJrcNHUaPU6Kh3wAR68Ydfc5e8hTXokWk", + "votingAddress": "Xx9SocLTyvimDyW4qNekPaEFQNNPibEwsm", + "payoutAddress": "Xh1619BFQ3oZ1KoNrdNYGLfrTapthEALHf", + "pubKeyOperator": "8d5d59793cbe1fdc3d99b8534c4117f71622a62a13a4701976f4a776ce41e3f3a49bd9097a0197694ab841a901888abd" + } + }, + { + "type": "Evo", + "proTxHash": "c06ab623ce5fa91d5862f260d702e1d2bbd85dbcd8698834affccd5f5d48b188", + "collateralHash": "2ff9b8da8e9e77eba40c2648d083f16f30d6dedd464d59a3c474a4c3c13fd9aa", + "collateralIndex": 1, + "collateralAddress": "XhrphYna3UBn7GF6MdUdQEUyQAkxWJwFmt", + "operatorReward": 0, + "state": { + "version": 2, + "service": "5.189.239.52:9999", + "registeredHeight": 2128792, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 3728, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": 2128859, + "revocationReason": 0, + "ownerAddress": "Xg8gh3RR2BAw7RR7rTTrBikXzAfG7GXSF1", + "votingAddress": "XrTDNCsnbVcDFqjuBCkfBBRFbbbCEmxrPZ", + "platformNodeID": "28cb6bb4e32bf45d3d366b641d988493e582ef50", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XoXLyMhwYWLHFbHJjerYRZDqNFo3ZdyYwm", + "pubKeyOperator": "b4050078bca5dbbb90621ce873f3023bc484c5548312a9a970f7a3501ebf6e7b07c7ccf71d798da7ca8a56a00318a3f6" + } + }, + { + "type": "Regular", + "proTxHash": "433adff1e9da3dca268bc5bcb92f95ecf492c9432aee05651ff3db47cc5997b0", + "collateralHash": "ef7f333981c4ade0eb2d15cc3587d0905fa615050c0d2272a16a3ccbf87688dd", + "collateralIndex": 1, + "collateralAddress": "XfTWyVxJ1gxzdPoju4j2EX87ANRAmeiks7", + "operatorReward": 0, + "state": { + "version": 2, + "service": "88.99.11.11:9999", + "registeredHeight": 2128833, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkBa5uLqnxEZBzp6eNe1msDmLa6zvDqR3A", + "votingAddress": "XbAU3ZhavAV28sujVwQaEWV5wHnrYB9d7D", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "b86b813f4357d374c4d28ef0f29a0848d88a522843f418d6d9b0d8570225bf26f341cfc1695561ebf9ded366e0fc9ec2" + } + }, + { + "type": "Regular", + "proTxHash": "19fdbc77f52d0a392eb6bbfbbb423bb3b33d5903b85e0e8239f20a22e43b22c0", + "collateralHash": "b2a631c4f3522ab4246f2381be7384cb6a5da0bac70d47b420c66bf139d624be", + "collateralIndex": 1, + "collateralAddress": "XyEHa5erTC6M7SyxXUdN6Dz4EtsUDNKqvV", + "operatorReward": 0, + "state": { + "version": 2, + "service": "95.216.230.100:9999", + "registeredHeight": 2128833, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XqvbK1UPdSU2WTGb8ZhUKbQmDV8kcaptdy", + "votingAddress": "XtgCDonxYLsAHsiTqfnpdAq8XX87YcJukA", + "payoutAddress": "XjbaGWaGnvEtuQAUoBgDxJWe8ZNv45upG2", + "pubKeyOperator": "88b7b30268f277c9d1bf57b47e5e1b58aea2477119f1b77974eadc2ce9c6c9180f81df39091ee8af2ac08a15a06cb381" + } + } + ], + "removedMNs": [ + ], + "updatedMNs": [ + ] +} diff --git a/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/2128896-2129440.json b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/2128896-2129440.json new file mode 100644 index 0000000000..7d6918a76c --- /dev/null +++ b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/2128896-2129440.json @@ -0,0 +1,3243 @@ +{ + "baseHeight": 2128896, + "blockHeight": 2129440, + "addedMNs": [ + { + "type": "Evo", + "proTxHash": "1133198f95fc0c393d5ca530bf6de45f143abbd9d849933cefe0abfae32cf002", + "collateralHash": "1a095723d1c6b2691dd709f52864e5137df82d205d623c1d73c7d4b0ec926c6e", + "collateralIndex": 0, + "collateralAddress": "Xnph4Ct6FZSJnyJjuf2cCJWmCrjQ1AvTh1", + "operatorReward": 0, + "state": { + "version": 2, + "service": "185.198.234.68:9999", + "registeredHeight": 2128997, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XmhGNNXm4xTMbwdeuf61hp6Y3KTXRFd892", + "votingAddress": "Xies9yrEGp4qvbzxvN439zP8PpAMHgZ3ST", + "platformNodeID": "2e3090a4ac86075e0b9fee5013d0cef6604bdab8", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XsqGn3EjgZWBDS3MxRtMH9ASUKJFUGjtSg", + "pubKeyOperator": "b434539fde8df359eaa88dcf61309dcfc56ed48edc7c6f8f220fd4318d5dd296de292f2903fdc3793a128cd7d83d786f" + } + }, + { + "type": "Regular", + "proTxHash": "0872c1d8640826217efcf453b89689b4558573c27c7b51d16b270affee79d50e", + "collateralHash": "23b51bf427005ca18cb061b15e1421733396d51f4f08ab367d00315cc2667726", + "collateralIndex": 1, + "collateralAddress": "Xp21Qf2VV4M5kAJrTgLUTSvUv5jrEoJqnS", + "operatorReward": 0, + "state": { + "version": 2, + "service": "188.40.184.64:9999", + "registeredHeight": 2129133, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XuNCAq7Vm4xxCoAyxZBax7EYa8hT1npcS1", + "votingAddress": "Xv1TVSaEUbTqmEaBywRdKiq7WYcvY7Kmdj", + "payoutAddress": "Xp21Qf2VV4M5kAJrTgLUTSvUv5jrEoJqnS", + "pubKeyOperator": "aa7cb4b4663b4c49f8bcaba3c5f0444c9919640cba17a7a328d81626bcad5129b5f8bd72f871504f8c59d50539575e60" + } + }, + { + "type": "Evo", + "proTxHash": "7afccfe4be5bca95906efd36c2e887dc64b74cc7548c3f3478c9656ef39d3b11", + "collateralHash": "29a01d9a6d1af558bc0ca9565f95cd52d45d6bb17a1664ee377dfa115729f654", + "collateralIndex": 0, + "collateralAddress": "XouPt7JUpfhhmy1Ren578qay5QzbAJXvbf", + "operatorReward": 0, + "state": { + "version": 2, + "service": "62.169.17.112:9999", + "registeredHeight": 2129138, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XecQzso1DYA4t597gB5eULQ1xyGV2Ucoir", + "votingAddress": "Xti8jrUhtuewsysknG8rJndRQsc9io2nmV", + "platformNodeID": "81bd1d1e8cac17268cfc1496bc2fbd5790697026", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XouPt7JUpfhhmy1Ren578qay5QzbAJXvbf", + "pubKeyOperator": "8d1a72a1fb26dc5932f89a3ecbad5c1b8a1856c547bd29dda92c4b6a297e592b8a7c539e3bd6479bbb549924deb41f7a" + } + }, + { + "type": "Evo", + "proTxHash": "285d6ac35857cb73bb7952a52887dc7afccde0043a344b973ec7621ae02f2a4f", + "collateralHash": "5c9fb6e2798fe0d870f44b4445e45e4f818f13f52132222ce814ac40edfbfaf3", + "collateralIndex": 1, + "collateralAddress": "XtKzT1nqqVUhKGedqMptM1P6xRU7ibBUmp", + "operatorReward": 0, + "state": { + "version": 2, + "service": "38.242.198.100:9999", + "registeredHeight": 2129287, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XkWoAzccFYJ7vwppjro4wbdkaZ42toPGnu", + "votingAddress": "Xc2gyXF82kH15DAgNGxCUKa72hmxFZDJA7", + "platformNodeID": "ece42e9804ca92d30df7ff07067479190fa53b81", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "Xi9x7W13CPTPwpibXPVivi9xorkEwsnxFB", + "pubKeyOperator": "b034928ff5e87c37753b034027f0ea8463cc23632000ec2179a297427f1b7a19fdcbcba573d69fc22b80944568a9efb5" + } + }, + { + "type": "Evo", + "proTxHash": "364ee14241a4adf0bb940a4f1bc13241738a5e818ab20d3b31f635921750c683", + "collateralHash": "c8b7913ff8aea6462d7488045266b4aafa5b6814bced9b36fe39d52b9c876d10", + "collateralIndex": 1, + "collateralAddress": "XjDbnxGQKFQ5di3qhZZLiN1GwGynaRUDpw", + "operatorReward": 0, + "state": { + "version": 2, + "service": "75.119.132.2:9999", + "registeredHeight": 2129437, + "lastPaidHeight": 0, + "consecutivePayments": 0, + "PoSePenalty": 0, + "PoSeRevivedHeight": -1, + "PoSeBanHeight": -1, + "revocationReason": 0, + "ownerAddress": "XwXkMxxvVqpPuJznxNezRTkVFtg3fTpeSj", + "votingAddress": "XjcbuDbCTU36VhRSKNACnD13rRnUfEZfRk", + "platformNodeID": "5e606c4d2491444f25d04a8e70754b637261a983", + "platformP2PPort": 26656, + "platformHTTPPort": 443, + "payoutAddress": "XjDbnxGQKFQ5di3qhZZLiN1GwGynaRUDpw", + "pubKeyOperator": "b06768336b6459c7c09224c4fc20398390a5ce2d5360c28e1d8e91aa2fa5477204c3e40a335de0758d4dcc576d060e86" + } + } + ], + "removedMNs": [ + "ceebc16ffe64010034f245ab95f555e059b188ae404d9112865830400e9aaabb", + "b6c70cced4618c5541a1f2567e6193fdac24e500e6e86b90e8532f5d34aae3d6", + "0b2b64480db7c23f166a4ee7d2a3badd86b82368ad4f92ef03d5f025e13716f3", + "2114709a1e09ed7f3811530569d61bd4a6cb9afdb923dba20097495acb61560b", + "c94165785c79e736bd151f213306c662930007269268d183c9692e5a94a2b8b7", + "384808300a9d977463352d92aa51e70c1e806a3e6c311075b7fd28ea83ee154c", + "731efb592c0cf2f68b233ecf375d915b5a91fa6231d28b551e587896a635e6bb", + "d453fb06718e30096cafcfda30d3031b3026cacabf6b99b46670ee6b3bc73ca0", + "76af7e6f5eb0dcc759379adb64bee92e451a1e5519aa16c0b66161225fffd620", + "a79882078a17ffd760597f074c92e3150bf310d3486aa7648d91f7b433e8e72e", + "0a4398a5366fa46fb1576ccbf20a7150437ffd24f4199b73217a8daa76c1154a", + "480c561544ba07032dc09bfa67e6af6148ff337ea467b55917f5f9af839934d7", + "f29321c4e581645b1ba141acb76680a37dec95cb588c9856c707c000f38a4c51", + "1eecf1e3242f1cd0d9dbdf2b9d1be22bf6b887b8f3677a55bcfd8e2e363fe823", + "02e8e46a2f03ba206cc046c7e9c60c42d47c91406cd97d1f25c1500dee727827" + ], + "updatedMNs": [ + { + "2af26b51bb03870c55e55979623ab44bd21d0e15b908a81f22dbd56ab7bb2bbf": { + "lastPaidHeight": 2129183 + } + }, + { + "975f3ed61f5ecb096509aa52b10fdc6a4b3b371d5d22835e393ec2a26ff36b9f": { + "lastPaidHeight": 2129270 + } + }, + { + "147050185386a7ee7704e7604a21da9de92cba117d8363f5b42b92ec39ab52df": { + "lastPaidHeight": 2128971 + } + }, + { + "98ce60b8e1c83ef38b590cc09d86937c3670731cbc7759ab9b1bd26bdbf4c9df": { + "lastPaidHeight": 2129420 + } + }, + { + "eb63f6a09dcc969de242a18dd7fddf8d494dee7fb6c9c841f4a47a52c9923d5f": { + "lastPaidHeight": 2129328 + } + }, + { + "1d33938842240c4c1890fe26e30b75c6e6fcd072d064c3e0d4d9f8790c4f093f": { + "lastPaidHeight": 2129216 + } + }, + { + "6e65d662f69dd6d24ef3967ca527245f43b080e13394f6d911ca86db63e8c0df": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129365, + "PoSeBanHeight": -1 + } + }, + { + "58850f9bc48710a4fea598cbeb023087ed5d0449f21a7aab54c0b815b664c45f": { + "lastPaidHeight": 2128936 + } + }, + { + "4433aa278f35ad23cb3fec5e26e584cbdd061e4e77414e40474c866e7678943f": { + "lastPaidHeight": 2129048 + } + }, + { + "bcf5209ca5e2774853d6945cde0b96d4c7ad8663f196734639044fd658e38f5e": { + "lastPaidHeight": 2129297 + } + }, + { + "711249399cbc59b314d2e7dd6b79695072e24cbf64a9514cd70a9feeb5dfe33e": { + "lastPaidHeight": 2129427 + } + }, + { + "34275283d67d69a588edafd85a75a7131775a5f812a419d7608997ed3764df1e": { + "lastPaidHeight": 2128994 + } + }, + { + "87d2c030f930329b3b3cff033e269b46aba863be5cf4de2a64200f3309d8b2de": { + "lastPaidHeight": 2129326 + } + }, + { + "d4aeeef5c7e16fa3e10ab669e854c5581ee149aa5dc9f75fde01d9ddb535e29e": { + "lastPaidHeight": 2129394 + } + }, + { + "5faa996478963f742cb1871fd32e637b2139e29013930999a2ce0c66a500f27e": { + "lastPaidHeight": 2129255 + } + }, + { + "f057263404fbfe75d9f2eafa90abfd697e5bfdfc6fb52e0677043142eb58fe3e": { + "lastPaidHeight": 2129108 + } + }, + { + "6691cdff0b1c6dacd42be799cefbdad3d23e94cbeaaa206b52e0bb587405c17e": { + "lastPaidHeight": 2129109 + } + }, + { + "fd30ac30170c02a85cd7ff55ce5ca82812926dd87f961100805b3fed4c5a815e": { + "lastPaidHeight": 2129259 + } + }, + { + "b09cfb1d82a643408818d4a02f491a7ed2dc66f074618706221f2f49f2bae0de": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128955 + } + }, + { + "b6ed31eddba613e94989f7e9c1404323d057ae27e06f26bbfe8f08d50a3a4dbf": { + "lastPaidHeight": 2129071 + } + }, + { + "9ef71a1e00b9605f5523c6557cde0b5a3d280b0101f419bf3f8029a3022c04de": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129046, + "PoSeBanHeight": -1 + } + }, + { + "12dd85ca6a817a8929979c5586f61654c9ade206c1efdae7f863f157ebe422be": { + "lastPaidHeight": 2129105 + } + }, + { + "b96e010c230161dafab91a4075a87d18ea954636543fb3147f64ee4dd979e77d": { + "lastPaidHeight": 2129271 + } + }, + { + "6be8ac01a06ec2c93d303b44413ce01ba05e6c14363ed6c4a443a6ba6d82475d": { + "lastPaidHeight": 2129141 + } + }, + { + "7ef1d0d40b30111cd71cd0697c71121d36dcee723c368f8f07c9974b0dbcf6fd": { + "lastPaidHeight": 2129150 + } + }, + { + "0fd63137e2bc071a00593dc8bbffa59a0a06ebb71650f12ca4eabd5ae2d9d2dd": { + "lastPaidHeight": 2129306 + } + }, + { + "1a6653fc218b4d84aa37cec26324ad19677257fd899bee35b237cd22fa7a523d": { + "lastPaidHeight": 2129296 + } + }, + { + "3ef857e664aef540716524ca88ec816c43c059e09e71d8770dfb4efe06f741fd": { + "lastPaidHeight": 2129199 + } + }, + { + "2925138ae00b8b79fdaa08721864d283404843436cf09ddbcda3f5a92ee53ddd": { + "lastPaidHeight": 2129218 + } + }, + { + "78fc0590dfa8f386b03d3d3a2e9e50b12c138997af115fc4c5347981ed70355d": { + "lastPaidHeight": 2129272 + } + }, + { + "89eeb928053abab8d69a68ac0483a05678a2548f95a03f75f7ca26170f26e0dd": { + "lastPaidHeight": 2129151 + } + }, + { + "ba5ae5f1a49ff5fe9aba98ca73417254eb05a107ff6b2b7f77862d6fd28eef5d": { + "lastPaidHeight": 2129069 + } + }, + { + "4c681bcdbf40fe443ee7b9cd2bb420cc94b40347eb578518667512d928b1e81d": { + "lastPaidHeight": 2128905 + } + }, + { + "0ce628a28068eb1381a9ece3ad36197297984a86ef44abcfb3c8431a957fa3dc": { + "lastPaidHeight": 2129115 + } + }, + { + "d7594236506fb97c87b598119a3c2dfac5186ee380e90b113a9780b63889cbbc": { + "lastPaidHeight": 2128976 + } + }, + { + "4bee92fb0fd27a3b23b57f67052d18fd18c6e616935545a6d0e691663c836b9c": { + "lastPaidHeight": 2129204 + } + }, + { + "0cdc857aaabb3c4652b274727764c5a4545515f732de096cd78605d314e1679c": { + "lastPaidHeight": 2129426 + } + }, + { + "4040458775dae2b9b210bc101783314bf1b9f1963093c128616a99d8967125bd": { + "PoSePenalty": 577 + } + }, + { + "526df51f2bf43ccb80350f720b555893f06c472e7df71da91554769fa004079c": { + "lastPaidHeight": 2129055 + } + }, + { + "5cedca64d83b6e11d34314639d62c7f355be1f27d9c20f5dd17add9d4dd0f33c": { + "lastPaidHeight": 2129234 + } + }, + { + "3d039ce62023346c62c2fe5f1cacb3a38678a0f54a2817931440d6c8e0856edc": { + "lastPaidHeight": 2129011, + "PoSePenalty": 2245, + "PoSeRevivedHeight": 2129159 + } + }, + { + "3f06e7c308f0476584a99bb8c687ddb52e5b62f5852fef243366f4336f53c2cd": { + "lastPaidHeight": 2129181 + } + }, + { + "213512f36fa4a31a87a2e7eaf3bd1136095f66c25008ebb1c3a6fb58a4fb67cc": { + "lastPaidHeight": 2129118 + } + }, + { + "c3a213b255a6321c441fa6edd0c6c47c774733c946a6fa619910b825226ecbcc": { + "lastPaidHeight": 2129286 + } + }, + { + "ff6eef134c820048043b923fdd68d73d0010f167bf63c7fcec80ad28b8d9e74c": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129100, + "PoSeBanHeight": -1 + } + }, + { + "7a26c877c1e2dafea292b54ae37c39be5c51f27b24fd7a1e5a634523b5526eac": { + "lastPaidHeight": 2129211 + } + }, + { + "31cc55e53f8e0cc890d3b9818e3298ff6d36481689a6308d184a5e49f42bbe6c": { + "PoSePenalty": 3037 + } + }, + { + "1bb846e890e938b9c3f9a0a0adc4eaa66d1fcf7d06ab4c397344536daf31be0c": { + "lastPaidHeight": 2129101 + } + }, + { + "77d23cf380b0005b3f57ffd7ef3913c9f142944327e95b40973a229d1be0f859": { + "lastPaidHeight": 2129265 + } + }, + { + "be38f8e89bdbe128f935b662ce2eedaabb7b194cf7a9f57481e2b5b81dd4a08e": { + "lastPaidHeight": 2129232 + } + }, + { + "3a21b44617555e59998b5c0421a24bbb7cb9cd923abf7fcf68eb8148548a198c": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129287, + "PoSeBanHeight": -1 + } + }, + { + "e0d7aeac3dab8ae5814f8439da21b29e9213af697eaef1aaa1c329f596f9a8ec": { + "lastPaidHeight": 2129158 + } + }, + { + "bd8920955f93d5a9a311b9dc4c8edd9c8f0b82a918ef8f2b2066491a50f2690c": { + "lastPaidHeight": 2129242 + } + }, + { + "6ba5ccd3e46d6700ffabee07cd53fe5d302c63d53db9603cd8a55e4c4264c4e9": { + "lastPaidHeight": 2129182 + } + }, + { + "2b1605c628323a4738c5eef5d640bde09eae6ac73d338d14ebf245a1d94b0ce2": { + "lastPaidHeight": 2129176 + } + }, + { + "31ce7e11cbcaf8596dfb73a68dd7bed15dff54d513896ce5682faa7e991267cb": { + "lastPaidHeight": 2129222 + } + }, + { + "16d040557ad124f9d9c99ed664f668df2b1d9931432d8180d3459dbb2bf35d74": { + "lastPaidHeight": 2128981 + } + }, + { + "9dd1c4bb48fc69cebd2ee4486dc3ab176ecc922a555c1b33791cdcdbd927db4b": { + "lastPaidHeight": 2128919 + } + }, + { + "20a063fdf88b36024774e05419248e84f09a76346c11378167601bca596e9a0a": { + "lastPaidHeight": 2129153 + } + }, + { + "de4ec2421addff6d4f16c24fb9cab0751e6a46dec809d6b4e0b100dfe32df6ab": { + "lastPaidHeight": 2129228 + } + }, + { + "bb3bb04b81ae33ad08517b64e61d553a1e19fa32439c5fc881eaeff9e0bfde36": { + "lastPaidHeight": 2129278 + } + }, + { + "a0c9b5138ac6709cc8220797fe818338788f85378934316d298c03e392d32b1e": { + "PoSePenalty": 1235 + } + }, + { + "12e46bce64971700da615da8c988a3e9fa887172900ffb35f267ab9273e31e6b": { + "PoSePenalty": 1958 + } + }, + { + "19faa586dee7a28f2cb35f679b41f4bf9e88f6496e07eb2ecbabff9ae1093856": { + "lastPaidHeight": 2128979 + } + }, + { + "bce2680a80746b7df509a720b64dbd4f6ac8ca0da53b340a3c7b953622f975cb": { + "lastPaidHeight": 2129434 + } + }, + { + "15bfd8c4f721a7b8e5b2b99b51847fd36f0a8a6696c164eeaa6157b140ac6d0b": { + "lastPaidHeight": 2129039 + } + }, + { + "5451bc97eca61f9bd705109d54b7d0247de1a916849b6244c8a42e8708778c62": { + "lastPaidHeight": 2129008 + } + }, + { + "b4073b8eb46369de8361e50ae829c24f7aae5b4c6d9a60853a022a7698acb88b": { + "lastPaidHeight": 2128991 + } + }, + { + "aeb85eb056a1d10a0d8b59668087dce2698aafb6388cea09d4ca8fedd00eb6c7": { + "lastPaidHeight": 2129227 + } + }, + { + "cd8a2d9237f72cefc921defec7f8752cfdfc1e8a19b87f768eec3265b1d872ca": { + "lastPaidHeight": 2129208 + } + }, + { + "1c2b19d136daa7decbea401eb14274709860b7f6ba01c17d328b4b92d631ebca": { + "PoSePenalty": 3728 + } + }, + { + "275b003bf05733b79b736c0a0f4eab4c466aa5a462532754f7ec597c80dd0a8a": { + "lastPaidHeight": 2129215 + } + }, + { + "c2b0580eb48013b92ba9bfd0bfe98d76e5490cb62d918a89cf82aa45d3ca9c63": { + "lastPaidHeight": 2129135 + } + }, + { + "793d8e852b1731563911bd6cd665332303f2759d74ae4d41648cd6c3bc34b1f6": { + "lastPaidHeight": 2128931 + } + }, + { + "e6ebdc7b2536e949bb72ed8a71984848d4a42257ddb9c2b562ed09a0ea9f61ca": { + "lastPaidHeight": 2129370 + } + }, + { + "add8ed572c5c8b4586b709af2c073fcac33b001b1143b4672943d5ec0effa52a": { + "lastPaidHeight": 2129047 + } + }, + { + "d07e1f491d48947fa2fe9b88cc0e01275c582f3d9fae361d2744c5dee57b48f6": { + "lastPaidHeight": 2129261 + } + }, + { + "0a7867ee2c48403f5ec768e99340727fb0fb83a74948e490a39d51e192c1af0a": { + "lastPaidHeight": 2129163 + } + }, + { + "2a9320c6379233cbfcc861170fcc76e32a7b6154460772472159fd79b699abc9": { + "lastPaidHeight": 2128934 + } + }, + { + "bfb61dd4433734074981c9eb44c6a59910d60891cafd9c4eb4939e44aa15e0f8": { + "lastPaidHeight": 2129050 + } + }, + { + "54d3fc8846edd4f3db916eb4ac2cc7f58e2f0067c9b7befa2fc856cbf2234349": { + "lastPaidHeight": 2129250 + } + }, + { + "09c37e3110ccefc0cdb8fa349f0c401ad2e687e4ec0eeffe07c39b5e087dc075": { + "lastPaidHeight": 2129186 + } + }, + { + "72716d7eb429acf070752b18eb95e7f53e8a6f4a719e5a3e94ab3fa5cd38c769": { + "lastPaidHeight": 2128993 + } + }, + { + "da0aacfded1e6ee8223142208049f968605a4d883acf8660a3d88aa5a4de4eef": { + "lastPaidHeight": 2129324 + } + }, + { + "e199dc8c539c324bb9881e986c6b5fdb0dec8bcc1b4ff9362f5f3416d464d469": { + "lastPaidHeight": 2129384 + } + }, + { + "7f855fedd2a0046f0f5ca5c6739d8efabde279613de0657e70307ded3766f725": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129396, + "PoSeBanHeight": -1 + } + }, + { + "08bef1551d9a44b7ed99b8f880963c67509868de7d8818acff71066f3dd3920c": { + "lastPaidHeight": 2129040 + } + }, + { + "043905d429eabc849fec92708a7337aed4b18f7fb5fba48cbb0a015d913fc893": { + "payoutAddress": "XmntdiV8AS9UxJgqVhgfvriKRzVNDwzFVP" + } + }, + { + "f914ab644206d427d2f8277b6d3ae5ffb024a79fc652a96a80d89873095af029": { + "lastPaidHeight": 2129353 + } + }, + { + "f1c86f973a31dd58069d83c9770829377f9794a6118b562b530a2882f8312227": { + "lastPaidHeight": 2129422 + } + }, + { + "70c88f398c2e10b7c026db5389431548fccfe77593d81fce7108c0bf6d8ab7e8": { + "lastPaidHeight": 2128959 + } + }, + { + "4c86df48d7e2d47069eece948c335205059fcfd2588350d9df6d857e7d37c731": { + "lastPaidHeight": 2129325 + } + }, + { + "25a8b283b81a0c3b2b3462cffa660b19ee6fcbfe116013705c498fed1bd52637": { + "service": "64.176.35.235:9999" + } + }, + { + "afac5e66e66e8dadf0e75be50e62d1842a8773ffa5a17357497358dada4d1cbb": { + "lastPaidHeight": 2129430 + } + }, + { + "703f82ab1e60a9b882451cf6b0f8bfce00fecf1c97d5b475b6564e49155e289d": { + "PoSePenalty": 1958 + } + }, + { + "d35bf81e3fd0e70f9db6e7f228fe6becdcf3fb0eadf407dfcc7eb2307d51cd2c": { + "PoSePenalty": 1153 + } + }, + { + "87e886c82eef44464e60683bb1b611cb2952fb190988c942b41bf38b3e282edf": { + "lastPaidHeight": 2129432 + } + }, + { + "9cf746c3fe9078681f2e3785c5c7bee5f653d547a95daec2072a52f1cf5bbb88": { + "lastPaidHeight": 2128910 + } + }, + { + "4e00bafbe9ae99b5b4ffc1d7791b94061cb5ffbde53434ec0e0d18085b56ebe8": { + "lastPaidHeight": 2129280 + } + }, + { + "6534b58e8a1c39b3d56a6af2fea0781ab48b2076febc6ccba6efaad6ee46b268": { + "PoSePenalty": 1153 + } + }, + { + "c79b739a4538f137c26d17bc0670e3ede98630171f08317185c3a33254abb04b": { + "lastPaidHeight": 2128923 + } + }, + { + "b63234d5dfc8616ac9c9667b8bbc1366e5908501f1086127b5c4351ca4443fa2": { + "lastPaidHeight": 2129148 + } + }, + { + "9ff40ce557f82f8f763b3985dd0a6aa84482827f52b1251c5f2ee682c6974839": { + "lastPaidHeight": 2129361 + } + }, + { + "c06ab623ce5fa91d5862f260d702e1d2bbd85dbcd8698834affccd5f5d48b188": { + "service": "91.199.149.177:9999", + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129246, + "PoSeBanHeight": -1 + } + }, + { + "d522b563f5d7d6afe653086f5ff2ff7626ca07661515cf6420f1e49ea06f41c6": { + "lastPaidHeight": 2129139 + } + }, + { + "deac81e38179b28a6078cb60dcdbe6299b70b13d0d632946c6df2b8f85a75383": { + "lastPaidHeight": 2128992 + } + }, + { + "e8a285c75be16c4777e7acd77101dd2ceaa2b71fbc615a37c2e0a5bd718e3989": { + "lastPaidHeight": 2128988 + } + }, + { + "04b8f3d920019be17e0c22e731e3d0e07c7d3df77f21506444f8ca68991a9948": { + "lastPaidHeight": 2129311 + } + }, + { + "0eba73fdb5dc4ba8d652d2d063b33f8e0304e0b85884842e05a3e5da06db8128": { + "lastPaidHeight": 2129179 + } + }, + { + "ffb927c847edb34e6e22154019cb3ae880041796de510037c764cedbfbee00d8": { + "lastPaidHeight": 2129195 + } + }, + { + "f815395ec4292d9b56a0f98f636c3192d9b5eeeb82f9df9051227db7fd876ca8": { + "lastPaidHeight": 2129281 + } + }, + { + "65e423fdfcdf0105e45cf9efd786bae90472a2332cfc75db484f4f0fa5aa5e60": { + "lastPaidHeight": 2128939 + } + }, + { + "5543983a394d7238d3ff51526343892dc9463c9910dcd9112916265cb16b6008": { + "PoSePenalty": 1153 + } + }, + { + "3c21a81af32a9ed044900b90548d751deb2fc043925594a856214b96d24f2bc5": { + "lastPaidHeight": 2129245 + } + }, + { + "b9b002693a41b32ae55be408392699520353db54b48f5fe29233e8b35492dbc7": { + "lastPaidHeight": 2129332 + } + }, + { + "24179655b900518789880c2eb1691e13d526cf5e9b2233a1fad50cf879887c2a": { + "lastPaidHeight": 2129221 + } + }, + { + "9021d7ff104e1ba375b5681b85ee4adc49b7b1e1ac1ccf66f889935ac3c88ab8": { + "lastPaidHeight": 2128995 + } + }, + { + "52d6bf22d13713d65a524fb6250b30ea3bb1f55c0c475c694b566689d0506c8a": { + "lastPaidHeight": 2129131 + } + }, + { + "0c0bcb449d7b45624f96011b54d86363792fe6ce97c44d6a0f396623c1eaa67f": { + "lastPaidHeight": 2129290 + } + }, + { + "68f509167fed4aaa486d3bb113dba62164a6952b486d208aa351ee42b70d984d": { + "lastPaidHeight": 2129084 + } + }, + { + "02477c8a4dcc67cfc99bca770ed800039f55794530ac708367aa9b4ea6459dc9": { + "lastPaidHeight": 2129045 + } + }, + { + "3dafdf7eb1f56dc7cf89b2ab05c4e1f9066e03d1894974678f7564dc0d17f421": { + "lastPaidHeight": 2128978 + } + }, + { + "47ba14d326e51f644a7c9b5b8a67311870ef9f297ee9a6215fdba7e5ef1a432a": { + "lastPaidHeight": 2129107 + } + }, + { + "c5c4612ee4dff316beda43489e5edb5e7e11d84796f07ac8d2a4bfb4e5f72b27": { + "lastPaidHeight": 2128945 + } + }, + { + "e58773dde44ad891c2d667cf67265d96b344e7f143199756269bb8111c7d39cf": { + "PoSePenalty": 1958 + } + }, + { + "eea809839c8dbfaf047a1cb43faa37a416271447d3aff27ea7ad93a0cd91ba40": { + "lastPaidHeight": 2129269 + } + }, + { + "9b987adc36c9a7476a90385498758bcd018f8761418873863a5cfeadf3c38327": { + "lastPaidHeight": 2129098 + } + }, + { + "fabd4c1e1dc01895f6a1f386151c67631727d3d8025f47315da3b211350e2187": { + "lastPaidHeight": 2129026 + } + }, + { + "217844f21811bd6b252a5b69f0aba44f340b2c51da923e20a656bfc8aafb8169": { + "lastPaidHeight": 2129076 + } + }, + { + "640368db560b2d3b6b5cb0d6396d37e16b250d024a028b62ec5b495e0b766179": { + "lastPaidHeight": 2129349 + } + }, + { + "b7f2027249cd854d61740c64d9fa1131f9ad848b9ca9182b28f310a7bb929e2b": { + "lastPaidHeight": 2129416 + } + }, + { + "6ae15ced830710a6df17da5e857fe2061169198504699e395388fda30cf30a48": { + "lastPaidHeight": 2129423 + } + }, + { + "630207b9bb7cd379dee63f05b85349068ea95c0910e4545f05e4bcaa16dd5ef7": { + "lastPaidHeight": 2129350 + } + }, + { + "b4c48bc72dcec182cf478f4e34d827ebd4e46ad6e551f6d3a13b44234b478167": { + "lastPaidHeight": 2129021 + } + }, + { + "1ec0015dc56c529bb161f7b6c196955fe368ea47d37d74ef4378f8a4d1aff80f": { + "lastPaidHeight": 2129116 + } + }, + { + "0e3818a4426e15256ded3c03b77b4e6b409fac5773acf1575fd9f30395fe2a7b": { + "lastPaidHeight": 2129298 + } + }, + { + "eaacbf8944cd96f2e273f74444f72025dcf56472726ef420fc39263f379088ae": { + "lastPaidHeight": 2129093 + } + }, + { + "5494e1866985d55136309f987ca5e7fe39e1f837e3c1d539aa0669e2f5038167": { + "lastPaidHeight": 2129017 + } + }, + { + "8105705677eb363af2bbf78011196ffc733896414c83af810cfd5c5cb82e7eab": { + "lastPaidHeight": 2128948 + } + }, + { + "28e7a809285a690c2f2cba0f1369000cb984774ab78c0c683fe5babb1beb2fb7": { + "lastPaidHeight": 2129094 + } + }, + { + "8ef3fc82dfa76ecca6e7c809e91cfbfe40f499c1cf58f0f52b39e2a7e06f3ad9": { + "lastPaidHeight": 2129244 + } + }, + { + "a28c652709db60303f54c2836e7a2edb33816d2745928abf88f27909f3744d67": { + "lastPaidHeight": 2128982 + } + }, + { + "476cc3d56d8b9d0656a2f2e2893bf410ddc7c616283f4a9b18dd062ccfd371dc": { + "lastPaidHeight": 2128996 + } + }, + { + "c565f5c98cdd2b1b21635f770351051b60791b268af69d4141c2b9aa3a9fa107": { + "lastPaidHeight": 2129398, + "PoSePenalty": 2245 + } + }, + { + "259bde9368faabbbc0dd90b03e63b86e4ca843188770f8cdc3c28fbe94f39007": { + "lastPaidHeight": 2129231 + } + }, + { + "52fc4d740991fa557c439a5d553ba0bd71f84675f41268568c33158be6405f22": { + "lastPaidHeight": 2129366, + "PoSePenalty": 1958 + } + }, + { + "aaa0dddee42cad41c5dbc71174ba93d1ac3aab8a46db047c2786310b3d06298b": { + "PoSePenalty": 2402 + } + }, + { + "4ea27896413c952cdef0df94f8875d870414a039b827ddacc60d703084cbe98b": { + "lastPaidHeight": 2129322, + "PoSePenalty": 287 + } + }, + { + "e0e7f6b2961b8f5d2634b71a72846baab89bd6b9b842e6cfd7da9a60aecbcdb8": { + "PoSePenalty": 1185 + } + }, + { + "d9a6f7544671fee2f823404e51beeaa1eee8b208b9bdeddb915d05e614484fc6": { + "lastPaidHeight": 2128954 + } + }, + { + "772f69fbb87538cbcb747be1c291e766628351327cce69ea323adcb63cf8d820": { + "lastPaidHeight": 2129197 + } + }, + { + "101301a6b8fe9474c7647f51509f0bd90b3ba3d6022cf7c09cb9bccc3ecdae02": { + "PoSePenalty": 1147 + } + }, + { + "9f195b87da7880f5a68e9015aa274dc9800dedf5438a06ac15f822435147b0cb": { + "lastPaidHeight": 2128927 + } + }, + { + "7ff19a30865c795bece203d8faa91c4422fe3f43ffe33794a03cd0be6853d3e0": { + "lastPaidHeight": 2129358 + } + }, + { + "e4e5b6b129207bc07a768ee9d50fd2defb8a1ac3710d73656ccc38613628db3b": { + "lastPaidHeight": 2129237 + } + }, + { + "e8aa2270d239b085e1fa4c95ac17d3cdb67fb6e3cc90aa8b277d99d05c1578e2": { + "lastPaidHeight": 2129154 + } + }, + { + "8e905d80fbfc7664f3a68619738244dac6aa8f925fba1ab659361f82b34280b0": { + "PoSePenalty": 1153 + } + }, + { + "83c629853f94c2e1c00221d88fde9f53dc86aefd9264cebc89e5062ccc5c3859": { + "lastPaidHeight": 2129274 + } + }, + { + "33c29b8f23bd3aa9390c5cd5012b2a1e872a77fdd450e847ba8a9a461f8eee60": { + "lastPaidHeight": 2129276 + } + }, + { + "e3b68ab54c808c5386e34babdc29dcf7a219a426c307eba15196228016e44862": { + "lastPaidHeight": 2129200 + } + }, + { + "a164e170fdffc8037e1f9436e2873df010a588e9431ae14554889242605bf299": { + "lastPaidHeight": 2128958 + } + }, + { + "b2f9daabac912b833f8499831a9bf80df4a8d9a3d8df6d3aa6ec41cff6e0c815": { + "lastPaidHeight": 2129052 + } + }, + { + "22d1fc2c14b2b9a7b92acb02b059b48433fd53233c47cd2c5a2316ef81327f72": { + "lastPaidHeight": 2129162 + } + }, + { + "3c24921eb673ba62eb48344f83e5f9d3f7c97f2a52b15e66a559f22c792fb205": { + "lastPaidHeight": 2129110 + } + }, + { + "2c41989563fb0caf8580c89afbadc6443a1b852a26971b4336681f34e4231862": { + "lastPaidHeight": 2129016 + } + }, + { + "7844e6d4aab7010d8f2e4d75da4c4cc4d927396414f681102bfb23d521f9230c": { + "lastPaidHeight": 2129066 + } + }, + { + "ffb44ddfe12fd80c16fe61d6bce14e15bf0b1692e586b6c4c49651afc938b781": { + "PoSeRevivedHeight": 2129383 + } + }, + { + "b494027b61e6e201c6c108e285b7ba1be56acb439a980196fb7b9b158dfdf7c8": { + "lastPaidHeight": 2128902 + } + }, + { + "a6f94a1a7f734183dbb31f21c61dee00437663f4ecca25cc1d388e8883646241": { + "lastPaidHeight": 2129294 + } + }, + { + "e77ad1f6f2021636f399c173ead5071fa9f5d1d8d9857f06e90279c4f7a27201": { + "lastPaidHeight": 2128967 + } + }, + { + "8a44f87f4068e9fcbbf48a27e9107fbb42fe9cd8b6262ba6683ec97530b36508": { + "PoSePenalty": 2245 + } + }, + { + "c646cdbf76e5d5b77ef99f3806b23bbffe885985d0bce82b3259742048bd55e1": { + "PoSePenalty": 1235 + } + }, + { + "12ad39cebf01b3a1bf8b74d9b4d0d2cf1f0c6e764a52ed80d9f66a73c8acda53": { + "lastPaidHeight": 2129051 + } + }, + { + "efffdcf217ab8668fb575b4b68b9e555d0e2dc956714579cbc998030507410ec": { + "lastPaidHeight": 2129145 + } + }, + { + "2fdc05323d018230298adbb7bfe9d9aa74c36aafe6030187d3c078062947a70a": { + "lastPaidHeight": 2128949 + } + }, + { + "8284ca5217c4cdc9f1c055bab3b089b6a8400f59ea81001d676034b243636674": { + "lastPaidHeight": 2129006 + } + }, + { + "d46b2b3c5b48c69a76906e4760026c272974a3d8adfd895af15fb5f7b554b236": { + "lastPaidHeight": 2129189 + } + }, + { + "7301ea2a6f1f41a88280b4fe65cc307ecb1db32ee489252fecf816f87c2449c1": { + "lastPaidHeight": 2129219 + } + }, + { + "c2780a4f92e3aabc0f3de4ce4ad8bf8029472d1e6d50a9638e96769cda133890": { + "lastPaidHeight": 2129287 + } + }, + { + "41c2796506348522794b000a5a7d24e2b2395c6fa856cfafedad3dbe564f108a": { + "lastPaidHeight": 2129314 + } + }, + { + "7e8bf9d0b3c8e7ec56c179facf2d20f63e13aa4ff0d7f5c78f489423cf5f92ed": { + "lastPaidHeight": 2129086 + } + }, + { + "b03483417f6ae162b17502414de14e004d1c1532d4b31ecf893bd9a9385e0c5f": { + "lastPaidHeight": 2128903 + } + }, + { + "2a2c069f92e18fc642a323593b5ed4cbe0426d3d1f8d181ee726767d641808fd": { + "lastPaidHeight": 2129381 + } + }, + { + "369d281ceb4c4a25332c7741397aa7d815f210d6e379a155bc72387c41f52b61": { + "lastPaidHeight": 2129128 + } + }, + { + "29d9c0f9cc304305eeca4a95ee3f22f6b8a52b9301c333ce48b1257942fa3fd8": { + "lastPaidHeight": 2129034 + } + }, + { + "fc9630c1a23f70c94b19ffbcb1889eca8870d7c1f65a232f7ac28a9557b651a1": { + "lastPaidHeight": 2129082 + } + }, + { + "7afbd798bda1e97548af7600c8aa63fbcf424285911a89d73fceb8cea869355f": { + "lastPaidHeight": 2129217 + } + }, + { + "d1aa0f8d745d9ba7fb319685b22438fc70c64183139467b0ba75a0a83a94f1f9": { + "lastPaidHeight": 2128953 + } + }, + { + "36c3e571845c0e2530b36c85e285ecff5b752c0eb84c9d5debc11b0265d467a6": { + "lastPaidHeight": 2129282 + } + }, + { + "203c497413026e429fdef12b99370b59648bc2c0facee3604d3c3446a81bdaa7": { + "lastPaidHeight": 2129320 + } + }, + { + "84623586ec667faaed53174e1252ab26c5283e768cda0d0f9c06a63997b7aaee": { + "lastPaidHeight": 2129333 + } + }, + { + "51fb0711d3b699baf3aa6603742ecac69ca7ffa66b3783a2451e27372c73a0e6": { + "lastPaidHeight": 2129169 + } + }, + { + "51ea0323ce5b375624ea6c43750023e5ec616261b1454a4d663f8908d4f4bd85": { + "lastPaidHeight": 2128921 + } + }, + { + "e4bb242753bad98939b0174a1b3354455e57a944abe77e8cc208435ad68cb8a7": { + "service": "139.180.143.115:9999" + } + }, + { + "70dbc59946857410916bfa7bf90f128c463438a2a78ef7a11d8a6cf19e6b2aab": { + "lastPaidHeight": 2129180 + } + }, + { + "244a01ac9d648b12be6c216ab748a5e609f7a609f4ca60258f34816dd472f125": { + "lastPaidHeight": 2128908 + } + }, + { + "a3087f7bb52d9609cdc5c1e489bea53abcedadffbda71e1ee271c532b24f4536": { + "lastPaidHeight": 2128962 + } + }, + { + "944cef7c21c3d6da86e0b627cc1ec1574dd8344549533cb410171d1db2a3f01e": { + "lastPaidHeight": 2129184 + } + }, + { + "7bec5ce500d80cfba0ad5e1c2ac54bba349b4242fa2f9188d824b0084291885c": { + "lastPaidHeight": 2128946 + } + }, + { + "360186441914d7aee8d160fd5f1538e6a81c738d34439e4b92218189f4db05a0": { + "lastPaidHeight": 2128907 + } + }, + { + "0062e548ac39d518de7b74b9ea92cf6735a8699a3d70896e533dbb5167aedd0b": { + "lastPaidHeight": 2129275 + } + }, + { + "aba7bca5e1f3a816922a32c316a2e3f936b1f40e357a75967985d13f03a55d2f": { + "lastPaidHeight": 2129193 + } + }, + { + "4810f2a149542152bf4a82bdb4fca6e74407dc5d538ab2d69787761822f4ff12": { + "lastPaidHeight": 2129137 + } + }, + { + "62472f43d140786abf3ea0a02f5d9879604ffe7f9552529015bff335c3382159": { + "lastPaidHeight": 2128941 + } + }, + { + "f0adc9a04556423c8fb94cefca91dc6cc44bf5c047a63bf325b10f8a64b11180": { + "PoSePenalty": 1153 + } + }, + { + "82acb850f60678b0aba281c57b0189caff10d9c52c8a13a3b216fd6a794b7465": { + "lastPaidHeight": 2129064 + } + }, + { + "3588ccaffdd398a02337f25b8493d9f366ae141afa705ecc2e1994911d76686e": { + "lastPaidHeight": 2129177 + } + }, + { + "9a8aa10f1b62a4dae39e173c21995395c0b5ae33a708d0c1faa8188ea17cdc20": { + "lastPaidHeight": 2129385 + } + }, + { + "8f3c31571df00f49027536bc5748c662b85440530cb5f4c2073c9e9cfc1171c1": { + "PoSePenalty": 577 + } + }, + { + "c1d0788e79377da74abe477c7e5b391a641a3d6af4e7f14e183be4f5660ca36e": { + "lastPaidHeight": 2129111 + } + }, + { + "b2e4d784149c04c5aaca458510c686514f05ed8b804ce4cae95f486c15404800": { + "lastPaidHeight": 2129327 + } + }, + { + "6bd7bebca8469ca992bc5093646dd61269c3f27debfd20b0a134cfd35e0d9976": { + "lastPaidHeight": 2129031 + } + }, + { + "4aab9e77037099861a0964d696b6e2efb23f4152720b7161a828f5e8684432dc": { + "lastPaidHeight": 2129072 + } + }, + { + "944bce0e7fbf4040b63c4dae169cc595626cdf7758b9a88830995c3e6a66f40a": { + "lastPaidHeight": 2128990 + } + }, + { + "9978a995672fb6397df7eb97b0e24d0ba7aa489d3dad7edebd98bbf70824f941": { + "lastPaidHeight": 2129403 + } + }, + { + "2eee5b0d827572026c8fa66ed1c24d55a1c2821f2fec1aa8afd400ddf3fd2543": { + "lastPaidHeight": 2129185 + } + }, + { + "7d31e8ddc12027bfdf944650da55467707ff5f3c21037b3bc00b280a739f4f05": { + "lastPaidHeight": 2128957 + } + }, + { + "f734e0442fa86044dda22d5f86ecc3f3bbb18aa705a2f4d5d242e32145f9cbcf": { + "lastPaidHeight": 2128943 + } + }, + { + "23a697e38591825c2fa01c36a6934610fac8194ba1a8fcfc6629229fe6f7fe00": { + "lastPaidHeight": 2129155 + } + }, + { + "0195552213c967569b6b0e31a40974b454b3a3642d1b5a2d89e20ee32c400c08": { + "lastPaidHeight": 2129042 + } + }, + { + "be4af6fab2cd48941b4ba13110cd4843090999ed9a80bf5228c34143042927db": { + "lastPaidHeight": 2129428 + } + }, + { + "72748112269647ce039fe5259a64d877605e205f050b99e28345874a5f168df2": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128927, + "PoSeBanHeight": -1 + } + }, + { + "4751df16672c92c84e0979707c9acccccf84088829edbc618def4e60bb79c8e8": { + "lastPaidHeight": 2129299 + } + }, + { + "4089f0ea972dcb9a1a8f2b315e218103950b3a95a8fb01f318f73b04610df800": { + "lastPaidHeight": 2129152 + } + }, + { + "c75b5aaf2a9c127b3f4199d4700abc1eab9fb8ebdf31b4d296951ce395bd52e0": { + "PoSeRevivedHeight": 2129238 + } + }, + { + "d8e26e34c39d79a98ea086e9f64439a7ebabe9626280655c8e4b0664d8766813": { + "lastPaidHeight": 2129161 + } + }, + { + "85237145429f7a234a6572848d01a65fb216e423b6a9cbcaba8c5b09a6ca30a2": { + "lastPaidHeight": 2129027 + } + }, + { + "22f1542de39d1582985cfc7b8d9bba012f52e254779995b84989c5f059816566": { + "lastPaidHeight": 2129025 + } + }, + { + "d0de9450f5d99452c59c12135cc6373c7077255d9aec6e0fe6e4d9a12a5890bd": { + "lastPaidHeight": 2128911 + } + }, + { + "00a6aa2d8bc371d4577c887a5c68003b75dba238eebc9c6d76941b1e7b7a4304": { + "lastPaidHeight": 2129319 + } + }, + { + "eb48654887ae026a1df63a93d322e5e2e67fa4ce32c039b979b0ea25bff3f1b6": { + "lastPaidHeight": 2129262, + "PoSePenalty": 1153 + } + }, + { + "70ba7dc69fccb7eb1a2e351535b89f56d58f9bb731de6522ffa9eadcdc0e649c": { + "lastPaidHeight": 2128938 + } + }, + { + "e7ea6db743a83a34825d0958c7366ddd80053d7e97232597f81f8e0d85570b20": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129318 + } + }, + { + "6b2667c03e63898236ab4b39f153204eab7c688aa440fca9a6bdc72cd44d6016": { + "lastPaidHeight": 2128955 + } + }, + { + "b7a0542418989eb2ce6dbfa58fcc94cd3880b8026564fd37d478854a73333aaa": { + "lastPaidHeight": 2129335 + } + }, + { + "857de59d343bc73ae32955d92f4e551c2baa07ead908cd01a4a74cdc177abd7c": { + "PoSePenalty": 287 + } + }, + { + "ddee1b7ae6687d90e825ad03d9a371cf994f796e40d0755e55116d0e730e2c8e": { + "lastPaidHeight": 2129410 + } + }, + { + "b385ad38ac251a732e38e066f49b9c442f625cef784fec86673de7d53c0fa4a0": { + "lastPaidHeight": 2128944 + } + }, + { + "d1042d345d562ebd3857efa2906518896ed30fccd1ead3d783ba2a8fb9cbee13": { + "lastPaidHeight": 2129018 + } + }, + { + "b029f5a707f3758dd2eda1513833e5bb3ebb82bea7f838e92c36cb938600d409": { + "lastPaidHeight": 2129226 + } + }, + { + "f185950e61fe261ac02c02efcc3f3851300c81cac64621edfc8726d5a0f1a310": { + "lastPaidHeight": 2129192 + } + }, + { + "08a0381c156734feedaaccba8ab0c3271c749673466d84bbf575e340120b9c3c": { + "lastPaidHeight": 2129175 + } + }, + { + "71a44259b4ecc2495ed40ee021a3be7ed79c162b23fa30f5b930222f0c8d8668": { + "lastPaidHeight": 2129088 + } + }, + { + "a69548e3df63ca468ea46004ba22d8cf0e702a507461f93b4ee570ef5adc7efd": { + "lastPaidHeight": 2129220 + } + }, + { + "53f5c40acbf3acffca748f1daea0090706dca5ac2abe47b59c4a0cafe5e69035": { + "lastPaidHeight": 2129202 + } + }, + { + "3e75b887ff111eebdfd6389fc26d53ff01d713de50ca0d0c36af8d2cc052c0ab": { + "lastPaidHeight": 2129077 + } + }, + { + "97eeaa0cf086a2cfbd3bb0cf04d837a450e051cdde8565f0262853f0cd4d40b7": { + "lastPaidHeight": 2128983 + } + }, + { + "a7e58e2306e818c18fabf79855f5edba16062cb6e83d581ba84991eaea03ce87": { + "lastPaidHeight": 2129285 + } + }, + { + "d59e0a0701987661dd7466b63cd06d8cd8b6a880e437c069d0cd39de20e06782": { + "lastPaidHeight": 2128998 + } + }, + { + "712355089a257f3ed2fc1b0351e1af60f17e352d0ff88b201bf06e8ebffe64b4": { + "lastPaidHeight": 2129404 + } + }, + { + "865f12671bf4517bf46aa3d27bcebfb4d9a97f76f70294e5a9c88ea3ceb62221": { + "lastPaidHeight": 2129053 + } + }, + { + "d78030040e0da53e6866eb004082570679917dcb2101f46053dcb8869f99d957": { + "lastPaidHeight": 2129373 + } + }, + { + "27d302288df88b929cd95d9609111641fab19c017de0c793d0be9318162b442b": { + "lastPaidHeight": 2128968 + } + }, + { + "637df4b65988e80364bd0f19d9186d0587069086ecdfae0735981c2ce8ec6360": { + "lastPaidHeight": 2129317 + } + }, + { + "59c1b4e2ccf90a6d8b282748bd198e9180840937caf17765cec3e490455d71ae": { + "lastPaidHeight": 2128926 + } + }, + { + "9b255da43c2f0b9f73b449b91765600c8d4e6d05d22f82675fc48abf7596a581": { + "lastPaidHeight": 2129033 + } + }, + { + "8bc76ca7a979ded6171e6a0bd9bd2a43dfa052e7b54b092d9862db52efe38726": { + "service": "158.247.247.241:9999", + "PoSePenalty": 2190 + } + }, + { + "e24356683d558366e713a43f1138cd3d19480a0a96638b52a7a1c081f20ddad2": { + "lastPaidHeight": 2129024 + } + }, + { + "f184c431b25677870bd83d1cb49d5ba6a68d3d4ffff464301e3d3b3b066afc85": { + "lastPaidHeight": 2129378 + } + }, + { + "9db07647ecebfd67b71a6d015ef373353641ed189b1157420ed9a4f1559b7c7a": { + "lastPaidHeight": 2129126 + } + }, + { + "8b447ad22f5068a9f7fdd46a3aa09387d53933f56b9d625d0c1981888a92afe0": { + "PoSeRevivedHeight": 2129390 + } + }, + { + "1dd4ec053e0c6fc74c9ff8f45fb6e2440c01cf94f1f9a67bc55a2b47b5ed3f81": { + "lastPaidHeight": 2129268 + } + }, + { + "4ed230fee3311079c53b0415c81abdddef33ff1ef23a3fff736d0dfd1319e6a1": { + "PoSePenalty": 1600 + } + }, + { + "ee22f5bce3b6f8734a664ba7be36b1bab218eda764136691e8b506003a7bb662": { + "PoSePenalty": 1186 + } + }, + { + "e88d13ab3fca65e393dea5706f6c25f20402f5b4254c332d047bc1811f7f9fc1": { + "lastPaidHeight": 2129243 + } + }, + { + "c626c00656f86d62ffa9931b1dca321e6b58753f1f644ab22a7f0a90b8bacb09": { + "lastPaidHeight": 2128987 + } + }, + { + "578096aa8c9e9cfce7b0f748e189ceec54c73d3a5f8f5c49046720495fb510ea": { + "lastPaidHeight": 2129419 + } + }, + { + "ca55f40df5dfda162d7055663ab76f206e29b3546100a926f7ea47a0c1328ee3": { + "lastPaidHeight": 2129149 + } + }, + { + "76b9f786eaba46f2a8dcac22f4cef32a17276c375b823225ac28ba5435433bf2": { + "lastPaidHeight": 2129041 + } + }, + { + "e6a62a34e0473ee290730ba87c13cee45a34ac75c369bfd7e15a2f6156db8e57": { + "lastPaidHeight": 2129392 + } + }, + { + "a569acf816ff49a72c18a62bdcc59bb95ed962c9c6ceae2fb4006e30d1946700": { + "lastPaidHeight": 2129251 + } + }, + { + "2a0ddd14c0aa7d1479f784f6f0056dc6ce5582b4bacea8cff1a1c241da395056": { + "lastPaidHeight": 2129279 + } + }, + { + "03e0ac65173d68075ce818dbf01c7b46fc8e9b1d242a3a4bf732ae6ce6471a80": { + "service": "66.245.196.52:9999" + } + }, + { + "5c8b0881a67c1d164ed343095554c73b986d37004f941d476889f5a0c3c0e0a6": { + "lastPaidHeight": 2129413 + } + }, + { + "7544ca3b9824d54cab2053d999caf770486db4fea1f2a4dc95bb84ccd417f542": { + "lastPaidHeight": 2129246 + } + }, + { + "191bfab0a0dbaabd77855a7638aad22574a825936c8793deab47113869874284": { + "lastPaidHeight": 2129207 + } + }, + { + "583a55a9ab5857352e142cbb149a33dda3c2da2350d7b22b0d83d4b808ce4184": { + "lastPaidHeight": 2129089 + } + }, + { + "7e2e02e600a83109de4b7458e6b8a77aff6421a89a70db82d5f2910e21072ee3": { + "lastPaidHeight": 2129330 + } + }, + { + "8f8dc8da08b5771fea3705cafe0f1aeed759bf896aec7ad281801bcc876299f9": { + "lastPaidHeight": 2128964 + } + }, + { + "afa66dabd439ceb70fa897589550b3c3416744f6d1b11421ab38f7dd85952e42": { + "lastPaidHeight": 2128925 + } + }, + { + "c52b252703a7c07359a9b4c9d057c9b317ff08af1d963b304120fe0051f850ee": { + "lastPaidHeight": 2129307 + } + }, + { + "a04b68f20480d8d66efeec22c357ba77f115793ada782e20d5c33fb33c32d7f6": { + "lastPaidHeight": 2129196 + } + }, + { + "8ea0bbc4c97280466cff584a7a5bba3cff590afd824be1cfac0bfe009292f1fa": { + "lastPaidHeight": 2129013 + } + }, + { + "43476324e6fb965a9f497fe2c746b92294286065b9cf8dcb8d138241ba044162": { + "lastPaidHeight": 2129388 + } + }, + { + "5bd3e0d5483c632e3cc01a1b4383a3d19ec7a5327eaef851dd438f5448731cc7": { + "lastPaidHeight": 2128933 + } + }, + { + "71f33163403d54af9402b5e9e46384b2f828120f0ec9d370cc08b3aec4e92fd9": { + "lastPaidHeight": 2129389 + } + }, + { + "d9cfe687fea00dfe333761b03c033851bcc2ecc0c36e490f887d93359e21e3c9": { + "lastPaidHeight": 2128952 + } + }, + { + "56852e938fbd90db9dce85b7eaa114df017f0c1b2c6f1fabe7801d73271517ab": { + "lastPaidHeight": 2129157 + } + }, + { + "fb214e914de22c716c8bbe724236e3f3dfa437edf4bd644fbbdefb35ca415add": { + "lastPaidHeight": 2129342 + } + }, + { + "fd69326e35a79545df532ad99cd821f950f878ef37df37b555b4624b71b1c2bb": { + "lastPaidHeight": 2129352 + } + }, + { + "b9033fb3593219ff1ec52aed9ad24043f222bd3ce6970781a52b473b90826f65": { + "PoSePenalty": 1958 + } + }, + { + "ae54be6ef488ed301c0dff27bc67fba27d6462d29ca1a0cf7c30570b0978f008": { + "lastPaidHeight": 2129316 + } + }, + { + "b76603556d6872b9cb85b56dcffaa75e202dcc969509a5bdfb6dc07eb9e1112b": { + "lastPaidHeight": 2129119 + } + }, + { + "f10b640b494b5be544f3af48b72021279e4100bbce3cbf3b42364032b67ec481": { + "lastPaidHeight": 2129415 + } + }, + { + "58265b9c9346ab99b3e57bf552d6bb57d7fac76b2f98a39d1172de1fb93ff17f": { + "lastPaidHeight": 2129065 + } + }, + { + "69ec16c416d9c65714190e3bd902cd353f8db71350bc07c892e291dfd493a3d2": { + "lastPaidHeight": 2129409 + } + }, + { + "c104bd80860fc0b13ea0e1b8a6c47956df8a0aaf7f0b8737330c081924b7e9e6": { + "lastPaidHeight": 2129437 + } + }, + { + "7bcfdb45218aea9853daa863984c0a1b8ba9cd72e02b3219ac31e091076a4389": { + "lastPaidHeight": 2129097 + } + }, + { + "d0a0287cbb80560b4416e344bb37af90db30c52d808108e8242a7c02e0a8d938": { + "lastPaidHeight": 2129074 + } + }, + { + "69c9c09918f7313a13155811935e77aa6f9f72b4db0de31efb5df2bb8acc1b80": { + "lastPaidHeight": 2129321 + } + }, + { + "3d5e8d50d0ddc4e948e6913d21700f4e45b5448d613cade53908a4820c5a48c3": { + "lastPaidHeight": 2129417 + } + }, + { + "28b4ab8c030635d847eb11281d04a3327bc570e0c2f6f12b0ea1540898aa0740": { + "lastPaidHeight": 2129117 + } + }, + { + "bc8c58c5c2fb325345321d5c4a984bb30d13b794a23515cf34ed24a940286902": { + "lastPaidHeight": 2129091 + } + }, + { + "a7a8be1fda31a5e5da66b80951a90beba7f0f39c300e524d89869fc40d33b5ca": { + "lastPaidHeight": 2129310 + } + }, + { + "57eb2627121afff87b1378dedef3b4b36984821316ed720ebc9a7beb557ee722": { + "lastPaidHeight": 2129387 + } + }, + { + "d729734d778e99d9379efd1482cf1cba5a0b954de9f5390c8073a2e9b52813c2": { + "lastPaidHeight": 2129029 + } + }, + { + "d91fb1eb92da94094eb6ed73418e7436d0908e684b5329dee02dbfed02f8c481": { + "lastPaidHeight": 2129014 + } + }, + { + "85ca07dc2107988d0903d144006743d29e8701c6d90c3e46b6e8cdf60f6f738f": { + "lastPaidHeight": 2129007 + } + }, + { + "a36e376199e47433d9149624c4feda21103b852d439731f48740a4c61a798e3c": { + "lastPaidHeight": 2129201 + } + }, + { + "462aa6ffd298b36d06f8fe5d600fce321c78792a7af67da08797ef2687945262": { + "lastPaidHeight": 2128956 + } + }, + { + "9048d48382b3cc2a7fad5ddf794fb3b7e6b382d7b416dc462a9f77d73082376e": { + "lastPaidHeight": 2129440 + } + }, + { + "597c503ed0ba77b6a440c5a4f11021300ec16d665de17ebdf6455e743ef759c3": { + "lastPaidHeight": 2129249 + } + }, + { + "d973d8f9080fb6b29bfcf362b5bb13a756eb400d7bdd3d9197aabb811a2045cc": { + "PoSePenalty": 2245 + } + }, + { + "58b38dcb81ddc582ef54b94ce8a7b847ea15728e5612be42d45513e3110d7f34": { + "lastPaidHeight": 2129301 + } + }, + { + "9ca6b0a82b687929e97ecb074be77eb22f106f60adc55cee8485ab6a88a980b2": { + "lastPaidHeight": 2128960 + } + }, + { + "9ad5bdf3563cdc1ebd523fba68deb56dfea62cf4d5512ded421fcfd5bb681650": { + "lastPaidHeight": 2129171 + } + }, + { + "9669de13a19f9b17e505c7220ea91bba016a39f836d0b74dae97be2f1a52a1ec": { + "PoSePenalty": 0 + } + }, + { + "dcb7a6d7eeaa524e4f4c8659bcce17d4c275b841fac468ee84cae7afc1f18dca": { + "lastPaidHeight": 2129240 + } + }, + { + "516c384e7544561a4e3277dc8888669ef9468af21b62d9be4d667376403c8b66": { + "lastPaidHeight": 2129436 + } + }, + { + "d0427bf21db161a8ebfe2f6ced4db2432ae8b56d3144840779b6261a72ad1188": { + "lastPaidHeight": 2129070 + } + }, + { + "9c8c773b9029e303b480f5b25eb24cd59b407d862c581c18b317ca097b2712c2": { + "PoSePenalty": 0 + } + }, + { + "ac8d70898dfe492cc9e8920c193687277dc4ffeaed15943898d19ec091eec645": { + "lastPaidHeight": 2129347 + } + }, + { + "6d5b2711a032820005bf8a631d445dfea69ce458ddbc6c954e6567ab02b9974b": { + "lastPaidHeight": 2129095 + } + }, + { + "431fb10dfe87bbb8c4d5cec90091461a2bc7aef52e4c6ac245e727c3a5c319e3": { + "lastPaidHeight": 2128935 + } + }, + { + "20ea325f10633a43c8856c522c47605eb25c2985af2cd9997a722e2fe26f36e2": { + "lastPaidHeight": 2128920 + } + }, + { + "974d547b0d3971eeb0c56780a4144443b75f684a488dcf222c97674ff3f4d338": { + "PoSePenalty": 0 + } + }, + { + "89cde952d0fef3387df4860df2bf06f731410d3598ff7dc312c12a52e9b5ff89": { + "lastPaidHeight": 2128947 + } + }, + { + "86147b250d902d4e120e02dbde0caac254de64c2b5fb3fee41dcf175b58e0745": { + "lastPaidHeight": 2129100 + } + }, + { + "c88167756f5cd9f3dff8283a1441cb917bff817ac6ee0ade97de0fefa79d83c9": { + "PoSePenalty": 2245 + } + }, + { + "4ac57f68ac0e9c15e02d1023f3aecacc554c65525bcf0762972de51cef873056": { + "lastPaidHeight": 2129414 + } + }, + { + "19fdafc6cd50b1a396f079b3141f42f9aba962ce100cce5d4b024a4157727dea": { + "lastPaidHeight": 2129260 + } + }, + { + "1cd70c43e622095e5375ccb6720997c31c34c6f8b89a13a5eac0c132f5fda3af": { + "lastPaidHeight": 2129315 + } + }, + { + "d84727318b91299e7034fd709ab447a04ccd677ad1a1f88aaa3930bdf5b64ee2": { + "lastPaidHeight": 2128901 + } + }, + { + "a3d855d9a84ed9ec36993fe87635fa6e3e2089f5b18286297dcf827916ef34ac": { + "lastPaidHeight": 2129132 + } + }, + { + "61153d402efb4a83fc26ce11c5735427645f80142611b109e58f5fc5f375e3c4": { + "lastPaidHeight": 2129061 + } + }, + { + "275bf5b7a4b0af971c523e34607c23e08db28df29779a6c289772498c48ec9fe": { + "lastPaidHeight": 2129363 + } + }, + { + "e5ec99f09a8b35d31d82b250d6d116f2cf08a327331b1ddbac65c8b0f57a28a0": { + "lastPaidHeight": 2129329 + } + }, + { + "e9979f06fec963cc22ca977087d650b3f7aef76cc32a50fb8e44f532d2411c03": { + "lastPaidHeight": 2129133 + } + }, + { + "eae5b1c863af17227ee1673d483963d42b2b8e4f6d600223f19ce75fbf95f823": { + "PoSePenalty": 1648 + } + }, + { + "a0975da9ad342a40d68be5cf2dafe63e880b44896015e760fb55c01091dc607f": { + "lastPaidHeight": 2129235 + } + }, + { + "0505613f4db057b922a096c6b78f3fb001f5bb119646972e8d6850da569cfe2f": { + "lastPaidHeight": 2129364 + } + }, + { + "294a325bac5c9d58c280ff5405f8356a0d4787c9a2201401664d999123ca99e2": { + "lastPaidHeight": 2129340 + } + }, + { + "15f1103476a45bc0d248dca367bf9fc5c79cf1db810f78be8b2acb7e3ca8e83d": { + "PoSeRevivedHeight": 2129228 + } + }, + { + "e8e503185b89ee6cbcf432cf5e91d91db047b789ca14cf0c14b1e5f87c8e25c6": { + "lastPaidHeight": 2129173 + } + }, + { + "42b9dc6d9043ff38ee58f64a945d4d713467e220e18e1d32a5a1d98acb4eaa8b": { + "lastPaidHeight": 2129198 + } + }, + { + "3f892c559ddf354a7389e3652fa9a9ff72172c5cd31e40131a2c6faee3326203": { + "lastPaidHeight": 2129376 + } + }, + { + "6e27739c5affe0ec30090b7be387ee817a429bac2fa5a2ab0d351ed4c7774e1c": { + "lastPaidHeight": 2129372 + } + }, + { + "f5ebad648498e8953fdbc14771ced083abf29fcd018d3258e1bd3565337b0c2c": { + "lastPaidHeight": 2128899 + } + }, + { + "174defd7f00894efa75a025315106960e5538a62112d9850f6f1b2940446c2a4": { + "PoSePenalty": 304 + } + }, + { + "c4f10ed9ebb9cc9dc01f28925728b5d4f438dbff52217ca95374884a859e72c4": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129046, + "PoSeBanHeight": -1 + } + }, + { + "460ecc6c1ab6fce1ba4fd88384cae19b988bff82dfae90777ef17aad7c61fe23": { + "lastPaidHeight": 2129205 + } + }, + { + "b1aa779c9cef8e2ca84fa9f2a8870463cb11300f4ffff0a4bce25b7b57eb2d01": { + "lastPaidHeight": 2129400 + } + }, + { + "9eb193e12eb19d6097caccff7dfa2ccc12da9e9a7a653153a344f8cfa0cc40e5": { + "lastPaidHeight": 2129348 + } + }, + { + "2c934365539b2c4c8fc1d478d749e1bdaa59e09c920cfbe066ec8cb6abe46230": { + "lastPaidHeight": 2129406 + } + }, + { + "4d9e7cec54885592f2324c3e96fd2ed3a4647fe4ec25ca38652aad12ed241e63": { + "lastPaidHeight": 2129188 + } + }, + { + "a20f3edb99394ad9d93997567599baac88abe28992276b602bea48d5eb4fc2a9": { + "service": "139.84.170.10:9999" + } + }, + { + "aa3ef1b4973f851c39ffe08e42622bc6403c2e2bbd7e8a89efa33f53eafaa060": { + "lastPaidHeight": 2129020 + } + }, + { + "b2ffe05b358c365e4837d97b3bbff0ee97596586f77208d692bdb9641d29b9f7": { + "lastPaidHeight": 2129360 + } + }, + { + "28e24a013ea100fa96da70719a94080ad12a33a93c5d2197bb0a369338b9129d": { + "lastPaidHeight": 2129142 + } + }, + { + "7cb19372485f163893df4c517fed259b0a408735926b8ce456016f7c7f73274c": { + "lastPaidHeight": 2129408 + } + }, + { + "55677b9610be38f7e4efd53d896883e5acf889c3a7b3452d401883543820f663": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129421, + "PoSeBanHeight": -1 + } + }, + { + "b24d8a7a4bafa63704990560c163b65b284a8c6a9b44495452e9ae4539df8378": { + "lastPaidHeight": 2129172 + } + }, + { + "3eb87b4ee9274759846cc7f7bd147d8533a3922cc2ce45047ad27987ed72b888": { + "lastPaidHeight": 2129143 + } + }, + { + "4bb68e455a18495b2c52b2d26b169a7e420ee909b674002e67383c682577ab63": { + "lastPaidHeight": 2128975 + } + }, + { + "c2690e15104cd0d17df48317af7324de02f187c0805348718a00ac807f2a0ad5": { + "lastPaidHeight": 2129336 + } + }, + { + "2f2883e916ce4ec52f1e04c7d103659a923bb7774b4c77145c541a9b02b6850b": { + "lastPaidHeight": 2129264 + } + }, + { + "476fa7729c39bb2202e1eaa3df224502d3ceb17dfc2af1989c5621e1dbb3aa61": { + "lastPaidHeight": 2129206 + } + }, + { + "effad73393cee69d3b490fb56ad1939c603f9afa1135a8704dfcb2456f2ed804": { + "lastPaidHeight": 2129230 + } + }, + { + "bb0f4459a4a593d92da640b3c647ac4b34782a0b3352b9633ecfab71ad4fdf85": { + "lastPaidHeight": 2129425 + } + }, + { + "d48265eccb1c8f7b2dcbc203e9350f12cfd00e526541c5ec97d992d7987a8ec4": { + "lastPaidHeight": 2129305 + } + }, + { + "ce070cea04eb51e65241e3f72ef88451f3c4836a5919ef9d2765d9e59d0a7d4b": { + "lastPaidHeight": 2129194 + } + }, + { + "4a918d9f1d0f81a7b52a36ef83b4e402b32ea35717d63ad173599e6600bda407": { + "lastPaidHeight": 2129113 + } + }, + { + "0911a5921394b1e8ab07cbbaeb5500ca25008c50cba4dfcde41e39c33c838d25": { + "lastPaidHeight": 2129000 + } + }, + { + "528532e2fef93b5389f8ddeee73fefd72b57c629a6a256736a14187d12647f40": { + "lastPaidHeight": 2128898 + } + }, + { + "ea4a6971496f94644600fff68fab26e76c01496415fee28eab224846c558e09c": { + "PoSePenalty": 1669 + } + }, + { + "d0fb7c03fc69e82406baa461a05092ad45137f015b40311ed2e99ab1a250e185": { + "lastPaidHeight": 2128951 + } + }, + { + "3f7d3adf1f005d761d0514ac395da8dd4dfa2b75021fcf8dd8d6ed2d27244a49": { + "lastPaidHeight": 2129080 + } + }, + { + "546c1c4eecef7321bfa0d52f583c682084e68274104827c5cc44a9635f40afd7": { + "lastPaidHeight": 2129433 + } + }, + { + "de469f542fd0bad77d0da44e61e09668bb7784e6cde1772d3b5e81f6e16637a1": { + "lastPaidHeight": 2129209 + } + }, + { + "daded9ac7ab44603018fc0f06ba359b1f8ea7d6f815a056f914b49714f057449": { + "lastPaidHeight": 2128930 + } + }, + { + "bd71ff0ed86646382b19d28a490f92a2e8a7be87da339e493ad9c58e912df384": { + "lastPaidHeight": 2129421 + } + }, + { + "83a5bcccc3632cbd41b5f1a31c476eedccb73e73a893af3c7cc55ae1f63ab0dc": { + "lastPaidHeight": 2129402 + } + }, + { + "111bc0f0402a2dfb26091099669543e7f9c3cdb66f69bd01b3a25662905ba4aa": { + "lastPaidHeight": 2129383 + } + }, + { + "731d99bcd08780005e805657bbe5f6b7b3244fd82d2e46dd4108f35969e20709": { + "lastPaidHeight": 2129295 + } + }, + { + "861c2be57c5211728a593958ed0a870c2d8a125712ba50c06ca164843578d3c3": { + "lastPaidHeight": 2128963 + } + }, + { + "6740eff4c8418cd5e07c1ea1d3a2ce28cf185e61a62cf5b1ad5f07fb26ca57a5": { + "lastPaidHeight": 2129160 + } + }, + { + "6b749d05a7ead7705338b01cbdbbf5c444b0bb69580b972ddca356bb76493f66": { + "lastPaidHeight": 2129368 + } + }, + { + "936dcee01b167ec4c1d149d9482076db14aae496fdc6d4d529fa055136a3c3c5": { + "PoSePenalty": 1153 + } + }, + { + "54022c3696d84dcee3685d5858b001330e6ad7e4c8babe0c645059e521d06d51": { + "lastPaidHeight": 2128973 + } + }, + { + "bec21d57da059a645387a6c88b7c34b0dc2bcb3b15eacd886b08ff30928743e9": { + "lastPaidHeight": 2129379 + } + }, + { + "ce1736ddffa708dcc8d9ec7aa1f7dc1136c45ce5038c6b5c5487870c59b3eb86": { + "lastPaidHeight": 2129304 + } + }, + { + "876b7fdfc60b90fd2d549c55cf52df787b1bbd80c1932c886711609fbb3ba404": { + "PoSePenalty": 1473 + } + }, + { + "39a282fc99b677d142653a0946542a9407149b9441f1e68e6b28c51c61b0aa99": { + "lastPaidHeight": 2129023 + } + }, + { + "0d04d0b12b9c2d3cdffc3e4a59b8ef0e1cc5b165e51c1ad44ee8afed418573e6": { + "lastPaidHeight": 2129263 + } + }, + { + "b0d84b6939d0be2cff89e9332c8a7c15f005ba463a4bd4d7c2066e60bccc40ed": { + "lastPaidHeight": 2129165 + } + }, + { + "4387add2f959bc6490859fd48db6ed99b835c0947956263775c14430d73f7054": { + "lastPaidHeight": 2129102 + } + }, + { + "2f91eb46842dd12afb2f84418000ccfc583942f52a3334a825519c59cbd3419a": { + "lastPaidHeight": 2128942 + } + }, + { + "28a1841f20c38dd97291667dbe7649ade0e7caefe6b415891a8f0639e56cc8ed": { + "lastPaidHeight": 2129003 + } + }, + { + "4105c17c98df9b773d11c12c4ea48a77fc29c116192c0760ec916260e24b7dba": { + "lastPaidHeight": 2129001 + } + }, + { + "13cfe1dddea3ffd0adba44976662a0cc4aa4483d897de1aae472aab4de4e416d": { + "lastPaidHeight": 2129156 + } + }, + { + "760aeb2f98d1b1cf27d157d8070c0caf0374290e4cd7c8f400df277d24c73b87": { + "lastPaidHeight": 2129036 + } + }, + { + "64006928841e0b2f76714247810346e25b6320e2e6d44548c9cb96f5a74765cd": { + "lastPaidHeight": 2129248 + } + }, + { + "de39d1980a7e9f5c86775f0e0767ac67f8113b74441a635d442f6d09050c11ed": { + "lastPaidHeight": 2128969 + } + }, + { + "73f472209276a487519d5562d2ed857d7d88575d878219ee31d05acee08c3165": { + "lastPaidHeight": 2129356 + } + }, + { + "7a6b734a35a8485b2d7dd63cb9b51b64b154242f1b5216b872ab1cbc55e1526d": { + "lastPaidHeight": 2129068 + } + }, + { + "fa0b3a2d56a72a8d66165bc044cd628a71ca37bf4b53a7da01f153722c065a8d": { + "lastPaidHeight": 2129429, + "PoSePenalty": 0 + } + }, + { + "f412ce212fc9c2351a5e3568e11cb41c8c4315b40cfcfcdedd44171558adad0d": { + "lastPaidHeight": 2128977 + } + }, + { + "fa85edb9f16be0dc69303bbc0058c609a87d6133d10ac9bb427754440d2552ad": { + "lastPaidHeight": 2129079 + } + }, + { + "b2deadd3bda2551a39b99a868e8f4558c9a9ece2ff80b4361816f1d1a46cd1f5": { + "lastPaidHeight": 2129288 + } + }, + { + "48b5d23f56a7f64a5a7f704ef490b345fbcc498cd970e8884e08f06c8db022ed": { + "lastPaidHeight": 2129030 + } + }, + { + "4e2fb474e997448f9d1e2e6c29e80a8ab6ec512d90dc75515997de7434bfaeed": { + "lastPaidHeight": 2129012 + } + }, + { + "dec802210b8b7ec86cc24407c602c88bea23cbf81f504e9db2851194d5911ebf": { + "lastPaidHeight": 2129075 + } + }, + { + "56a3e3fd7ecf368015146844e200fade94491fcd8f4d73fb4d2d4f37271e7cce": { + "lastPaidHeight": 2129357 + } + }, + { + "a98e626ccfed86543a9d628b7f2c51ea07fec55cd12da101179bd695a4596e9b": { + "lastPaidHeight": 2129354 + } + }, + { + "6391df4369d30e120a778097d5e96d8710a87eb6a77e9b96885d53db5c49002e": { + "lastPaidHeight": 2129138 + } + }, + { + "a5c36b84429d820f0c8fe773072e19b3f3bf5efbb993ae62ac05041044fa481a": { + "PoSePenalty": 287 + } + }, + { + "6c08c964bd41005e75fc2bfe589d3b938445cdb986309ea361d413aacb7c1fab": { + "lastPaidHeight": 2129302 + } + }, + { + "0e595bdd4838e81f5d20e427921e9666bd8e3d066a23b86d5deeea336172182e": { + "lastPaidHeight": 2129104 + } + }, + { + "62aeca86982ebc2e39a4555431a1af6cbfd20adbdc5a7241283074826b282c4e": { + "lastPaidHeight": 2129393 + } + }, + { + "f2359cd418b41bc869a7fa57c58a3a2f8e5e5bc0ad69b4005f85e9c42922ddee": { + "lastPaidHeight": 2129087 + } + }, + { + "ff3fbf3c46d18ab8fe7e80ef1519df0474bf10555d731e6b710f2d7b1a69e4e5": { + "lastPaidHeight": 2128904 + } + }, + { + "24a19a58c286eee86660e759edb046ad152f23f9d493de16a33f0e9571ed70ae": { + "lastPaidHeight": 2129170 + } + }, + { + "72d455aa4085694a9514257640c45a06162ac2740ecc360e1b29de0752921d0e": { + "lastPaidHeight": 2129083 + } + }, + { + "e5113ec9e85c4d18f6a7d71d0d2949ccd9a92da0598a6745a90f708487a3c56e": { + "lastPaidHeight": 2129056 + } + }, + { + "168157f2d00ed21605b94456777e8c38a5f472c0120a5ff8a3a59d49b7b94600": { + "lastPaidHeight": 2129374 + } + }, + { + "8b9132cc1b8631e95caffe5e46facc07425c74b77e74cb5dfa6978107f6fe60e": { + "lastPaidHeight": 2129323 + } + }, + { + "15ae6a9dc8cd00b971cfbe284984a01f4b4a12d1a234552f186eff94cebad3f4": { + "lastPaidHeight": 2128909 + } + }, + { + "4b2fb2565b4eeab94fd461dcd0b0f83630834929f34ba12e0c68206bd29e560e": { + "lastPaidHeight": 2128922 + } + }, + { + "fcfeda90d7d1937652bf8123e7d130141048fbfe52cf2fb587b9aad4b6ef810f": { + "lastPaidHeight": 2129300 + } + }, + { + "29be36ec41b8e39391d76390c69273c51322ce51b6ea907af11c8fa443813b49": { + "lastPaidHeight": 2129081 + } + }, + { + "9b68754955dc56fbf676023c24eca00507cd261867805785c11cca1ddb67962e": { + "lastPaidHeight": 2129334 + } + }, + { + "0492103872b743832c835dadcfaf3a20a92e4a9116e4406ac37da76a35950bfe": { + "lastPaidHeight": 2129289 + } + }, + { + "1c3a911a7d61db06474a19ff2e2ff4bc5771731c956a1eef5678a6af44a737fb": { + "lastPaidHeight": 2129044 + } + }, + { + "aa1d7efb277b44348b44d967beee3064c55c4f2deb8a35799fe823f8eee4bece": { + "lastPaidHeight": 2129063 + } + }, + { + "650220452554bb099afc6875e855a2d3a13c653d7f42ef61c15391059b4ee4b4": { + "payoutAddress": "Xs2JTR7bvopjezhsZwfxqQdypAGtAtRJFa" + } + }, + { + "81b7f30abb2fc8f2853369be30fe918dc6bbb42296a00291c72b74d2adb8e7ee": { + "lastPaidHeight": 2129395 + } + }, + { + "f2c346e21d7192d6ca95d3441db0ba8311a91fd7f16fbb458c9634035a5d55cf": { + "lastPaidHeight": 2129390 + } + }, + { + "e5561bdef3fd46232c3b6570c1f9c06563c112158d72acef7f7e8b2cafb85ef0": { + "lastPaidHeight": 2129371 + } + }, + { + "0ff436fff18586dbe7cbf0b59805bddb23590e0ebf0bede6166c433243d0d9ef": { + "lastPaidHeight": 2128906 + } + }, + { + "bca5b528092c64aea0f35c3076909a3c916b72ba65cf4e2d0a7f68fd0fd7a350": { + "lastPaidHeight": 2129062 + } + }, + { + "ff0d9aa814a8683dfc8d8c1e54857e52581b33859aa09cc58cc7dcd848d0b60f": { + "lastPaidHeight": 2129252 + } + }, + { + "b62d4c599a3e82ef9b3e8908fbc176a17dcfc50a8246d5d04ae0d8a36ae5daaf": { + "lastPaidHeight": 2129146 + } + }, + { + "6fedbfd5f0d6493617f7a7868d13f5d3a589df8a0763a23a32988a6e7309cf0f": { + "lastPaidHeight": 2129005 + } + }, + { + "7ec2a6e899e40debf6a621cc5da9b3a0f450eb941de25935fab1ecc49c8cecf3": { + "lastPaidHeight": 2129187 + } + }, + { + "8ee1839db846c536b96de4f8d6ac6391ee86161a28aad3ca31c40ecedb6170b7": { + "lastPaidHeight": 2129283 + } + }, + { + "e6d5aaa16614a17e71dbb692df04b8b5c1ff13e22c7630acdf9d385e2eea0f2f": { + "lastPaidHeight": 2129134 + } + }, + { + "e842125cbcb76977fbeeac961ab8ed90e230e6cf5e144103d28f956370a01bb5": { + "lastPaidHeight": 2129168 + } + }, + { + "4cd226491211688dc1a7743c3ae06462411c4d48f90a40146f0eb2720d86bf4f": { + "lastPaidHeight": 2129159 + } + }, + { + "583bc742020412bdde5fd9fa937b6eff786b0b4c401e2c2aea9890a46408678f": { + "lastPaidHeight": 2128989 + } + }, + { + "9493762d8d69dd28d7eb1fc4ff1dd21d0cdf18702fe0605481d4dc208d1387cf": { + "lastPaidHeight": 2129058 + } + }, + { + "ebe672363226723faf83f232469633432527e90cddfc1ef65ed62aeb53aae410": { + "lastPaidHeight": 2129312 + } + }, + { + "2c251d609e2b32a23720d18527b351fe2d72c716a97d2934aac142a618f3dc30": { + "lastPaidHeight": 2128915 + } + }, + { + "b5da9e91919865ab515979e9868ff97da7e7cfa52cfe922b67ebc46d0182881e": { + "lastPaidHeight": 2129224 + } + }, + { + "aa737be0bcf1c0bc8ed365b778e8b2e93c91872dcdf272dcb2d5597f8e4f1050": { + "lastPaidHeight": 2129015 + } + }, + { + "7607ac418599ac20e353421f9d69d83419585fa57aff1002127f09c4bdda09d0": { + "lastPaidHeight": 2129213 + } + }, + { + "e4bbf295a2372e37ee520a295781dea6bc48311b31e8f9618c7b4e9872af25f0": { + "lastPaidHeight": 2129073 + } + }, + { + "c8c433e4aeca70bc2b76cd2373ccbfc65a2a4249119a9aa32708525f6eac3db3": { + "lastPaidHeight": 2129060 + } + }, + { + "20081902183024e83d79b207cca106255ca3cc14db40b04cca2dd4651a10c363": { + "lastPaidHeight": 2129247 + } + }, + { + "631a5e99e59bab2bf06e4ec9874b3c3ced59187dc724c689ffa0fe99f2d3f210": { + "lastPaidHeight": 2129309 + } + }, + { + "c7537583e7b2ab80973cb1dcb8d70ecf14898038cc92a6ae6f9ffb5281574630": { + "lastPaidHeight": 2129225 + } + }, + { + "cb55bcfac42f7a1268b76a32f89ad6bd54f33dfbd03f6e112a23cb220c42be97": { + "lastPaidHeight": 2129439 + } + }, + { + "62e7eb2755e0ec6622cd32c231a0947434fa2e296c5424bc54ee4add00afded0": { + "lastPaidHeight": 2129038 + } + }, + { + "6ee0be87042267b34f8867626a580aa190d6afe3306b3ddfb97d3a0fb6f596f0": { + "lastPaidHeight": 2129365 + } + }, + { + "1f545ceeb083364a18068659d542fc0ae694b5a6d9643a2df179fc902c344e96": { + "lastPaidHeight": 2128972 + } + }, + { + "b484b1c512124b1a38e35fe2a28b0dfa7031ad8e56fbba46c3282009d2e21f10": { + "lastPaidHeight": 2128929 + } + }, + { + "a2e28a5a0a9249c05b2aad1f8872e775c50f382a97578e9f6486b6e2f49fb350": { + "lastPaidHeight": 2128924 + } + }, + { + "1e964fcd4064ba2dc2104c5f52d48ef6b679cffe6a0cce2af7321a5871b4fb70": { + "lastPaidHeight": 2129054 + } + }, + { + "96e8173b44c8ef1593d9f8e121ba6e77c962d3ba8232b441dc1b87d07d50f3b0": { + "lastPaidHeight": 2129233 + } + }, + { + "e126864eda4a45bfe9bc77101a9562d7e0460888c6cf79d720f0b47405aa355d": { + "lastPaidHeight": 2128985 + } + }, + { + "2945e3d075945de246dfdada279ce63d4d282ac570c5106c5e47b8308fc797b0": { + "lastPaidHeight": 2129112 + } + }, + { + "f735ed1bf904e41d7cac7295052fa2e040a8f861aa9cc6df603ef0c5219af746": { + "lastPaidHeight": 2129318 + } + }, + { + "d8b2d57db170b32b8b95f0ef8c7b11ca6ad737e202d5bddfa757a78841f52471": { + "lastPaidHeight": 2129257 + } + }, + { + "d818a9a3ec60d12e51e6f910c48b7a4177a096bb41baa3d5d5c70acf24178cb1": { + "lastPaidHeight": 2128937 + } + }, + { + "c020238bc5b6538297288a87f90bc9083faa5c7ec90997aaf9592a32d709aa15": { + "lastPaidHeight": 2128914 + } + }, + { + "206c1ba4e21033dbe925c94fb77d151a437c3841134e90a694f4a5200779cf2b": { + "lastPaidHeight": 2129293 + } + }, + { + "7f41688477bd354d336f42380e521e58189a6facfe7516890c5d46c078fc2551": { + "lastPaidHeight": 2129313 + } + }, + { + "bbc6140b3be36b4fff27f01cb801639598290a168841914c4a89a4b6551030a9": { + "lastPaidHeight": 2129344 + } + }, + { + "5480f489c2e7d4e9992349a0eb85b4a81796979c66a5f2c67f5df05866e01df1": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129166, + "PoSeBanHeight": -1 + } + }, + { + "b17483082e8a45b489c3bf913d881e79fec80bcf1f4e720ee3f56b89dcc05631": { + "lastPaidHeight": 2129239 + } + }, + { + "b435a06740b1555f495c57710fa26cedff0ae7c2920002f5341faf4106a44a91": { + "lastPaidHeight": 2129256 + } + }, + { + "d36f26a754b07c6d7c7f6abbe0ea740c9770bd7dfff9f25ef4e71764b999aef1": { + "lastPaidHeight": 2129396 + } + }, + { + "ff00b58e4b281f41d6d87df335ab8e632177c3c2ec57c6e4e0d7f248e0bb9f51": { + "lastPaidHeight": 2129424 + } + }, + { + "481a668a5b44f0e6a2434b93f6d70140939056c4b98673514c5f3d705d981ffc": { + "lastPaidHeight": 2128961 + } + }, + { + "68391dade9e175bb5a66c3c80bccdaa3c9fbd0514d74063856d534f629096bb1": { + "lastPaidHeight": 2129405 + } + }, + { + "c577a10dbb543660001fed181e79d52e6c6fe9af18bf51d54fa0228cf711bd87": { + "lastPaidHeight": 2129129 + } + }, + { + "3d7c7f69cad63b3bedb3be291901f5f68d6901ea81b35f14da711bd02fb27cf2": { + "lastPaidHeight": 2129380 + } + }, + { + "280705af7ab4a5b00e0c4cef3339afb62eb17bb09859b91a38e1b35b7b0aa132": { + "lastPaidHeight": 2128970 + } + }, + { + "7607c48cb6611dc26d0a764144a92c963389ec58dd2407fbc3c0ae8c062db211": { + "lastPaidHeight": 2129164 + } + }, + { + "ffa4a74c58aa0002696df1a7d2562b5a36f5116581a0df1a91500a9664985f52": { + "lastPaidHeight": 2129210 + } + }, + { + "1e1d45c63881d362ee1519bef129001ba5f2dcb54f788dd0e01a6c91bd3055b2": { + "lastPaidHeight": 2129212 + } + }, + { + "1d027604b1a3eef32924551637832460afa0b2c48554f8689c12e5896026709e": { + "lastPaidHeight": 2129032 + } + }, + { + "9918f7f3afbf6c4a5b32a0ac3f8c400fc63c9660067ff1df9bab9145516ae212": { + "lastPaidHeight": 2129351 + } + }, + { + "1b5f7a9214933275c81263c9c4ccc59f4045cf0c3838ff92867b08a0db1d4c68": { + "lastPaidHeight": 2129431 + } + }, + { + "f2f0400ecc79c2e2944c5af879c9de434e637edd79fc8b85820d86ebc6c70f47": { + "lastPaidHeight": 2128986 + } + }, + { + "7378516639ee793e8e91ed32c691f091db435787412aafc48759b196d641ea32": { + "lastPaidHeight": 2129122 + } + }, + { + "df346419b05584ea662345f875d041478bd0a50ec059c0bf310e5732848d96b2": { + "lastPaidHeight": 2129253 + } + }, + { + "be3202a2c405a5c4624fe761a78fc2ec7ec9db15e865c569c953d96136f38792": { + "lastPaidHeight": 2129238 + } + }, + { + "ffa516477af8d6a3cea068a625401415934585f71e6fad72c880ed157da95f92": { + "lastPaidHeight": 2129397 + } + }, + { + "bfb20edc24fd9d5243c6182651f7ac8a5c19f21013f50e159bf30b9074ea297c": { + "lastPaidHeight": 2129022 + } + }, + { + "4c84f01e1a07d0b91bfdfebcce89e1a06b48673723615134c034dd2d9bf00853": { + "lastPaidHeight": 2129303 + } + }, + { + "bb20e0bc59ba68525a340dbb8095458b08e8179ae648d7219b24eec28c7fa694": { + "lastPaidHeight": 2129338 + } + }, + { + "b61e02cc18da85a1fe78d13788377ab7e4493dc279f0119ec554abec506650dc": { + "lastPaidHeight": 2129339 + } + }, + { + "e6e2c5bb8056c3bd170b1c7801d590b1ef26d497fffbe103e6ee8136aece8873": { + "lastPaidHeight": 2129362 + } + }, + { + "0ae5804e7ce572b46769724e13e840d7e60cd2cd2860a19bdfecfef52f74c0d7": { + "lastPaidHeight": 2128928 + } + }, + { + "4240cfd375e322ba6fa22f2a7ec03f7ce90ae12cf00da38a5e8e185d4daa4f56": { + "lastPaidHeight": 2129367 + } + }, + { + "d0cb1e7b8a516e302affabeb234a3864890e4e22b39fc872d6861252d6f2ecd6": { + "lastPaidHeight": 2129085 + } + }, + { + "94a02bd4ea7208534ef41d9900b19946832fb47faf8728918ae4e603e99e3597": { + "lastPaidHeight": 2129166 + } + }, + { + "49f18efbf5d19809e697d4c726d56b1a5a4568f6ec073168eb05a1407919c613": { + "lastPaidHeight": 2129308 + } + }, + { + "cc54edc875aae7158e27f433ad8c9766678b5d1e94630fc502634822539048d4": { + "lastPaidHeight": 2129277 + } + }, + { + "113ff81c88decba3dddbec1e5fcb33501fdb2aaec807a8cadc0ea021d5a98a53": { + "lastPaidHeight": 2129386 + } + }, + { + "7a706bf63a69002e1c2220bc3ffefd8c6c45d8e89cc47be45e13cbc243389253": { + "lastPaidHeight": 2129123 + } + }, + { + "03e1998fbb531bc064d2b65fac261c8b4df62e52daa26933ee2ad0d69d1a27c4": { + "lastPaidHeight": 2129037 + } + }, + { + "531c4a13291a40fdd7396675700e5c2cf80e30746e4efb4595d9abb1c0ad9673": { + "lastPaidHeight": 2129292 + } + }, + { + "b78662a8ed4823a26f4843cd9a335e3fa533bef8fb3d44ded5042c146cca3133": { + "lastPaidHeight": 2129258 + } + }, + { + "10a9953f64e22fe4f94b56abe61fe7ea815da71e1029984248ab48f219be3b13": { + "lastPaidHeight": 2129028 + } + }, + { + "092828edc081d3ba1a54f043259b941368f2c718881b06a9d347883b21bfe313": { + "lastPaidHeight": 2129130 + } + }, + { + "4eba7299acd923212f9ff9faefda1c8268ff2366faf4099cc36fd0db403703b3": { + "lastPaidHeight": 2128932, + "PoSePenalty": 2285 + } + }, + { + "960808f4a34e174db4aeb5942eb271c241c367449f37668587c28c235c9f13f3": { + "lastPaidHeight": 2129382 + } + }, + { + "f4136740bdb8308ff334941e83a9e32aa305b0f7d8debd6cc9107dcf10256454": { + "lastPaidHeight": 2128897 + } + }, + { + "fb304b4b04fc039c7de928f6fbf9ab8486e53a3ba392b56b746d6ddbc74d19f4": { + "lastPaidHeight": 2129090 + } + }, + { + "613bc1d39b2d5796b5141cdc47293a3806c08c44e6faadd20a72a0bc9e805d3b": { + "lastPaidHeight": 2129254 + } + }, + { + "bd117be08f77246d417ef12504eef539f728409f5b4bc55a6444424e81d7a214": { + "lastPaidHeight": 2129284 + } + }, + { + "0f142865a9ba76c424d16a3c76de5d486228746e6171d59263f1593c6d9b0ecb": { + "lastPaidHeight": 2129106 + } + }, + { + "7c36131c1d034cc1344481b1a8ee246040259b22ba73c1da759bfc63e3f065b3": { + "lastPaidHeight": 2129369 + } + }, + { + "eae6ac386bab3b6963f9f6ec18253661bc0cb0088c61297ec1c6cfd01c2f68d5": { + "lastPaidHeight": 2129229 + } + }, + { + "8ef71d8296c6e5166adf6dd8893ffc02f9194a1e572dcc1bd9e3528b2e2081ba": { + "PoSeRevivedHeight": 2129022 + } + }, + { + "b99abd7aae10472ba78ae6082fd9874c77580c800e9fbe94419e8f80c1f0844c": { + "lastPaidHeight": 2129067 + } + }, + { + "b86f9ae4178a3425abb8053a40e1eb138b2a68b466ba2b3bd04167060cd5c1b5": { + "lastPaidHeight": 2128940 + } + }, + { + "a03171d0ef160d54625f4674912ea1908e55b9ffaef337d2d586707dc47cddb5": { + "lastPaidHeight": 2128974 + } + }, + { + "035d2fa64db2b9a59aa90445dc84499e4911fc75b382a9b83682a5e8cbba6a15": { + "PoSePenalty": 570 + } + }, + { + "4c75decaf4d0ccd5a0b823a650d9efee875636c52039c5d3d3d8ddb3b091d456": { + "lastPaidHeight": 2129136 + } + }, + { + "1e1e5d5882bda6998268e2860ff740a7e38e4872c8e059ce716d744b4a47a347": { + "lastPaidHeight": 2129092 + } + }, + { + "0cc3a17dc9e832a415ef08fb3673bda84a5e6a3265b9777682da22fc89c17476": { + "lastPaidHeight": 2128916 + } + }, + { + "9878f0e05a8fad988295a2fa2a4baf6ddfd8623e7c4e5ca2daf33ee387d37876": { + "lastPaidHeight": 2129125 + } + }, + { + "01c1241272fec89bbe3048676692d691c1e2149ebba1a55bb06392290a81a901": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129334, + "PoSeBanHeight": -1 + } + }, + { + "af5125d0767fc9da5c364c06eae870869450784783eaeb9bd72a05ec06072496": { + "lastPaidHeight": 2129343 + } + }, + { + "110d16a7e4f4eddb9097cd8071455e96a3143293e6734227184e97895ebf98d6": { + "lastPaidHeight": 2129103 + } + }, + { + "00ae93fc9706943eb22c2f31d21b0ebc807e2f36587d097abba66579ab2b0633": { + "lastPaidHeight": 2129114 + } + }, + { + "b8672a723469945955dc2b9caae749dba10c657b4634f47a8bda0ade27e42576": { + "lastPaidHeight": 2128918 + } + }, + { + "7a1218e508c1e6d029b8c48d2b203b83ab56078069dd839196cafb419d89add6": { + "lastPaidHeight": 2129009 + } + }, + { + "ab34565beb2403f75886a0ebab118e8265e78790f288c28727826e2a950e8ff6": { + "lastPaidHeight": 2129002 + } + }, + { + "15e9b286ff76a27491ef3533da8f8a63571fd5e997c5ffcb651545bedf6fa437": { + "lastPaidHeight": 2129167 + } + }, + { + "abed77f325805906085a9d473910073a1e709708e9626a022aa8c82e52eb88d7": { + "PoSePenalty": 2245 + } + }, + { + "5366fffe3b3f93c7959e9503c18132dbd7ee2658311303a297abbb878a0b8157": { + "lastPaidHeight": 2129341 + } + }, + { + "5f6e679df5d08adb3c3f2dc2ca073d23ac4e1654168472094dfba9e196af0597": { + "lastPaidHeight": 2129121 + } + }, + { + "5731fa3be25c0c144325178ab3a862e2b75f74fe5425450cc5ceccddbc2fa54f": { + "lastPaidHeight": 2129412 + } + }, + { + "c4a15fde0759164e7de20c8afdf60cf0ff0f885ce63b6810e35240501a098997": { + "PoSePenalty": 1958 + } + }, + { + "cdcc5f9c69617aa36f888c3b38d29759e554ebef811440bd2e14afd4db96d617": { + "lastPaidHeight": 2128900 + } + }, + { + "f786503fc35a859528fcabb73679d7cd56b62d5585830176ed1ba19251bb9277": { + "lastPaidHeight": 2129377 + } + }, + { + "bf86442200d72693d7f1e6bf5fac0325d45fc652bbdbc3be66da142164eecc5f": { + "PoSePenalty": 1383 + } + }, + { + "1f3f0835685420e6c655a1681b5fd95c93ddc9702b1c0390d1613ac6cc00b5ae": { + "lastPaidHeight": 2129291 + } + }, + { + "e61116b8a6c81ff73c41ce33776a93a5f0f711e847899ea761e1e326729dded7": { + "lastPaidHeight": 2129046 + } + }, + { + "a06379b62ca055d9c36a604163e71719dc589e8ebe58fe9b38768b8c09de6679": { + "lastPaidHeight": 2128984 + } + }, + { + "e9883af43902d4d952eb276fc0f87655e08cb35fe8ab837dd4ee9f7b35c9d630": { + "PoSePenalty": 1153 + } + }, + { + "880551e949445ed5429ab456318a8b729a0142303185552a9568e1643d3af89a": { + "lastPaidHeight": 2129411 + } + }, + { + "a54d925c699f8cffa316ddcc0ab8da595df8eb4bb5d48c355873744582abc249": { + "lastPaidHeight": 2129043 + } + }, + { + "0df1bbe80e534d132b8a1dca6d83889c1f61de4456c336194941e069dab73317": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2128996, + "PoSeBanHeight": -1 + } + }, + { + "deadac5e0d1bea2bfc8aca4a18d8ad7e404d5b82ecf39daf69e180276a6328df": { + "lastPaidHeight": 2129435 + } + }, + { + "defcc6fa2a16a5b273799e7ab05a141647b676e34b88d2dc2b88fd94cae3bb57": { + "lastPaidHeight": 2128917 + } + }, + { + "aa2682688e884d04d8263d58d438e893e1802f78745951a105b5639fef552c9c": { + "lastPaidHeight": 2129057 + } + }, + { + "a524b4bcd75cb884988feda4231f8d905ba82d6dd474b783eb2d9e379e032cfa": { + "PoSePenalty": 3726, + "PoSeBanHeight": 2129226 + } + }, + { + "ddca837fad6ab9b8ffd014f2253e1a072ca8970a38f4146289f05078f7f41bf7": { + "lastPaidHeight": 2129223 + } + }, + { + "0501e3918f79d40c32dd1e9c9726efac176744c9170e05a619b6e8239a934566": { + "lastPaidHeight": 2129273 + } + }, + { + "d0c0586325d3078daf65c44737ece83f7ea96322856378ee994d9b31e1d23c38": { + "lastPaidHeight": 2128912 + } + }, + { + "571e3eefc4be8d0442e29ae6229d3d9e5e3077daa0753a98ed96c4fd1491819b": { + "lastPaidHeight": 2129191 + } + }, + { + "712069571b9410c039b94c4feb2d5b5004c1864af071090673d73c27da84a098": { + "lastPaidHeight": 2129331 + } + }, + { + "b4429f77d4fde0932405d2fb72ef37ae0c014814c50a16bde2a7cee6cf1488b8": { + "lastPaidHeight": 2128913 + } + }, + { + "f1616a597eac912c0db8b4696ec11b2c004a421d77a4ff599f6b13654f5a88f8": { + "PoSePenalty": 1186 + } + }, + { + "502c2eb07cc483a7770f6bfb7fe89509e3d41d001ea755cdb384ac9279ca3db8": { + "lastPaidHeight": 2129178 + } + }, + { + "108448bfd2babed6b9c25622760e60c6b2c5cfd17f590658b86ff7c919def378": { + "lastPaidHeight": 2129236 + } + }, + { + "2d461ee1e601f40f93368219ad81f7d7a5702566fca2f6dc4093371876567ff9": { + "lastPaidHeight": 2129401 + } + }, + { + "8b9d978daec0d2249cb88e42426325f3dc36d01dd6fadf8c146f97d5f6bd5f5b": { + "lastPaidHeight": 2129099 + } + }, + { + "056178378002cd44847b470d0c6409ef369354dbaca6cf7c0e763f5be287f459": { + "lastPaidHeight": 2129010 + } + }, + { + "47d8e41410e9f50938f6b277c64890a8ae8e8ba839fab8bdf085a2c1a02c3d19": { + "lastPaidHeight": 2129438 + } + }, + { + "de67171e5d781f5018267f196bd62e4efc36f6d7d9356e3732322194555be799": { + "lastPaidHeight": 2129127 + } + }, + { + "f8e56f8f47b030f8a5417e690c977a04035f3a94ad7d50c60ba51f8165fc8bf9": { + "lastPaidHeight": 2129266 + } + }, + { + "a3327c6f3a5df5eae1611e6ef1b79dcd3509ce6f2b896ef62efbfca9fe820c3a": { + "lastPaidHeight": 2129174 + } + }, + { + "c0f14f9861c9825452638be0398b3b190a294c2e4d6555a5bf6099556f4b65fc": { + "PoSePenalty": 0, + "PoSeRevivedHeight": 2129232, + "PoSeBanHeight": -1 + } + }, + { + "3abf36f38c98bc8c5a6c7b849ca53b7a84fd1720132ea582f28cfe9a8093a8ba": { + "lastPaidHeight": 2129035 + } + }, + { + "692dfb82cf41d175f3968fa9ca84a95c2220f40ed40a9a9e3de40154737cbd3a": { + "lastPaidHeight": 2129078 + } + }, + { + "a8ae7439851693326fe88f80426fe350384fd89287c522089977758e0ea3af0e": { + "lastPaidHeight": 2129203 + } + }, + { + "444d54ade2f06d72dffcad1108d2e130ef1dd31398baeccd25c9454704e3753a": { + "lastPaidHeight": 2129190 + } + }, + { + "6a19aeb470921a85b70539f9b58dd2f9d523778bbea1dacbc22443b0af3f855a": { + "PoSePenalty": 0 + } + }, + { + "9c1a949fae0c9fa3d402b7fcaf4dfd8ab7c303df6c07b8789b161f4894fb3dda": { + "lastPaidHeight": 2129019 + } + }, + { + "5706437cb5ad24bea98e2c6bd5c0c0e3690b2dc2017c4e9b1d56f773e16cbada": { + "lastPaidHeight": 2129345 + } + }, + { + "7cf1f341487e3173dd1b43af326e58cad617a6f4e6a0ac771870865d447876da": { + "lastPaidHeight": 2129337 + } + }, + { + "093c7924743d735ba2f73d6c0dada30babadd8d083fd35106ab31561f850d31a": { + "PoSePenalty": 1376 + } + }, + { + "600c8240fa9b2d7809df2efbb020952c07dc235f280ebd9525dc8b96e38780db": { + "lastPaidHeight": 2129241 + } + }, + { + "6f58d3df274246328dc22a55c6352bc399e7650cd1ab14c349de7300966788db": { + "lastPaidHeight": 2128999 + } + }, + { + "9b6a42efb2f4ed0bd06e62dcea6ac37eced1e3caf5a4a822b2fce7582efa845e": { + "lastPaidHeight": 2129418, + "PoSePenalty": 1669 + } + }, + { + "55fa0fd8647d6a77a9f0be842650664c6cb9aaa7d6958fccc09eeff9fb8ccd5b": { + "lastPaidHeight": 2129399 + } + }, + { + "9455cb290c9c1c53876b815485b359ccb94bf583169569e7eceda09d4af69c5c": { + "PoSePenalty": 3724, + "PoSeBanHeight": 2129226 + } + }, + { + "e152d2588be71911edea0d308e787e7e19330f888fa9c75f3290bb48c6d03a1c": { + "lastPaidHeight": 2129391 + } + }, + { + "d5af49f10e748f9752e6f5205a0dbcf2b16c6ec79a5cf4947477042f94e88d7b": { + "lastPaidHeight": 2129049 + } + }, + { + "068f02cd536e8aa88679330b68095ad7ea80504597034934a538afa12d74ee1b": { + "lastPaidHeight": 2129120 + } + }, + { + "85266320c071261f5354ee982196c8b523d19ac44d9f7d4e886db475e0b11f7b": { + "lastPaidHeight": 2129267 + } + }, + { + "9661cea56646843ddedf8cc0d99337877bb5456fe6d59a47ee51ecce9a51f01c": { + "lastPaidHeight": 2129096 + } + }, + { + "222abaf161a1698842b521056f950149c18fefe09f3bf71e1b230800b30b8974": { + "lastPaidHeight": 2129124 + } + }, + { + "7cf22b643695657d3d9adc10d105046036822477d630ca4c60cf92afaf09209c": { + "lastPaidHeight": 2129059 + } + }, + { + "1a7f988e2a277b78d80f8e02557fa42d171228528614ace74cc9cd42c62a84dc": { + "lastPaidHeight": 2129346 + } + }, + { + "6c50b2d79aecadb3925657b5b16d4ff8db8946b7a30ad3086b723cce65a278fc": { + "lastPaidHeight": 2128966 + } + }, + { + "b100a91cb9500ac9eeeaf95e7b63ff8af34cfe7023cded447a4417ebdcc31b9c": { + "lastPaidHeight": 2129140 + } + }, + { + "6ce438752f0e2983efb1b940f63b8633d03ad28c06f8b26888b7090f2e084d1c": { + "lastPaidHeight": 2129355 + } + }, + { + "e9aa3e868d01afb7b8051ca40d3941c46b076f6dda9bf3560a2af6657bbd65dc": { + "lastPaidHeight": 2128997 + } + }, + { + "08e7ef5559ebd0765772f3c97b37ebb0a1bc1edbb6aab48c9dfb50ac5b97c8f7": { + "lastPaidHeight": 2129375 + } + }, + { + "37a4bf11436043b691deeb394098824a3dc845f2d2cd0f8bc7ed858e7c1f31fc": { + "lastPaidHeight": 2129214 + } + }, + { + "aeb6dd0a9d21b5886edfd062caf2c064189dbe65981e0e774b4550cf4c383b7e": { + "PoSePenalty": 0 + } + }, + { + "ef123c64acce15bd8871074d7b1912d427d713db0706825a533fd7a4829fc61c": { + "lastPaidHeight": 2129407 + } + }, + { + "e59af9f5b45fbb1c365f8ab074062705711ea9c3a0c66e6dac7612850c43015d": { + "lastPaidHeight": 2129147 + } + }, + { + "3bceb972e8f224dce72c2aed5440a1afdc34abc75bd1b559a7fc023961d3e61c": { + "lastPaidHeight": 2129359 + } + } + ] +} diff --git a/packages/rs-drive-proof-verifier/Cargo.toml b/packages/rs-drive-proof-verifier/Cargo.toml index b7ffc0569f..6493e4eff2 100644 --- a/packages/rs-drive-proof-verifier/Cargo.toml +++ b/packages/rs-drive-proof-verifier/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "drive-proof-verifier" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true @@ -19,7 +19,7 @@ mocks = [ [dependencies] -thiserror = { version = "1.0.59" } +thiserror = { version = "1.0.63" } dapi-grpc = { path = "../dapi-grpc" } drive = { path = "../rs-drive", default-features = false, features = [ "verify", @@ -28,11 +28,12 @@ dpp = { path = "../rs-dpp", features = [ "bls-signatures", "document-value-conversion", "extended-document", + "core-types-serialization", ], default-features = false } bincode = { version = "2.0.0-rc.3", features = ["serde"], optional = true } platform-serialization-derive = { path = "../rs-platform-serialization-derive", optional = true } platform-serialization = { path = "../rs-platform-serialization", optional = true } -tenderdash-abci = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.1.0", tag = "v1.1.0", features = [ +tenderdash-abci = { git = "https://github.com/dashpay/rs-tenderdash-abci", version = "1.2.0+1.3.0", tag = "v1.2.0+1.3.0", features = [ "crypto", ], default-features = false } tracing = { version = "0.1.37" } diff --git a/packages/rs-drive-proof-verifier/src/from_request.rs b/packages/rs-drive-proof-verifier/src/from_request.rs index ff2a74de36..4c6c4e6981 100644 --- a/packages/rs-drive-proof-verifier/src/from_request.rs +++ b/packages/rs-drive-proof-verifier/src/from_request.rs @@ -71,6 +71,12 @@ impl TryFromRequest DriveResultType::Documents => GrpcResultType::Documents, DriveResultType::DocumentsAndVoteTally => GrpcResultType::DocumentsAndVoteTally, DriveResultType::VoteTally => GrpcResultType::VoteTally, + DriveResultType::SingleDocumentByContender(_) => { + return Err(Error::RequestError { + error: "can not perform a single document by contender query remotely" + .to_string(), + }) + } }) } } @@ -146,6 +152,9 @@ impl TryFromRequest for ContestedDocumentV ContestedDocumentVotePollDriveQueryResultType::Documents => GrpcResultType::Documents.into(), ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => GrpcResultType::DocumentsAndVoteTally.into(), ContestedDocumentVotePollDriveQueryResultType::VoteTally => GrpcResultType::VoteTally.into(), + ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => return Err(Error::RequestError { + error: "can not perform a single document by contender query remotely".to_string(), + }), }, start_at_identifier_info, allow_include_locked_and_abstaining_vote_tally: self.allow_include_locked_and_abstaining_vote_tally, @@ -200,7 +209,7 @@ impl TryFromRequest } Ok(proto::get_contested_resource_identity_votes_request::GetContestedResourceIdentityVotesRequestV0 { - prove: true, + prove: true, identity_id: self.identity_id.to_vec(), offset: self.offset.map(|x| x as u32), limit: self.limit.map(|x| x as u32), diff --git a/packages/rs-drive-proof-verifier/src/lib.rs b/packages/rs-drive-proof-verifier/src/lib.rs index 7e28b6691f..dfa6e41443 100644 --- a/packages/rs-drive-proof-verifier/src/lib.rs +++ b/packages/rs-drive-proof-verifier/src/lib.rs @@ -13,7 +13,10 @@ pub use proof::{FromProof, Length}; #[cfg(feature = "mocks")] pub use provider::MockContextProvider; pub use provider::{ContextProvider, DataContractProvider}; +/// From Request pub mod from_request; +/// Implementation of unproved verification +pub mod unproved; // Needed for #[derive(PlatformSerialize, PlatformDeserialize)] #[cfg(feature = "mocks")] diff --git a/packages/rs-drive-proof-verifier/src/proof.rs b/packages/rs-drive-proof-verifier/src/proof.rs index de46f75a1e..89fef81360 100644 --- a/packages/rs-drive-proof-verifier/src/proof.rs +++ b/packages/rs-drive-proof-verifier/src/proof.rs @@ -2,6 +2,7 @@ use crate::from_request::TryFromRequest; use crate::provider::DataContractProvider; use crate::verify::verify_tenderdash_proof; use crate::{types, types::*, ContextProvider, Error}; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_range_request::get_evonodes_proposed_epoch_blocks_by_range_request_v0::Start; use dapi_grpc::platform::v0::get_identities_contract_keys_request::GetIdentitiesContractKeysRequestV0; use dapi_grpc::platform::v0::get_path_elements_request::GetPathElementsRequestV0; use dapi_grpc::platform::v0::get_protocol_version_upgrade_vote_status_request::{ @@ -9,16 +10,7 @@ use dapi_grpc::platform::v0::get_protocol_version_upgrade_vote_status_request::{ }; use dapi_grpc::platform::v0::security_level_map::KeyKindRequestType as GrpcKeyKind; use dapi_grpc::platform::v0::{ - get_contested_resource_identity_votes_request, get_data_contract_history_request, - get_data_contract_request, get_data_contracts_request, get_epochs_info_request, - get_identities_contract_keys_request, get_identity_balance_and_revision_request, - get_identity_balance_request, get_identity_by_public_key_hash_request, - get_identity_contract_nonce_request, get_identity_keys_request, get_identity_nonce_request, - get_identity_request, get_path_elements_request, get_prefunded_specialized_balance_request, - GetContestedResourceVotersForIdentityRequest, GetContestedResourceVotersForIdentityResponse, - GetPathElementsRequest, GetPathElementsResponse, GetProtocolVersionUpgradeStateRequest, - GetProtocolVersionUpgradeStateResponse, GetProtocolVersionUpgradeVoteStatusRequest, - GetProtocolVersionUpgradeVoteStatusResponse, Proof, ResponseMetadata, + get_contested_resource_identity_votes_request, get_data_contract_history_request, get_data_contract_request, get_data_contracts_request, get_epochs_info_request, get_evonodes_proposed_epoch_blocks_by_ids_request, get_evonodes_proposed_epoch_blocks_by_range_request, get_identities_balances_request, get_identities_contract_keys_request, get_identity_balance_and_revision_request, get_identity_balance_request, get_identity_by_public_key_hash_request, get_identity_contract_nonce_request, get_identity_keys_request, get_identity_nonce_request, get_identity_request, get_path_elements_request, get_prefunded_specialized_balance_request, GetContestedResourceVotersForIdentityRequest, GetContestedResourceVotersForIdentityResponse, GetPathElementsRequest, GetPathElementsResponse, GetProtocolVersionUpgradeStateRequest, GetProtocolVersionUpgradeStateResponse, GetProtocolVersionUpgradeVoteStatusRequest, GetProtocolVersionUpgradeVoteStatusResponse, Proof, ResponseMetadata }; use dapi_grpc::platform::{ v0::{self as platform, key_request_type, KeyRequestType as GrpcKeyType}, @@ -46,6 +38,7 @@ use drive::drive::identity::key::fetch::{ use drive::drive::Drive; use drive::error::proof::ProofError; use drive::query::contested_resource_votes_given_by_identity_query::ContestedResourceVotesGivenByIdentityQuery; +use drive::query::proposer_block_count_query::ProposerQueryType; use drive::query::vote_poll_contestant_votes_query::ContestedDocumentVotePollVotesDriveQuery; use drive::query::vote_poll_vote_state_query::ContestedDocumentVotePollDriveQuery; use drive::query::vote_polls_by_document_type_query::VotePollsByDocumentTypeQuery; @@ -87,7 +80,7 @@ pub trait FromProof { /// /// * `Ok(Some(object, metadata))` when the requested object was found in the proof. /// * `Ok(None)` when the requested object was not found in the proof; this can be interpreted as proof of non-existence. - /// For collections, returns Ok(None) if none of the requested objects were found. + /// For collections, returns Ok(None) if none of the requested objects were found. /// * `Err(Error)` when either the provided data is invalid or proof validation failed. fn maybe_from_proof<'a, I: Into, O: Into>( request: I, @@ -117,7 +110,7 @@ pub trait FromProof { /// /// * `Ok(Some((object, metadata)))` when the requested object was found in the proof. /// * `Ok(None)` when the requested object was not found in the proof; this can be interpreted as proof of non-existence. - /// For collections, returns Ok(None) if none of the requested objects were found. + /// For collections, returns Ok(None) if none of the requested objects were found. /// * `Err(Error)` when either the provided data is invalid or proof validation failed. fn maybe_from_proof_with_metadata<'a, I: Into, O: Into>( request: I, @@ -318,7 +311,7 @@ impl FromProof for Identity { v0.public_key_hash .try_into() .map_err(|_| Error::DriveError { - error: "Ivalid public key hash length".to_string(), + error: "Invalid public key hash length".to_string(), })?; public_key_hash } @@ -377,33 +370,13 @@ impl FromProof for IdentityPublicKeys { } }; - let key_request = match parse_key_request_type(&request_type)? { - KeyRequestType::SpecificKeys(specific_keys) => { - IdentityKeysRequest::new_specific_keys_query(&identity_id, specific_keys) - } - KeyRequestType::AllKeys => IdentityKeysRequest::new_all_keys_query(&identity_id, None), - KeyRequestType::SearchKey(criteria) => IdentityKeysRequest { - identity_id, - request_type: KeyRequestType::SearchKey(criteria), - limit, - offset, - }, - KeyRequestType::ContractBoundKey(id, purpose, kind) => IdentityKeysRequest { - identity_id, - request_type: KeyRequestType::ContractBoundKey(id, purpose, kind), - limit, - offset, - }, - KeyRequestType::ContractDocumentTypeBoundKey(id, s, purpose, kind) => { - IdentityKeysRequest { - identity_id, - request_type: KeyRequestType::ContractDocumentTypeBoundKey( - id, s, purpose, kind, - ), - limit, - offset, - } - } + let request_type = parse_key_request_type(&request_type)?; + + let key_request = IdentityKeysRequest { + identity_id, + request_type, + limit, + offset, }; tracing::debug!(?identity_id, "checking proof of identity keys"); @@ -663,6 +636,57 @@ impl FromProof for IdentityBalance { } } +impl FromProof for IdentityBalances { + type Request = platform::GetIdentitiesBalancesRequest; + type Response = platform::GetIdentitiesBalancesResponse; + + fn maybe_from_proof_with_metadata<'a, I: Into, O: Into>( + request: I, + response: O, + _network: Network, + platform_version: &PlatformVersion, + provider: &'a dyn ContextProvider, + ) -> Result<(Option, ResponseMetadata, Proof), Error> + where + IdentityBalances: 'a, + { + let request: Self::Request = request.into(); + let response: Self::Response = response.into(); + // Parse response to read proof and metadata + let proof = response.proof().or(Err(Error::NoProofInResult))?; + + let mtd = response.metadata().or(Err(Error::EmptyResponseMetadata))?; + + let identities_ids = match request.version.ok_or(Error::EmptyVersion)? { + get_identities_balances_request::Version::V0(v0) => v0.ids, + }; + + let identity_ids = identities_ids + .into_iter() + .map(|identity_bytes| { + Identifier::from_bytes(&identity_bytes) + .map(|identifier| identifier.into_buffer()) + .map_err(|e| Error::RequestError { + error: format!("identities must be all 32 bytes {}", e), + }) + }) + .collect::, Error>>()?; + let (root_hash, balances) = Drive::verify_identity_balances_for_identity_ids( + &proof.grovedb_proof, + false, + &identity_ids, + platform_version, + ) + .map_err(|e| Error::DriveError { + error: e.to_string(), + })?; + + verify_tenderdash_proof(proof, mtd, &root_hash, provider)?; + + Ok((Some(balances), mtd.clone(), proof.clone())) + } +} + impl FromProof for IdentityBalanceAndRevision { type Request = platform::GetIdentityBalanceAndRevisionRequest; type Response = platform::GetIdentityBalanceAndRevisionResponse; @@ -1406,6 +1430,7 @@ impl FromProof for Contenders { .collect(); let response = Contenders { + winner: contested_resource_vote_state.winner, contenders, abstain_vote_tally: contested_resource_vote_state.abstaining_vote_tally, lock_vote_tally: contested_resource_vote_state.locked_vote_tally, @@ -1691,6 +1716,117 @@ impl FromProof for TotalCreditsInPla )) } } +impl FromProof for ProposerBlockCounts { + type Request = platform::GetEvonodesProposedEpochBlocksByIdsRequest; + type Response = platform::GetEvonodesProposedEpochBlocksResponse; + + fn maybe_from_proof_with_metadata<'a, I: Into, O: Into>( + request: I, + response: O, + _network: Network, + platform_version: &PlatformVersion, + provider: &'a dyn ContextProvider, + ) -> Result<(Option, ResponseMetadata, Proof), Error> + where + Self: Sized + 'a, + { + let request: Self::Request = request.into(); + let response: Self::Response = response.into(); + // Parse response to read proof and metadata + let proof = response.proof().or(Err(Error::NoProofInResult))?; + let mtd = response.metadata().or(Err(Error::EmptyResponseMetadata))?; + + let (ids, epoch) = match request.version.ok_or(Error::EmptyVersion)? { + get_evonodes_proposed_epoch_blocks_by_ids_request::Version::V0(v0) => { + (v0.ids, v0.epoch) + } + }; + + let (root_hash, proposer_block_counts) = Drive::verify_epoch_proposers( + &proof.grovedb_proof, + epoch + .map(|epoch_index| epoch_index as u16) + .unwrap_or_else(|| mtd.epoch as u16), + ProposerQueryType::ByIds(ids), + platform_version, + ) + .map_err(|e| Error::DriveError { + error: e.to_string(), + })?; + + verify_tenderdash_proof(proof, mtd, &root_hash, provider)?; + + Ok(( + Some(ProposerBlockCounts(proposer_block_counts)), + mtd.clone(), + proof.clone(), + )) + } +} + +impl FromProof for ProposerBlockCounts { + type Request = platform::GetEvonodesProposedEpochBlocksByRangeRequest; + type Response = platform::GetEvonodesProposedEpochBlocksResponse; + + fn maybe_from_proof_with_metadata<'a, I: Into, O: Into>( + request: I, + response: O, + _network: Network, + platform_version: &PlatformVersion, + provider: &'a dyn ContextProvider, + ) -> Result<(Option, ResponseMetadata, Proof), Error> + where + Self: Sized + 'a, + { + let request: Self::Request = request.into(); + let response: Self::Response = response.into(); + // Parse response to read proof and metadata + let proof = response.proof().or(Err(Error::NoProofInResult))?; + let mtd = response.metadata().or(Err(Error::EmptyResponseMetadata))?; + + let (epoch, limit, start) = match request.version.ok_or(Error::EmptyVersion)? { + get_evonodes_proposed_epoch_blocks_by_range_request::Version::V0(v0) => { + (v0.epoch, v0.limit, v0.start) + } + }; + + let formatted_start = match start { + None => None, + Some(Start::StartAfter(after)) => { + let id: [u8; 32] = after.try_into().map_err(|_| Error::DriveError { + error: "Invalid public key hash length".to_string(), + })?; + Some((id, false)) + } + Some(Start::StartAt(at)) => { + let id: [u8; 32] = at.try_into().map_err(|_| Error::DriveError { + error: "Invalid public key hash length".to_string(), + })?; + Some((id, true)) + } + }; + + let (root_hash, proposer_block_counts) = Drive::verify_epoch_proposers( + &proof.grovedb_proof, + epoch + .map(|epoch_index| epoch_index as u16) + .unwrap_or_else(|| mtd.epoch as u16), + ProposerQueryType::ByRange(limit.map(|l| l as u16), formatted_start), + platform_version, + ) + .map_err(|e| Error::DriveError { + error: e.to_string(), + })?; + + verify_tenderdash_proof(proof, mtd, &root_hash, provider)?; + + Ok(( + Some(ProposerBlockCounts(proposer_block_counts)), + mtd.clone(), + proof.clone(), + )) + } +} /// Convert u32, if 0 return None, otherwise return Some(u16). /// Errors when value is out of range. diff --git a/packages/rs-drive-proof-verifier/src/types.rs b/packages/rs-drive-proof-verifier/src/types.rs index f417d12979..d49301720b 100644 --- a/packages/rs-drive-proof-verifier/src/types.rs +++ b/packages/rs-drive-proof-verifier/src/types.rs @@ -5,6 +5,10 @@ //! In this case, the [FromProof](crate::FromProof) trait is implemented for dedicated object type //! defined in this module. +mod evonode_status; + +use dpp::block::block_info::BlockInfo; +use dpp::core_types::validator_set::ValidatorSet; use dpp::data_contract::document_type::DocumentType; use dpp::fee::Credits; use dpp::platform_value::Value; @@ -13,6 +17,7 @@ use dpp::version::PlatformVersion; pub use dpp::version::ProtocolVersionVoteCount; use dpp::voting::contender_structs::{Contender, ContenderWithSerializedDocument}; use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo; use dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll; use dpp::voting::vote_polls::VotePoll; use dpp::voting::votes::resource_vote::ResourceVote; @@ -24,10 +29,10 @@ use dpp::{ prelude::{DataContract, Identifier, IdentityPublicKey, Revision}, util::deserializer::ProtocolVersion, }; +use drive::grovedb::query_result_type::Path; use drive::grovedb::Element; use std::collections::{BTreeMap, BTreeSet}; -use drive::grovedb::query_result_type::Path; #[cfg(feature = "mocks")] use { bincode::{Decode, Encode}, @@ -36,6 +41,8 @@ use { platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}, }; +pub use evonode_status::*; + /// A data structure that holds a set of objects of a generic type `O`, indexed by a key of type `K`. /// /// This type is typically returned by functions that operate on multiple objects, such as fetching multiple objects @@ -52,6 +59,22 @@ use { /// * `O`: The type of the objects in the map. pub type RetrievedObjects = BTreeMap>; +/// A data structure that holds a set of objects of a generic type `O`, indexed by a key of type `K`. +/// +/// This type is typically returned by functions that operate on multiple objects, such as fetching multiple objects +/// from a server using [`FetchMany`](dash_sdk::platform::FetchMany) or parsing a proof that contains multiple objects +/// using [`FromProof`](crate::FromProof). +/// +/// Each key in the `RetrievedObjects` corresponds to an object of generic type `O`. +/// If a value is found for a given key, the value is `value`. +/// If no value is found for a given key, the value is `0`. +/// +/// # Generic Type Parameters +/// +/// * `K`: The type of the keys in the map. +/// * `I`: The type of the integer in the map. +pub type RetrievedIntegerValue = BTreeMap; + /// History of a data contract. /// /// Contains a map of data contract revisions to data contracts. @@ -73,6 +96,8 @@ pub type DataContracts = RetrievedObjects; platform_serialize(unversioned) )] pub struct Contenders { + /// The winner if the contest is finished + pub winner: Option<(ContestedDocumentVotePollWinnerInfo, BlockInfo)>, /// Contenders indexed by their identity IDs. pub contenders: BTreeMap, /// Tally of abstain votes. @@ -107,6 +132,7 @@ impl FromIterator<(Identifier, Option)> for Con iter: T, ) -> Self { Self { + winner: None, contenders: BTreeMap::from_iter( iter.into_iter().filter_map(|(k, v)| v.map(|v| (k, v))), ), @@ -304,6 +330,74 @@ pub struct ContestedVote(ContestedDocumentResourceVotePoll, ResourceVoteChoice); /// Votes casted by some identity. pub type ResourceVotesByIdentity = RetrievedObjects; +/// Represents the current state of quorums in the platform. +/// +/// This struct holds various information related to the current quorums, +/// including the list of quorum hashes, the current active quorum hash, +/// and details about the validators and their statuses. +/// +/// # Fields +/// +/// - `quorum_hashes`: A list of 32-byte hashes representing the active quorums. +/// - `current_quorum_hash`: A 32-byte hash identifying the currently active quorum. +/// This is the quorum that is currently responsible for platform operations. +/// - `validator_sets`: A collection of [`ValidatorSet`] structs, each representing +/// a set of validators for different quorums. This provides detailed information +/// about the members of each quorum. +/// - `last_block_proposer`: A vector of bytes representing the identity of the last +/// block proposer. This is typically the ProTxHash of the masternode that proposed +/// the most recent platform block. +/// - `last_platform_block_height`: The height of the most recent platform block. +/// This indicates the latest block height at the platform level, which may differ +/// from the core blockchain height. +/// - `last_core_block_height`: The height of the most recent core blockchain block +/// associated with the platform. This is the height of the blockchain where the +/// platform block was anchored. +/// +/// # Derives +/// +/// - `Debug`: Provides a debug representation of the `CurrentQuorumsInfo` struct, useful +/// for logging and debugging purposes. +/// - `Clone`: Allows the `CurrentQuorumsInfo` struct to be cloned, creating a deep copy +/// of its contents. +/// +/// # Conditional Derives +/// +/// When the `mocks` feature is enabled, the following derives and attributes are applied: +/// +/// - `Encode`: Allows the struct to be serialized into a binary format using the `bincode` crate. +/// - `Decode`: Allows the struct to be deserialized from a binary format using the `bincode` crate. +/// - `PlatformSerialize`: Enables serialization of the struct using the platform-specific +/// serialization format. +/// - `PlatformDeserialize`: Enables deserialization of the struct using the platform-specific +/// deserialization format. +/// - `platform_serialize(unversioned)`: Specifies that the struct should be serialized +/// without including a version field in the serialized data. +/// +/// This structure is typically used in scenarios where the state of the current quorums +/// needs to be accessed, for example, when validating or proposing new blocks, or when +/// determining the active set of validators. +#[derive(Debug, Clone)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +pub struct CurrentQuorumsInfo { + /// A list of 32-byte hashes representing the active quorums. + pub quorum_hashes: Vec<[u8; 32]>, + /// A 32-byte hash identifying the currently active quorum. + pub current_quorum_hash: [u8; 32], + /// A collection of [`ValidatorSet`] structs, each representing a set of validators for different quorums. + pub validator_sets: Vec, + /// A vector of bytes representing the identity of the last block proposer. + pub last_block_proposer: [u8; 32], + /// The height of the most recent platform block. + pub last_platform_block_height: u64, + /// The height of the most recent core blockchain block associated with the platform. + pub last_core_block_height: u32, +} + /// Prefunded specialized balance. #[derive(Debug, derive_more::From, Copy, Clone)] #[cfg_attr( @@ -407,6 +501,9 @@ pub type IdentityPublicKeys = RetrievedObjects; /// Collection of documents. pub type Documents = RetrievedObjects; +/// Collection of balances. +pub type IdentityBalances = RetrievedObjects; + /// Collection of epoch information pub type ExtendedEpochInfos = RetrievedObjects; @@ -467,3 +564,56 @@ impl PlatformVersionedDecode for MasternodeProtocolVote { /// Information about protocol version voted by each node, returned by [ProtocolVersion::fetch_many()]. /// Indexed by [ProTxHash] of nodes. pub type MasternodeProtocolVotes = RetrievedObjects; + +/// Proposer block counts +/// +/// Mapping between proposers and the blocks they might have proposed +#[derive(Debug, Default)] +#[cfg_attr(feature = "mocks", derive(serde::Serialize, serde::Deserialize))] +pub struct ProposerBlockCounts(pub RetrievedIntegerValue); + +impl FromIterator<(ProTxHash, Option)> for ProposerBlockCounts { + fn from_iter)>>( + iter: I, + ) -> Self { + let map = iter + .into_iter() + .map(|(pro_tx_hash, proposer_block_count_by_range)| { + let block_count = proposer_block_count_by_range + .map_or(0, |proposer_block_count| proposer_block_count.0); + let identifier = Identifier::from(pro_tx_hash.to_byte_array()); // Adjust this conversion logic as needed + (identifier, block_count) + }) + .collect::>(); + + ProposerBlockCounts(map) + } +} + +impl FromIterator<(ProTxHash, Option)> for ProposerBlockCounts { + fn from_iter)>>( + iter: I, + ) -> Self { + let map = iter + .into_iter() + .map(|(pro_tx_hash, proposer_block_count_by_range)| { + let block_count = proposer_block_count_by_range + .map_or(0, |proposer_block_count| proposer_block_count.0); + let identifier = Identifier::from(pro_tx_hash.to_byte_array()); // Adjust this conversion logic as needed + (identifier, block_count) + }) + .collect::>(); + + ProposerBlockCounts(map) + } +} + +/// A block count struct +#[derive(Debug)] +#[cfg_attr(feature = "mocks", derive(serde::Serialize, serde::Deserialize))] +pub struct ProposerBlockCountByRange(pub u64); + +/// A block count struct +#[derive(Debug)] +#[cfg_attr(feature = "mocks", derive(serde::Serialize, serde::Deserialize))] +pub struct ProposerBlockCountById(pub u64); diff --git a/packages/rs-drive-proof-verifier/src/types/evonode_status.rs b/packages/rs-drive-proof-verifier/src/types/evonode_status.rs new file mode 100644 index 0000000000..87831de0f6 --- /dev/null +++ b/packages/rs-drive-proof-verifier/src/types/evonode_status.rs @@ -0,0 +1,382 @@ +//! Status details of EvoNode, like version, current height, etc. + +use crate::Error; +use dapi_grpc::platform::v0::{ + get_status_response::{self}, + GetStatusResponse, +}; + +#[cfg(feature = "mocks")] +use { + bincode::{Decode, Encode}, + dpp::{version as platform_version, ProtocolError}, + platform_serialization_derive::{PlatformDeserialize, PlatformSerialize}, +}; + +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// The status of an EvoNode. +pub struct EvoNodeStatus { + /// Information about protocol and software components versions. + pub version: Version, + /// Information about the node. + pub node: Node, + /// Layer 2 blockchain information + pub chain: Chain, + /// Node networking information. + pub network: Network, + /// Information about state synchronization progress. + pub state_sync: StateSync, + /// Information about current time used by the node. + pub time: Time, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] + +/// Information about protocol and software components versions. +pub struct Version { + /// Information about software components versions. + pub software: Option, + /// Information about protocol version. + pub protocol: Option, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// Information about software components versions. +pub struct Software { + /// DAPI version, semver-compatible string. + pub dapi: String, + /// Drive version, semver-compatible string. + pub drive: Option, + /// Tenderdash version, semver-compatible string. + pub tenderdash: Option, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// Information about protocol-level versions used by the node +pub struct Protocol { + /// Tenderdash protocols version. + pub tenderdash: Option, + /// Drive protocols version. + pub drive: Option, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// Tenderdash protocol versions. +pub struct TenderdashProtocol { + /// Tenderdash P2P protocol version. + pub p2p: u32, + /// Tenderdash block protocol version. + pub block: u32, +} + +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] + +/// Drive protocol versions. +pub struct DriveProtocol { + /// Latest version supported by the node. + pub latest: u32, + /// Current version used by the node. + pub current: u32, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] + +/// Information about current time used by the node. +pub struct Time { + /// Local time of the node. Unix timestamp since epoch. + pub local: u64, + /// Time of the last block. Unix timestamp since epoch. + pub block: Option, + /// Genesis time. Unix timestamp since epoch. + pub genesis: Option, + /// Epoch number + pub epoch: Option, +} + +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] + +/// Evo node identification information. +pub struct Node { + /// Node ID + pub id: Vec, + /// ProTxHash of masternode; None for full nodes + pub pro_tx_hash: Option>, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] + +/// Layer 2 blockchain information +pub struct Chain { + /// Whether the node is catching up with the network. + pub catching_up: bool, + /// Block hash of the latest block on the node. + pub latest_block_hash: Vec, + /// Latest app hash of the node, as visible in the latest block. + pub latest_app_hash: Vec, + /// Block hash of the earliest block available on the node. + pub earliest_block_hash: Vec, + /// Earliest app hash of the node, as visible in the earliest block. + pub earliest_app_hash: Vec, + /// Height of the latest block available on the node. + pub latest_block_height: u64, + /// Height of the earliest block available on the node. + pub earliest_block_height: u64, + /// Maximum block height of the peers connected to the node. + pub max_peer_block_height: u64, + /// Current core chain locked height. + pub core_chain_locked_height: Option, +} +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// Node networking information. +pub struct Network { + /// Identifier of chain the node is member of. + pub chain_id: String, + /// Number of peers in the address book. + pub peers_count: u32, + /// Whether the node is listening for incoming connections. + pub listening: bool, +} + +#[derive(Debug, Clone, Default)] +#[cfg_attr( + feature = "mocks", + derive(Encode, Decode, PlatformSerialize, PlatformDeserialize), + platform_serialize(unversioned) +)] +/// Information about state synchronization progress. +pub struct StateSync { + /// Total time spent on state synchronization. + pub total_synced_time: u64, + /// Estimated remaining time to finish state synchronization. + pub remaining_time: u64, + /// Total number of snapshots available. + pub total_snapshots: u32, + /// Average time spent on processing a chunk of snapshot data. + pub chunk_process_avg_time: u64, + /// Height of the latest snapshot. + pub snapshot_height: u64, + /// Number of chunks in the latest snapshot. + pub snapshot_chunks_count: u64, + /// Number of backfilled blocks. + pub backfilled_blocks: u64, + /// Total number of blocks to backfill. + pub backfill_blocks_total: u64, +} + +impl TryFrom for EvoNodeStatus { + type Error = Error; + + fn try_from(response: GetStatusResponse) -> Result { + Ok(Self { + version: Version::try_from(&response)?, + node: Node::try_from(&response)?, + chain: Chain::try_from(&response)?, + network: Network::try_from(&response)?, + state_sync: StateSync::try_from(&response)?, + time: Time::try_from(&response)?, + }) + } +} + +impl TryFrom<&GetStatusResponse> for Version { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let software = v0 + .version + .as_ref() + .and_then(|v| v.software.clone()) + .map(|s| Software { + dapi: s.dapi, + drive: s.drive, + tenderdash: s.tenderdash, + }); + + let protocol = v0 + .version + .as_ref() + .and_then(|v| v.protocol.clone()) + .map(|p| Protocol { + tenderdash: p.tenderdash.map(|t| TenderdashProtocol { + p2p: t.p2p, + block: t.block, + }), + drive: p.drive.map(|d| DriveProtocol { + latest: d.latest, + current: d.current, + }), + }); + + Ok(Self { software, protocol }) + } + _ => Err(Error::EmptyVersion), + } + } +} + +impl TryFrom<&GetStatusResponse> for Node { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let node = v0 + .node + .as_ref() + .map(|n| Self { + id: n.id.clone(), + pro_tx_hash: n.pro_tx_hash.clone(), + }) + .unwrap_or_default(); + Ok(node) + } + _ => Err(Error::EmptyVersion), + } + } +} + +impl TryFrom<&GetStatusResponse> for Chain { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let chain = v0 + .chain + .as_ref() + .map(|c| Self { + catching_up: c.catching_up, + latest_block_hash: c.latest_block_hash.clone(), + latest_app_hash: c.latest_app_hash.clone(), + earliest_block_hash: c.earliest_block_hash.clone(), + earliest_app_hash: c.earliest_app_hash.clone(), + latest_block_height: c.latest_block_height, + earliest_block_height: c.earliest_block_height, + max_peer_block_height: c.max_peer_block_height, + core_chain_locked_height: c.core_chain_locked_height, + }) + .unwrap_or_default(); + Ok(chain) + } + _ => Err(Error::EmptyVersion), + } + } +} + +impl TryFrom<&GetStatusResponse> for Network { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let network = v0 + .network + .as_ref() + .map(|n| Self { + chain_id: n.chain_id.clone(), + peers_count: n.peers_count, + listening: n.listening, + }) + .unwrap_or_default(); + Ok(network) + } + _ => Err(Error::EmptyVersion), + } + } +} + +impl TryFrom<&GetStatusResponse> for StateSync { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let state_sync = v0 + .state_sync + .as_ref() + .map(|s| Self { + total_synced_time: s.total_synced_time, + remaining_time: s.remaining_time, + total_snapshots: s.total_snapshots, + chunk_process_avg_time: s.chunk_process_avg_time, + snapshot_height: s.snapshot_height, + snapshot_chunks_count: s.snapshot_chunks_count, + backfilled_blocks: s.backfilled_blocks, + backfill_blocks_total: s.backfill_blocks_total, + }) + .unwrap_or_default(); + Ok(state_sync) + } + _ => Err(Error::EmptyVersion), + } + } +} + +impl TryFrom<&GetStatusResponse> for Time { + type Error = Error; + + fn try_from(response: &GetStatusResponse) -> Result { + match &response.version { + Some(get_status_response::Version::V0(v0)) => { + let time = v0 + .time + .as_ref() + .map(|t| Self { + local: t.local, + block: t.block, + genesis: t.genesis, + epoch: t.epoch, + }) + .unwrap_or_default(); + Ok(time) + } + _ => Err(Error::EmptyVersion), + } + } +} diff --git a/packages/rs-drive-proof-verifier/src/unproved.rs b/packages/rs-drive-proof-verifier/src/unproved.rs new file mode 100644 index 0000000000..bc2f2e9e51 --- /dev/null +++ b/packages/rs-drive-proof-verifier/src/unproved.rs @@ -0,0 +1,296 @@ +use crate::types::{CurrentQuorumsInfo, EvoNodeStatus}; +use crate::Error; +use dapi_grpc::platform::v0::ResponseMetadata; +use dapi_grpc::platform::v0::{self as platform}; +use dapi_grpc::tonic::async_trait; +use dpp::bls_signatures::PublicKey as BlsPublicKey; +use dpp::core_types::validator::v0::ValidatorV0; +use dpp::core_types::validator_set::v0::ValidatorSetV0; +use dpp::core_types::validator_set::ValidatorSet; +use dpp::dashcore::hashes::Hash; +use dpp::dashcore::{Network, ProTxHash, PubkeyHash, QuorumHash}; +use dpp::version::PlatformVersion; +use std::collections::BTreeMap; + +/// Trait for parsing unproved responses from the Platform. +/// +/// This trait defines methods for extracting data from responses received from the Platform +/// without the need for cryptographic proof validation. It is primarily used for scenarios where +/// the proof data is not available or not required, and only the data itself is needed. +/// +/// ## Associated Types +/// +/// - `Request`: The type of the request sent to the server. This represents the format of the +/// data that the platform expects when making a query. +/// - `Response`: The type of the response received from the server. This represents the format of +/// the data returned by the platform after executing the query. +/// +/// ## Methods +/// +/// - `maybe_from_unproved`: Parses the response to retrieve the requested object, if any. +/// - `maybe_from_unproved_with_metadata`: Parses the response to retrieve the requested object +/// along with response metadata, if any. +/// - `from_unproved`: Retrieves the requested object from the response, returning an error if the +/// object is not found. +/// - `from_unproved_with_metadata`: Retrieves the requested object from the response along with +/// metadata, returning an error if the object is not found. +/// +/// ``` +pub trait FromUnproved { + /// Request type for which this trait is implemented. + type Request; + /// Response type for which this trait is implemented. + type Response; + + /// Parse the received response and retrieve the requested object, if any. + /// + /// # Arguments + /// + /// * `request`: The request sent to the server. + /// * `response`: The response received from the server. + /// * `network`: The network we are using (Mainnet/Testnet/Devnet/Regtest). + /// * `platform_version`: The platform version that should be used. + /// + /// # Returns + /// + /// * `Ok(Some(object))` when the requested object was found in the response. + /// * `Ok(None)` when the requested object was not found. + /// * `Err(Error)` when parsing fails or data is invalid. + fn maybe_from_unproved, O: Into>( + request: I, + response: O, + network: Network, + platform_version: &PlatformVersion, + ) -> Result, Error> + where + Self: Sized, + { + Self::maybe_from_unproved_with_metadata(request, response, network, platform_version) + .map(|maybe_result| maybe_result.0) + } + + /// Parse the received response and retrieve the requested object along with metadata, if any. + /// + /// # Arguments + /// + /// * `request`: The request sent to the server. + /// * `response`: The response received from the server. + /// * `network`: The network we are using (Mainnet/Testnet/Devnet/Regtest). + /// * `platform_version`: The platform version that should be used. + /// + /// # Returns + /// + /// * `Ok((Some(object), metadata))` when the requested object was found. + /// * `Ok((None, metadata))` when the requested object was not found. + /// * `Err(Error)` when parsing fails or data is invalid. + fn maybe_from_unproved_with_metadata, O: Into>( + request: I, + response: O, + network: Network, + platform_version: &PlatformVersion, + ) -> Result<(Option, ResponseMetadata), Error> + where + Self: Sized; + + /// Retrieve the requested object from the response. + /// + /// # Arguments + /// + /// * `request`: The request sent to the server. + /// * `response`: The response received from the server. + /// * `network`: The network we are using. + /// * `platform_version`: The platform version that should be used. + /// + /// # Returns + /// + /// * `Ok(object)` when the requested object was found. + /// * `Err(Error::NotFound)` when the requested object was not found. + /// * `Err(Error)` when parsing fails or data is invalid. + fn from_unproved, O: Into>( + request: I, + response: O, + network: Network, + platform_version: &PlatformVersion, + ) -> Result + where + Self: Sized, + { + Self::maybe_from_unproved(request, response, network, platform_version)? + .ok_or(Error::NotFound) + } + + /// Retrieve the requested object from the response along with metadata. + /// + /// # Arguments + /// + /// * `request`: The request sent to the server. + /// * `response`: The response received from the server. + /// * `network`: The network we are using. + /// * `platform_version`: The platform version that should be used. + /// + /// # Returns + /// + /// * `Ok((object, metadata))` when the requested object was found. + /// * `Err(Error::NotFound)` when the requested object was not found. + /// * `Err(Error)` when parsing fails or data is invalid. + fn from_unproved_with_metadata, O: Into>( + request: I, + response: O, + network: Network, + platform_version: &PlatformVersion, + ) -> Result<(Self, ResponseMetadata), Error> + where + Self: Sized, + { + let (main_item, response_metadata) = + Self::maybe_from_unproved_with_metadata(request, response, network, platform_version)?; + Ok((main_item.ok_or(Error::NotFound)?, response_metadata)) + } +} + +impl FromUnproved for CurrentQuorumsInfo { + type Request = platform::GetCurrentQuorumsInfoRequest; + type Response = platform::GetCurrentQuorumsInfoResponse; + + fn maybe_from_unproved_with_metadata, O: Into>( + _request: I, + response: O, + _network: Network, + _platform_version: &PlatformVersion, + ) -> Result<(Option, ResponseMetadata), Error> + where + Self: Sized, + { + // Convert the response into a GetCurrentQuorumsInfoResponse + let response: platform::GetCurrentQuorumsInfoResponse = response.into(); + + // Extract metadata from the response + let metadata = match &response.version { + Some(platform::get_current_quorums_info_response::Version::V0(ref v0)) => { + v0.metadata.clone() + } + None => None, + } + .ok_or(Error::EmptyResponseMetadata)?; + + // Parse response based on the version field + let info = match response.version.ok_or(Error::EmptyVersion)? { + platform::get_current_quorums_info_response::Version::V0(v0) => { + // Extract quorum hashes + let quorum_hashes = v0 + .quorum_hashes + .into_iter() + .map(|q_hash| { + let mut q_hash_array = [0u8; 32]; + if q_hash.len() != 32 { + return Err(Error::ProtocolError { + error: "Invalid quorum_hash length".to_string(), + }); + } + q_hash_array.copy_from_slice(&q_hash); + Ok(q_hash_array) + }) + .collect::, Error>>()?; + + // Extract current quorum hash + let mut current_quorum_hash = [0u8; 32]; + if v0.current_quorum_hash.len() != 32 { + return Err(Error::ProtocolError { + error: "Invalid current_quorum_hash length".to_string(), + }); + } + current_quorum_hash.copy_from_slice(&v0.current_quorum_hash); + + let mut last_block_proposer = [0u8; 32]; + if v0.last_block_proposer.len() != 32 { + return Err(Error::ProtocolError { + error: "Invalid last_block_proposer length".to_string(), + }); + } + last_block_proposer.copy_from_slice(&v0.last_block_proposer); + + // Extract validator sets + let validator_sets = + v0.validator_sets + .into_iter() + .map(|vs| { + // Parse the ValidatorSetV0 + let mut quorum_hash = [0u8; 32]; + quorum_hash.copy_from_slice(&vs.quorum_hash); + + // Parse ValidatorV0 members into a BTreeMap + let members = vs + .members + .into_iter() + .map(|member| { + let pro_tx_hash = ProTxHash::from_slice(&member.pro_tx_hash) + .map_err(|_| Error::ProtocolError { + error: "Invalid ProTxHash format".to_string(), + })?; + let validator = ValidatorV0 { + pro_tx_hash, + public_key: None, // Assuming it's not provided here + node_ip: member.node_ip, + node_id: PubkeyHash::from_slice(&[0; 20]).expect("expected to make pub key hash from 20 byte empty array"), // Placeholder, since not provided + core_port: 0, // Placeholder, since not provided + platform_http_port: 0, // Placeholder, since not provided + platform_p2p_port: 0, // Placeholder, since not provided + is_banned: member.is_banned, + }; + Ok((pro_tx_hash, validator)) + }) + .collect::, Error>>()?; + + Ok(ValidatorSet::V0(ValidatorSetV0 { + quorum_hash: QuorumHash::from_slice(quorum_hash.as_slice()) + .map_err(|_| Error::ProtocolError { + error: "Invalid Quorum Hash format".to_string(), + })?, + quorum_index: None, // Assuming it's not provided here + core_height: vs.core_height, + members, + threshold_public_key: BlsPublicKey::from_bytes( + &vs.threshold_public_key, + ) + .map_err(|_| Error::ProtocolError { + error: "Invalid BlsPublicKey format".to_string(), + })?, + })) + }) + .collect::, Error>>()?; + + // Create the CurrentQuorumsInfo struct + Ok::(CurrentQuorumsInfo { + quorum_hashes, + current_quorum_hash, + validator_sets, + last_block_proposer, + last_platform_block_height: metadata.height, + last_core_block_height: metadata.core_chain_locked_height, + }) + } + }?; + + Ok((Some(info), metadata)) + } +} + +#[async_trait] +impl FromUnproved for EvoNodeStatus { + type Request = platform::GetStatusRequest; + type Response = platform::GetStatusResponse; + + fn maybe_from_unproved_with_metadata, O: Into>( + _request: I, + response: O, + _network: Network, + _platform_version: &PlatformVersion, + ) -> Result<(Option, ResponseMetadata), Error> + where + Self: Sized, + { + let status = Self::try_from(response.into())?; + // we use default response metadata, as this request does not return any metadata + Ok((Some(status), Default::default())) + } +} diff --git a/packages/rs-drive-verify-c-binding/Cargo.toml b/packages/rs-drive-verify-c-binding/Cargo.toml index 07bb5314be..1f6d9b4f1e 100644 --- a/packages/rs-drive-verify-c-binding/Cargo.toml +++ b/packages/rs-drive-verify-c-binding/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rs-drive-verify-c-binding" -version = "0.25.16-rc.3" +version = "1.1.0" edition = "2021" rust-version.workspace = true diff --git a/packages/rs-drive/Cargo.toml b/packages/rs-drive/Cargo.toml index 92533c5c21..b23408aa9b 100644 --- a/packages/rs-drive/Cargo.toml +++ b/packages/rs-drive/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "drive" description = "Dash drive built on top of GroveDB" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" authors = [ "Samuel Westrich ", "Ivan Shumkov ", @@ -29,7 +29,7 @@ nohash-hasher = { version = "0.2.0" } dpp = { path = "../rs-dpp", features = [ "state-transitions", ], default-features = false, optional = true } -thiserror = { version = "1.0.59" } +thiserror = { version = "1.0.63" } tracing = { version = "0.1.37", default-features = false, features = [] } derive_more = { version = "1.0", features = ["from"] } hex = { version = "0.4.3" } @@ -52,11 +52,12 @@ enum-map = { version = "2.0.3", optional = true } intmap = { version = "2.0.0", features = ["serde"], optional = true } chrono = { version = "0.4.35", optional = true } itertools = { version = "0.13", optional = true } -grovedb = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91", optional = true, default-features = false } -grovedb-costs = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91", optional = true } -grovedb-path = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91" } -grovedb-storage = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91", optional = true } -grovedb-version = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91" } +grovedb = { version = "2.1.0", optional = true, default-features = false } +grovedb-costs = { version = "2.1.0", optional = true } +grovedb-path = { version = "2.1.0" } +grovedb-storage = { version = "2.1.0", optional = true } +grovedb-version = { version = "2.1.0" } +grovedb-epoch-based-storage-flags = { version = "2.1.0" } [dev-dependencies] criterion = "0.5" @@ -77,6 +78,7 @@ dpp = { path = "../rs-dpp", features = [ ], default-features = false } once_cell = "1.7" serde_json = { version = "1.0", features = ["preserve_order"] } +assert_matches = "1.5.0" [[bench]] name = "benchmarks" diff --git a/packages/rs-drive/src/config.rs b/packages/rs-drive/src/config.rs index 3856eb0b0a..313be06c3c 100644 --- a/packages/rs-drive/src/config.rs +++ b/packages/rs-drive/src/config.rs @@ -1,6 +1,7 @@ //! Drive Configuration File //! +use dpp::dashcore::Network; use dpp::fee::epoch::DEFAULT_EPOCHS_PER_ERA; #[cfg(feature = "serde")] use serde::{Deserialize, Serialize}; @@ -112,6 +113,13 @@ pub struct DriveConfig { serde(default, deserialize_with = "from_str_to_bool") )] pub grovedb_visualizer_enabled: bool, + + /// The network type + #[cfg_attr( + feature = "serde", + serde(skip_deserializing, default = "DriveConfig::default_network") + )] + pub network: Network, } // TODO: some weird envy behavior requries this to exist @@ -197,6 +205,21 @@ impl Default for DriveConfig { grovedb_visualizer_address: default_grovedb_visualizer_address(), #[cfg(feature = "grovedbg")] grovedb_visualizer_enabled: false, + network: Network::Dash, + } + } +} + +impl DriveConfig { + fn default_network() -> Network { + Network::Dash + } + + /// The default testnet configuration + pub fn default_testnet() -> Self { + Self { + network: Network::Testnet, + ..Default::default() } } } diff --git a/packages/rs-drive/src/drive/balances/mod.rs b/packages/rs-drive/src/drive/balances/mod.rs index 0af170831e..39f15f4298 100644 --- a/packages/rs-drive/src/drive/balances/mod.rs +++ b/packages/rs-drive/src/drive/balances/mod.rs @@ -79,7 +79,7 @@ mod tests { #[test] fn verify_total_credits_structure() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs index 19f51db190..fa3a6fa1a8 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract/v0/mod.rs @@ -105,6 +105,7 @@ impl Drive { let storage_flags = cost_return_on_error_no_add!( &cost, StorageFlags::map_some_element_flags_ref(&element_flag) + .map_err(Error::StorageFlags) ); let contract_fetch_info = Arc::new(DataContractFetchInfo { contract, @@ -161,6 +162,7 @@ impl Drive { let storage_flags = cost_return_on_error_no_add!( &cost, StorageFlags::map_some_element_flags_ref(&element_flag) + .map_err(Error::StorageFlags) ); let contract_fetch_info = Arc::new(DataContractFetchInfo { diff --git a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/mod.rs index ee60215b7f..fdcb837850 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/mod.rs @@ -256,7 +256,7 @@ mod tests { TestData { data_contract, - drive: setup_drive_with_initial_state_structure(), + drive: setup_drive_with_initial_state_structure(None), } } diff --git a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs index e49ee0b1f8..5bee42052d 100644 --- a/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs +++ b/packages/rs-drive/src/drive/contract/get_fetch/get_contract_with_fetch_info/mod.rs @@ -248,7 +248,7 @@ mod tests { #[test] fn should_return_none_if_contract_not_exist() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let result = drive @@ -261,7 +261,7 @@ mod tests { #[test] fn should_return_fees_for_non_existing_contract_if_epoch_is_passed() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let result = drive diff --git a/packages/rs-drive/src/drive/contract/mod.rs b/packages/rs-drive/src/drive/contract/mod.rs index 6ccfda8292..c48343d6c4 100644 --- a/packages/rs-drive/src/drive/contract/mod.rs +++ b/packages/rs-drive/src/drive/contract/mod.rs @@ -68,7 +68,7 @@ mod tests { #[deprecated(note = "This function is marked as unused.")] #[allow(deprecated)] fn setup_deep_nested_50_contract() -> (Drive, DataContract) { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = "tests/supporting_files/contract/deepNested/deep-nested50.json"; @@ -93,7 +93,7 @@ mod tests { #[deprecated(note = "This function is marked as unused.")] #[allow(deprecated)] fn setup_deep_nested_10_contract() -> (Drive, DataContract) { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = "tests/supporting_files/contract/deepNested/deep-nested10.json"; @@ -115,7 +115,7 @@ mod tests { } pub(in crate::drive::contract) fn setup_reference_contract() -> (Drive, DataContract) { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = "tests/supporting_files/contract/references/references.json"; @@ -138,7 +138,7 @@ mod tests { } pub(in crate::drive::contract) fn setup_dashpay() -> (Drive, DataContract) { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); // let's construct the grovedb structure for the dashpay data contract @@ -159,7 +159,7 @@ mod tests { pub(in crate::drive::contract) fn setup_dashpay_with_generalized_encryption_contract( ) -> (Drive, DataContract) { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); // let's construct the grovedb structure for the dashpay data contract @@ -419,7 +419,7 @@ mod tests { #[test] fn test_create_reference_contract_without_apply() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = "tests/supporting_files/contract/references/references.json"; @@ -441,7 +441,7 @@ mod tests { #[test] fn test_create_reference_contract_with_history_without_apply() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = @@ -464,7 +464,7 @@ mod tests { #[test] fn test_update_reference_contract_without_apply() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let contract_path = "tests/supporting_files/contract/references/references.json"; diff --git a/packages/rs-drive/src/drive/contract/paths.rs b/packages/rs-drive/src/drive/contract/paths.rs index 2221e398eb..0baa4d5a22 100644 --- a/packages/rs-drive/src/drive/contract/paths.rs +++ b/packages/rs-drive/src/drive/contract/paths.rs @@ -1,6 +1,7 @@ use crate::drive::RootTree; use dpp::data_contract::accessors::v0::DataContractV0Getters; +use crate::drive::votes::paths::{ACTIVE_POLLS_TREE_KEY, CONTESTED_RESOURCE_TREE_KEY}; use dpp::data_contract::DataContract; /// The various GroveDB paths underneath a contract @@ -11,8 +12,15 @@ pub trait DataContractPaths { fn documents_path(&self) -> [&[u8]; 3]; /// The document type path, this is based on the document type name fn document_type_path<'a>(&'a self, document_type_name: &'a str) -> [&'a [u8]; 4]; + /// The contested document type path, this is based on the document type name + fn contested_document_type_path<'a>(&'a self, document_type_name: &'a str) -> [&'a [u8]; 5]; /// The document primary key path, this is under the document type fn documents_primary_key_path<'a>(&'a self, document_type_name: &'a str) -> [&'a [u8]; 5]; + /// The contested document primary key path, this is under the document type + fn contested_documents_primary_key_path<'a>( + &'a self, + document_type_name: &'a str, + ) -> [&'a [u8]; 6]; /// The underlying storage for documents that keep history fn documents_with_history_primary_key_path<'a>( &'a self, @@ -46,6 +54,16 @@ impl DataContractPaths for DataContract { ] } + fn contested_document_type_path<'a>(&'a self, document_type_name: &'a str) -> [&'a [u8]; 5] { + [ + Into::<&[u8; 1]>::into(RootTree::Votes), // 1 + &[CONTESTED_RESOURCE_TREE_KEY as u8], // 1 + &[ACTIVE_POLLS_TREE_KEY as u8], // 1 + self.id_ref().as_bytes(), // 32 + document_type_name.as_bytes(), + ] + } + fn documents_primary_key_path<'a>(&'a self, document_type_name: &'a str) -> [&'a [u8]; 5] { [ Into::<&[u8; 1]>::into(RootTree::DataContractDocuments), @@ -56,6 +74,20 @@ impl DataContractPaths for DataContract { ] } + fn contested_documents_primary_key_path<'a>( + &'a self, + document_type_name: &'a str, + ) -> [&'a [u8]; 6] { + [ + Into::<&[u8; 1]>::into(RootTree::Votes), // 1 + &[CONTESTED_RESOURCE_TREE_KEY as u8], // 1 + &[ACTIVE_POLLS_TREE_KEY as u8], // 1 + self.id_ref().as_bytes(), // 32 + document_type_name.as_bytes(), + &[0], + ] + } + fn documents_with_history_primary_key_path<'a>( &'a self, document_type_name: &'a str, diff --git a/packages/rs-drive/src/drive/contract/test_helpers.rs b/packages/rs-drive/src/drive/contract/test_helpers.rs index c2bb04fe38..2fafdb1da1 100644 --- a/packages/rs-drive/src/drive/contract/test_helpers.rs +++ b/packages/rs-drive/src/drive/contract/test_helpers.rs @@ -3,9 +3,6 @@ use crate::util::batch::GroveDbOpBatch; use crate::drive::RootTree; -#[cfg(feature = "data-contract-cbor-conversion")] -use dpp::data_contract::conversion::cbor::DataContractCborConversionMethodsV0; - /// Adds operations to the op batch relevant to initializing the contract's structure. /// Namely it inserts an empty tree at the contract's root path. pub fn add_init_contracts_structure_operations(batch: &mut GroveDbOpBatch) { diff --git a/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs b/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs index 9c08aad8a1..d95decc3f9 100644 --- a/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs +++ b/packages/rs-drive/src/drive/contract/update/update_contract/v0/mod.rs @@ -65,7 +65,6 @@ impl Drive { platform_version, ); } - let _drive_version = &platform_version.drive; let mut drive_operations: Vec = vec![]; diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_fee_multiplier/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_fee_multiplier/v0/mod.rs index d89596e693..46984456fa 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_fee_multiplier/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_fee_multiplier/v0/mod.rs @@ -61,7 +61,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); @@ -77,7 +77,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); @@ -106,7 +106,7 @@ mod tests { #[test] fn test_value_is_set_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_processing_credits_for_distribution/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_processing_credits_for_distribution/v0/mod.rs index ad944b1d36..05782b23b2 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_processing_credits_for_distribution/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_processing_credits_for_distribution/v0/mod.rs @@ -54,7 +54,7 @@ mod tests { #[test] fn test_error_if_value_has_wrong_element_type() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let epoch = Epoch::new(0).unwrap(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_storage_credits_for_distribution/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_storage_credits_for_distribution/v0/mod.rs index f52962d3be..c12720a8b6 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_storage_credits_for_distribution/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_storage_credits_for_distribution/v0/mod.rs @@ -53,7 +53,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -75,7 +75,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length_v0() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let epoch = Epoch::new(0).unwrap(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_total_credits_for_distribution/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_total_credits_for_distribution/v0/mod.rs index 9e6cf57e43..ea9fce1ef1 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_total_credits_for_distribution/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/credit_distribution_pools/get_epoch_total_credits_for_distribution/v0/mod.rs @@ -48,7 +48,7 @@ mod tests { #[test] fn test_get_epoch_total_credits_for_distribution_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/has_epoch_tree_exists.rs b/packages/rs-drive/src/drive/credit_pools/epochs/has_epoch_tree_exists.rs index 7fca44958e..7106d15a79 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/has_epoch_tree_exists.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/has_epoch_tree_exists.rs @@ -41,7 +41,7 @@ mod tests { #[test] fn test_return_true_if_tree_exists() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let epoch_tree = Epoch::new(GENESIS_EPOCH_INDEX).unwrap(); @@ -59,7 +59,7 @@ mod tests { // default will be 40 epochs per era // 50 eras // = 2000 - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let epoch_tree = Epoch::new(2000 + 1).unwrap(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/operations_factory.rs b/packages/rs-drive/src/drive/credit_pools/epochs/operations_factory.rs index 2133e85665..81248a8e5a 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/operations_factory.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/operations_factory.rs @@ -315,7 +315,7 @@ mod tests { #[test] fn test_increment_block_count_to_1_if_proposers_tree_is_not_committed() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -358,7 +358,7 @@ mod tests { #[test] fn test_existing_block_count_is_incremented() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -445,7 +445,7 @@ mod tests { #[test] fn test_values_are_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -476,10 +476,11 @@ mod tests { mod add_init_current_operations { use super::*; + use crate::query::proposer_block_count_query::ProposerQueryType; #[test] fn test_values_are_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -543,7 +544,12 @@ mod tests { .expect_err("should not get processing fee"); let proposers = drive - .get_epoch_proposers(&epoch, Some(1), Some(&transaction), platform_version) + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(1), None), + Some(&transaction), + platform_version, + ) .expect("should get proposers"); assert_eq!(proposers, vec!()); @@ -555,7 +561,7 @@ mod tests { #[test] fn test_values_are_deleted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -627,7 +633,7 @@ mod tests { #[test] fn test_value_is_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -662,7 +668,7 @@ mod tests { #[test] fn test_update_start_time() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -688,7 +694,7 @@ mod tests { #[test] fn test_update_epoch_start_block_height() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -712,7 +718,7 @@ mod tests { #[test] fn test_update_epoch_start_block_core_height() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -739,7 +745,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -761,7 +767,7 @@ mod tests { #[test] fn test_value_is_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -795,7 +801,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -817,7 +823,7 @@ mod tests { #[test] fn test_value_is_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -851,7 +857,7 @@ mod tests { #[test] fn test_values_has_been_deleted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -895,10 +901,11 @@ mod tests { mod delete_proposers { use super::*; + use crate::query::proposer_block_count_query::ProposerQueryType; #[test] fn test_values_are_being_deleted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let epoch = Epoch::new(0).unwrap(); @@ -928,7 +935,12 @@ mod tests { .expect("should apply batch"); let mut stored_proposers = drive - .get_epoch_proposers(&epoch, Some(20), Some(&transaction), platform_version) + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(20), None), + Some(&transaction), + platform_version, + ) .expect("should get proposers"); let mut awaited_result = pro_tx_hashes @@ -961,7 +973,12 @@ mod tests { .expect("should apply batch"); let stored_proposers = drive - .get_epoch_proposers(&epoch, Some(20), Some(&transaction), platform_version) + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(20), None), + Some(&transaction), + platform_version, + ) .expect("should get proposers"); let mut stored_hexes: Vec = stored_proposers diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/mod.rs new file mode 100644 index 0000000000..fd75a4c17c --- /dev/null +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/mod.rs @@ -0,0 +1,67 @@ +mod v0; + +use grovedb::TransactionArg; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; + +use dpp::block::epoch::Epoch; + +use crate::query::proposer_block_count_query::ProposerQueryType; +use dpp::version::PlatformVersion; + +impl Drive { + /// Retrieves the list of block proposers for a given epoch. + /// + /// This function fetches the proposers for a specified epoch, returning their transaction hashes and + /// the number of blocks they proposed. The query can either be limited by a range or a set of proposer IDs. + /// + /// # Parameters + /// + /// - `epoch_tree`: A reference to an `Epoch` instance representing the epoch for which to retrieve proposers. + /// - `query_type`: The type of query to perform (`ProposerQueryType`), which can either specify a range of + /// proposers or fetch specific proposers by their IDs. + /// - `transaction`: A `TransactionArg` that provides the transaction context for the query execution. + /// - `platform_version`: The version of the platform, represented by a `PlatformVersion` instance, ensuring compatibility + /// between different platform versions. + /// + /// # Returns + /// + /// A `Result` containing: + /// - `Vec<(Vec, u64)>`: A vector of tuples where each tuple contains: + /// - A byte vector (`Vec`) representing the proposer's transaction hash. + /// - A `u64` representing the number of blocks proposed by that proposer. + /// - `Error`: An error if the query fails due to an invalid platform version, transaction issues, or invalid epoch data. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// - The platform version is unknown or unsupported. + /// - There is an issue with retrieving the proposers, such as a database or transaction error. + /// - The provided epoch or query type is invalid. + pub fn fetch_epoch_proposers( + &self, + epoch_tree: &Epoch, + query_type: ProposerQueryType, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result, u64)>, Error> { + match platform_version + .drive + .methods + .credit_pools + .epochs + .fetch_epoch_proposers + { + 0 => { + self.fetch_epoch_proposers_v0(epoch_tree, query_type, transaction, platform_version) + } + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "fetch_epoch_proposers".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/v0/mod.rs new file mode 100644 index 0000000000..992cb31dd9 --- /dev/null +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/fetch_epoch_proposers/v0/mod.rs @@ -0,0 +1,168 @@ +use grovedb::query_result_type::QueryResultType::QueryKeyElementPairResultType; +use grovedb::{Element, TransactionArg}; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::query::proposer_block_count_query::ProposerQueryType; +use dpp::block::epoch::Epoch; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Retrieves the list of block proposers for a given epoch. + /// + /// This function fetches the proposers for a specified epoch, returning their transaction hashes and + /// the number of blocks they proposed. The query can either be limited by a range or a set of proposer IDs. + /// + /// # Parameters + /// + /// - `epoch_tree`: A reference to an `Epoch` instance representing the epoch for which to retrieve proposers. + /// - `query_type`: The type of query to perform (`ProposerQueryType`), which can either specify a range of + /// proposers or fetch specific proposers by their IDs. + /// - `transaction`: A `TransactionArg` that provides the transaction context for the query execution. + /// - `platform_version`: The version of the platform, represented by a `PlatformVersion` instance, ensuring compatibility + /// between different platform versions. + /// + /// # Returns + /// + /// A `Result` containing: + /// - `Vec<(Vec, u64)>`: A vector of tuples where each tuple contains: + /// - A byte vector (`Vec`) representing the proposer's transaction hash. + /// - A `u64` representing the number of blocks proposed by that proposer. + /// - `Error`: An error if the query fails due to an invalid platform version, transaction issues, or invalid epoch data. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// - The platform version is unknown or unsupported. + /// - There is an issue with retrieving the proposers, such as a database or transaction error. + /// - The provided epoch or query type is invalid. + pub(super) fn fetch_epoch_proposers_v0( + &self, + epoch_tree: &Epoch, + query_type: ProposerQueryType, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result, u64)>, Error> { + let use_optional = query_type.allows_optional(); + + let path_query = query_type.into_path_query(epoch_tree); + + let proposers = if use_optional { + let key_elements = self.grove_get_raw_path_query_with_optional( + &path_query, + true, + transaction, + &mut vec![], + &platform_version.drive, + )?; + + key_elements + .into_iter() + .map(|(_, pro_tx_hash, element)| { + let block_count = match element { + None => 0, + Some(Element::Item(encoded_block_count, _)) => u64::from_be_bytes( + encoded_block_count.as_slice().try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization(String::from( + "epochs proposer block count must be u64", + ))) + })?, + ), + _ => { + return Err(Error::Drive(DriveError::UnexpectedElementType( + "epochs proposer block count must be an item", + ))); + } + }; + + Ok((pro_tx_hash, block_count)) + }) + .collect::>() + } else { + let key_elements = self + .grove + .query_raw( + &path_query, + transaction.is_some(), + true, + true, + QueryKeyElementPairResultType, + transaction, + &platform_version.drive.grove_version, + ) + .unwrap() + .map_err(Error::GroveDB)? + .0 + .to_key_elements(); + + key_elements + .into_iter() + .map(|(pro_tx_hash, element)| { + let Element::Item(encoded_block_count, _) = element else { + return Err(Error::Drive(DriveError::UnexpectedElementType( + "epochs proposer block count must be an item", + ))); + }; + + let block_count = u64::from_be_bytes( + encoded_block_count.as_slice().try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization(String::from( + "epochs proposer block count must be u64", + ))) + })?, + ); + + Ok((pro_tx_hash, block_count)) + }) + .collect::>() + }?; + + Ok(proposers) + } +} + +#[cfg(test)] +mod tests { + use crate::drive::credit_pools::epochs::operations_factory::EpochOperations; + use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; + use crate::util::batch::GroveDbOpBatch; + use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; + use dpp::block::epoch::Epoch; + + use crate::query::proposer_block_count_query::ProposerQueryType; + use dpp::version::PlatformVersion; + + #[test] + fn test_value() { + let drive = setup_drive_with_initial_state_structure(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + let pro_tx_hash: [u8; 32] = rand::random(); + let block_count = 42; + + let epoch = Epoch::new(0).unwrap(); + + let mut batch = GroveDbOpBatch::new(); + + batch.push(epoch.init_proposers_tree_operation()); + + batch.push(epoch.update_proposer_block_count_operation(&pro_tx_hash, block_count)); + + drive + .grove_apply_batch(batch, false, Some(&transaction), &platform_version.drive) + .expect("should apply batch"); + + let result = drive + .fetch_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(100), None), + Some(&transaction), + platform_version, + ) + .expect("should get proposers"); + + assert_eq!(result, vec!((pro_tx_hash.to_vec(), block_count))); + } +} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/mod.rs deleted file mode 100644 index 5619f99936..0000000000 --- a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/mod.rs +++ /dev/null @@ -1,48 +0,0 @@ -mod v0; - -use grovedb::TransactionArg; - -use crate::drive::Drive; -use crate::error::drive::DriveError; -use crate::error::Error; - -use dpp::block::epoch::Epoch; - -use dpp::version::PlatformVersion; - -impl Drive { - /// Returns a list of the Epoch's block proposers - /// - /// # Arguments - /// - /// * `epoch_tree` - An Epoch instance. - /// * `limit` - An Option containing the limit of proposers to be fetched. - /// * `transaction` - A TransactionArg instance. - /// * `platform_version` - A PlatformVersion instance representing the version of the drive. - /// - /// # Returns - /// - /// A Result containing a vector of tuples with proposers' transaction hashes and block counts or an Error. - pub fn get_epoch_proposers( - &self, - epoch_tree: &Epoch, - limit: Option, - transaction: TransactionArg, - platform_version: &PlatformVersion, - ) -> Result, u64)>, Error> { - match platform_version - .drive - .methods - .credit_pools - .epochs - .get_epoch_proposers - { - 0 => self.get_epoch_proposers_v0(epoch_tree, limit, transaction, platform_version), - version => Err(Error::Drive(DriveError::UnknownVersionMismatch { - method: "get_epoch_proposers".to_string(), - known_versions: vec![0], - received: version, - })), - } - } -} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/v0/mod.rs deleted file mode 100644 index f60fc3d5ba..0000000000 --- a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epoch_proposers/v0/mod.rs +++ /dev/null @@ -1,105 +0,0 @@ -use grovedb::query_result_type::QueryResultType::QueryKeyElementPairResultType; -use grovedb::{Element, PathQuery, Query, SizedQuery, TransactionArg}; - -use crate::drive::credit_pools::epochs::paths::EpochProposers; -use crate::drive::Drive; -use crate::error::drive::DriveError; -use crate::error::Error; -use dpp::block::epoch::Epoch; -use platform_version::version::PlatformVersion; - -impl Drive { - /// Returns a list of the Epoch's block proposers - pub(super) fn get_epoch_proposers_v0( - &self, - epoch_tree: &Epoch, - limit: Option, - transaction: TransactionArg, - platform_version: &PlatformVersion, - ) -> Result, u64)>, Error> { - let path_as_vec = epoch_tree.get_proposers_path_vec(); - - let mut query = Query::new(); - query.insert_all(); - - let path_query = PathQuery::new(path_as_vec, SizedQuery::new(query, limit, None)); - - let key_elements = self - .grove - .query_raw( - &path_query, - transaction.is_some(), - true, - true, - QueryKeyElementPairResultType, - transaction, - &platform_version.drive.grove_version, - ) - .unwrap() - .map_err(Error::GroveDB)? - .0 - .to_key_elements(); - - let proposers = key_elements - .into_iter() - .map(|(pro_tx_hash, element)| { - let Element::Item(encoded_block_count, _) = element else { - return Err(Error::Drive(DriveError::UnexpectedElementType( - "epochs proposer block count must be an item", - ))); - }; - - let block_count = u64::from_be_bytes( - encoded_block_count.as_slice().try_into().map_err(|_| { - Error::Drive(DriveError::CorruptedSerialization(String::from( - "epochs proposer block count must be u64", - ))) - })?, - ); - - Ok((pro_tx_hash, block_count)) - }) - .collect::>()?; - - Ok(proposers) - } -} - -#[cfg(test)] -mod tests { - use crate::drive::credit_pools::epochs::operations_factory::EpochOperations; - use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; - use crate::util::batch::GroveDbOpBatch; - use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; - use dpp::block::epoch::Epoch; - - use dpp::version::PlatformVersion; - - #[test] - fn test_value() { - let drive = setup_drive_with_initial_state_structure(); - let platform_version = PlatformVersion::latest(); - let transaction = drive.grove.start_transaction(); - - let pro_tx_hash: [u8; 32] = rand::random(); - let block_count = 42; - - let epoch = Epoch::new(0).unwrap(); - - let mut batch = GroveDbOpBatch::new(); - - batch.push(epoch.init_proposers_tree_operation()); - - batch.push(epoch.update_proposer_block_count_operation(&pro_tx_hash, block_count)); - - drive - .grove_apply_batch(batch, false, Some(&transaction), &platform_version.drive) - .expect("should apply batch"); - - let result = drive - .get_epoch_proposers(&epoch, Some(100), Some(&transaction), platform_version) - .expect("should get proposers"); - - assert_eq!(result, vec!((pro_tx_hash.to_vec(), block_count))); - } -} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epochs_proposer_block_count/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epochs_proposer_block_count/v0/mod.rs index 9ebe6efdc3..8475308ffd 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epochs_proposer_block_count/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/get_epochs_proposer_block_count/v0/mod.rs @@ -63,7 +63,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); @@ -100,7 +100,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/is_epochs_proposers_tree_empty/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/is_epochs_proposers_tree_empty/mod.rs index dad59b749e..a1266856f0 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/is_epochs_proposers_tree_empty/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/is_epochs_proposers_tree_empty/mod.rs @@ -51,7 +51,7 @@ mod tests { #[test] fn test_check_if_empty() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let drive_version = DriveVersion::default(); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/mod.rs index d7c9b646d9..4153947d10 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/mod.rs @@ -2,7 +2,7 @@ //! //! This module implements functions in Drive relevant to block proposers. //! - -mod get_epoch_proposers; +mod fetch_epoch_proposers; mod get_epochs_proposer_block_count; mod is_epochs_proposers_tree_empty; +mod prove_epoch_proposers; diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/mod.rs new file mode 100644 index 0000000000..05b4e3ca83 --- /dev/null +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/mod.rs @@ -0,0 +1,64 @@ +mod v0; + +use grovedb::TransactionArg; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; + +use dpp::block::epoch::Epoch; + +use crate::query::proposer_block_count_query::ProposerQueryType; +use dpp::version::PlatformVersion; + +impl Drive { + /// Generates a GroveDB proof of the block proposers for a given epoch. + /// + /// This function retrieves the list of block proposers for a specific epoch and returns + /// a proof that can be verified externally. The query can be limited by either a range or a set of proposer IDs. + /// + /// # Parameters + /// + /// - `epoch_tree`: A reference to an `Epoch` instance representing the epoch for which to retrieve proposers. + /// - `query_type`: The type of query to perform (`ProposerQueryType`), which can either be a range query with + /// an optional limit and starting point or a query by specific proposer IDs. + /// - `transaction`: A `TransactionArg` representing the transaction context for the query. + /// - `platform_version`: The version of the platform, represented by a `PlatformVersion` instance, to ensure compatibility. + /// + /// # Returns + /// + /// A `Result` containing: + /// - `Vec`: A byte vector representing the GroveDB proof of the proposers for the epoch. + /// - `Error`: If the proof generation fails due to invalid data, unsupported platform version, or other errors. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// - The platform version is unknown or unsupported. + /// - There is an issue generating the GroveDB proof for the epoch proposers. + /// - The epoch or query type is invalid. + pub fn prove_epoch_proposers( + &self, + epoch_tree: &Epoch, + query_type: ProposerQueryType, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result, Error> { + match platform_version + .drive + .methods + .credit_pools + .epochs + .prove_epoch_proposers + { + 0 => { + self.prove_epoch_proposers_v0(epoch_tree, query_type, transaction, platform_version) + } + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "prove_epoch_proposers".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/v0/mod.rs new file mode 100644 index 0000000000..8deba51b9b --- /dev/null +++ b/packages/rs-drive/src/drive/credit_pools/epochs/proposers/prove_epoch_proposers/v0/mod.rs @@ -0,0 +1,112 @@ +use grovedb::TransactionArg; + +use crate::drive::Drive; +use crate::error::Error; +use crate::query::proposer_block_count_query::ProposerQueryType; +use dpp::block::epoch::Epoch; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Generates a GroveDB proof of the block proposers for a given epoch. + /// + /// This function retrieves the list of block proposers for a specific epoch and returns + /// a proof that can be verified externally. The query can be limited by either a range or a set of proposer IDs. + /// + /// # Parameters + /// + /// - `epoch_tree`: A reference to an `Epoch` instance representing the epoch for which to retrieve proposers. + /// - `query_type`: The type of query to perform (`ProposerQueryType`), which can either be a range query with + /// an optional limit and starting point or a query by specific proposer IDs. + /// - `transaction`: A `TransactionArg` representing the transaction context for the query. + /// - `platform_version`: The version of the platform, represented by a `PlatformVersion` instance, to ensure compatibility. + /// + /// # Returns + /// + /// A `Result` containing: + /// - `Vec`: A byte vector representing the GroveDB proof of the proposers for the epoch. + /// - `Error`: If the proof generation fails due to invalid data, unsupported platform version, or other errors. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// - The platform version is unknown or unsupported. + /// - There is an issue generating the GroveDB proof for the epoch proposers. + /// - The epoch or query type is invalid. + pub(super) fn prove_epoch_proposers_v0( + &self, + epoch_tree: &Epoch, + query_type: ProposerQueryType, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let path_query = query_type.into_path_query(epoch_tree); + + self.grove_get_proved_path_query( + &path_query, + transaction, + &mut vec![], + &platform_version.drive, + ) + } +} + +#[cfg(test)] +mod tests { + use crate::drive::credit_pools::epochs::operations_factory::EpochOperations; + use crate::drive::Drive; + use crate::query::proposer_block_count_query::ProposerQueryType; + use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; + use crate::util::batch::GroveDbOpBatch; + use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; + use dpp::block::epoch::Epoch; + use dpp::version::PlatformVersion; + + #[test] + fn test_value() { + let drive = setup_drive_with_initial_state_structure(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + let pro_tx_hash: [u8; 32] = rand::random(); + let block_count = 42; + + let epoch = Epoch::new(0).unwrap(); + + let mut batch = GroveDbOpBatch::new(); + + batch.push(epoch.init_proposers_tree_operation()); + + batch.push(epoch.update_proposer_block_count_operation(&pro_tx_hash, block_count)); + + drive + .grove_apply_batch(batch, false, Some(&transaction), &platform_version.drive) + .expect("should apply batch"); + + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to be able to commit a transaction"); + + let limit = 100; + + let proof = drive + .prove_epoch_proposers( + &epoch, + ProposerQueryType::ByRange(Some(limit), None), + None, + platform_version, + ) + .expect("should get proposers"); + + let (_, epoch_proposers): (_, Vec<([u8; 32], u64)>) = Drive::verify_epoch_proposers( + &proof, + epoch.index, + ProposerQueryType::ByRange(Some(100), None), + platform_version, + ) + .expect("expected to verify epoch proposers"); + + assert_eq!(epoch_proposers, vec!((pro_tx_hash, block_count))); + } +} diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/start_block/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/start_block/mod.rs index bea94b346e..2788fd9ff2 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/start_block/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/start_block/mod.rs @@ -43,7 +43,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -64,7 +64,7 @@ mod tests { #[test] fn test_error_if_value_is_not_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -79,7 +79,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -110,7 +110,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length_core_height() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -144,7 +144,7 @@ mod tests { #[test] fn test_error_if_element_has_invalid_type() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -175,7 +175,7 @@ mod tests { #[test] fn test_error_if_element_has_invalid_type_core_height() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); @@ -218,7 +218,7 @@ mod tests { #[test] fn test_next_block_height() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -258,7 +258,7 @@ mod tests { #[test] fn test_none_if_there_are_no_start_block_heights() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -277,7 +277,7 @@ mod tests { #[test] fn test_none_if_start_block_height_is_outside_of_specified_epoch_range() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -309,7 +309,7 @@ mod tests { #[test] fn test_start_block_height_in_two_epoch_in_case_of_gaps() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/credit_pools/epochs/start_time/get_epoch_start_time/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/epochs/start_time/get_epoch_start_time/v0/mod.rs index 65414461dd..390a878b74 100644 --- a/packages/rs-drive/src/drive/credit_pools/epochs/start_time/get_epoch_start_time/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/epochs/start_time/get_epoch_start_time/v0/mod.rs @@ -56,7 +56,7 @@ mod tests { #[test] fn test_error_if_epoch_tree_is_not_initiated() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -77,7 +77,7 @@ mod tests { #[test] fn test_error_if_value_is_not_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -92,7 +92,7 @@ mod tests { #[test] fn test_error_if_element_has_invalid_type() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -122,7 +122,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/credit_pools/mod.rs b/packages/rs-drive/src/drive/credit_pools/mod.rs index 398980bc91..9696cce681 100644 --- a/packages/rs-drive/src/drive/credit_pools/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/mod.rs @@ -195,7 +195,7 @@ mod tests { #[test] fn should_do_nothing_if_credits_per_epoch_are_empty() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let credits_per_epoch = SignedCreditsPerEpoch::default(); @@ -216,7 +216,7 @@ mod tests { #[test] fn should_update_epoch_storage_fee_pools() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); const TO_EPOCH_INDEX: EpochIndex = 10; @@ -281,7 +281,7 @@ mod tests { #[test] fn should_subtract_negative_credits_from_future_epochs() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/credit_pools/operations.rs b/packages/rs-drive/src/drive/credit_pools/operations.rs index 7dd78802b5..9aad69bf5b 100644 --- a/packages/rs-drive/src/drive/credit_pools/operations.rs +++ b/packages/rs-drive/src/drive/credit_pools/operations.rs @@ -52,7 +52,7 @@ mod tests { #[test] fn test_values_are_set() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); @@ -65,7 +65,7 @@ mod tests { #[test] fn test_epoch_trees_are_created() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); @@ -106,7 +106,7 @@ mod tests { #[test] fn test_update_and_get_value() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs index 49cf61635e..21b200ade4 100644 --- a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/add_delete_pending_epoch_refunds_except_specified/v0/mod.rs @@ -74,7 +74,7 @@ mod tests { #[test] fn should_add_delete_operations_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs index c593f5d49f..737cadc748 100644 --- a/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/pending_epoch_refunds/methods/fetch_and_add_pending_epoch_refunds_to_collection/v0/mod.rs @@ -87,7 +87,7 @@ mod tests { #[test] fn should_fetch_and_merge_pending_updates_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/credit_pools/storage_fee_distribution_pool/get_storage_fees_from_distribution_pool/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/storage_fee_distribution_pool/get_storage_fees_from_distribution_pool/v0/mod.rs index 98e8dac0f1..ee90eec06c 100644 --- a/packages/rs-drive/src/drive/credit_pools/storage_fee_distribution_pool/get_storage_fees_from_distribution_pool/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/storage_fee_distribution_pool/get_storage_fees_from_distribution_pool/v0/mod.rs @@ -68,7 +68,7 @@ mod tests { #[test] fn test_error_if_wrong_value_encoded() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); @@ -96,7 +96,7 @@ mod tests { #[test] fn test_error_if_storage_pool_is_not_initiated() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); let platform_version = PlatformVersion::first(); diff --git a/packages/rs-drive/src/drive/credit_pools/unpaid_epoch/get_unpaid_epoch_index/v0/mod.rs b/packages/rs-drive/src/drive/credit_pools/unpaid_epoch/get_unpaid_epoch_index/v0/mod.rs index a9c1e14a2d..bcfdaf59b1 100644 --- a/packages/rs-drive/src/drive/credit_pools/unpaid_epoch/get_unpaid_epoch_index/v0/mod.rs +++ b/packages/rs-drive/src/drive/credit_pools/unpaid_epoch/get_unpaid_epoch_index/v0/mod.rs @@ -71,7 +71,7 @@ mod tests { #[test] fn test_error_if_element_has_invalid_type() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); // We need to first delete the item, because you can not replace an item with a tree @@ -111,7 +111,7 @@ mod tests { #[test] fn test_error_if_value_has_invalid_length() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); drive diff --git a/packages/rs-drive/src/drive/document/delete/mod.rs b/packages/rs-drive/src/drive/document/delete/mod.rs index 07d7326135..3f64724bfd 100644 --- a/packages/rs-drive/src/drive/document/delete/mod.rs +++ b/packages/rs-drive/src/drive/document/delete/mod.rs @@ -181,7 +181,7 @@ mod tests { #[test] fn test_add_and_remove_family_one_document() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -322,7 +322,7 @@ mod tests { #[test] fn test_add_and_remove_family_documents() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -506,7 +506,7 @@ mod tests { #[test] fn test_add_and_remove_family_documents_with_empty_fields() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -781,7 +781,7 @@ mod tests { #[test] fn test_delete_dashpay_documents() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -881,7 +881,7 @@ mod tests { #[test] fn test_delete_dashpay_documents_without_apply() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/document/insert/add_reference_for_index_level_for_contract_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/insert/add_reference_for_index_level_for_contract_operations/v0/mod.rs index be2ec0515d..00d3f872cd 100644 --- a/packages/rs-drive/src/drive/document/insert/add_reference_for_index_level_for_contract_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/add_reference_for_index_level_for_contract_operations/v0/mod.rs @@ -214,7 +214,7 @@ impl Drive { )?; if !inserted { return Err(Error::Drive(DriveError::CorruptedContractIndexes( - "reference already exists", + "reference already exists".to_string(), ))); } } diff --git a/packages/rs-drive/src/drive/document/insert/mod.rs b/packages/rs-drive/src/drive/document/insert/mod.rs index e2e2f37890..ae327e8c30 100644 --- a/packages/rs-drive/src/drive/document/insert/mod.rs +++ b/packages/rs-drive/src/drive/document/insert/mod.rs @@ -35,12 +35,6 @@ mod add_indices_for_top_index_level_for_contract_operations; // This module contains functionality for adding a reference for an index level for contract operations mod add_reference_for_index_level_for_contract_operations; -#[cfg(all( - feature = "fixtures-and-mocks", - feature = "data-contract-cbor-conversion" -))] -use dpp::data_contract::conversion::cbor::DataContractCborConversionMethodsV0; - #[cfg(test)] mod tests { use std::borrow::Cow; @@ -160,7 +154,7 @@ mod tests { #[test] fn test_add_dashpay_documents() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -256,7 +250,7 @@ mod tests { #[test] fn test_add_dashpay_contact_request_with_fee() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -321,7 +315,7 @@ mod tests { #[test] fn test_add_dashpay_profile_with_fee() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -386,7 +380,7 @@ mod tests { #[test] fn test_add_dashpay_profile_average_case_cost_fee() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -451,7 +445,7 @@ mod tests { #[test] fn test_unknown_state_cost_dashpay_fee_for_add_documents() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -527,7 +521,7 @@ mod tests { #[test] fn test_add_dashpay_fee_for_documents_detail() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -620,7 +614,7 @@ mod tests { #[test] fn test_add_dpns_document_with_fee() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract_operations/v0/mod.rs index 6734a354ed..d84d70a1a4 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/add_contested_document_for_contract_operations/v0/mod.rs @@ -4,6 +4,7 @@ use crate::error::Error; use crate::fees::op::LowLevelDriveOperation; use crate::util::object_size_info::DocumentAndContractInfo; use dpp::block::block_info::BlockInfo; +use dpp::dashcore::Network; use dpp::version::PlatformVersion; use dpp::voting::vote_info_storage::contested_document_vote_poll_stored_info::ContestedDocumentVotePollStoredInfo; use dpp::voting::vote_polls::VotePoll; @@ -50,12 +51,22 @@ impl Drive { platform_version, )?; - let end_date = block_info.time_ms.saturating_add( - platform_version - .dpp - .voting_versions - .default_vote_poll_time_duration_ms, - ); + let poll_time = match self.config.network { + Network::Dash => { + platform_version + .dpp + .voting_versions + .default_vote_poll_time_duration_mainnet_ms + } + _ => { + platform_version + .dpp + .voting_versions + .default_vote_poll_time_duration_test_network_ms + } + }; + + let end_date = block_info.time_ms.saturating_add(poll_time); let contest_already_existed = self.add_contested_indices_for_contract_operations( &document_and_contract_info, diff --git a/packages/rs-drive/src/drive/document/insert_contested/add_contested_reference_and_vote_subtree_to_document_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/add_contested_reference_and_vote_subtree_to_document_operations/v0/mod.rs index 9caf559b17..3bc068d4f1 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/add_contested_reference_and_vote_subtree_to_document_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/add_contested_reference_and_vote_subtree_to_document_operations/v0/mod.rs @@ -177,7 +177,7 @@ impl Drive { if !inserted { return Err(Error::Drive(DriveError::CorruptedContractIndexes( - "contested votes tree already exists", + "contested votes tree already exists".to_string(), ))); } diff --git a/packages/rs-drive/src/drive/document/insert_contested/add_contested_vote_subtrees_for_non_identities_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/add_contested_vote_subtrees_for_non_identities_operations/v0/mod.rs index 21439d39c0..bb036014bd 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/add_contested_vote_subtrees_for_non_identities_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/add_contested_vote_subtrees_for_non_identities_operations/v0/mod.rs @@ -92,7 +92,7 @@ impl Drive { // here we are the tree that will contain the voting tree let inserted = self.batch_insert_empty_tree_if_not_exists( - votes_path_key_info, + votes_path_key_info.clone(), true, storage_flags, apply_type, @@ -104,7 +104,7 @@ impl Drive { if !inserted { return Err(Error::Drive(DriveError::CorruptedContractIndexes( - "contested votes tree already exists for a non identity (abstain or lock)", + format!("contested votes tree already exists for a non identity (abstain or lock), trying to insert empty tree at path {}", votes_path_key_info), ))); } diff --git a/packages/rs-drive/src/drive/document/insert_contested/mod.rs b/packages/rs-drive/src/drive/document/insert_contested/mod.rs index 7d38f3c056..276c9d4aa7 100644 --- a/packages/rs-drive/src/drive/document/insert_contested/mod.rs +++ b/packages/rs-drive/src/drive/document/insert_contested/mod.rs @@ -36,12 +36,6 @@ mod add_contested_indices_for_contract_operations; mod add_contested_reference_and_vote_subtree_to_document_operations; mod add_contested_vote_subtrees_for_non_identities_operations; -#[cfg(all( - feature = "fixtures-and-mocks", - feature = "data-contract-cbor-conversion" -))] -use dpp::data_contract::conversion::cbor::DataContractCborConversionMethodsV0; - #[cfg(test)] mod tests { use std::option::Option::None; diff --git a/packages/rs-drive/src/drive/document/mod.rs b/packages/rs-drive/src/drive/document/mod.rs index 08a8a4be48..fb0cd21529 100644 --- a/packages/rs-drive/src/drive/document/mod.rs +++ b/packages/rs-drive/src/drive/document/mod.rs @@ -155,7 +155,7 @@ pub(crate) mod tests { /// Setup Dashpay pub fn setup_dashpay(_prefix: &str, mutable_contact_requests: bool) -> (Drive, DataContract) { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/document/query/mod.rs b/packages/rs-drive/src/drive/document/query/mod.rs index cd75afdde3..395cd73a08 100644 --- a/packages/rs-drive/src/drive/document/query/mod.rs +++ b/packages/rs-drive/src/drive/document/query/mod.rs @@ -3,10 +3,16 @@ //! Defines and implements in Drive functions relevant to querying. //! -mod query_contested_documents_vote_state; +/// query of the vote state +pub mod query_contested_documents_vote_state; mod query_documents; +mod query_documents_with_flags; + +/// query of the contested documents in their storage +pub mod query_contested_documents_storage; pub use query_documents::*; +pub use query_documents_with_flags::*; #[cfg(all(feature = "fixtures-and-mocks", feature = "cbor_query"))] use dpp::block::block_info::BlockInfo; @@ -30,11 +36,6 @@ use crate::fees::op::LowLevelDriveOperation; use crate::query::DriveDocumentQuery; #[cfg(all(feature = "fixtures-and-mocks", feature = "cbor_query"))] use crate::verify::RootHash; -#[cfg(all( - feature = "fixtures-and-mocks", - feature = "data-contract-cbor-conversion" -))] -use dpp::data_contract::conversion::cbor::DataContractCborConversionMethodsV0; #[cfg(all(feature = "fixtures-and-mocks", feature = "cbor_query"))] use dpp::data_contract::document_type::DocumentTypeRef; #[cfg(all(feature = "fixtures-and-mocks", feature = "cbor_query"))] diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/mod.rs new file mode 100644 index 0000000000..4a3844c871 --- /dev/null +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/mod.rs @@ -0,0 +1,100 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use derive_more::From; +use dpp::block::epoch::Epoch; +use dpp::document::Document; +use dpp::version::{PlatformVersion, PlatformVersionCurrentVersion}; +use grovedb::TransactionArg; + +mod v0; + +use crate::query::drive_contested_document_query::DriveContestedDocumentQuery; +pub use v0::*; + +/// Represents the outcome of a query to retrieve documents. +/// +/// This enum provides versioning for the outcomes of querying documents. +/// As the system evolves, new versions of the outcome structure can be +/// added to this enum without breaking existing implementations. +#[derive(From, Debug)] +pub enum QueryContestedDocumentsOutcome { + /// Version 0 of the `QueryDocumentsOutcome`. + /// + /// This version contains a list of documents retrieved, the number of + /// skipped documents, and the cost associated with the query. + V0(QueryContestedDocumentsOutcomeV0), +} + +impl QueryContestedDocumentsOutcomeV0Methods for QueryContestedDocumentsOutcome { + fn documents(&self) -> &Vec { + match self { + QueryContestedDocumentsOutcome::V0(outcome) => outcome.documents(), + } + } + + fn documents_owned(self) -> Vec { + match self { + QueryContestedDocumentsOutcome::V0(outcome) => outcome.documents_owned(), + } + } + + fn cost(&self) -> u64 { + match self { + QueryContestedDocumentsOutcome::V0(outcome) => outcome.cost(), + } + } +} + +impl Drive { + /// Performs a specified drive query and returns the result, along with any skipped items and the cost. + /// + /// This function is used to execute a given [DriveDocumentQuery]. It has options to operate in a dry-run mode + /// and supports different protocol versions. In case an epoch is specified, it calculates the fee. + /// + /// # Arguments + /// + /// * `query` - The [DriveContestedDocumentQuery] being executed. + /// * `epoch` - An `Option<&Epoch>`. If provided, it will be used to calculate the processing fee. + /// * `dry_run` - If true, the function will not perform any actual operation and return a default `QueryDocumentsOutcome`. + /// * `transaction` - The `TransactionArg` holding the transaction data. + /// * `protocol_version` - An `Option` representing the protocol version. If not provided, the function falls back + /// to current or latest version. + /// + /// # Returns + /// + /// * `Result` - Returns `QueryDocumentsOutcome` on success with the list of documents, + /// number of skipped items, and cost. If the operation fails, it returns an `Error`. + pub fn query_contested_documents( + &self, + query: DriveContestedDocumentQuery, + epoch: Option<&Epoch>, + dry_run: bool, + transaction: TransactionArg, + protocol_version: Option, + ) -> Result { + let platform_version = PlatformVersion::get_version_or_current_or_latest(protocol_version)?; + + match platform_version + .drive + .methods + .document + .query + .query_contested_documents + { + 0 => self.query_contested_documents_v0( + query, + epoch, + dry_run, + transaction, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "query_contested_documents".to_string(), + known_versions: vec![0], + received: version, + })), + } + .map(|outcome| outcome.into()) + } +} diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs new file mode 100644 index 0000000000..91a9aa0f90 --- /dev/null +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_storage/v0/mod.rs @@ -0,0 +1,107 @@ +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::query::drive_contested_document_query::DriveContestedDocumentQuery; +use dpp::block::epoch::Epoch; +use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; +use dpp::document::Document; +use dpp::version::PlatformVersion; +use dpp::ProtocolError; +use grovedb::TransactionArg; + +/// The outcome of a query +#[derive(Debug, Default)] +pub struct QueryContestedDocumentsOutcomeV0 { + documents: Vec, + cost: u64, +} + +/// Trait defining methods associated with `QueryDocumentsOutcomeV0`. +/// +/// This trait provides a set of methods to interact with and retrieve +/// details from an instance of `QueryDocumentsOutcomeV0`. These methods +/// include retrieving the documents, skipped count, and the associated cost +/// of the query. +pub trait QueryContestedDocumentsOutcomeV0Methods { + /// Returns a reference to the documents found from the query. + fn documents(&self) -> &Vec; + /// Consumes the instance to return the owned documents. + fn documents_owned(self) -> Vec; + /// Returns the processing cost associated with the query. + fn cost(&self) -> u64; +} + +impl QueryContestedDocumentsOutcomeV0Methods for QueryContestedDocumentsOutcomeV0 { + fn documents(&self) -> &Vec { + &self.documents + } + + fn documents_owned(self) -> Vec { + self.documents + } + + fn cost(&self) -> u64 { + self.cost + } +} + +impl Drive { + /// Performs a specified drive query and returns the result, along with any skipped items and the cost. + /// + /// This function is used to execute a given [DriveDocumentQuery]. It has options to operate in a dry-run mode + /// and supports different protocol versions. In case an epoch is specified, it calculates the fee. + /// + /// # Arguments + /// + /// * `query` - The [DriveContestedDocumentQuery] being executed. + /// * `epoch` - An `Option<&Epoch>`. If provided, it will be used to calculate the processing fee. + /// * `dry_run` - If true, the function will not perform any actual operation and return a default `QueryDocumentsOutcome`. + /// * `transaction` - The `TransactionArg` holding the transaction data. + /// * `platform_version` - A reference to the `PlatformVersion` object specifying the version of functions to call. + /// + /// # Returns + /// + /// * `Result` - Returns `QueryDocumentsOutcome` on success with the list of documents, + /// number of skipped items, and cost. If the operation fails, it returns an `Error`. + #[inline(always)] + pub(super) fn query_contested_documents_v0( + &self, + query: DriveContestedDocumentQuery, + epoch: Option<&Epoch>, + dry_run: bool, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result { + if dry_run { + return Ok(QueryContestedDocumentsOutcomeV0::default()); + } + let mut drive_operations: Vec = vec![]; + let (items, _) = query.execute_raw_results_no_proof_internal( + self, + transaction, + &mut drive_operations, + platform_version, + )?; + let documents = items + .into_iter() + .map(|serialized| { + Document::from_bytes(serialized.as_slice(), query.document_type, platform_version) + }) + .collect::, ProtocolError>>()?; + let cost = if let Some(epoch) = epoch { + let fee_result = Drive::calculate_fee( + None, + Some(drive_operations), + epoch, + self.config.epochs_per_era, + platform_version, + None, + )?; + fee_result.processing_fee + } else { + 0 + }; + + Ok(QueryContestedDocumentsOutcomeV0 { documents, cost }) + } +} diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/mod.rs index aaf7d74936..0af3e4b97c 100644 --- a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/mod.rs @@ -3,7 +3,7 @@ use crate::error::drive::DriveError; use crate::error::Error; use derive_more::From; use dpp::block::epoch::Epoch; -use dpp::version::{PlatformVersion, PlatformVersionCurrentVersion}; +use dpp::version::PlatformVersion; use dpp::voting::contender_structs::ContenderWithSerializedDocument; use grovedb::TransactionArg; @@ -70,20 +70,23 @@ impl Drive { query: ContestedDocumentVotePollDriveQuery, epoch: Option<&Epoch>, transaction: TransactionArg, - protocol_version: Option, + platform_version: &PlatformVersion, ) -> Result { - let platform_version = PlatformVersion::get_version_or_current_or_latest(protocol_version)?; - match platform_version .drive .methods .document .query - .query_documents + .query_contested_documents_vote_state { - 0 => self.query_contested_documents_v0(query, epoch, transaction, platform_version), + 0 => self.query_contested_documents_vote_state_v0( + query, + epoch, + transaction, + platform_version, + ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { - method: "query_documents".to_string(), + method: "query_contested_documents_vote_state".to_string(), known_versions: vec![0], received: version, })), diff --git a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs index 105d93da60..c9a36c4fba 100644 --- a/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/query/query_contested_documents_vote_state/v0/mod.rs @@ -64,7 +64,7 @@ impl Drive { /// * `Result` - Returns `QueryDocumentsOutcome` on success with the list of documents, /// number of skipped items, and cost. If the operation fails, it returns an `Error`. #[inline(always)] - pub(super) fn query_contested_documents_v0( + pub(super) fn query_contested_documents_vote_state_v0( &self, query: ContestedDocumentVotePollDriveQuery, epoch: Option<&Epoch>, diff --git a/packages/rs-drive/src/drive/document/query/query_documents_with_flags/mod.rs b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/mod.rs new file mode 100644 index 0000000000..8e0dacdf82 --- /dev/null +++ b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/mod.rs @@ -0,0 +1,107 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::query::DriveDocumentQuery; +use derive_more::From; +use dpp::block::epoch::Epoch; +use dpp::document::Document; +use dpp::version::{PlatformVersion, PlatformVersionCurrentVersion}; +use grovedb::TransactionArg; + +mod v0; + +use crate::util::storage_flags::StorageFlags; +pub use v0::*; + +/// Represents the outcome of a query to retrieve documents. +/// +/// This enum provides versioning for the outcomes of querying documents. +/// As the system evolves, new versions of the outcome structure can be +/// added to this enum without breaking existing implementations. +#[derive(From, Debug)] +pub enum QueryDocumentsWithFlagsOutcome { + /// Version 0 of the `QueryDocumentsOutcome`. + /// + /// This version contains a list of documents retrieved, the number of + /// skipped documents, and the cost associated with the query. + V0(QueryDocumentsWithFlagsOutcomeV0), +} + +impl QueryDocumentsWithFlagsOutcomeV0Methods for QueryDocumentsWithFlagsOutcome { + fn documents(&self) -> &Vec<(Document, Option)> { + match self { + QueryDocumentsWithFlagsOutcome::V0(outcome) => outcome.documents(), + } + } + + fn documents_owned(self) -> Vec<(Document, Option)> { + match self { + QueryDocumentsWithFlagsOutcome::V0(outcome) => outcome.documents_owned(), + } + } + + fn skipped(&self) -> u16 { + match self { + QueryDocumentsWithFlagsOutcome::V0(outcome) => outcome.skipped(), + } + } + + fn cost(&self) -> u64 { + match self { + QueryDocumentsWithFlagsOutcome::V0(outcome) => outcome.cost(), + } + } +} + +impl Drive { + /// Performs a specified drive query and returns the result, along with any skipped items and the cost. + /// + /// This function is used to execute a given [DriveDocumentQuery]. It has options to operate in a dry-run mode + /// and supports different protocol versions. In case an epoch is specified, it calculates the fee. + /// + /// # Arguments + /// + /// * `query` - The [DriveDocumentQuery] being executed. + /// * `epoch` - An `Option<&Epoch>`. If provided, it will be used to calculate the processing fee. + /// * `dry_run` - If true, the function will not perform any actual operation and return a default `QueryDocumentsOutcome`. + /// * `transaction` - The `TransactionArg` holding the transaction data. + /// * `protocol_version` - An `Option` representing the protocol version. If not provided, the function falls back + /// to current or latest version. + /// + /// # Returns + /// + /// * `Result` - Returns `QueryDocumentsOutcome` on success with the list of documents, + /// number of skipped items, and cost. If the operation fails, it returns an `Error`. + pub fn query_documents_with_flags( + &self, + query: DriveDocumentQuery, + epoch: Option<&Epoch>, + dry_run: bool, + transaction: TransactionArg, + protocol_version: Option, + ) -> Result { + let platform_version = PlatformVersion::get_version_or_current_or_latest(protocol_version)?; + + match platform_version + .drive + .methods + .document + .query + .query_documents_with_flags + { + 0 => self.query_documents_with_flags_v0( + query, + epoch, + dry_run, + transaction, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "query_documents_with_flags".to_string(), + known_versions: vec![0], + received: version, + })), + } + .map(|outcome| outcome.into()) + } +} diff --git a/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs new file mode 100644 index 0000000000..8ac9db22ee --- /dev/null +++ b/packages/rs-drive/src/drive/document/query/query_documents_with_flags/v0/mod.rs @@ -0,0 +1,125 @@ +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::query::DriveDocumentQuery; +use crate::util::storage_flags::StorageFlags; +use dpp::block::epoch::Epoch; +use dpp::document::serialization_traits::DocumentPlatformConversionMethodsV0; +use dpp::document::Document; +use dpp::version::PlatformVersion; +use grovedb::query_result_type::QueryResultType; +use grovedb::TransactionArg; + +/// The outcome of a query +#[derive(Debug, Default)] +pub struct QueryDocumentsWithFlagsOutcomeV0 { + documents: Vec<(Document, Option)>, + skipped: u16, + cost: u64, +} + +/// Trait defining methods associated with `QueryDocumentsOutcomeV0`. +/// +/// This trait provides a set of methods to interact with and retrieve +/// details from an instance of `QueryDocumentsOutcomeV0`. These methods +/// include retrieving the documents, skipped count, and the associated cost +/// of the query. +pub trait QueryDocumentsWithFlagsOutcomeV0Methods { + /// Returns a reference to the documents and storage flags found from the query. + fn documents(&self) -> &Vec<(Document, Option)>; + /// Consumes the instance to return the owned documents with storage flags. + fn documents_owned(self) -> Vec<(Document, Option)>; + /// Returns the count of items that were skipped during the query. + fn skipped(&self) -> u16; + /// Returns the processing cost associated with the query. + fn cost(&self) -> u64; +} + +impl QueryDocumentsWithFlagsOutcomeV0Methods for QueryDocumentsWithFlagsOutcomeV0 { + fn documents(&self) -> &Vec<(Document, Option)> { + &self.documents + } + + fn documents_owned(self) -> Vec<(Document, Option)> { + self.documents + } + + fn skipped(&self) -> u16 { + self.skipped + } + + fn cost(&self) -> u64 { + self.cost + } +} + +impl Drive { + /// Performs a specified drive query and returns the result, along with any skipped items and the cost. + /// + /// This function is used to execute a given [DriveDocumentQuery]. It has options to operate in a dry-run mode + /// and supports different protocol versions. In case an epoch is specified, it calculates the fee. + /// + /// # Arguments + /// + /// * `query` - The [DriveDocumentQuery] being executed. + /// * `epoch` - An `Option<&Epoch>`. If provided, it will be used to calculate the processing fee. + /// * `dry_run` - If true, the function will not perform any actual operation and return a default `QueryDocumentsOutcome`. + /// * `transaction` - The `TransactionArg` holding the transaction data. + /// * `platform_version` - A reference to the `PlatformVersion` object specifying the version of functions to call. + /// + /// # Returns + /// + /// * `Result` - Returns `QueryDocumentsOutcome` on success with the list of documents, + /// number of skipped items, and cost. If the operation fails, it returns an `Error`. + #[inline(always)] + pub(super) fn query_documents_with_flags_v0( + &self, + query: DriveDocumentQuery, + epoch: Option<&Epoch>, + dry_run: bool, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result { + if dry_run { + return Ok(QueryDocumentsWithFlagsOutcomeV0::default()); + } + let mut drive_operations: Vec = vec![]; + let (items, skipped) = query.execute_no_proof_internal( + self, + QueryResultType::QueryElementResultType, + transaction, + &mut drive_operations, + platform_version, + )?; + let documents = items + .to_elements() + .into_iter() + .map(|element| { + let serialized_item = element.as_item_bytes()?; + let document = + Document::from_bytes(serialized_item, query.document_type, platform_version)?; + let storage_flags = StorageFlags::map_some_element_flags_ref(element.get_flags())?; + Ok((document, storage_flags)) + }) + .collect::)>, Error>>()?; + let cost = if let Some(epoch) = epoch { + let fee_result = Drive::calculate_fee( + None, + Some(drive_operations), + epoch, + self.config.epochs_per_era, + platform_version, + None, + )?; + fee_result.processing_fee + } else { + 0 + }; + + Ok(QueryDocumentsWithFlagsOutcomeV0 { + documents, + skipped, + cost, + }) + } +} diff --git a/packages/rs-drive/src/drive/document/update/internal/update_document_for_contract_operations/v0/mod.rs b/packages/rs-drive/src/drive/document/update/internal/update_document_for_contract_operations/v0/mod.rs index 7d33635c1a..0c92a15651 100644 --- a/packages/rs-drive/src/drive/document/update/internal/update_document_for_contract_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/document/update/internal/update_document_for_contract_operations/v0/mod.rs @@ -180,7 +180,7 @@ impl Drive { .map(|&x| Vec::from(x)) .collect(); let top_index_property = index.properties.first().ok_or(Error::Drive( - DriveError::CorruptedContractIndexes("invalid contract indices"), + DriveError::CorruptedContractIndexes("invalid contract indices".to_string()), ))?; index_path.push(Vec::from(top_index_property.name.as_bytes())); @@ -255,7 +255,7 @@ impl Drive { for i in 1..index.properties.len() { let index_property = index.properties.get(i).ok_or(Error::Drive( - DriveError::CorruptedContractIndexes("invalid contract indices"), + DriveError::CorruptedContractIndexes("invalid contract indices".to_string()), ))?; let document_index_field = document @@ -441,7 +441,7 @@ impl Drive { )?; if !inserted { return Err(Error::Drive(DriveError::CorruptedContractIndexes( - "index already exists", + "index already exists".to_string(), ))); } } diff --git a/packages/rs-drive/src/drive/document/update/mod.rs b/packages/rs-drive/src/drive/document/update/mod.rs index 313af57de8..e7dc236f43 100644 --- a/packages/rs-drive/src/drive/document/update/mod.rs +++ b/packages/rs-drive/src/drive/document/update/mod.rs @@ -514,7 +514,7 @@ mod tests { #[test] fn test_create_update_and_delete_document() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -673,7 +673,7 @@ mod tests { #[test] fn test_modify_dashpay_contact_request() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -762,7 +762,7 @@ mod tests { #[test] fn test_update_dashpay_profile_with_history() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); @@ -1815,7 +1815,7 @@ mod tests { #[test] fn test_update_document_without_apply_should_calculate_storage_fees() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/identity/balance/prove.rs b/packages/rs-drive/src/drive/identity/balance/prove.rs index 0f23f06c97..0fcdd61cb5 100644 --- a/packages/rs-drive/src/drive/identity/balance/prove.rs +++ b/packages/rs-drive/src/drive/identity/balance/prove.rs @@ -38,8 +38,20 @@ impl Drive { transaction: TransactionArg, drive_version: &DriveVersion, ) -> Result, Error> { - let balance_query = - Self::balances_for_identity_ids_query(identity_ids, &drive_version.grove_version)?; + let balance_query = Self::balances_for_identity_ids_query(identity_ids); + self.grove_get_proved_path_query(&balance_query, transaction, &mut vec![], drive_version) + } + + /// Proves multiple Identity balances from the backing store by range + pub fn prove_many_identity_balances_by_range( + &self, + start_at: Option<([u8; 32], bool)>, + ascending: bool, + limit: u16, + transaction: TransactionArg, + drive_version: &DriveVersion, + ) -> Result, Error> { + let balance_query = Self::balances_for_range_query(start_at, ascending, limit); self.grove_get_proved_path_query(&balance_query, transaction, &mut vec![], drive_version) } } @@ -58,7 +70,7 @@ mod tests { #[test] fn should_prove_a_single_identity_balance() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -101,7 +113,7 @@ mod tests { #[test] fn should_prove_multiple_identity_balances() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identities: BTreeMap<[u8; 32], Identity> = Identity::random_identities(10, 3, Some(14), platform_version) diff --git a/packages/rs-drive/src/drive/identity/balance/update.rs b/packages/rs-drive/src/drive/identity/balance/update.rs index df5644b546..dc7c94e3e7 100644 --- a/packages/rs-drive/src/drive/identity/balance/update.rs +++ b/packages/rs-drive/src/drive/identity/balance/update.rs @@ -22,7 +22,7 @@ mod tests { #[test] fn should_add_to_balance() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -89,7 +89,7 @@ mod tests { #[test] fn should_fail_if_balance_is_not_persisted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -111,7 +111,7 @@ mod tests { #[test] fn should_deduct_from_debt_if_balance_is_nil() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identity = create_test_identity(&drive, [0; 32], Some(1), None, platform_version) @@ -194,7 +194,7 @@ mod tests { #[test] fn should_keep_nil_balance_and_reduce_debt_if_added_balance_is_lower() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identity = create_test_identity(&drive, [0; 32], Some(1), None, platform_version) .expect("expected an identity"); @@ -273,7 +273,7 @@ mod tests { #[test] fn should_estimate_costs_without_state() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -337,7 +337,7 @@ mod tests { #[test] fn should_remove_from_balance() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -405,7 +405,7 @@ mod tests { #[test] fn should_estimated_costs_without_state() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -481,7 +481,7 @@ mod tests { #[test] fn should_do_nothing_if_there_is_no_balance_change() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -505,7 +505,7 @@ mod tests { #[test] fn should_add_to_balance() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -570,7 +570,7 @@ mod tests { #[test] fn should_fail_if_balance_is_not_persisted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -590,7 +590,7 @@ mod tests { #[test] fn should_deduct_from_debt_if_balance_is_nil() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -665,7 +665,7 @@ mod tests { #[test] fn should_keep_nil_balance_and_reduce_debt_if_added_balance_is_lower() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -734,7 +734,7 @@ mod tests { #[test] fn should_remove_from_balance_less_amount() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -788,7 +788,7 @@ mod tests { #[test] fn should_remove_from_balance_bigger_amount_and_get_into_debt() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -861,7 +861,7 @@ mod tests { #[test] fn should_return_error_if_required_amount_bigger_than_balance() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/identity/estimation_costs/for_purpose_in_key_reference_tree/v0/mod.rs b/packages/rs-drive/src/drive/identity/estimation_costs/for_purpose_in_key_reference_tree/v0/mod.rs index f7a49a2bd7..68d4852ad3 100644 --- a/packages/rs-drive/src/drive/identity/estimation_costs/for_purpose_in_key_reference_tree/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/estimation_costs/for_purpose_in_key_reference_tree/v0/mod.rs @@ -45,6 +45,7 @@ impl Drive { Purpose::TRANSFER => ApproximateElements(1), Purpose::SYSTEM => ApproximateElements(1), Purpose::VOTING => ApproximateElements(1), + Purpose::OWNER => ApproximateElements(1), }; let estimated_layer_sizes = match purpose { @@ -58,6 +59,7 @@ impl Drive { Purpose::TRANSFER => AllReference(1, KEY_REFERENCE_SIZE, None), Purpose::SYSTEM => AllReference(1, KEY_REFERENCE_SIZE, None), Purpose::VOTING => AllReference(1, KEY_REFERENCE_SIZE, None), + Purpose::OWNER => AllReference(1, KEY_REFERENCE_SIZE, None), }; // we then need to insert the identity keys layer estimated_costs_only_with_layer_info.insert( diff --git a/packages/rs-drive/src/drive/identity/fetch/full_identity/mod.rs b/packages/rs-drive/src/drive/identity/fetch/full_identity/mod.rs index 95dc07e00d..ebfe8128a9 100644 --- a/packages/rs-drive/src/drive/identity/fetch/full_identity/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/full_identity/mod.rs @@ -17,7 +17,7 @@ mod tests { #[test] fn should_get_full_identities() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identities: BTreeMap<[u8; 32], Option> = @@ -60,7 +60,7 @@ mod tests { #[test] fn should_return_none_if_identity_is_not_present() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -80,7 +80,7 @@ mod tests { #[test] fn should_get_a_full_identity() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identity = Identity::random_identity(3, Some(14), platform_version) diff --git a/packages/rs-drive/src/drive/identity/fetch/mod.rs b/packages/rs-drive/src/drive/identity/fetch/mod.rs index 01ad75add4..79270a3569 100644 --- a/packages/rs-drive/src/drive/identity/fetch/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/mod.rs @@ -29,6 +29,10 @@ use grovedb::TransactionArg; #[cfg(any(feature = "server", feature = "verify"))] use grovedb::{PathQuery, SizedQuery}; +#[cfg(feature = "server")] +use dpp::fee::Credits; + +#[cfg(feature = "server")] use platform_version::version::PlatformVersion; #[cfg(feature = "server")] use std::collections::BTreeMap; @@ -160,52 +164,110 @@ impl Drive { .collect() } - // TODO: We deal with it in an upcoming PR (Sam!!) - // /// Given a vector of identities, fetches the identities with their keys - // /// matching the request from storage. - // pub fn fetch_identities_with_keys( - // &self, - // ids: Vec<[u8; 32]>, - // key_ref_request: KeyRequestType, - // transaction: TransactionArg, - // ) -> Result, Error> { - // let key_request = IdentityKeysRequest { - // identity_id: [], - // key_request: KeyRequestType::AllKeysRequest, - // limit: None, - // offset: None, - // } - // let mut query = Query::new(); - // query.set_subquery_key(IDENTITY_KEY.to_vec()); - // - // let (result_items, _) = self - // .grove - // .query_raw(&path_query, QueryElementResultType, transaction) - // .unwrap() - // .map_err(Error::GroveDB)?; - // - // result_items - // .to_elements() - // .into_iter() - // .map(|element| { - // if let Element::Item(identity_cbor, element_flags) = &element { - // let identity = - // Identity::from_buffer(identity_cbor.as_slice()).map_err(|_| { - // Error::Identity(IdentityError::IdentitySerialization( - // "failed to deserialize an identity", - // )) - // })?; - // - // Ok(( - // identity, - // StorageFlags::from_some_element_flags_ref(element_flags)?, - // )) - // } else { - // Err(Error::Drive(DriveError::CorruptedIdentityNotItem( - // "identity must be an item", - // ))) - // } - // }) - // .collect() - // } + #[cfg(feature = "server")] + /// Given a vector of identities, fetches the identities from storage. + pub fn fetch_optional_identities_balances( + &self, + ids: &Vec<[u8; 32]>, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result>, Error> { + let mut query = Query::new(); + for id in ids { + query.insert_item(QueryItem::Key(id.to_vec())); + } + let path_query = PathQuery { + path: vec![vec![RootTree::Balances as u8]], + query: SizedQuery { + query, + limit: Some(self.config.max_query_limit), + offset: None, + }, + }; + let results = self + .grove + .query_raw_keys_optional( + &path_query, + true, + true, + true, + transaction, + &platform_version.drive.grove_version, + ) + .unwrap() + .map_err(Error::GroveDB)?; + + results + .into_iter() + .map(|(_, key, element)| { + let identifier: [u8; 32] = key.try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization(String::from( + "expected 32 bytes", + ))) + })?; + + let balance = element + .map(|element| { + if let SumItem(balance, _) = &element { + Ok(*balance as u64) + } else { + Err(Error::Drive(DriveError::CorruptedIdentityNotItem( + "identity balance must be a sum item", + ))) + } + }) + .transpose()?; + + Ok((identifier, balance)) + }) + .collect() + } + + #[cfg(feature = "server")] + /// Given a vector of identities, fetches the identities from storage. + pub fn fetch_many_identity_balances_by_range( + &self, + start_at: Option<([u8; 32], bool)>, + ascending: bool, + limit: u16, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result + where + I: FromIterator<([u8; 32], u64)>, + { + let balance_query = Self::balances_for_range_query(start_at, ascending, limit); + let (result_items, _) = self + .grove + .query_raw( + &balance_query, + true, + true, + true, + QueryKeyElementPairResultType, + transaction, + &platform_version.drive.grove_version, + ) + .unwrap() + .map_err(Error::GroveDB)?; + + result_items + .to_key_elements() + .into_iter() + .map(|key_element| { + if let SumItem(balance, _) = &key_element.1 { + let identifier: [u8; 32] = key_element.0.try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization(String::from( + "expected 32 bytes", + ))) + })?; + Ok((identifier, *balance as u64)) + } else { + Err(Error::Drive(DriveError::CorruptedIdentityNotItem( + "identity balance must be a sum item", + ))) + } + }) + .collect() + } } diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities/v0/mod.rs index 66e2899199..1bac303eee 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities/v0/mod.rs @@ -38,7 +38,7 @@ mod tests { #[test] fn should_prove_two_full_identities_query_no_tx() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identities: BTreeMap<[u8; 32], Option> = @@ -111,7 +111,7 @@ mod tests { #[test] fn should_prove_ten_full_identities_query_no_tx() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identities: BTreeMap<[u8; 32], Option> = diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities_by_unique_public_key_hashes/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities_by_unique_public_key_hashes/v0/mod.rs index b7be9365d3..44f7965678 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities_by_unique_public_key_hashes/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identities_by_unique_public_key_hashes/v0/mod.rs @@ -63,7 +63,7 @@ mod tests { #[test] fn should_prove_multiple_identities() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity/v0/mod.rs index 4d3676d9b1..1f8cc5580c 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity/v0/mod.rs @@ -37,7 +37,7 @@ mod tests { #[test] fn should_prove_full_identity_query_no_tx() { let platform_version = PlatformVersion::latest(); - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let identity = Identity::random_identity(5, Some(14), platform_version) .expect("expected a random identity"); diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity_by_unique_public_key_hash/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity_by_unique_public_key_hash/v0/mod.rs index 3df63086c2..f474fa5231 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity_by_unique_public_key_hash/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_full_identity_by_unique_public_key_hash/v0/mod.rs @@ -57,7 +57,7 @@ mod tests { #[test] fn should_prove_a_single_identity() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_id_by_unique_public_key_hash/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_id_by_unique_public_key_hash/v0/mod.rs index cd41d83e24..8900c2e2dc 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_id_by_unique_public_key_hash/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_id_by_unique_public_key_hash/v0/mod.rs @@ -32,7 +32,7 @@ mod tests { #[test] fn should_prove_a_single_identity_id() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identity = Identity::random_identity(3, Some(14), platform_version) .expect("expected a random identity"); diff --git a/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_ids_by_unique_public_key_hashes/v0/mod.rs b/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_ids_by_unique_public_key_hashes/v0/mod.rs index 28a7cfa35c..1b4636e6b5 100644 --- a/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_ids_by_unique_public_key_hashes/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/prove/prove_identity_ids_by_unique_public_key_hashes/v0/mod.rs @@ -38,7 +38,7 @@ mod tests { #[test] fn should_prove_multiple_identity_ids() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let identities: BTreeMap<[u8; 32], Identity> = diff --git a/packages/rs-drive/src/drive/identity/fetch/queries/mod.rs b/packages/rs-drive/src/drive/identity/fetch/queries/mod.rs index aa12b29910..f7832d2274 100644 --- a/packages/rs-drive/src/drive/identity/fetch/queries/mod.rs +++ b/packages/rs-drive/src/drive/identity/fetch/queries/mod.rs @@ -1,6 +1,7 @@ use crate::drive::balances::balance_path_vec; use crate::drive::identity::key::fetch::IdentityKeysRequest; use crate::drive::{identity_tree_path_vec, unique_key_hashes_tree_path_vec, Drive}; +use std::ops::RangeFull; use crate::error::Error; @@ -13,7 +14,7 @@ use crate::drive::identity::{ use crate::error::query::QuerySyntaxError; use dpp::identity::Purpose; use grovedb::query_result_type::Key; -use grovedb::{PathQuery, Query, SizedQuery}; +use grovedb::{PathQuery, Query, QueryItem, SizedQuery}; use grovedb_version::version::GroveVersion; /// An enumeration representing the types of identity prove requests. @@ -133,15 +134,55 @@ impl Drive { } /// The query getting all balances and revision - pub fn balances_for_identity_ids_query( - identity_ids: &[[u8; 32]], - grove_version: &GroveVersion, - ) -> Result { - let path_queries: Vec = identity_ids - .iter() - .map(Self::identity_balance_query) - .collect::>(); - PathQuery::merge(path_queries.iter().collect(), grove_version).map_err(Error::GroveDB) + pub fn balances_for_identity_ids_query(identity_ids: &[[u8; 32]]) -> PathQuery { + let balance_path = balance_path_vec(); + let mut query = Query::new(); + query.insert_keys(identity_ids.iter().map(|key| key.to_vec()).collect()); + PathQuery { + path: balance_path, + query: SizedQuery { + query, + limit: None, + offset: None, + }, + } + } + + /// The query getting all balances and revision + pub fn balances_for_range_query( + start_at: Option<([u8; 32], bool)>, + ascending: bool, + limit: u16, + ) -> PathQuery { + let balance_path = balance_path_vec(); + let mut query = Query::new_with_direction(ascending); + if ascending { + if let Some((start_at, start_at_included)) = start_at { + if start_at_included { + query.insert_item(QueryItem::RangeFrom(start_at.to_vec()..)) + } else { + query.insert_item(QueryItem::RangeAfter(start_at.to_vec()..)) + } + } else { + query.insert_item(QueryItem::RangeFull(RangeFull)) + } + } else if let Some((start_at, start_at_included)) = start_at { + if start_at_included { + query.insert_item(QueryItem::RangeToInclusive(..=start_at.to_vec())) + } else { + query.insert_item(QueryItem::RangeTo(..start_at.to_vec())) + } + } else { + query.insert_item(QueryItem::RangeFull(RangeFull)) + } + PathQuery { + path: balance_path, + query: SizedQuery { + query, + limit: Some(limit), + offset: None, + }, + } } /// The query getting all keys and balance and revision diff --git a/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs index 6b6dfbf6d0..f756234431 100644 --- a/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/insert/add_new_identity/v0/mod.rs @@ -320,7 +320,7 @@ mod tests { #[test] fn test_insert_identity_v0() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs b/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs index d9a4edf0fa..877634eec0 100644 --- a/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/fetch/fetch_identity_keys/v0/mod.rs @@ -1,5 +1,6 @@ use crate::drive::identity::key::fetch::KeyRequestType::{ - AllKeys, ContractBoundKey, ContractDocumentTypeBoundKey, SearchKey, SpecificKeys, + AllKeys, ContractBoundKey, ContractDocumentTypeBoundKey, RecentWithdrawalKeys, SearchKey, + SpecificKeys, }; use crate::drive::identity::key::fetch::{ IdentityKeysRequest, IdentityPublicKeyResult, KeyKindRequestType, @@ -79,10 +80,11 @@ impl Drive { T::try_from_path_key_optional(result, platform_version) } ContractBoundKey(_, _, KeyKindRequestType::AllKeysOfKindRequest) - | ContractDocumentTypeBoundKey(_, _, _, KeyKindRequestType::AllKeysOfKindRequest) => { + | ContractDocumentTypeBoundKey(_, _, _, KeyKindRequestType::AllKeysOfKindRequest) + | RecentWithdrawalKeys => { let path_query = key_request.into_path_query(); - let (result, _) = self.grove_get_raw_path_query( + let (result, _) = self.grove_get_path_query( &path_query, transaction, QueryPathKeyElementTrioResultType, diff --git a/packages/rs-drive/src/drive/identity/key/fetch/mod.rs b/packages/rs-drive/src/drive/identity/key/fetch/mod.rs index 4567278c78..75466736bd 100644 --- a/packages/rs-drive/src/drive/identity/key/fetch/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/fetch/mod.rs @@ -22,6 +22,7 @@ use { }; // Conditional imports for the feature "server" +use crate::drive::identity::identity_transfer_keys_path_vec; #[cfg(feature = "server")] use { crate::error::{drive::DriveError, fee::FeeError, identity::IdentityError, Error}, @@ -74,6 +75,8 @@ pub enum KeyRequestType { SpecificKeys(Vec), /// Search for keys on an identity SearchKey(BTreeMap>), + /// Recent withdrawal keys + RecentWithdrawalKeys, /// Search for contract bound keys ContractBoundKey([u8; 32], Purpose, KeyKindRequestType), /// Search for contract bound keys @@ -655,7 +658,9 @@ impl IdentityKeysRequest { .fee_version .processing .fetch_single_identity_key_processing_cost), - SearchKey(_search) => todo!(), + SearchKey(_) => Err(Error::Fee(FeeError::OperationNotAllowed( + "You can not get costs for requesting search key", + ))), ContractBoundKey(_, _, key_kind) | ContractDocumentTypeBoundKey(_, _, _, key_kind) => { match key_kind { CurrentKeyOfKindRequest => { @@ -670,6 +675,11 @@ impl IdentityKeysRequest { ))), } } + KeyRequestType::RecentWithdrawalKeys => Ok(self.limit.unwrap_or(10) as Credits + * platform_version + .fee_version + .processing + .fetch_single_identity_key_processing_cost), } } @@ -681,8 +691,8 @@ impl IdentityKeysRequest { sec_btree_map.insert(security_level, CurrentKeyOfKindRequest); } let mut purpose_btree_map = BTreeMap::new(); - for purpose in 0..=Purpose::last() as u8 { - purpose_btree_map.insert(purpose, sec_btree_map.clone()); + for purpose in Purpose::searchable_purposes() { + purpose_btree_map.insert(purpose as u8, sec_btree_map.clone()); } IdentityKeysRequest { identity_id, @@ -927,6 +937,19 @@ impl IdentityKeysRequest { }, } } + KeyRequestType::RecentWithdrawalKeys => { + let query_keys_path = identity_transfer_keys_path_vec(&identity_id); + let mut query = Query::new_with_direction(false); + query.insert_all(); + PathQuery { + path: query_keys_path, + query: SizedQuery { + query, + limit, + offset, + }, + } + } } } diff --git a/packages/rs-drive/src/drive/identity/key/insert_key_hash_identity_reference/insert_non_unique_public_key_hash_reference_to_identity/v0/mod.rs b/packages/rs-drive/src/drive/identity/key/insert_key_hash_identity_reference/insert_non_unique_public_key_hash_reference_to_identity/v0/mod.rs index 9bfbac8ff1..11affc461d 100644 --- a/packages/rs-drive/src/drive/identity/key/insert_key_hash_identity_reference/insert_non_unique_public_key_hash_reference_to_identity/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/key/insert_key_hash_identity_reference/insert_non_unique_public_key_hash_reference_to_identity/v0/mod.rs @@ -13,11 +13,12 @@ use crate::fees::op::LowLevelDriveOperation; use dpp::version::drive_versions::DriveVersion; use grovedb::batch::KeyInfoPath; +use dpp::prelude::Identifier; use grovedb::{Element, EstimatedLayerInformation, TransactionArg}; use std::collections::HashMap; impl Drive { - /// Insert a non unique public key hash reference that contains an identity id + /// Insert a non-unique public key hash reference that contains an identity id /// Contrary to the name this is not a reference but an Item containing the identity /// identifier pub(super) fn insert_non_unique_public_key_hash_reference_to_identity_operations_v0( @@ -74,7 +75,7 @@ impl Drive { if already_exists_for_identity { return Err(Error::Identity(IdentityError::IdentityKeyAlreadyExists( - "the key already exists for this user", + format!("the key with a public hash of {} already exists for this identity {} ({})", hex::encode(public_key_hash) , Identifier::new(identity_id), hex::encode(identity_id.as_slice())) ))); } } diff --git a/packages/rs-drive/src/drive/identity/mod.rs b/packages/rs-drive/src/drive/identity/mod.rs index 65928b5ecb..1922e74b88 100644 --- a/packages/rs-drive/src/drive/identity/mod.rs +++ b/packages/rs-drive/src/drive/identity/mod.rs @@ -259,7 +259,6 @@ pub(crate) fn identity_query_keys_purpose_tree_path_vec( /// identity query keys security level tree path vec #[cfg(feature = "server")] -/// Identity query keys security level tree path vec pub(crate) fn identity_query_keys_security_level_tree_path_vec( identity_id: &[u8], security_level: SecurityLevel, @@ -288,7 +287,6 @@ pub(crate) fn identity_query_keys_for_direct_searchable_reference_full_tree_path ] } -/// identity query keys full tree path #[cfg(feature = "server")] /// Identity query keys full tree path pub(crate) fn identity_query_keys_for_authentication_full_tree_path<'a>( @@ -304,6 +302,28 @@ pub(crate) fn identity_query_keys_for_authentication_full_tree_path<'a>( ] } +/// Identity query keys for transfer full tree path +#[cfg(feature = "server")] +pub fn identity_transfer_keys_tree_path(identity_id: &[u8]) -> [&[u8]; 5] { + [ + Into::<&[u8; 1]>::into(RootTree::Identities), + identity_id, + Into::<&[u8; 1]>::into(IdentityRootStructure::IdentityTreeKeyReferences), + Into::<&[u8; 1]>::into(Purpose::TRANSFER), + Into::<&[u8; 1]>::into(SecurityLevel::CRITICAL), + ] +} + +/// Identity query keys for transfer full tree path as vec +pub fn identity_transfer_keys_path_vec(identity_id: &[u8]) -> Vec> { + vec![ + vec![RootTree::Identities as u8], + identity_id.to_vec(), + vec![IdentityRootStructure::IdentityTreeKeyReferences as u8], + vec![Purpose::TRANSFER as u8], + ] +} + /// The root structure of identities #[cfg(any(feature = "server", feature = "verify"))] #[repr(u8)] diff --git a/packages/rs-drive/src/drive/identity/update/mod.rs b/packages/rs-drive/src/drive/identity/update/mod.rs index b28d7f3134..c846d8d43d 100644 --- a/packages/rs-drive/src/drive/identity/update/mod.rs +++ b/packages/rs-drive/src/drive/identity/update/mod.rs @@ -21,7 +21,7 @@ mod tests { #[test] fn should_add_one_new_key_to_identity() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -81,7 +81,7 @@ mod tests { #[test] fn should_add_two_dozen_new_keys_to_identity() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -141,7 +141,7 @@ mod tests { #[test] fn should_estimated_costs_without_state() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -200,7 +200,7 @@ mod tests { #[test] fn should_disable_a_few_keys() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -279,7 +279,7 @@ mod tests { #[test] fn should_estimated_costs_without_state() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -328,7 +328,7 @@ mod tests { #[test] fn estimated_costs_should_have_same_storage_cost() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -387,7 +387,7 @@ mod tests { #[test] fn should_update_revision() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); @@ -447,7 +447,7 @@ mod tests { #[test] fn should_estimated_costs_without_state() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::first(); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/mod.rs new file mode 100644 index 0000000000..1d31584f69 --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/mod.rs @@ -0,0 +1,69 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use dpp::fee::Credits; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; + +mod v0; + +/// Daily withdrawal limit information +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct WithdrawalLimitInfo { + /// The total maximum withdrawal amount allowed in a 24-hour period. + pub daily_maximum: Credits, + /// The amount already withdrawn in the last 24 hours. + pub withdrawals_amount: Credits, +} + +impl WithdrawalLimitInfo { + /// Calculates the available credits to withdraw + pub fn available(&self) -> Credits { + self.daily_maximum.saturating_sub(self.withdrawals_amount) + } +} + +impl Drive { + /// Calculates the current withdrawal limit based on the total credits available in the platform + /// and the amount already withdrawn in the last 24 hours, using the appropriate version-specific logic. + /// + /// This function selects the version-specific implementation based on the provided `platform_version`. + /// It currently supports only version 0 (`calculate_current_withdrawal_limit_v0`). + /// + /// # Parameters + /// + /// * `transaction`: The transaction context used for querying data. + /// * `platform_version`: The version of the platform being used, which contains configuration details and version-specific methods. + /// + /// # Returns + /// + /// * `Ok(Credits)`: The calculated current withdrawal limit, representing the maximum amount that can still be withdrawn in the current 24-hour window. + /// * `Err(Error)`: Returns an error if the version specified in `platform_version` is not supported or if there is an issue in the version-specific calculation. + /// + /// # Errors + /// + /// * `Error::Drive(DriveError::UnknownVersionMismatch)`: + /// - If the platform version provided does not match any known versions supported by this function. + /// + /// * `Error`: Any error propagated from the version-specific implementation, such as issues in retrieving data or calculating the withdrawal limit. + pub fn calculate_current_withdrawal_limit( + &self, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result { + match platform_version + .drive + .methods + .identity + .withdrawals + .calculate_current_withdrawal_limit + { + 0 => self.calculate_current_withdrawal_limit_v0(transaction, platform_version), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "calculate_current_withdrawal_limit".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v0/mod.rs new file mode 100644 index 0000000000..c4f2316d3f --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v0/mod.rs @@ -0,0 +1,89 @@ +use crate::drive::balances::TOTAL_SYSTEM_CREDITS_STORAGE_KEY; +use crate::drive::identity::withdrawals::calculate_current_withdrawal_limit::WithdrawalLimitInfo; +use crate::drive::identity::withdrawals::paths::{ + get_withdrawal_root_path, WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, +}; +use crate::drive::system::misc_path; +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::util::grove_operations::DirectQueryType; +use dpp::withdrawal::daily_withdrawal_limit::daily_withdrawal_limit; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Calculates the current withdrawal limit based on the available credits in the platform + /// and the amount already withdrawn in the last 24 hours. + /// + /// This function considers two main components to calculate the current withdrawal limit: + /// 1. The total maximum withdrawal allowed in a 24-hour period (`daily_maximum`). + /// 2. The amount already withdrawn in the last 24 hours (`withdrawal_amount_in_last_day`). + /// + /// The formula used is: `daily_maximum - withdrawal_amount_in_last_day`. + /// If the withdrawal amount in the last 24 hours exceeds the daily maximum, the result will be 0. + /// + /// # Parameters + /// + /// * `transaction`: The transaction context to use for querying data. + /// * `platform_version`: The version of the platform being used, containing relevant configuration details. + /// + /// # Returns + /// + /// * `Ok(Credits)`: The calculated current withdrawal limit, which is the maximum amount that can still be withdrawn in the current 24-hour window. + /// * `Err(Error)`: Returns an error if there was an issue retrieving the total credits, the daily maximum, or the already withdrawn amount. + /// + /// # Errors + /// + /// * `Error::Drive(DriveError::CriticalCorruptedState)`: + /// - If the total credits in the platform cannot be found, indicating a critical state corruption. + /// - If the withdrawal amount in the last 24 hours is negative, which should not happen. + pub(super) fn calculate_current_withdrawal_limit_v0( + &self, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result { + // The current withdrawal limit has two components + // 1. The total maximum that we are allowed to do in 24 hours + // 2. The amount that we have already withdrawn in the last 24 hours + let mut drive_operations = vec![]; + + let path_holding_total_credits = misc_path(); + let total_credits_in_platform = self + .grove_get_raw_value_u64_from_encoded_var_vec( + (&path_holding_total_credits).into(), + TOTAL_SYSTEM_CREDITS_STORAGE_KEY, + DirectQueryType::StatefulDirectQuery, + transaction, + &mut drive_operations, + &platform_version.drive, + )? + .ok_or(Error::Drive(DriveError::CriticalCorruptedState( + "Credits not found in Platform", + )))?; + + // Let's get the amount that we are allowed to get in the last 24 hours. + let daily_maximum = daily_withdrawal_limit(total_credits_in_platform, platform_version)?; + + let withdrawal_amount_in_last_day: u64 = self + .grove_get_sum_tree_total_value( + (&get_withdrawal_root_path()).into(), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + DirectQueryType::StatefulDirectQuery, + transaction, + &mut drive_operations, + &platform_version.drive, + )? + .try_into() + .map_err(|_| { + Error::Drive(DriveError::CriticalCorruptedState( + "Withdrawal amount in last day is negative", + )) + })?; + + Ok(WithdrawalLimitInfo { + daily_maximum, + withdrawals_amount: withdrawal_amount_in_last_day, + }) + } +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/document/fetch_oldest_withdrawal_documents_by_status/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/document/fetch_oldest_withdrawal_documents_by_status/v0/mod.rs index b60e41be44..4e611e39fb 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/document/fetch_oldest_withdrawal_documents_by_status/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/document/fetch_oldest_withdrawal_documents_by_status/v0/mod.rs @@ -113,7 +113,7 @@ mod tests { #[test] fn test_return_list_of_documents() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/mod.rs index a3545ad539..ca67af28bc 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/mod.rs @@ -1,11 +1,11 @@ mod v0; -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; use dpp::data_contracts::withdrawals_contract; use dpp::document::Document; +use dpp::withdrawal::WithdrawalTransactionIndex; use grovedb::TransactionArg; use platform_version::version::PlatformVersion; @@ -25,7 +25,7 @@ impl Drive { .identity .withdrawals .document - .find_up_to_100_withdrawal_documents_by_status_and_transaction_indices + .find_withdrawal_documents_by_status_and_transaction_indices { 0 => self.find_withdrawal_documents_by_status_and_transaction_indices_v0( status, @@ -35,8 +35,7 @@ impl Drive { platform_version, ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { - method: "find_up_to_100_withdrawal_documents_by_status_and_transaction_indices" - .to_string(), + method: "find_withdrawal_documents_by_status_and_transaction_indices".to_string(), known_versions: vec![0], received: version, })), diff --git a/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/v0/mod.rs index 0d0dda43ed..ea92ef5a67 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/document/find_withdrawal_documents_by_status_and_transaction_indices/v0/mod.rs @@ -1,5 +1,4 @@ use crate::drive::document::query::QueryDocumentsOutcomeV0Methods; -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::Drive; use crate::error::Error; use crate::query::{DriveDocumentQuery, InternalClauses, OrderClause, WhereClause}; @@ -8,6 +7,7 @@ use dpp::data_contracts::withdrawals_contract; use dpp::data_contracts::withdrawals_contract::v1::document_types::withdrawal; use dpp::document::Document; use dpp::platform_value::Value; +use dpp::withdrawal::WithdrawalTransactionIndex; use grovedb::TransactionArg; use indexmap::IndexMap; use platform_version::version::PlatformVersion; @@ -16,6 +16,7 @@ use std::collections::BTreeMap; impl Drive { // TODO(withdrawals): Currently it queries only up to 100 documents. // It works while we don't have pooling + // This should be a pathquery directly instead of a drive query for efficiency pub(super) fn find_withdrawal_documents_by_status_and_transaction_indices_v0( &self, @@ -97,7 +98,6 @@ impl Drive { #[cfg(test)] mod tests { use crate::config::DEFAULT_QUERY_LIMIT; - use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::util::test_helpers::setup::{ setup_document, setup_drive_with_initial_state_structure, setup_system_data_contract, }; @@ -110,12 +110,13 @@ mod tests { use dpp::tests::fixtures::get_withdrawal_document_fixture; use dpp::version::PlatformVersion; use dpp::withdrawal::Pooling; + use dpp::withdrawal::WithdrawalTransactionIndex; use super::*; #[test] fn test_find_pooled_withdrawal_documents_by_transaction_index() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/document/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/document/mod.rs index 0f3e6aec29..e047ea5a45 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/document/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/document/mod.rs @@ -1,4 +1,4 @@ -/// This module dedicated for a versioned fetch_up_to_100_oldest_withdrawal_documents_by_status +/// This module dedicated for a versioned fetch_oldest_withdrawal_documents_by_status pub mod fetch_oldest_withdrawal_documents_by_status; -/// This module dedicated for a versioned find_up_to_100_withdrawal_documents_by_status_and_transaction_indices +/// This module dedicated for a versioned find_withdrawal_documents_by_status_and_transaction_indices pub mod find_withdrawal_documents_by_status_and_transaction_indices; diff --git a/packages/rs-drive/src/drive/identity/withdrawals/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/mod.rs index 57f26a5b5e..25296ff37a 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/mod.rs @@ -1,12 +1,8 @@ /// Functions related to withdrawal documents pub mod document; +mod calculate_current_withdrawal_limit; /// Functions and constants related to GroveDB paths pub mod paths; /// Functions related to withdrawal transactions pub mod transaction; - -/// Simple type alias for withdrawal transaction with it's index -pub type WithdrawalTransactionIndexAndBytes = (WithdrawalTransactionIndex, Vec); -/// Transaction index type -pub type WithdrawalTransactionIndex = u64; diff --git a/packages/rs-drive/src/drive/identity/withdrawals/paths.rs b/packages/rs-drive/src/drive/identity/withdrawals/paths.rs index 0dfcb3c4c9..3d85be63b3 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/paths.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/paths.rs @@ -1,17 +1,24 @@ -use grovedb::Element; - use crate::drive::{Drive, RootTree}; use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; use crate::util::batch::GroveDbOpBatch; +use grovedb::Element; +use platform_version::version::PlatformVersion; /// constant key for transaction counter pub const WITHDRAWAL_TRANSACTIONS_NEXT_INDEX_KEY: [u8; 1] = [0]; /// constant id for subtree containing transactions queue pub const WITHDRAWAL_TRANSACTIONS_QUEUE_KEY: [u8; 1] = [1]; +/// constant id for subtree containing the sum of withdrawals +pub const WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY: [u8; 1] = [2]; +/// constant id for subtree containing the untied withdrawal transactions after they were broadcasted +pub const WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY: [u8; 1] = [3]; impl Drive { /// Add operations for creating initial withdrawal state structure - pub fn add_initial_withdrawal_state_structure_operations(batch: &mut GroveDbOpBatch) { + pub fn add_initial_withdrawal_state_structure_operations( + batch: &mut GroveDbOpBatch, + platform_version: &PlatformVersion, + ) { batch.add_insert( vec![vec![RootTree::WithdrawalTransactions as u8]], WITHDRAWAL_TRANSACTIONS_NEXT_INDEX_KEY.to_vec(), @@ -22,6 +29,17 @@ impl Drive { vec![vec![RootTree::WithdrawalTransactions as u8]], WITHDRAWAL_TRANSACTIONS_QUEUE_KEY.to_vec(), ); + + if platform_version.protocol_version >= 4 { + batch.add_insert_empty_sum_tree( + vec![vec![RootTree::WithdrawalTransactions as u8]], + WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY.to_vec(), + ); + batch.add_insert_empty_sum_tree( + vec![vec![RootTree::WithdrawalTransactions as u8]], + WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY.to_vec(), + ); + } } } @@ -50,3 +68,35 @@ pub fn get_withdrawal_transactions_queue_path() -> [&'static [u8]; 2] { &WITHDRAWAL_TRANSACTIONS_QUEUE_KEY, ] } + +/// Helper function to get the withdrawal transactions sum tree path as Vec +pub fn get_withdrawal_transactions_sum_tree_path_vec() -> Vec> { + vec![ + vec![RootTree::WithdrawalTransactions as u8], + WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY.to_vec(), + ] +} + +/// Helper function to get the withdrawal transactions sum tree path as [u8] +pub fn get_withdrawal_transactions_sum_tree_path() -> [&'static [u8]; 2] { + [ + Into::<&[u8; 1]>::into(RootTree::WithdrawalTransactions), + &WITHDRAWAL_TRANSACTIONS_SUM_AMOUNT_TREE_KEY, + ] +} + +/// Helper function to get the withdrawal transactions broadcasted path as Vec +pub fn get_withdrawal_transactions_broadcasted_path_vec() -> Vec> { + vec![ + vec![RootTree::WithdrawalTransactions as u8], + WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY.to_vec(), + ] +} + +/// Helper function to get the withdrawal transactions broadcasted path as [u8] +pub fn get_withdrawal_transactions_broadcasted_path() -> [&'static [u8]; 2] { + [ + Into::<&[u8; 1]>::into(RootTree::WithdrawalTransactions), + &WITHDRAWAL_TRANSACTIONS_BROADCASTED_KEY, + ] +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/mod.rs index 5554f8a4f6..59c820433d 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/mod.rs @@ -1,10 +1,10 @@ mod v0; -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; use platform_version::version::PlatformVersion; impl Drive { diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/v0/mod.rs index 4c162fd5ea..fb4b7f39c0 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/add_update_next_withdrawal_transaction_index_operation/v0/mod.rs @@ -1,7 +1,7 @@ -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::Drive; use crate::util::batch::drive_op_batch::WithdrawalOperationType; use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; impl Drive { pub(super) fn add_update_next_withdrawal_transaction_index_operation_v0( diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/mod.rs index c3ae1dae3c..bc8268b257 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/mod.rs @@ -1,7 +1,7 @@ -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; +use dpp::withdrawal::WithdrawalTransactionIndex; use grovedb::TransactionArg; use platform_version::version::PlatformVersion; diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/v0/mod.rs index bdc01546dd..e0ca52ed8b 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/fetch_next_withdrawal_transaction_index/v0/mod.rs @@ -1,8 +1,8 @@ use crate::drive::identity::withdrawals::paths::WITHDRAWAL_TRANSACTIONS_NEXT_INDEX_KEY; -use crate::drive::identity::withdrawals::WithdrawalTransactionIndex; use crate::drive::{Drive, RootTree}; use crate::error::drive::DriveError; use crate::error::Error; +use dpp::withdrawal::WithdrawalTransactionIndex; use grovedb::{Element, TransactionArg}; use platform_version::version::PlatformVersion; diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs index 9928d324da..a2dafcb7cb 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/index/mod.rs @@ -14,7 +14,7 @@ mod tests { #[test] fn test_next_withdrawal_transaction_index() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -59,7 +59,7 @@ mod tests { #[test] fn test_initial_withdrawal_transaction_index() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/mod.rs index d0e8168790..f23c60bba4 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/mod.rs @@ -1,8 +1,9 @@ -use crate::drive::identity::withdrawals::WithdrawalTransactionIndexAndBytes; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; use crate::util::batch::DriveOperation; +use dpp::fee::Credits; +use dpp::withdrawal::WithdrawalTransactionIndexAndBytes; use platform_version::version::PlatformVersion; mod v0; @@ -12,6 +13,7 @@ impl Drive { pub fn add_enqueue_untied_withdrawal_transaction_operations( &self, withdrawal_transactions: Vec, + total_sum: Credits, drive_operation_types: &mut Vec, platform_version: &PlatformVersion, ) -> Result<(), Error> { @@ -27,6 +29,7 @@ impl Drive { 0 => { self.add_enqueue_untied_withdrawal_transaction_operations_v0( withdrawal_transactions, + total_sum, drive_operation_types, ); diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/v0/mod.rs index b14f505218..1df5e12da9 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/add_enqueue_untied_withdrawal_transaction_operations/v0/mod.rs @@ -1,12 +1,16 @@ -use crate::drive::identity::withdrawals::WithdrawalTransactionIndexAndBytes; use crate::drive::Drive; use crate::util::batch::drive_op_batch::WithdrawalOperationType; use crate::util::batch::DriveOperation; +use dpp::fee::Credits; +use dpp::prelude::TimestampMillis; +use dpp::withdrawal::WithdrawalTransactionIndexAndBytes; +const DAY_AND_A_HOUR_IN_MS: TimestampMillis = 90_000_000; //25 hours impl Drive { pub(super) fn add_enqueue_untied_withdrawal_transaction_operations_v0( &self, withdrawal_transactions: Vec, + total_sum: Credits, drive_operation_types: &mut Vec, ) { if !withdrawal_transactions.is_empty() { @@ -15,6 +19,13 @@ impl Drive { withdrawal_transactions, }, )); + drive_operation_types.push(DriveOperation::WithdrawalOperation( + WithdrawalOperationType::ReserveWithdrawalAmount { + amount: total_sum, + // Best to use a constant here and not a versioned item as this most likely will not change + expiration_after: DAY_AND_A_HOUR_IN_MS, + }, + )); } } } diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/mod.rs index 3fadfcc5c8..cdc4672759 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/mod.rs @@ -1,15 +1,16 @@ mod v0; -use crate::drive::identity::withdrawals::WithdrawalTransactionIndexAndBytes; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndexAndBytes; use grovedb::TransactionArg; use platform_version::version::PlatformVersion; impl Drive { - /// Get specified amount of withdrawal transactions from the DB + /// Deque specified amount of untiled withdrawal transactions + /// and move them to broadcasted queue pub fn dequeue_untied_withdrawal_transactions( &self, limit: u16, diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/v0/mod.rs index a89b788b10..5911ed5cda 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/v0/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/dequeue_untied_withdrawal_transactions/v0/mod.rs @@ -1,13 +1,11 @@ use crate::drive::identity::withdrawals::paths::get_withdrawal_transactions_queue_path_vec; -use crate::drive::identity::withdrawals::{ - WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes, -}; use crate::drive::Drive; use crate::error::drive::DriveError; use crate::error::Error; use crate::query::{Query, QueryItem}; use crate::util::batch::drive_op_batch::WithdrawalOperationType; use crate::util::batch::DriveOperation; +use dpp::withdrawal::{WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes}; use grovedb::query_result_type::QueryResultType; use grovedb::{Element, PathQuery, SizedQuery, TransactionArg}; use platform_version::version::PlatformVersion; @@ -22,7 +20,7 @@ impl Drive { drive_operation_types: &mut Vec, platform_version: &PlatformVersion, ) -> Result, Error> { - let mut query = Query::new(); + let mut query = Query::new_with_direction(true); query.insert_item(QueryItem::RangeFull(RangeFull)); @@ -39,7 +37,7 @@ impl Drive { .grove .query_raw( &path_query, - transaction.is_some(), + true, true, true, QueryResultType::QueryKeyElementPairResultType, @@ -71,12 +69,14 @@ impl Drive { }) .collect::, Error>>()?; - if !withdrawal_transactions.is_empty() { - for (index, _) in withdrawal_transactions.iter() { - drive_operation_types.push(DriveOperation::WithdrawalOperation( - WithdrawalOperationType::DeleteWithdrawalTransaction { index: *index }, - )); - } + let indexes: Vec = withdrawal_transactions + .iter() + .map(|(index, _)| *index) + .collect(); + if !indexes.is_empty() { + drive_operation_types.push(DriveOperation::WithdrawalOperation( + WithdrawalOperationType::MoveWithdrawalTransactionsToBroadcasted { indexes }, + )); } Ok(withdrawal_transactions) diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs index 85621a35e4..b7817dd338 100644 --- a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/mod.rs @@ -1,25 +1,28 @@ -/// This module dedicated for a versioned add_enqueue_untied_withdrawal_transaction_operations +/// This module is dedicated for a versioned add_enqueue_untied_withdrawal_transaction_operations pub mod add_enqueue_untied_withdrawal_transaction_operations; -/// This module dedicated for a versioned dequeue_untied_withdrawal_transactions +/// This module is dedicated for a versioned dequeue_untied_withdrawal_transactions pub mod dequeue_untied_withdrawal_transactions; +/// This module is dedicated to removing broadcasted withdrawal transactions after core says they were completed +pub mod remove_broadcasted_withdrawal_transactions_after_completion; + +/// This module is dedicated to moving broadcasted withdrawal transactions back to the main queue +pub mod move_broadcasted_withdrawal_transactions_back_to_queue_operations; + #[cfg(test)] mod tests { - use crate::drive::identity::withdrawals::{ - WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes, - }; use crate::util::batch::DriveOperation; use dpp::block::block_info::BlockInfo; use dpp::block::epoch::Epoch; use crate::util::test_helpers::setup::setup_drive_with_initial_state_structure; - use dpp::version::PlatformVersion; + use dpp::withdrawal::{WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes}; + use platform_version::version::PlatformVersion; #[test] fn test_enqueue_and_dequeue() { - let drive = setup_drive_with_initial_state_structure(); - let platform_version = PlatformVersion::latest(); + let drive = setup_drive_with_initial_state_structure(None); let transaction = drive.grove.start_transaction(); @@ -39,6 +42,7 @@ mod tests { drive .add_enqueue_untied_withdrawal_transaction_operations( withdrawals, + 100, &mut drive_operations, platform_version, ) diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/mod.rs new file mode 100644 index 0000000000..d7ca0deb45 --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/mod.rs @@ -0,0 +1,43 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; +use platform_version::version::PlatformVersion; + +mod v0; + +impl Drive { + /// Moves broadcasted withdrawal transactions back to the queue + pub fn move_broadcasted_withdrawal_transactions_back_to_queue_operations( + &self, + indexes: Vec, + drive_operation_types: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive + .methods + .identity + .withdrawals + .transaction + .queue + .move_broadcasted_withdrawal_transactions_back_to_queue_operations + { + 0 => { + self.move_broadcasted_withdrawal_transactions_back_to_queue_operations_v0( + indexes, + drive_operation_types, + ); + + Ok(()) + } + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "move_broadcasted_withdrawal_transactions_back_to_queue_operations" + .to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/v0/mod.rs new file mode 100644 index 0000000000..7fc17d4d8a --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/move_broadcasted_withdrawal_transactions_back_to_queue_operations/v0/mod.rs @@ -0,0 +1,25 @@ +use crate::drive::Drive; +use crate::util::batch::drive_op_batch::WithdrawalOperationType; +use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; + +impl Drive { + pub(super) fn move_broadcasted_withdrawal_transactions_back_to_queue_operations_v0( + &self, + indexes: Vec, + drive_operation_types: &mut Vec, + ) { + if !indexes.is_empty() { + tracing::trace!( + "Moving {} broadcasted withdrawal transactions back to the queue for resigning: {:?}", + indexes.len(), + indexes + ); + drive_operation_types.push(DriveOperation::WithdrawalOperation( + WithdrawalOperationType::MoveBroadcastedWithdrawalTransactionsBackToQueueForResigning { + indexes, + }, + )); + } + } +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/mod.rs new file mode 100644 index 0000000000..a3f0c50dbc --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/mod.rs @@ -0,0 +1,40 @@ +mod v0; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Get specified amount of withdrawal transactions from the DB + pub fn remove_broadcasted_withdrawal_transactions_after_completion_operations( + &self, + indexes: Vec, + drive_operation_types: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive + .methods + .identity + .withdrawals + .transaction + .queue + .remove_broadcasted_withdrawal_transactions_after_completion_operations + { + 0 => Ok(self + .remove_broadcasted_withdrawal_transactions_after_completion_operations_v0( + indexes, + drive_operation_types, + )), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "remove_broadcasted_withdrawal_transactions_after_completion_operations" + .to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/v0/mod.rs b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/v0/mod.rs new file mode 100644 index 0000000000..70cf03bad1 --- /dev/null +++ b/packages/rs-drive/src/drive/identity/withdrawals/transaction/queue/remove_broadcasted_withdrawal_transactions_after_completion/v0/mod.rs @@ -0,0 +1,15 @@ +use crate::drive::Drive; +use crate::util::batch::drive_op_batch::WithdrawalOperationType; +use crate::util::batch::DriveOperation; +use dpp::withdrawal::WithdrawalTransactionIndex; +impl Drive { + pub(super) fn remove_broadcasted_withdrawal_transactions_after_completion_operations_v0( + &self, + indexes: Vec, + drive_operation_types: &mut Vec, + ) { + drive_operation_types.push(DriveOperation::WithdrawalOperation( + WithdrawalOperationType::DeleteCompletedBroadcastedWithdrawalTransactions { indexes }, + )); + } +} diff --git a/packages/rs-drive/src/drive/initialization/genesis_core_height/mod.rs b/packages/rs-drive/src/drive/initialization/genesis_core_height/mod.rs index 5e8f21d95e..189bbac47a 100644 --- a/packages/rs-drive/src/drive/initialization/genesis_core_height/mod.rs +++ b/packages/rs-drive/src/drive/initialization/genesis_core_height/mod.rs @@ -81,7 +81,7 @@ mod tests { #[test] fn test_initial_state_structure_proper_heights() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let db_transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/initialization/v0/mod.rs b/packages/rs-drive/src/drive/initialization/v0/mod.rs index e1c4ee377d..ff30075d68 100644 --- a/packages/rs-drive/src/drive/initialization/v0/mod.rs +++ b/packages/rs-drive/src/drive/initialization/v0/mod.rs @@ -170,7 +170,7 @@ impl Drive { )?; // In Withdrawals - Drive::add_initial_withdrawal_state_structure_operations(&mut batch); + Drive::add_initial_withdrawal_state_structure_operations(&mut batch, platform_version); // For Versioning via forks Drive::add_initial_fork_update_structure_operations(&mut batch); @@ -199,7 +199,7 @@ mod tests { #[test] fn test_create_initial_state_structure() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -228,7 +228,7 @@ mod tests { #[test] fn test_initial_state_structure_proper_heights() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let _db_transaction = drive.grove.start_transaction(); diff --git a/packages/rs-drive/src/drive/mod.rs b/packages/rs-drive/src/drive/mod.rs index f5abb9f3c9..fc28c49647 100644 --- a/packages/rs-drive/src/drive/mod.rs +++ b/packages/rs-drive/src/drive/mod.rs @@ -75,13 +75,13 @@ pub struct Drive { // is at the top of the tree in order to reduce proof size // the most import tree is theDataContract Documents tree -// DataContract_Documents 64 -// / \ -// Identities 32 Balances 96 -// / \ / \ -// Token_Balances 16 Pools 48 WithdrawalTransactions 80 Votes 112 -// / \ / / / \ -// NUPKH->I 8 UPKH->I 24 PreFundedSpecializedBalances 40 SpentAssetLockTransactions 72 Misc 104 Versions 120 +// DataContract_Documents 64 +// / \ +// Identities 32 Balances 96 +// / \ / \ +// Token_Balances 16 Pools 48 WithdrawalTransactions 80 Votes 112 +// / \ / \ / / \ +// NUPKH->I 8 UPKH->I 24 PreFundedSpecializedBalances 40 Masternode Lists 56 (reserved) SpentAssetLockTransactions 72 Misc 104 Versions 120 /// Keys for the root tree. #[cfg(any(feature = "server", feature = "verify"))] @@ -101,6 +101,9 @@ pub enum RootTree { /// PreFundedSpecializedBalances are balances that can fund specific state transitions that match /// predefined criteria PreFundedSpecializedBalances = 40, + // todo: reserved + // MasternodeLists contain the current masternode list as well as the evonode masternode list + // MasternodeLists = 56, /// Spent Asset Lock Transactions SpentAssetLockTransactions = 72, /// Misc @@ -129,6 +132,7 @@ impl fmt::Display for RootTree { } RootTree::Pools => "Pools", RootTree::PreFundedSpecializedBalances => "PreFundedSpecializedBalances", + // RootTree::MasternodeLists => "MasternodeLists", RootTree::SpentAssetLockTransactions => "SpentAssetLockTransactions", RootTree::Misc => "Misc", RootTree::WithdrawalTransactions => "WithdrawalTransactions", @@ -170,6 +174,7 @@ impl TryFrom for RootTree { 24 => Ok(RootTree::UniquePublicKeyHashesToIdentities), 8 => Ok(RootTree::NonUniquePublicKeyKeyHashesToIdentities), 48 => Ok(RootTree::Pools), + // 56 => Ok(RootTree::MasternodeLists), //todo (reserved) 40 => Ok(RootTree::PreFundedSpecializedBalances), 72 => Ok(RootTree::SpentAssetLockTransactions), 104 => Ok(RootTree::Misc), @@ -195,6 +200,7 @@ impl From for &'static [u8; 1] { RootTree::SpentAssetLockTransactions => &[72], RootTree::Pools => &[48], RootTree::PreFundedSpecializedBalances => &[40], + // RootTree::MasternodeLists => &[56], RootTree::Misc => &[104], RootTree::WithdrawalTransactions => &[80], RootTree::Balances => &[96], diff --git a/packages/rs-drive/src/drive/system/genesis_time/mod.rs b/packages/rs-drive/src/drive/system/genesis_time/mod.rs index cd888ccd31..9eee51529b 100644 --- a/packages/rs-drive/src/drive/system/genesis_time/mod.rs +++ b/packages/rs-drive/src/drive/system/genesis_time/mod.rs @@ -94,7 +94,7 @@ mod tests { #[test] fn should_return_some_if_genesis_time_is_persisted() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let genesis_time_ms = 100; diff --git a/packages/rs-drive/src/drive/votes/cleanup/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/mod.rs index 55b79c8445..e425c9a6c4 100644 --- a/packages/rs-drive/src/drive/votes/cleanup/mod.rs +++ b/packages/rs-drive/src/drive/votes/cleanup/mod.rs @@ -2,5 +2,7 @@ mod remove_all_votes_given_by_identities; mod remove_contested_resource_vote_poll_contenders_operations; mod remove_contested_resource_vote_poll_documents_operations; mod remove_contested_resource_vote_poll_end_date_query_operations; +mod remove_contested_resource_vote_poll_info_operations; +mod remove_contested_resource_vote_poll_top_level_index_operations; mod remove_contested_resource_vote_poll_votes_operations; mod remove_specific_votes_given_by_identity; diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/mod.rs index 21dcf70e23..82fcda8cb0 100644 --- a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/mod.rs +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/mod.rs @@ -1,4 +1,5 @@ mod v0; +mod v1; use crate::drive::Drive; use std::collections::BTreeMap; @@ -41,9 +42,15 @@ impl Drive { transaction, platform_version, ), + 1 => self.remove_contested_resource_vote_poll_contenders_operations_v1( + vote_polls, + batch_operations, + transaction, + platform_version, + ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "remove_contested_resource_vote_poll_contenders_operations".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/v1/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/v1/mod.rs new file mode 100644 index 0000000000..7440aaadce --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_contenders_operations/v1/mod.rs @@ -0,0 +1,71 @@ +use crate::drive::votes::paths::{ + VotePollPaths, RESOURCE_ABSTAIN_VOTE_TREE_KEY_U8_32, RESOURCE_LOCK_VOTE_TREE_KEY_U8_32, +}; +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::drive::votes::ResourceVoteChoiceToKeyTrait; +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::BatchDeleteApplyType; +use dpp::identifier::Identifier; +use dpp::identity::TimestampMillis; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; +use std::collections::BTreeMap; + +impl Drive { + /// We add votes poll references by end date in order to be able to check on every new block if + /// any vote polls should be closed. + pub(in crate::drive::votes) fn remove_contested_resource_vote_poll_contenders_operations_v1( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + for (vote_poll, _, votes) in vote_polls { + let path = vote_poll.contenders_path(platform_version)?; + for (resource_vote_choice, _) in *votes { + self.batch_delete( + path.as_slice().into(), + resource_vote_choice.to_key().as_slice(), + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + + self.batch_delete( + path.as_slice().into(), + &RESOURCE_ABSTAIN_VOTE_TREE_KEY_U8_32, + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + + self.batch_delete( + path.as_slice().into(), + &RESOURCE_LOCK_VOTE_TREE_KEY_U8_32, + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + + Ok(()) + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/mod.rs index 235010a236..8fbd57c83f 100644 --- a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/mod.rs +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/mod.rs @@ -1,4 +1,5 @@ mod v0; +mod v1; use crate::drive::Drive; use std::collections::BTreeMap; @@ -24,6 +25,7 @@ impl Drive { &TimestampMillis, &BTreeMap>, )], + clean_up_testnet_corrupted_reference_issue: bool, batch_operations: &mut Vec, transaction: TransactionArg, platform_version: &PlatformVersion, @@ -41,9 +43,16 @@ impl Drive { transaction, platform_version, ), + 1 => self.remove_contested_resource_vote_poll_documents_operations_v1( + vote_polls, + clean_up_testnet_corrupted_reference_issue, + batch_operations, + transaction, + platform_version, + ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "remove_contested_resource_vote_poll_documents_operations".to_string(), - known_versions: vec![0], + known_versions: vec![0, 1], received: version, })), } diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v0/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v0/mod.rs index dba3c5369f..cb25558a38 100644 --- a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v0/mod.rs @@ -17,6 +17,8 @@ use std::ops::RangeFull; impl Drive { /// We add documents poll references by end date in order to be able to check on every new block if /// any vote polls should be closed. + /// !!!!! THIS VERSION CONTAINED A SERIOUS ISSUE !!!!! + /// However, it should never have made it to mainnet. pub(in crate::drive::votes) fn remove_contested_resource_vote_poll_documents_operations_v0( &self, vote_polls: &[( diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v1/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v1/mod.rs new file mode 100644 index 0000000000..f672267034 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_documents_operations/v1/mod.rs @@ -0,0 +1,104 @@ +use crate::drive::votes::paths::VotePollPaths; +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::query::vote_poll_vote_state_query::{ + ContestedDocumentVotePollDriveQueryResultType, ResolvedContestedDocumentVotePollDriveQuery, +}; +use crate::util::grove_operations::BatchDeleteApplyType; +use dpp::document::DocumentV0Getters; +use dpp::identifier::Identifier; +use dpp::identity::TimestampMillis; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; +use std::collections::BTreeMap; + +impl Drive { + /// We add documents poll references by end date in order to be able to check on every new block if + /// any vote polls should be closed. + pub(in crate::drive::votes) fn remove_contested_resource_vote_poll_documents_operations_v1( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + clean_up_testnet_corrupted_reference_issue: bool, + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + for (vote_poll, _, vote_choices) in vote_polls { + if !clean_up_testnet_corrupted_reference_issue { + // if we are in clean up we keep all documents + let query = ResolvedContestedDocumentVotePollDriveQuery { + vote_poll: (*vote_poll).into(), + result_type: ContestedDocumentVotePollDriveQueryResultType::Documents, + offset: None, + limit: None, + start_at: None, + allow_include_locked_and_abstaining_vote_tally: false, + }; + + let contested_document_vote_poll_drive_query_execution_result = + query.execute(self, transaction, &mut vec![], platform_version)?; + + let document_type = vote_poll.document_type()?; + let document_keys = contested_document_vote_poll_drive_query_execution_result + .contenders + .into_iter() + .filter_map(|contender| { + let maybe_document_result = + match contender.try_into_contender(document_type, platform_version) { + Ok(mut contender) => contender.take_document(), + Err(e) => return Some(Err(e.into())), + }; + + match maybe_document_result { + Some(document) => Some(Ok(document.id().to_vec())), // Assuming document.id holds the document key + None => None, // Handle the case where no document is found + } + }) + .collect::>, Error>>()?; + + let documents_storage_path = vote_poll.documents_storage_path_vec(); + + for document_key in document_keys { + self.batch_delete( + documents_storage_path.as_slice().into(), + document_key.as_slice(), + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + } + + // We also need to delete all the references + + for resource_vote_choice in vote_choices.keys() { + if matches!(resource_vote_choice, ResourceVoteChoice::TowardsIdentity(_)) { + let contender_path = + vote_poll.contender_path(resource_vote_choice, platform_version)?; + self.batch_delete( + contender_path.as_slice().into(), + vec![0].as_slice(), + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + } + } + + Ok(()) + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/mod.rs index 73ef67bc5b..15fba02e81 100644 --- a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/mod.rs +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/mod.rs @@ -1,4 +1,5 @@ mod v0; +mod v1; use crate::drive::Drive; use std::collections::BTreeMap; @@ -41,6 +42,12 @@ impl Drive { transaction, platform_version, ), + 1 => self.remove_contested_resource_vote_poll_end_date_query_operations_v1( + vote_polls, + batch_operations, + transaction, + platform_version, + ), version => Err(Error::Drive(DriveError::UnknownVersionMismatch { method: "remove_contested_resource_vote_poll_end_date_query_operations".to_string(), known_versions: vec![0], diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/v1/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/v1/mod.rs new file mode 100644 index 0000000000..b47e5feb60 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_end_date_query_operations/v1/mod.rs @@ -0,0 +1,116 @@ +use crate::drive::votes::paths::{ + vote_contested_resource_end_date_queries_at_time_tree_path_vec, + vote_end_date_queries_tree_path_vec, +}; +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::query::VotePollsByEndDateDriveQuery; +use crate::util::common::encode::encode_u64; +use crate::util::grove_operations::BatchDeleteApplyType; +use dpp::identifier::Identifier; +use dpp::identity::TimestampMillis; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; +use std::collections::BTreeMap; + +impl Drive { + /// We add votes poll references by end date in order to be able to check on every new block if + /// any vote polls should be closed. + pub(in crate::drive::votes) fn remove_contested_resource_vote_poll_end_date_query_operations_v1( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + // This is a GroveDB Tree (Not Sub Tree Merk representation) + // End Date queries + // / \ + // 15/08/2025 5PM 15/08/2025 6PM + // / \ | + // VotePoll Info 1 VotePoll Info 2 VotePoll Info 3 + + let delete_apply_type = BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }; + + let mut by_end_date: BTreeMap> = BTreeMap::new(); + + for (vote_poll, end_date, _) in vote_polls { + let vote_polls_unique_ids = by_end_date.entry(**end_date).or_default(); + + vote_polls_unique_ids.push(vote_poll.unique_id()?); + } + + for (end_date, unique_ids) in by_end_date { + let time_path = + vote_contested_resource_end_date_queries_at_time_tree_path_vec(end_date); + + let count = unique_ids.len(); + + for unique_id in unique_ids { + self.batch_delete( + time_path.as_slice().into(), + unique_id.as_bytes(), + delete_apply_type.clone(), + transaction, + batch_operations, + &platform_version.drive, + )?; + } + + let should_delete_parent_time_tree = if count + < platform_version + .drive_abci + .validation_and_processing + .event_constants + .maximum_vote_polls_to_process as usize + { + true + } else { + // We need to see if we have more to process + let increased_limit = platform_version + .drive_abci + .validation_and_processing + .event_constants + .maximum_vote_polls_to_process + + 1; + let total_count = + VotePollsByEndDateDriveQuery::execute_no_proof_for_specialized_end_time_query_only_check_end_time( + end_date, + increased_limit, + self, + transaction, + &mut vec![], + platform_version, + )?.len(); + + if total_count <= count { + true + } else { + false + } + }; + + if should_delete_parent_time_tree { + self.batch_delete( + vote_end_date_queries_tree_path_vec().as_slice().into(), + encode_u64(end_date).as_slice(), + delete_apply_type.clone(), + transaction, + batch_operations, + &platform_version.drive, + )?; + } + } + + Ok(()) + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/mod.rs new file mode 100644 index 0000000000..f67d798309 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/mod.rs @@ -0,0 +1,50 @@ +mod v0; + +use crate::drive::Drive; +use std::collections::BTreeMap; + +use crate::error::drive::DriveError; +use crate::error::Error; + +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::fees::op::LowLevelDriveOperation; +use dpp::identifier::Identifier; +use dpp::prelude::TimestampMillis; +use dpp::version::PlatformVersion; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; + +impl Drive { + /// We remove the entire vote poll + pub fn remove_contested_resource_info_operations( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive + .methods + .vote + .cleanup + .remove_contested_resource_info_operations + { + 0 => self.remove_contested_resource_info_operations_v0( + vote_polls, + batch_operations, + transaction, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "remove_contested_resource_info_operations".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/v0/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/v0/mod.rs new file mode 100644 index 0000000000..141fd3c766 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_info_operations/v0/mod.rs @@ -0,0 +1,42 @@ +use crate::drive::votes::paths::{VotePollPaths, RESOURCE_STORED_INFO_KEY_U8_32}; +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::BatchDeleteApplyType; +use dpp::identifier::Identifier; +use dpp::identity::TimestampMillis; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; +use std::collections::BTreeMap; + +impl Drive { + pub(in crate::drive::votes) fn remove_contested_resource_info_operations_v0( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + for (vote_poll, _, _) in vote_polls { + let path = vote_poll.contenders_path(platform_version)?; + self.batch_delete( + path.as_slice().into(), + &RESOURCE_STORED_INFO_KEY_U8_32, + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + + Ok(()) + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/mod.rs new file mode 100644 index 0000000000..f91c604064 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/mod.rs @@ -0,0 +1,50 @@ +mod v0; + +use crate::drive::Drive; +use std::collections::BTreeMap; + +use crate::error::drive::DriveError; +use crate::error::Error; + +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::fees::op::LowLevelDriveOperation; +use dpp::identifier::Identifier; +use dpp::prelude::TimestampMillis; +use dpp::version::PlatformVersion; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; + +impl Drive { + /// We remove the entire vote poll + pub fn remove_contested_resource_top_level_index_operations( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + match platform_version + .drive + .methods + .vote + .cleanup + .remove_contested_resource_top_level_index_operations + { + 0 => self.remove_contested_resource_top_level_index_operations_v0( + vote_polls, + batch_operations, + transaction, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "remove_contested_resource_top_level_index_operations".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/v0/mod.rs b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/v0/mod.rs new file mode 100644 index 0000000000..13d3832592 --- /dev/null +++ b/packages/rs-drive/src/drive/votes/cleanup/remove_contested_resource_vote_poll_top_level_index_operations/v0/mod.rs @@ -0,0 +1,44 @@ +use crate::drive::votes::paths::VotePollPaths; +use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo; +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::BatchDeleteApplyType; +use dpp::identifier::Identifier; +use dpp::identity::TimestampMillis; +use dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; +use std::collections::BTreeMap; + +impl Drive { + pub(in crate::drive::votes) fn remove_contested_resource_top_level_index_operations_v0( + &self, + vote_polls: &[( + &ContestedDocumentResourceVotePollWithContractInfo, + &TimestampMillis, + &BTreeMap>, + )], + batch_operations: &mut Vec, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(), Error> { + for (vote_poll, _, _) in vote_polls { + let (path, last_index_path) = vote_poll.last_index_path(platform_version)?; + if let Some(last_index_path) = last_index_path { + self.batch_delete( + path.as_slice().into(), + last_index_path.as_slice(), + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + batch_operations, + &platform_version.drive, + )?; + } + } + + Ok(()) + } +} diff --git a/packages/rs-drive/src/drive/votes/insert/vote_poll/add_vote_poll_end_date_query_operations/v0/mod.rs b/packages/rs-drive/src/drive/votes/insert/vote_poll/add_vote_poll_end_date_query_operations/v0/mod.rs index ea2fc698ff..1c5fb593e9 100644 --- a/packages/rs-drive/src/drive/votes/insert/vote_poll/add_vote_poll_end_date_query_operations/v0/mod.rs +++ b/packages/rs-drive/src/drive/votes/insert/vote_poll/add_vote_poll_end_date_query_operations/v0/mod.rs @@ -92,6 +92,8 @@ impl Drive { let drive_key = DriveKeyInfo::Key(encode_u64(end_date)); + // println!("adding end vote date at end_date {} ({})", end_date, if estimated_costs_only_with_layer_info.is_some() { "costs"} else {"apply"}); + let path_key_info = drive_key.add_path_info::<0>(PathInfo::PathAsVec(end_date_query_path)); let apply_type = if estimated_costs_only_with_layer_info.is_none() { diff --git a/packages/rs-drive/src/drive/votes/paths.rs b/packages/rs-drive/src/drive/votes/paths.rs index 35874e6f60..08e73e0a7c 100644 --- a/packages/rs-drive/src/drive/votes/paths.rs +++ b/packages/rs-drive/src/drive/votes/paths.rs @@ -88,6 +88,20 @@ pub trait VotePollPaths { /// The contenders path as a vec fn contenders_path(&self, platform_version: &PlatformVersion) -> Result>, Error>; + /// the last index path as a path vec and a key + fn last_index_path( + &self, + platform_version: &PlatformVersion, + ) -> Result<(Vec>, Option>), Error> { + let mut contenders_path = self.contenders_path(platform_version)?; + if contenders_path.is_empty() { + Ok((vec![], None)) + } else { + let last_index = contenders_path.remove(contenders_path.len() - 1); + Ok((contenders_path, Some(last_index))) + } + } + /// The path that would store the contender information for a single contender fn contender_path( &self, diff --git a/packages/rs-drive/src/error/drive.rs b/packages/rs-drive/src/error/drive.rs index 74bd830129..922cc5b8e4 100644 --- a/packages/rs-drive/src/error/drive.rs +++ b/packages/rs-drive/src/error/drive.rs @@ -107,7 +107,7 @@ pub enum DriveError { CorruptedContractPath(&'static str), /// Error #[error("corrupted contract indexes error: {0}")] - CorruptedContractIndexes(&'static str), + CorruptedContractIndexes(String), /// Error #[error("corrupted document path error: {0}")] CorruptedDocumentPath(&'static str), diff --git a/packages/rs-drive/src/error/identity.rs b/packages/rs-drive/src/error/identity.rs index c1a888b6da..b3c3b8d0fc 100644 --- a/packages/rs-drive/src/error/identity.rs +++ b/packages/rs-drive/src/error/identity.rs @@ -7,7 +7,7 @@ pub enum IdentityError { /// Identity already exists error #[error("identity key already exists for user error: {0}")] - IdentityKeyAlreadyExists(&'static str), + IdentityKeyAlreadyExists(String), /// A user is requesting an unknown key error #[error("identity public key not found: {0}")] diff --git a/packages/rs-drive/src/error/mod.rs b/packages/rs-drive/src/error/mod.rs index 456e759d0c..28ecd0f992 100644 --- a/packages/rs-drive/src/error/mod.rs +++ b/packages/rs-drive/src/error/mod.rs @@ -2,12 +2,12 @@ use self::drive::DriveError; use crate::error::cache::CacheError; use crate::error::contract::DataContractError; use crate::error::proof::ProofError; -use crate::error::storage_flags::StorageFlagsError; use document::DocumentError; use dpp::data_contract::errors::DataContractError as ProtocolDataContractError; use dpp::platform_value::Error as ValueError; use dpp::ProtocolError; use fee::FeeError; +use grovedb_epoch_based_storage_flags::error::StorageFlagsError; use identity::IdentityError; use query::QuerySyntaxError; @@ -27,8 +27,6 @@ pub mod identity; pub mod proof; /// Query module pub mod query; -/// Storage flags module -pub mod storage_flags; /// Errors #[derive(Debug, thiserror::Error)] diff --git a/packages/rs-drive/src/error/storage_flags.rs b/packages/rs-drive/src/error/storage_flags.rs deleted file mode 100644 index dacc711f21..0000000000 --- a/packages/rs-drive/src/error/storage_flags.rs +++ /dev/null @@ -1,22 +0,0 @@ -/// Storage flag errors -#[derive(Debug, thiserror::Error)] -pub enum StorageFlagsError { - /// Error - #[error("deserialize unknown storage flags type error: {0}")] - DeserializeUnknownStorageFlagsType(&'static str), - /// Error - #[error("storage flags wrong size error: {0}")] - StorageFlagsWrongSize(&'static str), - /// Error - #[error("removing at epoch with no associated storage error: {0}")] - RemovingAtEpochWithNoAssociatedStorage(&'static str), - /// Error - #[error("storage flags overflow error: {0}")] - StorageFlagsOverflow(&'static str), - /// Error - #[error("merging storage flags from different owners error: {0}")] - MergingStorageFlagsFromDifferentOwners(&'static str), - /// Error - #[error("merging storage flags with different base epoch: {0}")] - MergingStorageFlagsWithDifferentBaseEpoch(&'static str), -} diff --git a/packages/rs-drive/src/query/drive_contested_document_query.rs b/packages/rs-drive/src/query/drive_contested_document_query.rs new file mode 100644 index 0000000000..e83950d6e0 --- /dev/null +++ b/packages/rs-drive/src/query/drive_contested_document_query.rs @@ -0,0 +1,160 @@ +use crate::drive::contract::paths::DataContractPaths; +use crate::drive::Drive; +use crate::error::Error; +#[cfg(feature = "server")] +use crate::fees::op::LowLevelDriveOperation; +#[cfg(feature = "server")] +use crate::query::GroveError; +use crate::query::Query; +use dpp::block::block_info::BlockInfo; +use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; +use dpp::data_contract::document_type::DocumentTypeRef; +use dpp::data_contract::DataContract; +use dpp::prelude::Identifier; +#[cfg(feature = "server")] +use grovedb::TransactionArg; +#[cfg(any(feature = "server", feature = "verify"))] +use grovedb::{PathQuery, SizedQuery}; +use platform_version::version::PlatformVersion; +use std::ops::BitXor; + +#[cfg(any(feature = "server", feature = "verify"))] +/// Internal clauses struct +#[derive(Clone, Debug, PartialEq, Default)] +pub struct PrimaryContestedInternalClauses { + /// Primary key in clause + pub primary_key_in_clause: Option>, + /// Primary key equal clause + pub primary_key_equal_clause: Option, +} + +impl PrimaryContestedInternalClauses { + #[cfg(any(feature = "server", feature = "verify"))] + /// Returns true if the clause is a valid format. + pub fn verify(&self) -> bool { + // There can only be 1 primary key clause + self.primary_key_in_clause + .is_some() + .bitxor(self.primary_key_equal_clause.is_some()) + } +} + +#[cfg(any(feature = "server", feature = "verify"))] +/// Drive query struct +#[derive(Debug, PartialEq, Clone)] +pub struct DriveContestedDocumentQuery<'a> { + ///DataContract + pub contract: &'a DataContract, + /// Document type + pub document_type: DocumentTypeRef<'a>, + /// Internal clauses + pub internal_clauses: PrimaryContestedInternalClauses, +} + +impl<'a> DriveContestedDocumentQuery<'a> { + #[cfg(any(feature = "server", feature = "verify"))] + /// Returns a path query given a document type path and starting document. + pub fn construct_path_query( + &self, + _platform_version: &PlatformVersion, + ) -> Result { + // First we should get the overall document_type_path + let mut path = self + .contract + .contested_document_type_path(self.document_type.name().as_str()) + .into_iter() + .map(|a| a.to_vec()) + .collect::>>(); + + // Add primary key ($id) subtree + path.push(vec![0]); + + if let Some(primary_key_equal_clause) = &self.internal_clauses.primary_key_equal_clause { + let mut query = Query::new(); + query.insert_key(primary_key_equal_clause.to_vec()); + + Ok(PathQuery::new(path, SizedQuery::new(query, Some(1), None))) + } else { + let mut query = Query::new(); + + if let Some(primary_key_in_clause) = &self.internal_clauses.primary_key_in_clause { + query.insert_keys( + primary_key_in_clause + .iter() + .map(|identifier| identifier.to_vec()) + .collect(), + ); + + Ok(PathQuery::new( + path, + SizedQuery::new(query, Some(primary_key_in_clause.len() as u16), None), + )) + } else { + query.insert_all(); + + Ok(PathQuery::new(path, SizedQuery::new(query, None, None))) + } + } + } + + #[cfg(feature = "server")] + /// Executes a query with no proof and returns the items, skipped items, and fee. + pub fn execute_raw_results_no_proof( + &self, + drive: &Drive, + block_info: Option, + transaction: TransactionArg, + platform_version: &PlatformVersion, + ) -> Result<(Vec>, u64), Error> { + let mut drive_operations = vec![]; + let (items, _skipped) = self.execute_raw_results_no_proof_internal( + drive, + transaction, + &mut drive_operations, + platform_version, + )?; + let cost = if let Some(block_info) = block_info { + let fee_result = Drive::calculate_fee( + None, + Some(drive_operations), + &block_info.epoch, + drive.config.epochs_per_era, + platform_version, + None, + )?; + fee_result.processing_fee + } else { + 0 + }; + Ok((items, cost)) + } + + #[cfg(feature = "server")] + /// Executes an internal query with no proof and returns the values and skipped items. + pub(crate) fn execute_raw_results_no_proof_internal( + &self, + drive: &Drive, + transaction: TransactionArg, + drive_operations: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result<(Vec>, u16), Error> { + let path_query = self.construct_path_query(platform_version)?; + let query_result = drive.grove_get_path_query_serialized_results( + &path_query, + transaction, + drive_operations, + &platform_version.drive, + ); + match query_result { + Err(Error::GroveDB(GroveError::PathKeyNotFound(_))) + | Err(Error::GroveDB(GroveError::PathNotFound(_))) + | Err(Error::GroveDB(GroveError::PathParentLayerNotFound(_))) => Ok((Vec::new(), 0)), + _ => { + let (data, skipped) = query_result?; + { + Ok((data, skipped)) + } + } + } + } +} diff --git a/packages/rs-drive/src/query/mod.rs b/packages/rs-drive/src/query/mod.rs index 574113ac46..1d7cf24371 100644 --- a/packages/rs-drive/src/query/mod.rs +++ b/packages/rs-drive/src/query/mod.rs @@ -50,12 +50,13 @@ pub use grovedb::{ Element, Error as GroveError, TransactionArg, }; +use dpp::document; +use dpp::prelude::Identifier; #[cfg(feature = "server")] use { crate::{drive::Drive, error::Error::GroveDB, fees::op::LowLevelDriveOperation}, dpp::block::block_info::BlockInfo, }; - // Crate-local unconditional imports use crate::config::DriveConfig; // Crate-local unconditional imports @@ -132,6 +133,13 @@ pub fn contract_lookup_fn_for_contract<'a>( #[cfg(any(feature = "server", feature = "verify"))] /// A query to get the votes given out by an identity pub mod contested_resource_votes_given_by_identity_query; +#[cfg(any(feature = "server", feature = "verify"))] +/// A query to get contested documents before they have been awarded +pub mod drive_contested_document_query; + +#[cfg(any(feature = "server", feature = "verify"))] +/// A query to get the block counts of proposers in an epoch +pub mod proposer_block_count_query; #[cfg(any(feature = "server", feature = "verify"))] /// Internal clauses struct @@ -305,6 +313,36 @@ pub struct DriveDocumentQuery<'a> { } impl<'a> DriveDocumentQuery<'a> { + /// Gets a document by their primary key + #[cfg(any(feature = "server", feature = "verify"))] + pub fn new_primary_key_single_item_query( + contract: &'a DataContract, + document_type: DocumentTypeRef<'a>, + id: Identifier, + ) -> Self { + DriveDocumentQuery { + contract, + document_type, + internal_clauses: InternalClauses { + primary_key_in_clause: None, + primary_key_equal_clause: Some(WhereClause { + field: document::property_names::ID.to_string(), + operator: WhereOperator::Equal, + value: Value::Identifier(id.to_buffer()), + }), + in_clause: None, + range_clause: None, + equal_clauses: Default::default(), + }, + offset: None, + limit: None, + order_by: Default::default(), + start_at: None, + start_at_included: false, + block_time_ms: None, + } + } + #[cfg(feature = "server")] /// Returns any item pub fn any_item_query(contract: &'a DataContract, document_type: DocumentTypeRef<'a>) -> Self { @@ -1513,7 +1551,7 @@ impl<'a> DriveDocumentQuery<'a> { // There is no last_clause which means we are using an index most likely because of an order_by, however we have no // clauses, in this case we should use the first value of the index. let first_index = index.properties.first().ok_or(Error::Drive( - DriveError::CorruptedContractIndexes("index must have properties"), + DriveError::CorruptedContractIndexes("index must have properties".to_string()), ))?; // Index must have properties Self::recursive_insert_on_query( None, @@ -1567,7 +1605,7 @@ impl<'a> DriveDocumentQuery<'a> { .iter() .find(|field| where_clause.field == field.name) .ok_or(Error::Drive(DriveError::CorruptedContractIndexes( - "index must have last_clause field", + "index must have last_clause field".to_string(), )))?; Self::recursive_insert_on_query( Some(&mut query), @@ -1599,7 +1637,7 @@ impl<'a> DriveDocumentQuery<'a> { .iter() .find(|field| subquery_where_clause.field == field.name) .ok_or(Error::Drive(DriveError::CorruptedContractIndexes( - "index must have subquery_clause field", + "index must have subquery_clause field".to_string(), )))?; Self::recursive_insert_on_query( Some(&mut subquery), @@ -1831,7 +1869,6 @@ impl<'a> DriveDocumentQuery<'a> { } #[cfg(feature = "server")] - #[allow(unused)] /// Executes an internal query with no proof and returns the values and skipped items. pub(crate) fn execute_no_proof_internal( &self, @@ -2001,7 +2038,7 @@ mod tests { } fn setup_family_birthday_contract() -> (Drive, DataContract) { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/query/proposer_block_count_query.rs b/packages/rs-drive/src/query/proposer_block_count_query.rs new file mode 100644 index 0000000000..7e8da131bb --- /dev/null +++ b/packages/rs-drive/src/query/proposer_block_count_query.rs @@ -0,0 +1,82 @@ +use crate::drive::credit_pools::epochs::paths::EpochProposers; +use crate::query::Query; +use dpp::block::epoch::Epoch; +use grovedb::{PathQuery, SizedQuery}; + +/// Represents an optional limit for the number of proposers to retrieve in a query. +/// +/// - `Some(u16)`: Limits the number of proposers returned. +/// - `None`: No limit on the number of proposers. +pub type ProposerQueryLimit = Option; +/// Indicates whether the query should include the starting proposer in the results. +/// +/// - `true`: The starting proposer is included in the results. +/// - `false`: The starting proposer is excluded. +pub type ProposerQueryStartAtIncluded = bool; +/// Represents an optional starting point for a proposer query, consisting of: +/// +/// - A tuple of a 32-byte array representing the start proposer's identifier and +/// a boolean indicating whether to include the starting proposer. +/// +/// - `Some(([u8; 32], bool))`: A specific proposer to start from, with an inclusion flag. +/// - `None`: The query will start from the beginning or a default point. +pub type ProposerQueryStartAt = Option<([u8; 32], ProposerQueryStartAtIncluded)>; + +/// Specifies the type of query to retrieve proposers, with two options: +/// +/// - `ByRange(ProposerQueryLimit, ProposerQueryStartAt)`: Query proposers within a range, +/// with an optional limit and an optional starting point. +/// +/// - `ByIds(Vec>)`: Query specific proposers by their identifiers. +pub enum ProposerQueryType { + /// Queries proposers within a specified range. + /// + /// - `ProposerQueryLimit`: Limits the number of proposers returned. If `None`, there is no limit. + /// - `ProposerQueryStartAt`: Specifies the proposer to start from. If `None`, the query starts at the beginning. + ByRange(ProposerQueryLimit, ProposerQueryStartAt), + + /// Queries specific proposers by their identifiers. + /// + /// - `Vec>`: A vector of proposer IDs (byte arrays) to retrieve. + ByIds(Vec>), +} + +impl ProposerQueryType { + /// Should we get optional elements? + pub fn allows_optional(&self) -> bool { + match self { + ProposerQueryType::ByRange(_, _) => false, + ProposerQueryType::ByIds(_) => true, + } + } + + /// Gets the path query for the proposer query type + pub fn into_path_query(self, epoch: &Epoch) -> PathQuery { + let path_as_vec = epoch.get_proposers_path_vec(); + + let mut query = Query::new(); + + match self { + ProposerQueryType::ByRange(limit, start_at) => { + match start_at { + None => { + query.insert_all(); + } + Some((identity_id, included)) => { + if included { + query.insert_range_from(identity_id.to_vec()..); + } else { + query.insert_range_after(identity_id.to_vec()..); + } + } + } + PathQuery::new(path_as_vec, SizedQuery::new(query, limit, None)) + } + ProposerQueryType::ByIds(ids) => { + let len = ids.len(); + query.insert_keys(ids); + PathQuery::new(path_as_vec, SizedQuery::new(query, Some(len as u16), None)) + } + } + } +} diff --git a/packages/rs-drive/src/query/vote_poll_vote_state_query.rs b/packages/rs-drive/src/query/vote_poll_vote_state_query.rs index 949d112a67..b1fa7413a1 100644 --- a/packages/rs-drive/src/query/vote_poll_vote_state_query.rs +++ b/packages/rs-drive/src/query/vote_poll_vote_state_query.rs @@ -44,6 +44,8 @@ pub enum ContestedDocumentVotePollDriveQueryResultType { VoteTally, /// Both the documents and the vote tally results are returned in the query result. DocumentsAndVoteTally, + /// We are searching for a single document only. + SingleDocumentByContender(Identifier), } impl ContestedDocumentVotePollDriveQueryResultType { @@ -51,6 +53,7 @@ impl ContestedDocumentVotePollDriveQueryResultType { pub fn has_vote_tally(&self) -> bool { match self { ContestedDocumentVotePollDriveQueryResultType::Documents => false, + ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => false, ContestedDocumentVotePollDriveQueryResultType::VoteTally => true, ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => true, } @@ -60,6 +63,7 @@ impl ContestedDocumentVotePollDriveQueryResultType { pub fn has_documents(&self) -> bool { match self { ContestedDocumentVotePollDriveQueryResultType::Documents => true, + ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => true, ContestedDocumentVotePollDriveQueryResultType::VoteTally => false, ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => true, } @@ -74,6 +78,9 @@ impl TryFrom for ContestedDocumentVotePollDriveQueryResultType { 0 => Ok(ContestedDocumentVotePollDriveQueryResultType::Documents), 1 => Ok(ContestedDocumentVotePollDriveQueryResultType::VoteTally), 2 => Ok(ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally), + 3 => Err(Error::Query(QuerySyntaxError::Unsupported( + "unsupported to get SingleDocumentByContender query result type".to_string() + ))), n => Err(Error::Query(QuerySyntaxError::Unsupported(format!( "unsupported contested document vote poll drive query result type {}, only 0, 1, 2 and 3 are supported", n @@ -397,62 +404,73 @@ impl<'a> ResolvedContestedDocumentVotePollDriveQuery<'a> { // Stored Info [[0;31],0] Abstain votes [[0;31],1] Lock Votes [[0;31],2] // this is a range on all elements - let limit = - match &self.start_at { - None => { - if allow_include_locked_and_abstaining_vote_tally { - match &self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents => { - // Documents don't care about the vote tallies - query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); - self.limit - } - ContestedDocumentVotePollDriveQueryResultType::VoteTally => { - query.insert_all(); - self.limit.map(|limit| limit.saturating_add(3)) - } - ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { - query.insert_all(); - self.limit.map(|limit| limit.saturating_mul(2).saturating_add(3)) - } - } - } else { - match &self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents => { - query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); - self.limit - } - ContestedDocumentVotePollDriveQueryResultType::VoteTally => { - query.insert_key(RESOURCE_STORED_INFO_KEY_U8_32.to_vec()); - query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); - self.limit.map(|limit| limit.saturating_add(1)) - } - ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { - query.insert_key(RESOURCE_STORED_INFO_KEY_U8_32.to_vec()); - query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); - self.limit.map(|limit| limit.saturating_mul(2).saturating_add(1)) + let limit = match &self.start_at { + None => { + if allow_include_locked_and_abstaining_vote_tally { + match &self.result_type { + ContestedDocumentVotePollDriveQueryResultType::Documents => { + // Documents don't care about the vote tallies + query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); + self.limit + } + ContestedDocumentVotePollDriveQueryResultType::VoteTally => { + query.insert_all(); + self.limit.map(|limit| limit.saturating_add(3)) + } + ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { + query.insert_all(); + self.limit.map(|limit| limit.saturating_mul(2).saturating_add(3)) + } + ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(contender_id) => { + query.insert_key(contender_id.to_vec()); + self.limit + } } - } - } - } - Some((starts_at_key_bytes, start_at_included)) => { - let starts_at_key = starts_at_key_bytes.to_vec(); - match start_at_included { - true => query.insert_range_from(starts_at_key..), - false => query.insert_range_after(starts_at_key..), - } + } else { match &self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents - | ContestedDocumentVotePollDriveQueryResultType::VoteTally => self.limit, - ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { - self.limit.map(|limit| limit.saturating_mul(2)) + ContestedDocumentVotePollDriveQueryResultType::Documents => { + query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); + self.limit + } + ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(contender_id) => { + query.insert_key(contender_id.to_vec()); + self.limit + } + ContestedDocumentVotePollDriveQueryResultType::VoteTally => { + query.insert_key(RESOURCE_STORED_INFO_KEY_U8_32.to_vec()); + query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); + self.limit.map(|limit| limit.saturating_add(1)) + } + ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { + query.insert_key(RESOURCE_STORED_INFO_KEY_U8_32.to_vec()); + query.insert_range_after(RESOURCE_LOCK_VOTE_TREE_KEY_U8_32.to_vec()..); + self.limit.map(|limit| limit.saturating_mul(2).saturating_add(1)) + } } + } + } + Some((starts_at_key_bytes, start_at_included)) => { + let starts_at_key = starts_at_key_bytes.to_vec(); + match start_at_included { + true => query.insert_range_from(starts_at_key..), + false => query.insert_range_after(starts_at_key..), + } + match &self.result_type { + ContestedDocumentVotePollDriveQueryResultType::Documents + | ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) + | ContestedDocumentVotePollDriveQueryResultType::VoteTally => self.limit, + ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { + self.limit.map(|limit| limit.saturating_mul(2)) } } - }; + } + }; let (subquery_path, subquery) = match self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents => (Some(vec![vec![0]]), None), + ContestedDocumentVotePollDriveQueryResultType::Documents + | ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => { + (Some(vec![vec![0]]), None) + } ContestedDocumentVotePollDriveQueryResultType::VoteTally => (Some(vec![vec![1]]), None), ContestedDocumentVotePollDriveQueryResultType::DocumentsAndVoteTally => { let mut query = Query::new(); @@ -520,7 +538,9 @@ impl<'a> ResolvedContestedDocumentVotePollDriveQuery<'a> { Err(e) => Err(e), Ok((query_result_elements, skipped)) => { match self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents => { + ContestedDocumentVotePollDriveQueryResultType::Documents + | ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => + { // with documents only we don't need to work about lock and abstaining tree let contenders = query_result_elements .to_path_key_elements() diff --git a/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs b/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs index 0fc4a1ca9f..fb34e8a619 100644 --- a/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs +++ b/packages/rs-drive/src/query/vote_polls_by_end_date_query.rs @@ -44,7 +44,7 @@ pub struct VotePollsByEndDateDriveQuery { } impl VotePollsByEndDateDriveQuery { - /// Get the path query for an abci query that gets vote polls by the end time + /// Get the path query for an abci query that gets vote polls until an end time pub fn path_query_for_end_time_included(end_time: TimestampMillis, limit: u16) -> PathQuery { let path = vote_end_date_queries_tree_path_vec(); @@ -70,6 +70,32 @@ impl VotePollsByEndDateDriveQuery { } } + /// Get the path query for an abci query that gets vote polls at an the end time + pub fn path_query_for_single_end_time(end_time: TimestampMillis, limit: u16) -> PathQuery { + let path = vote_end_date_queries_tree_path_vec(); + + let mut query = Query::new_with_direction(true); + + let encoded_time = encode_u64(end_time); + + query.insert_key(encoded_time); + + let mut sub_query = Query::new(); + + sub_query.insert_all(); + + query.default_subquery_branch.subquery = Some(sub_query.into()); + + PathQuery { + path, + query: SizedQuery { + query, + limit: Some(limit), + offset: None, + }, + } + } + #[cfg(feature = "server")] /// Executes a special query with no proof to get contested document resource vote polls. /// This is meant for platform abci to get votes that have finished @@ -126,6 +152,48 @@ impl VotePollsByEndDateDriveQuery { } } + #[cfg(feature = "server")] + /// Executes a special query with no proof to get contested document resource vote polls. + /// This is meant for platform abci to get votes that have finished + pub fn execute_no_proof_for_specialized_end_time_query_only_check_end_time( + end_time: TimestampMillis, + limit: u16, + drive: &Drive, + transaction: TransactionArg, + drive_operations: &mut Vec, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let path_query = Self::path_query_for_single_end_time(end_time, limit); + let query_result = drive.grove_get_path_query( + &path_query, + transaction, + QueryResultType::QueryPathKeyElementTrioResultType, + drive_operations, + &platform_version.drive, + ); + match query_result { + Err(Error::GroveDB(GroveError::PathKeyNotFound(_))) + | Err(Error::GroveDB(GroveError::PathNotFound(_))) + | Err(Error::GroveDB(GroveError::PathParentLayerNotFound(_))) => Ok(vec![]), + Err(e) => Err(e), + Ok((query_result_elements, _)) => { + // Process the query result elements and collect VotePolls + let vote_polls = query_result_elements + .to_path_key_elements() + .into_iter() + .map(|(_, _, element)| { + // Extract the bytes from the element + let vote_poll_bytes = element.into_item_bytes().map_err(Error::from)?; + // Deserialize the bytes into a VotePoll + let vote_poll = VotePoll::deserialize_from_bytes(&vote_poll_bytes)?; + Ok(vote_poll) + }) + .collect::, Error>>()?; + Ok(vote_polls) + } + } + } + /// Operations to construct a path query. pub fn construct_path_query(&self) -> PathQuery { let path = vote_end_date_queries_tree_path_vec(); diff --git a/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/transformer.rs b/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/transformer.rs index 6ea2449408..5f619841bb 100644 --- a/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/transformer.rs @@ -1,20 +1,43 @@ +use crate::drive::Drive; +use crate::error::Error; use crate::state_transition_action::identity::identity_credit_withdrawal::v0::IdentityCreditWithdrawalTransitionActionV0; use crate::state_transition_action::identity::identity_credit_withdrawal::IdentityCreditWithdrawalTransitionAction; +use dpp::block::block_info::BlockInfo; use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; +use dpp::validation::ConsensusValidationResult; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; impl IdentityCreditWithdrawalTransitionAction { - /// from - pub fn from_identity_credit_withdrawal( + /// try from an identity credit withdrawal + pub fn try_from_identity_credit_withdrawal( + drive: &Drive, + tx: TransactionArg, identity_credit_withdrawal: &IdentityCreditWithdrawalTransition, - creation_time_ms: u64, - ) -> Self { + block_info: &BlockInfo, + platform_version: &PlatformVersion, + ) -> Result, Error> { match identity_credit_withdrawal { IdentityCreditWithdrawalTransition::V0(v0) => { - IdentityCreditWithdrawalTransitionActionV0::from_identity_credit_withdrawal( - v0, - creation_time_ms, + Ok(ConsensusValidationResult::new_with_data( + IdentityCreditWithdrawalTransitionActionV0::from_identity_credit_withdrawal_v0( + v0, + block_info.time_ms, + ) + .into(), + )) + } + IdentityCreditWithdrawalTransition::V1(v1) => { + IdentityCreditWithdrawalTransitionActionV0::try_from_identity_credit_withdrawal_v1( + drive, + tx, + v1, + block_info, + platform_version, ) - .into() + .map(|consensus_validation_result| { + consensus_validation_result.map(|withdrawal| withdrawal.into()) + }) } } } diff --git a/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/v0/transformer.rs index 742476740c..e2c443d9ab 100644 --- a/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/identity/identity_credit_withdrawal/v0/transformer.rs @@ -1,14 +1,33 @@ +use crate::drive::identity::key::fetch::{ + IdentityKeysRequest, KeyIDIdentityPublicKeyPairBTreeMap, KeyRequestType, +}; +use crate::drive::Drive; +use crate::error::Error; use crate::state_transition_action::identity::identity_credit_withdrawal::v0::IdentityCreditWithdrawalTransitionActionV0; +use dpp::block::block_info::BlockInfo; +use dpp::consensus::state::identity::identity_public_key_is_disabled_error::IdentityPublicKeyIsDisabledError; +use dpp::consensus::state::identity::missing_transfer_key_error::MissingTransferKeyError; +use dpp::consensus::state::identity::no_transfer_key_for_core_withdrawal_available_error::NoTransferKeyForCoreWithdrawalAvailableError; +use dpp::consensus::state::state_error::StateError; +use dpp::consensus::ConsensusError; use dpp::data_contracts::withdrawals_contract; use dpp::data_contracts::withdrawals_contract::v1::document_types::withdrawal; use dpp::document::{Document, DocumentV0}; +use dpp::identity::core_script::CoreScript; +use dpp::identity::hash::IdentityPublicKeyHashMethodsV0; +use dpp::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0; +use dpp::identity::{IdentityPublicKey, KeyType}; use dpp::platform_value::platform_value; +use dpp::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; use dpp::state_transition::state_transitions::identity::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; +use dpp::validation::ConsensusValidationResult; use dpp::withdrawal::Pooling; +use grovedb::TransactionArg; +use platform_version::version::PlatformVersion; impl IdentityCreditWithdrawalTransitionActionV0 { /// from identity credit withdrawal - pub fn from_identity_credit_withdrawal( + pub fn from_identity_credit_withdrawal_v0( identity_credit_withdrawal: &IdentityCreditWithdrawalTransitionV0, creation_time_ms: u64, ) -> Self { @@ -57,4 +76,129 @@ impl IdentityCreditWithdrawalTransitionActionV0 { user_fee_increase: identity_credit_withdrawal.user_fee_increase, } } + + /// from identity credit withdrawal v1 + pub fn try_from_identity_credit_withdrawal_v1( + drive: &Drive, + tx: TransactionArg, + identity_credit_withdrawal: &IdentityCreditWithdrawalTransitionV1, + block_info: &BlockInfo, + platform_version: &PlatformVersion, + ) -> Result, Error> { + let output_script_bytes = if let Some(output_script) = + &identity_credit_withdrawal.output_script + { + output_script.to_bytes() + } else { + let key_request = IdentityKeysRequest { + identity_id: identity_credit_withdrawal.identity_id.to_buffer(), + request_type: KeyRequestType::RecentWithdrawalKeys, + limit: None, + offset: None, + }; + let key: Option = + drive.fetch_identity_keys(key_request, tx, platform_version)?; + let Some(mut key) = key else { + return Ok(ConsensusValidationResult::new_with_error( + ConsensusError::StateError(StateError::MissingTransferKeyError( + MissingTransferKeyError::new(identity_credit_withdrawal.identity_id), + )), + )); + }; + if key.is_disabled() { + // The first key is disabled, let's look at some more withdrawal keys to find one that isn't disabled + let after_first_key_request = IdentityKeysRequest { + identity_id: identity_credit_withdrawal.identity_id.to_buffer(), + request_type: KeyRequestType::RecentWithdrawalKeys, + limit: Some(5), + offset: Some(1), + }; + let other_keys: KeyIDIdentityPublicKeyPairBTreeMap = + drive.fetch_identity_keys(after_first_key_request, tx, platform_version)?; + + if let Some(found_non_disabled_key) = other_keys + .values() + .rev() + .find(|identity_public_key| !identity_public_key.is_disabled()) + .cloned() + { + key = found_non_disabled_key + } else { + return Ok(ConsensusValidationResult::new_with_error( + ConsensusError::StateError(StateError::IdentityPublicKeyIsDisabledError( + IdentityPublicKeyIsDisabledError::new(key.id()), + )), + )); + } + } + match key.key_type() { + KeyType::ECDSA_HASH160 => { + // We should get the withdrawal address + CoreScript::new_p2pkh(key.public_key_hash()?).to_bytes() + } + KeyType::BIP13_SCRIPT_HASH => { + // We should get the withdrawal address + CoreScript::new_p2sh(key.public_key_hash()?).to_bytes() + } + _ => { + return Ok(ConsensusValidationResult::new_with_error( + ConsensusError::StateError( + StateError::NoTransferKeyForCoreWithdrawalAvailableError( + NoTransferKeyForCoreWithdrawalAvailableError::new( + identity_credit_withdrawal.identity_id, + ), + ), + ), + )); + } + } + }; + + let mut entropy = Vec::new(); + entropy.extend_from_slice(&identity_credit_withdrawal.nonce.to_be_bytes()); + entropy.extend_from_slice(output_script_bytes.as_slice()); + + let document_id = Document::generate_document_id_v0( + &withdrawals_contract::ID, + &identity_credit_withdrawal.identity_id, + withdrawal::NAME, + &entropy, + ); + + let document_data = platform_value!({ + withdrawal::properties::AMOUNT: identity_credit_withdrawal.amount, + withdrawal::properties::CORE_FEE_PER_BYTE: identity_credit_withdrawal.core_fee_per_byte, + // TODO(withdrawals): replace with actual value from state transition once pooling is done + withdrawal::properties::POOLING: Pooling::Never, + withdrawal::properties::OUTPUT_SCRIPT: output_script_bytes, + withdrawal::properties::STATUS: withdrawals_contract::WithdrawalStatus::QUEUED, + }); + + let withdrawal_document = DocumentV0 { + id: document_id, + owner_id: identity_credit_withdrawal.identity_id, + properties: document_data.into_btree_string_map().unwrap(), + revision: Some(1), + created_at: Some(block_info.time_ms), + updated_at: Some(block_info.time_ms), + transferred_at: None, + created_at_block_height: None, + updated_at_block_height: None, + transferred_at_block_height: None, + created_at_core_block_height: None, + updated_at_core_block_height: None, + transferred_at_core_block_height: None, + } + .into(); + + Ok(ConsensusValidationResult::new_with_data( + IdentityCreditWithdrawalTransitionActionV0 { + identity_id: identity_credit_withdrawal.identity_id, + nonce: identity_credit_withdrawal.nonce, + prepared_withdrawal_document: withdrawal_document, + amount: identity_credit_withdrawal.amount, + user_fee_increase: identity_credit_withdrawal.user_fee_increase, + }, + )) + } } diff --git a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/transformer.rs b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/transformer.rs index 674fb61d3b..ae5afef5ff 100644 --- a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/transformer.rs @@ -137,22 +137,14 @@ impl BumpIdentityNonceAction { pub fn from_identity_credit_withdrawal_transition( value: IdentityCreditWithdrawalTransition, ) -> Self { - match value { - IdentityCreditWithdrawalTransition::V0(v0) => { - BumpIdentityNonceActionV0::from_identity_credit_withdrawal(v0).into() - } - } + BumpIdentityNonceActionV0::from_identity_credit_withdrawal(value).into() } /// from borrowed identity withdrawal pub fn from_borrowed_identity_credit_withdrawal_transition( value: &IdentityCreditWithdrawalTransition, ) -> Self { - match value { - IdentityCreditWithdrawalTransition::V0(v0) => { - BumpIdentityNonceActionV0::from_borrowed_identity_credit_withdrawal(v0).into() - } - } + BumpIdentityNonceActionV0::from_borrowed_identity_credit_withdrawal(value).into() } /// from identity withdrawal action diff --git a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs index 99cb834032..8c5520f7d7 100644 --- a/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs +++ b/packages/rs-drive/src/state_transition_action/system/bump_identity_nonce_action/v0/transformer.rs @@ -6,8 +6,10 @@ use crate::state_transition_action::system::bump_identity_nonce_action::BumpIden use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::state_transition::data_contract_create_transition::DataContractCreateTransitionV0; use dpp::state_transition::identity_credit_transfer_transition::v0::IdentityCreditTransferTransitionV0; -use dpp::state_transition::identity_credit_withdrawal_transition::v0::IdentityCreditWithdrawalTransitionV0; +use dpp::state_transition::identity_credit_withdrawal_transition::accessors::IdentityCreditWithdrawalTransitionAccessorsV0; +use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::state_transition::identity_update_transition::v0::IdentityUpdateTransitionV0; +use dpp::state_transition::StateTransitionLike; impl BumpIdentityNonceActionV0 { /// from identity update @@ -199,34 +201,22 @@ impl BumpIdentityNonceActionV0 { } /// from identity credit withdrawal - pub fn from_identity_credit_withdrawal(value: IdentityCreditWithdrawalTransitionV0) -> Self { - let IdentityCreditWithdrawalTransitionV0 { - identity_id, - nonce, - user_fee_increase, - .. - } = value; + pub fn from_identity_credit_withdrawal(value: IdentityCreditWithdrawalTransition) -> Self { BumpIdentityNonceActionV0 { - identity_id, - identity_nonce: nonce, - user_fee_increase, + identity_id: value.identity_id(), + identity_nonce: value.nonce(), + user_fee_increase: value.user_fee_increase(), } } /// from borrowed identity credit withdrawal pub fn from_borrowed_identity_credit_withdrawal( - value: &IdentityCreditWithdrawalTransitionV0, + value: &IdentityCreditWithdrawalTransition, ) -> Self { - let IdentityCreditWithdrawalTransitionV0 { - identity_id, - nonce, - user_fee_increase, - .. - } = value; BumpIdentityNonceActionV0 { - identity_id: *identity_id, - identity_nonce: *nonce, - user_fee_increase: *user_fee_increase, + identity_id: value.identity_id(), + identity_nonce: value.nonce(), + user_fee_increase: value.user_fee_increase(), } } diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs b/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs index 144bcda787..abdd9f4cc6 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/mod.rs @@ -229,7 +229,7 @@ mod tests { #[test] fn test_add_dashpay_documents() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); let mut drive_operations = vec![]; @@ -336,7 +336,7 @@ mod tests { #[test] fn test_add_multiple_dashpay_documents_individually_should_succeed() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -435,7 +435,7 @@ mod tests { #[test] fn test_add_multiple_dashpay_documents() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -568,7 +568,7 @@ mod tests { #[test] fn test_add_multiple_family_documents() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -679,7 +679,7 @@ mod tests { #[test] fn test_update_multiple_family_documents() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -897,7 +897,7 @@ mod tests { #[test] fn test_update_multiple_family_documents_with_index_being_removed_and_added() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/src/util/batch/drive_op_batch/withdrawals.rs b/packages/rs-drive/src/util/batch/drive_op_batch/withdrawals.rs index 972f6be00e..26bf6617a7 100644 --- a/packages/rs-drive/src/util/batch/drive_op_batch/withdrawals.rs +++ b/packages/rs-drive/src/util/batch/drive_op_batch/withdrawals.rs @@ -1,22 +1,25 @@ use std::collections::HashMap; use crate::drive::identity::withdrawals::paths::{ - get_withdrawal_root_path_vec, get_withdrawal_transactions_queue_path, - get_withdrawal_transactions_queue_path_vec, WITHDRAWAL_TRANSACTIONS_NEXT_INDEX_KEY, + get_withdrawal_root_path_vec, get_withdrawal_transactions_broadcasted_path_vec, + get_withdrawal_transactions_queue_path_vec, get_withdrawal_transactions_sum_tree_path_vec, + WITHDRAWAL_TRANSACTIONS_NEXT_INDEX_KEY, }; -use crate::drive::identity::withdrawals::{ - WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes, +use crate::util::grove_operations::{ + BatchDeleteApplyType, BatchInsertApplyType, BatchMoveApplyType, }; -use crate::util::grove_operations::BatchDeleteApplyType; use crate::util::object_size_info::PathKeyElementInfo; use crate::{drive::Drive, error::Error, fees::op::LowLevelDriveOperation}; use dpp::block::block_info::BlockInfo; +use super::DriveLowLevelOperationConverter; +use crate::query::Query; +use dpp::fee::{Credits, SignedCredits}; +use dpp::prelude::TimestampMillis; use dpp::version::PlatformVersion; -use grovedb::Element; +use dpp::withdrawal::{WithdrawalTransactionIndex, WithdrawalTransactionIndexAndBytes}; use grovedb::{batch::KeyInfoPath, EstimatedLayerInformation, TransactionArg}; - -use super::DriveLowLevelOperationConverter; +use grovedb::{Element, PathQuery, SizedQuery}; /// Operations for Withdrawals #[derive(Clone, Debug)] @@ -31,10 +34,27 @@ pub enum WithdrawalOperationType { /// transaction id bytes withdrawal_transactions: Vec, }, - /// Delete withdrawal - DeleteWithdrawalTransaction { - /// withdrawal transaction tuple with id and bytes - index: WithdrawalTransactionIndex, + /// Deletes the withdrawal transactions from the main queue and adds them to the broadcasted queue + MoveWithdrawalTransactionsToBroadcasted { + /// A vector of the indexes to be moved + indexes: Vec, + }, + /// Deletes the withdrawal transactions from the main queue and adds them to the broadcasted queue + MoveBroadcastedWithdrawalTransactionsBackToQueueForResigning { + /// A vector of the indexes to be moved + indexes: Vec, + }, + /// Deletes the withdrawal transactions from the broadcasted queue + DeleteCompletedBroadcastedWithdrawalTransactions { + /// A vector of the indexes to be deleted + indexes: Vec, + }, + /// Reserve an amount in the system for withdrawals, the reservation will expire at the date given + ReserveWithdrawalAmount { + /// amount to reserve + amount: Credits, + /// expiration date + expiration_after: TimestampMillis, }, } @@ -45,7 +65,7 @@ impl DriveLowLevelOperationConverter for WithdrawalOperationType { _estimated_costs_only_with_layer_info: &mut Option< HashMap, >, - _block_info: &BlockInfo, + block_info: &BlockInfo, transaction: TransactionArg, platform_version: &PlatformVersion, ) -> Result, Error> { @@ -76,7 +96,7 @@ impl DriveLowLevelOperationConverter for WithdrawalOperationType { for (index, bytes) in withdrawal_transactions { drive.batch_insert( - PathKeyElementInfo::PathKeyElement::<'_, 1>(( + PathKeyElementInfo::PathKeyElement::<'_, 0>(( path.clone(), index.to_be_bytes().to_vec(), Element::Item(bytes, None), @@ -88,14 +108,140 @@ impl DriveLowLevelOperationConverter for WithdrawalOperationType { Ok(drive_operations) } - WithdrawalOperationType::DeleteWithdrawalTransaction { index } => { + WithdrawalOperationType::ReserveWithdrawalAmount { + amount, + expiration_after, + } => { + let mut drive_operations = vec![]; + + let expiration_date = block_info.time_ms + expiration_after; + + let sum_path = get_withdrawal_transactions_sum_tree_path_vec(); + + drive.batch_insert_sum_item_or_add_to_if_already_exists( + PathKeyElementInfo::PathKeyElement::<'_, 0>(( + sum_path.clone(), + expiration_date.to_be_bytes().to_vec(), + Element::SumItem(amount as SignedCredits, None), + )), + BatchInsertApplyType::StatefulBatchInsert, + transaction, + &mut drive_operations, + &platform_version.drive, + )?; + + Ok(drive_operations) + } + WithdrawalOperationType::MoveWithdrawalTransactionsToBroadcasted { indexes } => { + let mut drive_operations = vec![]; + + if indexes.is_empty() { + return Ok(drive_operations); + } + + let original_path = get_withdrawal_transactions_queue_path_vec(); + let new_path = get_withdrawal_transactions_broadcasted_path_vec(); + + let mut query = Query::new(); + + let len = indexes.len(); + + query.insert_keys( + indexes + .into_iter() + .map(|index| index.to_be_bytes().to_vec()) + .collect(), + ); + + let path_query = PathQuery::new( + original_path, + SizedQuery::new(query, Some(len as u16), None), + ); + + drive.batch_move_items_in_path_query( + &path_query, + new_path, + true, + // we know that we are not deleting a subtree + BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + &mut drive_operations, + &platform_version.drive, + )?; + + Ok(drive_operations) + } + WithdrawalOperationType::MoveBroadcastedWithdrawalTransactionsBackToQueueForResigning { indexes } => { + let mut drive_operations = vec![]; + + if indexes.is_empty() { + return Ok(drive_operations); + } + + let original_path = get_withdrawal_transactions_broadcasted_path_vec(); + let new_path = get_withdrawal_transactions_queue_path_vec(); + + let mut query = Query::new(); + + let len = indexes.len(); + + query.insert_keys( + indexes + .into_iter() + .map(|index| index.to_be_bytes().to_vec()) + .collect(), + ); + + let path_query = PathQuery::new( + original_path, + SizedQuery::new(query, Some(len as u16), None), + ); + + drive.batch_move_items_in_path_query( + &path_query, + new_path, + true, + // we know that we are not deleting a subtree + BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum: Some((false, false)), + }, + transaction, + &mut drive_operations, + &platform_version.drive, + )?; + + Ok(drive_operations) + } + WithdrawalOperationType::DeleteCompletedBroadcastedWithdrawalTransactions { indexes } => { let mut drive_operations = vec![]; - let path = get_withdrawal_transactions_queue_path(); + if indexes.is_empty() { + return Ok(drive_operations); + } + + let path = get_withdrawal_transactions_broadcasted_path_vec(); + + let mut query = Query::new(); + + let len = indexes.len(); + + query.insert_keys( + indexes + .into_iter() + .map(|index| index.to_be_bytes().to_vec()) + .collect(), + ); + + let path_query = PathQuery::new( + path, + SizedQuery::new(query, Some(len as u16), None), + ); - drive.batch_delete( - (&path).into(), - &index.to_be_bytes(), + drive.batch_delete_items_in_path_query( + &path_query, + true, // we know that we are not deleting a subtree BatchDeleteApplyType::StatefulBatchDelete { is_known_to_be_subtree_with_sum: Some((false, false)), diff --git a/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/mod.rs new file mode 100644 index 0000000000..24b03094ef --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/mod.rs @@ -0,0 +1,56 @@ +mod v0; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::BatchDeleteApplyType; + +use dpp::version::drive_versions::DriveVersion; + +use grovedb::{PathQuery, TransactionArg}; + +impl Drive { + /// Pushes multiple "delete element" operations for items in a given path based on a `PathQuery` to `drive_operations`. + /// + /// # Parameters + /// * `path_query`: The path query specifying the items to delete within the path. + /// * `error_if_intermediate_path_tree_not_present`: Tells the function to either error or do nothing if an intermediate tree is not present. + /// * `apply_type`: The apply type for the delete operations. + /// * `transaction`: The transaction argument. + /// * `drive_operations`: The vector containing low-level drive operations. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::UnknownVersionMismatch)` if the drive version does not match known versions. + pub fn batch_delete_items_in_path_query( + &self, + path_query: &PathQuery, + error_if_intermediate_path_tree_not_present: bool, + apply_type: BatchDeleteApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + match drive_version + .grove_methods + .batch + .batch_delete_items_in_path_query + { + 0 => self.batch_delete_items_in_path_query_v0( + path_query, + error_if_intermediate_path_tree_not_present, + apply_type, + transaction, + drive_operations, + drive_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "batch_delete_items_in_path_query".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/v0/mod.rs new file mode 100644 index 0000000000..a530776986 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_delete_items_in_path_query/v0/mod.rs @@ -0,0 +1,588 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::fees::op::LowLevelDriveOperation::GroveOperation; +use crate::util::grove_operations::{push_drive_operation_result, BatchDeleteApplyType}; +use grovedb::batch::key_info::KeyInfo; +use grovedb::batch::KeyInfoPath; +use grovedb::operations::delete::DeleteOptions; +use grovedb::query_result_type::QueryResultType; +use grovedb::{GroveDb, PathQuery, TransactionArg}; +use grovedb_storage::rocksdb_storage::RocksDbStorage; +use platform_version::version::drive_versions::DriveVersion; + +impl Drive { + /// Version 0 implementation of the "delete multiple elements" operation based on a `PathQuery`. + /// Deletes items in the specified path that match the given query. + /// + /// # Parameters + /// * `path_query`: The path query specifying the items to delete within the path. + /// * `error_if_intermediate_path_tree_not_present`: Tells the function to either error or do nothing if an intermediate tree is not present. + /// * `apply_type`: The apply type for the delete operations. + /// * `transaction`: The transaction argument. + /// * `drive_operations`: The vector containing low-level drive operations. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::CorruptedCodeExecution)` if the operation is not supported. + pub(super) fn batch_delete_items_in_path_query_v0( + &self, + path_query: &PathQuery, + error_if_intermediate_path_tree_not_present: bool, + apply_type: BatchDeleteApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + if path_query.query.limit == None { + Error::Drive(DriveError::NotSupported( + "Limits are required for path_query", + )); + } + let query_result = if path_query + .query + .query + .items + .iter() + .all(|query_item| query_item.is_key()) + { + // Fetch the elements that match the path query + let query_result = self.grove_get_raw_path_query_with_optional( + path_query, + error_if_intermediate_path_tree_not_present, + transaction, + drive_operations, + drive_version, + )?; + + query_result + .into_iter() + .filter_map(|(path, key, maybe_element)| { + maybe_element.map(|element| (path, key, element)) + }) + .collect() + } else { + self.grove_get_raw_path_query( + path_query, + transaction, + QueryResultType::QueryPathKeyElementTrioResultType, + drive_operations, + drive_version, + )? + .0 + .to_path_key_elements() + }; + + // Iterate over each element and add a delete operation for it + for (path, key, _) in query_result { + let current_batch_operations = + LowLevelDriveOperation::grovedb_operations_batch(drive_operations); + let options = DeleteOptions { + allow_deleting_non_empty_trees: false, + deleting_non_empty_trees_returns_error: true, + base_root_storage_is_free: true, + validate_tree_at_path_exists: false, + }; + let delete_operation = match apply_type { + BatchDeleteApplyType::StatelessBatchDelete { + is_sum_tree, + estimated_key_size, + estimated_value_size, + } => GroveDb::average_case_delete_operation_for_delete::( + &KeyInfoPath::from_known_owned_path(path.to_vec()), + &KeyInfo::KnownKey(key.to_vec()), + is_sum_tree, + false, + true, + 0, + (estimated_key_size, estimated_value_size), + &drive_version.grove_version, + ) + .map(|r| r.map(Some)), + BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum, + } => self.grove.delete_operation_for_delete_internal( + (path.as_slice()).into(), + key.as_slice(), + &options, + is_known_to_be_subtree_with_sum, + ¤t_batch_operations.operations, + transaction, + &drive_version.grove_version, + ), + }; + + if let Some(delete_operation) = + push_drive_operation_result(delete_operation, drive_operations)? + { + // Add the delete operation to the batch of drive operations + drive_operations.push(GroveOperation(delete_operation)); + } + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use crate::util::grove_operations::QueryType; + use crate::util::test_helpers::setup::setup_drive; + use crate::{ + error::Error, + grovedb::{Element, PathQuery, Query}, + util::grove_operations::BatchDeleteApplyType, + }; + use assert_matches::assert_matches; + use grovedb::SizedQuery; + use grovedb_path::SubtreePath; + use platform_version::version::PlatformVersion; + + #[test] + fn test_batch_delete_items_in_path_query_success() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Insert some elements that will be matched and deleted + let path = vec![b"root".to_vec()]; + let key = b"key".to_vec(); + let element = Element::new_item(b"value".to_vec()); + + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected insert root tree"); + + drive + .grove + .insert( + path.as_slice(), + &key, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert"); + + // Create a path query that matches the inserted elements + let mut query = Query::new(); + query.insert_key(key.clone()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(1), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: None, + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_delete_items_in_path_query_v0( + &path_query, + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected to batch delete items"); + + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify the element has been deleted + let get_result = drive.grove_get( + path.as_slice().into(), + &key, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + } + + #[test] + fn test_batch_delete_items_in_path_query_range_query() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Insert the root tree + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + // Insert three elements with keys 1, 2, and 3 + let path = vec![b"root".to_vec()]; + let key1 = b"1".to_vec(); + let key2 = b"2".to_vec(); + let key3 = b"3".to_vec(); + let element = Element::new_item(b"value".to_vec()); + + drive + .grove + .insert( + path.as_slice(), + &key1, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 1"); + + drive + .grove + .insert( + path.as_slice(), + &key2, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 2"); + + drive + .grove + .insert( + path.as_slice(), + &key3, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 3"); + + // Create a range path query that matches keys less than 3 + let mut query = Query::new(); + query.insert_range_to(..b"3".to_vec()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(100), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: None, + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_delete_items_in_path_query_v0( + &path_query, + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected to batch delete items"); + + // Apply batch operations + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify that keys 1 and 2 have been deleted + let get_result_1 = drive.grove_get( + path.as_slice().into(), + &key1, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_1, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + + let get_result_2 = drive.grove_get( + path.as_slice().into(), + &key2, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_2, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + + // Verify that key 3 is still there + let get_result_3 = drive.grove_get( + path.as_slice().into(), + &key3, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_3, Ok(Some(Element::Item(..)))); + } + + #[test] + fn test_batch_delete_items_in_path_query_no_elements() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Create the root tree to allow querying it + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + // Create a path query that does not match any elements + let path = vec![b"root".to_vec()]; + let mut query = Query::new(); + query.insert_key(b"non_existent_key".to_vec()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(1), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: None, + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_delete_items_in_path_query_v0( + &path_query, + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected batch delete to succeed"); + + // Apply batch operations + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify that no elements were deleted as no matching elements existed + let get_result = drive.grove_get( + path.as_slice().into(), + b"non_existent_key", + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + } + + #[test] + fn test_batch_delete_items_in_path_query_intermediate_path_missing() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Create a path query with a missing intermediate path + let path = vec![b"missing_root".to_vec()]; + let mut query = Query::new(); + query.insert_key(b"key".to_vec()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(1), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchDeleteApplyType::StatefulBatchDelete { + is_known_to_be_subtree_with_sum: None, + }; + let mut drive_operations = Vec::new(); + + // Call the function with error_if_intermediate_path_tree_not_present set to true + let result = drive.batch_delete_items_in_path_query_v0( + &path_query, + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ); + + // Assert failure due to missing intermediate path + assert_matches!( + result, + Err(Error::GroveDB(grovedb::Error::PathParentLayerNotFound(_))) + ); + } + + #[test] + fn test_batch_delete_items_in_path_query_stateless_delete() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Insert some elements that will be matched and deleted + let path = vec![b"root".to_vec()]; + let key = b"key".to_vec(); + let element = Element::new_item(b"value".to_vec()); + + // Insert the root tree + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + // Insert an item in the tree + drive + .grove + .insert( + path.as_slice(), + &key, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert"); + + // Create a path query that matches the inserted elements + let mut query = Query::new(); + query.insert_key(key.clone()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(1), None)); + + // Set up the stateless apply type with estimated sizes + let apply_type = BatchDeleteApplyType::StatelessBatchDelete { + is_sum_tree: false, + estimated_key_size: key.len() as u32, + estimated_value_size: element + .serialized_size(&platform_version.drive.grove_version) + .unwrap() as u32, + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_delete_items_in_path_query_v0( + &path_query, + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected to batch delete items"); + + // Apply batch operations + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify the element has been deleted + let get_result = drive.grove_get( + path.as_slice().into(), + &key, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/mod.rs index d14f1e2773..c08390ba86 100644 --- a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/mod.rs @@ -23,7 +23,7 @@ impl Drive { /// * `drive_version`: The drive version to select the correct function version to run. /// /// # Returns - /// * `Ok(bool)` if the operation was successful. Returns true if the path key already exists without references. + /// * `Ok(bool)` if the operation was successful. Returns true if we were able to insert. /// * `Err(DriveError::UnknownVersionMismatch)` if the drive version does not match known versions. /// * `Err(DriveError::CorruptedCodeExecution)` if the operation is not supported. pub fn batch_insert_if_not_exists( diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/v0/mod.rs index 8bacd80606..8fc5c16c5b 100644 --- a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/v0/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists/v0/mod.rs @@ -15,7 +15,7 @@ use grovedb::{GroveDb, TransactionArg}; impl Drive { /// Pushes an "insert element if the path key does not yet exist" operation to `drive_operations`. - /// Returns true if the path key already exists without references. + /// Returns true if we inserted. pub(crate) fn batch_insert_if_not_exists_v0( &self, path_key_element_info: PathKeyElementInfo, diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/mod.rs new file mode 100644 index 0000000000..df437be5b2 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/mod.rs @@ -0,0 +1,69 @@ +mod v0; + +use crate::util::grove_operations::BatchInsertApplyType; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::object_size_info::PathKeyElementInfo; + +use dpp::version::drive_versions::DriveVersion; +use grovedb::{Element, TransactionArg}; + +impl Drive { + /// Pushes an "insert element if the path key does not yet exist" operation to `drive_operations` + /// and returns the existing element if it already exists. + /// + /// This function attempts to insert a new element into the database at a specified path and key. + /// If an element already exists at the given path and key, it returns the existing element without inserting the new one. + /// If the element does not exist, it inserts the new element and returns `Ok(None)`. + /// + /// The function dynamically selects the appropriate implementation version based on the provided `drive_version`. + /// + /// # Parameters + /// + /// * `path_key_element_info`: Information about the path, key, and element to be inserted. + /// - Supports various configurations including direct references, owned elements, fixed-size keys, and estimated sizes. + /// * `apply_type`: Defines whether the operation is stateless or stateful, influencing how the insertion is handled. + /// * `transaction`: The transaction context in which the operation will be executed. + /// * `drive_operations`: A mutable reference to the list of drive operations where this operation will be appended. + /// * `drive_version`: The version of the drive being used, determining which function version to execute. + /// + /// # Returns + /// + /// * `Ok(Some(Element))`: If an element already exists at the specified path and key, it returns the existing element. + /// * `Ok(None)`: If the element was successfully inserted because it did not exist before. + /// * `Err(Error)`: Returns an error if: + /// - The drive version provided is not supported (`Error::Drive(DriveError::UnknownVersionMismatch)`). + /// - The operation is not supported in the current state due to invalid configurations or unsupported features (`Error::Drive(DriveError::NotSupportedPrivate)`). + /// + /// # Errors + /// + /// * `Error::Drive(DriveError::UnknownVersionMismatch)`: If the provided drive version is not supported by this function. + /// * `Error::Drive(DriveError::NotSupportedPrivate)`: If the function encounters unsupported configurations such as unknown element sizes for batch operations. + /// + pub fn batch_insert_if_not_exists_return_existing_element( + &self, + path_key_element_info: PathKeyElementInfo, + apply_type: BatchInsertApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result, Error> { + match drive_version.grove_methods.batch.batch_insert_if_not_exists { + 0 => self.batch_insert_if_not_exists_return_existing_element_v0( + path_key_element_info, + apply_type, + transaction, + drive_operations, + drive_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "batch_insert_if_not_exists_return_existing_element".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/v0/mod.rs new file mode 100644 index 0000000000..55f411caeb --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_if_not_exists_return_existing_element/v0/mod.rs @@ -0,0 +1,165 @@ +use crate::util::grove_operations::BatchInsertApplyType; +use crate::util::object_size_info::PathKeyElementInfo::{ + PathFixedSizeKeyRefElement, PathKeyElement, PathKeyElementSize, PathKeyRefElement, + PathKeyUnknownElementSize, +}; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::fees::op::LowLevelDriveOperation::CalculatedCostOperation; +use crate::util::object_size_info::PathKeyElementInfo; +use dpp::version::drive_versions::DriveVersion; +use grovedb::{Element, GroveDb, TransactionArg}; + +impl Drive { + /// Version 0 implementation of the "insert element if the path key does not yet exist" operation. + /// If the element already exists, it returns the existing element. + /// + /// This function checks whether an element exists at a specified path and key. + /// If the element exists, it returns the existing element. If not, it inserts the new element + /// into the database and returns `None`. This operation supports different types of path, key, and element configurations + /// and can be applied in either stateless or stateful contexts. + /// + /// # Parameters + /// + /// * `path_key_element_info`: Information about the path, key, and element to insert. + /// - Supports multiple configurations: direct references, owned elements, fixed size keys, or estimated sizes. + /// * `apply_type`: The application type of the operation, defining whether the operation is stateless or stateful. + /// * `transaction`: The transaction context for the operation, allowing it to be atomic within a batch. + /// * `drive_operations`: A mutable reference to the list of drive operations to which this operation will be appended. + /// * `drive_version`: The version of the drive being used, ensuring compatibility with the function version. + /// + /// # Returns + /// + /// * `Ok(Some(Element))`: If the element already exists at the specified path and key, returning the existing element. + /// * `Ok(None)`: If the element was successfully inserted because it did not exist before. + /// * `Err(Error)`: Returns an error if: + /// - The insertion operation is not supported in the current state. + /// - The operation encounters any unexpected issues related to invalid configurations or unsupported features. + /// + /// # Errors + /// + /// * `Error::Drive(DriveError::NotSupportedPrivate)`: If the function encounters unsupported configurations, such as document sizes for stateful inserts. + /// * `Error::Drive(DriveError::UnknownVersionMismatch)`: If the drive version is not supported for the operation. + /// + /// # PathKeyElementInfo Variants + /// + /// The function supports various `PathKeyElementInfo` variants: + /// * `PathKeyRefElement`: Reference to the path, key, and element. + /// * `PathKeyElement`: Owned path, key, and element. + /// * `PathFixedSizeKeyRefElement`: Reference to the path with a fixed-size key and element. + /// * `PathKeyElementSize`: Path and key with known element size, used for estimation. + /// * `PathKeyUnknownElementSize`: Unsupported in this version and returns an error. + pub(super) fn batch_insert_if_not_exists_return_existing_element_v0( + &self, + path_key_element_info: PathKeyElementInfo, + apply_type: BatchInsertApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result, Error> { + match path_key_element_info { + PathKeyRefElement((path, key, element)) => { + // Check if the element already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key, + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + if let Some(existing_element) = existing_element { + return Ok(Some(existing_element)); + } + + // Element does not exist, proceed with insertion + drive_operations.push(LowLevelDriveOperation::insert_for_known_path_key_element( + path, + key.to_vec(), + element, + )); + Ok(None) + } + PathKeyElement((path, key, element)) => { + // Check if the element already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key.as_slice(), + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + if let Some(existing_element) = existing_element { + return Ok(Some(existing_element)); + } + + // Element does not exist, proceed with insertion + drive_operations.push(LowLevelDriveOperation::insert_for_known_path_key_element( + path, key, element, + )); + Ok(None) + } + PathFixedSizeKeyRefElement((path, key, element)) => { + // Check if the element already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key, + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + if let Some(existing_element) = existing_element { + return Ok(Some(existing_element)); + } + + // Element does not exist, proceed with insertion + let path_items: Vec> = path.into_iter().map(Vec::from).collect(); + drive_operations.push(LowLevelDriveOperation::insert_for_known_path_key_element( + path_items, + key.to_vec(), + element, + )); + Ok(None) + } + PathKeyElementSize((key_info_path, key_info, element)) => { + match apply_type { + BatchInsertApplyType::StatelessBatchInsert { + in_tree_using_sums, .. + } => { + // Estimate if the element with the given size already exists + drive_operations.push(CalculatedCostOperation( + GroveDb::average_case_for_has_raw( + &key_info_path, + &key_info, + element.serialized_size(&drive_version.grove_version)? as u32, + in_tree_using_sums, + &drive_version.grove_version, + )?, + )); + drive_operations.push( + LowLevelDriveOperation::insert_for_estimated_path_key_element( + key_info_path, + key_info, + element, + ), + ); + Ok(None) + } + BatchInsertApplyType::StatefulBatchInsert => { + Err(Error::Drive(DriveError::NotSupportedPrivate( + "document sizes for stateful insert in batch operations not supported", + ))) + } + } + } + PathKeyUnknownElementSize(_) => Err(Error::Drive(DriveError::NotSupportedPrivate( + "document sizes in batch operations not supported", + ))), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/mod.rs new file mode 100644 index 0000000000..87331adad0 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/mod.rs @@ -0,0 +1,58 @@ +mod v0; + +use crate::util::grove_operations::BatchInsertApplyType; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::object_size_info::PathKeyElementInfo; + +use dpp::version::drive_versions::DriveVersion; +use grovedb::TransactionArg; + +impl Drive { + /// Pushes an "insert sum item or add to it if the item already exists" operation to `drive_operations`. + /// This operation either inserts a new sum item at the given path and key or adds the value to the existing sum item. + /// + /// # Parameters + /// * `path_key_element_info`: Information about the path, key, and element. + /// * `apply_type`: The apply type for the operation. + /// * `transaction`: The transaction argument for the operation. + /// * `drive_operations`: The list of drive operations to append to. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::UnknownVersionMismatch)` if the drive version does not match known versions. + /// * `Err(DriveError::CorruptedCodeExecution)` (rare) if the operation is not supported. + /// * `Err(DriveError::CorruptedElementType)` (rare) if drive is in a corrupted state and + /// gives back an incorrect element type. + pub fn batch_insert_sum_item_or_add_to_if_already_exists( + &self, + path_key_element_info: PathKeyElementInfo, + apply_type: BatchInsertApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + match drive_version + .grove_methods + .batch + .batch_insert_sum_item_or_add_to_if_already_exists + { + 0 => self.batch_insert_sum_item_or_add_to_if_already_exists_v0( + path_key_element_info, + apply_type, + transaction, + drive_operations, + drive_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "batch_insert_sum_item_or_add_to_if_already_exists".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/v0/mod.rs new file mode 100644 index 0000000000..8294a6786b --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_insert_sum_item_or_add_to_if_already_exists/v0/mod.rs @@ -0,0 +1,220 @@ +use crate::util::grove_operations::BatchInsertApplyType; +use crate::util::object_size_info::PathKeyElementInfo::{ + PathFixedSizeKeyRefElement, PathKeyElement, PathKeyElementSize, PathKeyRefElement, + PathKeyUnknownElementSize, +}; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::fees::op::LowLevelDriveOperation::CalculatedCostOperation; +use crate::util::object_size_info::PathKeyElementInfo; +use dpp::version::drive_versions::DriveVersion; +use dpp::ProtocolError; +use grovedb::{Element, GroveDb, TransactionArg}; + +impl Drive { + /// Version 0 implementation of the "insert sum item or add to it if the item already exists" operation. + /// This operation either inserts a new sum item at the given path and key or adds the value to the existing sum item. + /// + /// # Parameters + /// * `path_key_element_info`: Information about the path, key, and element. + /// * `apply_type`: The apply type for the operation. + /// * `transaction`: The transaction argument for the operation. + /// * `drive_operations`: The list of drive operations to append to. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::CorruptedCodeExecution)` if the operation is not supported. + pub(crate) fn batch_insert_sum_item_or_add_to_if_already_exists_v0( + &self, + path_key_element_info: PathKeyElementInfo, + apply_type: BatchInsertApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + match path_key_element_info { + PathKeyRefElement((path, key, element)) => { + if let Element::SumItem(new_value, _) = element { + // Check if the sum item already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key, + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + + if let Some(Element::SumItem(existing_value, _)) = existing_element { + // Add to the existing sum item + let updated_value = existing_value + .checked_add(new_value) + .ok_or(ProtocolError::Overflow("overflow when adding to sum item"))?; + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path, + key.to_vec(), + Element::new_sum_item(updated_value), + ), + ); + } else if existing_element.is_some() { + return Err(Error::Drive(DriveError::CorruptedElementType( + "expected sum item element type", + ))); + } else { + // Insert as a new sum item + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path, + key.to_vec(), + Element::new_sum_item(new_value), + ), + ); + } + } else { + return Err(Error::Drive(DriveError::CorruptedCodeExecution( + "expected sum item element type", + ))); + } + Ok(()) + } + PathKeyElement((path, key, element)) => { + if let Element::SumItem(new_value, _) = element { + // Check if the sum item already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key.as_slice(), + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + + if let Some(Element::SumItem(existing_value, _)) = existing_element { + // Add to the existing sum item + let updated_value = existing_value + .checked_add(new_value) + .ok_or(ProtocolError::Overflow("overflow when adding to sum item"))?; + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path, + key, + Element::new_sum_item(updated_value), + ), + ); + } else if existing_element.is_some() { + return Err(Error::Drive(DriveError::CorruptedElementType( + "expected sum item element type", + ))); + } else { + // Insert as a new sum item + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path, + key, + Element::new_sum_item(new_value), + ), + ); + } + } else { + return Err(Error::Drive(DriveError::CorruptedCodeExecution( + "expected sum item element type", + ))); + } + Ok(()) + } + PathFixedSizeKeyRefElement((path, key, element)) => { + if let Element::SumItem(new_value, _) = element { + // Check if the sum item already exists + let existing_element = self.grove_get_raw_optional( + path.as_slice().into(), + key, + apply_type.to_direct_query_type(), + transaction, + drive_operations, + drive_version, + )?; + + if let Some(Element::SumItem(existing_value, _)) = existing_element { + // Add to the existing sum item + let updated_value = existing_value + .checked_add(new_value) + .ok_or(ProtocolError::Overflow("overflow when adding to sum item"))?; + let path_items: Vec> = path.into_iter().map(Vec::from).collect(); + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path_items, + key.to_vec(), + Element::new_sum_item(updated_value), + ), + ); + } else if existing_element.is_some() { + return Err(Error::Drive(DriveError::CorruptedElementType( + "expected sum item element type", + ))); + } else { + // Insert as a new sum item + let path_items: Vec> = path.into_iter().map(Vec::from).collect(); + drive_operations.push( + LowLevelDriveOperation::insert_for_known_path_key_element( + path_items, + key.to_vec(), + Element::new_sum_item(new_value), + ), + ); + } + } else { + return Err(Error::Drive(DriveError::CorruptedCodeExecution( + "expected sum item element type", + ))); + } + Ok(()) + } + PathKeyElementSize((key_info_path, key_info, element)) => { + if let Element::SumItem(new_value, _) = element { + match apply_type { + BatchInsertApplyType::StatelessBatchInsert { + in_tree_using_sums, .. + } => { + // Estimate if the sum item with the given size already exists + drive_operations.push(CalculatedCostOperation( + GroveDb::average_case_for_has_raw( + &key_info_path, + &key_info, + element.serialized_size(&drive_version.grove_version)? as u32, + in_tree_using_sums, + &drive_version.grove_version, + )?, + )); + + drive_operations.push( + LowLevelDriveOperation::insert_for_estimated_path_key_element( + key_info_path, + key_info, + Element::new_sum_item(new_value), + ), + ); + Ok(()) + } + BatchInsertApplyType::StatefulBatchInsert => { + Err(Error::Drive(DriveError::NotSupportedPrivate( + "document sizes for stateful insert in batch operations not supported", + ))) + } + } + } else { + Err(Error::Drive(DriveError::CorruptedCodeExecution( + "expected sum item element type", + ))) + } + } + PathKeyUnknownElementSize(_) => Err(Error::Drive(DriveError::NotSupportedPrivate( + "document sizes in batch operations not supported", + ))), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/mod.rs new file mode 100644 index 0000000000..ae886e0f54 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/mod.rs @@ -0,0 +1,58 @@ +mod v0; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::BatchMoveApplyType; + +use dpp::version::drive_versions::DriveVersion; + +use grovedb::{PathQuery, TransactionArg}; + +impl Drive { + /// Pushes multiple "delete element" and "insert element operations for items in a given path based on a `PathQuery` to `drive_operations`. + /// + /// # Parameters + /// * `path_query`: The path query specifying the items to delete within the path. + /// * `error_if_intermediate_path_tree_not_present`: Tells the function to either error or do nothing if an intermediate tree is not present. + /// * `apply_type`: The apply type for the move operations. + /// * `transaction`: The transaction argument. + /// * `drive_operations`: The vector containing low-level drive operations. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::UnknownVersionMismatch)` if the drive version does not match known versions. + pub fn batch_move_items_in_path_query( + &self, + path_query: &PathQuery, + new_path: Vec>, + error_if_intermediate_path_tree_not_present: bool, + apply_type: BatchMoveApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + match drive_version + .grove_methods + .batch + .batch_move_items_in_path_query + { + 0 => self.batch_move_items_in_path_query_v0( + path_query, + new_path, + error_if_intermediate_path_tree_not_present, + apply_type, + transaction, + drive_operations, + drive_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "batch_move_items_in_path_query".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/v0/mod.rs new file mode 100644 index 0000000000..f8b2b904cc --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/batch_move_items_in_path_query/v0/mod.rs @@ -0,0 +1,530 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::fees::op::LowLevelDriveOperation::GroveOperation; +use crate::util::grove_operations::{push_drive_operation_result, BatchMoveApplyType}; +use grovedb::batch::key_info::KeyInfo; +use grovedb::batch::{KeyInfoPath, QualifiedGroveDbOp}; +use grovedb::operations::delete::DeleteOptions; +use grovedb::query_result_type::QueryResultType; +use grovedb::{GroveDb, PathQuery, TransactionArg}; +use grovedb_storage::rocksdb_storage::RocksDbStorage; +use platform_version::version::drive_versions::DriveVersion; + +impl Drive { + /// Version 0 implementation of the "delete multiple elements" and "insert multiple elements" operation based on a `PathQuery`. + /// Deletes items in the specified path that match the given query. + /// Then inserts those items at the given path. + /// + /// # Parameters + /// * `path_query`: The path query specifying the items to delete within the path. + /// * `error_if_intermediate_path_tree_not_present`: Tells the function to either error or do nothing if an intermediate tree is not present. + /// * `apply_type`: The apply type for the move operations. + /// * `transaction`: The transaction argument. + /// * `drive_operations`: The vector containing low-level drive operations. + /// * `drive_version`: The drive version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(())` if the operation was successful. + /// * `Err(DriveError::CorruptedCodeExecution)` if the operation is not supported. + pub(super) fn batch_move_items_in_path_query_v0( + &self, + path_query: &PathQuery, + new_path: Vec>, + error_if_intermediate_path_tree_not_present: bool, + apply_type: BatchMoveApplyType, + transaction: TransactionArg, + drive_operations: &mut Vec, + drive_version: &DriveVersion, + ) -> Result<(), Error> { + if path_query.query.limit == None { + return Err(Error::Drive(DriveError::NotSupported( + "Limits are required for path_query", + ))); + } + let query_result = if path_query + .query + .query + .items + .iter() + .all(|query_item| query_item.is_key()) + { + // Fetch the elements that match the path query + let query_result = self.grove_get_raw_path_query_with_optional( + path_query, + error_if_intermediate_path_tree_not_present, + transaction, + drive_operations, + drive_version, + )?; + + query_result + .into_iter() + .filter_map(|(path, key, maybe_element)| { + maybe_element.map(|element| (path, key, element)) + }) + .collect() + } else { + self.grove_get_raw_path_query( + path_query, + transaction, + QueryResultType::QueryPathKeyElementTrioResultType, + drive_operations, + drive_version, + )? + .0 + .to_path_key_elements() + }; + + // Iterate over each element and add a delete operation for it + for (path, key, element) in query_result { + let current_batch_operations = + LowLevelDriveOperation::grovedb_operations_batch(drive_operations); + let options = DeleteOptions { + allow_deleting_non_empty_trees: false, + deleting_non_empty_trees_returns_error: true, + base_root_storage_is_free: true, + validate_tree_at_path_exists: false, + }; + let delete_operation = match apply_type { + BatchMoveApplyType::StatelessBatchMove { + is_sum_tree, + estimated_key_size, + estimated_value_size, + .. + } => GroveDb::average_case_delete_operation_for_delete::( + &KeyInfoPath::from_known_owned_path(path.to_vec()), + &KeyInfo::KnownKey(key.to_vec()), + is_sum_tree, + false, + true, + 0, + (estimated_key_size, estimated_value_size), + &drive_version.grove_version, + ) + .map(|r| r.map(Some)), + BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum, + } => self.grove.delete_operation_for_delete_internal( + (path.as_slice()).into(), + key.as_slice(), + &options, + is_known_to_be_subtree_with_sum, + ¤t_batch_operations.operations, + transaction, + &drive_version.grove_version, + ), + }; + + if let Some(delete_operation) = + push_drive_operation_result(delete_operation, drive_operations)? + { + // Add the delete operation to the batch of drive operations + drive_operations.push(GroveOperation(delete_operation)); + // Adds the insert operation to the batch of drive operations + drive_operations.push(GroveOperation(QualifiedGroveDbOp::insert_or_replace_op( + new_path.clone(), + key, + element, + ))); + } + } + + Ok(()) + } +} +#[cfg(test)] +mod tests { + use crate::util::grove_operations::QueryType; + use crate::{ + error::Error, util::grove_operations::BatchMoveApplyType, + util::test_helpers::setup::setup_drive, + }; + use assert_matches::assert_matches; + use grovedb::{Element, PathQuery, Query, SizedQuery}; + use grovedb_path::SubtreePath; + use platform_version::version::PlatformVersion; + + #[test] + fn test_batch_move_items_in_path_query_success() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Insert elements that will be moved + let path = vec![b"root".to_vec()]; + let new_path = vec![b"new_root".to_vec()]; + let key1 = b"key1".to_vec(); + let key2 = b"key2".to_vec(); + let element1 = Element::new_item(b"value1".to_vec()); + let element2 = Element::new_item(b"value2".to_vec()); + + // Insert the root tree and new root tree + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"new_root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert new root tree"); + + drive + .grove + .insert( + path.as_slice(), + &key1, + element1.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected to insert element1"); + + drive + .grove + .insert( + path.as_slice(), + &key2, + element2.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected to insert element2"); + + // Create a path query that matches the inserted elements + let mut query = Query::new(); + query.insert_key(key1.clone()); + query.insert_key(key2.clone()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(100), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum: Some((false, false)), + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_move_items_in_path_query_v0( + &path_query, + new_path.clone(), + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected to move items"); + + // Apply batch operations + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify that keys have been moved to the new path + let get_result_1 = drive.grove_get( + new_path.as_slice().into(), + &key1, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_1, Ok(Some(Element::Item(value, _))) if value == b"value1".to_vec()); + + let get_result_2 = drive.grove_get( + new_path.as_slice().into(), + &key2, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_2, Ok(Some(Element::Item(value, _))) if value == b"value2".to_vec()); + + // Verify that keys are no longer in the original path + let get_result_1_old = drive.grove_get( + path.as_slice().into(), + &key1, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_1_old, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + + let get_result_2_old = drive.grove_get( + path.as_slice().into(), + &key2, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_2_old, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + } + + #[test] + fn test_batch_move_items_in_path_query_no_elements() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Create the root tree to allow querying it + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + // Create a path query that does not match any elements + let path = vec![b"root".to_vec()]; + let new_path = vec![b"new_root".to_vec()]; + let mut query = Query::new(); + query.insert_key(b"non_existent_key".to_vec()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(1), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum: Some((false, false)), + }; + let mut drive_operations = Vec::new(); + + // Call the function + let result = drive.batch_move_items_in_path_query_v0( + &path_query, + new_path.clone(), + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ); + + assert!(result.is_ok()); + } + + #[test] + fn test_batch_move_items_in_path_query_range_query() { + // Set up a test drive instance and transaction + let drive = setup_drive(None); + let platform_version = PlatformVersion::latest(); + let transaction = drive.grove.start_transaction(); + + // Insert the root tree + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert root tree"); + + // Insert three elements with keys 1, 2, and 3 + let path = vec![b"root".to_vec()]; + let new_path = vec![b"new_root".to_vec()]; + let key1 = b"1".to_vec(); + let key2 = b"2".to_vec(); + let key3 = b"3".to_vec(); + let element = Element::new_item(b"value".to_vec()); + + // Insert the new root tree + drive + .grove_insert_empty_tree( + SubtreePath::empty(), + b"new_root", + Some(&transaction), + None, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to insert new root tree"); + + drive + .grove + .insert( + path.as_slice(), + &key1, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 1"); + + drive + .grove + .insert( + path.as_slice(), + &key2, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 2"); + + drive + .grove + .insert( + path.as_slice(), + &key3, + element.clone(), + None, + Some(&transaction), + &platform_version.drive.grove_version, + ) + .unwrap() + .expect("expected insert for key 3"); + + // Create a range path query that matches keys less than 3 + let mut query = Query::new(); + query.insert_range_to(..b"3".to_vec()); + let path_query = PathQuery::new(path.clone(), SizedQuery::new(query, Some(100), None)); + + // Set up the apply type and drive operations vector + let apply_type = BatchMoveApplyType::StatefulBatchMove { + is_known_to_be_subtree_with_sum: Some((false, false)), + }; + let mut drive_operations = Vec::new(); + + // Call the function + drive + .batch_move_items_in_path_query_v0( + &path_query, + new_path.clone(), + true, + apply_type, + Some(&transaction), + &mut drive_operations, + &platform_version.drive, + ) + .expect("expected to batch move items"); + + // Apply batch operations + drive + .apply_batch_low_level_drive_operations( + None, + Some(&transaction), + drive_operations, + &mut vec![], + &platform_version.drive, + ) + .expect("expected to apply operations"); + + // Commit the transaction + drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit transaction"); + + // Verify that keys 1 and 2 have been moved to the new path + let get_result_1 = drive.grove_get( + new_path.as_slice().into(), + &key1, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_1, Ok(Some(Element::Item(value, _))) if value == b"value".to_vec()); + + let get_result_2 = drive.grove_get( + new_path.as_slice().into(), + &key2, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_2, Ok(Some(Element::Item(value, _))) if value == b"value".to_vec()); + + // Verify that keys 1 and 2 are no longer in the original path + let get_result_1_old = drive.grove_get( + path.as_slice().into(), + &key1, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_1_old, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + + let get_result_2_old = drive.grove_get( + path.as_slice().into(), + &key2, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!( + get_result_2_old, + Err(Error::GroveDB(grovedb::Error::PathKeyNotFound(_))) + ); + + // Verify that key 3 is still in the original path + let get_result_3 = drive.grove_get( + path.as_slice().into(), + &key3, + QueryType::StatefulQuery, + None, + &mut vec![], + &platform_version.drive, + ); + assert_matches!(get_result_3, Ok(Some(Element::Item(..)))); + } +} diff --git a/packages/rs-drive/src/util/grove_operations/grove_apply_batch_with_add_costs/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/grove_apply_batch_with_add_costs/v0/mod.rs index ce9333f0b7..c0afbdaa79 100644 --- a/packages/rs-drive/src/util/grove_operations/grove_apply_batch_with_add_costs/v0/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/grove_apply_batch_with_add_costs/v0/mod.rs @@ -6,11 +6,9 @@ use crate::query::GroveError; use crate::util::batch::grovedb_op_batch::GroveDbOpBatchV0Methods; use crate::util::batch::GroveDbOpBatch; use crate::util::grove_operations::push_drive_operation_result; -use crate::util::storage_flags::{MergingOwnersStrategy, StorageFlags}; +use crate::util::storage_flags::StorageFlags; use grovedb::batch::{BatchApplyOptions, QualifiedGroveDbOp}; use grovedb::TransactionArg; -use grovedb_costs::storage_cost::removal::StorageRemovedBytes::BasicStorageRemoval; -use grovedb_costs::storage_cost::transition::OperationStorageTransitionType; use platform_version::version::drive_versions::DriveVersion; impl Drive { @@ -74,95 +72,12 @@ impl Drive { batch_pause_height: None, }), |cost, old_flags, new_flags| { - // if there were no flags before then the new flags are used - if old_flags.is_none() { - return Ok(false); - } - // This could be none only because the old element didn't exist - // If they were empty we get an error - let maybe_old_storage_flags = StorageFlags::map_some_element_flags_ref(&old_flags) - .map_err(|e| { - GroveError::JustInTimeElementFlagsClientError( - format!("drive did not understand flags of old item being updated: {}", e) - ) - })?; - let new_storage_flags = StorageFlags::from_element_flags_ref(new_flags) - .map_err(|e| { - GroveError::JustInTimeElementFlagsClientError( - format!("drive did not understand updated item flag information: {}",e) - ) - })? - .ok_or(GroveError::JustInTimeElementFlagsClientError( - "removing flags from an item with flags is not allowed".to_string() - ))?; - match &cost.transition_type() { - OperationStorageTransitionType::OperationUpdateBiggerSize => { - // In the case that the owners do not match up this means that there has been a transfer - // of ownership of the underlying document, the value held is transferred to the new owner - let combined_storage_flags = StorageFlags::optional_combine_added_bytes( - maybe_old_storage_flags, - new_storage_flags, - cost.added_bytes, - MergingOwnersStrategy::UseTheirs, - ) - .map_err(|e| { - GroveError::JustInTimeElementFlagsClientError( - format!("drive could not combine storage flags (new flags were bigger): {}",e) - ) - })?; - let combined_flags = combined_storage_flags.to_element_flags(); - // it's possible they got bigger in the same epoch - if combined_flags == *new_flags { - // they are the same there was no update - Ok(false) - } else { - *new_flags = combined_flags; - Ok(true) - } - } - OperationStorageTransitionType::OperationUpdateSmallerSize => { - // In the case that the owners do not match up this means that there has been a transfer - // of ownership of the underlying document, the value held is transferred to the new owner - let combined_storage_flags = StorageFlags::optional_combine_removed_bytes( - maybe_old_storage_flags, - new_storage_flags, - &cost.removed_bytes, - MergingOwnersStrategy::UseTheirs, - ) - .map_err(|e| { - GroveError::JustInTimeElementFlagsClientError( - format!("drive could not combine storage flags (new flags were smaller): {}", e) - ) - })?; - let combined_flags = combined_storage_flags.to_element_flags(); - // it's possible they got bigger in the same epoch - if combined_flags == *new_flags { - // they are the same there was no update - Ok(false) - } else { - *new_flags = combined_flags; - Ok(true) - } - } - _ => Ok(false), - } + StorageFlags::update_element_flags(cost, old_flags, new_flags) + .map_err(|e| GroveError::JustInTimeElementFlagsClientError(e.to_string())) }, |flags, removed_key_bytes, removed_value_bytes| { - let maybe_storage_flags = - StorageFlags::from_element_flags_ref(flags).map_err(|e| { - GroveError::SplitRemovalBytesClientError( - format!("drive did not understand flags of item being updated: {}",e) - ) - })?; - // if there were no flags before then the new flags are used - match maybe_storage_flags { - None => Ok(( - BasicStorageRemoval(removed_key_bytes), - BasicStorageRemoval(removed_value_bytes), - )), - Some(storage_flags) => storage_flags - .split_storage_removed_bytes(removed_key_bytes, removed_value_bytes), - } + StorageFlags::split_removal_bytes(flags, removed_key_bytes, removed_value_bytes) + .map_err(|e| GroveError::SplitRemovalBytesClientError(e.to_string())) }, transaction, &drive_version.grove_version, diff --git a/packages/rs-drive/src/util/grove_operations/grove_apply_partial_batch_with_add_costs/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/grove_apply_partial_batch_with_add_costs/v0/mod.rs index 82dad9f035..a734e406db 100644 --- a/packages/rs-drive/src/util/grove_operations/grove_apply_partial_batch_with_add_costs/v0/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/grove_apply_partial_batch_with_add_costs/v0/mod.rs @@ -139,8 +139,8 @@ impl Drive { BasicStorageRemoval(removed_key_bytes), BasicStorageRemoval(removed_value_bytes), )), - Some(storage_flags) => storage_flags - .split_storage_removed_bytes(removed_key_bytes, removed_value_bytes), + Some(storage_flags) => Ok(storage_flags + .split_storage_removed_bytes(removed_key_bytes, removed_value_bytes)), } }, add_on_operations, diff --git a/packages/rs-drive/src/util/grove_operations/grove_get_sum_tree_total_value/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/grove_get_sum_tree_total_value/v0/mod.rs index a2a27c7c64..65bd03f3e3 100644 --- a/packages/rs-drive/src/util/grove_operations/grove_get_sum_tree_total_value/v0/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/grove_get_sum_tree_total_value/v0/mod.rs @@ -14,7 +14,7 @@ use platform_version::version::drive_versions::DriveVersion; impl Drive { /// Gets the element at the given path from groveDB. /// Pushes the `OperationCost` of getting the element to `drive_operations`. - pub(crate) fn grove_get_sum_tree_total_value_v0>( + pub(super) fn grove_get_sum_tree_total_value_v0>( &self, path: SubtreePath<'_, B>, key: &[u8], diff --git a/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/mod.rs b/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/mod.rs new file mode 100644 index 0000000000..6727b72014 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/mod.rs @@ -0,0 +1,53 @@ +mod v0; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use dpp::version::drive_versions::DriveVersion; +use grovedb::{Element, TransactionArg}; +use grovedb_path::SubtreePath; + +impl Drive { + /// Inserts an element into groveDB only if the specified path and key do not exist. + /// This operation costs are then stored in `drive_operations`. + /// + /// # Parameters + /// * `path`: The groveDB hierarchical authenticated structure path where the new element is to be inserted. + /// * `key`: The key where the new element should be inserted in the subtree. + /// * `element`: The element to be inserted. + /// * `transaction`: The groveDB transaction associated with this operation. + /// * `drive_operations`: A vector to collect the costs of operations for later computation. In this case, + /// it collects the cost of this insert operation if the path and key did not exist. + /// * `platform_version`: The platform version to select the correct function version to run. + /// + /// # Returns + /// * `Ok(true)` if the insertion was successful. + /// * `Ok(false)` if the path and key already existed. + /// * `Err(DriveError::UnknownVersionMismatch)` if the platform version does not match known versions. + pub fn grove_insert_if_not_exists_return_existing_element>( + &self, + path: SubtreePath<'_, B>, + key: &[u8], + element: Element, + transaction: TransactionArg, + drive_operations: Option<&mut Vec>, + drive_version: &DriveVersion, + ) -> Result, Error> { + match drive_version.grove_methods.basic.grove_insert_if_not_exists { + 0 => self.grove_insert_if_not_exists_return_existing_element_v0( + path, + key, + element, + transaction, + drive_operations, + drive_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "grove_insert_if_not_exists_return_existing_element".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/v0/mod.rs b/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/v0/mod.rs new file mode 100644 index 0000000000..69b55ba2d7 --- /dev/null +++ b/packages/rs-drive/src/util/grove_operations/grove_insert_if_not_exists_return_existing_element/v0/mod.rs @@ -0,0 +1,30 @@ +use crate::drive::Drive; +use crate::error::Error; +use crate::fees::op::LowLevelDriveOperation; +use crate::util::grove_operations::push_drive_operation_result_optional; +use grovedb::{Element, TransactionArg}; +use grovedb_path::SubtreePath; +use platform_version::version::drive_versions::DriveVersion; + +impl Drive { + /// Pushes the `OperationCost` of inserting an element in groveDB where the path key does not yet exist + /// to `drive_operations`. + pub(crate) fn grove_insert_if_not_exists_return_existing_element_v0>( + &self, + path: SubtreePath<'_, B>, + key: &[u8], + element: Element, + transaction: TransactionArg, + drive_operations: Option<&mut Vec>, + drive_version: &DriveVersion, + ) -> Result, Error> { + let cost_context = self.grove.insert_if_not_exists_return_existing_element( + path, + key, + element, + transaction, + &drive_version.grove_version, + ); + push_drive_operation_result_optional(cost_context, drive_operations) + } +} diff --git a/packages/rs-drive/src/util/grove_operations/mod.rs b/packages/rs-drive/src/util/grove_operations/mod.rs index a328aa8efb..41736ed442 100644 --- a/packages/rs-drive/src/util/grove_operations/mod.rs +++ b/packages/rs-drive/src/util/grove_operations/mod.rs @@ -108,10 +108,27 @@ pub mod grove_batch_operations_costs; /// Clear a subtree in grovedb pub mod grove_clear; +/// Provides functionality to delete items in a path based on a query. +pub mod batch_delete_items_in_path_query; + +/// Inserts an element if it does not exist and returns the existing element if it does. +pub mod batch_insert_if_not_exists_return_existing_element; + +/// Inserts a sum item or adds to it if it already exists. +pub mod batch_insert_sum_item_or_add_to_if_already_exists; + +/// Retrieves serialized or sum results from a path query in GroveDB. mod grove_get_path_query_serialized_or_sum_results; -/// Proved path query in grovedb with a conditional query + +/// Executes a proved path query in GroveDB with an optional conditional query. pub mod grove_get_proved_path_query_with_conditional; +/// Inserts an element if it does not exist and returns the existing element if it does in GroveDB. +pub mod grove_insert_if_not_exists_return_existing_element; + +/// Moved items that are found in a path query to a new path. +pub mod batch_move_items_in_path_query; + use grovedb_costs::CostContext; use grovedb::EstimatedLayerInformation; @@ -163,7 +180,7 @@ pub enum BatchDeleteApplyType { StatelessBatchDelete { /// Are we deleting in a sum tree is_sum_tree: bool, - /// What is the estimated value size + /// What is the estimated key size estimated_key_size: u32, /// What is the estimated value size estimated_value_size: u32, @@ -175,6 +192,29 @@ pub enum BatchDeleteApplyType { }, } +/// Batch move apply type +#[derive(Debug, Copy, Clone)] +pub enum BatchMoveApplyType { + /// Stateless batch move + StatelessBatchMove { + /// Are we moving from inside a sum tree + in_tree_using_sums: bool, + /// Are we moving a sum tree + is_sum_tree: bool, + /// What is the estimated key size + estimated_key_size: u32, + /// What is the estimated value size + estimated_value_size: u32, + /// The flags length + flags_len: FlagsLen, + }, + /// Stateful batch move + StatefulBatchMove { + /// Are we known to be in a subtree and does this subtree have sums + is_known_to_be_subtree_with_sum: Option<(IsSubTree, IsSumSubTree)>, + }, +} + #[derive(Clone)] /// Batch delete up tree apply type pub enum BatchDeleteUpTreeApplyType { diff --git a/packages/rs-drive/src/util/mod.rs b/packages/rs-drive/src/util/mod.rs index bbf86f059e..4f15e99d0a 100644 --- a/packages/rs-drive/src/util/mod.rs +++ b/packages/rs-drive/src/util/mod.rs @@ -13,6 +13,8 @@ pub mod object_size_info; pub mod common; #[cfg(feature = "server")] mod operations; + +/// Storage flags #[cfg(any(feature = "server", feature = "verify"))] pub mod storage_flags; /// Test helpers diff --git a/packages/rs-drive/src/util/object_size_info/path_key_info.rs b/packages/rs-drive/src/util/object_size_info/path_key_info.rs index c417ef602d..b75813547b 100644 --- a/packages/rs-drive/src/util/object_size_info/path_key_info.rs +++ b/packages/rs-drive/src/util/object_size_info/path_key_info.rs @@ -6,8 +6,10 @@ use crate::util::object_size_info::path_key_info::PathKeyInfo::{ use grovedb::batch::key_info::KeyInfo; use grovedb::batch::key_info::KeyInfo::KnownKey; use grovedb::batch::KeyInfoPath; +use grovedb::operations::proof::util::hex_to_ascii; use grovedb_storage::worst_case_costs::WorstKeyLength; use std::collections::HashSet; +use std::fmt; /// Path key info #[derive(Clone, Debug)] @@ -25,6 +27,79 @@ pub enum PathKeyInfo<'a, const N: usize> { PathKeySize(KeyInfoPath, KeyInfo), } +/// Assume KeyInfoPath and KeyInfo implement Display. +/// If they do not, you need to implement Display for them as well. +impl<'a, const N: usize> fmt::Display for PathKeyInfo<'a, N> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + // Helper function to format KeyInfo + fn format_key_info(key_info: &KeyInfo) -> String { + match key_info { + KeyInfo::KnownKey(vec) => format!("KnownKey(\"{}\")", hex_to_ascii(vec)), + KeyInfo::MaxKeySize { + unique_id, + max_size, + } => { + format!( + "MaxKeySize(unique_id: \"{}\", max_size: {})", + hex_to_ascii(unique_id), + max_size + ) + } + } + } + + // Helper function to format KeyInfoPath + fn format_key_info_path(key_info_path: &KeyInfoPath) -> String { + let formatted_keys: Vec = key_info_path + .0 + .iter() + .map(|key_info| format_key_info(key_info)) + .collect(); + format!("[{}]", formatted_keys.join(", ")) + } + + match self { + PathKeyInfo::PathFixedSizeKey((path, key)) => { + write!(f, "PathFixedSizeKey(path: [")?; + for p in path.iter() { + write!(f, "\"{}\" ", hex_to_ascii(p))?; + } + write!(f, "], key: \"{}\")", hex_to_ascii(key)) + } + PathKeyInfo::PathFixedSizeKeyRef((path, key)) => { + write!(f, "PathFixedSizeKeyRef(path: [")?; + for p in path.iter() { + write!(f, "\"{}\" ", hex_to_ascii(p))?; + } + write!(f, "], key: \"{}\")", hex_to_ascii(key)) + } + PathKeyInfo::PathKey((path, key)) => { + write!(f, "PathKey(path: [")?; + for p in path.iter() { + write!(f, "\"{}\" ", hex_to_ascii(p))?; + } + write!(f, "], key: \"{}\")", hex_to_ascii(key)) + } + PathKeyInfo::PathKeyRef((path, key)) => { + write!(f, "PathKeyRef(path: [")?; + for p in path.iter() { + write!(f, "\"{}\" ", hex_to_ascii(p))?; + } + write!(f, "], key: \"{}\")", hex_to_ascii(key)) + } + PathKeyInfo::PathKeySize(path_info, key_info) => { + let formatted_path_info = format_key_info_path(path_info); + let formatted_key_info = format_key_info(key_info); + write!( + f, + "PathKeySize(path_info: {}, key_info: {})", + formatted_path_info, formatted_key_info + ) + } + } + } +} + impl<'a> TryFrom>> for PathKeyInfo<'a, 0> { type Error = Error; diff --git a/packages/rs-drive/src/util/storage_flags.rs b/packages/rs-drive/src/util/storage_flags.rs new file mode 100644 index 0000000000..d933d14dac --- /dev/null +++ b/packages/rs-drive/src/util/storage_flags.rs @@ -0,0 +1,3 @@ +pub use grovedb_epoch_based_storage_flags::{ + MergingOwnersStrategy, StorageFlags, SINGLE_EPOCH_FLAGS_SIZE, +}; diff --git a/packages/rs-drive/src/util/storage_flags/mod.rs b/packages/rs-drive/src/util/storage_flags/mod.rs deleted file mode 100644 index 3f85b2602d..0000000000 --- a/packages/rs-drive/src/util/storage_flags/mod.rs +++ /dev/null @@ -1,786 +0,0 @@ -//! Flags -//! - -#[cfg(feature = "server")] -use crate::util::storage_flags::StorageFlags::{ - MultiEpoch, MultiEpochOwned, SingleEpoch, SingleEpochOwned, -}; -#[cfg(feature = "server")] -use crate::util::type_constants::DEFAULT_HASH_SIZE; -#[cfg(feature = "server")] -use grovedb::ElementFlags; -#[cfg(feature = "server")] -use grovedb_costs::storage_cost::removal::StorageRemovedBytes::SectionedStorageRemoval; -#[cfg(feature = "server")] -use grovedb_costs::storage_cost::removal::{ - StorageRemovalPerEpochByIdentifier, StorageRemovedBytes, -}; -#[cfg(feature = "server")] -use integer_encoding::VarInt; -#[cfg(feature = "server")] -use intmap::IntMap; -#[cfg(feature = "server")] -use std::borrow::Cow; -#[cfg(feature = "server")] -use std::cmp::Ordering; -#[cfg(any(feature = "server", feature = "verify"))] -use std::collections::BTreeMap; - -#[cfg(feature = "server")] -use crate::error::storage_flags::StorageFlagsError; -#[cfg(feature = "server")] -use crate::error::Error; - -#[cfg(any(feature = "server", feature = "verify"))] -type EpochIndex = u16; - -#[cfg(any(feature = "server", feature = "verify"))] -type BaseEpoch = EpochIndex; - -#[cfg(any(feature = "server", feature = "verify"))] -type BytesAddedInEpoch = u32; - -#[cfg(any(feature = "server", feature = "verify"))] -type OwnerId = [u8; 32]; - -#[cfg(feature = "server")] -/// The size of single epoch flags -pub const SINGLE_EPOCH_FLAGS_SIZE: u32 = 3; - -#[cfg(any(feature = "server", feature = "verify"))] -/// Storage flags -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum StorageFlags { - /// Single epoch - /// represented as byte 0 - SingleEpoch(BaseEpoch), - - /// Multi epoch - /// represented as byte 1 - MultiEpoch(BaseEpoch, BTreeMap), - - /// Single epoch owned - /// represented as byte 2 - SingleEpochOwned(BaseEpoch, OwnerId), - - /// Multi epoch owned - /// represented as byte 3 - MultiEpochOwned(BaseEpoch, BTreeMap, OwnerId), -} - -#[cfg(any(feature = "server", feature = "verify"))] -/// MergingOwnersStrategy decides which owner to keep during a merge -#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] -pub enum MergingOwnersStrategy { - #[default] - /// Raise an issue that owners of nodes are different - RaiseIssue, - /// Use the original owner id - UseOurs, - /// Use the new owner id - UseTheirs, -} - -#[cfg(feature = "server")] -impl StorageFlags { - /// Create new single epoch storage flags - pub fn new_single_epoch(epoch: BaseEpoch, maybe_owner_id: Option) -> Self { - match maybe_owner_id { - None => SingleEpoch(epoch), - Some(owner_id) => SingleEpochOwned(epoch, owner_id), - } - } - - fn combine_owner_id<'a>( - &'a self, - rhs: &'a Self, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result, Error> { - if let Some(our_owner_id) = self.owner_id() { - if let Some(other_owner_id) = rhs.owner_id() { - if our_owner_id != other_owner_id { - match merging_owners_strategy { - MergingOwnersStrategy::RaiseIssue => Err(Error::StorageFlags( - StorageFlagsError::MergingStorageFlagsFromDifferentOwners( - "can not merge from different owners", - ), - )), - MergingOwnersStrategy::UseOurs => Ok(Some(our_owner_id)), - MergingOwnersStrategy::UseTheirs => Ok(Some(other_owner_id)), - } - } else { - Ok(Some(our_owner_id)) - } - } else { - Ok(Some(our_owner_id)) - } - } else if let Some(other_owner_id) = rhs.owner_id() { - Ok(Some(other_owner_id)) - } else { - Ok(None) - } - } - - fn combine_non_base_epoch_bytes( - &self, - rhs: &Self, - ) -> Option> { - if let Some(our_epoch_index_map) = self.epoch_index_map() { - if let Some(other_epoch_index_map) = rhs.epoch_index_map() { - let mut combined_index_map = our_epoch_index_map.clone(); - other_epoch_index_map - .iter() - .for_each(|(epoch_index, bytes_added)| { - let original_value = combined_index_map.remove(epoch_index); - match original_value { - None => combined_index_map.insert(*epoch_index, *bytes_added), - Some(original_bytes) => combined_index_map - .insert(*epoch_index, original_bytes + *bytes_added), - }; - }); - Some(combined_index_map) - } else { - Some(our_epoch_index_map.clone()) - } - } else { - rhs.epoch_index_map().cloned() - } - } - - fn combine_same_base_epoch( - &self, - rhs: Self, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - let base_epoch = *self.base_epoch(); - let owner_id = self.combine_owner_id(&rhs, merging_owners_strategy)?; - let other_epoch_bytes = self.combine_non_base_epoch_bytes(&rhs); - - match (owner_id, other_epoch_bytes) { - (None, None) => Ok(SingleEpoch(base_epoch)), - (Some(owner_id), None) => Ok(SingleEpochOwned(base_epoch, *owner_id)), - (None, Some(other_epoch_bytes)) => Ok(MultiEpoch(base_epoch, other_epoch_bytes)), - (Some(owner_id), Some(other_epoch_bytes)) => { - Ok(MultiEpochOwned(base_epoch, other_epoch_bytes, *owner_id)) - } - } - } - - fn combine_with_higher_base_epoch( - &self, - rhs: Self, - added_bytes: u32, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - let base_epoch = *self.base_epoch(); - let epoch_with_adding_bytes = rhs.base_epoch(); - let owner_id = self.combine_owner_id(&rhs, merging_owners_strategy)?; - let mut other_epoch_bytes = self.combine_non_base_epoch_bytes(&rhs).unwrap_or_default(); - let original_value = other_epoch_bytes.remove(epoch_with_adding_bytes); - match original_value { - None => other_epoch_bytes.insert(*epoch_with_adding_bytes, added_bytes), - Some(original_bytes) => { - other_epoch_bytes.insert(*epoch_with_adding_bytes, original_bytes + added_bytes) - } - }; - - match owner_id { - None => Ok(MultiEpoch(base_epoch, other_epoch_bytes)), - Some(owner_id) => Ok(MultiEpochOwned(base_epoch, other_epoch_bytes, *owner_id)), - } - } - - fn combine_with_higher_base_epoch_remove_bytes( - self, - rhs: Self, - removed_bytes: &StorageRemovedBytes, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - if matches!(&self, &SingleEpoch(_) | &SingleEpochOwned(..)) { - return Ok(self); - } - let base_epoch = *self.base_epoch(); - let owner_id = self.combine_owner_id(&rhs, merging_owners_strategy)?; - let mut other_epoch_bytes = self.combine_non_base_epoch_bytes(&rhs).unwrap_or_default(); - if let SectionedStorageRemoval(sectioned_bytes_by_identifier) = removed_bytes { - if sectioned_bytes_by_identifier.len() > 1 { - return Err(Error::StorageFlags( - StorageFlagsError::MergingStorageFlagsFromDifferentOwners( - "can not remove bytes when there is no epoch", - ), - )); - } - let identifier = owner_id.copied().unwrap_or_default(); - let sectioned_bytes = - sectioned_bytes_by_identifier - .get(&identifier) - .ok_or(Error::StorageFlags( - StorageFlagsError::MergingStorageFlagsFromDifferentOwners( - "can not remove bytes when there is no epoch", - ), - ))?; - sectioned_bytes - .iter() - .try_for_each(|(epoch, removed_bytes)| { - let bytes_added_in_epoch = - other_epoch_bytes - .get_mut(&(*epoch as u16)) - .ok_or(Error::StorageFlags( - StorageFlagsError::RemovingAtEpochWithNoAssociatedStorage( - "can not remove bytes when there is no epoch", - ), - ))?; - *bytes_added_in_epoch = - bytes_added_in_epoch.checked_sub(*removed_bytes).ok_or( - Error::StorageFlags(StorageFlagsError::StorageFlagsOverflow( - "can't remove more bytes than exist at that epoch", - )), - )?; - Ok::<(), Error>(()) - })?; - } - - match owner_id { - None => Ok(MultiEpoch(base_epoch, other_epoch_bytes)), - Some(owner_id) => Ok(MultiEpochOwned(base_epoch, other_epoch_bytes, *owner_id)), - } - } - - /// Optional combine added bytes - pub fn optional_combine_added_bytes( - ours: Option, - theirs: Self, - added_bytes: u32, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - match ours { - None => Ok(theirs), - Some(ours) => { - Ok(ours.combine_added_bytes(theirs, added_bytes, merging_owners_strategy)?) - } - } - } - - /// Optional combine removed bytes - pub fn optional_combine_removed_bytes( - ours: Option, - theirs: Self, - removed_bytes: &StorageRemovedBytes, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - match ours { - None => Ok(theirs), - Some(ours) => { - Ok(ours.combine_removed_bytes(theirs, removed_bytes, merging_owners_strategy)?) - } - } - } - - /// Combine added bytes - pub fn combine_added_bytes( - self, - rhs: Self, - added_bytes: u32, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - match self.base_epoch().cmp(rhs.base_epoch()) { - Ordering::Equal => self.combine_same_base_epoch(rhs, merging_owners_strategy), - Ordering::Less => { - self.combine_with_higher_base_epoch(rhs, added_bytes, merging_owners_strategy) - } - Ordering::Greater => Err(Error::StorageFlags( - StorageFlagsError::MergingStorageFlagsWithDifferentBaseEpoch( - "can not merge with new item in older base epoch", - ), - )), - } - } - - /// Combine removed bytes - pub fn combine_removed_bytes( - self, - rhs: Self, - removed_bytes: &StorageRemovedBytes, - merging_owners_strategy: MergingOwnersStrategy, - ) -> Result { - match self.base_epoch().cmp(rhs.base_epoch()) { - Ordering::Equal => self.combine_same_base_epoch(rhs, merging_owners_strategy), - Ordering::Less => self.combine_with_higher_base_epoch_remove_bytes( - rhs, - removed_bytes, - merging_owners_strategy, - ), - Ordering::Greater => Err(Error::StorageFlags( - StorageFlagsError::MergingStorageFlagsWithDifferentBaseEpoch( - "can not merge with new item in older base epoch", - ), - )), - } - } - - /// Returns base epoch - pub fn base_epoch(&self) -> &BaseEpoch { - match self { - SingleEpoch(base_epoch) - | MultiEpoch(base_epoch, _) - | SingleEpochOwned(base_epoch, _) - | MultiEpochOwned(base_epoch, _, _) => base_epoch, - } - } - - /// Returns owner id - pub fn owner_id(&self) -> Option<&OwnerId> { - match self { - SingleEpochOwned(_, owner_id) | MultiEpochOwned(_, _, owner_id) => Some(owner_id), - _ => None, - } - } - - /// Returns epoch index map - pub fn epoch_index_map(&self) -> Option<&BTreeMap> { - match self { - MultiEpoch(_, epoch_int_map) | MultiEpochOwned(_, epoch_int_map, _) => { - Some(epoch_int_map) - } - _ => None, - } - } - - /// Returns optional default storage flags - pub fn optional_default() -> Option { - None - } - - /// Returns default optional storage flag as ref - pub fn optional_default_as_ref() -> Option<&'static Self> { - None - } - - /// Returns default optional storage flag as ref - pub fn optional_default_as_cow() -> Option> { - None - } - - /// Returns type byte - pub fn type_byte(&self) -> u8 { - match self { - SingleEpoch(_) => 0, - MultiEpoch(..) => 1, - SingleEpochOwned(..) => 2, - MultiEpochOwned(..) => 3, - } - } - - fn append_to_vec_base_epoch(&self, buffer: &mut Vec) { - match self { - SingleEpoch(base_epoch) - | MultiEpoch(base_epoch, ..) - | SingleEpochOwned(base_epoch, ..) - | MultiEpochOwned(base_epoch, ..) => buffer.extend(base_epoch.to_be_bytes()), - } - } - - fn maybe_append_to_vec_epoch_map(&self, buffer: &mut Vec) { - match self { - MultiEpoch(_, epoch_map) | MultiEpochOwned(_, epoch_map, _) => { - if epoch_map.is_empty() { - panic!("this should not be empty"); - } - epoch_map.iter().for_each(|(epoch_index, bytes_added)| { - buffer.extend(epoch_index.to_be_bytes()); - buffer.extend(bytes_added.encode_var_vec()); - }) - } - _ => {} - } - } - - fn maybe_epoch_map_size(&self) -> u32 { - let mut size = 0; - match self { - MultiEpoch(_, epoch_map) | MultiEpochOwned(_, epoch_map, _) => { - epoch_map.iter().for_each(|(_epoch_index, bytes_added)| { - size += 2; - size += bytes_added.encode_var_vec().len() as u32; - }) - } - _ => {} - } - size - } - - fn maybe_append_to_vec_owner_id(&self, buffer: &mut Vec) { - match self { - SingleEpochOwned(_, owner_id) | MultiEpochOwned(_, _, owner_id) => { - buffer.extend(owner_id); - } - _ => {} - } - } - - fn maybe_owner_id_size(&self) -> u32 { - match self { - SingleEpochOwned(..) | MultiEpochOwned(..) => DEFAULT_HASH_SIZE, - _ => 0, - } - } - - /// ApproximateSize - pub fn approximate_size( - has_owner_id: bool, - approximate_changes_and_bytes_count: Option<(u16, u8)>, - ) -> u32 { - let mut size = 3; // 1 for type byte, 2 for epoch number - if has_owner_id { - size += DEFAULT_HASH_SIZE; - } - if let Some((approximate_change_count, bytes_changed_required_size)) = - approximate_changes_and_bytes_count - { - size += (approximate_change_count as u32) * (2 + bytes_changed_required_size as u32) - } - size - } - - /// Serialize storage flags - pub fn serialize(&self) -> Vec { - let mut buffer = vec![self.type_byte()]; - self.maybe_append_to_vec_owner_id(&mut buffer); - self.append_to_vec_base_epoch(&mut buffer); - self.maybe_append_to_vec_epoch_map(&mut buffer); - buffer - } - - /// Serialize storage flags - pub fn serialized_size(&self) -> u32 { - let mut buffer_len = 3; //for type byte and base epoch - buffer_len += self.maybe_owner_id_size(); - buffer_len += self.maybe_epoch_map_size(); - buffer_len - } - - /// Deserialize single epoch storage flags from bytes - pub fn deserialize_single_epoch(data: &[u8]) -> Result { - if data.len() != 3 { - Err(Error::StorageFlags( - StorageFlagsError::StorageFlagsWrongSize("single epoch must be 3 bytes total"), - )) - } else { - let epoch = u16::from_be_bytes(data[1..3].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "single epoch must be 3 bytes total", - )) - })?); - Ok(SingleEpoch(epoch)) - } - } - - /// Deserialize multi epoch storage flags from bytes - pub fn deserialize_multi_epoch(data: &[u8]) -> Result { - let len = data.len(); - if len < 6 { - Err(Error::StorageFlags( - StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must be at least 6 bytes total", - ), - )) - } else { - let base_epoch = u16::from_be_bytes(data[1..3].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes for the base epoch", - )) - })?); - let mut offset = 3; - let mut bytes_per_epoch: BTreeMap = BTreeMap::default(); - while offset + 2 < len { - // 2 for epoch size - let epoch_index = - u16::from_be_bytes(data[offset..offset + 2].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes epoch indexes", - )) - })?); - offset += 2; - let (bytes_at_epoch, bytes_used) = u32::decode_var(&data[offset..]).ok_or( - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes for the amount of bytes used", - )), - )?; - offset += bytes_used; - bytes_per_epoch.insert(epoch_index, bytes_at_epoch); - } - Ok(MultiEpoch(base_epoch, bytes_per_epoch)) - } - } - - /// Deserialize single epoch owned storage flags from bytes - pub fn deserialize_single_epoch_owned(data: &[u8]) -> Result { - if data.len() != 35 { - Err(Error::StorageFlags( - StorageFlagsError::StorageFlagsWrongSize( - "single epoch owned must be 35 bytes total", - ), - )) - } else { - let owner_id: OwnerId = data[1..33].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "single epoch owned must be 35 bytes total for owner id", - )) - })?; - let epoch = u16::from_be_bytes(data[33..35].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "single epoch owned must be 35 bytes total for epoch", - )) - })?); - Ok(SingleEpochOwned(epoch, owner_id)) - } - } - - /// Deserialize multi epoch owned storage flags from bytes - pub fn deserialize_multi_epoch_owned(data: &[u8]) -> Result { - let len = data.len(); - if len < 38 { - Err(Error::StorageFlags( - StorageFlagsError::StorageFlagsWrongSize( - "multi epoch owned must be at least 38 bytes total", - ), - )) - } else { - let owner_id: OwnerId = data[1..33].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch owned must be 38 bytes total for owner id", - )) - })?; - let base_epoch = u16::from_be_bytes(data[33..35].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes for the base epoch", - )) - })?); - let mut offset = 35; - let mut bytes_per_epoch: BTreeMap = BTreeMap::default(); - while offset + 2 < len { - // 2 for epoch size - let epoch_index = - u16::from_be_bytes(data[offset..offset + 2].try_into().map_err(|_| { - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes epoch indexes", - )) - })?); - offset += 2; - let (bytes_at_epoch, bytes_used) = u32::decode_var(&data[offset..]).ok_or( - Error::StorageFlags(StorageFlagsError::StorageFlagsWrongSize( - "multi epoch must have enough bytes for the amount of bytes used", - )), - )?; - offset += bytes_used; - bytes_per_epoch.insert(epoch_index, bytes_at_epoch); - } - Ok(MultiEpochOwned(base_epoch, bytes_per_epoch, owner_id)) - } - } - - /// Deserialize storage flags from bytes - pub fn deserialize(data: &[u8]) -> Result, Error> { - let first_byte = data.first(); - match first_byte { - None => Ok(None), - Some(first_byte) => match *first_byte { - 0 => Ok(Some(Self::deserialize_single_epoch(data)?)), - 1 => Ok(Some(Self::deserialize_multi_epoch(data)?)), - 2 => Ok(Some(Self::deserialize_single_epoch_owned(data)?)), - 3 => Ok(Some(Self::deserialize_multi_epoch_owned(data)?)), - _ => Err(Error::StorageFlags( - StorageFlagsError::DeserializeUnknownStorageFlagsType( - "unknown storage flags serialization", - ), - )), - }, - } - } - - /// Creates storage flags from a slice. - pub fn from_slice(data: &[u8]) -> Result, Error> { - Self::deserialize(data) - } - - /// Creates storage flags from element flags. - pub fn from_element_flags_ref(data: &ElementFlags) -> Result, Error> { - Self::from_slice(data.as_slice()) - } - - /// Create Storage flags from optional element flags ref - pub fn map_some_element_flags_ref(data: &Option) -> Result, Error> { - match data { - None => Ok(None), - Some(data) => Self::from_slice(data.as_slice()), - } - } - - /// Create Storage flags from optional element flags ref - pub fn map_cow_some_element_flags_ref( - data: &Option, - ) -> Result>, Error> { - match data { - None => Ok(None), - Some(data) => Self::from_slice(data.as_slice()).map(|option| option.map(Cow::Owned)), - } - } - - /// Map to owned optional element flags - pub fn map_owned_to_element_flags(maybe_storage_flags: Option) -> ElementFlags { - maybe_storage_flags - .map(|storage_flags| storage_flags.serialize()) - .unwrap_or_default() - } - - /// Map to optional element flags - pub fn map_to_some_element_flags(maybe_storage_flags: Option<&Self>) -> Option { - maybe_storage_flags.map(|storage_flags| storage_flags.serialize()) - } - - /// Map to optional element flags - pub fn map_cow_to_some_element_flags( - maybe_storage_flags: Option>, - ) -> Option { - maybe_storage_flags.map(|storage_flags| storage_flags.serialize()) - } - - /// Map to optional element flags - pub fn map_borrowed_cow_to_some_element_flags( - maybe_storage_flags: &Option>, - ) -> Option { - maybe_storage_flags - .as_ref() - .map(|storage_flags| storage_flags.serialize()) - } - - /// Creates optional element flags - pub fn to_some_element_flags(&self) -> Option { - Some(self.serialize()) - } - - /// Creates element flags. - pub fn to_element_flags(&self) -> ElementFlags { - self.serialize() - } - - /// split_storage_removed_bytes removes bytes as LIFO - pub fn split_storage_removed_bytes( - &self, - removed_key_bytes: u32, - removed_value_bytes: u32, - ) -> Result<(StorageRemovedBytes, StorageRemovedBytes), grovedb::Error> { - fn single_storage_removal( - removed_bytes: u32, - base_epoch: &BaseEpoch, - owner_id: Option<&OwnerId>, - ) -> StorageRemovedBytes { - let bytes_left = removed_bytes; - let mut sectioned_storage_removal: IntMap = IntMap::default(); - if bytes_left > 0 { - // We need to take some from the base epoch - sectioned_storage_removal.insert(*base_epoch as u64, removed_bytes); - } - let mut sectioned_storage_removal_by_identifier: StorageRemovalPerEpochByIdentifier = - BTreeMap::new(); - if let Some(owner_id) = owner_id { - sectioned_storage_removal_by_identifier - .insert(*owner_id, sectioned_storage_removal); - } else { - let default = [0u8; 32]; - sectioned_storage_removal_by_identifier.insert(default, sectioned_storage_removal); - } - SectionedStorageRemoval(sectioned_storage_removal_by_identifier) - } - - fn sectioned_storage_removal( - removed_bytes: u32, - base_epoch: &BaseEpoch, - other_epoch_bytes: &BTreeMap, - owner_id: Option<&OwnerId>, - ) -> StorageRemovedBytes { - let mut bytes_left = removed_bytes; - let mut rev_iter = other_epoch_bytes.iter().rev(); - let mut sectioned_storage_removal: IntMap = IntMap::default(); - while bytes_left > 0 { - if let Some((epoch_index, bytes_in_epoch)) = rev_iter.next_back() { - if *bytes_in_epoch < bytes_left { - bytes_left -= bytes_in_epoch; - sectioned_storage_removal.insert(*epoch_index as u64, *bytes_in_epoch); - } else if *bytes_in_epoch >= bytes_left { - //take all bytes - bytes_left = 0; - sectioned_storage_removal.insert(*epoch_index as u64, bytes_left); - } - } else { - break; - } - } - if bytes_left > 0 { - // We need to take some from the base epoch - sectioned_storage_removal.insert(*base_epoch as u64, bytes_left); - } - let mut sectioned_storage_removal_by_identifier: StorageRemovalPerEpochByIdentifier = - BTreeMap::new(); - if let Some(owner_id) = owner_id { - sectioned_storage_removal_by_identifier - .insert(*owner_id, sectioned_storage_removal); - } else { - let default = [0u8; 32]; - sectioned_storage_removal_by_identifier.insert(default, sectioned_storage_removal); - } - SectionedStorageRemoval(sectioned_storage_removal_by_identifier) - } - match self { - SingleEpoch(base_epoch) => { - let value_storage_removal = - single_storage_removal(removed_value_bytes, base_epoch, None); - let key_storage_removal = - single_storage_removal(removed_key_bytes, base_epoch, None); - Ok((key_storage_removal, value_storage_removal)) - } - SingleEpochOwned(base_epoch, owner_id) => { - let value_storage_removal = - single_storage_removal(removed_value_bytes, base_epoch, Some(owner_id)); - let key_storage_removal = - single_storage_removal(removed_key_bytes, base_epoch, Some(owner_id)); - Ok((key_storage_removal, value_storage_removal)) - } - MultiEpoch(base_epoch, other_epoch_bytes) => { - let value_storage_removal = sectioned_storage_removal( - removed_value_bytes, - base_epoch, - other_epoch_bytes, - None, - ); - let key_storage_removal = sectioned_storage_removal( - removed_key_bytes, - base_epoch, - other_epoch_bytes, - None, - ); - Ok((key_storage_removal, value_storage_removal)) - } - MultiEpochOwned(base_epoch, other_epoch_bytes, owner_id) => { - let value_storage_removal = sectioned_storage_removal( - removed_value_bytes, - base_epoch, - other_epoch_bytes, - Some(owner_id), - ); - let key_storage_removal = sectioned_storage_removal( - removed_key_bytes, - base_epoch, - other_epoch_bytes, - Some(owner_id), - ); - Ok((key_storage_removal, value_storage_removal)) - } - } - } - - /// Wrap Storage Flags into optional owned cow - pub fn into_optional_cow<'a>(self) -> Option> { - Some(Cow::Owned(self)) - } -} diff --git a/packages/rs-drive/src/util/test_helpers/setup.rs b/packages/rs-drive/src/util/test_helpers/setup.rs index a9e4cb6aad..d80f600def 100644 --- a/packages/rs-drive/src/util/test_helpers/setup.rs +++ b/packages/rs-drive/src/util/test_helpers/setup.rs @@ -46,13 +46,15 @@ pub fn setup_drive(drive_config: Option) -> Drive { #[cfg(feature = "full")] /// Sets up Drive using a temporary directory and the default initial state structure. -pub fn setup_drive_with_initial_state_structure() -> Drive { +pub fn setup_drive_with_initial_state_structure( + specific_platform_version: Option<&PlatformVersion>, +) -> Drive { let drive = setup_drive(Some(DriveConfig { batching_consistency_verification: true, ..Default::default() })); - let platform_version = PlatformVersion::latest(); + let platform_version = specific_platform_version.unwrap_or(PlatformVersion::latest()); drive .create_initial_state_structure(None, platform_version) .expect("should create root tree successfully"); diff --git a/packages/rs-drive/src/util/type_constants.rs b/packages/rs-drive/src/util/type_constants.rs index bd551f6a5c..517a08a275 100644 --- a/packages/rs-drive/src/util/type_constants.rs +++ b/packages/rs-drive/src/util/type_constants.rs @@ -1,6 +1,4 @@ /// Default hash size -pub const DEFAULT_HASH_SIZE: u32 = 32; -/// Default hash size pub const DEFAULT_HASH_SIZE_USIZE: usize = 32; /// Default hash 160 size as u8 pub const DEFAULT_HASH_160_SIZE_U8: u8 = 20; diff --git a/packages/rs-drive/src/verify/contract/verify_contract/v0/mod.rs b/packages/rs-drive/src/verify/contract/verify_contract/v0/mod.rs index 3d47e9504e..a2976fa5a8 100644 --- a/packages/rs-drive/src/verify/contract/verify_contract/v0/mod.rs +++ b/packages/rs-drive/src/verify/contract/verify_contract/v0/mod.rs @@ -35,7 +35,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_contract_v0( + pub(super) fn verify_contract_v0( proof: &[u8], contract_known_keeps_history: Option, is_proof_subset: bool, diff --git a/packages/rs-drive/src/verify/contract/verify_contract_history/v0/mod.rs b/packages/rs-drive/src/verify/contract/verify_contract_history/v0/mod.rs index 9ce908c3cd..18fea92ee4 100644 --- a/packages/rs-drive/src/verify/contract/verify_contract_history/v0/mod.rs +++ b/packages/rs-drive/src/verify/contract/verify_contract_history/v0/mod.rs @@ -37,7 +37,7 @@ impl Drive { /// - The GroveDb query fails. /// - The contract serialization fails. #[inline(always)] - pub(crate) fn verify_contract_history_v0( + pub(super) fn verify_contract_history_v0( proof: &[u8], contract_id: [u8; 32], start_at_date: u64, diff --git a/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs index a9e5d2771c..4de205ccb4 100644 --- a/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_proof/v0/mod.rs @@ -30,7 +30,7 @@ impl<'a> DriveDocumentQuery<'a> { /// 1. The proof verification fails. /// 2. There is a deserialization error when parsing the serialized document(s) into `Document` struct(s). #[inline(always)] - pub(crate) fn verify_proof_v0( + pub(super) fn verify_proof_v0( &self, proof: &[u8], platform_version: &PlatformVersion, diff --git a/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs index 31bcdc941b..dc362c7ead 100644 --- a/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_proof_keep_serialized/v0/mod.rs @@ -24,7 +24,7 @@ impl<'a> DriveDocumentQuery<'a> { /// * The path query fails to verify against the given proof. /// * Converting the element into bytes fails. #[inline(always)] - pub(crate) fn verify_proof_keep_serialized_v0( + pub(super) fn verify_proof_keep_serialized_v0( &self, proof: &[u8], platform_version: &PlatformVersion, diff --git a/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs b/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs index 592b04ee9d..1142be78e5 100644 --- a/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/document/verify_start_at_document_in_proof/v0/mod.rs @@ -30,7 +30,7 @@ impl<'a> DriveDocumentQuery<'a> { /// * If the proof is corrupted (wrong path, wrong key, etc.). /// * If the provided proof has an incorrect number of elements. #[inline(always)] - pub(crate) fn verify_start_at_document_in_proof_v0( + pub(super) fn verify_start_at_document_in_proof_v0( &self, proof: &[u8], is_proof_subset: bool, diff --git a/packages/rs-drive/src/verify/identity/verify_full_identities_by_public_key_hashes/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_full_identities_by_public_key_hashes/v0/mod.rs index 939b76b5a8..7c1f0545d0 100644 --- a/packages/rs-drive/src/verify/identity/verify_full_identities_by_public_key_hashes/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_full_identities_by_public_key_hashes/v0/mod.rs @@ -40,7 +40,7 @@ impl Drive { /// - Any of the public key hashes do not correspond to a valid identity ID. /// - Any of the identity IDs do not correspond to a valid full identity. /// - pub(crate) fn verify_full_identities_by_public_key_hashes_v0< + pub(super) fn verify_full_identities_by_public_key_hashes_v0< T: FromIterator<([u8; 20], Option)>, >( proof: &[u8], diff --git a/packages/rs-drive/src/verify/identity/verify_full_identity_by_identity_id/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_full_identity_by_identity_id/v0/mod.rs index 84e5a76830..e9fefdaaf2 100644 --- a/packages/rs-drive/src/verify/identity/verify_full_identity_by_identity_id/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_full_identity_by_identity_id/v0/mod.rs @@ -41,7 +41,7 @@ impl Drive { /// - The balance, revision, or keys information is missing or incorrect. /// #[inline(always)] - pub(crate) fn verify_full_identity_by_identity_id_v0( + pub(super) fn verify_full_identity_by_identity_id_v0( proof: &[u8], is_proof_subset: bool, identity_id: [u8; 32], diff --git a/packages/rs-drive/src/verify/identity/verify_full_identity_by_public_key_hash/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_full_identity_by_public_key_hash/v0/mod.rs index dd5c1f1ee0..e481343470 100644 --- a/packages/rs-drive/src/verify/identity/verify_full_identity_by_public_key_hash/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_full_identity_by_public_key_hash/v0/mod.rs @@ -38,7 +38,7 @@ impl Drive { /// * The identity ID does not correspond to a valid full identity. /// #[inline(always)] - pub(crate) fn verify_full_identity_by_public_key_hash_v0( + pub(super) fn verify_full_identity_by_public_key_hash_v0( proof: &[u8], public_key_hash: [u8; 20], platform_version: &PlatformVersion, diff --git a/packages/rs-drive/src/verify/identity/verify_identities_contract_keys/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identities_contract_keys/v0/mod.rs index 1b8cc605eb..2ea5806506 100644 --- a/packages/rs-drive/src/verify/identity/verify_identities_contract_keys/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identities_contract_keys/v0/mod.rs @@ -37,7 +37,7 @@ impl Drive { /// - The keys information is missing or incorrect. /// #[inline(always)] - pub(crate) fn verify_identities_contract_keys_v0( + pub(super) fn verify_identities_contract_keys_v0( proof: &[u8], identity_ids: &[[u8; 32]], contract_id: &[u8; 32], diff --git a/packages/rs-drive/src/verify/identity/verify_identity_balance_and_revision_for_identity_id/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_balance_and_revision_for_identity_id/v0/mod.rs index 88f7350d90..7a90ff4df7 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_balance_and_revision_for_identity_id/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_balance_and_revision_for_identity_id/v0/mod.rs @@ -38,14 +38,14 @@ impl Drive { _verify_subset_of_proof: bool, platform_version: &PlatformVersion, ) -> Result<(RootHash, Option<(u64, u64)>), Error> { - let (root_hash_0, signed_balance) = Self::verify_identity_balance_for_identity_id_v0( + let (root_hash_0, signed_balance) = Self::verify_identity_balance_for_identity_id( proof, identity_id, true, platform_version, )?; - let (root_hash_1, revision) = Self::verify_identity_revision_for_identity_id_v0( + let (root_hash_1, revision) = Self::verify_identity_revision_for_identity_id( proof, identity_id, true, diff --git a/packages/rs-drive/src/verify/identity/verify_identity_balance_for_identity_id/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_balance_for_identity_id/v0/mod.rs index 91712e7d40..1648d74ba8 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_balance_for_identity_id/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_balance_for_identity_id/v0/mod.rs @@ -38,7 +38,7 @@ impl Drive { /// - The proved key value is not for the correct path or key in balances. /// - More than one balance is found. /// - pub(crate) fn verify_identity_balance_for_identity_id_v0( + pub(super) fn verify_identity_balance_for_identity_id_v0( proof: &[u8], identity_id: [u8; 32], verify_subset_of_proof: bool, diff --git a/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/mod.rs index 108efea237..553f64661c 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/mod.rs @@ -38,7 +38,8 @@ impl Drive { /// - Any other error as documented in the specific versioned function. /// pub fn verify_identity_balances_for_identity_ids< - T: FromIterator<([u8; 32], Option)>, + T: FromIterator<(I, Option)>, + I: From<[u8; 32]>, >( proof: &[u8], is_proof_subset: bool, @@ -52,7 +53,7 @@ impl Drive { .identity .verify_identity_balances_for_identity_ids { - 0 => Self::verify_identity_balances_for_identity_ids_v0::( + 0 => Self::verify_identity_balances_for_identity_ids_v0::( proof, is_proof_subset, identity_ids, diff --git a/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/v0/mod.rs index ac5d211470..b7742ebbb3 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_balances_for_identity_ids/v0/mod.rs @@ -39,17 +39,15 @@ impl Drive { /// - The value size of the balance is incorrect. /// pub(crate) fn verify_identity_balances_for_identity_ids_v0< - T: FromIterator<([u8; 32], Option)>, + T: FromIterator<(I, Option)>, + I: From<[u8; 32]>, >( proof: &[u8], is_proof_subset: bool, identity_ids: &[[u8; 32]], platform_version: &PlatformVersion, ) -> Result<(RootHash, T), Error> { - let mut path_query = Self::balances_for_identity_ids_query( - identity_ids, - &platform_version.drive.grove_version, - )?; + let mut path_query = Self::balances_for_identity_ids_query(identity_ids); path_query.query.limit = Some(identity_ids.len() as u16); let (root_hash, proved_key_values) = if is_proof_subset { GroveDb::verify_subset_query_with_absence_proof( @@ -74,7 +72,7 @@ impl Drive { .map_err(|_| Error::Proof(ProofError::IncorrectValueSize("value size")))?; let maybe_element = proved_key_value.2; match maybe_element { - None => Ok((key, None)), + None => Ok((key.into(), None)), Some(element) => { let balance: Credits = element .as_sum_item_value() @@ -85,7 +83,7 @@ impl Drive { "balance was negative", )) })?; - Ok((key, Some(balance))) + Ok((key.into(), Some(balance))) } } }) diff --git a/packages/rs-drive/src/verify/identity/verify_identity_contract_nonce/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_contract_nonce/v0/mod.rs index 8e8da0eb93..5963c503f9 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_contract_nonce/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_contract_nonce/v0/mod.rs @@ -37,7 +37,7 @@ impl Drive { /// - The proof of authentication is not valid. /// - The identity ID does not correspond to a valid identity. /// - pub(crate) fn verify_identity_contract_nonce_v0( + pub(super) fn verify_identity_contract_nonce_v0( proof: &[u8], identity_id: [u8; 32], contract_id: [u8; 32], diff --git a/packages/rs-drive/src/verify/identity/verify_identity_id_by_public_key_hash/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_id_by_public_key_hash/v0/mod.rs index 1f58615404..ceb8ae05b0 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_id_by_public_key_hash/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_id_by_public_key_hash/v0/mod.rs @@ -33,7 +33,7 @@ impl Drive { /// - More than one identity ID is found. /// #[inline(always)] - pub(crate) fn verify_identity_id_by_public_key_hash_v0( + pub(super) fn verify_identity_id_by_public_key_hash_v0( proof: &[u8], is_proof_subset: bool, public_key_hash: [u8; 20], diff --git a/packages/rs-drive/src/verify/identity/verify_identity_keys_by_identity_id/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_keys_by_identity_id/v0/mod.rs index 1348cea283..9452a0b19d 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_keys_by_identity_id/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_keys_by_identity_id/v0/mod.rs @@ -41,7 +41,7 @@ impl Drive { /// - The keys information is missing or incorrect. /// #[inline(always)] - pub(crate) fn verify_identity_keys_by_identity_id_v0( + pub(super) fn verify_identity_keys_by_identity_id_v0( proof: &[u8], key_request: IdentityKeysRequest, with_revision: bool, diff --git a/packages/rs-drive/src/verify/identity/verify_identity_nonce/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_nonce/v0/mod.rs index ba512647f4..bbf91a0140 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_nonce/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_nonce/v0/mod.rs @@ -37,7 +37,7 @@ impl Drive { /// - The proof of authentication is not valid. /// - The identity ID does not correspond to a valid identity. /// - pub(crate) fn verify_identity_nonce_v0( + pub(super) fn verify_identity_nonce_v0( proof: &[u8], identity_id: [u8; 32], verify_subset_of_proof: bool, diff --git a/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/mod.rs index e084dffc38..7d619f0dcb 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/mod.rs @@ -1 +1,59 @@ mod v0; + +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::verify::RootHash; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Verifies the revision of an identity by their identity ID. + /// + /// # Parameters + /// + /// - `proof`: A byte slice representing the proof of authentication from the user. + /// - `identity_id`: A 32-byte array representing the identity ID of the user. + /// - `verify_subset_of_proof`: A boolean indicating whether we are verifying a subset of a larger proof. + /// - `platform_version`: The version of the platform used to verify the identity revision. + /// + /// # Returns + /// + /// If the verification is successful, it returns a `Result` with a tuple of `RootHash` and + /// an `Option`. The `RootHash` represents the root hash of GroveDB, and the + /// `Option` represents the revision of the user's identity if it exists. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// + /// - The proof of authentication is not valid. + /// - The identity ID does not correspond to a valid revision. + /// - The proof contains elements unrelated to the requested revision. + /// + pub fn verify_identity_revision_for_identity_id( + proof: &[u8], + identity_id: [u8; 32], + verify_subset_of_proof: bool, + platform_version: &PlatformVersion, + ) -> Result<(RootHash, Option), Error> { + match platform_version + .drive + .methods + .verify + .identity + .verify_identity_revision_for_identity_id + { + 0 => Self::verify_identity_revision_for_identity_id_v0( + proof, + identity_id, + verify_subset_of_proof, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "verify_identity_revision_for_identity_id".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/v0/mod.rs b/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/v0/mod.rs index 42700b4fc0..47e7f2839f 100644 --- a/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/v0/mod.rs +++ b/packages/rs-drive/src/verify/identity/verify_identity_revision_for_identity_id/v0/mod.rs @@ -36,7 +36,8 @@ impl Drive { /// - The proved key value is not for the correct path or key in balances. /// - More than one balance is found. /// - pub fn verify_identity_revision_for_identity_id_v0( + #[inline(always)] + pub(super) fn verify_identity_revision_for_identity_id_v0( proof: &[u8], identity_id: [u8; 32], verify_subset_of_proof: bool, diff --git a/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs b/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs index aa9937819c..480df57eda 100644 --- a/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/single_document/verify_proof/v0/mod.rs @@ -32,7 +32,7 @@ impl SingleDocumentDriveQuery { /// - The GroveDb query fails. /// - The document serialization fails. #[inline(always)] - pub(crate) fn verify_proof_v0( + pub(super) fn verify_proof_v0( &self, is_subset: bool, proof: &[u8], diff --git a/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs b/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs index 39f16f49ce..59e3d4160a 100644 --- a/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs +++ b/packages/rs-drive/src/verify/single_document/verify_proof_keep_serialized/v0/mod.rs @@ -30,7 +30,7 @@ impl SingleDocumentDriveQuery { /// - The GroveDb verification fails. /// - The elements returned are not items, the proof is incorrect. #[inline(always)] - pub(crate) fn verify_proof_keep_serialized_v0( + pub(super) fn verify_proof_keep_serialized_v0( &self, is_subset: bool, proof: &[u8], diff --git a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs index 09af028c47..d424fbe328 100644 --- a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs @@ -45,7 +45,7 @@ use crate::query::{ContractLookupFn, SingleDocumentDriveQuery, SingleDocumentDri impl Drive { #[inline(always)] - pub(crate) fn verify_state_transition_was_executed_with_proof_v0( + pub(super) fn verify_state_transition_was_executed_with_proof_v0( state_transition: &StateTransition, block_info: &BlockInfo, proof: &[u8], diff --git a/packages/rs-drive/src/verify/system/mod.rs b/packages/rs-drive/src/verify/system/mod.rs index e0362df437..25d0969388 100644 --- a/packages/rs-drive/src/verify/system/mod.rs +++ b/packages/rs-drive/src/verify/system/mod.rs @@ -1,5 +1,6 @@ mod verify_elements; mod verify_epoch_infos; +mod verify_epoch_proposers; mod verify_total_credits_in_system; mod verify_upgrade_state; mod verify_upgrade_vote_status; diff --git a/packages/rs-drive/src/verify/system/verify_elements/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_elements/v0/mod.rs index 70c4b15f7a..ae9f00b2c3 100644 --- a/packages/rs-drive/src/verify/system/verify_elements/v0/mod.rs +++ b/packages/rs-drive/src/verify/system/verify_elements/v0/mod.rs @@ -29,7 +29,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_elements_v0( + pub(super) fn verify_elements_v0( proof: &[u8], path: Vec>, keys: Vec>, diff --git a/packages/rs-drive/src/verify/system/verify_epoch_infos/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_epoch_infos/v0/mod.rs index 41185817d2..d9f77b376e 100644 --- a/packages/rs-drive/src/verify/system/verify_epoch_infos/v0/mod.rs +++ b/packages/rs-drive/src/verify/system/verify_epoch_infos/v0/mod.rs @@ -41,7 +41,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_epoch_infos_v0( + pub(super) fn verify_epoch_infos_v0( proof: &[u8], current_epoch: EpochIndex, start_epoch: Option, diff --git a/packages/rs-drive/src/verify/system/verify_epoch_proposers/mod.rs b/packages/rs-drive/src/verify/system/verify_epoch_proposers/mod.rs new file mode 100644 index 0000000000..f344a9f982 --- /dev/null +++ b/packages/rs-drive/src/verify/system/verify_epoch_proposers/mod.rs @@ -0,0 +1,62 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::query::proposer_block_count_query::ProposerQueryType; +use crate::verify::RootHash; +use dpp::block::epoch::EpochIndex; +use dpp::version::PlatformVersion; + +mod v0; + +impl Drive { + /// Verifies a proof containing a single epochs proposers. + /// + /// # Parameters + /// + /// - `proof`: A byte slice representing the proof to be verified. + /// - `epoch_index`: The epoch index, can be acquired from metadata. + /// - `limit`: The amount of proposers to get. + /// - `platform_version`: the platform version, + /// + /// # Returns + /// + /// Returns a `Result` with a tuple of `RootHash` and `Vec`. The `Vec` + /// represents verified epoch information if it exists. + /// + /// # Errors + /// + /// Returns an `Error` if: + /// + /// - The proof is corrupted. + /// - The GroveDb query fails. + pub fn verify_epoch_proposers( + proof: &[u8], + epoch_index: EpochIndex, + proposer_query_type: ProposerQueryType, + platform_version: &PlatformVersion, + ) -> Result<(RootHash, I), Error> + where + I: FromIterator<(P, u64)>, + P: TryFrom, Error = E>, + { + match platform_version + .drive + .methods + .verify + .system + .verify_epoch_infos + { + 0 => Drive::verify_epoch_proposers_v0( + proof, + epoch_index, + proposer_query_type, + platform_version, + ), + version => Err(Error::Drive(DriveError::UnknownVersionMismatch { + method: "verify_epoch_proposers".to_string(), + known_versions: vec![0], + received: version, + })), + } + } +} diff --git a/packages/rs-drive/src/verify/system/verify_epoch_proposers/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_epoch_proposers/v0/mod.rs new file mode 100644 index 0000000000..8d07946836 --- /dev/null +++ b/packages/rs-drive/src/verify/system/verify_epoch_proposers/v0/mod.rs @@ -0,0 +1,90 @@ +use crate::drive::Drive; +use crate::error::drive::DriveError; +use crate::error::Error; +use crate::query::proposer_block_count_query::ProposerQueryType; +use crate::verify::RootHash; +use dpp::block::epoch::{Epoch, EpochIndex}; +use grovedb::{Element, GroveDb}; +use platform_version::version::PlatformVersion; + +impl Drive { + /// Verifies the proposers for a given epoch using the provided proof. + /// + /// This function checks if the proposers for the specified epoch are correctly included + /// in the provided proof by querying GroveDB and returns the root hash along with the + /// list of proposers and their corresponding block counts. + /// + /// # Parameters + /// + /// - `proof`: A byte slice representing the Merkle proof used to verify the data. + /// - `epoch_index`: The index of the epoch for which the proposers are being verified. + /// - `limit`: The maximum number of proposers to retrieve. + /// - `platform_version`: The current version of the platform to ensure compatibility during verification. + /// + /// # Returns + /// + /// A `Result` containing a tuple: + /// + /// - `RootHash`: The calculated root hash from the verified proof. + /// - `I`: An iterator over the proposers, each paired with their block count. The type `I` + /// is expected to be constructed using the `FromIterator` trait. + /// + /// # Errors + /// + /// This function returns an error if: + /// + /// - The proof is invalid or corrupted. + /// - The GroveDB query fails. + /// - A proposer’s block count cannot be parsed as a `u64`. + /// - An unexpected element type is encountered during verification. + /// + /// ``` + #[inline(always)] + pub(super) fn verify_epoch_proposers_v0( + proof: &[u8], + epoch_index: EpochIndex, + proposer_query_type: ProposerQueryType, + platform_version: &PlatformVersion, + ) -> Result<(RootHash, I), Error> + where + I: FromIterator<(P, u64)>, + P: TryFrom, Error = E>, + { + let epoch = Epoch::new(epoch_index)?; + + let path_query = proposer_query_type.into_path_query(&epoch); + + let (root_hash, elements) = + GroveDb::verify_query(proof, &path_query, &platform_version.drive.grove_version)?; + + let proposers = elements + .into_iter() + .map(|(_, pro_tx_hash, element)| { + let Some(Element::Item(encoded_block_count, _)) = element else { + return Err(Error::Drive(DriveError::UnexpectedElementType( + "epochs proposer block count must be an item", + ))); + }; + + let block_count = u64::from_be_bytes( + encoded_block_count.as_slice().try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization(String::from( + "epochs proposer block count must be u64", + ))) + })?, + ); + + Ok(( + pro_tx_hash.try_into().map_err(|_| { + Error::Drive(DriveError::CorruptedSerialization( + "item has an invalid length".to_string(), + )) + })?, + block_count, + )) + }) + .collect::>()?; + + Ok((root_hash, proposers)) + } +} diff --git a/packages/rs-drive/src/verify/system/verify_total_credits_in_system/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_total_credits_in_system/v0/mod.rs index 353a115dc5..953e793d95 100644 --- a/packages/rs-drive/src/verify/system/verify_total_credits_in_system/v0/mod.rs +++ b/packages/rs-drive/src/verify/system/verify_total_credits_in_system/v0/mod.rs @@ -38,7 +38,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_total_credits_in_system_v0( + pub(super) fn verify_total_credits_in_system_v0( proof: &[u8], core_subsidy_halving_interval: u32, request_activation_core_height: impl Fn() -> Result, diff --git a/packages/rs-drive/src/verify/system/verify_upgrade_state/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_upgrade_state/v0/mod.rs index 17d447a549..0e2af0cfd7 100644 --- a/packages/rs-drive/src/verify/system/verify_upgrade_state/v0/mod.rs +++ b/packages/rs-drive/src/verify/system/verify_upgrade_state/v0/mod.rs @@ -31,7 +31,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_upgrade_state_v0( + pub(super) fn verify_upgrade_state_v0( proof: &[u8], platform_version: &PlatformVersion, ) -> Result<(RootHash, IntMap), Error> { diff --git a/packages/rs-drive/src/verify/system/verify_upgrade_vote_status/v0/mod.rs b/packages/rs-drive/src/verify/system/verify_upgrade_vote_status/v0/mod.rs index 8f6a436199..5a326e2416 100644 --- a/packages/rs-drive/src/verify/system/verify_upgrade_vote_status/v0/mod.rs +++ b/packages/rs-drive/src/verify/system/verify_upgrade_vote_status/v0/mod.rs @@ -32,7 +32,7 @@ impl Drive { /// - The proof is corrupted. /// - The GroveDb query fails. #[inline(always)] - pub(crate) fn verify_upgrade_vote_status_v0( + pub(super) fn verify_upgrade_vote_status_v0( proof: &[u8], start_protx_hash: Option<[u8; 32]>, count: u16, diff --git a/packages/rs-drive/src/verify/voting/verify_contests_proof/v0/mod.rs b/packages/rs-drive/src/verify/voting/verify_contests_proof/v0/mod.rs index 6bdcfde8ab..35a7fb5615 100644 --- a/packages/rs-drive/src/verify/voting/verify_contests_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/voting/verify_contests_proof/v0/mod.rs @@ -32,7 +32,7 @@ impl<'a> ResolvedVotePollsByDocumentTypeQuery<'a> { /// 1. The proof verification fails. /// 2. There is a deserialization error when parsing the serialized document(s) into `Document` struct(s). #[inline(always)] - pub(crate) fn verify_contests_proof_v0( + pub(super) fn verify_contests_proof_v0( &self, proof: &[u8], platform_version: &PlatformVersion, diff --git a/packages/rs-drive/src/verify/voting/verify_masternode_vote/v0/mod.rs b/packages/rs-drive/src/verify/voting/verify_masternode_vote/v0/mod.rs index cf00e602c3..daa9effbcc 100644 --- a/packages/rs-drive/src/verify/voting/verify_masternode_vote/v0/mod.rs +++ b/packages/rs-drive/src/verify/voting/verify_masternode_vote/v0/mod.rs @@ -44,7 +44,7 @@ impl Drive { /// - The identity ID does not correspond to a valid balance. /// - The proved key value is not for the correct path or key in balances. /// - More than one balance is found. - pub(crate) fn verify_masternode_vote_v0( + pub(super) fn verify_masternode_vote_v0( proof: &[u8], masternode_pro_tx_hash: [u8; 32], vote: &Vote, diff --git a/packages/rs-drive/src/verify/voting/verify_specialized_balance/v0/mod.rs b/packages/rs-drive/src/verify/voting/verify_specialized_balance/v0/mod.rs index 35fb2cdcf5..b28bc3fb4f 100644 --- a/packages/rs-drive/src/verify/voting/verify_specialized_balance/v0/mod.rs +++ b/packages/rs-drive/src/verify/voting/verify_specialized_balance/v0/mod.rs @@ -37,7 +37,7 @@ impl Drive { /// - The proved key value is not for the correct path or key in balances. /// - More than one balance is found. /// - pub(crate) fn verify_specialized_balance_v0( + pub(super) fn verify_specialized_balance_v0( proof: &[u8], balance_id: [u8; 32], verify_subset_of_proof: bool, diff --git a/packages/rs-drive/src/verify/voting/verify_vote_poll_vote_state_proof/v0/mod.rs b/packages/rs-drive/src/verify/voting/verify_vote_poll_vote_state_proof/v0/mod.rs index 100e7b827a..6b82deffe8 100644 --- a/packages/rs-drive/src/verify/voting/verify_vote_poll_vote_state_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/voting/verify_vote_poll_vote_state_proof/v0/mod.rs @@ -45,7 +45,7 @@ impl<'a> ResolvedContestedDocumentVotePollDriveQuery<'a> { /// 1. The proof verification fails. /// 2. There is a deserialization error when parsing the serialized document(s) into `Document` struct(s). #[inline(always)] - pub(crate) fn verify_vote_poll_vote_state_proof_v0( + pub(super) fn verify_vote_poll_vote_state_proof_v0( &self, proof: &[u8], platform_version: &PlatformVersion, @@ -56,7 +56,8 @@ impl<'a> ResolvedContestedDocumentVotePollDriveQuery<'a> { GroveDb::verify_query(proof, &path_query, &platform_version.drive.grove_version)?; match self.result_type { - ContestedDocumentVotePollDriveQueryResultType::Documents => { + ContestedDocumentVotePollDriveQueryResultType::Documents + | ContestedDocumentVotePollDriveQueryResultType::SingleDocumentByContender(_) => { let contenders = proved_key_values .into_iter() .map(|(mut path, _key, document)| { diff --git a/packages/rs-drive/src/verify/voting/verify_vote_poll_votes_proof/v0/mod.rs b/packages/rs-drive/src/verify/voting/verify_vote_poll_votes_proof/v0/mod.rs index f46732d4f3..091cc14694 100644 --- a/packages/rs-drive/src/verify/voting/verify_vote_poll_votes_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/voting/verify_vote_poll_votes_proof/v0/mod.rs @@ -31,7 +31,7 @@ impl<'a> ResolvedContestedDocumentVotePollVotesDriveQuery<'a> { /// 1. The proof verification fails. /// 2. There is a deserialization error when parsing the serialized document(s) into `Document` struct(s). #[inline(always)] - pub(crate) fn verify_vote_poll_votes_proof_v0( + pub(super) fn verify_vote_poll_votes_proof_v0( &self, proof: &[u8], platform_version: &PlatformVersion, diff --git a/packages/rs-drive/tests/dashpay.rs b/packages/rs-drive/tests/dashpay.rs index f00008712c..1dbc23e8aa 100644 --- a/packages/rs-drive/tests/dashpay.rs +++ b/packages/rs-drive/tests/dashpay.rs @@ -11,7 +11,7 @@ mod contact_request { #[test] fn test_user_id_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -47,7 +47,7 @@ mod contact_request { #[test] fn test_user_id_by_created_at_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -83,7 +83,7 @@ mod contact_request { #[test] fn test_owner_id_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -119,7 +119,7 @@ mod contact_request { #[test] fn test_owner_id_by_created_at_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -155,7 +155,7 @@ mod contact_request { #[test] fn test_owner_id_and_to_user_id_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/tests/masternode_rewards.rs b/packages/rs-drive/tests/masternode_rewards.rs index 56464bbae5..0c7fc4bbc8 100644 --- a/packages/rs-drive/tests/masternode_rewards.rs +++ b/packages/rs-drive/tests/masternode_rewards.rs @@ -11,7 +11,7 @@ mod reward_share { #[test] fn test_owner_id_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -47,7 +47,7 @@ mod reward_share { #[test] fn test_owner_id_and_pay_to_id_query() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-drive/tests/query_tests.rs b/packages/rs-drive/tests/query_tests.rs index f29741e83d..e7a880a02c 100644 --- a/packages/rs-drive/tests/query_tests.rs +++ b/packages/rs-drive/tests/query_tests.rs @@ -2342,7 +2342,7 @@ fn test_family_person_update() { .add_document_for_contract( DocumentAndContractInfo { owned_document_info: OwnedDocumentInfo { - document_info: DocumentRefInfo((&document, storage_flags)), + document_info: DocumentRefInfo((&document, storage_flags.clone())), owner_id: None, }, contract: &contract, @@ -2379,7 +2379,7 @@ fn test_family_person_update() { None, BlockInfo::genesis(), true, - None, + storage_flags, Some(&db_transaction), platform_version, Some(&epoch_change_fee_version_test), @@ -4804,7 +4804,7 @@ fn test_dpns_query_start_after_with_null_id_desc() { #[cfg(feature = "server")] #[test] fn test_query_a_b_c_d_e_contract() { - let drive: Drive = setup_drive_with_initial_state_structure(); + let drive: Drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); @@ -4919,7 +4919,7 @@ fn test_query_a_b_c_d_e_contract() { #[cfg(feature = "server")] #[test] fn test_query_documents_by_created_at() { - let drive = setup_drive_with_initial_state_structure(); + let drive = setup_drive_with_initial_state_structure(None); let platform_version = PlatformVersion::latest(); diff --git a/packages/rs-json-schema-compatibility-validator/Cargo.toml b/packages/rs-json-schema-compatibility-validator/Cargo.toml index 815b0ce300..af8e0a8034 100644 --- a/packages/rs-json-schema-compatibility-validator/Cargo.toml +++ b/packages/rs-json-schema-compatibility-validator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "json-schema-compatibility-validator" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true authors = ["Ivan Shumkov "] @@ -8,7 +8,7 @@ authors = ["Ivan Shumkov "] [dependencies] json-patch = "1.4" serde_json = "1.0.115" -thiserror = "1.0.58" +thiserror = "1.0.64" once_cell = "1.19.0" [dev-dependencies] diff --git a/packages/rs-platform-serialization-derive/Cargo.toml b/packages/rs-platform-serialization-derive/Cargo.toml index de7eea7735..6cacd6e794 100644 --- a/packages/rs-platform-serialization-derive/Cargo.toml +++ b/packages/rs-platform-serialization-derive/Cargo.toml @@ -2,7 +2,7 @@ name = "platform-serialization-derive" authors = ["Samuel Westrich "] description = "Bincode serialization and deserialization derivations" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" diff --git a/packages/rs-platform-serialization/Cargo.toml b/packages/rs-platform-serialization/Cargo.toml index f1c0b34b1d..cdfc3151ae 100644 --- a/packages/rs-platform-serialization/Cargo.toml +++ b/packages/rs-platform-serialization/Cargo.toml @@ -2,7 +2,7 @@ name = "platform-serialization" authors = ["Samuel Westrich "] description = "Bincode based serialization and deserialization" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" diff --git a/packages/rs-platform-value-convertible/Cargo.toml b/packages/rs-platform-value-convertible/Cargo.toml index 50899ec132..bae257b3d7 100644 --- a/packages/rs-platform-value-convertible/Cargo.toml +++ b/packages/rs-platform-value-convertible/Cargo.toml @@ -2,7 +2,7 @@ name = "platform-value-convertible" authors = ["Samuel Westrich "] description = "Convertion to and from platform values" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" diff --git a/packages/rs-platform-value/Cargo.toml b/packages/rs-platform-value/Cargo.toml index f6f3ef5560..15b0852906 100644 --- a/packages/rs-platform-value/Cargo.toml +++ b/packages/rs-platform-value/Cargo.toml @@ -2,7 +2,7 @@ name = "platform-value" authors = ["Samuel Westrich "] description = "A simple value module" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" @@ -10,7 +10,7 @@ license = "MIT" [dependencies] bincode = { version = "2.0.0-rc.3", features = ["serde"] } ciborium = { git = "https://github.com/qrayven/ciborium", branch = "feat-ser-null-as-undefined", optional = true } -thiserror = "1.0.58" +thiserror = "1.0.64" bs58 = "0.5.1" base64 = "0.22.1" hex = "0.4.3" diff --git a/packages/rs-platform-version/Cargo.toml b/packages/rs-platform-version/Cargo.toml index 5e4747757f..696e36ae73 100644 --- a/packages/rs-platform-version/Cargo.toml +++ b/packages/rs-platform-version/Cargo.toml @@ -2,16 +2,16 @@ name = "platform-version" authors = ["Samuel Westrich "] description = "Versioning library for Platform" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = { version = "1.0.59" } +thiserror = { version = "1.0.63" } bincode = { version = "2.0.0-rc.3" } versioned-feature-core = { git = "https://github.com/dashpay/versioned-feature-core", version = "1.0.0" } -grovedb-version = { git = "https://github.com/dashpay/grovedb", rev = "2c14841e95b4222d489f0655c85238bc05267b91" } +grovedb-version = { version = "2.1.0" } once_cell = "1.19.0" [features] diff --git a/packages/rs-platform-version/src/version/consensus_versions.rs b/packages/rs-platform-version/src/version/consensus_versions.rs new file mode 100644 index 0000000000..af2177ecde --- /dev/null +++ b/packages/rs-platform-version/src/version/consensus_versions.rs @@ -0,0 +1,6 @@ +use versioned_feature_core::FeatureVersion; + +#[derive(Clone, Debug, Default)] +pub struct ConsensusVersions { + pub tenderdash_consensus_version: FeatureVersion, +} diff --git a/packages/rs-platform-version/src/version/dpp_versions.rs b/packages/rs-platform-version/src/version/dpp_versions.rs index 6a64561f6e..713f9dc54a 100644 --- a/packages/rs-platform-version/src/version/dpp_versions.rs +++ b/packages/rs-platform-version/src/version/dpp_versions.rs @@ -27,6 +27,12 @@ pub struct StateTransitionVersions { pub struct IdentityTransitionVersions { pub max_public_keys_in_creation: u16, pub asset_locks: IdentityTransitionAssetLockVersions, + pub credit_withdrawal: IdentityCreditWithdrawalTransitionVersions, +} + +#[derive(Clone, Debug, Default)] +pub struct IdentityCreditWithdrawalTransitionVersions { + pub default_constructor: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -79,7 +85,9 @@ pub struct DataContractValidationVersions { #[derive(Clone, Debug, Default)] pub struct VotingValidationVersions { /// How long do we allow other contenders to join a contest after the first contender - pub allow_other_contenders_time_ms: u64, + pub allow_other_contenders_time_mainnet_ms: u64, + /// How long do we allow other contenders to join a contest after the first contender in a testing environment + pub allow_other_contenders_time_testing_ms: u64, /// How many votes do we allow from the same masternode? pub votes_allowed_per_masternode: u16, } @@ -235,7 +243,8 @@ pub struct IdentityVersions { #[derive(Clone, Debug, Default)] pub struct VotingVersions { - pub default_vote_poll_time_duration_ms: u64, + pub default_vote_poll_time_duration_mainnet_ms: u64, + pub default_vote_poll_time_duration_test_network_ms: u64, pub contested_document_vote_poll_stored_info_version: FeatureVersion, } @@ -262,9 +271,11 @@ pub struct DocumentMethodVersions { pub hash: FeatureVersion, pub get_raw_for_contract: FeatureVersion, pub get_raw_for_document_type: FeatureVersion, + pub try_into_asset_unlock_base_transaction_info: FeatureVersion, } #[derive(Clone, Debug, Default)] pub struct DPPMethodVersions { pub epoch_core_reward_credits_for_distribution: FeatureVersion, + pub daily_withdrawal_limit: FeatureVersion, } diff --git a/packages/rs-platform-version/src/version/drive_abci_versions.rs b/packages/rs-platform-version/src/version/drive_abci_versions.rs index a23a5c6e02..bb74c9d433 100644 --- a/packages/rs-platform-version/src/version/drive_abci_versions.rs +++ b/packages/rs-platform-version/src/version/drive_abci_versions.rs @@ -5,6 +5,7 @@ pub struct DriveAbciVersion { pub structs: DriveAbciStructureVersions, pub methods: DriveAbciMethodVersions, pub validation_and_processing: DriveAbciValidationVersions, + pub withdrawal_constants: DriveAbciWithdrawalConstants, pub query: DriveAbciQueryVersions, } @@ -16,6 +17,7 @@ pub struct DriveAbciQueryVersions { pub document_query: FeatureVersionBounds, pub prefunded_specialized_balances: DriveAbciQueryPrefundedSpecializedBalancesVersions, pub identity_based_queries: DriveAbciQueryIdentityVersions, + pub validator_queries: DriveAbciQueryValidatorVersions, pub data_contract_based_queries: DriveAbciQueryDataContractVersions, pub voting_based_queries: DriveAbciQueryVotingVersions, pub system: DriveAbciQuerySystemVersions, @@ -34,10 +36,17 @@ pub struct DriveAbciQueryIdentityVersions { pub identity_nonce: FeatureVersionBounds, pub identity_contract_nonce: FeatureVersionBounds, pub balance: FeatureVersionBounds, + pub identities_balances: FeatureVersionBounds, pub balance_and_revision: FeatureVersionBounds, pub identity_by_public_key_hash: FeatureVersionBounds, } +#[derive(Clone, Debug, Default)] +pub struct DriveAbciQueryValidatorVersions { + pub proposed_block_counts_by_evonode_ids: FeatureVersionBounds, + pub proposed_block_counts_by_range: FeatureVersionBounds, +} + #[derive(Clone, Debug, Default)] pub struct DriveAbciQueryVotingVersions { pub vote_polls_by_end_date_query: FeatureVersionBounds, @@ -59,6 +68,8 @@ pub struct DriveAbciQuerySystemVersions { pub version_upgrade_state: FeatureVersionBounds, pub version_upgrade_vote_status: FeatureVersionBounds, pub epoch_infos: FeatureVersionBounds, + pub current_quorums_info: FeatureVersionBounds, + pub partial_status: FeatureVersionBounds, pub path_elements: FeatureVersionBounds, pub total_credits_in_platform: FeatureVersionBounds, } @@ -102,6 +113,12 @@ pub struct DriveAbciValidationVersions { pub event_constants: DriveAbciValidationConstants, } +#[derive(Clone, Debug, Default)] +pub struct DriveAbciWithdrawalConstants { + pub core_expiration_blocks: u32, + pub cleanup_expired_locks_of_withdrawal_amounts_limit: u16, +} + #[derive(Clone, Debug, Default)] pub struct DriveAbciValidationConstants { pub maximum_vote_polls_to_process: u16, @@ -132,6 +149,7 @@ pub struct DriveAbciDocumentsStateTransitionValidationVersions { pub state: FeatureVersion, pub transform_into_action: FeatureVersion, pub data_triggers: DriveAbciValidationDataTriggerAndBindingVersions, + pub is_allowed: FeatureVersion, pub document_create_transition_structure_validation: FeatureVersion, pub document_delete_transition_structure_validation: FeatureVersion, pub document_replace_transition_structure_validation: FeatureVersion, @@ -182,6 +200,7 @@ pub struct DriveAbciStateTransitionValidationVersions { pub identity_update_state_transition: DriveAbciStateTransitionValidationVersion, pub identity_top_up_state_transition: DriveAbciStateTransitionValidationVersion, pub identity_credit_withdrawal_state_transition: DriveAbciStateTransitionValidationVersion, + pub identity_credit_withdrawal_state_transition_purpose_matches_requirements: FeatureVersion, pub identity_credit_transfer_state_transition: DriveAbciStateTransitionValidationVersion, pub masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion, pub contract_create_state_transition: DriveAbciStateTransitionValidationVersion, @@ -213,6 +232,7 @@ pub struct DriveAbciEngineMethodVersions { pub check_tx: FeatureVersion, pub run_block_proposal: FeatureVersion, pub finalize_block_proposal: FeatureVersion, + pub consensus_params_update: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -227,7 +247,8 @@ pub struct DriveAbciCoreBasedUpdatesMethodVersions { pub struct DriveAbciMasternodeIdentitiesUpdatesMethodVersions { pub get_voter_identity_key: FeatureVersion, pub get_operator_identity_keys: FeatureVersion, - pub get_owner_identity_key: FeatureVersion, + pub get_owner_identity_withdrawal_key: FeatureVersion, + pub get_owner_identity_owner_key: FeatureVersion, pub get_voter_identifier_from_masternode_list_item: FeatureVersion, pub get_operator_identifier_from_masternode_list_item: FeatureVersion, pub create_operator_identity: FeatureVersion, @@ -319,13 +340,16 @@ pub struct DriveAbciIdentityCreditWithdrawalMethodVersions { pub fetch_transactions_block_inclusion_status: FeatureVersion, pub pool_withdrawals_into_transactions_queue: FeatureVersion, pub update_broadcasted_withdrawal_statuses: FeatureVersion, + pub rebroadcast_expired_withdrawal_documents: FeatureVersion, pub append_signatures_and_broadcast_withdrawal_transactions: FeatureVersion, + pub cleanup_expired_locks_of_withdrawal_amounts: FeatureVersion, } #[derive(Clone, Debug, Default)] pub struct DriveAbciProtocolUpgradeMethodVersions { pub check_for_desired_protocol_upgrade: FeatureVersion, pub upgrade_protocol_version_on_epoch_change: FeatureVersion, + pub perform_events_on_first_block_of_protocol_change: OptionalFeatureVersion, pub protocol_version_upgrade_percentage_needed: u64, } diff --git a/packages/rs-platform-version/src/version/drive_versions.rs b/packages/rs-platform-version/src/version/drive_versions.rs index 1cfcf764e1..2deecab9de 100644 --- a/packages/rs-platform-version/src/version/drive_versions.rs +++ b/packages/rs-platform-version/src/version/drive_versions.rs @@ -127,6 +127,7 @@ pub struct DriveVerifyIdentityMethodVersions { pub verify_identity_nonce: FeatureVersion, pub verify_identity_contract_nonce: FeatureVersion, pub verify_identities_contract_keys: FeatureVersion, + pub verify_identity_revision_for_identity_id: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -144,6 +145,7 @@ pub struct DriveVerifyVoteMethodVersions { #[derive(Clone, Debug, Default)] pub struct DriveVerifySystemMethodVersions { pub verify_epoch_infos: FeatureVersion, + pub verify_epoch_proposers: FeatureVersion, pub verify_elements: FeatureVersion, pub verify_total_credits_in_system: FeatureVersion, pub verify_upgrade_state: FeatureVersion, @@ -319,6 +321,8 @@ pub struct DriveVoteCleanupMethodVersions { pub remove_contested_resource_vote_poll_votes_operations: FeatureVersion, pub remove_contested_resource_vote_poll_documents_operations: FeatureVersion, pub remove_contested_resource_vote_poll_contenders_operations: FeatureVersion, + pub remove_contested_resource_top_level_index_operations: FeatureVersion, + pub remove_contested_resource_info_operations: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -348,6 +352,9 @@ pub struct DriveDocumentMethodVersions { #[derive(Clone, Debug, Default)] pub struct DriveDocumentQueryMethodVersions { pub query_documents: FeatureVersion, + pub query_contested_documents: FeatureVersion, + pub query_contested_documents_vote_state: FeatureVersion, + pub query_documents_with_flags: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -424,6 +431,7 @@ pub struct DriveGroveBasicMethodVersions { pub grove_insert_empty_tree: FeatureVersion, pub grove_insert_empty_sum_tree: FeatureVersion, pub grove_insert_if_not_exists: FeatureVersion, + pub grove_insert_if_not_exists_return_existing_element: FeatureVersion, pub grove_clear: FeatureVersion, pub grove_delete: FeatureVersion, pub grove_get_raw: FeatureVersion, @@ -447,11 +455,14 @@ pub struct DriveGroveBatchMethodVersions { pub batch_insert_empty_tree: FeatureVersion, pub batch_insert_empty_tree_if_not_exists: FeatureVersion, pub batch_insert_empty_tree_if_not_exists_check_existing_operations: FeatureVersion, + pub batch_insert_sum_item_or_add_to_if_already_exists: FeatureVersion, pub batch_insert: FeatureVersion, pub batch_insert_if_not_exists: FeatureVersion, pub batch_insert_if_changed_value: FeatureVersion, pub batch_replace: FeatureVersion, pub batch_delete: FeatureVersion, + pub batch_delete_items_in_path_query: FeatureVersion, + pub batch_move_items_in_path_query: FeatureVersion, pub batch_remove_raw: FeatureVersion, pub batch_delete_up_tree_while_empty: FeatureVersion, pub batch_refresh_reference: FeatureVersion, @@ -496,7 +507,8 @@ pub struct DriveCreditPoolEpochsMethodVersions { pub get_epoch_start_block_core_height: FeatureVersion, pub get_epoch_start_block_height: FeatureVersion, pub get_first_epoch_start_block_info_between_epochs: FeatureVersion, - pub get_epoch_proposers: FeatureVersion, + pub fetch_epoch_proposers: FeatureVersion, + pub prove_epoch_proposers: FeatureVersion, pub get_epochs_proposer_block_count: FeatureVersion, pub add_update_pending_epoch_refunds_operations: FeatureVersion, pub is_epochs_proposers_tree_empty: FeatureVersion, @@ -554,12 +566,13 @@ pub struct DriveIdentityMethodVersions { pub struct DriveIdentityWithdrawalMethodVersions { pub document: DriveIdentityWithdrawalDocumentMethodVersions, pub transaction: DriveIdentityWithdrawalTransactionMethodVersions, + pub calculate_current_withdrawal_limit: FeatureVersion, } #[derive(Clone, Debug, Default)] pub struct DriveIdentityWithdrawalDocumentMethodVersions { pub fetch_oldest_withdrawal_documents_by_status: FeatureVersion, - pub find_up_to_100_withdrawal_documents_by_status_and_transaction_indices: FeatureVersion, + pub find_withdrawal_documents_by_status_and_transaction_indices: FeatureVersion, } #[derive(Clone, Debug, Default)] @@ -578,6 +591,8 @@ pub struct DriveIdentityWithdrawalTransactionIndexMethodVersions { pub struct DriveIdentityWithdrawalTransactionQueueMethodVersions { pub add_enqueue_untied_withdrawal_transaction_operations: FeatureVersion, pub dequeue_untied_withdrawal_transactions: FeatureVersion, + pub remove_broadcasted_withdrawal_transactions_after_completion_operations: FeatureVersion, + pub move_broadcasted_withdrawal_transactions_back_to_queue_operations: FeatureVersion, } #[derive(Clone, Debug, Default)] diff --git a/packages/rs-platform-version/src/version/fee/mod.rs b/packages/rs-platform-version/src/version/fee/mod.rs index c868a3028d..6022a89a1f 100644 --- a/packages/rs-platform-version/src/version/fee/mod.rs +++ b/packages/rs-platform-version/src/version/fee/mod.rs @@ -72,8 +72,9 @@ mod tests { fetch_identity_balance_and_revision_processing_cost: 3, fetch_identity_cost_per_look_up_key_by_id: 4, fetch_single_identity_key_processing_cost: 5, - validate_key_structure: 6, - fetch_prefunded_specialized_balance_processing_cost: 7, + perform_network_threshold_signing: 6, + validate_key_structure: 7, + fetch_prefunded_specialized_balance_processing_cost: 8, }, data_contract: FeeDataContractValidationVersion { document_type_base_fee: 1, @@ -129,8 +130,9 @@ mod tests { fetch_identity_balance_and_revision_processing_cost: 3, fetch_identity_cost_per_look_up_key_by_id: 4, fetch_single_identity_key_processing_cost: 5, - validate_key_structure: 6, - fetch_prefunded_specialized_balance_processing_cost: 7, + perform_network_threshold_signing: 6, + validate_key_structure: 7, + fetch_prefunded_specialized_balance_processing_cost: 8, }, data_contract: FeeDataContractValidationVersion { document_type_base_fee: 1, diff --git a/packages/rs-platform-version/src/version/fee/processing/mod.rs b/packages/rs-platform-version/src/version/fee/processing/mod.rs index 0427cd0916..df88c9c0dc 100644 --- a/packages/rs-platform-version/src/version/fee/processing/mod.rs +++ b/packages/rs-platform-version/src/version/fee/processing/mod.rs @@ -10,6 +10,7 @@ pub struct FeeProcessingVersion { pub fetch_identity_cost_per_look_up_key_by_id: u64, pub fetch_prefunded_specialized_balance_processing_cost: u64, pub fetch_single_identity_key_processing_cost: u64, + pub perform_network_threshold_signing: u64, pub validate_key_structure: u64, } @@ -26,8 +27,9 @@ mod tests { fetch_identity_balance_and_revision_processing_cost: 3, fetch_identity_cost_per_look_up_key_by_id: 4, fetch_single_identity_key_processing_cost: 5, - validate_key_structure: 6, - fetch_prefunded_specialized_balance_processing_cost: 7, + perform_network_threshold_signing: 6, + validate_key_structure: 7, + fetch_prefunded_specialized_balance_processing_cost: 8, }; let version2 = FeeProcessingVersion { @@ -36,8 +38,9 @@ mod tests { fetch_identity_balance_and_revision_processing_cost: 3, fetch_identity_cost_per_look_up_key_by_id: 4, fetch_single_identity_key_processing_cost: 5, - validate_key_structure: 6, - fetch_prefunded_specialized_balance_processing_cost: 7, + perform_network_threshold_signing: 6, + validate_key_structure: 7, + fetch_prefunded_specialized_balance_processing_cost: 8, }; // This assertion will check if all fields are considered in the equality comparison diff --git a/packages/rs-platform-version/src/version/fee/processing/v1.rs b/packages/rs-platform-version/src/version/fee/processing/v1.rs index dbedd153d9..b6ba5ca998 100644 --- a/packages/rs-platform-version/src/version/fee/processing/v1.rs +++ b/packages/rs-platform-version/src/version/fee/processing/v1.rs @@ -7,5 +7,6 @@ pub const FEE_PROCESSING_VERSION1: FeeProcessingVersion = FeeProcessingVersion { fetch_identity_cost_per_look_up_key_by_id: 9000, fetch_prefunded_specialized_balance_processing_cost: 10000, fetch_single_identity_key_processing_cost: 10000, + perform_network_threshold_signing: 100000000, // 1mDash (2.5 cents at 25$/Dash) validate_key_structure: 50, }; diff --git a/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs b/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs index 5f759e50fc..5fbfdbbfe6 100644 --- a/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs +++ b/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs @@ -2,7 +2,7 @@ use crate::version::fee::state_transition_min_fees::StateTransitionMinFees; pub const STATE_TRANSITION_MIN_FEES_VERSION1: StateTransitionMinFees = StateTransitionMinFees { credit_transfer: 100000, - credit_withdrawal: 100000, + credit_withdrawal: 400000000, //credit withdrawals are more expensive that the rest identity_update: 100000, document_batch_sub_transition: 100000, contract_create: 100000, diff --git a/packages/rs-platform-version/src/version/limits.rs b/packages/rs-platform-version/src/version/limits.rs index 7035d6ae7c..4d10e3810d 100644 --- a/packages/rs-platform-version/src/version/limits.rs +++ b/packages/rs-platform-version/src/version/limits.rs @@ -4,4 +4,7 @@ pub struct SystemLimits { pub max_field_value_size: u32, pub max_state_transition_size: u64, pub max_transitions_in_documents_batch: u16, + pub withdrawal_transactions_per_block_limit: u16, + pub retry_signing_expired_withdrawal_documents_per_block_limit: u16, + pub max_withdrawal_amount: u64, } diff --git a/packages/rs-platform-version/src/version/mocks/v2_test.rs b/packages/rs-platform-version/src/version/mocks/v2_test.rs index 5cc03cec93..380e9ae88e 100644 --- a/packages/rs-platform-version/src/version/mocks/v2_test.rs +++ b/packages/rs-platform-version/src/version/mocks/v2_test.rs @@ -1,3 +1,4 @@ +use crate::version::consensus_versions::ConsensusVersions; use crate::version::contracts::SystemDataContractVersions; use crate::version::dpp_versions::{ AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, @@ -6,8 +7,9 @@ use crate::version::dpp_versions::{ DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, - IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions, - IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, VotingValidationVersions, VotingVersions, @@ -25,13 +27,13 @@ use crate::version::drive_abci_versions::{ DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, - DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, DriveAbciStateTransitionCommonValidationVersions, DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, - DriveAbciVotingMethodVersions, PenaltyAmounts, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, }; use crate::version::drive_versions::{ DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, @@ -127,7 +129,8 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { get_epoch_start_block_core_height: 0, get_epoch_start_block_height: 0, get_first_epoch_start_block_info_between_epochs: 0, - get_epoch_proposers: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, get_epochs_proposer_block_count: 0, add_update_pending_epoch_refunds_operations: 0, is_epochs_proposers_tree_empty: 0, @@ -139,9 +142,9 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { add_update_pending_epoch_refunds_operations: 0, }, storage_fee_distribution_pool: - DriveCreditPoolStorageFeeDistributionPoolMethodVersions { - get_storage_fees_from_distribution_pool: 0, - }, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { get_unpaid_epoch_index: 0, }, @@ -167,7 +170,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { calculate_total_credits_balance: 0, }, document: DriveDocumentMethodVersions { - query: DriveDocumentQueryMethodVersions { query_documents: 0 }, + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, delete: DriveDocumentDeleteMethodVersions { add_estimation_costs_for_remove_document_to_primary_storage: 0, delete_document_for_contract: 0, @@ -242,6 +245,8 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { remove_contested_resource_vote_poll_votes_operations: 0, remove_contested_resource_vote_poll_documents_operations: 0, remove_contested_resource_vote_poll_contenders_operations: 0, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, }, setup: DriveVoteSetupMethodVersions { add_initial_vote_tree_main_structure_operations: 0, @@ -315,6 +320,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { verify_identity_nonce: 0, verify_identity_contract_nonce: 0, verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, }, single_document: DriveVerifySingleDocumentMethodVersions { verify_proof: 0, @@ -322,6 +328,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { }, system: DriveVerifySystemMethodVersions { verify_epoch_infos: 0, + verify_epoch_proposers: 0, verify_elements: 0, verify_total_credits_in_system: 0, verify_upgrade_state: 0, @@ -408,14 +415,14 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { replace_key_in_storage: 0, }, insert_key_hash_identity_reference: - DriveIdentityKeyHashesToIdentityInsertMethodVersions { - add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, - add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, - insert_non_unique_public_key_hash_reference_to_identity: 0, - insert_reference_to_non_unique_key: 0, - insert_reference_to_unique_key: 0, - insert_unique_public_key_hash_reference_to_identity: 0, - }, + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, }, update: DriveIdentityUpdateMethodVersions { update_identity_revision: 0, @@ -459,7 +466,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { withdrawals: DriveIdentityWithdrawalMethodVersions { document: DriveIdentityWithdrawalDocumentMethodVersions { fetch_oldest_withdrawal_documents_by_status: 0, - find_up_to_100_withdrawal_documents_by_status_and_transaction_indices: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, }, transaction: DriveIdentityWithdrawalTransactionMethodVersions { index: DriveIdentityWithdrawalTransactionIndexMethodVersions { @@ -469,8 +476,11 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { add_enqueue_untied_withdrawal_transaction_operations: 0, dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, }, }, + calculate_current_withdrawal_limit: 0, }, }, platform_system: DrivePlatformSystemMethodVersions { @@ -499,26 +509,26 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { }, }, convert_to_high_level_operations: - DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { - data_contract_create_transition: 0, - data_contract_update_transition: 0, - document_create_transition: 0, - document_delete_transition: 0, - document_purchase_transition: 0, - document_replace_transition: 0, - document_transfer_transition: 0, - document_update_price_transition: 0, - documents_batch_transition: 0, - identity_create_transition: 0, - identity_credit_transfer_transition: 0, - identity_credit_withdrawal_transition: 0, - identity_top_up_transition: 0, - identity_update_transition: 0, - masternode_vote_transition: 0, - bump_identity_data_contract_nonce: 0, - bump_identity_nonce: 0, - partially_use_asset_lock: 0, - }, + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, }, platform_state: DrivePlatformStateMethodVersions { fetch_platform_state_bytes: 0, @@ -541,6 +551,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { grove_insert_empty_tree: 0, grove_insert_empty_sum_tree: 0, grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, grove_clear: 0, grove_delete: 0, grove_get_raw: 0, @@ -562,11 +573,14 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { batch_insert_empty_tree: 0, batch_insert_empty_tree_if_not_exists: 0, batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, batch_insert: 0, batch_insert_if_not_exists: 0, batch_insert_if_changed_value: 0, batch_replace: 0, batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, batch_remove_raw: 0, batch_delete_up_tree_while_empty: 0, batch_refresh_reference: 0, @@ -601,6 +615,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { check_tx: 0, run_block_proposal: 0, finalize_block_proposal: 0, + consensus_params_update: 0, }, initialization: DriveAbciInitializationMethodVersions { initial_core_height_and_time: 0, @@ -613,7 +628,8 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { get_voter_identity_key: 0, get_operator_identity_keys: 0, - get_owner_identity_key: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, get_voter_identifier_from_masternode_list_item: 0, get_operator_identifier_from_masternode_list_item: 0, create_operator_identity: 0, @@ -629,6 +645,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { check_for_desired_protocol_upgrade: 0, upgrade_protocol_version_on_epoch_change: 0, + perform_events_on_first_block_of_protocol_change: None, protocol_version_upgrade_percentage_needed: 75, }, block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { @@ -662,7 +679,9 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { fetch_transactions_block_inclusion_status: 0, pool_withdrawals_into_transactions_queue: 0, update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 0, append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, }, voting: DriveAbciVotingMethodVersions { keep_record_of_finished_contested_resource_vote_poll: 0, @@ -742,25 +761,26 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { transform_into_action: 0, }, identity_credit_withdrawal_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, identity_credit_transfer_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { basic_structure: None, advanced_structure: Some(0), @@ -789,38 +809,39 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { transform_into_action: 0, }, documents_batch_state_transition: - DriveAbciDocumentsStateTransitionValidationVersions { - balance_pre_check: 0, - basic_structure: 0, - advanced_structure: 0, - state: 0, - revision: 0, - transform_into_action: 0, - data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { - bindings: 0, - triggers: DriveAbciValidationDataTriggerVersions { - create_contact_request_data_trigger: 0, - create_domain_data_trigger: 0, - create_identity_data_trigger: 0, - create_feature_flag_data_trigger: 0, - create_masternode_reward_shares_data_trigger: 0, - delete_withdrawal_data_trigger: 0, - reject_data_trigger: 0, - }, + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, }, - document_create_transition_structure_validation: 0, - document_delete_transition_structure_validation: 0, - document_replace_transition_structure_validation: 0, - document_transfer_transition_structure_validation: 0, - document_purchase_transition_structure_validation: 0, - document_update_price_transition_structure_validation: 0, - document_create_transition_state_validation: 0, - document_delete_transition_state_validation: 0, - document_replace_transition_state_validation: 0, - document_transfer_transition_state_validation: 0, - document_purchase_transition_state_validation: 0, - document_update_price_transition_state_validation: 0, }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 0, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, }, process_state_transition: 0, state_transition_to_execution_event_for_check_tx: 0, @@ -835,6 +856,10 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { maximum_contenders_to_consider: 100, }, }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 0, + }, query: DriveAbciQueryVersions { max_returned_elements: 100, response_metadata: 0, @@ -881,6 +906,11 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, balance_and_revision: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -897,6 +927,18 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { default_current_version: 0, }, }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, data_contract_based_queries: DriveAbciQueryDataContractVersions { data_contract: FeatureVersionBounds { min_version: 0, @@ -957,6 +999,16 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, path_elements: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -995,7 +1047,8 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { unique_index_limit: 10, }, voting: VotingValidationVersions { - allow_other_contenders_time_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 2_700_000, //45 minutes votes_allowed_per_masternode: 5, }, }, @@ -1127,12 +1180,15 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { max_public_keys_in_creation: 6, asset_locks: IdentityTransitionAssetLockVersions { required_asset_lock_duff_balance_for_processing_start_for_identity_create: - 200000, + 200000, required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: - 50000, + 50000, validate_asset_lock_transaction_structure: 0, validate_instant_asset_lock_proof_structure: 0, }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 0, + }, }, }, contract_versions: ContractVersions { @@ -1205,6 +1261,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { hash: 0, get_raw_for_contract: 0, get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, }, }, identity_versions: IdentityVersions { @@ -1216,7 +1273,8 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { }, }, voting_versions: VotingVersions { - default_vote_poll_time_duration_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 5_400_000, //90 minutes contested_document_vote_poll_stored_info_version: 0, }, asset_lock_versions: AssetLockVersions { @@ -1226,7 +1284,7 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { default_current_version: 0, }, }, - methods: DPPMethodVersions { epoch_core_reward_credits_for_distribution: 0 }, + methods: DPPMethodVersions { epoch_core_reward_credits_for_distribution: 0, daily_withdrawal_limit: 0 }, }, system_data_contracts: SystemDataContractVersions { withdrawals: 1, @@ -1241,5 +1299,11 @@ pub const TEST_PLATFORM_V2: PlatformVersion = PlatformVersion { max_field_value_size: 5000, max_state_transition_size: 20000, max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 0, }, }; diff --git a/packages/rs-platform-version/src/version/mocks/v3_test.rs b/packages/rs-platform-version/src/version/mocks/v3_test.rs index 19209abad6..436b1d9b89 100644 --- a/packages/rs-platform-version/src/version/mocks/v3_test.rs +++ b/packages/rs-platform-version/src/version/mocks/v3_test.rs @@ -1,3 +1,4 @@ +use crate::version::consensus_versions::ConsensusVersions; use crate::version::contracts::SystemDataContractVersions; use crate::version::dpp_versions::{ AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, @@ -6,8 +7,9 @@ use crate::version::dpp_versions::{ DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, - IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions, - IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, VotingValidationVersions, VotingVersions, @@ -25,13 +27,13 @@ use crate::version::drive_abci_versions::{ DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, - DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, DriveAbciStateTransitionCommonValidationVersions, DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, - DriveAbciVotingMethodVersions, PenaltyAmounts, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, }; use crate::version::drive_versions::{ DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, @@ -127,7 +129,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { get_epoch_start_block_core_height: 0, get_epoch_start_block_height: 0, get_first_epoch_start_block_info_between_epochs: 0, - get_epoch_proposers: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, get_epochs_proposer_block_count: 0, add_update_pending_epoch_refunds_operations: 0, is_epochs_proposers_tree_empty: 0, @@ -139,9 +142,9 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { add_update_pending_epoch_refunds_operations: 0, }, storage_fee_distribution_pool: - DriveCreditPoolStorageFeeDistributionPoolMethodVersions { - get_storage_fees_from_distribution_pool: 0, - }, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { get_unpaid_epoch_index: 0, }, @@ -166,37 +169,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { remove_from_system_credits_operations: 0, calculate_total_credits_balance: 0, }, - state_transitions: DriveStateTransitionMethodVersions { - operations: DriveStateTransitionOperationMethodVersions { - finalization_tasks: 0, - contracts: DriveDataContractOperationMethodVersions { - finalization_tasks: 0, - }, - }, - convert_to_high_level_operations: - DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { - data_contract_create_transition: 0, - data_contract_update_transition: 0, - document_create_transition: 0, - document_delete_transition: 0, - document_purchase_transition: 0, - document_replace_transition: 0, - document_transfer_transition: 0, - document_update_price_transition: 0, - documents_batch_transition: 0, - identity_create_transition: 0, - identity_credit_transfer_transition: 0, - identity_credit_withdrawal_transition: 0, - identity_top_up_transition: 0, - identity_update_transition: 0, - masternode_vote_transition: 0, - bump_identity_data_contract_nonce: 0, - bump_identity_nonce: 0, - partially_use_asset_lock: 0, - }, - }, document: DriveDocumentMethodVersions { - query: DriveDocumentQueryMethodVersions { query_documents: 0 }, + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, delete: DriveDocumentDeleteMethodVersions { add_estimation_costs_for_remove_document_to_primary_storage: 0, delete_document_for_contract: 0, @@ -267,10 +241,12 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { cleanup: DriveVoteCleanupMethodVersions { remove_specific_vote_references_given_by_identity: 0, remove_specific_votes_given_by_identity: 0, - remove_contested_resource_vote_poll_end_date_query_operations: 0, + remove_contested_resource_vote_poll_end_date_query_operations: 1, remove_contested_resource_vote_poll_votes_operations: 0, - remove_contested_resource_vote_poll_documents_operations: 0, - remove_contested_resource_vote_poll_contenders_operations: 0, + remove_contested_resource_vote_poll_documents_operations: 1, + remove_contested_resource_vote_poll_contenders_operations: 1, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, }, setup: DriveVoteSetupMethodVersions { add_initial_vote_tree_main_structure_operations: 0, @@ -344,6 +320,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { verify_identity_nonce: 0, verify_identity_contract_nonce: 0, verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, }, single_document: DriveVerifySingleDocumentMethodVersions { verify_proof: 0, @@ -351,6 +328,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { }, system: DriveVerifySystemMethodVersions { verify_epoch_infos: 0, + verify_epoch_proposers: 0, verify_elements: 0, verify_total_credits_in_system: 0, verify_upgrade_state: 0, @@ -437,14 +415,14 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { replace_key_in_storage: 0, }, insert_key_hash_identity_reference: - DriveIdentityKeyHashesToIdentityInsertMethodVersions { - add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, - add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, - insert_non_unique_public_key_hash_reference_to_identity: 0, - insert_reference_to_non_unique_key: 0, - insert_reference_to_unique_key: 0, - insert_unique_public_key_hash_reference_to_identity: 0, - }, + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, }, update: DriveIdentityUpdateMethodVersions { update_identity_revision: 0, @@ -488,7 +466,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { withdrawals: DriveIdentityWithdrawalMethodVersions { document: DriveIdentityWithdrawalDocumentMethodVersions { fetch_oldest_withdrawal_documents_by_status: 0, - find_up_to_100_withdrawal_documents_by_status_and_transaction_indices: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, }, transaction: DriveIdentityWithdrawalTransactionMethodVersions { index: DriveIdentityWithdrawalTransactionIndexMethodVersions { @@ -498,8 +476,11 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { add_enqueue_untied_withdrawal_transaction_operations: 0, dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, }, }, + calculate_current_withdrawal_limit: 0, }, }, platform_system: DrivePlatformSystemMethodVersions { @@ -516,6 +497,35 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { apply_batch_low_level_drive_operations: 0, apply_batch_grovedb_operations: 0, }, + state_transitions: DriveStateTransitionMethodVersions { + operations: DriveStateTransitionOperationMethodVersions { + finalization_tasks: 0, + contracts: DriveDataContractOperationMethodVersions { + finalization_tasks: 0, + }, + }, + convert_to_high_level_operations: + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, + }, batch_operations: DriveBatchOperationsMethodVersion { convert_drive_operations_to_grove_operations: 0, apply_drive_operations: 0, @@ -541,6 +551,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { grove_insert_empty_tree: 0, grove_insert_empty_sum_tree: 0, grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, grove_clear: 0, grove_delete: 0, grove_get_raw: 0, @@ -562,11 +573,14 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { batch_insert_empty_tree: 0, batch_insert_empty_tree_if_not_exists: 0, batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, batch_insert: 0, batch_insert_if_not_exists: 0, batch_insert_if_changed_value: 0, batch_replace: 0, batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, batch_remove_raw: 0, batch_delete_up_tree_while_empty: 0, batch_refresh_reference: 0, @@ -601,6 +615,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { check_tx: 0, run_block_proposal: 0, finalize_block_proposal: 0, + consensus_params_update: 1, }, initialization: DriveAbciInitializationMethodVersions { initial_core_height_and_time: 0, @@ -613,7 +628,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { get_voter_identity_key: 0, get_operator_identity_keys: 0, - get_owner_identity_key: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, get_voter_identifier_from_masternode_list_item: 0, get_operator_identifier_from_masternode_list_item: 0, create_operator_identity: 0, @@ -627,9 +643,10 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { }, }, protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { - check_for_desired_protocol_upgrade: 0, + check_for_desired_protocol_upgrade: 1, upgrade_protocol_version_on_epoch_change: 0, - protocol_version_upgrade_percentage_needed: 75, + perform_events_on_first_block_of_protocol_change: None, + protocol_version_upgrade_percentage_needed: 67, }, block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { add_process_epoch_change_operations: 0, @@ -660,9 +677,11 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { build_untied_withdrawal_transactions_from_documents: 0, dequeue_and_build_unsigned_withdrawal_transactions: 0, fetch_transactions_block_inclusion_status: 0, - pool_withdrawals_into_transactions_queue: 0, + pool_withdrawals_into_transactions_queue: 1, update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 1, append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, }, voting: DriveAbciVotingMethodVersions { keep_record_of_finished_contested_resource_vote_poll: 0, @@ -742,25 +761,26 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { transform_into_action: 0, }, identity_credit_withdrawal_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(1), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, identity_credit_transfer_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { basic_structure: None, advanced_structure: Some(0), @@ -789,38 +809,39 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { transform_into_action: 0, }, documents_batch_state_transition: - DriveAbciDocumentsStateTransitionValidationVersions { - balance_pre_check: 0, - basic_structure: 0, - advanced_structure: 0, - state: 0, - revision: 0, - transform_into_action: 0, - data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { - bindings: 0, - triggers: DriveAbciValidationDataTriggerVersions { - create_contact_request_data_trigger: 0, - create_domain_data_trigger: 0, - create_identity_data_trigger: 0, - create_feature_flag_data_trigger: 0, - create_masternode_reward_shares_data_trigger: 0, - delete_withdrawal_data_trigger: 0, - reject_data_trigger: 0, - }, + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, }, - document_create_transition_structure_validation: 0, - document_delete_transition_structure_validation: 0, - document_replace_transition_structure_validation: 0, - document_transfer_transition_structure_validation: 0, - document_purchase_transition_structure_validation: 0, - document_update_price_transition_structure_validation: 0, - document_create_transition_state_validation: 0, - document_delete_transition_state_validation: 0, - document_replace_transition_state_validation: 0, - document_transfer_transition_state_validation: 0, - document_purchase_transition_state_validation: 0, - document_update_price_transition_state_validation: 0, }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 1, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, }, process_state_transition: 0, state_transition_to_execution_event_for_check_tx: 0, @@ -835,6 +856,10 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { maximum_contenders_to_consider: 100, }, }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 64, + }, query: DriveAbciQueryVersions { max_returned_elements: 100, response_metadata: 0, @@ -866,6 +891,11 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + identities_contract_keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, identity_nonce: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -881,6 +911,11 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, balance_and_revision: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -891,7 +926,14 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, - identities_contract_keys: FeatureVersionBounds { + }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { min_version: 0, max_version: 0, default_current_version: 0, @@ -957,6 +999,16 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, path_elements: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -995,7 +1047,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { unique_index_limit: 10, }, voting: VotingValidationVersions { - allow_other_contenders_time_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 2_700_000, //45 minutes votes_allowed_per_masternode: 5, }, }, @@ -1101,7 +1154,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { state_transition_conversion_versions: StateTransitionConversionVersions { identity_to_identity_create_transition: 0, identity_to_identity_top_up_transition: 0, - identity_to_identity_withdrawal_transition: 0, + identity_to_identity_withdrawal_transition: 1, identity_to_identity_create_transition_with_signer: 0, }, state_transition_method_versions: StateTransitionMethodVersions { @@ -1127,12 +1180,15 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { max_public_keys_in_creation: 6, asset_locks: IdentityTransitionAssetLockVersions { required_asset_lock_duff_balance_for_processing_start_for_identity_create: - 200000, + 200000, required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: - 50000, + 50000, validate_asset_lock_transaction_structure: 0, validate_instant_asset_lock_proof_structure: 0, }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 0, + }, }, }, contract_versions: ContractVersions { @@ -1205,6 +1261,7 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { hash: 0, get_raw_for_contract: 0, get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, }, }, identity_versions: IdentityVersions { @@ -1216,7 +1273,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { }, }, voting_versions: VotingVersions { - default_vote_poll_time_duration_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 5_400_000, //90 minutes contested_document_vote_poll_stored_info_version: 0, }, asset_lock_versions: AssetLockVersions { @@ -1228,7 +1286,8 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { }, methods: DPPMethodVersions { epoch_core_reward_credits_for_distribution: 0, - } + daily_withdrawal_limit: 0, + }, }, system_data_contracts: SystemDataContractVersions { withdrawals: 1, @@ -1240,8 +1299,14 @@ pub const TEST_PLATFORM_V3: PlatformVersion = PlatformVersion { fee_version: FEE_VERSION1, system_limits: SystemLimits { estimated_contract_max_serialized_size: 16384, - max_field_value_size: 5000, - max_state_transition_size: 20000, + max_field_value_size: 5120, //5 KiB + max_state_transition_size: 20480, //20 KiB max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 1, }, }; diff --git a/packages/rs-platform-version/src/version/mod.rs b/packages/rs-platform-version/src/version/mod.rs index 6422228b1d..9ee6257751 100644 --- a/packages/rs-platform-version/src/version/mod.rs +++ b/packages/rs-platform-version/src/version/mod.rs @@ -1,7 +1,8 @@ mod protocol_version; -use crate::version::v1::PROTOCOL_VERSION_1; +use crate::version::v4::PROTOCOL_VERSION_4; pub use protocol_version::*; +mod consensus_versions; pub mod contracts; pub mod dpp_versions; pub mod drive_abci_versions; @@ -12,8 +13,11 @@ mod limits; pub mod mocks; pub mod patches; pub mod v1; +pub mod v2; +pub mod v3; +pub mod v4; pub type ProtocolVersion = u32; -pub const LATEST_VERSION: ProtocolVersion = PROTOCOL_VERSION_1; +pub const LATEST_VERSION: ProtocolVersion = PROTOCOL_VERSION_4; pub const INITIAL_PROTOCOL_VERSION: ProtocolVersion = 1; diff --git a/packages/rs-platform-version/src/version/protocol_version.rs b/packages/rs-platform-version/src/version/protocol_version.rs index dcb62784b2..f3d4a1871d 100644 --- a/packages/rs-platform-version/src/version/protocol_version.rs +++ b/packages/rs-platform-version/src/version/protocol_version.rs @@ -14,7 +14,11 @@ use crate::version::v1::PLATFORM_V1; #[cfg(feature = "mock-versions")] use std::sync::OnceLock; +use crate::version::consensus_versions::ConsensusVersions; use crate::version::limits::SystemLimits; +use crate::version::v2::PLATFORM_V2; +use crate::version::v3::PLATFORM_V3; +use crate::version::v4::PLATFORM_V4; use crate::version::ProtocolVersion; pub use versioned_feature_core::*; @@ -31,13 +35,15 @@ pub struct PlatformVersion { pub dpp: DPPVersion, pub drive: DriveVersion, pub drive_abci: DriveAbciVersion, + pub consensus: ConsensusVersions, pub fee_version: FeeVersion, pub platform_architecture: PlatformArchitectureVersion, pub system_data_contracts: SystemDataContractVersions, pub system_limits: SystemLimits, } -pub const PLATFORM_VERSIONS: &[PlatformVersion] = &[PLATFORM_V1]; +pub const PLATFORM_VERSIONS: &[PlatformVersion] = + &[PLATFORM_V1, PLATFORM_V2, PLATFORM_V3, PLATFORM_V4]; #[cfg(feature = "mock-versions")] // We use OnceLock to be able to modify the version mocks @@ -45,7 +51,9 @@ pub static PLATFORM_TEST_VERSIONS: OnceLock> = OnceLock::ne #[cfg(feature = "mock-versions")] const DEFAULT_PLATFORM_TEST_VERSIONS: &[PlatformVersion] = &[TEST_PLATFORM_V2, TEST_PLATFORM_V3]; -pub const LATEST_PLATFORM_VERSION: &PlatformVersion = &PLATFORM_V1; +pub const LATEST_PLATFORM_VERSION: &PlatformVersion = &PLATFORM_V4; + +pub const DESIRED_PLATFORM_VERSION: &PlatformVersion = LATEST_PLATFORM_VERSION; impl PlatformVersion { pub fn get<'a>(version: ProtocolVersion) -> Result<&'a Self, PlatformVersionError> { @@ -76,6 +84,26 @@ impl PlatformVersion { } } + pub fn get_optional<'a>(version: ProtocolVersion) -> Option<&'a Self> { + if version > 0 { + #[cfg(feature = "mock-versions")] + { + if version >> TEST_PROTOCOL_VERSION_SHIFT_BYTES > 0 { + let test_version = version - (1 << TEST_PROTOCOL_VERSION_SHIFT_BYTES); + + // Init default set of test versions + let versions = PLATFORM_TEST_VERSIONS + .get_or_init(|| vec![TEST_PLATFORM_V2, TEST_PLATFORM_V3]); + + return versions.get(test_version as usize - 2); + } + } + PLATFORM_VERSIONS.get(version as usize - 1) + } else { + None + } + } + pub fn get_version_or_latest<'a>( version: Option, ) -> Result<&'a Self, PlatformVersionError> { @@ -124,6 +152,10 @@ impl PlatformVersion { .expect("expected to have a platform version") } + pub fn desired<'a>() -> &'a Self { + DESIRED_PLATFORM_VERSION + } + #[cfg(feature = "mock-versions")] /// Set mock versions for testing pub fn replace_test_versions(versions: Vec) { diff --git a/packages/rs-platform-version/src/version/v1.rs b/packages/rs-platform-version/src/version/v1.rs index bc99fdcd41..c762c864b2 100644 --- a/packages/rs-platform-version/src/version/v1.rs +++ b/packages/rs-platform-version/src/version/v1.rs @@ -1,3 +1,4 @@ +use crate::version::consensus_versions::ConsensusVersions; use crate::version::contracts::SystemDataContractVersions; use crate::version::dpp_versions::{ AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, @@ -6,8 +7,9 @@ use crate::version::dpp_versions::{ DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, - IdentityKeyTypeMethodVersions, IdentityTransitionAssetLockVersions, IdentityTransitionVersions, - IdentityVersions, JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, VotingValidationVersions, VotingVersions, @@ -25,13 +27,13 @@ use crate::version::drive_abci_versions::{ DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, - DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, DriveAbciStateTransitionCommonValidationVersions, DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, - DriveAbciVotingMethodVersions, PenaltyAmounts, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, }; use crate::version::drive_versions::{ DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, @@ -126,7 +128,8 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { get_epoch_start_block_core_height: 0, get_epoch_start_block_height: 0, get_first_epoch_start_block_info_between_epochs: 0, - get_epoch_proposers: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, get_epochs_proposer_block_count: 0, add_update_pending_epoch_refunds_operations: 0, is_epochs_proposers_tree_empty: 0, @@ -138,9 +141,9 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { add_update_pending_epoch_refunds_operations: 0, }, storage_fee_distribution_pool: - DriveCreditPoolStorageFeeDistributionPoolMethodVersions { - get_storage_fees_from_distribution_pool: 0, - }, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { get_unpaid_epoch_index: 0, }, @@ -166,7 +169,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { calculate_total_credits_balance: 0, }, document: DriveDocumentMethodVersions { - query: DriveDocumentQueryMethodVersions { query_documents: 0 }, + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, delete: DriveDocumentDeleteMethodVersions { add_estimation_costs_for_remove_document_to_primary_storage: 0, delete_document_for_contract: 0, @@ -241,6 +244,8 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { remove_contested_resource_vote_poll_votes_operations: 0, remove_contested_resource_vote_poll_documents_operations: 0, remove_contested_resource_vote_poll_contenders_operations: 0, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, }, setup: DriveVoteSetupMethodVersions { add_initial_vote_tree_main_structure_operations: 0, @@ -314,6 +319,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { verify_identity_nonce: 0, verify_identity_contract_nonce: 0, verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, }, single_document: DriveVerifySingleDocumentMethodVersions { verify_proof: 0, @@ -321,6 +327,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { }, system: DriveVerifySystemMethodVersions { verify_epoch_infos: 0, + verify_epoch_proposers: 0, verify_elements: 0, verify_total_credits_in_system: 0, verify_upgrade_state: 0, @@ -407,14 +414,14 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { replace_key_in_storage: 0, }, insert_key_hash_identity_reference: - DriveIdentityKeyHashesToIdentityInsertMethodVersions { - add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, - add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, - insert_non_unique_public_key_hash_reference_to_identity: 0, - insert_reference_to_non_unique_key: 0, - insert_reference_to_unique_key: 0, - insert_unique_public_key_hash_reference_to_identity: 0, - }, + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, }, update: DriveIdentityUpdateMethodVersions { update_identity_revision: 0, @@ -458,7 +465,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { withdrawals: DriveIdentityWithdrawalMethodVersions { document: DriveIdentityWithdrawalDocumentMethodVersions { fetch_oldest_withdrawal_documents_by_status: 0, - find_up_to_100_withdrawal_documents_by_status_and_transaction_indices: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, }, transaction: DriveIdentityWithdrawalTransactionMethodVersions { index: DriveIdentityWithdrawalTransactionIndexMethodVersions { @@ -468,8 +475,11 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { add_enqueue_untied_withdrawal_transaction_operations: 0, dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, }, }, + calculate_current_withdrawal_limit: 0, }, }, platform_system: DrivePlatformSystemMethodVersions { @@ -494,26 +504,26 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { }, }, convert_to_high_level_operations: - DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { - data_contract_create_transition: 0, - data_contract_update_transition: 0, - document_create_transition: 0, - document_delete_transition: 0, - document_purchase_transition: 0, - document_replace_transition: 0, - document_transfer_transition: 0, - document_update_price_transition: 0, - documents_batch_transition: 0, - identity_create_transition: 0, - identity_credit_transfer_transition: 0, - identity_credit_withdrawal_transition: 0, - identity_top_up_transition: 0, - identity_update_transition: 0, - masternode_vote_transition: 0, - bump_identity_data_contract_nonce: 0, - bump_identity_nonce: 0, - partially_use_asset_lock: 0, - }, + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, }, batch_operations: DriveBatchOperationsMethodVersion { convert_drive_operations_to_grove_operations: 0, @@ -540,6 +550,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { grove_insert_empty_tree: 0, grove_insert_empty_sum_tree: 0, grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, grove_clear: 0, grove_delete: 0, grove_get_raw: 0, @@ -561,11 +572,14 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { batch_insert_empty_tree: 0, batch_insert_empty_tree_if_not_exists: 0, batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, batch_insert: 0, batch_insert_if_not_exists: 0, batch_insert_if_changed_value: 0, batch_replace: 0, batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, batch_remove_raw: 0, batch_delete_up_tree_while_empty: 0, batch_refresh_reference: 0, @@ -600,6 +614,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { check_tx: 0, run_block_proposal: 0, finalize_block_proposal: 0, + consensus_params_update: 0, }, initialization: DriveAbciInitializationMethodVersions { initial_core_height_and_time: 0, @@ -612,7 +627,8 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { get_voter_identity_key: 0, get_operator_identity_keys: 0, - get_owner_identity_key: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, get_voter_identifier_from_masternode_list_item: 0, get_operator_identifier_from_masternode_list_item: 0, create_operator_identity: 0, @@ -628,6 +644,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { check_for_desired_protocol_upgrade: 0, upgrade_protocol_version_on_epoch_change: 0, + perform_events_on_first_block_of_protocol_change: None, protocol_version_upgrade_percentage_needed: 75, }, block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { @@ -661,7 +678,9 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { fetch_transactions_block_inclusion_status: 0, pool_withdrawals_into_transactions_queue: 0, update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 0, append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, }, voting: DriveAbciVotingMethodVersions { keep_record_of_finished_contested_resource_vote_poll: 0, @@ -741,25 +760,26 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { transform_into_action: 0, }, identity_credit_withdrawal_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, identity_credit_transfer_state_transition: - DriveAbciStateTransitionValidationVersion { - basic_structure: Some(0), - advanced_structure: None, - identity_signatures: None, - advanced_minimum_balance_pre_check: Some(0), - nonce: Some(0), - state: 0, - transform_into_action: 0, - }, + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { basic_structure: None, advanced_structure: Some(0), @@ -788,38 +808,39 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { transform_into_action: 0, }, documents_batch_state_transition: - DriveAbciDocumentsStateTransitionValidationVersions { - balance_pre_check: 0, - basic_structure: 0, - advanced_structure: 0, - state: 0, - revision: 0, - transform_into_action: 0, - data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { - bindings: 0, - triggers: DriveAbciValidationDataTriggerVersions { - create_contact_request_data_trigger: 0, - create_domain_data_trigger: 0, - create_identity_data_trigger: 0, - create_feature_flag_data_trigger: 0, - create_masternode_reward_shares_data_trigger: 0, - delete_withdrawal_data_trigger: 0, - reject_data_trigger: 0, - }, + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, }, - document_create_transition_structure_validation: 0, - document_delete_transition_structure_validation: 0, - document_replace_transition_structure_validation: 0, - document_transfer_transition_structure_validation: 0, - document_purchase_transition_structure_validation: 0, - document_update_price_transition_structure_validation: 0, - document_create_transition_state_validation: 0, - document_delete_transition_state_validation: 0, - document_replace_transition_state_validation: 0, - document_transfer_transition_state_validation: 0, - document_purchase_transition_state_validation: 0, - document_update_price_transition_state_validation: 0, }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 0, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, }, process_state_transition: 0, state_transition_to_execution_event_for_check_tx: 0, @@ -834,6 +855,10 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { maximum_contenders_to_consider: 100, }, }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 0, + }, query: DriveAbciQueryVersions { max_returned_elements: 100, response_metadata: 0, @@ -885,6 +910,11 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, balance_and_revision: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -896,6 +926,18 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { default_current_version: 0, }, }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, data_contract_based_queries: DriveAbciQueryDataContractVersions { data_contract: FeatureVersionBounds { min_version: 0, @@ -956,6 +998,16 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { max_version: 0, default_current_version: 0, }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, path_elements: FeatureVersionBounds { min_version: 0, max_version: 0, @@ -994,7 +1046,8 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { unique_index_limit: 10, }, voting: VotingValidationVersions { - allow_other_contenders_time_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 604_800_000, // 1 week in ms for v1 (changes in v2) votes_allowed_per_masternode: 5, }, }, @@ -1126,12 +1179,15 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { max_public_keys_in_creation: 6, asset_locks: IdentityTransitionAssetLockVersions { required_asset_lock_duff_balance_for_processing_start_for_identity_create: - 200000, + 200000, required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: - 50000, + 50000, validate_asset_lock_transaction_structure: 0, validate_instant_asset_lock_proof_structure: 0, }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 0, + }, }, }, contract_versions: ContractVersions { @@ -1204,6 +1260,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { hash: 0, get_raw_for_contract: 0, get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, }, }, identity_versions: IdentityVersions { @@ -1215,7 +1272,8 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { }, }, voting_versions: VotingVersions { - default_vote_poll_time_duration_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 1_209_600_000, //2 weeks contested_document_vote_poll_stored_info_version: 0, }, asset_lock_versions: AssetLockVersions { @@ -1227,6 +1285,7 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { }, methods: DPPMethodVersions { epoch_core_reward_credits_for_distribution: 0, + daily_withdrawal_limit: 0, }, }, system_data_contracts: SystemDataContractVersions { @@ -1242,5 +1301,11 @@ pub const PLATFORM_V1: PlatformVersion = PlatformVersion { max_field_value_size: 5120, //5 KiB max_state_transition_size: 20480, //20 KiB max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 0, }, }; diff --git a/packages/rs-platform-version/src/version/v2.rs b/packages/rs-platform-version/src/version/v2.rs new file mode 100644 index 0000000000..7df825fb32 --- /dev/null +++ b/packages/rs-platform-version/src/version/v2.rs @@ -0,0 +1,1311 @@ +use crate::version::consensus_versions::ConsensusVersions; +use crate::version::contracts::SystemDataContractVersions; +use crate::version::dpp_versions::{ + AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, + DPPVersion, DataContractMethodVersions, DataContractValidationVersions, + DocumentFeatureVersionBounds, DocumentMethodVersions, DocumentTransitionVersions, + DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, + DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, + DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, + StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, + VotingValidationVersions, VotingVersions, +}; +use crate::version::drive_abci_versions::{ + DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, + DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, + DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, + DriveAbciCoreInstantSendLockMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciFeePoolOutwardsDistributionMethodVersions, + DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, + DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, + DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, + DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, + DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciStateTransitionCommonValidationVersions, + DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, + DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, + DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, + DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, +}; +use crate::version::drive_versions::{ + DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, + DriveContractApplyMethodVersions, DriveContractCostsMethodVersions, + DriveContractGetMethodVersions, DriveContractInsertMethodVersions, DriveContractMethodVersions, + DriveContractProveMethodVersions, DriveContractUpdateMethodVersions, + DriveCreditPoolEpochsMethodVersions, DriveCreditPoolMethodVersions, + DriveCreditPoolPendingEpochRefundsMethodVersions, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions, + DriveCreditPoolUnpaidEpochMethodVersions, DriveDataContractOperationMethodVersions, + DriveDocumentDeleteMethodVersions, DriveDocumentEstimationCostsMethodVersions, + DriveDocumentIndexUniquenessMethodVersions, DriveDocumentInsertContestedMethodVersions, + DriveDocumentInsertMethodVersions, DriveDocumentMethodVersions, + DriveDocumentQueryMethodVersions, DriveDocumentUpdateMethodVersions, + DriveEstimatedCostsMethodVersions, DriveFeesMethodVersions, DriveFetchMethodVersions, + DriveGroveApplyMethodVersions, DriveGroveBasicMethodVersions, DriveGroveBatchMethodVersions, + DriveGroveCostMethodVersions, DriveGroveMethodVersions, + DriveIdentityContractInfoMethodVersions, DriveIdentityCostEstimationMethodVersions, + DriveIdentityFetchAttributesMethodVersions, DriveIdentityFetchFullIdentityMethodVersions, + DriveIdentityFetchMethodVersions, DriveIdentityFetchPartialIdentityMethodVersions, + DriveIdentityFetchPublicKeyHashesMethodVersions, DriveIdentityInsertMethodVersions, + DriveIdentityKeyHashesToIdentityInsertMethodVersions, DriveIdentityKeysFetchMethodVersions, + DriveIdentityKeysInsertMethodVersions, DriveIdentityKeysMethodVersions, + DriveIdentityKeysProveMethodVersions, DriveIdentityMethodVersions, + DriveIdentityProveMethodVersions, DriveIdentityUpdateMethodVersions, + DriveIdentityWithdrawalDocumentMethodVersions, DriveIdentityWithdrawalMethodVersions, + DriveIdentityWithdrawalTransactionIndexMethodVersions, + DriveIdentityWithdrawalTransactionMethodVersions, + DriveIdentityWithdrawalTransactionQueueMethodVersions, DriveInitializationMethodVersions, + DriveMethodVersions, DriveOperationsMethodVersion, DrivePlatformStateMethodVersions, + DrivePlatformSystemMethodVersions, DrivePrefundedSpecializedMethodVersions, + DriveProtocolUpgradeVersions, DriveProveMethodVersions, + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions, + DriveStateTransitionMethodVersions, DriveStateTransitionOperationMethodVersions, + DriveStructureVersion, DriveSystemEstimationCostsMethodVersions, + DriveVerifyContractMethodVersions, DriveVerifyDocumentMethodVersions, + DriveVerifyIdentityMethodVersions, DriveVerifyMethodVersions, + DriveVerifySingleDocumentMethodVersions, DriveVerifyStateTransitionMethodVersions, + DriveVerifySystemMethodVersions, DriveVerifyVoteMethodVersions, DriveVersion, + DriveVoteCleanupMethodVersions, DriveVoteContestedResourceInsertMethodVersions, + DriveVoteFetchMethodVersions, DriveVoteInsertMethodVersions, DriveVoteMethodVersions, + DriveVoteSetupMethodVersions, DriveVoteStorageFormMethodVersions, +}; +use crate::version::fee::v1::FEE_VERSION1; +use crate::version::limits::SystemLimits; +use crate::version::protocol_version::{FeatureVersionBounds, PlatformVersion}; +use crate::version::{PlatformArchitectureVersion, ProtocolVersion}; +use grovedb_version::version::v1::GROVE_V1; + +pub const PROTOCOL_VERSION_2: ProtocolVersion = 2; + +pub const PLATFORM_V2: PlatformVersion = PlatformVersion { + protocol_version: 2, + proofs: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + drive: DriveVersion { + structure: DriveStructureVersion { + document_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + pools: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DriveMethodVersions { + initialization: DriveInitializationMethodVersions { + create_initial_state_structure: 0, + }, + credit_pools: DriveCreditPoolMethodVersions { + epochs: DriveCreditPoolEpochsMethodVersions { + get_epochs_infos: 0, + get_epochs_protocol_versions: 0, + prove_epochs_infos: 0, + get_epoch_fee_multiplier: 0, + get_epoch_processing_credits_for_distribution: 0, + get_epoch_storage_credits_for_distribution: 0, + get_epoch_total_credits_for_distribution: 0, + get_storage_credits_for_distribution_for_epochs_in_range: 0, + get_epoch_start_time: 0, + get_epoch_start_block_core_height: 0, + get_epoch_start_block_height: 0, + get_first_epoch_start_block_info_between_epochs: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, + get_epochs_proposer_block_count: 0, + add_update_pending_epoch_refunds_operations: 0, + is_epochs_proposers_tree_empty: 0, + }, + pending_epoch_refunds: DriveCreditPoolPendingEpochRefundsMethodVersions { + add_delete_pending_epoch_refunds_except_specified: 0, + fetch_and_add_pending_epoch_refunds_to_collection: 0, + fetch_pending_epoch_refunds: 0, + add_update_pending_epoch_refunds_operations: 0, + }, + storage_fee_distribution_pool: + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, + unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { + get_unpaid_epoch_index: 0, + }, + }, + protocol_upgrade: DriveProtocolUpgradeVersions { + clear_version_information: 0, + fetch_versions_with_counter: 0, + fetch_proved_versions_with_counter: 0, + fetch_validator_version_votes: 0, + fetch_proved_validator_version_votes: 0, + remove_validators_proposed_app_versions: 0, + update_validator_proposed_app_version: 0, + }, + prove: DriveProveMethodVersions { + prove_elements: 0, + prove_multiple_state_transition_results: 0, + }, + balances: DriveBalancesMethodVersions { + add_to_system_credits: 0, + add_to_system_credits_operations: 0, + remove_from_system_credits: 0, + remove_from_system_credits_operations: 0, + calculate_total_credits_balance: 0, + }, + document: DriveDocumentMethodVersions { + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, + delete: DriveDocumentDeleteMethodVersions { + add_estimation_costs_for_remove_document_to_primary_storage: 0, + delete_document_for_contract: 0, + delete_document_for_contract_id: 0, + delete_document_for_contract_apply_and_add_to_operations: 0, + remove_document_from_primary_storage: 0, + remove_reference_for_index_level_for_contract_operations: 0, + remove_indices_for_index_level_for_contract_operations: 0, + remove_indices_for_top_index_level_for_contract_operations: 0, + delete_document_for_contract_id_with_named_type_operations: 0, + delete_document_for_contract_with_named_type_operations: 0, + delete_document_for_contract_operations: 0, + }, + insert: DriveDocumentInsertMethodVersions { + add_document: 0, + add_document_for_contract: 0, + add_document_for_contract_apply_and_add_to_operations: 0, + add_document_for_contract_operations: 0, + add_document_to_primary_storage: 0, + add_indices_for_index_level_for_contract_operations: 0, + add_indices_for_top_index_level_for_contract_operations: 0, + add_reference_for_index_level_for_contract_operations: 0, + }, + insert_contested: DriveDocumentInsertContestedMethodVersions { + add_contested_document: 0, + add_contested_document_for_contract: 0, + add_contested_document_for_contract_apply_and_add_to_operations: 0, + add_contested_document_for_contract_operations: 0, + add_contested_document_to_primary_storage: 0, + add_contested_indices_for_contract_operations: 0, + add_contested_reference_and_vote_subtree_to_document_operations: 0, + add_contested_vote_subtree_for_non_identities_operations: 0, + }, + update: DriveDocumentUpdateMethodVersions { + add_update_multiple_documents_operations: 0, + update_document_for_contract: 0, + update_document_for_contract_apply_and_add_to_operations: 0, + update_document_for_contract_id: 0, + update_document_for_contract_operations: 0, + update_document_with_serialization_for_contract: 0, + update_serialized_document_for_contract: 0, + }, + estimation_costs: DriveDocumentEstimationCostsMethodVersions { + add_estimation_costs_for_add_document_to_primary_storage: 0, + add_estimation_costs_for_add_contested_document_to_primary_storage: 0, + stateless_delete_of_non_tree_for_costs: 0, + }, + index_uniqueness: DriveDocumentIndexUniquenessMethodVersions { + validate_document_uniqueness: 0, + validate_document_create_transition_action_uniqueness: 0, + validate_document_replace_transition_action_uniqueness: 0, + validate_document_transfer_transition_action_uniqueness: 0, + validate_document_purchase_transition_action_uniqueness: 0, + validate_document_update_price_transition_action_uniqueness: 0, + validate_uniqueness_of_data: 0, + }, + }, + vote: DriveVoteMethodVersions { + insert: DriveVoteInsertMethodVersions { + register_identity_vote: 0, + }, + contested_resource_insert: DriveVoteContestedResourceInsertMethodVersions { + register_contested_resource_identity_vote: 0, + insert_stored_info_for_contested_resource_vote_poll: 0, + register_identity_vote: 0, + add_vote_poll_end_date_query_operations: 0, + }, + cleanup: DriveVoteCleanupMethodVersions { + remove_specific_vote_references_given_by_identity: 0, + remove_specific_votes_given_by_identity: 0, + remove_contested_resource_vote_poll_end_date_query_operations: 1, + remove_contested_resource_vote_poll_votes_operations: 0, + remove_contested_resource_vote_poll_documents_operations: 1, + remove_contested_resource_vote_poll_contenders_operations: 1, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, + }, + setup: DriveVoteSetupMethodVersions { + add_initial_vote_tree_main_structure_operations: 0, + }, + storage_form: DriveVoteStorageFormMethodVersions { + resolve_with_contract: 0, + }, + fetch: DriveVoteFetchMethodVersions { + fetch_identities_voting_for_contenders: 0, + fetch_contested_document_vote_poll_stored_info: 0, + fetch_identity_contested_resource_vote: 0, + }, + }, + contract: DriveContractMethodVersions { + prove: DriveContractProveMethodVersions { + prove_contract: 0, + prove_contract_history: 0, + prove_contracts: 0, + }, + apply: DriveContractApplyMethodVersions { + apply_contract: 0, + apply_contract_with_serialization: 0, + }, + insert: DriveContractInsertMethodVersions { + add_contract_to_storage: 0, + insert_contract: 0, + }, + update: DriveContractUpdateMethodVersions { update_contract: 0 }, + costs: DriveContractCostsMethodVersions { + add_estimation_costs_for_contract_insertion: 0, + }, + get: DriveContractGetMethodVersions { + fetch_contract: 0, + fetch_contract_with_history: 0, + get_cached_contract_with_fetch_info: 0, + get_contract_with_fetch_info: 0, + get_contracts_with_fetch_info: 0, + }, + }, + fees: DriveFeesMethodVersions { calculate_fee: 0 }, + estimated_costs: DriveEstimatedCostsMethodVersions { + add_estimation_costs_for_levels_up_to_contract: 0, + add_estimation_costs_for_levels_up_to_contract_document_type_excluded: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded: 0, + }, + asset_lock: DriveAssetLockMethodVersions { + add_asset_lock_outpoint: 0, + add_estimation_costs_for_adding_asset_lock: 0, + fetch_asset_lock_outpoint_info: 0, + }, + verify: DriveVerifyMethodVersions { + contract: DriveVerifyContractMethodVersions { + verify_contract: 0, + verify_contract_history: 0, + }, + document: DriveVerifyDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + verify_start_at_document_in_proof: 0, + }, + identity: DriveVerifyIdentityMethodVersions { + verify_full_identities_by_public_key_hashes: 0, + verify_full_identity_by_identity_id: 0, + verify_full_identity_by_public_key_hash: 0, + verify_identity_balance_for_identity_id: 0, + verify_identity_balances_for_identity_ids: 0, + verify_identity_id_by_public_key_hash: 0, + verify_identity_ids_by_public_key_hashes: 0, + verify_identity_keys_by_identity_id: 0, + verify_identity_nonce: 0, + verify_identity_contract_nonce: 0, + verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, + }, + single_document: DriveVerifySingleDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + }, + system: DriveVerifySystemMethodVersions { + verify_epoch_infos: 0, + verify_epoch_proposers: 0, + verify_elements: 0, + verify_total_credits_in_system: 0, + verify_upgrade_state: 0, + verify_upgrade_vote_status: 0, + }, + voting: DriveVerifyVoteMethodVersions { + verify_masternode_vote: 0, + verify_start_at_contender_in_proof: 0, + verify_vote_poll_votes_proof: 0, + verify_identity_votes_given_proof: 0, + verify_vote_poll_vote_state_proof: 0, + verify_contests_proof: 0, + verify_vote_polls_by_end_date_proof: 0, + verify_specialized_balance: 0, + }, + state_transition: DriveVerifyStateTransitionMethodVersions { + verify_state_transition_was_executed_with_proof: 0, + }, + }, + identity: DriveIdentityMethodVersions { + fetch: DriveIdentityFetchMethodVersions { + public_key_hashes: DriveIdentityFetchPublicKeyHashesMethodVersions { + fetch_full_identities_by_unique_public_key_hashes: 0, + fetch_full_identity_by_unique_public_key_hash: 0, + fetch_identity_id_by_unique_public_key_hash: 0, + fetch_identity_ids_by_non_unique_public_key_hash: 0, + fetch_identity_ids_by_unique_public_key_hashes: 0, + fetch_serialized_full_identity_by_unique_public_key_hash: 0, + has_any_of_unique_public_key_hashes: 0, + has_non_unique_public_key_hash: 0, + has_non_unique_public_key_hash_already_for_identity: 0, + has_unique_public_key_hash: 0, + }, + attributes: DriveIdentityFetchAttributesMethodVersions { + revision: 0, + nonce: 0, + identity_contract_nonce: 0, + balance: 0, + balance_include_debt: 0, + negative_balance: 0, + }, + partial_identity: DriveIdentityFetchPartialIdentityMethodVersions { + fetch_identity_revision_with_keys: 0, + fetch_identity_balance_with_keys: 0, + fetch_identity_balance_with_keys_and_revision: 0, + fetch_identity_with_balance: 0, + fetch_identity_keys: 0, + }, + full_identity: DriveIdentityFetchFullIdentityMethodVersions { + fetch_full_identity: Some(0), + fetch_full_identities: Some(0), + }, + }, + prove: DriveIdentityProveMethodVersions { + full_identity: 0, + full_identities: 0, + identity_nonce: 0, + identity_contract_nonce: 0, + identities_contract_keys: 0, + prove_full_identities_by_unique_public_key_hashes: 0, + prove_full_identity_by_unique_public_key_hash: 0, + prove_identity_id_by_unique_public_key_hash: 0, + prove_identity_ids_by_unique_public_key_hashes: 0, + }, + keys: DriveIdentityKeysMethodVersions { + fetch: DriveIdentityKeysFetchMethodVersions { + fetch_all_current_identity_keys: 0, + fetch_all_identity_keys: 0, + fetch_identities_all_keys: 0, + fetch_identity_keys: 0, + fetch_identities_contract_keys: 0, + }, + prove: DriveIdentityKeysProveMethodVersions { + prove_identities_all_keys: 0, + prove_identity_keys: 0, + }, + insert: DriveIdentityKeysInsertMethodVersions { + create_key_tree_with_keys: 0, + create_new_identity_key_query_trees: 0, + insert_key_searchable_references: 0, + insert_key_to_storage: 0, + insert_new_non_unique_key: 0, + insert_new_unique_key: 0, + replace_key_in_storage: 0, + }, + insert_key_hash_identity_reference: + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, + }, + update: DriveIdentityUpdateMethodVersions { + update_identity_revision: 0, + merge_identity_nonce: 0, + update_identity_negative_credit_operation: 0, + initialize_identity_revision: 0, + disable_identity_keys: 0, + re_enable_identity_keys: 0, + add_new_non_unique_keys_to_identity: 0, + add_new_unique_keys_to_identity: 0, + add_new_keys_to_identity: 0, + insert_identity_balance: 0, + initialize_negative_identity_balance: 0, + add_to_identity_balance: 0, + add_to_previous_balance: 0, + apply_balance_change_from_fee_to_identity: 0, + remove_from_identity_balance: 0, + refresh_identity_key_reference_operations: 0, + }, + insert: DriveIdentityInsertMethodVersions { + add_new_identity: 0, + }, + contract_info: DriveIdentityContractInfoMethodVersions { + add_potential_contract_info_for_contract_bounded_key: 0, + refresh_potential_contract_info_key_references: 0, + merge_identity_contract_nonce: 0, + }, + cost_estimation: DriveIdentityCostEstimationMethodVersions { + for_authentication_keys_security_level_in_key_reference_tree: 0, + for_balances: 0, + for_contract_info: 0, + for_contract_info_group: 0, + for_contract_info_group_keys: 0, + for_contract_info_group_key_purpose: 0, + for_keys_for_identity_id: 0, + for_negative_credit: 0, + for_purpose_in_key_reference_tree: 0, + for_root_key_reference_tree: 0, + for_update_revision: 0, + }, + withdrawals: DriveIdentityWithdrawalMethodVersions { + document: DriveIdentityWithdrawalDocumentMethodVersions { + fetch_oldest_withdrawal_documents_by_status: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, + }, + transaction: DriveIdentityWithdrawalTransactionMethodVersions { + index: DriveIdentityWithdrawalTransactionIndexMethodVersions { + fetch_next_withdrawal_transaction_index: 0, + add_update_next_withdrawal_transaction_index_operation: 0, + }, + queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { + add_enqueue_untied_withdrawal_transaction_operations: 0, + dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, + }, + }, + calculate_current_withdrawal_limit: 0, + }, + }, + platform_system: DrivePlatformSystemMethodVersions { + estimation_costs: DriveSystemEstimationCostsMethodVersions { + for_total_system_credits_update: 0, + }, + }, + operations: DriveOperationsMethodVersion { + rollback_transaction: 0, + drop_cache: 0, + commit_transaction: 0, + apply_partial_batch_low_level_drive_operations: 0, + apply_partial_batch_grovedb_operations: 0, + apply_batch_low_level_drive_operations: 0, + apply_batch_grovedb_operations: 0, + }, + state_transitions: DriveStateTransitionMethodVersions { + operations: DriveStateTransitionOperationMethodVersions { + finalization_tasks: 0, + contracts: DriveDataContractOperationMethodVersions { + finalization_tasks: 0, + }, + }, + convert_to_high_level_operations: + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, + }, + batch_operations: DriveBatchOperationsMethodVersion { + convert_drive_operations_to_grove_operations: 0, + apply_drive_operations: 0, + }, + platform_state: DrivePlatformStateMethodVersions { + fetch_platform_state_bytes: 0, + store_platform_state_bytes: 0, + }, + fetch: DriveFetchMethodVersions { fetch_elements: 0 }, + prefunded_specialized_balances: DrivePrefundedSpecializedMethodVersions { + fetch_single: 0, + prove_single: 0, + add_prefunded_specialized_balance: 0, + add_prefunded_specialized_balance_operations: 0, + deduct_from_prefunded_specialized_balance: 0, + deduct_from_prefunded_specialized_balance_operations: 0, + estimated_cost_for_prefunded_specialized_balance_update: 0, + }, + }, + grove_methods: DriveGroveMethodVersions { + basic: DriveGroveBasicMethodVersions { + grove_insert: 0, + grove_insert_empty_tree: 0, + grove_insert_empty_sum_tree: 0, + grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, + grove_clear: 0, + grove_delete: 0, + grove_get_raw: 0, + grove_get_raw_optional: 0, + grove_get_raw_value_u64_from_encoded_var_vec: 0, + grove_get: 0, + grove_get_path_query_serialized_results: 0, + grove_get_path_query_serialized_or_sum_results: 0, + grove_get_path_query: 0, + grove_get_path_query_with_optional: 0, + grove_get_raw_path_query_with_optional: 0, + grove_get_raw_path_query: 0, + grove_get_proved_path_query: 0, + grove_get_proved_path_query_with_conditional: 0, + grove_get_sum_tree_total_value: 0, + grove_has_raw: 0, + }, + batch: DriveGroveBatchMethodVersions { + batch_insert_empty_tree: 0, + batch_insert_empty_tree_if_not_exists: 0, + batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, + batch_insert: 0, + batch_insert_if_not_exists: 0, + batch_insert_if_changed_value: 0, + batch_replace: 0, + batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, + batch_remove_raw: 0, + batch_delete_up_tree_while_empty: 0, + batch_refresh_reference: 0, + }, + apply: DriveGroveApplyMethodVersions { + grove_apply_operation: 0, + grove_apply_batch: 0, + grove_apply_partial_batch: 0, + }, + costs: DriveGroveCostMethodVersions { + grove_batch_operations_costs: 0, + }, + }, + grove_version: GROVE_V1, + }, + platform_architecture: PlatformArchitectureVersion { + data_contract_factory_structure_version: 0, + document_factory_structure_version: 0, + }, + drive_abci: DriveAbciVersion { + structs: DriveAbciStructureVersions { + platform_state_structure: 0, + platform_state_for_saving_structure: 0, + state_transition_execution_context: 0, + commit: 0, + masternode: 0, + signature_verification_quorum_set: 0, + }, + methods: DriveAbciMethodVersions { + engine: DriveAbciEngineMethodVersions { + init_chain: 0, + check_tx: 0, + run_block_proposal: 0, + finalize_block_proposal: 0, + consensus_params_update: 0, + }, + initialization: DriveAbciInitializationMethodVersions { + initial_core_height_and_time: 0, + create_genesis_state: 0, + }, + core_based_updates: DriveAbciCoreBasedUpdatesMethodVersions { + update_core_info: 0, + update_masternode_list: 0, + update_quorum_info: 0, + masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { + get_voter_identity_key: 0, + get_operator_identity_keys: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, + get_voter_identifier_from_masternode_list_item: 0, + get_operator_identifier_from_masternode_list_item: 0, + create_operator_identity: 0, + create_owner_identity: 0, + create_voter_identity: 0, + disable_identity_keys: 0, + update_masternode_identities: 0, + update_operator_identity: 0, + update_owner_withdrawal_address: 0, + update_voter_identity: 0, + }, + }, + protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { + check_for_desired_protocol_upgrade: 0, + upgrade_protocol_version_on_epoch_change: 0, + perform_events_on_first_block_of_protocol_change: None, + protocol_version_upgrade_percentage_needed: 75, + }, + block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { + add_process_epoch_change_operations: 0, + process_block_fees: 0, + }, + core_chain_lock: DriveAbciCoreChainLockMethodVersionsAndConstants { + choose_quorum: 0, + verify_chain_lock: 0, + verify_chain_lock_locally: 0, + verify_chain_lock_through_core: 0, + make_sure_core_is_synced_to_chain_lock: 0, + recent_block_count_amount: 2, + }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, + fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { + add_distribute_block_fees_into_pools_operations: 0, + add_distribute_storage_fee_to_epochs_operations: 0, + }, + fee_pool_outwards_distribution: DriveAbciFeePoolOutwardsDistributionMethodVersions { + add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations: 0, + add_epoch_pool_to_proposers_payout_operations: 0, + find_oldest_epoch_needing_payment: 0, + fetch_reward_shares_list_for_masternode: 0, + }, + withdrawals: DriveAbciIdentityCreditWithdrawalMethodVersions { + build_untied_withdrawal_transactions_from_documents: 0, + dequeue_and_build_unsigned_withdrawal_transactions: 0, + fetch_transactions_block_inclusion_status: 0, + pool_withdrawals_into_transactions_queue: 0, + update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 0, + append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, + }, + voting: DriveAbciVotingMethodVersions { + keep_record_of_finished_contested_resource_vote_poll: 0, + clean_up_after_vote_poll_end: 0, + clean_up_after_contested_resources_vote_poll_end: 0, + check_for_ended_vote_polls: 0, + tally_votes_for_contested_document_resource_vote_poll: 0, + award_document_to_winner: 0, + delay_vote_poll: 0, + run_dao_platform_events: 0, + remove_votes_for_removed_masternodes: 0, + }, + state_transition_processing: DriveAbciStateTransitionProcessingMethodVersions { + execute_event: 0, + process_raw_state_transitions: 0, + decode_raw_state_transitions: 0, + validate_fees_of_event: 0, + }, + epoch: DriveAbciEpochMethodVersions { + gather_epoch_info: 0, + get_genesis_time: 0, + }, + block_start: DriveAbciBlockStartMethodVersions { + clear_drive_block_cache: 0, + }, + block_end: DriveAbciBlockEndMethodVersions { + update_state_cache: 0, + update_drive_cache: 0, + validator_set_update: 0, + }, + platform_state_storage: DriveAbciPlatformStateStorageMethodVersions { + fetch_platform_state: 0, + store_platform_state: 0, + }, + }, + validation_and_processing: DriveAbciValidationVersions { + state_transitions: DriveAbciStateTransitionValidationVersions { + common_validation_methods: DriveAbciStateTransitionCommonValidationVersions { + asset_locks: DriveAbciAssetLockValidationVersions { + fetch_asset_lock_transaction_output_sync: 0, + verify_asset_lock_is_not_spent_and_has_enough_balance: 0, + }, + validate_identity_public_key_contract_bounds: 0, + validate_identity_public_key_ids_dont_exist_in_state: 0, + validate_identity_public_key_ids_exist_in_state: 0, + validate_state_transition_identity_signed: 0, + validate_unique_identity_public_key_hashes_in_state: 0, + validate_master_key_uniqueness: 0, + validate_simple_pre_check_balance: 0, + }, + max_asset_lock_usage_attempts: 16, + identity_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_top_up_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, + identity_credit_transfer_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: Some(0), + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + documents_batch_state_transition: + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, + }, + }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 1, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, + }, + process_state_transition: 0, + state_transition_to_execution_event_for_check_tx: 0, + penalties: PenaltyAmounts { + identity_id_not_correct: 50000000, + unique_key_already_present: 10000000, + validation_of_added_keys_structure_failure: 10000000, + validation_of_added_keys_proof_of_possession_failure: 50000000, + }, + event_constants: DriveAbciValidationConstants { + maximum_vote_polls_to_process: 2, + maximum_contenders_to_consider: 100, + }, + }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 0, + }, + query: DriveAbciQueryVersions { + max_returned_elements: 100, + response_metadata: 0, + proofs_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + prefunded_specialized_balances: DriveAbciQueryPrefundedSpecializedBalancesVersions { + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + identity_based_queries: DriveAbciQueryIdentityVersions { + identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_contract_keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_contract_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance_and_revision: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_by_public_key_hash: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + data_contract_based_queries: DriveAbciQueryDataContractVersions { + data_contract: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contract_history: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contracts: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + voting_based_queries: DriveAbciQueryVotingVersions { + vote_polls_by_end_date_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_vote_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_voters_for_identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_identity_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resources: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + system: DriveAbciQuerySystemVersions { + version_upgrade_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + version_upgrade_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + epoch_infos: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + path_elements: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + total_credits_in_platform: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + }, + dpp: DPPVersion { + costs: CostVersions { + signature_verify: 0, + }, + validation: DPPValidationVersions { + json_schema_validator: JsonSchemaValidatorVersions { + new: 0, + validate: 0, + compile: 0, + compile_and_validate: 0, + }, + data_contract: DataContractValidationVersions { + validate: 0, + validate_config_update: 0, + validate_index_definitions: 0, + validate_index_naming_duplicates: 0, + validate_not_defined_properties: 0, + validate_property_definition: 0, + }, + document_type: DocumentTypeValidationVersions { + validate_update: 0, + contested_index_limit: 1, + unique_index_limit: 10, + }, + voting: VotingValidationVersions { + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 2_700_000, //45 minutes + votes_allowed_per_masternode: 5, + }, + }, + state_transition_serialization_versions: StateTransitionSerializationVersions { + identity_public_key_in_creation: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_top_up_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_withdrawal_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_transfer_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + masternode_vote_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + documents_batch_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_base_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_create_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_replace_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_delete_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_transfer_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_update_price_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_purchase_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + state_transition_conversion_versions: StateTransitionConversionVersions { + identity_to_identity_create_transition: 0, + identity_to_identity_top_up_transition: 0, + identity_to_identity_withdrawal_transition: 0, + identity_to_identity_create_transition_with_signer: 0, + }, + state_transition_method_versions: StateTransitionMethodVersions { + public_key_in_creation_methods: PublicKeyInCreationMethodVersions { + from_public_key_signed_with_private_key: 0, + from_public_key_signed_external: 0, + hash: 0, + duplicated_key_ids_witness: 0, + duplicated_keys_witness: 0, + validate_identity_public_keys_structure: 0, + }, + }, + state_transitions: StateTransitionVersions { + documents: DocumentTransitionVersions { + documents_batch_transition: DocumentsBatchTransitionVersions { + validation: DocumentsBatchTransitionValidationVersions { + find_duplicates_by_id: 0, + validate_base_structure: 0, + }, + }, + }, + identities: IdentityTransitionVersions { + max_public_keys_in_creation: 6, + asset_locks: IdentityTransitionAssetLockVersions { + required_asset_lock_duff_balance_for_processing_start_for_identity_create: + 200000, + required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: + 50000, + validate_asset_lock_transaction_structure: 0, + validate_instant_asset_lock_proof_structure: 0, + }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 0, + }, + }, + }, + contract_versions: ContractVersions { + max_serialized_size: 65000, + contract_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_structure_version: 0, + created_data_contract_structure: 0, + config: 0, + methods: DataContractMethodVersions { + validate_document: 0, + validate_update: 0, + schema: 0, + }, + document_type_versions: DocumentTypeVersions { + index_versions: DocumentTypeIndexVersions { + index_levels_from_indices: 0, + }, + class_method_versions: DocumentTypeClassMethodVersions { + try_from_schema: 0, + create_document_types_from_document_schemas: 0, + }, + structure_version: 0, + schema: DocumentTypeSchemaVersions { + enrich_with_base_schema: 0, + find_identifier_and_binary_paths: 0, + validate_max_depth: 0, + max_depth: 256, + recursive_schema_validator_versions: RecursiveSchemaValidatorVersions { + traversal_validator: 0, + }, + validate_schema_compatibility: 0, + }, + methods: DocumentTypeMethodVersions { + create_document_from_data: 0, + create_document_with_prevalidated_properties: 0, + prefunded_voting_balance_for_document: 0, + contested_vote_poll_for_document: 0, + estimated_size: 0, + index_for_types: 0, + max_size: 0, + serialize_value_for_key: 0, + deserialize_value_for_key: 0, + }, + }, + }, + document_versions: DocumentVersions { + document_structure_version: 0, + document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_cbor_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + extended_document_structure_version: 0, + extended_document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_method_versions: DocumentMethodVersions { + is_equal_ignoring_timestamps: 0, + hash: 0, + get_raw_for_contract: 0, + get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, + }, + }, + identity_versions: IdentityVersions { + identity_structure_version: 0, + identity_key_structure_version: 0, + identity_key_type_method_versions: IdentityKeyTypeMethodVersions { + random_public_key_data: 0, + random_public_and_private_key_data: 0, + }, + }, + voting_versions: VotingVersions { + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 1_209_600_000, //2 weeks + contested_document_vote_poll_stored_info_version: 0, + }, + asset_lock_versions: AssetLockVersions { + reduced_asset_lock_value: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DPPMethodVersions { + epoch_core_reward_credits_for_distribution: 0, + daily_withdrawal_limit: 0, + }, + }, + system_data_contracts: SystemDataContractVersions { + withdrawals: 1, + dpns: 1, + dashpay: 1, + masternode_reward_shares: 1, + feature_flags: 1, + }, + fee_version: FEE_VERSION1, + system_limits: SystemLimits { + estimated_contract_max_serialized_size: 16384, + max_field_value_size: 5120, //5 KiB + max_state_transition_size: 20480, //20 KiB + max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 0, + }, +}; diff --git a/packages/rs-platform-version/src/version/v3.rs b/packages/rs-platform-version/src/version/v3.rs new file mode 100644 index 0000000000..609a9a9015 --- /dev/null +++ b/packages/rs-platform-version/src/version/v3.rs @@ -0,0 +1,1319 @@ +use crate::version::consensus_versions::ConsensusVersions; +use crate::version::contracts::SystemDataContractVersions; +use crate::version::dpp_versions::{ + AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, + DPPVersion, DataContractMethodVersions, DataContractValidationVersions, + DocumentFeatureVersionBounds, DocumentMethodVersions, DocumentTransitionVersions, + DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, + DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, + DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, + StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, + VotingValidationVersions, VotingVersions, +}; +use crate::version::drive_abci_versions::{ + DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, + DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, + DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, + DriveAbciCoreInstantSendLockMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciFeePoolOutwardsDistributionMethodVersions, + DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, + DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, + DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, + DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, + DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciStateTransitionCommonValidationVersions, + DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, + DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, + DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, + DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, +}; +use crate::version::drive_versions::{ + DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, + DriveContractApplyMethodVersions, DriveContractCostsMethodVersions, + DriveContractGetMethodVersions, DriveContractInsertMethodVersions, DriveContractMethodVersions, + DriveContractProveMethodVersions, DriveContractUpdateMethodVersions, + DriveCreditPoolEpochsMethodVersions, DriveCreditPoolMethodVersions, + DriveCreditPoolPendingEpochRefundsMethodVersions, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions, + DriveCreditPoolUnpaidEpochMethodVersions, DriveDataContractOperationMethodVersions, + DriveDocumentDeleteMethodVersions, DriveDocumentEstimationCostsMethodVersions, + DriveDocumentIndexUniquenessMethodVersions, DriveDocumentInsertContestedMethodVersions, + DriveDocumentInsertMethodVersions, DriveDocumentMethodVersions, + DriveDocumentQueryMethodVersions, DriveDocumentUpdateMethodVersions, + DriveEstimatedCostsMethodVersions, DriveFeesMethodVersions, DriveFetchMethodVersions, + DriveGroveApplyMethodVersions, DriveGroveBasicMethodVersions, DriveGroveBatchMethodVersions, + DriveGroveCostMethodVersions, DriveGroveMethodVersions, + DriveIdentityContractInfoMethodVersions, DriveIdentityCostEstimationMethodVersions, + DriveIdentityFetchAttributesMethodVersions, DriveIdentityFetchFullIdentityMethodVersions, + DriveIdentityFetchMethodVersions, DriveIdentityFetchPartialIdentityMethodVersions, + DriveIdentityFetchPublicKeyHashesMethodVersions, DriveIdentityInsertMethodVersions, + DriveIdentityKeyHashesToIdentityInsertMethodVersions, DriveIdentityKeysFetchMethodVersions, + DriveIdentityKeysInsertMethodVersions, DriveIdentityKeysMethodVersions, + DriveIdentityKeysProveMethodVersions, DriveIdentityMethodVersions, + DriveIdentityProveMethodVersions, DriveIdentityUpdateMethodVersions, + DriveIdentityWithdrawalDocumentMethodVersions, DriveIdentityWithdrawalMethodVersions, + DriveIdentityWithdrawalTransactionIndexMethodVersions, + DriveIdentityWithdrawalTransactionMethodVersions, + DriveIdentityWithdrawalTransactionQueueMethodVersions, DriveInitializationMethodVersions, + DriveMethodVersions, DriveOperationsMethodVersion, DrivePlatformStateMethodVersions, + DrivePlatformSystemMethodVersions, DrivePrefundedSpecializedMethodVersions, + DriveProtocolUpgradeVersions, DriveProveMethodVersions, + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions, + DriveStateTransitionMethodVersions, DriveStateTransitionOperationMethodVersions, + DriveStructureVersion, DriveSystemEstimationCostsMethodVersions, + DriveVerifyContractMethodVersions, DriveVerifyDocumentMethodVersions, + DriveVerifyIdentityMethodVersions, DriveVerifyMethodVersions, + DriveVerifySingleDocumentMethodVersions, DriveVerifyStateTransitionMethodVersions, + DriveVerifySystemMethodVersions, DriveVerifyVoteMethodVersions, DriveVersion, + DriveVoteCleanupMethodVersions, DriveVoteContestedResourceInsertMethodVersions, + DriveVoteFetchMethodVersions, DriveVoteInsertMethodVersions, DriveVoteMethodVersions, + DriveVoteSetupMethodVersions, DriveVoteStorageFormMethodVersions, +}; +use crate::version::fee::v1::FEE_VERSION1; +use crate::version::limits::SystemLimits; +use crate::version::protocol_version::{FeatureVersionBounds, PlatformVersion}; +use crate::version::{PlatformArchitectureVersion, ProtocolVersion}; +use grovedb_version::version::v1::GROVE_V1; + +pub const PROTOCOL_VERSION_3: ProtocolVersion = 3; + +/// This version introduces tenderdash_consensus_version as 1. +/// We did this because of the issues in distribution for Evonodes. +/// We are setting the requirement to 51% voting for this upgrade for it to take effect. +/// This was done directly in ABCI. +/// If we get between 51 and 67% we will have a chain stall +/// However the chain will come back up as soon as enough have upgraded. + +pub const PLATFORM_V3: PlatformVersion = PlatformVersion { + protocol_version: 3, + proofs: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + drive: DriveVersion { + structure: DriveStructureVersion { + document_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + pools: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DriveMethodVersions { + initialization: DriveInitializationMethodVersions { + create_initial_state_structure: 0, + }, + credit_pools: DriveCreditPoolMethodVersions { + epochs: DriveCreditPoolEpochsMethodVersions { + get_epochs_infos: 0, + get_epochs_protocol_versions: 0, + prove_epochs_infos: 0, + get_epoch_fee_multiplier: 0, + get_epoch_processing_credits_for_distribution: 0, + get_epoch_storage_credits_for_distribution: 0, + get_epoch_total_credits_for_distribution: 0, + get_storage_credits_for_distribution_for_epochs_in_range: 0, + get_epoch_start_time: 0, + get_epoch_start_block_core_height: 0, + get_epoch_start_block_height: 0, + get_first_epoch_start_block_info_between_epochs: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, + get_epochs_proposer_block_count: 0, + add_update_pending_epoch_refunds_operations: 0, + is_epochs_proposers_tree_empty: 0, + }, + pending_epoch_refunds: DriveCreditPoolPendingEpochRefundsMethodVersions { + add_delete_pending_epoch_refunds_except_specified: 0, + fetch_and_add_pending_epoch_refunds_to_collection: 0, + fetch_pending_epoch_refunds: 0, + add_update_pending_epoch_refunds_operations: 0, + }, + storage_fee_distribution_pool: + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, + unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { + get_unpaid_epoch_index: 0, + }, + }, + protocol_upgrade: DriveProtocolUpgradeVersions { + clear_version_information: 0, + fetch_versions_with_counter: 0, + fetch_proved_versions_with_counter: 0, + fetch_validator_version_votes: 0, + fetch_proved_validator_version_votes: 0, + remove_validators_proposed_app_versions: 0, + update_validator_proposed_app_version: 0, + }, + prove: DriveProveMethodVersions { + prove_elements: 0, + prove_multiple_state_transition_results: 0, + }, + balances: DriveBalancesMethodVersions { + add_to_system_credits: 0, + add_to_system_credits_operations: 0, + remove_from_system_credits: 0, + remove_from_system_credits_operations: 0, + calculate_total_credits_balance: 0, + }, + document: DriveDocumentMethodVersions { + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, + delete: DriveDocumentDeleteMethodVersions { + add_estimation_costs_for_remove_document_to_primary_storage: 0, + delete_document_for_contract: 0, + delete_document_for_contract_id: 0, + delete_document_for_contract_apply_and_add_to_operations: 0, + remove_document_from_primary_storage: 0, + remove_reference_for_index_level_for_contract_operations: 0, + remove_indices_for_index_level_for_contract_operations: 0, + remove_indices_for_top_index_level_for_contract_operations: 0, + delete_document_for_contract_id_with_named_type_operations: 0, + delete_document_for_contract_with_named_type_operations: 0, + delete_document_for_contract_operations: 0, + }, + insert: DriveDocumentInsertMethodVersions { + add_document: 0, + add_document_for_contract: 0, + add_document_for_contract_apply_and_add_to_operations: 0, + add_document_for_contract_operations: 0, + add_document_to_primary_storage: 0, + add_indices_for_index_level_for_contract_operations: 0, + add_indices_for_top_index_level_for_contract_operations: 0, + add_reference_for_index_level_for_contract_operations: 0, + }, + insert_contested: DriveDocumentInsertContestedMethodVersions { + add_contested_document: 0, + add_contested_document_for_contract: 0, + add_contested_document_for_contract_apply_and_add_to_operations: 0, + add_contested_document_for_contract_operations: 0, + add_contested_document_to_primary_storage: 0, + add_contested_indices_for_contract_operations: 0, + add_contested_reference_and_vote_subtree_to_document_operations: 0, + add_contested_vote_subtree_for_non_identities_operations: 0, + }, + update: DriveDocumentUpdateMethodVersions { + add_update_multiple_documents_operations: 0, + update_document_for_contract: 0, + update_document_for_contract_apply_and_add_to_operations: 0, + update_document_for_contract_id: 0, + update_document_for_contract_operations: 0, + update_document_with_serialization_for_contract: 0, + update_serialized_document_for_contract: 0, + }, + estimation_costs: DriveDocumentEstimationCostsMethodVersions { + add_estimation_costs_for_add_document_to_primary_storage: 0, + add_estimation_costs_for_add_contested_document_to_primary_storage: 0, + stateless_delete_of_non_tree_for_costs: 0, + }, + index_uniqueness: DriveDocumentIndexUniquenessMethodVersions { + validate_document_uniqueness: 0, + validate_document_create_transition_action_uniqueness: 0, + validate_document_replace_transition_action_uniqueness: 0, + validate_document_transfer_transition_action_uniqueness: 0, + validate_document_purchase_transition_action_uniqueness: 0, + validate_document_update_price_transition_action_uniqueness: 0, + validate_uniqueness_of_data: 0, + }, + }, + vote: DriveVoteMethodVersions { + insert: DriveVoteInsertMethodVersions { + register_identity_vote: 0, + }, + contested_resource_insert: DriveVoteContestedResourceInsertMethodVersions { + register_contested_resource_identity_vote: 0, + insert_stored_info_for_contested_resource_vote_poll: 0, + register_identity_vote: 0, + add_vote_poll_end_date_query_operations: 0, + }, + cleanup: DriveVoteCleanupMethodVersions { + remove_specific_vote_references_given_by_identity: 0, + remove_specific_votes_given_by_identity: 0, + remove_contested_resource_vote_poll_end_date_query_operations: 1, + remove_contested_resource_vote_poll_votes_operations: 0, + remove_contested_resource_vote_poll_documents_operations: 1, + remove_contested_resource_vote_poll_contenders_operations: 1, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, + }, + setup: DriveVoteSetupMethodVersions { + add_initial_vote_tree_main_structure_operations: 0, + }, + storage_form: DriveVoteStorageFormMethodVersions { + resolve_with_contract: 0, + }, + fetch: DriveVoteFetchMethodVersions { + fetch_identities_voting_for_contenders: 0, + fetch_contested_document_vote_poll_stored_info: 0, + fetch_identity_contested_resource_vote: 0, + }, + }, + contract: DriveContractMethodVersions { + prove: DriveContractProveMethodVersions { + prove_contract: 0, + prove_contract_history: 0, + prove_contracts: 0, + }, + apply: DriveContractApplyMethodVersions { + apply_contract: 0, + apply_contract_with_serialization: 0, + }, + insert: DriveContractInsertMethodVersions { + add_contract_to_storage: 0, + insert_contract: 0, + }, + update: DriveContractUpdateMethodVersions { update_contract: 0 }, + costs: DriveContractCostsMethodVersions { + add_estimation_costs_for_contract_insertion: 0, + }, + get: DriveContractGetMethodVersions { + fetch_contract: 0, + fetch_contract_with_history: 0, + get_cached_contract_with_fetch_info: 0, + get_contract_with_fetch_info: 0, + get_contracts_with_fetch_info: 0, + }, + }, + fees: DriveFeesMethodVersions { calculate_fee: 0 }, + estimated_costs: DriveEstimatedCostsMethodVersions { + add_estimation_costs_for_levels_up_to_contract: 0, + add_estimation_costs_for_levels_up_to_contract_document_type_excluded: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded: 0, + }, + asset_lock: DriveAssetLockMethodVersions { + add_asset_lock_outpoint: 0, + add_estimation_costs_for_adding_asset_lock: 0, + fetch_asset_lock_outpoint_info: 0, + }, + verify: DriveVerifyMethodVersions { + contract: DriveVerifyContractMethodVersions { + verify_contract: 0, + verify_contract_history: 0, + }, + document: DriveVerifyDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + verify_start_at_document_in_proof: 0, + }, + identity: DriveVerifyIdentityMethodVersions { + verify_full_identities_by_public_key_hashes: 0, + verify_full_identity_by_identity_id: 0, + verify_full_identity_by_public_key_hash: 0, + verify_identity_balance_for_identity_id: 0, + verify_identity_balances_for_identity_ids: 0, + verify_identity_id_by_public_key_hash: 0, + verify_identity_ids_by_public_key_hashes: 0, + verify_identity_keys_by_identity_id: 0, + verify_identity_nonce: 0, + verify_identity_contract_nonce: 0, + verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, + }, + single_document: DriveVerifySingleDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + }, + system: DriveVerifySystemMethodVersions { + verify_epoch_infos: 0, + verify_epoch_proposers: 0, + verify_elements: 0, + verify_total_credits_in_system: 0, + verify_upgrade_state: 0, + verify_upgrade_vote_status: 0, + }, + voting: DriveVerifyVoteMethodVersions { + verify_masternode_vote: 0, + verify_start_at_contender_in_proof: 0, + verify_vote_poll_votes_proof: 0, + verify_identity_votes_given_proof: 0, + verify_vote_poll_vote_state_proof: 0, + verify_contests_proof: 0, + verify_vote_polls_by_end_date_proof: 0, + verify_specialized_balance: 0, + }, + state_transition: DriveVerifyStateTransitionMethodVersions { + verify_state_transition_was_executed_with_proof: 0, + }, + }, + identity: DriveIdentityMethodVersions { + fetch: DriveIdentityFetchMethodVersions { + public_key_hashes: DriveIdentityFetchPublicKeyHashesMethodVersions { + fetch_full_identities_by_unique_public_key_hashes: 0, + fetch_full_identity_by_unique_public_key_hash: 0, + fetch_identity_id_by_unique_public_key_hash: 0, + fetch_identity_ids_by_non_unique_public_key_hash: 0, + fetch_identity_ids_by_unique_public_key_hashes: 0, + fetch_serialized_full_identity_by_unique_public_key_hash: 0, + has_any_of_unique_public_key_hashes: 0, + has_non_unique_public_key_hash: 0, + has_non_unique_public_key_hash_already_for_identity: 0, + has_unique_public_key_hash: 0, + }, + attributes: DriveIdentityFetchAttributesMethodVersions { + revision: 0, + nonce: 0, + identity_contract_nonce: 0, + balance: 0, + balance_include_debt: 0, + negative_balance: 0, + }, + partial_identity: DriveIdentityFetchPartialIdentityMethodVersions { + fetch_identity_revision_with_keys: 0, + fetch_identity_balance_with_keys: 0, + fetch_identity_balance_with_keys_and_revision: 0, + fetch_identity_with_balance: 0, + fetch_identity_keys: 0, + }, + full_identity: DriveIdentityFetchFullIdentityMethodVersions { + fetch_full_identity: Some(0), + fetch_full_identities: Some(0), + }, + }, + prove: DriveIdentityProveMethodVersions { + full_identity: 0, + full_identities: 0, + identity_nonce: 0, + identity_contract_nonce: 0, + identities_contract_keys: 0, + prove_full_identities_by_unique_public_key_hashes: 0, + prove_full_identity_by_unique_public_key_hash: 0, + prove_identity_id_by_unique_public_key_hash: 0, + prove_identity_ids_by_unique_public_key_hashes: 0, + }, + keys: DriveIdentityKeysMethodVersions { + fetch: DriveIdentityKeysFetchMethodVersions { + fetch_all_current_identity_keys: 0, + fetch_all_identity_keys: 0, + fetch_identities_all_keys: 0, + fetch_identity_keys: 0, + fetch_identities_contract_keys: 0, + }, + prove: DriveIdentityKeysProveMethodVersions { + prove_identities_all_keys: 0, + prove_identity_keys: 0, + }, + insert: DriveIdentityKeysInsertMethodVersions { + create_key_tree_with_keys: 0, + create_new_identity_key_query_trees: 0, + insert_key_searchable_references: 0, + insert_key_to_storage: 0, + insert_new_non_unique_key: 0, + insert_new_unique_key: 0, + replace_key_in_storage: 0, + }, + insert_key_hash_identity_reference: + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, + }, + update: DriveIdentityUpdateMethodVersions { + update_identity_revision: 0, + merge_identity_nonce: 0, + update_identity_negative_credit_operation: 0, + initialize_identity_revision: 0, + disable_identity_keys: 0, + re_enable_identity_keys: 0, + add_new_non_unique_keys_to_identity: 0, + add_new_unique_keys_to_identity: 0, + add_new_keys_to_identity: 0, + insert_identity_balance: 0, + initialize_negative_identity_balance: 0, + add_to_identity_balance: 0, + add_to_previous_balance: 0, + apply_balance_change_from_fee_to_identity: 0, + remove_from_identity_balance: 0, + refresh_identity_key_reference_operations: 0, + }, + insert: DriveIdentityInsertMethodVersions { + add_new_identity: 0, + }, + contract_info: DriveIdentityContractInfoMethodVersions { + add_potential_contract_info_for_contract_bounded_key: 0, + refresh_potential_contract_info_key_references: 0, + merge_identity_contract_nonce: 0, + }, + cost_estimation: DriveIdentityCostEstimationMethodVersions { + for_authentication_keys_security_level_in_key_reference_tree: 0, + for_balances: 0, + for_contract_info: 0, + for_contract_info_group: 0, + for_contract_info_group_keys: 0, + for_contract_info_group_key_purpose: 0, + for_keys_for_identity_id: 0, + for_negative_credit: 0, + for_purpose_in_key_reference_tree: 0, + for_root_key_reference_tree: 0, + for_update_revision: 0, + }, + withdrawals: DriveIdentityWithdrawalMethodVersions { + document: DriveIdentityWithdrawalDocumentMethodVersions { + fetch_oldest_withdrawal_documents_by_status: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, + }, + transaction: DriveIdentityWithdrawalTransactionMethodVersions { + index: DriveIdentityWithdrawalTransactionIndexMethodVersions { + fetch_next_withdrawal_transaction_index: 0, + add_update_next_withdrawal_transaction_index_operation: 0, + }, + queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { + add_enqueue_untied_withdrawal_transaction_operations: 0, + dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, + }, + }, + calculate_current_withdrawal_limit: 0, + }, + }, + platform_system: DrivePlatformSystemMethodVersions { + estimation_costs: DriveSystemEstimationCostsMethodVersions { + for_total_system_credits_update: 0, + }, + }, + operations: DriveOperationsMethodVersion { + rollback_transaction: 0, + drop_cache: 0, + commit_transaction: 0, + apply_partial_batch_low_level_drive_operations: 0, + apply_partial_batch_grovedb_operations: 0, + apply_batch_low_level_drive_operations: 0, + apply_batch_grovedb_operations: 0, + }, + state_transitions: DriveStateTransitionMethodVersions { + operations: DriveStateTransitionOperationMethodVersions { + finalization_tasks: 0, + contracts: DriveDataContractOperationMethodVersions { + finalization_tasks: 0, + }, + }, + convert_to_high_level_operations: + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, + }, + batch_operations: DriveBatchOperationsMethodVersion { + convert_drive_operations_to_grove_operations: 0, + apply_drive_operations: 0, + }, + platform_state: DrivePlatformStateMethodVersions { + fetch_platform_state_bytes: 0, + store_platform_state_bytes: 0, + }, + fetch: DriveFetchMethodVersions { fetch_elements: 0 }, + prefunded_specialized_balances: DrivePrefundedSpecializedMethodVersions { + fetch_single: 0, + prove_single: 0, + add_prefunded_specialized_balance: 0, + add_prefunded_specialized_balance_operations: 0, + deduct_from_prefunded_specialized_balance: 0, + deduct_from_prefunded_specialized_balance_operations: 0, + estimated_cost_for_prefunded_specialized_balance_update: 0, + }, + }, + grove_methods: DriveGroveMethodVersions { + basic: DriveGroveBasicMethodVersions { + grove_insert: 0, + grove_insert_empty_tree: 0, + grove_insert_empty_sum_tree: 0, + grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, + grove_clear: 0, + grove_delete: 0, + grove_get_raw: 0, + grove_get_raw_optional: 0, + grove_get_raw_value_u64_from_encoded_var_vec: 0, + grove_get: 0, + grove_get_path_query_serialized_results: 0, + grove_get_path_query_serialized_or_sum_results: 0, + grove_get_path_query: 0, + grove_get_path_query_with_optional: 0, + grove_get_raw_path_query_with_optional: 0, + grove_get_raw_path_query: 0, + grove_get_proved_path_query: 0, + grove_get_proved_path_query_with_conditional: 0, + grove_get_sum_tree_total_value: 0, + grove_has_raw: 0, + }, + batch: DriveGroveBatchMethodVersions { + batch_insert_empty_tree: 0, + batch_insert_empty_tree_if_not_exists: 0, + batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, + batch_insert: 0, + batch_insert_if_not_exists: 0, + batch_insert_if_changed_value: 0, + batch_replace: 0, + batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, + batch_remove_raw: 0, + batch_delete_up_tree_while_empty: 0, + batch_refresh_reference: 0, + }, + apply: DriveGroveApplyMethodVersions { + grove_apply_operation: 0, + grove_apply_batch: 0, + grove_apply_partial_batch: 0, + }, + costs: DriveGroveCostMethodVersions { + grove_batch_operations_costs: 0, + }, + }, + grove_version: GROVE_V1, + }, + platform_architecture: PlatformArchitectureVersion { + data_contract_factory_structure_version: 0, + document_factory_structure_version: 0, + }, + drive_abci: DriveAbciVersion { + structs: DriveAbciStructureVersions { + platform_state_structure: 0, + platform_state_for_saving_structure: 0, + state_transition_execution_context: 0, + commit: 0, + masternode: 0, + signature_verification_quorum_set: 0, + }, + methods: DriveAbciMethodVersions { + engine: DriveAbciEngineMethodVersions { + init_chain: 0, + check_tx: 0, + run_block_proposal: 0, + finalize_block_proposal: 0, + // Update app version if changed as well + consensus_params_update: 1, + }, + initialization: DriveAbciInitializationMethodVersions { + initial_core_height_and_time: 0, + create_genesis_state: 0, + }, + core_based_updates: DriveAbciCoreBasedUpdatesMethodVersions { + update_core_info: 0, + update_masternode_list: 0, + update_quorum_info: 0, + masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { + get_voter_identity_key: 0, + get_operator_identity_keys: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, + get_voter_identifier_from_masternode_list_item: 0, + get_operator_identifier_from_masternode_list_item: 0, + create_operator_identity: 0, + create_owner_identity: 0, + create_voter_identity: 0, + disable_identity_keys: 0, + update_masternode_identities: 0, + update_operator_identity: 0, + update_owner_withdrawal_address: 0, + update_voter_identity: 0, + }, + }, + protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { + check_for_desired_protocol_upgrade: 1, + upgrade_protocol_version_on_epoch_change: 0, + perform_events_on_first_block_of_protocol_change: None, + protocol_version_upgrade_percentage_needed: 67, + }, + block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { + add_process_epoch_change_operations: 0, + process_block_fees: 0, + }, + core_chain_lock: DriveAbciCoreChainLockMethodVersionsAndConstants { + choose_quorum: 0, + verify_chain_lock: 0, + verify_chain_lock_locally: 0, + verify_chain_lock_through_core: 0, + make_sure_core_is_synced_to_chain_lock: 0, + recent_block_count_amount: 2, + }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, + fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { + add_distribute_block_fees_into_pools_operations: 0, + add_distribute_storage_fee_to_epochs_operations: 0, + }, + fee_pool_outwards_distribution: DriveAbciFeePoolOutwardsDistributionMethodVersions { + add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations: 0, + add_epoch_pool_to_proposers_payout_operations: 0, + find_oldest_epoch_needing_payment: 0, + fetch_reward_shares_list_for_masternode: 0, + }, + withdrawals: DriveAbciIdentityCreditWithdrawalMethodVersions { + build_untied_withdrawal_transactions_from_documents: 0, + dequeue_and_build_unsigned_withdrawal_transactions: 0, + fetch_transactions_block_inclusion_status: 0, + pool_withdrawals_into_transactions_queue: 0, + update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 0, + append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, + }, + voting: DriveAbciVotingMethodVersions { + keep_record_of_finished_contested_resource_vote_poll: 0, + clean_up_after_vote_poll_end: 0, + clean_up_after_contested_resources_vote_poll_end: 0, + check_for_ended_vote_polls: 0, + tally_votes_for_contested_document_resource_vote_poll: 0, + award_document_to_winner: 0, + delay_vote_poll: 0, + run_dao_platform_events: 0, + remove_votes_for_removed_masternodes: 0, + }, + state_transition_processing: DriveAbciStateTransitionProcessingMethodVersions { + execute_event: 0, + process_raw_state_transitions: 0, + decode_raw_state_transitions: 0, + validate_fees_of_event: 0, + }, + epoch: DriveAbciEpochMethodVersions { + gather_epoch_info: 0, + get_genesis_time: 0, + }, + block_start: DriveAbciBlockStartMethodVersions { + clear_drive_block_cache: 0, + }, + block_end: DriveAbciBlockEndMethodVersions { + update_state_cache: 0, + update_drive_cache: 0, + validator_set_update: 0, + }, + platform_state_storage: DriveAbciPlatformStateStorageMethodVersions { + fetch_platform_state: 0, + store_platform_state: 0, + }, + }, + validation_and_processing: DriveAbciValidationVersions { + state_transitions: DriveAbciStateTransitionValidationVersions { + common_validation_methods: DriveAbciStateTransitionCommonValidationVersions { + asset_locks: DriveAbciAssetLockValidationVersions { + fetch_asset_lock_transaction_output_sync: 0, + verify_asset_lock_is_not_spent_and_has_enough_balance: 0, + }, + validate_identity_public_key_contract_bounds: 0, + validate_identity_public_key_ids_dont_exist_in_state: 0, + validate_identity_public_key_ids_exist_in_state: 0, + validate_state_transition_identity_signed: 0, + validate_unique_identity_public_key_hashes_in_state: 0, + validate_master_key_uniqueness: 0, + validate_simple_pre_check_balance: 0, + }, + max_asset_lock_usage_attempts: 16, + identity_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_top_up_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, + identity_credit_transfer_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: Some(0), + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + documents_batch_state_transition: + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, + }, + }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 1, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, + }, + process_state_transition: 0, + state_transition_to_execution_event_for_check_tx: 0, + penalties: PenaltyAmounts { + identity_id_not_correct: 50000000, + unique_key_already_present: 10000000, + validation_of_added_keys_structure_failure: 10000000, + validation_of_added_keys_proof_of_possession_failure: 50000000, + }, + event_constants: DriveAbciValidationConstants { + maximum_vote_polls_to_process: 2, + maximum_contenders_to_consider: 100, + }, + }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 0, + }, + query: DriveAbciQueryVersions { + max_returned_elements: 100, + response_metadata: 0, + proofs_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + prefunded_specialized_balances: DriveAbciQueryPrefundedSpecializedBalancesVersions { + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + identity_based_queries: DriveAbciQueryIdentityVersions { + identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_contract_keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_contract_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance_and_revision: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_by_public_key_hash: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + data_contract_based_queries: DriveAbciQueryDataContractVersions { + data_contract: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contract_history: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contracts: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + voting_based_queries: DriveAbciQueryVotingVersions { + vote_polls_by_end_date_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_vote_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_voters_for_identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_identity_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resources: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + system: DriveAbciQuerySystemVersions { + version_upgrade_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + version_upgrade_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + epoch_infos: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + path_elements: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + total_credits_in_platform: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + }, + dpp: DPPVersion { + costs: CostVersions { + signature_verify: 0, + }, + validation: DPPValidationVersions { + json_schema_validator: JsonSchemaValidatorVersions { + new: 0, + validate: 0, + compile: 0, + compile_and_validate: 0, + }, + data_contract: DataContractValidationVersions { + validate: 0, + validate_config_update: 0, + validate_index_definitions: 0, + validate_index_naming_duplicates: 0, + validate_not_defined_properties: 0, + validate_property_definition: 0, + }, + document_type: DocumentTypeValidationVersions { + validate_update: 0, + contested_index_limit: 1, + unique_index_limit: 10, + }, + voting: VotingValidationVersions { + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 2_700_000, //45 minutes + votes_allowed_per_masternode: 5, + }, + }, + state_transition_serialization_versions: StateTransitionSerializationVersions { + identity_public_key_in_creation: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_top_up_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_withdrawal_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_transfer_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + masternode_vote_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + documents_batch_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_base_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_create_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_replace_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_delete_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_transfer_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_update_price_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_purchase_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + state_transition_conversion_versions: StateTransitionConversionVersions { + identity_to_identity_create_transition: 0, + identity_to_identity_top_up_transition: 0, + identity_to_identity_withdrawal_transition: 1, + identity_to_identity_create_transition_with_signer: 0, + }, + state_transition_method_versions: StateTransitionMethodVersions { + public_key_in_creation_methods: PublicKeyInCreationMethodVersions { + from_public_key_signed_with_private_key: 0, + from_public_key_signed_external: 0, + hash: 0, + duplicated_key_ids_witness: 0, + duplicated_keys_witness: 0, + validate_identity_public_keys_structure: 0, + }, + }, + state_transitions: StateTransitionVersions { + documents: DocumentTransitionVersions { + documents_batch_transition: DocumentsBatchTransitionVersions { + validation: DocumentsBatchTransitionValidationVersions { + find_duplicates_by_id: 0, + validate_base_structure: 0, + }, + }, + }, + identities: IdentityTransitionVersions { + max_public_keys_in_creation: 6, + asset_locks: IdentityTransitionAssetLockVersions { + required_asset_lock_duff_balance_for_processing_start_for_identity_create: + 200000, + required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: + 50000, + validate_asset_lock_transaction_structure: 0, + validate_instant_asset_lock_proof_structure: 0, + }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 1, + }, + }, + }, + contract_versions: ContractVersions { + max_serialized_size: 65000, + contract_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_structure_version: 0, + created_data_contract_structure: 0, + config: 0, + methods: DataContractMethodVersions { + validate_document: 0, + validate_update: 0, + schema: 0, + }, + document_type_versions: DocumentTypeVersions { + index_versions: DocumentTypeIndexVersions { + index_levels_from_indices: 0, + }, + class_method_versions: DocumentTypeClassMethodVersions { + try_from_schema: 0, + create_document_types_from_document_schemas: 0, + }, + structure_version: 0, + schema: DocumentTypeSchemaVersions { + enrich_with_base_schema: 0, + find_identifier_and_binary_paths: 0, + validate_max_depth: 0, + max_depth: 256, + recursive_schema_validator_versions: RecursiveSchemaValidatorVersions { + traversal_validator: 0, + }, + validate_schema_compatibility: 0, + }, + methods: DocumentTypeMethodVersions { + create_document_from_data: 0, + create_document_with_prevalidated_properties: 0, + prefunded_voting_balance_for_document: 0, + contested_vote_poll_for_document: 0, + estimated_size: 0, + index_for_types: 0, + max_size: 0, + serialize_value_for_key: 0, + deserialize_value_for_key: 0, + }, + }, + }, + document_versions: DocumentVersions { + document_structure_version: 0, + document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_cbor_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + extended_document_structure_version: 0, + extended_document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_method_versions: DocumentMethodVersions { + is_equal_ignoring_timestamps: 0, + hash: 0, + get_raw_for_contract: 0, + get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, + }, + }, + identity_versions: IdentityVersions { + identity_structure_version: 0, + identity_key_structure_version: 0, + identity_key_type_method_versions: IdentityKeyTypeMethodVersions { + random_public_key_data: 0, + random_public_and_private_key_data: 0, + }, + }, + voting_versions: VotingVersions { + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 5_400_000, //90 minutes + contested_document_vote_poll_stored_info_version: 0, + }, + asset_lock_versions: AssetLockVersions { + reduced_asset_lock_value: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DPPMethodVersions { + epoch_core_reward_credits_for_distribution: 0, + daily_withdrawal_limit: 0, + }, + }, + system_data_contracts: SystemDataContractVersions { + withdrawals: 1, + dpns: 1, + dashpay: 1, + masternode_reward_shares: 1, + feature_flags: 1, + }, + fee_version: FEE_VERSION1, + system_limits: SystemLimits { + estimated_contract_max_serialized_size: 16384, + max_field_value_size: 5120, //5 KiB + max_state_transition_size: 20480, //20 KiB + max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 1, + }, +}; diff --git a/packages/rs-platform-version/src/version/v4.rs b/packages/rs-platform-version/src/version/v4.rs new file mode 100644 index 0000000000..dd693aa2f8 --- /dev/null +++ b/packages/rs-platform-version/src/version/v4.rs @@ -0,0 +1,1313 @@ +use crate::version::consensus_versions::ConsensusVersions; +use crate::version::contracts::SystemDataContractVersions; +use crate::version::dpp_versions::{ + AssetLockVersions, ContractVersions, CostVersions, DPPMethodVersions, DPPValidationVersions, + DPPVersion, DataContractMethodVersions, DataContractValidationVersions, + DocumentFeatureVersionBounds, DocumentMethodVersions, DocumentTransitionVersions, + DocumentTypeClassMethodVersions, DocumentTypeIndexVersions, DocumentTypeMethodVersions, + DocumentTypeSchemaVersions, DocumentTypeValidationVersions, DocumentTypeVersions, + DocumentVersions, DocumentsBatchTransitionValidationVersions, DocumentsBatchTransitionVersions, + IdentityCreditWithdrawalTransitionVersions, IdentityKeyTypeMethodVersions, + IdentityTransitionAssetLockVersions, IdentityTransitionVersions, IdentityVersions, + JsonSchemaValidatorVersions, PublicKeyInCreationMethodVersions, + RecursiveSchemaValidatorVersions, StateTransitionConversionVersions, + StateTransitionMethodVersions, StateTransitionSerializationVersions, StateTransitionVersions, + VotingValidationVersions, VotingVersions, +}; +use crate::version::drive_abci_versions::{ + DriveAbciAssetLockValidationVersions, DriveAbciBlockEndMethodVersions, + DriveAbciBlockFeeProcessingMethodVersions, DriveAbciBlockStartMethodVersions, + DriveAbciCoreBasedUpdatesMethodVersions, DriveAbciCoreChainLockMethodVersionsAndConstants, + DriveAbciCoreInstantSendLockMethodVersions, + DriveAbciDocumentsStateTransitionValidationVersions, DriveAbciEngineMethodVersions, + DriveAbciEpochMethodVersions, DriveAbciFeePoolInwardsDistributionMethodVersions, + DriveAbciFeePoolOutwardsDistributionMethodVersions, + DriveAbciIdentityCreditWithdrawalMethodVersions, DriveAbciInitializationMethodVersions, + DriveAbciMasternodeIdentitiesUpdatesMethodVersions, DriveAbciMethodVersions, + DriveAbciPlatformStateStorageMethodVersions, DriveAbciProtocolUpgradeMethodVersions, + DriveAbciQueryDataContractVersions, DriveAbciQueryIdentityVersions, + DriveAbciQueryPrefundedSpecializedBalancesVersions, DriveAbciQuerySystemVersions, + DriveAbciQueryValidatorVersions, DriveAbciQueryVersions, DriveAbciQueryVotingVersions, + DriveAbciStateTransitionCommonValidationVersions, + DriveAbciStateTransitionProcessingMethodVersions, DriveAbciStateTransitionValidationVersion, + DriveAbciStateTransitionValidationVersions, DriveAbciStructureVersions, + DriveAbciValidationConstants, DriveAbciValidationDataTriggerAndBindingVersions, + DriveAbciValidationDataTriggerVersions, DriveAbciValidationVersions, DriveAbciVersion, + DriveAbciVotingMethodVersions, DriveAbciWithdrawalConstants, PenaltyAmounts, +}; +use crate::version::drive_versions::{ + DriveAssetLockMethodVersions, DriveBalancesMethodVersions, DriveBatchOperationsMethodVersion, + DriveContractApplyMethodVersions, DriveContractCostsMethodVersions, + DriveContractGetMethodVersions, DriveContractInsertMethodVersions, DriveContractMethodVersions, + DriveContractProveMethodVersions, DriveContractUpdateMethodVersions, + DriveCreditPoolEpochsMethodVersions, DriveCreditPoolMethodVersions, + DriveCreditPoolPendingEpochRefundsMethodVersions, + DriveCreditPoolStorageFeeDistributionPoolMethodVersions, + DriveCreditPoolUnpaidEpochMethodVersions, DriveDataContractOperationMethodVersions, + DriveDocumentDeleteMethodVersions, DriveDocumentEstimationCostsMethodVersions, + DriveDocumentIndexUniquenessMethodVersions, DriveDocumentInsertContestedMethodVersions, + DriveDocumentInsertMethodVersions, DriveDocumentMethodVersions, + DriveDocumentQueryMethodVersions, DriveDocumentUpdateMethodVersions, + DriveEstimatedCostsMethodVersions, DriveFeesMethodVersions, DriveFetchMethodVersions, + DriveGroveApplyMethodVersions, DriveGroveBasicMethodVersions, DriveGroveBatchMethodVersions, + DriveGroveCostMethodVersions, DriveGroveMethodVersions, + DriveIdentityContractInfoMethodVersions, DriveIdentityCostEstimationMethodVersions, + DriveIdentityFetchAttributesMethodVersions, DriveIdentityFetchFullIdentityMethodVersions, + DriveIdentityFetchMethodVersions, DriveIdentityFetchPartialIdentityMethodVersions, + DriveIdentityFetchPublicKeyHashesMethodVersions, DriveIdentityInsertMethodVersions, + DriveIdentityKeyHashesToIdentityInsertMethodVersions, DriveIdentityKeysFetchMethodVersions, + DriveIdentityKeysInsertMethodVersions, DriveIdentityKeysMethodVersions, + DriveIdentityKeysProveMethodVersions, DriveIdentityMethodVersions, + DriveIdentityProveMethodVersions, DriveIdentityUpdateMethodVersions, + DriveIdentityWithdrawalDocumentMethodVersions, DriveIdentityWithdrawalMethodVersions, + DriveIdentityWithdrawalTransactionIndexMethodVersions, + DriveIdentityWithdrawalTransactionMethodVersions, + DriveIdentityWithdrawalTransactionQueueMethodVersions, DriveInitializationMethodVersions, + DriveMethodVersions, DriveOperationsMethodVersion, DrivePlatformStateMethodVersions, + DrivePlatformSystemMethodVersions, DrivePrefundedSpecializedMethodVersions, + DriveProtocolUpgradeVersions, DriveProveMethodVersions, + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions, + DriveStateTransitionMethodVersions, DriveStateTransitionOperationMethodVersions, + DriveStructureVersion, DriveSystemEstimationCostsMethodVersions, + DriveVerifyContractMethodVersions, DriveVerifyDocumentMethodVersions, + DriveVerifyIdentityMethodVersions, DriveVerifyMethodVersions, + DriveVerifySingleDocumentMethodVersions, DriveVerifyStateTransitionMethodVersions, + DriveVerifySystemMethodVersions, DriveVerifyVoteMethodVersions, DriveVersion, + DriveVoteCleanupMethodVersions, DriveVoteContestedResourceInsertMethodVersions, + DriveVoteFetchMethodVersions, DriveVoteInsertMethodVersions, DriveVoteMethodVersions, + DriveVoteSetupMethodVersions, DriveVoteStorageFormMethodVersions, +}; +use crate::version::fee::v1::FEE_VERSION1; +use crate::version::limits::SystemLimits; +use crate::version::protocol_version::{FeatureVersionBounds, PlatformVersion}; +use crate::version::{PlatformArchitectureVersion, ProtocolVersion}; +use grovedb_version::version::v1::GROVE_V1; + +pub const PROTOCOL_VERSION_4: ProtocolVersion = 4; + +/// This version introduces withdrawals. + +pub const PLATFORM_V4: PlatformVersion = PlatformVersion { + protocol_version: PROTOCOL_VERSION_4, + proofs: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + drive: DriveVersion { + structure: DriveStructureVersion { + document_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_indexes: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + pools: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DriveMethodVersions { + initialization: DriveInitializationMethodVersions { + create_initial_state_structure: 0, + }, + credit_pools: DriveCreditPoolMethodVersions { + epochs: DriveCreditPoolEpochsMethodVersions { + get_epochs_infos: 0, + get_epochs_protocol_versions: 0, + prove_epochs_infos: 0, + get_epoch_fee_multiplier: 0, + get_epoch_processing_credits_for_distribution: 0, + get_epoch_storage_credits_for_distribution: 0, + get_epoch_total_credits_for_distribution: 0, + get_storage_credits_for_distribution_for_epochs_in_range: 0, + get_epoch_start_time: 0, + get_epoch_start_block_core_height: 0, + get_epoch_start_block_height: 0, + get_first_epoch_start_block_info_between_epochs: 0, + fetch_epoch_proposers: 0, + prove_epoch_proposers: 0, + get_epochs_proposer_block_count: 0, + add_update_pending_epoch_refunds_operations: 0, + is_epochs_proposers_tree_empty: 0, + }, + pending_epoch_refunds: DriveCreditPoolPendingEpochRefundsMethodVersions { + add_delete_pending_epoch_refunds_except_specified: 0, + fetch_and_add_pending_epoch_refunds_to_collection: 0, + fetch_pending_epoch_refunds: 0, + add_update_pending_epoch_refunds_operations: 0, + }, + storage_fee_distribution_pool: + DriveCreditPoolStorageFeeDistributionPoolMethodVersions { + get_storage_fees_from_distribution_pool: 0, + }, + unpaid_epoch: DriveCreditPoolUnpaidEpochMethodVersions { + get_unpaid_epoch_index: 0, + }, + }, + protocol_upgrade: DriveProtocolUpgradeVersions { + clear_version_information: 0, + fetch_versions_with_counter: 0, + fetch_proved_versions_with_counter: 0, + fetch_validator_version_votes: 0, + fetch_proved_validator_version_votes: 0, + remove_validators_proposed_app_versions: 0, + update_validator_proposed_app_version: 0, + }, + prove: DriveProveMethodVersions { + prove_elements: 0, + prove_multiple_state_transition_results: 0, + }, + balances: DriveBalancesMethodVersions { + add_to_system_credits: 0, + add_to_system_credits_operations: 0, + remove_from_system_credits: 0, + remove_from_system_credits_operations: 0, + calculate_total_credits_balance: 0, + }, + document: DriveDocumentMethodVersions { + query: DriveDocumentQueryMethodVersions { query_documents: 0, query_contested_documents: 0, query_contested_documents_vote_state: 0, query_documents_with_flags: 0 }, + delete: DriveDocumentDeleteMethodVersions { + add_estimation_costs_for_remove_document_to_primary_storage: 0, + delete_document_for_contract: 0, + delete_document_for_contract_id: 0, + delete_document_for_contract_apply_and_add_to_operations: 0, + remove_document_from_primary_storage: 0, + remove_reference_for_index_level_for_contract_operations: 0, + remove_indices_for_index_level_for_contract_operations: 0, + remove_indices_for_top_index_level_for_contract_operations: 0, + delete_document_for_contract_id_with_named_type_operations: 0, + delete_document_for_contract_with_named_type_operations: 0, + delete_document_for_contract_operations: 0, + }, + insert: DriveDocumentInsertMethodVersions { + add_document: 0, + add_document_for_contract: 0, + add_document_for_contract_apply_and_add_to_operations: 0, + add_document_for_contract_operations: 0, + add_document_to_primary_storage: 0, + add_indices_for_index_level_for_contract_operations: 0, + add_indices_for_top_index_level_for_contract_operations: 0, + add_reference_for_index_level_for_contract_operations: 0, + }, + insert_contested: DriveDocumentInsertContestedMethodVersions { + add_contested_document: 0, + add_contested_document_for_contract: 0, + add_contested_document_for_contract_apply_and_add_to_operations: 0, + add_contested_document_for_contract_operations: 0, + add_contested_document_to_primary_storage: 0, + add_contested_indices_for_contract_operations: 0, + add_contested_reference_and_vote_subtree_to_document_operations: 0, + add_contested_vote_subtree_for_non_identities_operations: 0, + }, + update: DriveDocumentUpdateMethodVersions { + add_update_multiple_documents_operations: 0, + update_document_for_contract: 0, + update_document_for_contract_apply_and_add_to_operations: 0, + update_document_for_contract_id: 0, + update_document_for_contract_operations: 0, + update_document_with_serialization_for_contract: 0, + update_serialized_document_for_contract: 0, + }, + estimation_costs: DriveDocumentEstimationCostsMethodVersions { + add_estimation_costs_for_add_document_to_primary_storage: 0, + add_estimation_costs_for_add_contested_document_to_primary_storage: 0, + stateless_delete_of_non_tree_for_costs: 0, + }, + index_uniqueness: DriveDocumentIndexUniquenessMethodVersions { + validate_document_uniqueness: 0, + validate_document_create_transition_action_uniqueness: 0, + validate_document_replace_transition_action_uniqueness: 0, + validate_document_transfer_transition_action_uniqueness: 0, + validate_document_purchase_transition_action_uniqueness: 0, + validate_document_update_price_transition_action_uniqueness: 0, + validate_uniqueness_of_data: 0, + }, + }, + vote: DriveVoteMethodVersions { + insert: DriveVoteInsertMethodVersions { + register_identity_vote: 0, + }, + contested_resource_insert: DriveVoteContestedResourceInsertMethodVersions { + register_contested_resource_identity_vote: 0, + insert_stored_info_for_contested_resource_vote_poll: 0, + register_identity_vote: 0, + add_vote_poll_end_date_query_operations: 0, + }, + cleanup: DriveVoteCleanupMethodVersions { + remove_specific_vote_references_given_by_identity: 0, + remove_specific_votes_given_by_identity: 0, + remove_contested_resource_vote_poll_end_date_query_operations: 1, + remove_contested_resource_vote_poll_votes_operations: 0, + remove_contested_resource_vote_poll_documents_operations: 1, + remove_contested_resource_vote_poll_contenders_operations: 1, + remove_contested_resource_top_level_index_operations: 0, + remove_contested_resource_info_operations: 0, + }, + setup: DriveVoteSetupMethodVersions { + add_initial_vote_tree_main_structure_operations: 0, + }, + storage_form: DriveVoteStorageFormMethodVersions { + resolve_with_contract: 0, + }, + fetch: DriveVoteFetchMethodVersions { + fetch_identities_voting_for_contenders: 0, + fetch_contested_document_vote_poll_stored_info: 0, + fetch_identity_contested_resource_vote: 0, + }, + }, + contract: DriveContractMethodVersions { + prove: DriveContractProveMethodVersions { + prove_contract: 0, + prove_contract_history: 0, + prove_contracts: 0, + }, + apply: DriveContractApplyMethodVersions { + apply_contract: 0, + apply_contract_with_serialization: 0, + }, + insert: DriveContractInsertMethodVersions { + add_contract_to_storage: 0, + insert_contract: 0, + }, + update: DriveContractUpdateMethodVersions { update_contract: 0 }, + costs: DriveContractCostsMethodVersions { + add_estimation_costs_for_contract_insertion: 0, + }, + get: DriveContractGetMethodVersions { + fetch_contract: 0, + fetch_contract_with_history: 0, + get_cached_contract_with_fetch_info: 0, + get_contract_with_fetch_info: 0, + get_contracts_with_fetch_info: 0, + }, + }, + fees: DriveFeesMethodVersions { calculate_fee: 0 }, + estimated_costs: DriveEstimatedCostsMethodVersions { + add_estimation_costs_for_levels_up_to_contract: 0, + add_estimation_costs_for_levels_up_to_contract_document_type_excluded: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract: 0, + add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded: 0, + }, + asset_lock: DriveAssetLockMethodVersions { + add_asset_lock_outpoint: 0, + add_estimation_costs_for_adding_asset_lock: 0, + fetch_asset_lock_outpoint_info: 0, + }, + verify: DriveVerifyMethodVersions { + contract: DriveVerifyContractMethodVersions { + verify_contract: 0, + verify_contract_history: 0, + }, + document: DriveVerifyDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + verify_start_at_document_in_proof: 0, + }, + identity: DriveVerifyIdentityMethodVersions { + verify_full_identities_by_public_key_hashes: 0, + verify_full_identity_by_identity_id: 0, + verify_full_identity_by_public_key_hash: 0, + verify_identity_balance_for_identity_id: 0, + verify_identity_balances_for_identity_ids: 0, + verify_identity_id_by_public_key_hash: 0, + verify_identity_ids_by_public_key_hashes: 0, + verify_identity_keys_by_identity_id: 0, + verify_identity_nonce: 0, + verify_identity_contract_nonce: 0, + verify_identities_contract_keys: 0, + verify_identity_revision_for_identity_id: 0, + }, + single_document: DriveVerifySingleDocumentMethodVersions { + verify_proof: 0, + verify_proof_keep_serialized: 0, + }, + system: DriveVerifySystemMethodVersions { + verify_epoch_infos: 0, + verify_epoch_proposers: 0, + verify_elements: 0, + verify_total_credits_in_system: 0, + verify_upgrade_state: 0, + verify_upgrade_vote_status: 0, + }, + voting: DriveVerifyVoteMethodVersions { + verify_masternode_vote: 0, + verify_start_at_contender_in_proof: 0, + verify_vote_poll_votes_proof: 0, + verify_identity_votes_given_proof: 0, + verify_vote_poll_vote_state_proof: 0, + verify_contests_proof: 0, + verify_vote_polls_by_end_date_proof: 0, + verify_specialized_balance: 0, + }, + state_transition: DriveVerifyStateTransitionMethodVersions { + verify_state_transition_was_executed_with_proof: 0, + }, + }, + identity: DriveIdentityMethodVersions { + fetch: DriveIdentityFetchMethodVersions { + public_key_hashes: DriveIdentityFetchPublicKeyHashesMethodVersions { + fetch_full_identities_by_unique_public_key_hashes: 0, + fetch_full_identity_by_unique_public_key_hash: 0, + fetch_identity_id_by_unique_public_key_hash: 0, + fetch_identity_ids_by_non_unique_public_key_hash: 0, + fetch_identity_ids_by_unique_public_key_hashes: 0, + fetch_serialized_full_identity_by_unique_public_key_hash: 0, + has_any_of_unique_public_key_hashes: 0, + has_non_unique_public_key_hash: 0, + has_non_unique_public_key_hash_already_for_identity: 0, + has_unique_public_key_hash: 0, + }, + attributes: DriveIdentityFetchAttributesMethodVersions { + revision: 0, + nonce: 0, + identity_contract_nonce: 0, + balance: 0, + balance_include_debt: 0, + negative_balance: 0, + }, + partial_identity: DriveIdentityFetchPartialIdentityMethodVersions { + fetch_identity_revision_with_keys: 0, + fetch_identity_balance_with_keys: 0, + fetch_identity_balance_with_keys_and_revision: 0, + fetch_identity_with_balance: 0, + fetch_identity_keys: 0, + }, + full_identity: DriveIdentityFetchFullIdentityMethodVersions { + fetch_full_identity: Some(0), + fetch_full_identities: Some(0), + }, + }, + prove: DriveIdentityProveMethodVersions { + full_identity: 0, + full_identities: 0, + identity_nonce: 0, + identity_contract_nonce: 0, + identities_contract_keys: 0, + prove_full_identities_by_unique_public_key_hashes: 0, + prove_full_identity_by_unique_public_key_hash: 0, + prove_identity_id_by_unique_public_key_hash: 0, + prove_identity_ids_by_unique_public_key_hashes: 0, + }, + keys: DriveIdentityKeysMethodVersions { + fetch: DriveIdentityKeysFetchMethodVersions { + fetch_all_current_identity_keys: 0, + fetch_all_identity_keys: 0, + fetch_identities_all_keys: 0, + fetch_identity_keys: 0, + fetch_identities_contract_keys: 0, + }, + prove: DriveIdentityKeysProveMethodVersions { + prove_identities_all_keys: 0, + prove_identity_keys: 0, + }, + insert: DriveIdentityKeysInsertMethodVersions { + create_key_tree_with_keys: 0, + create_new_identity_key_query_trees: 0, + insert_key_searchable_references: 0, + insert_key_to_storage: 0, + insert_new_non_unique_key: 0, + insert_new_unique_key: 0, + replace_key_in_storage: 0, + }, + insert_key_hash_identity_reference: + DriveIdentityKeyHashesToIdentityInsertMethodVersions { + add_estimation_costs_for_insert_non_unique_public_key_hash_reference: 0, + add_estimation_costs_for_insert_unique_public_key_hash_reference: 0, + insert_non_unique_public_key_hash_reference_to_identity: 0, + insert_reference_to_non_unique_key: 0, + insert_reference_to_unique_key: 0, + insert_unique_public_key_hash_reference_to_identity: 0, + }, + }, + update: DriveIdentityUpdateMethodVersions { + update_identity_revision: 0, + merge_identity_nonce: 0, + update_identity_negative_credit_operation: 0, + initialize_identity_revision: 0, + disable_identity_keys: 0, + re_enable_identity_keys: 0, + add_new_non_unique_keys_to_identity: 0, + add_new_unique_keys_to_identity: 0, + add_new_keys_to_identity: 0, + insert_identity_balance: 0, + initialize_negative_identity_balance: 0, + add_to_identity_balance: 0, + add_to_previous_balance: 0, + apply_balance_change_from_fee_to_identity: 0, + remove_from_identity_balance: 0, + refresh_identity_key_reference_operations: 0, + }, + insert: DriveIdentityInsertMethodVersions { + add_new_identity: 0, + }, + contract_info: DriveIdentityContractInfoMethodVersions { + add_potential_contract_info_for_contract_bounded_key: 0, + refresh_potential_contract_info_key_references: 0, + merge_identity_contract_nonce: 0, + }, + cost_estimation: DriveIdentityCostEstimationMethodVersions { + for_authentication_keys_security_level_in_key_reference_tree: 0, + for_balances: 0, + for_contract_info: 0, + for_contract_info_group: 0, + for_contract_info_group_keys: 0, + for_contract_info_group_key_purpose: 0, + for_keys_for_identity_id: 0, + for_negative_credit: 0, + for_purpose_in_key_reference_tree: 0, + for_root_key_reference_tree: 0, + for_update_revision: 0, + }, + withdrawals: DriveIdentityWithdrawalMethodVersions { + document: DriveIdentityWithdrawalDocumentMethodVersions { + fetch_oldest_withdrawal_documents_by_status: 0, + find_withdrawal_documents_by_status_and_transaction_indices: 0, + }, + transaction: DriveIdentityWithdrawalTransactionMethodVersions { + index: DriveIdentityWithdrawalTransactionIndexMethodVersions { + fetch_next_withdrawal_transaction_index: 0, + add_update_next_withdrawal_transaction_index_operation: 0, + }, + queue: DriveIdentityWithdrawalTransactionQueueMethodVersions { + add_enqueue_untied_withdrawal_transaction_operations: 0, + dequeue_untied_withdrawal_transactions: 0, + remove_broadcasted_withdrawal_transactions_after_completion_operations: 0, + move_broadcasted_withdrawal_transactions_back_to_queue_operations: 0, + }, + }, + calculate_current_withdrawal_limit: 0, + }, + }, + platform_system: DrivePlatformSystemMethodVersions { + estimation_costs: DriveSystemEstimationCostsMethodVersions { + for_total_system_credits_update: 0, + }, + }, + operations: DriveOperationsMethodVersion { + rollback_transaction: 0, + drop_cache: 0, + commit_transaction: 0, + apply_partial_batch_low_level_drive_operations: 0, + apply_partial_batch_grovedb_operations: 0, + apply_batch_low_level_drive_operations: 0, + apply_batch_grovedb_operations: 0, + }, + state_transitions: DriveStateTransitionMethodVersions { + operations: DriveStateTransitionOperationMethodVersions { + finalization_tasks: 0, + contracts: DriveDataContractOperationMethodVersions { + finalization_tasks: 0, + }, + }, + convert_to_high_level_operations: + DriveStateTransitionActionConvertToHighLevelOperationsMethodVersions { + data_contract_create_transition: 0, + data_contract_update_transition: 0, + document_create_transition: 0, + document_delete_transition: 0, + document_purchase_transition: 0, + document_replace_transition: 0, + document_transfer_transition: 0, + document_update_price_transition: 0, + documents_batch_transition: 0, + identity_create_transition: 0, + identity_credit_transfer_transition: 0, + identity_credit_withdrawal_transition: 0, + identity_top_up_transition: 0, + identity_update_transition: 0, + masternode_vote_transition: 0, + bump_identity_data_contract_nonce: 0, + bump_identity_nonce: 0, + partially_use_asset_lock: 0, + }, + }, + batch_operations: DriveBatchOperationsMethodVersion { + convert_drive_operations_to_grove_operations: 0, + apply_drive_operations: 0, + }, + platform_state: DrivePlatformStateMethodVersions { + fetch_platform_state_bytes: 0, + store_platform_state_bytes: 0, + }, + fetch: DriveFetchMethodVersions { fetch_elements: 0 }, + prefunded_specialized_balances: DrivePrefundedSpecializedMethodVersions { + fetch_single: 0, + prove_single: 0, + add_prefunded_specialized_balance: 0, + add_prefunded_specialized_balance_operations: 0, + deduct_from_prefunded_specialized_balance: 0, + deduct_from_prefunded_specialized_balance_operations: 0, + estimated_cost_for_prefunded_specialized_balance_update: 0, + }, + }, + grove_methods: DriveGroveMethodVersions { + basic: DriveGroveBasicMethodVersions { + grove_insert: 0, + grove_insert_empty_tree: 0, + grove_insert_empty_sum_tree: 0, + grove_insert_if_not_exists: 0, + grove_insert_if_not_exists_return_existing_element: 0, + grove_clear: 0, + grove_delete: 0, + grove_get_raw: 0, + grove_get_raw_optional: 0, + grove_get_raw_value_u64_from_encoded_var_vec: 0, + grove_get: 0, + grove_get_path_query_serialized_results: 0, + grove_get_path_query_serialized_or_sum_results: 0, + grove_get_path_query: 0, + grove_get_path_query_with_optional: 0, + grove_get_raw_path_query_with_optional: 0, + grove_get_raw_path_query: 0, + grove_get_proved_path_query: 0, + grove_get_proved_path_query_with_conditional: 0, + grove_get_sum_tree_total_value: 0, + grove_has_raw: 0, + }, + batch: DriveGroveBatchMethodVersions { + batch_insert_empty_tree: 0, + batch_insert_empty_tree_if_not_exists: 0, + batch_insert_empty_tree_if_not_exists_check_existing_operations: 0, + batch_insert_sum_item_or_add_to_if_already_exists: 0, + batch_insert: 0, + batch_insert_if_not_exists: 0, + batch_insert_if_changed_value: 0, + batch_replace: 0, + batch_delete: 0, + batch_delete_items_in_path_query: 0, + batch_move_items_in_path_query: 0, + batch_remove_raw: 0, + batch_delete_up_tree_while_empty: 0, + batch_refresh_reference: 0, + }, + apply: DriveGroveApplyMethodVersions { + grove_apply_operation: 0, + grove_apply_batch: 0, + grove_apply_partial_batch: 0, + }, + costs: DriveGroveCostMethodVersions { + grove_batch_operations_costs: 0, + }, + }, + grove_version: GROVE_V1, + }, + platform_architecture: PlatformArchitectureVersion { + data_contract_factory_structure_version: 0, + document_factory_structure_version: 0, + }, + drive_abci: DriveAbciVersion { + structs: DriveAbciStructureVersions { + platform_state_structure: 0, + platform_state_for_saving_structure: 0, + state_transition_execution_context: 0, + commit: 0, + masternode: 0, + signature_verification_quorum_set: 0, + }, + methods: DriveAbciMethodVersions { + engine: DriveAbciEngineMethodVersions { + init_chain: 0, + check_tx: 0, + run_block_proposal: 0, + finalize_block_proposal: 0, + consensus_params_update: 1, + }, + initialization: DriveAbciInitializationMethodVersions { + initial_core_height_and_time: 0, + create_genesis_state: 0, + }, + core_based_updates: DriveAbciCoreBasedUpdatesMethodVersions { + update_core_info: 0, + update_masternode_list: 0, + update_quorum_info: 0, + masternode_updates: DriveAbciMasternodeIdentitiesUpdatesMethodVersions { + get_voter_identity_key: 0, + get_operator_identity_keys: 0, + get_owner_identity_withdrawal_key: 0, + get_owner_identity_owner_key: 0, + get_voter_identifier_from_masternode_list_item: 0, + get_operator_identifier_from_masternode_list_item: 0, + create_operator_identity: 0, + create_owner_identity: 1, + create_voter_identity: 0, + disable_identity_keys: 0, + update_masternode_identities: 0, + update_operator_identity: 0, + update_owner_withdrawal_address: 1, + update_voter_identity: 0, + }, + }, + protocol_upgrade: DriveAbciProtocolUpgradeMethodVersions { + check_for_desired_protocol_upgrade: 1, + upgrade_protocol_version_on_epoch_change: 0, + perform_events_on_first_block_of_protocol_change: Some(0), + protocol_version_upgrade_percentage_needed: 67, + }, + block_fee_processing: DriveAbciBlockFeeProcessingMethodVersions { + add_process_epoch_change_operations: 0, + process_block_fees: 0, + }, + core_chain_lock: DriveAbciCoreChainLockMethodVersionsAndConstants { + choose_quorum: 0, + verify_chain_lock: 0, + verify_chain_lock_locally: 0, + verify_chain_lock_through_core: 0, + make_sure_core_is_synced_to_chain_lock: 0, + recent_block_count_amount: 2, + }, + core_instant_send_lock: DriveAbciCoreInstantSendLockMethodVersions { + verify_recent_signature_locally: 0, + }, + fee_pool_inwards_distribution: DriveAbciFeePoolInwardsDistributionMethodVersions { + add_distribute_block_fees_into_pools_operations: 0, + add_distribute_storage_fee_to_epochs_operations: 0, + }, + fee_pool_outwards_distribution: DriveAbciFeePoolOutwardsDistributionMethodVersions { + add_distribute_fees_from_oldest_unpaid_epoch_pool_to_proposers_operations: 0, + add_epoch_pool_to_proposers_payout_operations: 0, + find_oldest_epoch_needing_payment: 0, + fetch_reward_shares_list_for_masternode: 0, + }, + withdrawals: DriveAbciIdentityCreditWithdrawalMethodVersions { + build_untied_withdrawal_transactions_from_documents: 0, + dequeue_and_build_unsigned_withdrawal_transactions: 0, + fetch_transactions_block_inclusion_status: 0, + pool_withdrawals_into_transactions_queue: 0, + update_broadcasted_withdrawal_statuses: 0, + rebroadcast_expired_withdrawal_documents: 0, + append_signatures_and_broadcast_withdrawal_transactions: 0, + cleanup_expired_locks_of_withdrawal_amounts: 0, + }, + voting: DriveAbciVotingMethodVersions { + keep_record_of_finished_contested_resource_vote_poll: 0, + clean_up_after_vote_poll_end: 0, + clean_up_after_contested_resources_vote_poll_end: 0, + check_for_ended_vote_polls: 0, + tally_votes_for_contested_document_resource_vote_poll: 0, + award_document_to_winner: 0, + delay_vote_poll: 0, + run_dao_platform_events: 0, + remove_votes_for_removed_masternodes: 0, + }, + state_transition_processing: DriveAbciStateTransitionProcessingMethodVersions { + execute_event: 0, + process_raw_state_transitions: 0, + decode_raw_state_transitions: 0, + validate_fees_of_event: 0, + }, + epoch: DriveAbciEpochMethodVersions { + gather_epoch_info: 0, + get_genesis_time: 0, + }, + block_start: DriveAbciBlockStartMethodVersions { + clear_drive_block_cache: 0, + }, + block_end: DriveAbciBlockEndMethodVersions { + update_state_cache: 0, + update_drive_cache: 0, + validator_set_update: 1, + }, + platform_state_storage: DriveAbciPlatformStateStorageMethodVersions { + fetch_platform_state: 0, + store_platform_state: 0, + }, + }, + validation_and_processing: DriveAbciValidationVersions { + state_transitions: DriveAbciStateTransitionValidationVersions { + common_validation_methods: DriveAbciStateTransitionCommonValidationVersions { + asset_locks: DriveAbciAssetLockValidationVersions { + fetch_asset_lock_transaction_output_sync: 0, + verify_asset_lock_is_not_spent_and_has_enough_balance: 0, + }, + validate_identity_public_key_contract_bounds: 0, + validate_identity_public_key_ids_dont_exist_in_state: 0, + validate_identity_public_key_ids_exist_in_state: 0, + validate_state_transition_identity_signed: 0, + validate_unique_identity_public_key_hashes_in_state: 0, + validate_master_key_uniqueness: 0, + validate_simple_pre_check_balance: 0, + }, + max_asset_lock_usage_attempts: 16, + identity_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: Some(0), + identity_signatures: Some(0), + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_top_up_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: None, + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(1), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + identity_credit_withdrawal_state_transition_purpose_matches_requirements: 0, + identity_credit_transfer_state_transition: + DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + masternode_vote_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: Some(0), + identity_signatures: None, + advanced_minimum_balance_pre_check: Some(0), + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_create_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: Some(0), + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + contract_update_state_transition: DriveAbciStateTransitionValidationVersion { + basic_structure: None, + advanced_structure: None, + identity_signatures: None, + advanced_minimum_balance_pre_check: None, + nonce: Some(0), + state: 0, + transform_into_action: 0, + }, + documents_batch_state_transition: + DriveAbciDocumentsStateTransitionValidationVersions { + balance_pre_check: 0, + basic_structure: 0, + advanced_structure: 0, + state: 0, + revision: 0, + transform_into_action: 0, + data_triggers: DriveAbciValidationDataTriggerAndBindingVersions { + bindings: 0, + triggers: DriveAbciValidationDataTriggerVersions { + create_contact_request_data_trigger: 0, + create_domain_data_trigger: 0, + create_identity_data_trigger: 0, + create_feature_flag_data_trigger: 0, + create_masternode_reward_shares_data_trigger: 0, + delete_withdrawal_data_trigger: 0, + reject_data_trigger: 0, + }, + }, + is_allowed: 0, + document_create_transition_structure_validation: 0, + document_delete_transition_structure_validation: 0, + document_replace_transition_structure_validation: 0, + document_transfer_transition_structure_validation: 0, + document_purchase_transition_structure_validation: 0, + document_update_price_transition_structure_validation: 0, + document_create_transition_state_validation: 1, + document_delete_transition_state_validation: 0, + document_replace_transition_state_validation: 0, + document_transfer_transition_state_validation: 0, + document_purchase_transition_state_validation: 0, + document_update_price_transition_state_validation: 0, + }, + }, + process_state_transition: 0, + state_transition_to_execution_event_for_check_tx: 0, + penalties: PenaltyAmounts { + identity_id_not_correct: 50000000, + unique_key_already_present: 10000000, + validation_of_added_keys_structure_failure: 10000000, + validation_of_added_keys_proof_of_possession_failure: 50000000, + }, + event_constants: DriveAbciValidationConstants { + maximum_vote_polls_to_process: 2, + maximum_contenders_to_consider: 100, + }, + }, + withdrawal_constants: DriveAbciWithdrawalConstants { + core_expiration_blocks: 48, + cleanup_expired_locks_of_withdrawal_amounts_limit: 64, + }, + query: DriveAbciQueryVersions { + max_returned_elements: 100, + response_metadata: 0, + proofs_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + prefunded_specialized_balances: DriveAbciQueryPrefundedSpecializedBalancesVersions { + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + identity_based_queries: DriveAbciQueryIdentityVersions { + identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_contract_keys: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_contract_nonce: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identities_balances: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + balance_and_revision: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_by_public_key_hash: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + validator_queries: DriveAbciQueryValidatorVersions { + proposed_block_counts_by_evonode_ids: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + proposed_block_counts_by_range: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + data_contract_based_queries: DriveAbciQueryDataContractVersions { + data_contract: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contract_history: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + data_contracts: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + voting_based_queries: DriveAbciQueryVotingVersions { + vote_polls_by_end_date_query: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_vote_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_voters_for_identity: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resource_identity_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contested_resources: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + system: DriveAbciQuerySystemVersions { + version_upgrade_state: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + version_upgrade_vote_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + epoch_infos: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + current_quorums_info: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + partial_status: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + path_elements: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + total_credits_in_platform: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + }, + dpp: DPPVersion { + costs: CostVersions { + signature_verify: 0, + }, + validation: DPPValidationVersions { + json_schema_validator: JsonSchemaValidatorVersions { + new: 0, + validate: 0, + compile: 0, + compile_and_validate: 0, + }, + data_contract: DataContractValidationVersions { + validate: 0, + validate_config_update: 0, + validate_index_definitions: 0, + validate_index_naming_duplicates: 0, + validate_not_defined_properties: 0, + validate_property_definition: 0, + }, + document_type: DocumentTypeValidationVersions { + validate_update: 0, + contested_index_limit: 1, + unique_index_limit: 10, + }, + voting: VotingValidationVersions { + allow_other_contenders_time_mainnet_ms: 604_800_000, // 1 week in ms + allow_other_contenders_time_testing_ms: 2_700_000, //45 minutes + votes_allowed_per_masternode: 5, + }, + }, + state_transition_serialization_versions: StateTransitionSerializationVersions { + identity_public_key_in_creation: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_top_up_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_withdrawal_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + identity_credit_transfer_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + masternode_vote_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_create_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_update_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + documents_batch_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_base_state_transition: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_create_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_replace_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_delete_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_transfer_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_update_price_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + document_purchase_state_transition: DocumentFeatureVersionBounds { + bounds: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + }, + state_transition_conversion_versions: StateTransitionConversionVersions { + identity_to_identity_create_transition: 0, + identity_to_identity_top_up_transition: 0, + identity_to_identity_withdrawal_transition: 1, + identity_to_identity_create_transition_with_signer: 0, + }, + state_transition_method_versions: StateTransitionMethodVersions { + public_key_in_creation_methods: PublicKeyInCreationMethodVersions { + from_public_key_signed_with_private_key: 0, + from_public_key_signed_external: 0, + hash: 0, + duplicated_key_ids_witness: 0, + duplicated_keys_witness: 0, + validate_identity_public_keys_structure: 0, + }, + }, + state_transitions: StateTransitionVersions { + documents: DocumentTransitionVersions { + documents_batch_transition: DocumentsBatchTransitionVersions { + validation: DocumentsBatchTransitionValidationVersions { + find_duplicates_by_id: 0, + validate_base_structure: 0, + }, + }, + }, + identities: IdentityTransitionVersions { + max_public_keys_in_creation: 6, + asset_locks: IdentityTransitionAssetLockVersions { + required_asset_lock_duff_balance_for_processing_start_for_identity_create: + 200000, + required_asset_lock_duff_balance_for_processing_start_for_identity_top_up: + 50000, + validate_asset_lock_transaction_structure: 0, + validate_instant_asset_lock_proof_structure: 0, + }, + credit_withdrawal: IdentityCreditWithdrawalTransitionVersions { + default_constructor: 1, + }, + }, + }, + contract_versions: ContractVersions { + max_serialized_size: 65000, + contract_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + contract_structure_version: 0, + created_data_contract_structure: 0, + config: 0, + methods: DataContractMethodVersions { + validate_document: 0, + validate_update: 0, + schema: 0, + }, + document_type_versions: DocumentTypeVersions { + index_versions: DocumentTypeIndexVersions { + index_levels_from_indices: 0, + }, + class_method_versions: DocumentTypeClassMethodVersions { + try_from_schema: 0, + create_document_types_from_document_schemas: 0, + }, + structure_version: 0, + schema: DocumentTypeSchemaVersions { + enrich_with_base_schema: 0, + find_identifier_and_binary_paths: 0, + validate_max_depth: 0, + max_depth: 256, + recursive_schema_validator_versions: RecursiveSchemaValidatorVersions { + traversal_validator: 0, + }, + validate_schema_compatibility: 0, + }, + methods: DocumentTypeMethodVersions { + create_document_from_data: 0, + create_document_with_prevalidated_properties: 0, + prefunded_voting_balance_for_document: 0, + contested_vote_poll_for_document: 0, + estimated_size: 0, + index_for_types: 0, + max_size: 0, + serialize_value_for_key: 0, + deserialize_value_for_key: 0, + }, + }, + }, + document_versions: DocumentVersions { + document_structure_version: 0, + document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_cbor_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + extended_document_structure_version: 0, + extended_document_serialization_version: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + document_method_versions: DocumentMethodVersions { + is_equal_ignoring_timestamps: 0, + hash: 0, + get_raw_for_contract: 0, + get_raw_for_document_type: 0, + try_into_asset_unlock_base_transaction_info: 0, + }, + }, + identity_versions: IdentityVersions { + identity_structure_version: 0, + identity_key_structure_version: 0, + identity_key_type_method_versions: IdentityKeyTypeMethodVersions { + random_public_key_data: 0, + random_public_and_private_key_data: 0, + }, + }, + voting_versions: VotingVersions { + default_vote_poll_time_duration_mainnet_ms: 1_209_600_000, //2 weeks + default_vote_poll_time_duration_test_network_ms: 5_400_000, //90 minutes + contested_document_vote_poll_stored_info_version: 0, + }, + asset_lock_versions: AssetLockVersions { + reduced_asset_lock_value: FeatureVersionBounds { + min_version: 0, + max_version: 0, + default_current_version: 0, + }, + }, + methods: DPPMethodVersions { + epoch_core_reward_credits_for_distribution: 0, + daily_withdrawal_limit: 0, + }, + }, + system_data_contracts: SystemDataContractVersions { + withdrawals: 1, + dpns: 1, + dashpay: 1, + masternode_reward_shares: 1, + feature_flags: 1, + }, + fee_version: FEE_VERSION1, + system_limits: SystemLimits { + estimated_contract_max_serialized_size: 16384, + max_field_value_size: 5120, //5 KiB + max_state_transition_size: 20480, //20 KiB + max_transitions_in_documents_batch: 1, + withdrawal_transactions_per_block_limit: 4, + retry_signing_expired_withdrawal_documents_per_block_limit: 1, + max_withdrawal_amount: 50_000_000_000_000, //500 Dash + }, + consensus: ConsensusVersions { + tenderdash_consensus_version: 1, + }, +}; diff --git a/packages/rs-platform-versioning/Cargo.toml b/packages/rs-platform-versioning/Cargo.toml index a5ae925729..89b1f001bb 100644 --- a/packages/rs-platform-versioning/Cargo.toml +++ b/packages/rs-platform-versioning/Cargo.toml @@ -2,7 +2,7 @@ name = "platform-versioning" authors = ["Samuel Westrich "] description = "Version derivation" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" diff --git a/packages/rs-sdk/Cargo.toml b/packages/rs-sdk/Cargo.toml index 80b069286c..4ffda217a0 100644 --- a/packages/rs-sdk/Cargo.toml +++ b/packages/rs-sdk/Cargo.toml @@ -1,9 +1,10 @@ [package] name = "dash-sdk" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" [dependencies] + arc-swap = { version = "1.7.1" } dpp = { path = "../rs-dpp", default-features = false, features = [ "dash-sdk-features", @@ -15,11 +16,11 @@ drive = { path = "../rs-drive", default-features = false, features = [ ] } drive-proof-verifier = { path = "../rs-drive-proof-verifier" } dapi-grpc-macros = { path = "../rs-dapi-grpc-macros" } -thiserror = "1.0.58" -tokio = { version = "1.39", features = ["macros"] } -tokio-util = { version = "0.7" } -async-trait = { version = "0.1.79" } http = { version = "1.1" } +thiserror = "1.0.64" +tokio = { version = "1.40.0", features = ["macros"] } +tokio-util = { version = "0.7.12" } +async-trait = { version = "0.1.83" } ciborium = { git = "https://github.com/qrayven/ciborium", branch = "feat-ser-null-as-undefined" } serde = { version = "1.0.197", default-features = false, features = [ "rc", @@ -38,7 +39,7 @@ bip37-bloom-filter = { git = "https://github.com/dashpay/rs-bip37-bloom-filter", pollster = { version = "0.3.0" } [dev-dependencies] -tokio = { version = "1.39", features = ["macros", "rt-multi-thread"] } +tokio = { version = "1.40.0", features = ["macros", "rt-multi-thread"] } rs-dapi-client = { path = "../rs-dapi-client", features = ["mocks"] } base64 = { version = "0.22.1" } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } diff --git a/packages/rs-sdk/README.md b/packages/rs-sdk/README.md index 4d543c5857..c14b9bbd59 100644 --- a/packages/rs-sdk/README.md +++ b/packages/rs-sdk/README.md @@ -97,9 +97,9 @@ Run the offline test using the following command: cargo test -p dash-platform-sdk ``` -## Implementing Fetch and FetchAny on new objects +## Implementing Fetch and FetchMany on new objects -How to implement `Fetch` and `FetchAny` trait on new object types (`Object`). +How to implement `Fetch` and `FetchMany` trait on new object types (`Object`). It's basically copy-paste and tweaking of existing implementation for another object type. @@ -114,7 +114,7 @@ Definitions: Checklist: 1. [ ] Ensure protobuf messages are defined in `packages/dapi-grpc/protos/platform/v0/platform.proto` and generated - correctly in `packages/dapi-grpc/src/platform/proto/org.dash.platform.dapi.v0.rs`. + correctly in `packages/dapi-grpc/src/platform/client/org.dash.platform.dapi.v0.rs`. 2. [ ] In `packages/dapi-grpc/build.rs`, add `Request` to `VERSIONED_REQUESTS` and response `Response` to `VERSIONED_RESPONSES`. This should add derive of `VersionedGrpcMessage` (and some more) in `org.dash.platform.dapi.v0.rs`. 3. [ ] Link request and response type to dapi-client by adding appropriate invocation of `impl_transport_request_grpc!` macro @@ -123,7 +123,7 @@ in `packages/rs-dapi-client/src/transport/grpc.rs`. used internally. If you intend to implement `FetchMany`, you should define type returned by `fetch_many()` using `RetrievedObjects` - that will store collection of returned objects, indexd by some key. + that will store collection of returned objects, indexed by some key. 5. [ ] Implement `FromProof` trait for the `Object` (or type defined in `types.rs`) in `packages/rs-drive-proof-verifier/src/proof.rs`. 6. [ ] Implement `Query` trait for the `Request` in `packages/rs-sdk/src/platform/query.rs`. 7. [ ] Implement `Fetch` trait for the `Object` (or type defined in `types.rs`), with inner type Request = `Request`, diff --git a/packages/rs-sdk/src/core/transaction.rs b/packages/rs-sdk/src/core/transaction.rs index a7046a2fdb..39dd85e562 100644 --- a/packages/rs-sdk/src/core/transaction.rs +++ b/packages/rs-sdk/src/core/transaction.rs @@ -1,12 +1,11 @@ +use crate::platform::fetch_current_no_parameters::FetchCurrent; +use crate::platform::types::epoch::Epoch; use crate::{Error, Sdk}; use bip37_bloom_filter::{BloomFilter, BloomFilterData}; use dapi_grpc::core::v0::{ transactions_with_proofs_request, transactions_with_proofs_response, GetTransactionRequest, GetTransactionResponse, TransactionsWithProofsRequest, TransactionsWithProofsResponse, }; -use dapi_grpc::platform::v0::{ - get_epochs_info_request, get_epochs_info_response, GetEpochsInfoRequest, GetEpochsInfoResponse, -}; use dpp::dashcore::consensus::Decodable; use dpp::dashcore::{Address, InstantLock, MerkleBlock, OutPoint, Transaction, Txid}; use dpp::identity::state_transition::asset_lock_proof::chain::ChainAssetLockProof; @@ -201,30 +200,8 @@ impl Sdk { // Wait until platform chain is on the block's chain locked height loop { - let request = GetEpochsInfoRequest { - version: Some(get_epochs_info_request::Version::V0( - get_epochs_info_request::GetEpochsInfoRequestV0 { - start_epoch: Some(0), - count: 1, - ..Default::default() - }, - )), - }; - - let GetEpochsInfoResponse { - version: - Some(get_epochs_info_response::Version::V0( - get_epochs_info_response::GetEpochsInfoResponseV0 { - metadata: Some(metadata), - .. - }, - )), - } = self.execute(request, RequestSettings::default()).await? - else { - return Err(Error::DapiClientError(String::from( - "missing V0 `metadata` field", - ))); - }; + let (_epoch, metadata) = + Epoch::fetch_current_with_metadata(self).await?; if metadata.core_chain_locked_height >= core_chain_locked_height { break; diff --git a/packages/rs-sdk/src/lib.rs b/packages/rs-sdk/src/lib.rs index 14b65a58c2..d165a211a5 100644 --- a/packages/rs-sdk/src/lib.rs +++ b/packages/rs-sdk/src/lib.rs @@ -32,8 +32,8 @@ //! //! 1. [`Identifier`](crate::platform::Identifier) - fetches an object by its identifier //! 2. [`DocumentQuery`](crate::platform::DocumentQuery) - fetches documents based on search conditions; see -//! [query syntax documentation](https://docs.dash.org/projects/platform/en/stable/docs/reference/query-syntax.html) -//! for more details. +//! [query syntax documentation](https://docs.dash.org/projects/platform/en/stable/docs/reference/query-syntax.html) +//! for more details. //! 3. [`DriveQuery`](crate::platform::DriveDocumentQuery) - can be used to build more complex queries //! //! ## Testability @@ -73,6 +73,7 @@ pub mod sdk; pub use error::Error; pub use sdk::{RequestSettings, Sdk, SdkBuilder}; +pub use dashcore_rpc; pub use dpp; pub use rs_dapi_client as dapi_client; diff --git a/packages/rs-sdk/src/mock.rs b/packages/rs-sdk/src/mock.rs index b3f1b69c63..7ad4dc7ccd 100644 --- a/packages/rs-sdk/src/mock.rs +++ b/packages/rs-sdk/src/mock.rs @@ -32,7 +32,6 @@ pub mod sdk; // Otherwise dapi_grpc_macros::Mockable fails. // TODO: move Mockable to some crate that can be shared between dapi-grpc, rs-dapi-client, and dash-sdk pub use dapi_grpc::mock::Mockable; - // MockResponse is needed even if mocks feature is disabled - it just does nothing. #[cfg(not(feature = "mocks"))] pub use noop::MockResponse; diff --git a/packages/rs-sdk/src/mock/requests.rs b/packages/rs-sdk/src/mock/requests.rs index 6cb4dde30d..0b2e43692f 100644 --- a/packages/rs-sdk/src/mock/requests.rs +++ b/packages/rs-sdk/src/mock/requests.rs @@ -1,4 +1,5 @@ use super::MockDashPlatformSdk; +use dpp::bincode::config::standard; use dpp::{ bincode, block::extended_epoch_info::ExtendedEpochInfo, @@ -14,9 +15,11 @@ use dpp::{ }, voting::votes::{resource_vote::ResourceVote, Vote}, }; +use drive::grovedb::Element; use drive_proof_verifier::types::{ - Contenders, ContestedResources, ElementFetchRequestItem, IdentityBalanceAndRevision, - MasternodeProtocolVote, PrefundedSpecializedBalance, TotalCreditsInPlatform, + Contenders, ContestedResources, CurrentQuorumsInfo, ElementFetchRequestItem, EvoNodeStatus, + IdentityBalanceAndRevision, MasternodeProtocolVote, PrefundedSpecializedBalance, + ProposerBlockCounts, RetrievedIntegerValue, TotalCreditsInPlatform, VotePollsGroupedByTimestamp, Voters, }; use std::collections::BTreeMap; @@ -164,6 +167,29 @@ impl MockResponse for Document { } } +impl MockResponse for Element { + fn mock_serialize(&self, _sdk: &MockDashPlatformSdk) -> Vec { + // Create a bincode configuration + let config = standard(); + + // Serialize using the specified configuration + bincode::encode_to_vec(self, config).expect("Failed to serialize Element") + } + + fn mock_deserialize(_sdk: &MockDashPlatformSdk, buf: &[u8]) -> Self + where + Self: Sized, + { + // Create a bincode configuration + let config = standard(); + + // Deserialize using the specified configuration + bincode::decode_from_slice(buf, config) + .expect("Failed to deserialize Element") + .0 + } +} + impl MockResponse for drive_proof_verifier::types::IdentityNonceFetcher { fn mock_serialize(&self, _sdk: &MockDashPlatformSdk) -> Vec { (self.0).to_be_bytes().to_vec() @@ -210,6 +236,20 @@ impl MockResponse for ProTxHash { } } +impl MockResponse for ProposerBlockCounts { + fn mock_serialize(&self, sdk: &MockDashPlatformSdk) -> Vec { + self.0.mock_serialize(sdk) + } + + fn mock_deserialize(sdk: &MockDashPlatformSdk, buf: &[u8]) -> Self + where + Self: Sized, + { + let data = RetrievedIntegerValue::::mock_deserialize(sdk, buf); + ProposerBlockCounts(data) + } +} + impl_mock_response!(Identity); impl_mock_response!(IdentityPublicKey); impl_mock_response!(Identifier); @@ -229,3 +269,5 @@ impl_mock_response!(VotePollsGroupedByTimestamp); impl_mock_response!(PrefundedSpecializedBalance); impl_mock_response!(TotalCreditsInPlatform); impl_mock_response!(ElementFetchRequestItem); +impl_mock_response!(EvoNodeStatus); +impl_mock_response!(CurrentQuorumsInfo); diff --git a/packages/rs-sdk/src/mock/sdk.rs b/packages/rs-sdk/src/mock/sdk.rs index 0f37c7dd36..02258c0cd1 100644 --- a/packages/rs-sdk/src/mock/sdk.rs +++ b/packages/rs-sdk/src/mock/sdk.rs @@ -2,7 +2,10 @@ //! //! See [MockDashPlatformSdk] for more details. use crate::{ - platform::{types::identity::IdentityRequest, DocumentQuery, Fetch, FetchMany, Query}, + platform::{ + types::{evonode::EvoNode, identity::IdentityRequest}, + DocumentQuery, Fetch, FetchMany, Query, + }, Error, Sdk, }; use arc_swap::ArcSwapOption; @@ -201,9 +204,10 @@ impl MockDashPlatformSdk { self.load_expectation::(filename) .await? } + "EvoNode" => self.load_expectation::(filename).await?, _ => { return Err(Error::Config(format!( - "unknown request type {} in {}", + "unknown request type {} in {}, missing match arm in load_expectations?", request_type, filename.display() ))) diff --git a/packages/rs-sdk/src/platform.rs b/packages/rs-sdk/src/platform.rs index 4766201620..a4c0fb83f4 100644 --- a/packages/rs-sdk/src/platform.rs +++ b/packages/rs-sdk/src/platform.rs @@ -11,6 +11,7 @@ mod document_query; mod fetch; pub mod fetch_current_no_parameters; mod fetch_many; +mod fetch_unproved; mod identities_contract_keys_query; mod query; pub mod transition; @@ -31,5 +32,6 @@ pub use { document_query::DocumentQuery, fetch::Fetch, fetch_many::FetchMany, + fetch_unproved::FetchUnproved, query::{LimitQuery, Query, QueryStartInfo, DEFAULT_EPOCH_QUERY_LIMIT}, }; diff --git a/packages/rs-sdk/src/platform/fetch_many.rs b/packages/rs-sdk/src/platform/fetch_many.rs index b2891412c7..eede165d26 100644 --- a/packages/rs-sdk/src/platform/fetch_many.rs +++ b/packages/rs-sdk/src/platform/fetch_many.rs @@ -4,6 +4,7 @@ //! //! ## Traits //! - `[FetchMany]`: An async trait that fetches multiple items of a specific type from Platform. +use super::LimitQuery; use crate::{ error::Error, mock::MockResponse, @@ -13,7 +14,9 @@ use crate::{ use dapi_grpc::platform::v0::{ GetContestedResourceIdentityVotesRequest, GetContestedResourceVoteStateRequest, GetContestedResourceVotersForIdentityRequest, GetContestedResourcesRequest, - GetDataContractsRequest, GetDocumentsResponse, GetEpochsInfoRequest, GetIdentityKeysRequest, + GetDataContractsRequest, GetDocumentsResponse, GetEpochsInfoRequest, + GetEvonodesProposedEpochBlocksByIdsRequest, GetEvonodesProposedEpochBlocksByRangeRequest, + GetIdentitiesBalancesRequest, GetIdentityKeysRequest, GetPathElementsRequest, GetProtocolVersionUpgradeStateRequest, GetProtocolVersionUpgradeVoteStatusRequest, GetVotePollsByEndDateRequest, }; @@ -28,17 +31,18 @@ use dpp::{ block::extended_epoch_info::ExtendedEpochInfo, voting::votes::resource_vote::ResourceVote, }; use dpp::{document::Document, voting::contender_structs::ContenderWithSerializedDocument}; +use drive::grovedb::query_result_type::Key; +use drive::grovedb::Element; use drive_proof_verifier::types::{ - Contenders, ContestedResource, ContestedResources, DataContracts, ExtendedEpochInfos, - IdentityPublicKeys, MasternodeProtocolVote, MasternodeProtocolVotes, ProtocolVersionUpgrades, - ResourceVotesByIdentity, VotePollsGroupedByTimestamp, Voter, Voters, + Contenders, ContestedResource, ContestedResources, DataContracts, Elements, ExtendedEpochInfos, + IdentityBalances, IdentityPublicKeys, MasternodeProtocolVote, MasternodeProtocolVotes, + ProposerBlockCountById, ProposerBlockCountByRange, ProposerBlockCounts, + ProtocolVersionUpgrades, ResourceVotesByIdentity, VotePollsGroupedByTimestamp, Voter, Voters, }; use drive_proof_verifier::{types::Documents, FromProof}; use rs_dapi_client::{transport::TransportRequest, DapiRequest, RequestSettings}; use std::collections::BTreeMap; -use super::LimitQuery; - /// Fetch multiple objects from Platform. /// /// To fetch multiple objects from Platform, you need to define some query (criteria that fetched objects must match) @@ -264,9 +268,9 @@ impl FetchMany for IdentityPublicKey { /// /// * [EpochQuery](super::types::epoch::EpochQuery) - query that specifies epoch matching criteria /// * [EpochIndex](dpp::block::epoch::EpochIndex) - epoch index of first object to find; will return up to -/// [DEFAULT_EPOCH_QUERY_LIMIT](super::query::DEFAULT_EPOCH_QUERY_LIMIT) objects starting from this index +/// [DEFAULT_EPOCH_QUERY_LIMIT](super::query::DEFAULT_EPOCH_QUERY_LIMIT) objects starting from this index /// * [`LimitQuery`](super::LimitQuery), [`LimitQuery`](super::LimitQuery) - limit query -/// that allows to specify maximum number of objects to fetch; see also [FetchMany::fetch_many_with_limit()]. +/// that allows to specify maximum number of objects to fetch; see also [FetchMany::fetch_many_with_limit()]. impl FetchMany for ExtendedEpochInfo { type Request = GetEpochsInfoRequest; } @@ -283,12 +287,12 @@ impl FetchMany for ExtendedEpochInfo { /// ## Example /// /// ```rust -/// use dash_sdk::{Sdk, platform::FetchMany}; -/// use drive_proof_verifier::types::ProtocolVersionVoteCount; +/// use dash_sdk::{Sdk, platform::FetchMany, Error}; +/// use drive_proof_verifier::types::{ProtocolVersionUpgrades, ProtocolVersionVoteCount}; /// /// # tokio_test::block_on(async { /// let sdk = Sdk::new_mock(); -/// let result = ProtocolVersionVoteCount::fetch_many(&sdk, ()).await; +/// let result: Result = ProtocolVersionVoteCount::fetch_many(&sdk, ()).await; /// # }); /// ``` impl FetchMany for ProtocolVersionVoteCount { @@ -304,15 +308,46 @@ impl FetchMany for ProtocolVersionVote /// ## Supported query types /// /// * [ProTxHash](dashcore_rpc::dashcore::ProTxHash) - proTxHash of first object to find; will return up to -/// [DEFAULT_NODES_VOTING_LIMIT](super::query::DEFAULT_NODES_VOTING_LIMIT) objects +/// [DEFAULT_NODES_VOTING_LIMIT](super::query::DEFAULT_NODES_VOTING_LIMIT) objects /// * [`Option`](dashcore_rpc::dashcore::ProTxHash) - proTxHash that can be and [Option]; if it is `None`, -/// the query will return all objects +/// the query will return all objects /// * [`LimitQuery`](super::LimitQuery) - limit query that allows to specify maximum number of objects -/// to fetch; see also [FetchMany::fetch_many_with_limit()]. +/// to fetch; see also [FetchMany::fetch_many_with_limit()]. impl FetchMany for MasternodeProtocolVote { type Request = GetProtocolVersionUpgradeVoteStatusRequest; } +/// Fetch information about the proposed block count by proposers for a given epoch. +/// +/// Returns list of [ProposerBlockCounts](drive_proof_verifier::types::ProposerBlockCounts) +/// indexed by [ProTxHash](dashcore_rpc::dashcore::ProTxHash). Each item in this list represents +/// node protxhash and the amount of blocks that were proposed. +/// +/// ## Supported query types +/// +/// * [ProTxHash](dashcore_rpc::dashcore::ProTxHash) - proTxHash of first object to find; will return up to +/// [DEFAULT_NODES_VOTING_LIMIT](super::query::DEFAULT_NODES_VOTING_LIMIT) objects +/// * [`Option`](dashcore_rpc::dashcore::ProTxHash) - proTxHash that can be and [Option]; if it is `None`, +/// the query will return all objects +/// * [`LimitQuery`](super::LimitQuery) - limit query that allows to specify maximum number of objects +/// to fetch; see also [FetchMany::fetch_many_with_limit()]. +impl FetchMany for ProposerBlockCountByRange { + type Request = GetEvonodesProposedEpochBlocksByRangeRequest; +} + +/// Fetch information about the proposed block count by proposers for a given epoch. +/// +/// Returns list of [ProposerBlockCounts](drive_proof_verifier::types::ProposerBlockCounts) +/// indexed by [ProTxHash](dashcore_rpc::dashcore::ProTxHash). Each item in this list represents +/// node pro_tx_hash and the amount of blocks that were proposed. +/// +/// ## Supported query types +/// +/// * [ProTxHash](dashcore_rpc::dashcore::ProTxHash) - proTxHash of an evonode to find; will return one evonode block count +impl FetchMany for ProposerBlockCountById { + type Request = GetEvonodesProposedEpochBlocksByIdsRequest; +} + /// Fetch multiple data contracts. /// /// Returns [DataContracts](drive_proof_verifier::types::DataContracts) indexed by [Identifier](dpp::prelude::Identifier). @@ -373,3 +408,23 @@ impl FetchMany for ResourceVote { impl FetchMany for VotePoll { type Request = GetVotePollsByEndDateRequest; } + +// +/// Fetch multiple identity balances. +/// +/// ## Supported query types +/// +/// * [Vec](dpp::prelude::Identifier) - list of identifiers of identities whose balance we want to fetch +impl FetchMany for drive_proof_verifier::types::IdentityBalance { + type Request = GetIdentitiesBalancesRequest; +} + +// +/// Fetch multiple elements. +/// +/// ## Supported query types +/// +/// * [KeysInPath] +impl FetchMany for Element { + type Request = GetPathElementsRequest; +} diff --git a/packages/rs-sdk/src/platform/fetch_unproved.rs b/packages/rs-sdk/src/platform/fetch_unproved.rs new file mode 100644 index 0000000000..9e89ad163a --- /dev/null +++ b/packages/rs-sdk/src/platform/fetch_unproved.rs @@ -0,0 +1,118 @@ +use super::{types::evonode::EvoNode, Query}; +use crate::error::Error; +use crate::mock::MockResponse; +use crate::Sdk; +use dapi_grpc::platform::v0::{ + self as platform_proto, GetStatusRequest, GetStatusResponse, ResponseMetadata, +}; +use dpp::{dashcore::Network, version::PlatformVersion}; +use drive_proof_verifier::types::EvoNodeStatus; +use drive_proof_verifier::unproved::FromUnproved; +use rs_dapi_client::{transport::TransportRequest, DapiRequest, RequestSettings}; +use std::fmt::Debug; + +#[async_trait::async_trait] +pub trait FetchUnproved +where + Self: Sized + Debug + MockResponse, +{ + /// Type of request used to fetch data from Platform. + type Request: TransportRequest; + + /// Fetch unproved data from the Platform. + /// + /// ## Parameters + /// - `sdk`: An instance of [Sdk]. + /// - `query`: Query used to fetch data from the Platform. + /// + /// ## Returns + /// Returns: + /// * `Ok(Some(Self))` when object is found. + /// * `Ok(None)` when object is not found. + /// * [`Err(Error)`](Error) when an error occurs. + async fn fetch_unproved::Request>>( + sdk: &Sdk, + query: Q, + ) -> Result, Error> + where + Self: FromUnproved< + ::Request, + Request = ::Request, + Response = <::Request as TransportRequest>::Response, + >, + { + let (obj, _mtd) = + Self::fetch_unproved_with_settings(sdk, query, RequestSettings::default()).await?; + Ok(obj) + } + + /// Fetch unproved data from the Platform with custom settings. + /// + /// ## Parameters + /// - `sdk`: An instance of [Sdk]. + /// - `query`: Query used to fetch data from the Platform. + /// - `settings`: Request settings for the connection to Platform. + /// + /// ## Returns + /// Returns: + /// * `Ok(Some(Self))` when object is found. + /// * `Ok(None)` when object is not found. + /// * [`Err(Error)`](Error) when an error occurs. + async fn fetch_unproved_with_settings::Request>>( + sdk: &Sdk, + query: Q, + settings: RequestSettings, + ) -> Result<(Option, ResponseMetadata), Error> + where + Self: FromUnproved< + ::Request, + Request = ::Request, + Response = <::Request as TransportRequest>::Response, + >, + { + // Default implementation + let request: ::Request = query.query(false)?; + + // Execute the request using the Sdk instance + let response = request.clone().execute(sdk, settings).await?; + + // Parse the response into the appropriate type along with metadata + let (object, mtd): (Option, platform_proto::ResponseMetadata) = + Self::maybe_from_unproved_with_metadata(request, response, sdk.network, sdk.version())?; + + Ok((object, mtd)) + } +} + +impl FetchUnproved for drive_proof_verifier::types::CurrentQuorumsInfo { + type Request = platform_proto::GetCurrentQuorumsInfoRequest; +} + +impl FetchUnproved for EvoNodeStatus { + type Request = EvoNode; +} + +// We need to delegate FromUnproved for the impl FetchUnproved for EvonodeStatus. +#[async_trait::async_trait] +impl FromUnproved for EvoNodeStatus { + type Request = EvoNode; + type Response = GetStatusResponse; + + fn maybe_from_unproved_with_metadata, O: Into>( + request: I, + response: O, + network: Network, + platform_version: &PlatformVersion, + ) -> Result<(Option, ResponseMetadata), drive_proof_verifier::Error> + where + Self: Sized, + { + // delegate to the FromUnproved + >::maybe_from_unproved_with_metadata( + request.into(), + response, + network, + platform_version, + ) + } +} diff --git a/packages/rs-sdk/src/platform/query.rs b/packages/rs-sdk/src/platform/query.rs index 6e7de72013..a145d89058 100644 --- a/packages/rs-sdk/src/platform/query.rs +++ b/packages/rs-sdk/src/platform/query.rs @@ -1,24 +1,31 @@ //! Query trait representing criteria for fetching data from Platform. //! //! [Query] trait is used to specify individual objects as well as search criteria for fetching multiple objects from Platform. +use super::types::epoch::EpochQuery; +use super::types::evonode::EvoNode; use crate::{error::Error, platform::document_query::DocumentQuery}; use dapi_grpc::mock::Mockable; use dapi_grpc::platform::v0::get_contested_resource_identity_votes_request::GetContestedResourceIdentityVotesRequestV0; use dapi_grpc::platform::v0::get_contested_resource_voters_for_identity_request::GetContestedResourceVotersForIdentityRequestV0; use dapi_grpc::platform::v0::get_contested_resources_request::GetContestedResourcesRequestV0; +use dapi_grpc::platform::v0::get_current_quorums_info_request::GetCurrentQuorumsInfoRequestV0; +use dapi_grpc::platform::v0::get_evonodes_proposed_epoch_blocks_by_range_request::GetEvonodesProposedEpochBlocksByRangeRequestV0; use dapi_grpc::platform::v0::get_path_elements_request::GetPathElementsRequestV0; +use dapi_grpc::platform::v0::get_status_request::GetStatusRequestV0; use dapi_grpc::platform::v0::get_total_credits_in_platform_request::GetTotalCreditsInPlatformRequestV0; use dapi_grpc::platform::v0::{ - self as proto, get_identity_keys_request, get_identity_keys_request::GetIdentityKeysRequestV0, - get_path_elements_request, get_total_credits_in_platform_request, AllKeys, - GetContestedResourceVoteStateRequest, GetContestedResourceVotersForIdentityRequest, - GetContestedResourcesRequest, GetEpochsInfoRequest, GetIdentityKeysRequest, - GetPathElementsRequest, GetProtocolVersionUpgradeStateRequest, - GetProtocolVersionUpgradeVoteStatusRequest, GetTotalCreditsInPlatformRequest, KeyRequestType, + self as proto, get_current_quorums_info_request, get_identity_keys_request, + get_identity_keys_request::GetIdentityKeysRequestV0, get_path_elements_request, + get_total_credits_in_platform_request, AllKeys, GetContestedResourceVoteStateRequest, + GetContestedResourceVotersForIdentityRequest, GetContestedResourcesRequest, + GetCurrentQuorumsInfoRequest, GetEpochsInfoRequest, + GetEvonodesProposedEpochBlocksByRangeRequest, GetIdentityKeysRequest, GetPathElementsRequest, + GetProtocolVersionUpgradeStateRequest, GetProtocolVersionUpgradeVoteStatusRequest, + GetTotalCreditsInPlatformRequest, KeyRequestType, }; use dapi_grpc::platform::v0::{ - GetContestedResourceIdentityVotesRequest, GetPrefundedSpecializedBalanceRequest, - GetVotePollsByEndDateRequest, + get_status_request, GetContestedResourceIdentityVotesRequest, + GetPrefundedSpecializedBalanceRequest, GetStatusRequest, GetVotePollsByEndDateRequest, }; use dashcore_rpc::dashcore::{hashes::Hash, ProTxHash}; use dpp::version::PlatformVersionError; @@ -33,11 +40,11 @@ use drive_proof_verifier::types::{KeysInPath, NoParamQuery}; use rs_dapi_client::transport::TransportRequest; use std::fmt::Debug; -use super::types::epoch::EpochQuery; /// Default limit of epoch records returned by Platform. pub const DEFAULT_EPOCH_QUERY_LIMIT: u32 = 100; /// Default limit of epoch records returned by Platform. pub const DEFAULT_NODES_VOTING_LIMIT: u32 = 100; + /// Trait implemented by objects that can be used as queries. /// /// [Query] trait is used to specify criteria for fetching data from Platform. @@ -46,11 +53,10 @@ pub const DEFAULT_NODES_VOTING_LIMIT: u32 = 100; /// Some examples of queries include: /// /// 1. [`Identifier`](crate::platform::Identifier) - fetches an object by its identifier; implemented for -/// [Identity](dpp::prelude::Identity), [DataContract](dpp::prelude::DataContract) and [Document](dpp::document::Document). -/// 2. [`DocumentQuery`] - fetches [Document](dpp::document::Document) based on search -/// conditions; see -/// [query syntax documentation](https://docs.dash.org/projects/platform/en/stable/docs/reference/query-syntax.html) -/// for more details. +/// [Identity](dpp::prelude::Identity), [DataContract](dpp::prelude::DataContract) and [Document](dpp::document::Document). +/// 2. [`DocumentQuery`] - fetches [Document](dpp::document::Document) based on search conditions; see +/// [query syntax documentation](https://docs.dash.org/projects/platform/en/stable/docs/reference/query-syntax.html) +/// for more details. /// /// ## Example /// @@ -96,7 +102,7 @@ where { fn query(self, prove: bool) -> Result { if !prove { - unimplemented!("queries without proofs are not supported yet"); + tracing::warn!(request= ?self, "sending query without proof, ensure data is trusted"); } Ok(self) } @@ -436,6 +442,39 @@ impl Query } } +impl Query + for LimitQuery +{ + fn query(self, prove: bool) -> Result { + use proto::get_evonodes_proposed_epoch_blocks_by_range_request::{ + get_evonodes_proposed_epoch_blocks_by_range_request_v0::Start, Version, + }; + let query = match self.query.query(prove)?.version { + Some(Version::V0(v0)) => GetEvonodesProposedEpochBlocksByRangeRequestV0 { + start: self.start_info.map(|v| { + if v.start_included { + Start::StartAt(v.start_key) + } else { + Start::StartAfter(v.start_key) + } + }), + ..v0 + } + .into(), + None => { + return Err(Error::Protocol( + PlatformVersionError::UnknownVersionError( + "version not present in request".into(), + ) + .into(), + )) + } + }; + + Ok(query) + } +} + impl Query for ContestedResourceVotesGivenByIdentityQuery { @@ -583,3 +622,60 @@ impl Query for NoParamQuery { Ok(request) } } + +impl Query for NoParamQuery { + fn query(self, prove: bool) -> Result { + if prove { + unimplemented!( + "query with proof are not supported yet for GetCurrentQuorumsInfoRequest" + ); + } + + let request: GetCurrentQuorumsInfoRequest = GetCurrentQuorumsInfoRequest { + version: Some(get_current_quorums_info_request::Version::V0( + GetCurrentQuorumsInfoRequestV0 {}, + )), + }; + + Ok(request) + } +} + +impl Query for LimitQuery> { + fn query(self, prove: bool) -> Result { + if !prove { + unimplemented!("queries without proofs are not supported yet"); + } + + Ok(GetEvonodesProposedEpochBlocksByRangeRequest { + version: Some(proto::get_evonodes_proposed_epoch_blocks_by_range_request::Version::V0( + GetEvonodesProposedEpochBlocksByRangeRequestV0 { + epoch: self.query.map(|v| v as u32), + start: self.start_info.map(|v| { + use proto::get_evonodes_proposed_epoch_blocks_by_range_request::get_evonodes_proposed_epoch_blocks_by_range_request_v0::Start; + if v.start_included { + Start::StartAt(v.start_key) + } else { + Start::StartAfter(v.start_key) + } + }), + limit: self.limit, + + prove, + }, + )), + }) + } +} + +impl Query for EvoNode { + fn query(self, _prove: bool) -> Result { + // ignore proof + + let request: GetStatusRequest = GetStatusRequest { + version: Some(get_status_request::Version::V0(GetStatusRequestV0 {})), + }; + + Ok(request) + } +} diff --git a/packages/rs-sdk/src/platform/transition/withdraw_from_identity.rs b/packages/rs-sdk/src/platform/transition/withdraw_from_identity.rs index 1dbff8c3ea..db06f29a2a 100644 --- a/packages/rs-sdk/src/platform/transition/withdraw_from_identity.rs +++ b/packages/rs-sdk/src/platform/transition/withdraw_from_identity.rs @@ -1,4 +1,3 @@ -use dapi_grpc::platform::VersionedGrpcResponse; use dpp::dashcore::Address; use dpp::identity::accessors::IdentityGettersV0; @@ -7,19 +6,15 @@ use dpp::identity::signer::Signer; use dpp::identity::Identity; use dpp::prelude::UserFeeIncrease; -use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; -use drive_proof_verifier::error::ContextProviderError; -use drive_proof_verifier::DataContractProvider; - -use crate::platform::block_info_from_metadata::block_info_from_metadata; -use crate::platform::transition::broadcast_request::BroadcastRequestForStateTransition; +use crate::platform::transition::broadcast::BroadcastStateTransition; use crate::platform::transition::put_settings::PutSettings; use crate::{Error, Sdk}; -use dpp::state_transition::identity_credit_withdrawal_transition::methods::IdentityCreditWithdrawalTransitionMethodsV0; +use dpp::state_transition::identity_credit_withdrawal_transition::methods::{ + IdentityCreditWithdrawalTransitionMethodsV0, PreferredKeyPurposeForSigningWithdrawal, +}; +use dpp::state_transition::identity_credit_withdrawal_transition::IdentityCreditWithdrawalTransition; use dpp::state_transition::proof_result::StateTransitionProofResult; use dpp::withdrawal::Pooling; -use drive::drive::Drive; -use rs_dapi_client::{DapiRequest, RequestSettings}; #[async_trait::async_trait] pub trait WithdrawFromIdentity { @@ -27,7 +22,7 @@ pub trait WithdrawFromIdentity { async fn withdraw( &self, sdk: &Sdk, - address: Address, + address: Option
, amount: u64, core_fee_per_byte: Option, user_fee_increase: Option, @@ -41,7 +36,7 @@ impl WithdrawFromIdentity for Identity { async fn withdraw( &self, sdk: &Sdk, - address: Address, + address: Option
, amount: u64, core_fee_per_byte: Option, user_fee_increase: Option, @@ -49,52 +44,28 @@ impl WithdrawFromIdentity for Identity { settings: Option, ) -> Result { let new_identity_nonce = sdk.get_identity_nonce(self.id(), true, settings).await?; + let script = address.map(|address| CoreScript::new(address.script_pubkey())); let state_transition = IdentityCreditWithdrawalTransition::try_from_identity( self, - None, - CoreScript::new(address.script_pubkey()), + script, amount, Pooling::Never, core_fee_per_byte.unwrap_or(1), user_fee_increase.unwrap_or_default(), signer, + None, + PreferredKeyPurposeForSigningWithdrawal::TransferPreferred, new_identity_nonce, sdk.version(), None, )?; - let request = state_transition.broadcast_request_for_state_transition()?; - - request - .clone() - .execute(sdk, settings.unwrap_or_default().request_settings) - .await?; - - let request = state_transition.wait_for_state_transition_result_request()?; - - let response = request.execute(sdk, RequestSettings::default()).await?; - - let block_info = block_info_from_metadata(response.metadata()?)?; - - let proof = response.proof_owned()?; - let context_provider = - sdk.context_provider() - .ok_or(Error::from(ContextProviderError::Config( - "Context provider not initialized".to_string(), - )))?; - - let (_, result) = Drive::verify_state_transition_was_executed_with_proof( - &state_transition, - &block_info, - proof.grovedb_proof.as_slice(), - &context_provider.as_contract_lookup_fn(), - sdk.version(), - )?; + let result = state_transition.broadcast_and_wait(sdk, None).await?; match result { StateTransitionProofResult::VerifiedPartialIdentity(identity) => { identity.balance.ok_or(Error::DapiClientError( - "expected an identity balance".to_string(), + "expected an identity balance after withdrawal".to_string(), )) } _ => Err(Error::DapiClientError("proved a non identity".to_string())), diff --git a/packages/rs-sdk/src/platform/types.rs b/packages/rs-sdk/src/platform/types.rs index 13e49fafed..e4fbab2d47 100644 --- a/packages/rs-sdk/src/platform/types.rs +++ b/packages/rs-sdk/src/platform/types.rs @@ -1,5 +1,7 @@ //! Type-specific implementation for various dpp object types to make queries more convenient and intuitive. pub mod epoch; +pub mod evonode; pub mod identity; +pub mod proposed_blocks; mod total_credits_in_platform; pub mod version_votes; diff --git a/packages/rs-sdk/src/platform/types/epoch.rs b/packages/rs-sdk/src/platform/types/epoch.rs index 7026f2e551..f6b86b77ee 100644 --- a/packages/rs-sdk/src/platform/types/epoch.rs +++ b/packages/rs-sdk/src/platform/types/epoch.rs @@ -9,6 +9,9 @@ use crate::{ Error, Sdk, }; +/// Epoch type used in the SDK. +pub type Epoch = ExtendedEpochInfo; + #[async_trait] impl FetchCurrent for ExtendedEpochInfo { async fn fetch_current(sdk: &Sdk) -> Result { diff --git a/packages/rs-sdk/src/platform/types/evonode.rs b/packages/rs-sdk/src/platform/types/evonode.rs new file mode 100644 index 0000000000..01c0630b49 --- /dev/null +++ b/packages/rs-sdk/src/platform/types/evonode.rs @@ -0,0 +1,108 @@ +//! Evo Node represents a network node (server). + +use dapi_grpc::mock::Mockable; +use dapi_grpc::platform::v0::get_status_request::GetStatusRequestV0; +use dapi_grpc::platform::v0::{self as proto, get_status_request, GetStatusRequest}; +use dapi_grpc::tonic::IntoRequest; +pub use drive_proof_verifier::types::EvoNodeStatus; +use futures::future::BoxFuture; +use futures::{FutureExt, TryFutureExt}; +use rs_dapi_client::transport::{ + AppliedRequestSettings, PlatformGrpcClient, TransportClient, TransportRequest, +}; +use rs_dapi_client::{Address, ConnectionPool, RequestSettings}; +#[cfg(feature = "mocks")] +use serde::{Deserialize, Serialize}; +use std::fmt::Debug; + +/// EvoNode allows querying the status of a single node using DAPI. +/// +/// ## Example +/// +/// ```rust,no_run +/// use dash_sdk::{platform::types::evonode::EvoNode,platform::FetchUnproved, Sdk}; +/// use drive_proof_verifier::types::EvoNodeStatus; +/// use futures::executor::block_on; +/// +/// let sdk = Sdk::new_mock(); +/// let uri: http::Uri = "http://127.0.0.1:1".parse().unwrap(); +/// let node = EvoNode::new(uri.into()); +/// let status = block_on(EvoNodeStatus::fetch_unproved(&sdk, node)).unwrap(); +/// ``` + +#[derive(Debug, Clone)] +#[cfg_attr(feature = "mocks", derive(Serialize, Deserialize))] +pub struct EvoNode(Address); + +impl EvoNode { + /// Creates a new `EvoNode` with the given address. + pub fn new(address: Address) -> Self { + Self(address) + } +} + +impl Mockable for EvoNode { + #[cfg(feature = "mocks")] + fn mock_deserialize(data: &[u8]) -> Option { + serde_json::de::from_slice(data).ok() + } + + #[cfg(feature = "mocks")] + fn mock_serialize(&self) -> Option> { + serde_json::ser::to_vec(self).ok() + } +} +impl TransportRequest for EvoNode { + type Client = PlatformGrpcClient; + type Response = proto::GetStatusResponse; + + const SETTINGS_OVERRIDES: rs_dapi_client::RequestSettings = RequestSettings::default(); + + fn method_name(&self) -> &'static str { + "get_status" + } + + fn execute_transport<'c>( + self, + _client: &'c mut Self::Client, + settings: &AppliedRequestSettings, + ) -> BoxFuture<'c, Result::Error>> { + let uri = self.0.uri(); + // As this is single node connection case, we create a new connection pool with space for a single connection + // and we drop it after use. + // + // We also create a new client to use with this request, so that the user does not need to + // reconfigure SDK to use a single node. + let pool = ConnectionPool::new(1); + let mut client = Self::Client::with_uri_and_settings(uri.clone(), settings, &pool); + let mut grpc_request = GetStatusRequest { + version: Some(get_status_request::Version::V0(GetStatusRequestV0 {})), + } + .into_request(); + + // we need to establish connection only with provided node, so we override client + + if !settings.timeout.is_zero() { + grpc_request.set_timeout(settings.timeout); + } + + async move { + let response = client + .get_status(grpc_request) + .map_ok(|response| response.into_inner()) + .await; + + drop(client); + drop(pool); + response + } + .boxed() + } +} + +impl From for GetStatusRequest { + fn from(_node: EvoNode) -> Self { + // we don't need to send any data to the node, and address is handled in impl TrasportRequest + GetStatusRequestV0 {}.into() + } +} diff --git a/packages/rs-sdk/src/platform/types/identity.rs b/packages/rs-sdk/src/platform/types/identity.rs index 01599307c1..632e3bd5e4 100644 --- a/packages/rs-sdk/src/platform/types/identity.rs +++ b/packages/rs-sdk/src/platform/types/identity.rs @@ -5,6 +5,8 @@ use crate::{ platform::{proto, Query}, Error, }; + +use dapi_grpc::platform::v0::get_identities_balances_request::GetIdentitiesBalancesRequestV0; use dapi_grpc::platform::v0::get_identity_balance_and_revision_request::GetIdentityBalanceAndRevisionRequestV0; use dapi_grpc::platform::v0::get_identity_balance_request::GetIdentityBalanceRequestV0; use dapi_grpc::platform::v0::get_identity_by_public_key_hash_request::GetIdentityByPublicKeyHashRequestV0; @@ -12,11 +14,12 @@ use dapi_grpc::platform::v0::get_identity_contract_nonce_request::GetIdentityCon use dapi_grpc::platform::v0::get_identity_nonce_request::GetIdentityNonceRequestV0; use dapi_grpc::platform::v0::get_identity_request::GetIdentityRequestV0; use dapi_grpc::platform::v0::{ - get_identity_balance_and_revision_request, get_identity_balance_request, - get_identity_by_public_key_hash_request, get_identity_contract_nonce_request, - get_identity_nonce_request, get_identity_request, GetIdentityBalanceAndRevisionRequest, - GetIdentityBalanceRequest, GetIdentityByPublicKeyHashRequest, GetIdentityContractNonceRequest, - GetIdentityNonceRequest, GetIdentityRequest, ResponseMetadata, + get_identities_balances_request, get_identity_balance_and_revision_request, + get_identity_balance_request, get_identity_by_public_key_hash_request, + get_identity_contract_nonce_request, get_identity_nonce_request, get_identity_request, + GetIdentitiesBalancesRequest, GetIdentityBalanceAndRevisionRequest, GetIdentityBalanceRequest, + GetIdentityByPublicKeyHashRequest, GetIdentityContractNonceRequest, GetIdentityNonceRequest, + GetIdentityRequest, ResponseMetadata, }; use dpp::prelude::Identity; @@ -39,7 +42,7 @@ impl Query for dpp::prelude::Identifier { Ok(IdentityRequest::GetIdentity(GetIdentityRequest { version: Some(get_identity_request::Version::V0(GetIdentityRequestV0 { id, - prove: true, + prove, })), })) } @@ -144,3 +147,20 @@ impl Query for dpp::prelude::Identifier { Ok(request) } } + +impl Query for Vec { + fn query(self, prove: bool) -> Result { + if !prove { + unimplemented!("queries without proofs are not supported yet"); + } + let ids = self.into_iter().map(|a| a.to_vec()).collect(); + + let request: GetIdentitiesBalancesRequest = GetIdentitiesBalancesRequest { + version: Some(get_identities_balances_request::Version::V0( + GetIdentitiesBalancesRequestV0 { ids, prove }, + )), + }; + + Ok(request) + } +} diff --git a/packages/rs-sdk/src/platform/types/proposed_blocks.rs b/packages/rs-sdk/src/platform/types/proposed_blocks.rs new file mode 100644 index 0000000000..16afa42101 --- /dev/null +++ b/packages/rs-sdk/src/platform/types/proposed_blocks.rs @@ -0,0 +1,73 @@ +//! Helpers for managing platform proposed block counts per epoch + +use crate::platform::{FetchMany, LimitQuery, QueryStartInfo}; +use crate::{Error, Sdk}; +use async_trait::async_trait; +use dashcore_rpc::dashcore::ProTxHash; +use dpp::block::epoch::EpochIndex; +use drive_proof_verifier::types::{ProposerBlockCountByRange, ProposerBlockCounts}; +// Trait needed here to implement functions on foreign type. + +/// A helper trait for fetching block proposal counts for specific proposers. +/// +/// This trait defines an asynchronous method to retrieve block counts for proposers within a specified range. +/// It allows fetching a set of proposers and their corresponding block counts, either by setting a limit +/// or starting from a specific proposer hash. +/// +/// # Type Parameters +/// +/// * `K`: The type of the keys in the map, which must implement the `Ord` trait. +#[async_trait] +pub trait ProposedBlockCountEx { + /// Fetches the proposed block counts for proposers within a given range. + /// + /// This asynchronous method retrieves the number of blocks proposed by various proposers, + /// starting from an optional proposer transaction hash (`ProTxHash`) and returning a limited + /// number of results if specified. If a proposer transaction hash is provided, the query will + /// start at that hash. The optional boolean flag determines whether to include the proposer + /// identified by the `ProTxHash` in the results. + /// + /// ## Parameters + /// + /// * `sdk`: A reference to the `Sdk` instance, which handles the platform interaction. + /// * `limit`: An optional `u16` representing the maximum number of proposer block counts to retrieve. + /// * `start_pro_tx_hash`: An optional tuple where the first element is a `ProTxHash` to start + /// from, and the second element is a boolean indicating whether to include the starting proposer + /// in the results. + /// + /// ## Returns + /// + /// A `Result` containing `ProposerBlockCounts`, which is a mapping between proposers and the number of blocks they proposed, + /// or an `Error` if the operation fails. + /// + /// ## See also + /// + /// - [`ProposerBlockCounts`](crate::ProposerBlockCounts): The data structure holding the result of this operation. + + async fn fetch_proposed_blocks_by_range( + sdk: &Sdk, + epoch: Option, + limit: Option, + start_pro_tx_hash: Option, + ) -> Result; +} + +#[async_trait] +impl ProposedBlockCountEx for ProposerBlockCounts { + async fn fetch_proposed_blocks_by_range( + sdk: &Sdk, + epoch: Option, + limit: Option, + start_pro_tx_hash: Option, + ) -> Result { + ProposerBlockCountByRange::fetch_many( + sdk, + LimitQuery { + query: epoch, + limit, + start_info: start_pro_tx_hash, + }, + ) + .await + } +} diff --git a/packages/rs-sdk/src/sdk.rs b/packages/rs-sdk/src/sdk.rs index fb8bd7fed8..abd02e184c 100644 --- a/packages/rs-sdk/src/sdk.rs +++ b/packages/rs-sdk/src/sdk.rs @@ -507,6 +507,23 @@ impl Sdk { pub fn shutdown(&self) { self.cancel_token.cancel(); } + + /// Return the [DapiClient] address list + pub fn address_list(&self) -> Result { + match &self.inner { + SdkInstance::Dapi { dapi, version: _ } => { + let address_list_arc = dapi.address_list(); + let address_list_lock = address_list_arc + .read() + .map_err(|e| format!("Failed to read address list: {e}"))?; + Ok(address_list_lock.clone()) + } + #[cfg(feature = "mocks")] + SdkInstance::Mock { .. } => { + unimplemented!("mock Sdk does not have address list") + } + } + } } #[async_trait::async_trait] @@ -765,9 +782,6 @@ impl SdkBuilder { if sdk.context_provider.is_none() { #[cfg(feature = "mocks")] if !self.core_ip.is_empty() { - tracing::warn!("ContextProvider not set; mocking with Dash Core. \ - Please provide your own ContextProvider with SdkBuilder::with_context_provider()."); - let mut context_provider = GrpcContextProvider::new(None, &self.core_ip, self.core_port, &self.core_user, &self.core_password, self.data_contract_cache_size, self.quorum_public_keys_cache_size)?; diff --git a/packages/rs-sdk/tests/fetch/contested_resource_vote_state.rs b/packages/rs-sdk/tests/fetch/contested_resource_vote_state.rs index 59d8770d95..69b66e0e48 100644 --- a/packages/rs-sdk/tests/fetch/contested_resource_vote_state.rs +++ b/packages/rs-sdk/tests/fetch/contested_resource_vote_state.rs @@ -277,8 +277,8 @@ type MutFn = fn(&mut ContestedDocumentVotePollDriveQuery); #[test_case(|q| q.limit = Some(0), Err("limit 0 out of bounds of [1, 100]"); "limit 0")] #[test_case(|q| q.limit = Some(std::u16::MAX), Err("limit 65535 out of bounds of [1, 100]"); "limit std::u16::MAX")] -#[test_case(|q| q.start_at = Some(([0x11; 32], true)), Ok("Contenders { contenders: {Identifier("); "start_at does not exist should return next contenders")] -#[test_case(|q| q.start_at = Some(([0xff; 32], true)), Ok("Contenders { contenders: {}, abstain_vote_tally: None, lock_vote_tally: None }"); "start_at 0xff;32 should return zero contenders")] +#[test_case(|q| q.start_at = Some(([0x11; 32], true)), Ok("Contenders { winner: None, contenders: {Identifier("); "start_at does not exist should return next contenders")] +#[test_case(|q| q.start_at = Some(([0xff; 32], true)), Ok("Contenders { winner: None, contenders: {}, abstain_vote_tally: None, lock_vote_tally: None }"); "start_at 0xff;32 should return zero contenders")] #[test_case(|q| q.vote_poll.document_type_name = "nx doctype".to_string(), Err(r#"code: InvalidArgument, message: "document type nx doctype not found"#); "non existing document type returns InvalidArgument")] #[test_case(|q| q.vote_poll.index_name = "nx index".to_string(), Err(r#"code: InvalidArgument, message: "index with name nx index is not the contested index"#); "non existing index returns InvalidArgument")] #[test_case(|q| q.vote_poll.index_name = "dashIdentityId".to_string(), Err(r#"code: InvalidArgument, message: "index with name dashIdentityId is not the contested index"#); "existing non-contested index returns InvalidArgument")] diff --git a/packages/rs-sdk/tests/fetch/evonode.rs b/packages/rs-sdk/tests/fetch/evonode.rs new file mode 100644 index 0000000000..0d35d5be9f --- /dev/null +++ b/packages/rs-sdk/tests/fetch/evonode.rs @@ -0,0 +1,71 @@ +//! Test evo node status and other node-related functionality. + +use super::{common::setup_logs, config::Config}; +use dash_sdk::platform::{types::evonode::EvoNode, FetchUnproved}; +use dpp::dashcore::{hashes::Hash, ProTxHash}; +use drive_proof_verifier::types::EvoNodeStatus; +use http::Uri; +use std::time::Duration; +/// Given some existing evonode URIs, WHEN we connect to them, THEN we get status. +use tokio::time::timeout; + +#[tokio::test(flavor = "multi_thread", worker_threads = 1)] +async fn test_evonode_status() { + setup_logs(); + + let cfg = Config::new(); + let sdk = cfg.setup_api("test_evonode_status").await; + + let addresses = cfg.address_list(); + + for address in addresses { + let node = EvoNode::new(address.clone()); + match timeout( + Duration::from_secs(3), + EvoNodeStatus::fetch_unproved(&sdk, node), + ) + .await + { + Ok(Ok(Some(status))) => { + tracing::debug!(?status, ?address, "evonode status"); + // Add assertions here to verify the status contents + assert!( + status.chain.latest_block_height > 0, + "latest block height must be positive" + ); + assert!( + status.node.pro_tx_hash.unwrap_or_default().len() == ProTxHash::LEN, + "latest block hash must be non-empty" + ); + // Add more specific assertions based on expected status properties + } + Ok(Ok(None)) => { + tracing::warn!(?address, "No status found for evonode"); + panic!("No status found for evonode"); + } + Ok(Err(e)) => { + tracing::error!(?address, error = ?e, "Error fetching evonode status"); + } + Err(_) => { + tracing::error!(?address, "Timeout while fetching evonode status"); + } + } + } +} + +/// Given invalid evonode URI, when we request status, we get error. +#[tokio::test(flavor = "multi_thread", worker_threads = 1)] +async fn test_evonode_status_refused() { + setup_logs(); + + let cfg = Config::new(); + let sdk = cfg.setup_api("test_evonode_status_refused").await; + + let uri: Uri = "http://127.0.0.1:1".parse().unwrap(); + + let node = EvoNode::new(uri.clone().into()); + let result = EvoNodeStatus::fetch_unproved(&sdk, node).await; + tracing::debug!(?result, ?uri, "evonode status"); + + assert!(result.is_err()); +} diff --git a/packages/rs-sdk/tests/fetch/mod.rs b/packages/rs-sdk/tests/fetch/mod.rs index 76e6c84c69..363e35f069 100644 --- a/packages/rs-sdk/tests/fetch/mod.rs +++ b/packages/rs-sdk/tests/fetch/mod.rs @@ -17,6 +17,7 @@ mod contested_resource_voters; mod data_contract; mod document; mod epoch; +mod evonode; mod identity; mod identity_contract_nonce; mod mock_fetch; diff --git a/packages/rs-sdk/tests/fetch/protocol_version_vote_count.rs b/packages/rs-sdk/tests/fetch/protocol_version_vote_count.rs index 2c31ca7c2f..b1c9fb4be5 100644 --- a/packages/rs-sdk/tests/fetch/protocol_version_vote_count.rs +++ b/packages/rs-sdk/tests/fetch/protocol_version_vote_count.rs @@ -1,6 +1,7 @@ use super::{common::setup_logs, config::Config}; use dash_sdk::platform::FetchMany; use dpp::version::ProtocolVersionVoteCount; +use drive_proof_verifier::types::ProtocolVersionUpgrades; /// Given some existing identity ID, when I fetch the identity keys, I get some of them indexed by key ID. #[tokio::test(flavor = "multi_thread", worker_threads = 1)] @@ -10,7 +11,7 @@ async fn test_protocol_version_vote_count() { let cfg = Config::new(); let sdk = cfg.setup_api("test_protocol_version_vote_count").await; - let votings = ProtocolVersionVoteCount::fetch_many(&sdk, ()) + let votings: ProtocolVersionUpgrades = ProtocolVersionVoteCount::fetch_many(&sdk, ()) .await .expect("fetch protocol version votes"); diff --git a/packages/rs-sdk/tests/vectors/test_evonode_status/.gitkeep b/packages/rs-sdk/tests/vectors/test_evonode_status/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/rs-sdk/tests/vectors/test_evonode_status/msg_EvoNode_244e3005966550cd3cb2837d3bca1c40d35547373d23f3ba329df2b6d993b374.json b/packages/rs-sdk/tests/vectors/test_evonode_status/msg_EvoNode_244e3005966550cd3cb2837d3bca1c40d35547373d23f3ba329df2b6d993b374.json new file mode 100644 index 0000000000..6eafe3314e Binary files /dev/null and b/packages/rs-sdk/tests/vectors/test_evonode_status/msg_EvoNode_244e3005966550cd3cb2837d3bca1c40d35547373d23f3ba329df2b6d993b374.json differ diff --git a/packages/rs-sdk/tests/vectors/test_evonode_status_refused/.gitkeep b/packages/rs-sdk/tests/vectors/test_evonode_status_refused/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/rs-sdk/tests/vectors/test_evonode_status_refused/msg_EvoNode_6db392ff1869b56ecc7de9ace5864123671ed14d3f0c537aa8e878d24e529de5.json b/packages/rs-sdk/tests/vectors/test_evonode_status_refused/msg_EvoNode_6db392ff1869b56ecc7de9ace5864123671ed14d3f0c537aa8e878d24e529de5.json new file mode 100644 index 0000000000..c80da24adb Binary files /dev/null and b/packages/rs-sdk/tests/vectors/test_evonode_status_refused/msg_EvoNode_6db392ff1869b56ecc7de9ace5864123671ed14d3f0c537aa8e878d24e529de5.json differ diff --git a/packages/simple-signer/Cargo.toml b/packages/simple-signer/Cargo.toml index ad63547a49..c7cca2b3f2 100644 --- a/packages/simple-signer/Cargo.toml +++ b/packages/simple-signer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-signer" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true diff --git a/packages/simple-signer/src/signer.rs b/packages/simple-signer/src/signer.rs index f8f8f92f3b..448e1a5c9c 100644 --- a/packages/simple-signer/src/signer.rs +++ b/packages/simple-signer/src/signer.rs @@ -106,4 +106,11 @@ impl Signer for SimpleSigner { )), } } + + fn can_sign_with(&self, identity_public_key: &IdentityPublicKey) -> bool { + self.private_keys + .get(identity_public_key) + .or_else(|| self.private_keys_in_creation.get(identity_public_key)) + .is_some() + } } diff --git a/packages/strategy-tests/Cargo.toml b/packages/strategy-tests/Cargo.toml index 16763197f1..c4c32d92a0 100644 --- a/packages/strategy-tests/Cargo.toml +++ b/packages/strategy-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "strategy-tests" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" authors = [ "Samuel Westrich ", "Ivan Shumkov ", diff --git a/packages/strategy-tests/src/lib.rs b/packages/strategy-tests/src/lib.rs index 126538a64a..61395d99f2 100644 --- a/packages/strategy-tests/src/lib.rs +++ b/packages/strategy-tests/src/lib.rs @@ -45,13 +45,15 @@ use rand::prelude::StdRng; use rand::seq::{IteratorRandom, SliceRandom}; use rand::Rng; use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; +use std::ops::RangeInclusive; use bincode::{Decode, Encode}; use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; use dpp::identifier::Identifier; use dpp::data_contract::document_type::DocumentType; +use dpp::fee::Credits; use dpp::identity::accessors::IdentityGettersV0; use dpp::platform_value::{BinaryData, Bytes32, Value}; -use dpp::ProtocolError; +use dpp::{dash_to_duffs, ProtocolError}; use dpp::ProtocolError::{PlatformDeserializationError, PlatformSerializationError}; use dpp::state_transition::documents_batch_transition::document_base_transition::v0::DocumentBaseTransitionV0; use dpp::state_transition::documents_batch_transition::document_create_transition::{DocumentCreateTransition, DocumentCreateTransitionV0}; @@ -153,6 +155,7 @@ pub struct IdentityInsertInfo { pub frequency: Frequency, pub start_keys: u8, pub extra_keys: KeyMaps, + pub start_balance_range: RangeInclusive, } impl Default for IdentityInsertInfo { @@ -161,6 +164,7 @@ impl Default for IdentityInsertInfo { frequency: Default::default(), start_keys: 5, extra_keys: Default::default(), + start_balance_range: dash_to_duffs!(1)..=dash_to_duffs!(1), } } } @@ -1167,7 +1171,10 @@ impl Strategy { } // Generate state transition for identity top-up operation - OperationType::IdentityTopUp if !current_identities.is_empty() => { + OperationType::IdentityTopUp(_amount_range) + if !current_identities.is_empty() => + { + // todo: use amount ranges // Use a cyclic iterator over the identities to ensure we can create 'count' transitions let cyclic_identities = current_identities.iter().cycle(); @@ -1261,13 +1268,16 @@ impl Strategy { } // Generate state transition for identity withdrawal operation - OperationType::IdentityWithdrawal if !current_identities.is_empty() => { + OperationType::IdentityWithdrawal(amount_range) + if !current_identities.is_empty() => + { for i in 0..count { let index = (i as usize) % current_identities.len(); let random_identity = &mut current_identities[index]; let state_transition = crate::transitions::create_identity_withdrawal_transition( random_identity, + amount_range.clone(), identity_nonce_counter, signer, rng, @@ -1853,6 +1863,7 @@ mod tests { use crate::operations::{DocumentAction, DocumentOp, Operation, OperationType}; use crate::transitions::create_state_transitions_for_identities; use crate::{StartIdentities, Strategy}; + use dpp::dash_to_duffs; use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contract::document_type::random_document::{ DocumentFieldFillSize, DocumentFieldFillType, @@ -1902,6 +1913,7 @@ mod tests { let start_identities = create_state_transitions_for_identities( vec![identity1, identity2], + &(dash_to_duffs!(1)..=dash_to_duffs!(1)), &mut simple_signer, &mut rng, platform_version, diff --git a/packages/strategy-tests/src/operations.rs b/packages/strategy-tests/src/operations.rs index c3e52414cd..675e996843 100644 --- a/packages/strategy-tests/src/operations.rs +++ b/packages/strategy-tests/src/operations.rs @@ -9,6 +9,7 @@ use dpp::data_contract::document_type::v0::random_document_type::RandomDocumentT use dpp::data_contract::document_type::DocumentType; use dpp::data_contract::serialized_version::DataContractInSerializationFormat; use dpp::data_contract::{DataContract as Contract, DataContract}; +use dpp::fee::Credits; use dpp::identifier::Identifier; use dpp::identity::IdentityPublicKey; use dpp::platform_value::Value; @@ -26,7 +27,7 @@ use platform_version::{TryFromPlatformVersioned, TryIntoPlatformVersioned}; use rand::distributions::{Distribution, WeightedIndex}; use rand::prelude::StdRng; use std::collections::BTreeMap; -use std::ops::Range; +use std::ops::{Range, RangeInclusive}; #[derive(Clone, Debug, PartialEq, Encode, Decode)] pub enum DocumentAction { @@ -494,12 +495,14 @@ impl VoteAction { } } +pub type AmountRange = RangeInclusive; + #[derive(Clone, Debug, PartialEq)] pub enum OperationType { Document(DocumentOp), - IdentityTopUp, + IdentityTopUp(AmountRange), IdentityUpdate(IdentityUpdateOp), - IdentityWithdrawal, + IdentityWithdrawal(AmountRange), ContractCreate(RandomDocumentTypeParameters, DocumentTypeCount), ContractUpdate(DataContractUpdateOp), IdentityTransfer, @@ -509,9 +512,9 @@ pub enum OperationType { #[derive(Clone, Debug, Encode, Decode)] enum OperationTypeInSerializationFormat { Document(Vec), - IdentityTopUp, + IdentityTopUp(AmountRange), IdentityUpdate(IdentityUpdateOp), - IdentityWithdrawal, + IdentityWithdrawal(AmountRange), ContractCreate(RandomDocumentTypeParameters, DocumentTypeCount), ContractUpdate(Vec), IdentityTransfer, @@ -540,12 +543,14 @@ impl PlatformSerializableWithPlatformVersion for OperationType { .serialize_consume_to_bytes_with_platform_version(platform_version)?; OperationTypeInSerializationFormat::Document(document_op_in_serialization_format) } - OperationType::IdentityTopUp => OperationTypeInSerializationFormat::IdentityTopUp, + OperationType::IdentityTopUp(amount_range) => { + OperationTypeInSerializationFormat::IdentityTopUp(amount_range) + } OperationType::IdentityUpdate(identity_update_op) => { OperationTypeInSerializationFormat::IdentityUpdate(identity_update_op) } - OperationType::IdentityWithdrawal => { - OperationTypeInSerializationFormat::IdentityWithdrawal + OperationType::IdentityWithdrawal(amount_range) => { + OperationTypeInSerializationFormat::IdentityWithdrawal(amount_range) } OperationType::ContractCreate(p, c) => { OperationTypeInSerializationFormat::ContractCreate(p, c) @@ -601,12 +606,14 @@ impl PlatformDeserializableWithPotentialValidationFromVersionedStructure for Ope )?; OperationType::Document(document_op) } - OperationTypeInSerializationFormat::IdentityTopUp => OperationType::IdentityTopUp, + OperationTypeInSerializationFormat::IdentityTopUp(amount_range) => { + OperationType::IdentityTopUp(amount_range) + } OperationTypeInSerializationFormat::IdentityUpdate(identity_update_op) => { OperationType::IdentityUpdate(identity_update_op) } - OperationTypeInSerializationFormat::IdentityWithdrawal => { - OperationType::IdentityWithdrawal + OperationTypeInSerializationFormat::IdentityWithdrawal(amount_range) => { + OperationType::IdentityWithdrawal(amount_range) } OperationTypeInSerializationFormat::ContractCreate(p, c) => { OperationType::ContractCreate(p, c) diff --git a/packages/strategy-tests/src/transitions.rs b/packages/strategy-tests/src/transitions.rs index 5a456afa3a..85d03eb333 100644 --- a/packages/strategy-tests/src/transitions.rs +++ b/packages/strategy-tests/src/transitions.rs @@ -22,10 +22,6 @@ use dpp::state_transition::identity_create_transition::IdentityCreateTransition; use dpp::state_transition::identity_credit_transfer_transition::v0::IdentityCreditTransferTransitionV0; use dpp::ProtocolError; -use dpp::state_transition::identity_credit_withdrawal_transition::v0::{ - IdentityCreditWithdrawalTransitionV0, MIN_CORE_FEE_PER_BYTE, -}; - use dpp::native_bls::NativeBlsModule; use dpp::state_transition::identity_topup_transition::methods::IdentityTopUpTransitionMethodsV0; use dpp::state_transition::identity_topup_transition::IdentityTopUpTransition; @@ -37,9 +33,13 @@ use dpp::withdrawal::Pooling; use rand::prelude::{IteratorRandom, StdRng}; use simple_signer::signer::SimpleSigner; +use crate::operations::AmountRange; use crate::KeyMaps; use dpp::dashcore::transaction::special_transaction::asset_lock::AssetLockPayload; use dpp::dashcore::transaction::special_transaction::TransactionPayload; +use dpp::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; +use dpp::state_transition::identity_credit_withdrawal_transition::MIN_CORE_FEE_PER_BYTE; +use rand::Rng; use std::collections::{BTreeMap, HashSet}; use std::str::FromStr; @@ -77,6 +77,24 @@ pub fn instant_asset_lock_proof_fixture(one_time_private_key: PrivateKey) -> Ass AssetLockProof::Instant(is_lock_proof) } +pub fn instant_asset_lock_proof_fixture_with_dynamic_range( + one_time_private_key: PrivateKey, + amount_range: &AmountRange, + rng: &mut StdRng, +) -> AssetLockProof { + let transaction = instant_asset_lock_proof_transaction_fixture_with_dynamic_amount( + one_time_private_key, + amount_range, + rng, + ); + + let instant_lock = instant_asset_lock_is_lock_fixture(transaction.txid()); + + let is_lock_proof = InstantAssetLockProof::new(instant_lock, transaction, 0); + + AssetLockProof::Instant(is_lock_proof) +} + /// Constructs a fixture of a `Transaction` representing an instant asset lock proof. /// /// The `Transaction` structure is a basic unit of data in a blockchain, recording the transfer of assets between parties. @@ -161,6 +179,73 @@ pub fn instant_asset_lock_proof_transaction_fixture( } } +pub fn instant_asset_lock_proof_transaction_fixture_with_dynamic_amount( + one_time_private_key: PrivateKey, + amount_range: &AmountRange, + rng: &mut StdRng, +) -> Transaction { + let secp = Secp256k1::new(); + + let private_key_hex = "cSBnVM4xvxarwGQuAfQFwqDg9k5tErHUHzgWsEfD4zdwUasvqRVY"; + let private_key = PrivateKey::from_str(private_key_hex).unwrap(); + let public_key = private_key.public_key(&secp); + let public_key_hash = public_key.pubkey_hash(); + //let from_address = Address::p2pkh(&public_key, Network::Testnet); + let one_time_public_key = one_time_private_key.public_key(&secp); + + // We are going to fund 1 Dash and + // assume that input has 100005000 + // 5000 will be returned back + + let input_txid = + Txid::from_str("a477af6b2667c29670467e4e0728b685ee07b240235771862318e29ddbe58458").unwrap(); + + let input_outpoint = OutPoint::new(input_txid, 0); + + let input = TxIn { + previous_output: input_outpoint, + script_sig: ScriptBuf::new_p2pkh(&public_key_hash), + sequence: 0, + witness: Default::default(), + }; + + let one_time_key_hash = one_time_public_key.pubkey_hash(); + + let value_amount = if amount_range.start() == amount_range.end() { + *amount_range.start() //avoid using rng if possible + } else { + rng.gen_range(amount_range.clone()) + }; + + let funding_output = TxOut { + value: value_amount, + script_pubkey: ScriptBuf::new_p2pkh(&one_time_key_hash), + }; + + let burn_output = TxOut { + value: value_amount, + script_pubkey: ScriptBuf::new_op_return(&[]), + }; + + let change_output = TxOut { + value: 5000, + script_pubkey: ScriptBuf::new_p2pkh(&public_key_hash), + }; + + let payload = TransactionPayload::AssetLockPayloadType(AssetLockPayload { + version: 0, + credit_outputs: vec![funding_output], + }); + + Transaction { + version: 0, + lock_time: 0, + input: vec![input], + output: vec![burn_output, change_output], + special_transaction_payload: Some(payload), + } +} + /// Constructs a fixture of `InstantLock` representing an instant asset lock. /// /// The `InstantLock` structure is often used in blockchain systems to represent a condition where funds (or assets) are locked instantly, making them non-spendable until a specified condition is met or the lock duration expires. @@ -448,26 +533,32 @@ pub fn create_identity_update_transition_disable_keys( Some(state_transition) } -/// Creates a state transition for an identity's credit withdrawal. +/// Creates a state transition for an identity's credit withdrawal, with a potential +/// output address based on the identity's capabilities. /// -/// This function generates a state transition representing the withdrawal of credits from an identity. -/// The withdrawal amount is set to 0.001 Dash. The function first bumps the revision -/// of the identity and then constructs the withdrawal transition. Subsequently, it's signed using the -/// identity's authentication key for validity and authenticity. +/// This function generates a state transition representing the withdrawal of credits from +/// an identity. It first checks if the identity has a suitable withdrawal address. If so, +/// there is a 50% chance that the withdrawal will be sent to the identity's transfer key. +/// Otherwise, it will create a withdrawal transition with a random output address. /// /// # Parameters /// - `identity`: A mutable reference to the identity making the withdrawal. +/// - `identity_nonce_counter`: A mutable reference to a BTreeMap that tracks the nonce for +/// each identity, ensuring unique transaction identifiers. /// - `signer`: A mutable reference to the signer used to create the cryptographic signature for /// the state transition. -/// - `rng`: A mutable reference to a random number generator, used for generating the random Pay-To-Script-Hash (P2SH). +/// - `rng`: A mutable reference to a random number generator, used for generating the random +/// Pay-To-Script-Hash (P2SH) when creating a withdrawal with an output address. /// /// # Returns -/// - `StateTransition`: The constructed and signed state transition representing the identity's credit withdrawal. +/// - `StateTransition`: The constructed state transition representing the identity's credit +/// withdrawal. /// /// # Examples /// ```ignore /// let withdrawal_transition = create_identity_withdrawal_transition( /// &mut identity, +/// &mut identity_nonce_counter, /// &mut signer, /// &mut rng, /// ); @@ -475,22 +566,176 @@ pub fn create_identity_update_transition_disable_keys( /// /// # Panics /// This function may panic under the following conditions: +/// - If the identity does not have a suitable withdrawal address or key for signing. +pub fn create_identity_withdrawal_transition( + identity: &mut Identity, + amount_range: AmountRange, + identity_nonce_counter: &mut BTreeMap, + signer: &mut SimpleSigner, + rng: &mut StdRng, +) -> StateTransition { + let has_withdrawal_address = identity + .get_first_public_key_matching( + Purpose::TRANSFER, + HashSet::from([SecurityLevel::CRITICAL]), + HashSet::from([KeyType::ECDSA_HASH160, KeyType::BIP13_SCRIPT_HASH]), + false, + ) + .is_some(); + if has_withdrawal_address && rng.gen_bool(0.5) { + // We can send it to the withdrawal address + create_identity_withdrawal_transition_sent_to_identity_transfer_key( + identity, + amount_range, + identity_nonce_counter, + signer, + rng, + ) + } else { + create_identity_withdrawal_transition_with_output_address( + identity, + amount_range, + identity_nonce_counter, + signer, + rng, + ) + } +} + +/// Creates a state transition for an identity's credit withdrawal directed to its +/// transfer key. +/// +/// This function generates a state transition representing the withdrawal of credits from +/// an identity. The withdrawal amount is set to 0.001 Dash. It increments the identity's +/// nonce and constructs the withdrawal transition. The transition is then signed using the +/// identity's authentication key for validity and authenticity. +/// +/// # Parameters +/// - `identity`: A mutable reference to the identity making the withdrawal. +/// - `identity_nonce_counter`: A mutable reference to a BTreeMap that tracks the nonce for +/// each identity, ensuring unique transaction identifiers. +/// - `signer`: A mutable reference to the signer used to create the cryptographic signature for +/// the state transition. +/// +/// # Returns +/// - `StateTransition`: The constructed and signed state transition representing the identity's +/// credit withdrawal directed to its transfer key. +/// +/// # Examples +/// ```ignore +/// let withdrawal_transition = create_identity_withdrawal_transition_sent_to_identity_transfer_key( +/// &mut identity, +/// &mut identity_nonce_counter, +/// &mut signer, +/// ); +/// ``` +/// +/// # Panics +/// This function may panic under the following conditions: /// - If the identity does not have a suitable authentication key for signing. /// - If there's an error during the signing process. -pub fn create_identity_withdrawal_transition( +pub fn create_identity_withdrawal_transition_sent_to_identity_transfer_key( + identity: &mut Identity, + amount_range: AmountRange, + identity_nonce_counter: &mut BTreeMap, + signer: &mut SimpleSigner, + rng: &mut StdRng, +) -> StateTransition { + let nonce = identity_nonce_counter.entry(identity.id()).or_default(); + *nonce += 1; + let mut withdrawal: StateTransition = IdentityCreditWithdrawalTransitionV1 { + identity_id: identity.id(), + amount: rng.gen_range(amount_range), + core_fee_per_byte: MIN_CORE_FEE_PER_BYTE, + pooling: Pooling::Never, + output_script: None, + nonce: *nonce, + user_fee_increase: 0, + signature_public_key_id: 0, + signature: Default::default(), + } + .into(); + + let identity_public_key = identity + .get_first_public_key_matching( + Purpose::AUTHENTICATION, + HashSet::from([SecurityLevel::MASTER]), + HashSet::from([ + KeyType::ECDSA_SECP256K1, + KeyType::BLS12_381, + KeyType::ECDSA_HASH160, + KeyType::BIP13_SCRIPT_HASH, + KeyType::EDDSA_25519_HASH160, + ]), + false, + ) + .expect("expected to get a signing key"); + + withdrawal + .sign_external( + identity_public_key, + signer, + None::, + ) + .expect("expected to sign withdrawal"); + + withdrawal +} + +/// Creates a state transition for an identity's credit withdrawal directed to a specified +/// output address. +/// +/// This function generates a state transition representing the withdrawal of credits from +/// an identity. The withdrawal amount is set to 0.001 Dash. It increments the identity's +/// nonce and constructs the withdrawal transition, which includes a random P2SH output address. +/// The transition is then signed using the identity's transfer key for validity and authenticity. +/// +/// # Parameters +/// - `identity`: A mutable reference to the identity making the withdrawal. +/// - `identity_nonce_counter`: A mutable reference to a BTreeMap that tracks the nonce for +/// each identity, ensuring unique transaction identifiers. +/// - `signer`: A mutable reference to the signer used to create the cryptographic signature for +/// the state transition. +/// - `rng`: A mutable reference to a random number generator, used for generating the random +/// Pay-To-Script-Hash (P2SH). +/// +/// # Returns +/// - `StateTransition`: The constructed and signed state transition representing the identity's +/// credit withdrawal directed to the specified output address. +/// +/// # Examples +/// ```ignore +/// let withdrawal_transition = create_identity_withdrawal_transition_with_output_address( +/// &mut identity, +/// &mut identity_nonce_counter, +/// &mut signer, +/// &mut rng, +/// ); +/// ``` +/// +/// # Panics +/// This function may panic under the following conditions: +/// - If the identity does not have a suitable transfer key for signing. +/// - If there's an error during the signing process. +pub fn create_identity_withdrawal_transition_with_output_address( identity: &mut Identity, + amount_range: AmountRange, identity_nonce_counter: &mut BTreeMap, signer: &mut SimpleSigner, rng: &mut StdRng, ) -> StateTransition { let nonce = identity_nonce_counter.entry(identity.id()).or_default(); *nonce += 1; - let mut withdrawal: StateTransition = IdentityCreditWithdrawalTransitionV0 { + let mut withdrawal: StateTransition = IdentityCreditWithdrawalTransitionV1 { identity_id: identity.id(), - amount: 1000000, // 1 duff + amount: rng.gen_range(amount_range), core_fee_per_byte: MIN_CORE_FEE_PER_BYTE, pooling: Pooling::Never, - output_script: CoreScript::random_p2sh(rng), + output_script: if rng.gen_bool(0.5) { + Some(CoreScript::random_p2pkh(rng)) + } else { + Some(CoreScript::random_p2sh(rng)) + }, nonce: *nonce, user_fee_increase: 0, signature_public_key_id: 0, @@ -775,6 +1020,7 @@ pub fn create_identities_state_transitions( /// - Conversion and encoding errors related to the cryptographic data. pub fn create_state_transitions_for_identities( identities: Vec, + amount_range: &AmountRange, signer: &SimpleSigner, rng: &mut StdRng, platform_version: &PlatformVersion, @@ -787,8 +1033,11 @@ pub fn create_state_transitions_for_identities( .unwrap(); let sk: [u8; 32] = pk.try_into().unwrap(); let secret_key = SecretKey::from_str(hex::encode(sk).as_str()).unwrap(); - let asset_lock_proof = - instant_asset_lock_proof_fixture(PrivateKey::new(secret_key, Network::Dash)); + let asset_lock_proof = instant_asset_lock_proof_fixture_with_dynamic_range( + PrivateKey::new(secret_key, Network::Dash), + amount_range, + rng, + ); let identity_create_transition = IdentityCreateTransition::try_from_identity_with_signer( &identity.clone(), diff --git a/packages/wallet-lib/README.md b/packages/wallet-lib/README.md index 765e2baddb..a02c90c35e 100644 --- a/packages/wallet-lib/README.md +++ b/packages/wallet-lib/README.md @@ -7,6 +7,11 @@ A pure and extensible JavaScript Wallet Library for Dash +**Warning: This library should only be used in production when connected to trusted nodes. Although +it provides easy access to wallet functionality without requiring a full node, it does not verify +synchronized blockchain data (e.g., the masternode list, InstantSend transactions, ChainLocks) or +check transactions against block headers.** + ## Table of Contents - [Install](#install) - [Usage](#usage) diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index 813a361e27..0c50db6105 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wallet-lib", - "version": "8.1.0-dev.1", + "version": "8.4.0-dev.5", "description": "Light wallet library for Dash", "main": "src/index.js", "unpkg": "dist/wallet-lib.min.js", @@ -95,7 +95,7 @@ "url": "^0.11.3", "util": "^0.12.4", "wasm-x11-hash": "~0.0.2", - "webpack": "^5.76.1", + "webpack": "^5.94.0", "webpack-cli": "^4.9.1" } } diff --git a/packages/wasm-dpp/Cargo.toml b/packages/wasm-dpp/Cargo.toml index 988424120b..04d917d483 100644 --- a/packages/wasm-dpp/Cargo.toml +++ b/packages/wasm-dpp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasm-dpp" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true authors = ["Anton Suprunchuk "] @@ -18,7 +18,7 @@ serde_json = { version = "1.0", features = ["preserve_order"] } wasm-bindgen = { version = "=0.2.86" } js-sys = "0.3.53" web-sys = { version = "0.3.6", features = ["console"] } -thiserror = { version = "1.0.59" } +thiserror = { version = "1.0.63" } serde-wasm-bindgen = { git = "https://github.com/QuantumExplorer/serde-wasm-bindgen", branch = "feat/not_human_readable" } dpp = { path = "../rs-dpp", default-features = false, features = [ "state-transition-serde-conversion", diff --git a/packages/wasm-dpp/lib/test/fixtures/getIdentityCreditWithdrawalTransitionFixture.js b/packages/wasm-dpp/lib/test/fixtures/getIdentityCreditWithdrawalTransitionFixture.js index 892acc55c1..2bc8478f3b 100644 --- a/packages/wasm-dpp/lib/test/fixtures/getIdentityCreditWithdrawalTransitionFixture.js +++ b/packages/wasm-dpp/lib/test/fixtures/getIdentityCreditWithdrawalTransitionFixture.js @@ -6,7 +6,7 @@ module.exports = function getIdentityCreditWithdrawalTransitionFixture() { const privateKey = new PrivateKey('cSBnVM4xvxarwGQuAfQFwqDg9k5tErHUHzgWsEfD4zdwUasvqRVY'); const address = privateKey.toAddress(); - const stateTransition = new IdentityCreditWithdrawalTransition(1); + const stateTransition = new IdentityCreditWithdrawalTransition(3); stateTransition.setIdentityId(generateRandomIdentifier()); // eslint-disable-next-line stateTransition.setAmount(BigInt(1000)); diff --git a/packages/wasm-dpp/package.json b/packages/wasm-dpp/package.json index 21e410dc82..f43dfda3e7 100644 --- a/packages/wasm-dpp/package.json +++ b/packages/wasm-dpp/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/wasm-dpp", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "The JavaScript implementation of the Dash Platform Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -86,7 +86,7 @@ "typescript": "^3.9.5", "url": "^0.11.3", "util": "^0.12.4", - "webpack": "^5.76.1", + "webpack": "^5.94.0", "webpack-cli": "^4.9.1" } } diff --git a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs index 8904162c21..d0ebb9ae56 100644 --- a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs +++ b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs @@ -1,4 +1,4 @@ -use dpp::identity::KeyID; +use dpp::identity::{KeyID, Purpose}; use dpp::{ prelude::Identifier, @@ -346,12 +346,22 @@ impl DocumentsBatchTransitionWasm { } #[wasm_bindgen(js_name=getKeySecurityLevelRequirement)] - pub fn get_security_level_requirement(&self) -> js_sys::Array { + pub fn get_security_level_requirement(&self, purpose: u8) -> Result { + // Convert the integer to a Purpose enum + let purpose_enum = match Purpose::try_from(purpose) { + Ok(purpose) => purpose, + Err(_) => { + return Err(JsValue::from_str( + "Invalid purpose value, expected a number between 0 and 5.", + )) + } + }; + let array = js_sys::Array::new(); - for security_level in self.0.security_level_requirement() { + for security_level in self.0.security_level_requirement(purpose_enum) { array.push(&JsValue::from(security_level as u32)); } - array + Ok(array) } // AbstractStateTransition methods diff --git a/packages/wasm-dpp/src/errors/consensus/basic/invalid_signature_public_key_purpose_error.rs b/packages/wasm-dpp/src/errors/consensus/basic/invalid_signature_public_key_purpose_error.rs index 835d9559a8..f81b0a4e87 100644 --- a/packages/wasm-dpp/src/errors/consensus/basic/invalid_signature_public_key_purpose_error.rs +++ b/packages/wasm-dpp/src/errors/consensus/basic/invalid_signature_public_key_purpose_error.rs @@ -23,8 +23,12 @@ impl InvalidSignaturePublicKeyPurposeErrorWasm { } #[wasm_bindgen(js_name=getKeyPurposeRequirement)] - pub fn get_allowed_key_purpose(&self) -> u8 { - self.inner.allowed_key_purpose() as u8 + pub fn get_allowed_key_purposes(&self) -> js_sys::Array { + let array = js_sys::Array::new(); + for purpose in self.inner.allowed_key_purposes() { + array.push(&JsValue::from(*purpose as u8)); + } + array } #[wasm_bindgen(js_name=getCode)] diff --git a/packages/wasm-dpp/src/errors/consensus/basic/wrong_public_key_purpose_error.rs b/packages/wasm-dpp/src/errors/consensus/basic/wrong_public_key_purpose_error.rs index ff07e99701..4f9e9205af 100644 --- a/packages/wasm-dpp/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +++ b/packages/wasm-dpp/src/errors/consensus/basic/wrong_public_key_purpose_error.rs @@ -23,8 +23,12 @@ impl WrongPublicKeyPurposeErrorWasm { } #[wasm_bindgen(js_name=getKeyPurposeRequirement)] - pub fn get_key_purpose_requirement(&self) -> u8 { - self.inner.key_purpose_requirement() as u8 + pub fn get_allowed_key_purposes(&self) -> js_sys::Array { + let array = js_sys::Array::new(); + for purpose in self.inner.allowed_key_purposes() { + array.push(&JsValue::from(*purpose as u8)); + } + array } #[wasm_bindgen(js_name=getCode)] diff --git a/packages/wasm-dpp/src/errors/consensus/consensus_error.rs b/packages/wasm-dpp/src/errors/consensus/consensus_error.rs index c9262628e8..ba828e674e 100644 --- a/packages/wasm-dpp/src/errors/consensus/consensus_error.rs +++ b/packages/wasm-dpp/src/errors/consensus/consensus_error.rs @@ -58,21 +58,24 @@ use dpp::consensus::signature::SignatureError; use dpp::consensus::state::state_error::StateError; use dpp::consensus::state::data_trigger::DataTriggerError::{ - DataTriggerConditionError, DataTriggerExecutionError, DataTriggerInvalidResultError, + DataTriggerConditionError, DataTriggerExecutionError, DataTriggerInvalidResultError, }; use wasm_bindgen::{JsError, JsValue}; use dpp::consensus::basic::data_contract::{ContestedUniqueIndexOnMutableDocumentTypeError, ContestedUniqueIndexWithUniqueIndexError, InvalidDocumentTypeRequiredSecurityLevelError, UnknownDocumentCreationRestrictionModeError, UnknownSecurityLevelError, UnknownStorageKeyRequirementsError, UnknownTradeModeError, UnknownTransferableTypeError}; -use dpp::consensus::basic::document::{DocumentCreationNotAllowedError, DocumentFieldMaxSizeExceededError, MaxDocumentsTransitionsExceededError, MissingPositionsInDocumentTypePropertiesError}; -use dpp::consensus::basic::identity::{DataContractBoundsNotPresentError, DisablingKeyIdAlsoBeingAddedInSameTransitionError, InvalidIdentityCreditWithdrawalTransitionAmountError, InvalidIdentityUpdateTransitionDisableKeysError, InvalidIdentityUpdateTransitionEmptyError, TooManyMasterPublicKeyError}; +use dpp::consensus::basic::document::{ContestedDocumentsTemporarilyNotAllowedError, DocumentCreationNotAllowedError, DocumentFieldMaxSizeExceededError, MaxDocumentsTransitionsExceededError, MissingPositionsInDocumentTypePropertiesError}; +use dpp::consensus::basic::identity::{DataContractBoundsNotPresentError, DisablingKeyIdAlsoBeingAddedInSameTransitionError, InvalidIdentityCreditWithdrawalTransitionAmountError, InvalidIdentityUpdateTransitionDisableKeysError, InvalidIdentityUpdateTransitionEmptyError, TooManyMasterPublicKeyError, WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError}; use dpp::consensus::basic::overflow_error::OverflowError; use dpp::consensus::state::data_contract::document_type_update_error::DocumentTypeUpdateError; use dpp::consensus::state::document::document_contest_currently_locked_error::DocumentContestCurrentlyLockedError; +use dpp::consensus::state::document::document_contest_document_with_same_id_already_present_error::DocumentContestDocumentWithSameIdAlreadyPresentError; use dpp::consensus::state::document::document_contest_identity_already_contestant::DocumentContestIdentityAlreadyContestantError; use dpp::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError; use dpp::consensus::state::document::document_incorrect_purchase_price_error::DocumentIncorrectPurchasePriceError; use dpp::consensus::state::document::document_not_for_sale_error::DocumentNotForSaleError; use dpp::consensus::state::identity::identity_public_key_already_exists_for_unique_contract_bounds_error::IdentityPublicKeyAlreadyExistsForUniqueContractBoundsError; use dpp::consensus::state::identity::master_public_key_update_error::MasterPublicKeyUpdateError; +use dpp::consensus::state::identity::missing_transfer_key_error::MissingTransferKeyError; +use dpp::consensus::state::identity::no_transfer_key_for_core_withdrawal_available_error::NoTransferKeyForCoreWithdrawalAvailableError; use dpp::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_insufficient_error::PrefundedSpecializedBalanceInsufficientError; use dpp::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_not_found_error::PrefundedSpecializedBalanceNotFoundError; use dpp::consensus::state::voting::masternode_incorrect_voter_identity_id_error::MasternodeIncorrectVoterIdentityIdError; @@ -292,6 +295,15 @@ pub fn from_state_error(state_error: &StateError) -> JsValue { StateError::MasternodeIncorrectVoterIdentityIdError(e) => { generic_consensus_error!(MasternodeIncorrectVoterIdentityIdError, e).into() } + StateError::DocumentContestDocumentWithSameIdAlreadyPresentError(e) => { + generic_consensus_error!(DocumentContestDocumentWithSameIdAlreadyPresentError, e).into() + } + StateError::MissingTransferKeyError(e) => { + generic_consensus_error!(MissingTransferKeyError, e).into() + } + StateError::NoTransferKeyForCoreWithdrawalAvailableError(e) => { + generic_consensus_error!(NoTransferKeyForCoreWithdrawalAvailableError, e).into() + } } } @@ -545,6 +557,16 @@ fn from_basic_error(basic_error: &BasicError) -> JsValue { BasicError::ContestedUniqueIndexWithUniqueIndexError(e) => { generic_consensus_error!(ContestedUniqueIndexWithUniqueIndexError, e).into() } + BasicError::ContestedDocumentsTemporarilyNotAllowedError(e) => { + generic_consensus_error!(ContestedDocumentsTemporarilyNotAllowedError, e).into() + } + BasicError::WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError(e) => { + generic_consensus_error!( + WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError, + e + ) + .into() + } } } diff --git a/packages/wasm-dpp/src/identity/identity_facade.rs b/packages/wasm-dpp/src/identity/identity_facade.rs index d14892d4f9..bd4db7d491 100644 --- a/packages/wasm-dpp/src/identity/identity_facade.rs +++ b/packages/wasm-dpp/src/identity/identity_facade.rs @@ -206,7 +206,7 @@ impl IdentityFacadeWasm { amount: u64, core_fee_per_byte: u32, pooling: u8, - output_script: Vec, + output_script: Option>, identity_nonce: u64, ) -> Result { let pooling = match pooling { @@ -222,7 +222,7 @@ impl IdentityFacadeWasm { amount, core_fee_per_byte, pooling, - CoreScript::from_bytes(output_script), + output_script.map(CoreScript::from_bytes), identity_nonce as IdentityNonce, ) .map(Into::into) diff --git a/packages/wasm-dpp/src/identity/identity_factory.rs b/packages/wasm-dpp/src/identity/identity_factory.rs index b4fcf35d55..799598b456 100644 --- a/packages/wasm-dpp/src/identity/identity_factory.rs +++ b/packages/wasm-dpp/src/identity/identity_factory.rs @@ -210,7 +210,7 @@ impl IdentityFactoryWasm { amount: u64, core_fee_per_byte: u32, pooling: u8, - output_script: Vec, + output_script: Option>, identity_nonce: u64, ) -> Result { let pooling = match pooling { @@ -226,7 +226,7 @@ impl IdentityFactoryWasm { amount, core_fee_per_byte, pooling, - CoreScript::from_bytes(output_script), + output_script.map(CoreScript::from_bytes), identity_nonce as IdentityNonce, ) .map(Into::into) diff --git a/packages/wasm-dpp/src/identity/identity_public_key/purpose.rs b/packages/wasm-dpp/src/identity/identity_public_key/purpose.rs index 5e598ffa52..33503d6179 100644 --- a/packages/wasm-dpp/src/identity/identity_public_key/purpose.rs +++ b/packages/wasm-dpp/src/identity/identity_public_key/purpose.rs @@ -15,6 +15,8 @@ pub enum PurposeWasm { SYSTEM = 4, /// this key cannot be used for signing documents VOTING = 5, + /// this key is only for masternode owners + OWNER = 6, } impl From for PurposeWasm { @@ -26,6 +28,7 @@ impl From for PurposeWasm { Purpose::TRANSFER => PurposeWasm::TRANSFER, Purpose::SYSTEM => PurposeWasm::SYSTEM, Purpose::VOTING => PurposeWasm::VOTING, + Purpose::OWNER => PurposeWasm::OWNER, } } } diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/to_object.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/to_object.rs index b0dc0002c8..d805f7f018 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/to_object.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/to_object.rs @@ -23,7 +23,7 @@ pub struct ToObject { pub amount: u64, pub core_fee_per_byte: u32, pub pooling: Pooling, - pub output_script: CoreScript, + pub output_script: Option, pub nonce: IdentityNonce, pub signature: Option>, pub signature_public_key_id: Option, diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs index 9d75149519..3de33cb834 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs @@ -114,14 +114,16 @@ impl IdentityCreditWithdrawalTransitionWasm { } #[wasm_bindgen(js_name=getOutputScript)] - pub fn get_output_script(&self) -> Buffer { - Buffer::from_bytes(self.0.output_script().as_bytes()) + pub fn get_output_script(&self) -> Option { + self.0 + .output_script() + .map(|core_script| Buffer::from_bytes(core_script.as_bytes())) } #[wasm_bindgen(js_name=setOutputScript)] - pub fn set_output_script(&mut self, output_script: Vec) { + pub fn set_output_script(&mut self, output_script: Option>) { self.0 - .set_output_script(CoreScript::from_bytes(output_script)); + .set_output_script(output_script.map(CoreScript::from_bytes)); } #[wasm_bindgen(js_name=getNonce)] @@ -153,6 +155,7 @@ impl IdentityCreditWithdrawalTransitionWasm { let version = match self.0 { IdentityCreditWithdrawalTransition::V0(_) => "0", + IdentityCreditWithdrawalTransition::V1(_) => "1", }; js_sys::Reflect::set(&js_object, &"$version".to_owned().into(), &version.into())?; @@ -205,12 +208,15 @@ impl IdentityCreditWithdrawalTransitionWasm { &JsValue::from_f64((object.pooling as u8) as f64), )?; - let output_script = Buffer::from_bytes(object.output_script.as_bytes()); - js_sys::Reflect::set( - &js_object, - &"outputScript".to_owned().into(), - &output_script.into(), - )?; + if let Some(output_script) = object.output_script { + let output_script = Buffer::from_bytes(output_script.as_bytes()); + + js_sys::Reflect::set( + &js_object, + &"outputScript".to_owned().into(), + &output_script.into(), + )?; + } js_sys::Reflect::set( &js_object, @@ -243,6 +249,7 @@ impl IdentityCreditWithdrawalTransitionWasm { let version = match self.0 { IdentityCreditWithdrawalTransition::V0(_) => "0", + IdentityCreditWithdrawalTransition::V1(_) => "1", }; js_sys::Reflect::set(&js_object, &"$version".to_owned().into(), &version.into())?; @@ -297,16 +304,16 @@ impl IdentityCreditWithdrawalTransitionWasm { &JsValue::from_f64((object.pooling as u8) as f64), )?; - let output_script = platform_value::string_encoding::encode( - object.output_script.as_bytes(), - Encoding::Base64, - ); + if let Some(output_script) = object.output_script { + let output_script = + platform_value::string_encoding::encode(output_script.as_bytes(), Encoding::Base64); - js_sys::Reflect::set( - &js_object, - &"outputScript".to_owned().into(), - &output_script.into(), - )?; + js_sys::Reflect::set( + &js_object, + &"outputScript".to_owned().into(), + &output_script.into(), + )?; + } js_sys::Reflect::set( &js_object, diff --git a/packages/wasm-dpp/test/integration/identity/IdentityFacade.spec.js b/packages/wasm-dpp/test/integration/identity/IdentityFacade.spec.js index 90778aa72e..2ed05d3bcb 100644 --- a/packages/wasm-dpp/test/integration/identity/IdentityFacade.spec.js +++ b/packages/wasm-dpp/test/integration/identity/IdentityFacade.spec.js @@ -24,7 +24,7 @@ describe('IdentityFacade', () => { beforeEach(async () => { dpp = new DashPlatformProtocol( { generate: () => crypto.randomBytes(32) }, - 1, + 3, ); const chainAssetLockProofJS = getChainAssetLockProofFixture(); diff --git a/packages/wasm-dpp/test/unit/identity/IdentityFactory.spec.js b/packages/wasm-dpp/test/unit/identity/IdentityFactory.spec.js index 25c23be0c9..1cd8fc8469 100644 --- a/packages/wasm-dpp/test/unit/identity/IdentityFactory.spec.js +++ b/packages/wasm-dpp/test/unit/identity/IdentityFactory.spec.js @@ -26,7 +26,7 @@ describe('IdentityFactory', () => { // const identityValidator = new IdentityValidator(blsAdapter); - factory = new IdentityFactory(1); + factory = new IdentityFactory(3); identity = await getIdentityFixture(instantAssetLockProof.createIdentifier()); identity.setBalance(0); diff --git a/packages/wasm-dpp/test/unit/identity/stateTransition/IdentityCreditWithdrawalTransition/IdentityCreditWithdrawalTransition.spec.js b/packages/wasm-dpp/test/unit/identity/stateTransition/IdentityCreditWithdrawalTransition/IdentityCreditWithdrawalTransition.spec.js index b80c611116..503ecf4bef 100644 --- a/packages/wasm-dpp/test/unit/identity/stateTransition/IdentityCreditWithdrawalTransition/IdentityCreditWithdrawalTransition.spec.js +++ b/packages/wasm-dpp/test/unit/identity/stateTransition/IdentityCreditWithdrawalTransition/IdentityCreditWithdrawalTransition.spec.js @@ -75,7 +75,7 @@ describe('IdentityCreditWithdrawalTransition', () => { rawStateTransition = stateTransition.toObject(); expect(rawStateTransition).to.deep.equal({ - $version: '0', + $version: '1', type: StateTransitionTypes.IdentityCreditWithdrawal, identityId: stateTransition.getIdentityId().toBuffer(), amount: stateTransition.getAmount(), @@ -92,7 +92,7 @@ describe('IdentityCreditWithdrawalTransition', () => { rawStateTransition = stateTransition.toObject({ skipSignature: true }); expect(rawStateTransition).to.deep.equal({ - $version: '0', + $version: '1', type: StateTransitionTypes.IdentityCreditWithdrawal, identityId: stateTransition.getIdentityId().toBuffer(), amount: stateTransition.getAmount(), @@ -109,7 +109,7 @@ describe('IdentityCreditWithdrawalTransition', () => { const jsonStateTransition = stateTransition.toJSON(); expect(jsonStateTransition).to.deep.equal({ - $version: '0', + $version: '1', type: StateTransitionTypes.IdentityCreditWithdrawal, identityId: stateTransition.getIdentityId().toString(), amount: stateTransition.getAmount().toString(), diff --git a/packages/withdrawals-contract/Cargo.toml b/packages/withdrawals-contract/Cargo.toml index fa5310a16c..59ec5928f4 100644 --- a/packages/withdrawals-contract/Cargo.toml +++ b/packages/withdrawals-contract/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "withdrawals-contract" description = "Witdrawals data contract schema and tools" -version = "1.1.0-dev.1" +version = "1.4.0-dev.5" edition = "2021" rust-version.workspace = true license = "MIT" [dependencies] -thiserror = "1.0.58" +thiserror = "1.0.64" platform-version = { path = "../rs-platform-version" } platform-value = { path = "../rs-platform-value" } num_enum = "0.5.7" diff --git a/packages/withdrawals-contract/package.json b/packages/withdrawals-contract/package.json index 47703ff45a..750d87c499 100644 --- a/packages/withdrawals-contract/package.json +++ b/packages/withdrawals-contract/package.json @@ -1,6 +1,6 @@ { "name": "@dashevo/withdrawals-contract", - "version": "1.1.0-dev.1", + "version": "1.4.0-dev.5", "description": "Data Contract to manipulate and track withdrawals", "scripts": { "build": "", diff --git a/packages/withdrawals-contract/src/lib.rs b/packages/withdrawals-contract/src/lib.rs index 0eece0b61b..47e735b938 100644 --- a/packages/withdrawals-contract/src/lib.rs +++ b/packages/withdrawals-contract/src/lib.rs @@ -4,6 +4,7 @@ use platform_value::{Identifier, IdentifierBytes32}; use platform_version::version::PlatformVersion; use serde_json::Value; use serde_repr::{Deserialize_repr, Serialize_repr}; +use std::fmt; mod error; pub mod v1; @@ -32,13 +33,31 @@ pub const OWNER_ID: Identifier = Identifier(IdentifierBytes32(OWNER_ID_BYTES)); IntoPrimitive, )] pub enum WithdrawalStatus { + /// The documents are in the state and waiting to be processed. QUEUED = 0, + /// Pooled happens when we are waiting for signing. POOLED = 1, + /// We have broadcasted the transaction to core. BROADCASTED = 2, + /// The transaction is now complete. COMPLETE = 3, + /// We broadcasted the transaction but core never saw it or rejected it. EXPIRED = 4, } +impl fmt::Display for WithdrawalStatus { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let status_str = match self { + WithdrawalStatus::QUEUED => "Queued", + WithdrawalStatus::POOLED => "Pooled", + WithdrawalStatus::BROADCASTED => "Broadcasted", + WithdrawalStatus::COMPLETE => "Complete", + WithdrawalStatus::EXPIRED => "Expired", + }; + write!(f, "{}", status_str) + } +} + pub fn load_definitions(platform_version: &PlatformVersion) -> Result, Error> { match platform_version.system_data_contracts.withdrawals { 1 => Ok(None), diff --git a/scripts/change_base_branch.sh b/scripts/change_base_branch.sh new file mode 100755 index 0000000000..3e8dfaf916 --- /dev/null +++ b/scripts/change_base_branch.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -e -o pipefail + +# Function to display help +show_help() { + echo "Usage: $0 OLD_BASE NEW_BASE" + echo "" + echo "Change the base branch for all open PRs from OLD_BASE to NEW_BASE." + echo "" + echo "Arguments:" + echo " OLD_BASE The current base branch to change from." + echo " NEW_BASE The new base branch to change to." + echo "" + echo "Options:" + echo " -h Display this help message." +} + +# Parse command-line options +while getopts "h" opt; do + case $opt in + h) show_help + exit 0 ;; + \?) echo "Invalid option: -$OPTARG" >&2 + show_help + exit 1 ;; + esac +done + +# Shift the parsed options away to handle positional arguments +shift $((OPTIND -1)) + +# Check if the correct number of arguments are provided +if [ "$#" -ne 2 ]; then + echo "Error: OLD_BASE and NEW_BASE are required." + show_help + exit 1 +fi + +# Assign positional arguments to variables +old_base_branch="$1" +new_base_branch="$2" + +# List PRs and change base branch +prs=$(gh pr list --base "$old_base_branch" --json number --jq '.[].number') + +if [ -z "$prs" ]; then + echo "No PRs found with base branch '$old_base_branch'." + exit 0 +fi + +for pr in $prs; do + echo "Updating PR #$pr from base '$old_base_branch' to '$new_base_branch'..." + gh pr edit "$pr" --base "$new_base_branch" +done + +echo "Base branch update complete." diff --git a/scripts/check_network_version.sh b/scripts/check_network_version.sh new file mode 100755 index 0000000000..400501329c --- /dev/null +++ b/scripts/check_network_version.sh @@ -0,0 +1,207 @@ +#! /bin/bash + +# Some defaults +PORT=${PORT:-443} +CSV=/tmp/masternodes.csv +MASTERNODES="" +ALL="" + +function help() { + if [[ -z "$1" ]]; then + + echo This script connects to all masternodes and tries to detect their version. + echo "" + echo "Usage: $0 [-p | --port ] [-h | --help] [-m | --masternodes ] [-j | --json ] [-w | --mnowatch] [-c | --csv ]" + echo "Options:" + echo " -p, --port Port to connect to (default: $PORT)" + echo " -h, --help Show this help" + echo " -m, --masternodes File with IP addresses of masternodes to check" + echo " -j, --json File with masternodes.json in format generated by mnowatch" + echo " -w, --mnowatch Use mnowatch.org to get masternodes" + echo " -c, --csv Save results to CSV file; default: $CSV" + echo "" + echo "Note: --masternodes, --json, and --mnowatch are mutually exclusive and the latest one takes precedence." + exit 1 + fi +} + +REPO="$(realpath "$(dirname "$0")/..")" + +function load_masternodes_json() { + # curl https://mnowatch.org/json/?method=emn_details + # TODO: use curl above + jq 'map(select(.platformHTTPPortStatus != "CLOSED"))|map(select(.active_YNU!="N"))|map(select(.status!="P"))' "$1" | + jq -r .[].ip | + sort | + uniq +} + +function grpc_core { + docker run \ + -v "${REPO}:/repo" \ + fullstorydev/grpcurl:latest \ + -import-path "/repo/packages/dapi-grpc/protos/core/v0" \ + -proto core.proto \ + -max-time 30 \ + -keepalive-time 1 \ + "$@" +} + +function grpc_platform { + docker run \ + -v "${REPO}:/repo" \ + fullstorydev/grpcurl:latest \ + -import-path "/repo/packages/dapi-grpc/protos/platform/v0" \ + -proto platform.proto \ + -max-time 30 \ + -keepalive-time 1 \ + "$@" +} + +# Go to specified IP and fetch SML (subscribeToMasternodeList) + +# MASTERNODES=$( +# grpc_core "$FULLNODE:$PORT" org.dash.platform.dapi.v0.Core/subscribeToMasternodeList | +# jq -r .masternodeListDiff | +# base64 -d | +# grep -aEo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq +# ) + +# Try to determine version of the platform +function detect_platform() { + NODE="$1" + + err="$(grpc_platform -insecure "$NODE:${PORT}" org.dash.platform.dapi.v0.Platform/getTotalCreditsInPlatform 2>&1)" + + echo "============ $NODE ============" >>/tmp/detect_platform.log + echo "$err" >>/tmp/detect_platform.log + + case "$err" in + *"decoding error: could not decode"*) + echo 1.1 + ;; + *"upstream connect error or disconnect/reset before headers"*) + echo "upstream connect error" + ;; + *"connect: connection refused"*) + echo "connection refused" + ;; + *"Code: Unimplemented"*) + echo "unimplemented" + ;; + *) + echo "ERROR" + ;; + esac +} + +# Check if core is available by calling getBlockchainStatus +# UNUSED +function detect_core() { + NODE="$1" + + err="$(grpc_core -insecure -d '{}' "$NODE:${PORT}" org.dash.platform.dapi.v0.Core/getBlockchainStatus 2>&1)" + + echo "============ $NODE ============" >>/tmp/detect_core.log + echo "$err" >>/tmp/detect_core.log + + version="$(echo "$err" | jq -r .version.agent 2>/dev/null)" + if [[ -z "$version" ]]; then + case "$err" in + *"upstream connect error"*) + echo down + ;; + *"connect: connection refused"*) + echo "connection refused" + ;; + *) + echo "UNKNOWN" + ;; + esac + else + echo "$version" + fi +} + +# Parse arguments +while [[ "$1" == -* ]]; do + case "$1" in + -p | --port) + PORT="$2" + shift 2 + ;; + -m | --masternodes) + MASTERNODES=$(cat "$2") + shift 2 + ;; + -j | --json) + MASTERNODES=$(load_masternodes_json "$2") + ALL=$(jq '.|length' "$2") + shift 2 + ;; + -w | --mnowatch) + MN_FILE=$(mktemp /tmp/masternodes.json.XXXXXX) + echo -n Fetching masternodes from mnowatch.org... + curl -s https://mnowatch.org/json/?method=emn_details >"$MN_FILE" + ALL=$(jq '.|length' "$MN_FILE") + MASTERNODES=$(load_masternodes_json "$MN_FILE") + echo " done." + shift + ;; + -c | --csv) + CSV="$2" + shift 2 + ;; + *) + echo "Unknown option: $1" + exit 1 + ;; + esac +done + +COUNT=$(echo "$MASTERNODES" | wc -l) +if [[ -z "$ALL" ]]; then + ALL=$COUNT +fi + +# Fetch getTotalCreditsInPlatform : +# * can’t connect - no platform, not found - means platform version +# * less than 1.1.0, internal - right version but init chain is not called yet. +# Fetch getBlockchainStatus to get information about Core: +# * can’t connect - no platform or no core +# grpc_core -help +set +e + +# Reset logs +truncate -s 0 /tmp/detect_platform.log +truncate -s 0 /tmp/detect_core.log + +if [[ -z "$MASTERNODES" ]]; then + echo "No masternodes found" + exit 1 +fi + +# CSV header +echo "'no','masternode','platform','core'" >"$CSV" + +i=1 +for MN in $MASTERNODES; do + echo "Checking status of evo node $MN ($i/$COUNT)" + + PLATFORM="$(detect_platform "$MN")" + # CORE="$(detect_core "$MN")" + # Format result as CSV + echo "$i,'$MN','$PLATFORM','$CORE'" >>"$CSV" + i=$((i + 1)) +done + +echo "Done." + +echo "" +echo "Results saved to $CSV" +echo "" +echo "Some statistics:" +echo "Total evonodes: $ALL" +echo "Potentially correct evo nodes: $COUNT" +echo "Platform versions:" +tail -n +2 "$CSV" | cut -d, -f3 | sort | uniq -c | sort -n diff --git a/scripts/update_rust_version.sh b/scripts/update_rust_version.sh index 805c9fe0dc..d0868be2aa 100755 --- a/scripts/update_rust_version.sh +++ b/scripts/update_rust_version.sh @@ -1,7 +1,7 @@ #! /bin/bash -e # This script updates the rust version to the one provided in the first argument. - +# Requires `yq` to be installed: https://github.com/mikefarah/yq PROJECT_ROOT="$(realpath "$(dirname "$0")"/..)" # Check if the first argument is provided diff --git a/yarn.lock b/yarn.lock index 974d2af3f3..471b7df263 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1513,7 +1513,7 @@ __metadata: url: "npm:^0.11.3" util: "npm:^0.12.4" wasm-x11-hash: "npm:~0.0.2" - webpack: "npm:^5.76.1" + webpack: "npm:^5.94.0" webpack-cli: "npm:^4.9.1" winston: "npm:^3.2.1" languageName: unknown @@ -1832,7 +1832,7 @@ __metadata: url: "npm:^0.11.3" utf-8-validate: "npm:^5.0.9" util: "npm:^0.12.4" - webpack: "npm:^5.76.1" + webpack: "npm:^5.94.0" ws: "npm:^8.17.1" bin: test: bin/test.sh @@ -1929,7 +1929,7 @@ __metadata: url: "npm:^0.11.3" util: "npm:^0.12.4" wasm-x11-hash: "npm:~0.0.2" - webpack: "npm:^5.76.1" + webpack: "npm:^5.94.0" webpack-cli: "npm:^4.9.1" winston: "npm:^3.2.1" languageName: unknown @@ -1989,7 +1989,7 @@ __metadata: url: "npm:^0.11.3" util: "npm:^0.12.4" varint: "npm:^6.0.0" - webpack: "npm:^5.76.1" + webpack: "npm:^5.94.0" webpack-cli: "npm:^4.9.1" languageName: unknown linkType: soft @@ -2232,6 +2232,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2 + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3": version: 3.1.0 resolution: "@jridgewell/resolve-uri@npm:3.1.0" @@ -2239,6 +2250,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -2246,6 +2264,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + "@jridgewell/source-map@npm:^0.3.2": version: 0.3.2 resolution: "@jridgewell/source-map@npm:0.3.2" @@ -2256,6 +2281,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 0a9aca9320dc9044014ba0ef989b3a8411b0d778895553e3b7ca2ac0a75a20af4a5ad3f202acfb1879fa40466036a4417e1d5b38305baed8b9c1ebe6e4b3e7f5 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -2263,6 +2298,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -2283,6 +2325,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc + languageName: node + linkType: hard + "@jsdevtools/ono@npm:^7.1.0": version: 7.1.3 resolution: "@jsdevtools/ono@npm:7.1.3" @@ -3249,26 +3301,6 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" - dependencies: - "@types/eslint": "npm:*" - "@types/estree": "npm:*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.2.0 - resolution: "@types/eslint@npm:8.2.0" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 1e8100311ea9724eafa635fc36460ac1c8d6847f55f69471c68c1b5db04cf39ffa117c96d2c65b152ba405c62664e1e386050e7324cc2d8b4c23270cebd5d7d9 - languageName: node - linkType: hard - "@types/eslint@npm:^7.2.13": version: 7.29.0 resolution: "@types/eslint@npm:7.29.0" @@ -3279,13 +3311,20 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^0.0.51": +"@types/estree@npm:*": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" checksum: b566c7a3fc8a81ca3d9e00a717e90b8f5d567e2476b4f6d76a20ec6da33ec28165b8f989ed8dd0c9df41405199777ec36a4f85f32a347fbc6c3f696a3128b6e7 languageName: node linkType: hard +"@types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 + languageName: node + linkType: hard + "@types/expect@npm:^1.20.4": version: 1.20.4 resolution: "@types/expect@npm:1.20.4" @@ -3667,154 +3706,154 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" dependencies: - "@webassemblyjs/helper-numbers": "npm:1.11.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.1" - checksum: 28cc949e2e68eb103fc416b30880cf57bc37b452e1e6fe05c73c64bc6d90d68176013fb5101bf80a2eb4961299dd4d7cffeecd32d189a17951da7ead90c2f35f + "@webassemblyjs/helper-numbers": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + checksum: a775b0559437ae122d14fec0cfe59fdcaf5ca2d8ff48254014fd05d6797e20401e0f1518e628f9b06819aa085834a2534234977f9608b3f2e51f94b6e8b0bc43 languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: 1d8705daa41f4d22ef7c6d422af4c530b84d69d0c253c6db5adec44d511d7caa66837803db5b1addcea611a1498fd5a67d2cf318b057a916283ae41ffb85ba8a languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" dependencies: - "@webassemblyjs/floating-point-hex-parser": "npm:1.11.1" - "@webassemblyjs/helper-api-error": "npm:1.11.1" + "@webassemblyjs/floating-point-hex-parser": "npm:1.11.6" + "@webassemblyjs/helper-api-error": "npm:1.11.6" "@xtuc/long": "npm:4.2.2" - checksum: cbe5b456fa074d11a5acf80860df2899a160011943d7e26e60b6eda1c1dbe594e717e0c9f2b50ba2323f75f333bc5ec949acd992a63f2207df754a474167e424 + checksum: 9ffd258ad809402688a490fdef1fd02222f20cdfe191c895ac215a331343292164e5033dbc0347f0f76f2447865c0b5c2d2e3304ee948d44f7aa27857028fd08 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: 009b494010907a52c1c6c6fcb42db8606cf2443e2e767c7ff3029acf31f9a206108285609d735ee77bcbcbd3f1a1f8920b365e7a9466ef35a7932b74c743c816 +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 4ebf03e9c1941288c10e94e0f813f413f972bfaa1f09be2cc2e5577f300430906b61aa24d52f5ef2f894e8e24e61c6f7c39871d7e3d98bc69460e1b8e00bb20b languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/helper-buffer": "npm:1.11.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.1" - "@webassemblyjs/wasm-gen": "npm:1.11.1" - checksum: dd6eee9f73346b14d31e95074a8dced21d59269e86e47ad01b6578d86ae6008b411fb989bbd400102c355ea0ba3d070eb9949a64f822abc8f65cf0162704834a + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + checksum: e91e6b28114e35321934070a2db8973a08a5cd9c30500b817214c683bbf5269ed4324366dd93ad83bf2fba0d671ac8f39df1c142bf58f70c57a827eeba4a3d2f languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" dependencies: "@xtuc/ieee754": "npm:^1.2.0" - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" dependencies: "@xtuc/long": "npm:4.2.2" - checksum: 85beb7156f131c29e9a7f1a05e7fc131849152dd7b0c198d4f21b8e965d96dbfeaca3ac53e4bfbedfeef88b0ada0ff0bd0b7ad5c7dfb8c3d3fed0f922084a557 + checksum: ec3b72db0e7ce7908fe08ec24395bfc97db486063824c0edc580f0973a4cfbadf30529569d9c7db663a56513e45b94299cca03be9e1992ea3308bb0744164f3d languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: b93e57912dfb91df4a76162abd6fb5e491110e113101ec136cea0ea8b8bd43708e94f919ea0e8762657994da6a5fcb63d34b6da392e5dd4e189169da4c75c149 +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 361a537bd604101b320a5604c3c96d1038d83166f1b9fb86cedadc7e81bae54c3785ae5d90bf5b1842f7da08194ccaf0f44a64fcca0cbbd6afe1a166196986d6 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/helper-buffer": "npm:1.11.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.1" - "@webassemblyjs/helper-wasm-section": "npm:1.11.1" - "@webassemblyjs/wasm-gen": "npm:1.11.1" - "@webassemblyjs/wasm-opt": "npm:1.11.1" - "@webassemblyjs/wasm-parser": "npm:1.11.1" - "@webassemblyjs/wast-printer": "npm:1.11.1" - checksum: 6a029ae21c3c0890a55e3d6fb20071434ed5ef024d7d9ca79a754555ccbbc595052e936f6e547b6823922e3f41d3350027a21e65a04032c5fce29d0e4301513d + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/helper-wasm-section": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-opt": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + "@webassemblyjs/wast-printer": "npm:1.12.1" + checksum: 5678ae02dbebba2f3a344e25928ea5a26a0df777166c9be77a467bfde7aca7f4b57ef95587e4bd768a402cdf2fddc4c56f0a599d164cdd9fe313520e39e18137 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.1" - "@webassemblyjs/ieee754": "npm:1.11.1" - "@webassemblyjs/leb128": "npm:1.11.1" - "@webassemblyjs/utf8": "npm:1.11.1" - checksum: 5da040e78045f5499a99435ce0b1878d77f4fbfecb854841367cfc8ac16cc169a7f04187aac5da794b8d08a84ba25324f276f9128c5597ee6666cabd6b954ec1 + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: ec45bd50e86bc9856f80fe9af4bc1ae5c98fb85f57023d11dff2b670da240c47a7b1b9b6c89755890314212bd167cf3adae7f1157216ddffb739a4ce589fc338 languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/helper-buffer": "npm:1.11.1" - "@webassemblyjs/wasm-gen": "npm:1.11.1" - "@webassemblyjs/wasm-parser": "npm:1.11.1" - checksum: 00f85d1f762ca2574ea6b5e85b3e9c50720886cca86ef192c80a1af484d98353500667af91416c407cdaeac3176bcd2b0f0641f4299a915b21b03a7f2ff84f3a + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + checksum: 21f25ae109012c49bb084e09f3b67679510429adc3e2408ad3621b2b505379d9cce337799a7919ef44db64e0d136833216914aea16b0d4856f353b9778e0cdb7 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/helper-api-error": "npm:1.11.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.1" - "@webassemblyjs/ieee754": "npm:1.11.1" - "@webassemblyjs/leb128": "npm:1.11.1" - "@webassemblyjs/utf8": "npm:1.11.1" - checksum: cc6de8f4d9c56b370c2151dd9daacbdabe4aa20ba55b278e322de949dcbdc33b615773ce1756b69580cd2d68273d72ddf8ba68c3bb8715a462e64cf02de9a7c3 + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: f7311685b76c3e1def2abea3488be1e77f06ecd8633143a6c5c943ca289660952b73785231bb76a010055ca64645227a4bc79705c26ab7536216891b6bb36320 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" dependencies: - "@webassemblyjs/ast": "npm:1.11.1" + "@webassemblyjs/ast": "npm:1.12.1" "@xtuc/long": "npm:4.2.2" - checksum: bd1cf7a0630bf2d003d9df004fca97f53026b39560d0629dc8019aed7e7cc38000d1cb78f7e70ea52fc0561a822bcc7683d48f839363a9d0cf16574f9cbd8c32 + checksum: 1a6a4b6bc4234f2b5adbab0cb11a24911b03380eb1cab6fb27a2250174a279fdc6aa2f5a9cf62dd1f6d4eb39f778f488e8ff15b9deb0670dee5c5077d46cf572 languageName: node linkType: hard @@ -4042,12 +4081,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" peerDependencies: acorn: ^8 - checksum: d61a8a1c1eaf1ba205fb2011c664533813bb517d8b5cec4adecd44efc1dbccc76eced7d68b2a283b7704634718660ef5ccce2da6a0fbc2da2d5039abdb12d049 + checksum: 8bfbfbb6e2467b9b47abb4d095df717ab64fce2525da65eabee073e85e7975fb3a176b6c8bba17c99a7d8ede283a10a590272304eb54a93c4aa1af9790d47a8b languageName: node linkType: hard @@ -4076,6 +4115,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.8.2": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 + languageName: node + linkType: hard + "add-stream@npm:^1.0.0": version: 1.0.0 resolution: "add-stream@npm:1.0.0" @@ -4791,21 +4839,23 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.19.0": - version: 1.19.0 - resolution: "body-parser@npm:1.19.0" +"body-parser@npm:^1.20.3": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" dependencies: - bytes: "npm:3.1.0" - content-type: "npm:~1.0.4" + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" debug: "npm:2.6.9" - depd: "npm:~1.1.2" - http-errors: "npm:1.7.2" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" iconv-lite: "npm:0.4.24" - on-finished: "npm:~2.3.0" - qs: "npm:6.7.0" - raw-body: "npm:2.4.0" - type-is: "npm:~1.6.17" - checksum: 6ed5f3f42f3038301673d90ea1616f7670e78795018904cf581d361523bfa24a7b6d998015d9cdd02668cd70e85d8b3b4b40023e4128e8aec1ddaf6ed1693dc1 + on-finished: "npm:2.4.1" + qs: "npm:6.13.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 8723e3d7a672eb50854327453bed85ac48d045f4958e81e7d470c56bf111f835b97e5b73ae9f6393d0011cc9e252771f46fd281bbabc57d33d3986edf1e6aeca languageName: node linkType: hard @@ -4940,7 +4990,21 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": +"browserslist@npm:^4.21.10": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: e266d18c6c6c5becf9a1a7aa264477677b9796387972e8fce34854bb33dc1666194dc28389780e5dc6566e68a95e87ece2ce222e1c4ca93c2b75b61dfebd5f1c + languageName: node + linkType: hard + +"browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": version: 4.22.1 resolution: "browserslist@npm:4.22.1" dependencies: @@ -5062,10 +5126,10 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.1.0": - version: 3.1.0 - resolution: "bytes@npm:3.1.0" - checksum: 7c3b21c5d9d44ed455460d5d36a31abc6fa2ce3807964ba60a4b03fd44454c8cf07bb0585af83bfde1c5cc2ea4bbe5897bc3d18cd15e0acf25a3615a35aba2df +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 languageName: node linkType: hard @@ -5212,6 +5276,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001653 + resolution: "caniuse-lite@npm:1.0.30001653" + checksum: cd9b1c0fe03249e593789a11a9ef14f987b385e60441748945916b19e74e7bc5c82c40d4836496a647586651898741aed1598ae0792114a9f0d7d7fdb2b7deb0 + languageName: node + linkType: hard + "capital-case@npm:^1.0.4": version: 1.0.4 resolution: "capital-case@npm:1.0.4" @@ -5871,13 +5942,20 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.4, content-type@npm:~1.0.4": +"content-type@npm:^1.0.4": version: 1.0.4 resolution: "content-type@npm:1.0.4" checksum: 5ea85c5293475c0cdf2f84e2c71f0519ced565840fb8cbda35997cb67cc45b879d5b9dbd37760c4041ca7415a3687f8a5f2f87b556b2aaefa49c0f3436a346d4 languageName: node linkType: hard +"content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 + languageName: node + linkType: hard + "conventional-changelog-angular@npm:^5.0.12": version: 5.0.13 resolution: "conventional-changelog-angular@npm:5.0.13" @@ -6083,10 +6161,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:~0.4.1": - version: 0.4.1 - resolution: "cookie@npm:0.4.1" - checksum: 0f2defd60ac93645ee31e82d11da695080435eb4fe5bed9b14d2fc4e0621a66f4c5c60f3eb05761df08a9d6279366e8646edfd1654f359d0b5afc25304fc4ddc +"cookie@npm:^0.7.0": + version: 0.7.1 + resolution: "cookie@npm:0.7.1" + checksum: aec6a6aa0781761bf55d60447d6be08861d381136a0fe94aa084fddd4f0300faa2b064df490c6798adfa1ebaef9e0af9b08a189c823e0811b8b313b3d9a03380 languageName: node linkType: hard @@ -6329,7 +6407,7 @@ __metadata: typescript: "npm:^3.9.5" url: "npm:^0.11.3" util: "npm:^0.12.4" - webpack: "npm:^5.76.1" + webpack: "npm:^5.94.0" webpack-cli: "npm:^4.9.1" winston: "npm:^3.2.1" languageName: unknown @@ -6622,20 +6700,13 @@ __metadata: languageName: node linkType: hard -"depd@npm:^2.0.0": +"depd@npm:2.0.0, depd@npm:^2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca languageName: node linkType: hard -"depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d - languageName: node - linkType: hard - "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -6653,6 +6724,13 @@ __metadata: languageName: node linkType: hard +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + "dezalgo@npm:^1.0.0": version: 1.0.3 resolution: "dezalgo@npm:1.0.3" @@ -6899,6 +6977,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.4": + version: 1.5.13 + resolution: "electron-to-chromium@npm:1.5.13" + checksum: b3de6dbca66e399eacd4f7e2b7603394c8949c9e724d838a45e092725005ff435aabfbf00f738e45451eb23147684f7f9251a5ed75619a539642b2bccea20b45 + languageName: node + linkType: hard + "elliptic@npm:6.5.7": version: 6.5.7 resolution: "elliptic@npm:6.5.7" @@ -6985,7 +7070,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.10.0": +"enhanced-resolve@npm:^5.0.0": version: 5.15.0 resolution: "enhanced-resolve@npm:5.15.0" dependencies: @@ -6995,6 +7080,16 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.2.0" + checksum: e8e03cb7a4bf3c0250a89afbd29e5ec20e90ba5fcd026066232a0754864d7d0a393fa6fc0e5379314a6529165a1834b36731147080714459d98924520410d8f5 + languageName: node + linkType: hard + "enquirer@github:dashpay/enquirer#patch-1": version: 2.3.6 resolution: "enquirer@https://github.com/dashpay/enquirer.git#commit=86aaef0b1c82dfaa3436775e6b37de310eeb94f5" @@ -7108,10 +7203,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: c3e39465d06a6ecd103ccdb746508c88ee4bdd56c15238b0013de38b949a4eca91d5e44d2a9b88d772fe7821547c5fe9200ba0f3353116e208d44bb50c7bc1ea +"es-module-lexer@npm:^1.2.1": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 languageName: node linkType: hard @@ -7183,6 +7278,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 + languageName: node + linkType: hard + "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -8449,13 +8551,20 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 0c83c52b62c68a944dcfb9d66b0f9f10f7d6e3d081e8067b9bfdc9e5f3a8896584d576036f82915773189eec1eba599397fc620e75c03c0610fb3d67c6713c1a languageName: node linkType: hard +"graceful-fs@npm:^4.2.11": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 + languageName: node + linkType: hard + "grapheme-splitter@npm:^1.0.4": version: 1.0.4 resolution: "grapheme-splitter@npm:1.0.4" @@ -8720,16 +8829,16 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:1.7.2": - version: 1.7.2 - resolution: "http-errors@npm:1.7.2" +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.3" - setprototypeof: "npm:1.1.1" - statuses: "npm:>= 1.5.0 < 2" - toidentifier: "npm:1.0.0" - checksum: cf8da344b181599d19a2bfedcbe7c946945a907f2825a0c89e119ce9f9c9a421a49898afe3291485b40ffbbd587b62326f9becc7aa053036eff2559d9436defb + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 languageName: node linkType: hard @@ -8980,20 +9089,13 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 - languageName: node - linkType: hard - "inherits@npm:=2.0.1": version: 2.0.1 resolution: "inherits@npm:2.0.1" @@ -11469,6 +11571,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e + languageName: node + linkType: hard + "nodeforage@npm:^1.1.2": version: 1.1.2 resolution: "nodeforage@npm:1.1.2" @@ -11925,6 +12034,15 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea + languageName: node + linkType: hard + "on-finished@npm:~2.3.0": version: 2.3.0 resolution: "on-finished@npm:2.3.0" @@ -12479,12 +12597,12 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^1.7.0": - version: 1.8.0 - resolution: "path-to-regexp@npm:1.8.0" +"path-to-regexp@npm:^1.9.0": + version: 1.9.0 + resolution: "path-to-regexp@npm:1.9.0" dependencies: isarray: "npm:0.0.1" - checksum: 45a01690f72919163cf89714e31a285937b14ad54c53734c826363fcf7beba9d9d0f2de802b4986b1264374562d6a3398a2e5289753a764e3a256494f1e52add + checksum: 67f0f4823f7aab356523d93a83f9f8222bdd119fa0b27a8f8b587e8e6c9825294bb4ccd16ae619def111ff3fe5d15ff8f658cdd3b0d58b9c882de6fd15bc1b76 languageName: node linkType: hard @@ -12531,6 +12649,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1": version: 2.3.0 resolution: "picomatch@npm:2.3.0" @@ -12987,15 +13112,15 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.4.0": - version: 2.4.0 - resolution: "raw-body@npm:2.4.0" +"raw-body@npm:2.5.2": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" dependencies: - bytes: "npm:3.1.0" - http-errors: "npm:1.7.2" + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" iconv-lite: "npm:0.4.24" unpipe: "npm:1.0.0" - checksum: aa2c506055f32448211a4933c728b6a3d715101975328071ad4aad210a19e5cadd7666d1acc139ed59c7519e5a044a1a19285d4b4bb542d93de6187acf4a5ebf + checksum: 863b5171e140546a4d99f349b720abac4410338e23df5e409cfcc3752538c9caf947ce382c89129ba976f71894bd38b5806c774edac35ebf168d02aa1ac11a95 languageName: node linkType: hard @@ -13608,7 +13733,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": +"schema-utils@npm:^3.1.1": version: 3.1.1 resolution: "schema-utils@npm:3.1.1" dependencies: @@ -13619,6 +13744,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.8" + ajv: "npm:^6.12.5" + ajv-keywords: "npm:^3.5.2" + checksum: 2c7bbb1da967fdfd320e6cea538949006ec6e8c13ea560a4f94ff2c56809a8486fa5ec419e023452501a6befe1ca381e409c2798c24f4993c7c4094d97fdb258 + languageName: node + linkType: hard + "schema-utils@npm:^4.0.0": version: 4.2.0 resolution: "schema-utils@npm:4.2.0" @@ -13683,6 +13819,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.1": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -13720,10 +13865,10 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.1.1": - version: 1.1.1 - resolution: "setprototypeof@npm:1.1.1" - checksum: b8fcf5b4b8325ea638712ed6e62f8e0ffac69eef1390305a5331046992424e484d4d6603a18d84d4c08c3def50b9195d9e707b747aed5eec15ee66a2a6508318 +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e languageName: node linkType: hard @@ -14286,7 +14431,14 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0": +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"statuses@npm:~1.5.0": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c @@ -14689,7 +14841,7 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.3, terser-webpack-plugin@npm:^5.3.1": +"terser-webpack-plugin@npm:^5.3.1": version: 5.3.3 resolution: "terser-webpack-plugin@npm:5.3.3" dependencies: @@ -14711,6 +14863,42 @@ __metadata: languageName: node linkType: hard +"terser-webpack-plugin@npm:^5.3.10": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.20" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^3.1.1" + serialize-javascript: "npm:^6.0.1" + terser: "npm:^5.26.0" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: fb1c2436ae1b4e983be043fa0a3d355c047b16b68f102437d08c736d7960c001e7420e2f722b9d99ce0dc70ca26a68cc63c0b82bc45f5b48671142b352a9d938 + languageName: node + linkType: hard + +"terser@npm:^5.26.0": + version: 5.31.6 + resolution: "terser@npm:5.31.6" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.8.2" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 78057c58025151c9bdad82a050f0b51175f9fe3117d8ee369ca7effe038cdd540da2fd5985a4f8ee08dba5616e7911e1392d40670698ff42a49fec338d369e80 + languageName: node + linkType: hard + "terser@npm:^5.7.2": version: 5.14.2 resolution: "terser@npm:5.14.2" @@ -14854,10 +15042,10 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.0": - version: 1.0.0 - resolution: "toidentifier@npm:1.0.0" - checksum: 199e6bfca1531d49b3506cff02353d53ec987c9ee10ee272ca6484ed97f1fc10fb77c6c009079ca16d5c5be4a10378178c3cacdb41ce9ec954c3297c74c6053e +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 languageName: node linkType: hard @@ -15190,7 +15378,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.17": +"type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -15444,6 +15632,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c + languageName: node + linkType: hard + "upper-case-first@npm:^2.0.2": version: 2.0.2 resolution: "upper-case-first@npm:2.0.2" @@ -15660,13 +15862,13 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" dependencies: glob-to-regexp: "npm:^0.4.1" graceful-fs: "npm:^4.1.2" - checksum: 4280b45bc4b5d45d5579113f2a4af93b67ae1b9607cc3d86ae41cdd53ead10db5d9dc3237f24256d05ef88b28c69a02712f78e434cb7ecc8edaca134a56e8cab + checksum: 6bd4c051d9af189a6c781c3158dcb3069f432a0c144159eeb0a44117412105c61b2b683a5c9eebc4324625e0e9b76536387d0ba354594fa6cbbdf1ef60bee4c3 languageName: node linkType: hard @@ -15745,40 +15947,39 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.76.1": - version: 5.76.1 - resolution: "webpack@npm:5.76.1" +"webpack@npm:^5.94.0": + version: 5.94.0 + resolution: "webpack@npm:5.94.0" dependencies: - "@types/eslint-scope": "npm:^3.7.3" - "@types/estree": "npm:^0.0.51" - "@webassemblyjs/ast": "npm:1.11.1" - "@webassemblyjs/wasm-edit": "npm:1.11.1" - "@webassemblyjs/wasm-parser": "npm:1.11.1" + "@types/estree": "npm:^1.0.5" + "@webassemblyjs/ast": "npm:^1.12.1" + "@webassemblyjs/wasm-edit": "npm:^1.12.1" + "@webassemblyjs/wasm-parser": "npm:^1.12.1" acorn: "npm:^8.7.1" - acorn-import-assertions: "npm:^1.7.6" - browserslist: "npm:^4.14.5" + acorn-import-attributes: "npm:^1.9.5" + browserslist: "npm:^4.21.10" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.10.0" - es-module-lexer: "npm:^0.9.0" + enhanced-resolve: "npm:^5.17.1" + es-module-lexer: "npm:^1.2.1" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" glob-to-regexp: "npm:^0.4.1" - graceful-fs: "npm:^4.2.9" + graceful-fs: "npm:^4.2.11" json-parse-even-better-errors: "npm:^2.3.1" loader-runner: "npm:^4.2.0" mime-types: "npm:^2.1.27" neo-async: "npm:^2.6.2" - schema-utils: "npm:^3.1.0" + schema-utils: "npm:^3.2.0" tapable: "npm:^2.1.1" - terser-webpack-plugin: "npm:^5.1.3" - watchpack: "npm:^2.4.0" + terser-webpack-plugin: "npm:^5.3.10" + watchpack: "npm:^2.4.1" webpack-sources: "npm:^3.2.3" peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 68010fc44a4a774f8e436725faac7786f3c309c0356e718529822af90298ed68e14434b28f34d27b41409b2f8e6915005d62ca029d8cb1c3b29bd12214358cca + checksum: 648449c5fbbb0839814116e3b2b044ac6c75a7ba272435155ddeb1e64dfaa2f8079be3adfbb691f648b69900756ce0f6fb73beab0ced3cf5e0fd46868b4593a6 languageName: node linkType: hard